45 bool operator ==( const
SymMatrix4<T> & ) const = default;
57 a.xx * b.
x + a.xy * b.y + a.xz * b.z + a.xw * b.w,
58 a.xy * b.x + a.yy * b.y + a.yz * b.z + a.yw * b.w,
59 a.xz * b.x + a.yz * b.y + a.zz * b.z + a.zw * b.w,
60 a.xw * b.x + a.yw * b.y + a.zw * b.z + a.ww * b.w
69 res.
xx = a.
x * a.
x; res.
xy = a.
x * a.
y; res.
xz = a.
x * a.
z; res.
xw = a.
x * a.
w;
70 res.
yy = a.
y * a.
y; res.
yz = a.
y * a.
z; res.
yw = a.
y * a.
w;
71 res.
zz = a.
z * a.
z; res.
zw = a.
z * a.
w;
80 const auto ka = k * a;
82 res.
xx = ka.x * a.
x; res.
xy = ka.x * a.
y; res.
xz = ka.x * a.
z; res.
xw = ka.x * a.
w;
83 res.
yy = ka.y * a.
y; res.
yz = ka.y * a.
z; res.
yw = ka.y * a.
w;
84 res.
zz = ka.z * a.
z; res.
zw = ka.z * a.
w;
107 { b /= a;
return b; }
112 return sqr(
xx ) + sqr(
yy ) + sqr(
zz ) + sqr(
ww ) +
113 2 * ( sqr(
xy ) + sqr(
xz ) + sqr(
xw ) + sqr(
yz ) + sqr(
yw ) + sqr(
zw ) );
119 xx += b.xx;
xy += b.xy;
xz += b.xz;
xw += b.xw;
120 yy += b.yy;
yz += b.yz;
yw += b.yw;
121 zz += b.zz;
zw += b.zw;
129 xx -= b.xx;
xy -= b.xy;
xz -= b.xz;
xw -= b.xw;
130 yy -= b.yy;
yz -= b.yz;
yw -= b.yw;
131 zz -= b.zz;
zw -= b.zw;
140 yy *= b;
yz *= b;
yw *= b;
149 if constexpr ( std::is_integral_v<T> )
152 yy /= b;
yz /= b;
yw /= b;
BitSet operator-(const BitSet &a, const BitSet &b)
Definition MRBitSet.h:457
T xz
Definition MRSymMatrix4.h:20
SymMatrix4 & operator-=(const SymMatrix4< T > &b)
T y
Definition MRVector4.h:32
T z
Definition MRVector4.h:32
T x
Definition MRVector4.h:32
SymMatrix4< T > outerSquare(const Vector4< T > &a)
x = a * a^T
Definition MRSymMatrix4.h:66
T w
Definition MRVector4.h:32
SymMatrix4 & operator+=(const SymMatrix4< T > &b)
constexpr T normSq() const noexcept
computes the squared norm of the matrix, which is equal to the sum of 16 squared elements
static constexpr SymMatrix4 diagonal(T diagVal) noexcept
Definition MRSymMatrix4.h:33
T zw
Definition MRSymMatrix4.h:22
T xx
zero matrix by default
Definition MRSymMatrix4.h:20
T ww
Definition MRSymMatrix4.h:23
Color operator/(const Color &b, float a)
Definition MRColor.h:129
SymMatrix4< T > outerSquare(T k, const Vector4< T > &a)
x = k * a * a^T
Definition MRSymMatrix4.h:78
T zz
Definition MRSymMatrix4.h:22
T xy
Definition MRSymMatrix4.h:20
constexpr SymMatrix4() noexcept=default
T ValueType
Definition MRSymMatrix4.h:17
SymMatrix4 & operator*=(T b)
constexpr T trace() const noexcept
computes trace of the matrix
Definition MRSymMatrix4.h:36
T yz
Definition MRSymMatrix4.h:21
T xw
Definition MRSymMatrix4.h:20
T yy
Definition MRSymMatrix4.h:21
SymMatrix4 & operator/=(T b)
Color operator+(const Color &a, const Color &b)
Definition MRColor.h:109
T yw
Definition MRSymMatrix4.h:21
static constexpr SymMatrix4 identity() noexcept
Definition MRSymMatrix4.h:32
Vector4< T > operator*(const SymMatrix4< T > &a, const Vector4< T > &b)
x = a * b
Definition MRSymMatrix4.h:53
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRSymMatrix4.h:16
Definition MRVector4.h:26