#include <mat.hpp>
Public Member Functions | |
mat () | |
mat (const mat &) | |
mat (const double &, const double &, const double &, const double &, const double &, const double &, const double &, const double &, const double &) | |
~mat () | |
double & | operator() (const int &, const int &) |
double | operator() (const int &, const int &) const |
mat | operator+ (void) |
mat | operator- (void) |
mat & | operator= (const mat &) |
mat & | operator+= (const mat &) |
mat & | operator-= (const mat &) |
mat & | operator *= (const mat &) |
mat & | operator *= (const double &) |
mat & | operator/= (const double &) |
Public Attributes | |
double | xx |
component | |
double | xy |
component | |
double | xz |
component | |
double | yx |
component | |
double | yy |
component | |
double | yz |
component | |
double | zx |
component | |
double | zy |
component | |
double | zz |
component | |
Friends | |
std::ostream & | operator<< (std::ostream &, const mat &) |
double | det (const mat &) |
mat | inv (const mat &) |
mat | trans (const mat &) |
void | swap (mat &, mat &) |
mat | operator+ (const mat &, const mat &) |
mat | operator- (const mat &, const mat &) |
mat | operator * (const mat &, const mat &) |
vec | operator * (const mat &, const vec &) |
mat | operator * (const mat &, const double &) |
mat | operator/ (const mat &, const double &) |
mat | operator * (const double &, const mat &) |
Definition at line 3 of file mat.hpp.
|
mat constructor without arguments Definition at line 3 of file mat-constructor.hpp. Referenced by operator-(). 00004 { 00005 ; 00006 }
|
|
mat copy constructor Definition at line 14 of file mat-constructor.hpp. 00015 : xx(m.xx), xy(m.xy), xz(m.xz), 00016 yx(m.yx), yy(m.yy), yz(m.yz), 00017 zx(m.zx), zy(m.zy), zz(m.zz) 00018 { 00019 ; 00020 }
|
|
mat constructor to build from three components Definition at line 28 of file mat-constructor.hpp. 00031 : xx(_xx), xy(_xy), xz(_xz), 00032 yx(_yx), yy(_yy), yz(_yz), 00033 zx(_zx), zy(_zy), zz(_zz) 00034 { 00035 ; 00036 }
|
|
mat destructor Definition at line 44 of file mat-constructor.hpp. 00045 { 00046 ; 00047 }
|
|
operator() for non-const object Definition at line 3 of file mat-io.hpp. References xx, xy, xz, yx, yy, yz, zx, zy, and zz. 00004 { 00005 switch( i ){ 00006 case 0: 00007 switch( j ){ 00008 case 0: return xx; 00009 case 1: return xy; 00010 case 2: return xz; 00011 } 00012 case 1: 00013 switch( j ){ 00014 case 0: return yx; 00015 case 1: return yy; 00016 case 2: return yz; 00017 } 00018 case 2: 00019 switch( j ){ 00020 case 0: return zx; 00021 case 1: return zy; 00022 case 2: return zz; 00023 } 00024 } 00025 std::cerr << "[ERROR] mat::operator()(const int&,const int&)" << std::endl 00026 << "The required component was not 0, 1, or 2." << std::endl 00027 << "Your input was (" << i << "," << j << ")." << std::endl; 00028 std::exit(1); 00029 }
|
|
operator() for const object Definition at line 33 of file mat-io.hpp. References xx, xy, xz, yx, yy, yz, zx, zy, and zz. 00034 { 00035 switch( i ){ 00036 case 0: 00037 switch( j ){ 00038 case 0: return xx; 00039 case 1: return xy; 00040 case 2: return xz; 00041 } 00042 case 1: 00043 switch( j ){ 00044 case 0: return yx; 00045 case 1: return yy; 00046 case 2: return yz; 00047 } 00048 case 2: 00049 switch( j ){ 00050 case 0: return zx; 00051 case 1: return zy; 00052 case 2: return zz; 00053 } 00054 } 00055 std::cerr << "[ERROR] mat::operator()(const int&,const int&) const" 00056 << std::endl 00057 << "The required component was not 0, 1, or 2." << std::endl 00058 << "Your input was (" << i << "," << j << ")." << std::endl; 00059 std::exit(1); 00060 }
|
|
Definition at line 2 of file mat-unary.hpp. 00003 {
00004 return( *this );
00005 }
|
|
Definition at line 8 of file mat-unary.hpp. References mat(), xx, xy, xz, yx, yy, yz, zx, zy, and zz. 00009 { 00010 return mat( -xx, -xy, -xz, 00011 -yx, -yy, -yz, 00012 -zx, -zy, -zz ); 00013 }
|
|
mat=mat operator Definition at line 3 of file mat-mat.hpp. References xx, xy, xz, yx, yy, yz, zx, zy, and zz. 00004 { 00005 xx=m.xx; xy=m.xy; xz=m.xz; 00006 yx=m.yx; yy=m.yy; yz=m.yz; 00007 zx=m.zx; zy=m.zy; zz=m.zz; 00008 return *this; 00009 }
|
|
mat+=mat operator Definition at line 17 of file mat-mat.hpp. References xx, xy, xz, yx, yy, yz, zx, zy, and zz. 00018 { 00019 xx+=m.xx; xy+=m.xy; xz+=m.xz; 00020 yx+=m.yx; yy+=m.yy; yz+=m.yz; 00021 zx+=m.zx; zy+=m.zy; zz+=m.zz; 00022 return *this; 00023 }
|
|
mat-=mat operator Definition at line 27 of file mat-mat.hpp. References xx, xy, xz, yx, yy, yz, zx, zy, and zz. 00028 { 00029 xx-=m.xx; xy-=m.xy; xz-=m.xz; 00030 yx-=m.yx; yy-=m.yy; yz-=m.yz; 00031 zx-=m.zx; zy-=m.zy; zz-=m.zz; 00032 return *this; 00033 }
|
|
mat*=mat operator Definition at line 37 of file mat-mat.hpp. 00038 { 00039 (*this) =(*this)*m; 00040 return *this; 00041 }
|
|
mat*=double operator Definition at line 3 of file mat-double.hpp. References xx, xy, xz, yx, yy, yz, zx, zy, and zz. 00004 { 00005 xx*=d; xy*=d; xz*=d; 00006 yx*=d; yy*=d; yz*=d; 00007 zx*=d; zy*=d; zz*=d; 00008 return *this; 00009 }
|
|
mat/=double operator Definition at line 13 of file mat-double.hpp. References xx, xy, xz, yx, yy, yz, zx, zy, and zz. 00014 { 00015 xx/=d; xy/=d; xz/=d; 00016 yx/=d; yy/=d; yz/=d; 00017 zx/=d; zy/=d; zz/=d; 00018 return *this; 00019 }
|
|
Definition at line 67 of file mat-io.hpp. 00068 { 00069 s << "[ " << m.xx << ", " << m.xy << ", " << m.xz 00070 << "; " << m.yx << ", " << m.yy << ", " << m.yz 00071 << "; " << m.zx << ", " << m.zy << ", " << m.zz 00072 << " ]"; 00073 return s; 00074 }
|
|
return its determinant Definition at line 3 of file mat-calc.hpp. 00004 { 00005 return 00006 m.xx*m.yy*m.zz + m.xy*m.yz*m.zx + m.xz*m.yx*m.zy 00007 -m.xx*m.yz*m.zy -m.xy*m.yx*m.zz -m.xz*m.yy*m.zx; 00008 }
|
|
return its inverse matrix Definition at line 12 of file mat-calc.hpp. 00013 { 00014 double d( det(m) ); 00015 return mat 00016 ( 00017 (m.yy*m.zz-m.yz*m.zy)/d, (m.xz*m.zy-m.xy*m.zz)/d, (m.xy*m.yz-m.xz*m.yy)/d, 00018 (m.yz*m.zx-m.yx*m.zz)/d, (m.xx*m.zz-m.xz*m.zx)/d, (m.xz*m.yx-m.xx*m.yz)/d, 00019 (m.yx*m.zy-m.yy*m.zx)/d, (m.xy*m.zx-m.xx*m.zy)/d, (m.xx*m.yy-m.xy*m.yx)/d 00020 ); 00021 }
|
|
return its transposed matrix Definition at line 3 of file mat-misc.hpp. 00004 { 00005 return mat( m.xx, m.yx, m.zx, 00006 m.xy, m.yy, m.zy, 00007 m.xz, m.yz, m.zz ); 00008 }
|
|
swap two mats Definition at line 12 of file mat-misc.hpp. 00013 { 00014 mat _v1(v1); 00015 v1 = v2; 00016 v2 =_v1; 00017 }
|
|
mat+mat operator Definition at line 49 of file mat-mat.hpp. 00050 { 00051 return mat( m1.xx+m2.xx, m1.xy+m2.xy, m1.xz+m2.xz, 00052 m1.yx+m2.yx, m1.yy+m2.yy, m1.yz+m2.yz, 00053 m1.zx+m2.zx, m1.zy+m2.zy, m1.zz+m2.zz ); 00054 }
|
|
mat-mat operator Definition at line 58 of file mat-mat.hpp. 00059 { 00060 return mat( m1.xx-m2.xx, m1.xy-m2.xy, m1.xz-m2.xz, 00061 m1.yx-m2.yx, m1.yy-m2.yy, m1.yz-m2.yz, 00062 m1.zx-m2.zx, m1.zy-m2.zy, m1.zz-m2.zz ); 00063 }
|
|
mat*mat operator Definition at line 67 of file mat-mat.hpp. 00068 { 00069 return mat( m1.xx*m2.xx +m1.xy*m2.yx +m1.xz*m2.zx, 00070 m1.xx*m2.xy +m1.xy*m2.yy +m1.xz*m2.zy, 00071 m1.xx*m2.xz +m1.xy*m2.yz +m1.xz*m2.zz, 00072 m1.yx*m2.xx +m1.yy*m2.yx +m1.yz*m2.zx, 00073 m1.yx*m2.xy +m1.yy*m2.yy +m1.yz*m2.zy, 00074 m1.yx*m2.xz +m1.yy*m2.yz +m1.yz*m2.zz, 00075 m1.zx*m2.xx +m1.zy*m2.yx +m1.zz*m2.zx, 00076 m1.zx*m2.xy +m1.zy*m2.yy +m1.zz*m2.zy, 00077 m1.zx*m2.xz +m1.zy*m2.yz +m1.zz*m2.zz ); 00078 }
|
|
mat*vec operator Definition at line 3 of file mat-vec.hpp. 00004 { 00005 return vec( m.xx*v.x +m.xy*v.y +m.xz*v.z, 00006 m.yx*v.x +m.yy*v.y +m.yz*v.z, 00007 m.zx*v.x +m.zy*v.y +m.zz*v.z ); 00008 }
|
|
mat*double operator Definition at line 27 of file mat-double.hpp. 00028 { 00029 return mat( m.xx*d, m.xy*d, m.xz*d, 00030 m.yx*d, m.yy*d, m.yz*d, 00031 m.zx*d, m.zy*d, m.zz*d ); 00032 }
|
|
mat/double operator Definition at line 36 of file mat-double.hpp. 00037 { 00038 return mat( m.xx/d, m.xy/d, m.xz/d, 00039 m.yx/d, m.yy/d, m.yz/d, 00040 m.zx/d, m.zy/d, m.zz/d ); 00041 }
|
|
double*mat operator Definition at line 3 of file double-mat.hpp. 00004 { 00005 return mat( d*m.xx, d*m.xy, d*m.xz, 00006 d*m.yx, d*m.yy, d*m.yz, 00007 d*m.zx, d*m.zy, d*m.zz ); 00008 }
|
|
component
Definition at line 7 of file mat.hpp. Referenced by operator *=(), operator()(), operator+=(), operator-(), operator-=(), operator/=(), and operator=(). |
|
component
Definition at line 8 of file mat.hpp. Referenced by operator *=(), operator()(), operator+=(), operator-(), operator-=(), operator/=(), and operator=(). |
|
component
Definition at line 9 of file mat.hpp. Referenced by operator *=(), operator()(), operator+=(), operator-(), operator-=(), operator/=(), and operator=(). |
|
component
Definition at line 10 of file mat.hpp. Referenced by operator *=(), operator()(), operator+=(), operator-(), operator-=(), operator/=(), and operator=(). |
|
component
Definition at line 11 of file mat.hpp. Referenced by operator *=(), operator()(), operator+=(), operator-(), operator-=(), operator/=(), and operator=(). |
|
component
Definition at line 12 of file mat.hpp. Referenced by operator *=(), operator()(), operator+=(), operator-(), operator-=(), operator/=(), and operator=(). |
|
component
Definition at line 13 of file mat.hpp. Referenced by operator *=(), operator()(), operator+=(), operator-(), operator-=(), operator/=(), and operator=(). |
|
component
Definition at line 14 of file mat.hpp. Referenced by operator *=(), operator()(), operator+=(), operator-(), operator-=(), operator/=(), and operator=(). |
|
component
Definition at line 15 of file mat.hpp. Referenced by operator *=(), operator()(), operator+=(), operator-(), operator-=(), operator/=(), and operator=(). |