Go to the documentation of this file.
78 return m[0][0]*(
m[1][1]*
m[2][2]-
m[1][2]*
m[2][1])+
79 m[0][1]*(
m[1][2]*
m[2][0]-
m[1][0]*
m[2][2])+
80 m[0][2]*(
m[1][0]*
m[2][1]-
m[1][1]*
m[2][0]);
140 res.
m[0][0]=
m[0][0]*d;
141 res.
m[0][1]=
m[0][1]*d;
142 res.
m[0][2]=
m[0][2]*d;
143 res.
m[1][0]=
m[1][0]*d;
144 res.
m[1][1]=
m[1][1]*d;
145 res.
m[1][2]=
m[1][2]*d;
146 res.
m[2][0]=
m[2][0]*d;
147 res.
m[2][1]=
m[2][1]*d;
148 res.
m[2][2]=
m[2][2]*d;
158 res.
m[0][0]=
m[0][0]/d;
159 res.
m[0][1]=
m[0][1]/d;
160 res.
m[0][2]=
m[0][2]/d;
161 res.
m[1][0]=
m[1][0]/d;
162 res.
m[1][1]=
m[1][1]/d;
163 res.
m[1][2]=
m[1][2]/d;
164 res.
m[2][0]=
m[2][0]/d;
165 res.
m[2][1]=
m[2][1]/d;
166 res.
m[2][2]=
m[2][2]/d;
173 for(
int i = 0; i < 3; i++) {
174 for(
int j = 0; j < 3; j++) {
175 m[i][j] = other.
m[i][j];
183 for(
int i = 0; i < 3; i++) {
184 for(
int j = 0; j < 3; j++) {
185 if (
m[i][j] != other.
m[i][j]) {
196 for(
int i = 1; i < 9; i++) {
197 oStream <<
" " << m(i/3, i%3);
207 for(
int i=0;i<3;i++){
208 for(
int j=0;j<3;j++){
209 res.
m[i][j]=
m[i][0]*rhs.
m[0][j]+
m[i][1]*rhs.
m[1][j]+
m[i][2]*rhs.
m[2][j];
218 for(
int i=0;i<3;i++){
219 for(
int j=0;j<3;j++){
220 m[i][j]=
m[i][j]+rhs.
m[i][j];
233 for(
int i=0;i<3;i++){
234 for(
int j=0;j<3;j++){
235 res.
m[i][j]=
m[i][j]+rhs.
m[i][j];
249 for(
int i=0;i<3;i++) {
250 for(
int j=0;j<3;j++) {
251 res.
m[i][j]=
m[i][j]-rhs.
m[i][j];
263 return m[0][0]+
m[1][1]+
m[2][2];
273 for(
int i=0;i<3;i++){
274 for(
int j=0;j<3;j++){
275 res+=
m[i][j]*
m[i][j];
315 for(
int i=0;i<3;i++){
316 for(
int j=0;j<3;j++){
317 res.
m[i][j]=d*M.
m[i][j];
326 #endif // __MATRIX3_HPP
MATRIX3_INLINE Matrix3 operator+(const Matrix3 &) const
Definition: Matrix3.hpp:229
MATRIX3_INLINE bool operator==(const Matrix3 &) const
Definition: Matrix3.hpp:181
void invert()
in-situ inversion
Definition: Matrix3.cpp:48
double data[3]
Definition: vec3.h:49
MATRIX3_INLINE Matrix3()
Definition: Matrix3.hpp:20
MATRIX3_INLINE Matrix3 star(const Vec3 &V)
Definition: Matrix3.hpp:282
MATRIX3_INLINE Matrix3 trans() const
return transposed
Definition: Matrix3.hpp:108
double m[3][3]
Definition: Matrix3.h:50
MATRIX3_INLINE Matrix3 operator/(double) const
Definition: Matrix3.hpp:154
VEC3_INLINE double & X()
Definition: vec3.h:119
MATRIX3_INLINE double det()
Definition: Matrix3.hpp:76
MATRIX3_INLINE double trace() const
Definition: Matrix3.hpp:261
static MATRIX3_INLINE Matrix3 Unit()
eigenvectors, eigenvalues
Definition: Matrix3.hpp:297
VEC3_INLINE double & Z()
Definition: vec3.h:121
MATRIX3_INLINE Vec3 operator*(const Vec3 &) const
Definition: Matrix3.hpp:126
MATRIX3_INLINE Matrix3 operator*(double d, const Matrix3 &M)
Definition: Matrix3.hpp:311
MATRIX3_INLINE void transpose()
transpose in situ
Definition: Matrix3.hpp:93
MATRIX3_INLINE std::ostream & operator<<(std::ostream &oStream, const Matrix3 &m)
Definition: Matrix3.hpp:193
VEC3_INLINE double & Y()
Definition: vec3.h:120
MATRIX3_INLINE Matrix3 inv()
return inverse;
Definition: Matrix3.hpp:84
MATRIX3_INLINE Matrix3 operator-(const Matrix3 &) const
Definition: Matrix3.hpp:245
3x3 Matrix
Definition: Matrix3.h:48
virtual MATRIX3_INLINE ~Matrix3()
Definition: Matrix3.hpp:69
MATRIX3_INLINE Matrix3 & operator=(const Matrix3 &)
Definition: Matrix3.hpp:171
MATRIX3_INLINE Matrix3 & operator+=(const Matrix3 &)
Definition: Matrix3.hpp:216
MATRIX3_INLINE double norm() const
Definition: Matrix3.hpp:269
#define MATRIX3_INLINE
Definition: Matrix3.h:19