inlib
1.2.0
|
Public Member Functions | |
sqm () | |
virtual | ~sqm () |
sqm (const sqm &a_from) | |
sqm & | operator= (const sqm &a_from) |
void | v00 (const T &a_value) |
void | v10 (const T &a_value) |
void | v20 (const T &a_value) |
void | v30 (const T &a_value) |
void | v01 (const T &a_value) |
void | v11 (const T &a_value) |
void | v21 (const T &a_value) |
void | v31 (const T &a_value) |
void | v02 (const T &a_value) |
void | v12 (const T &a_value) |
void | v22 (const T &a_value) |
void | v32 (const T &a_value) |
void | v03 (const T &a_value) |
void | v13 (const T &a_value) |
void | v23 (const T &a_value) |
void | v33 (const T &a_value) |
T | v00 () const |
T | v10 () const |
T | v20 () const |
T | v30 () const |
T | v01 () const |
T | v11 () const |
T | v21 () const |
T | v31 () const |
T | v02 () const |
T | v12 () const |
T | v22 () const |
T | v32 () const |
T | v03 () const |
T | v13 () const |
T | v23 () const |
T | v33 () const |
virtual T | determinant () const |
bool | invert (sqm< T > &a_result) const |
inlib::a4::sqm< T >::sqm | ( | ) | [inline] |
Definition at line 82 of file a4.
: inlib::sqm<T>(4){}
virtual inlib::a4::sqm< T >::~sqm | ( | ) | [inline, virtual] |
inlib::a4::sqm< T >::sqm | ( | const sqm< T > & | a_from | ) | [inline] |
Definition at line 85 of file a4.
: inlib::sqm<T>(a_from){}
virtual T inlib::a4::sqm< T >::determinant | ( | ) | const [inline, virtual] |
Reimplemented from inlib::sqm< T >.
Definition at line 131 of file a4.
{ T e00 = D33(v11(),v12(),v13(), v21(),v22(),v23(), v31(),v32(),v33()); T e01 = -D33(v01(),v02(),v03(), v21(),v22(),v23(), v31(),v32(),v33()); T e02 = D33(v01(),v02(),v03(), v11(),v12(),v13(), v31(),v32(),v33()); T e03 = -D33(v01(),v02(),v03(), v11(),v12(),v13(), v21(),v22(),v23()); return ( v00() * e00 + v10() * e01 + v20() * e02 + v30() * e03); }
bool inlib::a4::sqm< T >::invert | ( | sqm< T > & | a_result | ) | const [inline] |
Definition at line 151 of file a4.
{ // Twice faster than the generic invertion method. a_result.v00( D33(v11(),v12(),v13(), v21(),v22(),v23(), v31(),v32(),v33())); a_result.v01( -D33(v01(),v02(),v03(), v21(),v22(),v23(), v31(),v32(),v33())); a_result.v02( D33(v01(),v02(),v03(), v11(),v12(),v13(), v31(),v32(),v33())); a_result.v03( -D33(v01(),v02(),v03(), v11(),v12(),v13(), v21(),v22(),v23())); T deter = v00() * a_result.v00() + v10() * a_result.v01() + v20() * a_result.v02() + v30() * a_result.v03(); if(deter==array<T>::zero()) return false; a_result.v10( -D33(v10(),v12(),v13(), v20(),v22(),v23(), v30(),v32(),v33())); a_result.v11( D33(v00(),v02(),v03(), v20(),v22(),v23(), v30(),v32(),v33())); a_result.v12( -D33(v00(),v02(),v03(), v10(),v12(),v13(), v30(),v32(),v33())); a_result.v13( D33(v00(),v02(),v03(), v10(),v12(),v13(), v20(),v22(),v23())); a_result.v20( D33(v10(),v11(),v13(), v20(),v21(),v23(), v30(),v31(),v33())); a_result.v21( -D33(v00(),v01(),v03(), v20(),v21(),v23(), v30(),v31(),v33())); a_result.v22( D33(v00(),v01(),v03(), v10(),v11(),v13(), v30(),v31(),v33())); a_result.v23( -D33(v00(),v01(),v03(), v10(),v11(),v13(), v20(),v21(),v23())); a_result.v30( -D33(v10(),v11(),v12(), v20(),v21(),v22(), v30(),v31(),v32())); a_result.v31( D33(v00(),v01(),v02(), v20(),v21(),v22(), v30(),v31(),v32())); a_result.v32( -D33(v00(),v01(),v02(), v10(),v11(),v12(), v30(),v31(),v32())); a_result.v33( D33(v00(),v01(),v02(), v10(),v11(),v12(), v20(),v21(),v22())); a_result.multiply(1./deter); return true; }
sqm& inlib::a4::sqm< T >::operator= | ( | const sqm< T > & | a_from | ) | [inline] |
Definition at line 86 of file a4.
{ inlib::sqm<T>::operator=(a_from); return *this; }
void inlib::a4::sqm< T >::v00 | ( | const T & | a_value | ) | [inline] |
T inlib::a4::sqm< T >::v00 | ( | ) | const [inline] |
void inlib::a4::sqm< T >::v01 | ( | const T & | a_value | ) | [inline] |
T inlib::a4::sqm< T >::v01 | ( | ) | const [inline] |
void inlib::a4::sqm< T >::v02 | ( | const T & | a_value | ) | [inline] |
T inlib::a4::sqm< T >::v02 | ( | ) | const [inline] |
void inlib::a4::sqm< T >::v03 | ( | const T & | a_value | ) | [inline] |
T inlib::a4::sqm< T >::v03 | ( | ) | const [inline] |
void inlib::a4::sqm< T >::v10 | ( | const T & | a_value | ) | [inline] |
T inlib::a4::sqm< T >::v10 | ( | ) | const [inline] |
void inlib::a4::sqm< T >::v11 | ( | const T & | a_value | ) | [inline] |
T inlib::a4::sqm< T >::v11 | ( | ) | const [inline] |
void inlib::a4::sqm< T >::v12 | ( | const T & | a_value | ) | [inline] |
T inlib::a4::sqm< T >::v12 | ( | ) | const [inline] |
void inlib::a4::sqm< T >::v13 | ( | const T & | a_value | ) | [inline] |
T inlib::a4::sqm< T >::v13 | ( | ) | const [inline] |
void inlib::a4::sqm< T >::v20 | ( | const T & | a_value | ) | [inline] |
T inlib::a4::sqm< T >::v20 | ( | ) | const [inline] |
void inlib::a4::sqm< T >::v21 | ( | const T & | a_value | ) | [inline] |
T inlib::a4::sqm< T >::v21 | ( | ) | const [inline] |
void inlib::a4::sqm< T >::v22 | ( | const T & | a_value | ) | [inline] |
T inlib::a4::sqm< T >::v22 | ( | ) | const [inline] |
void inlib::a4::sqm< T >::v23 | ( | const T & | a_value | ) | [inline] |
T inlib::a4::sqm< T >::v23 | ( | ) | const [inline] |
void inlib::a4::sqm< T >::v30 | ( | const T & | a_value | ) | [inline] |
T inlib::a4::sqm< T >::v30 | ( | ) | const [inline] |
void inlib::a4::sqm< T >::v31 | ( | const T & | a_value | ) | [inline] |
T inlib::a4::sqm< T >::v31 | ( | ) | const [inline] |
void inlib::a4::sqm< T >::v32 | ( | const T & | a_value | ) | [inline] |
T inlib::a4::sqm< T >::v32 | ( | ) | const [inline] |
void inlib::a4::sqm< T >::v33 | ( | const T & | a_value | ) | [inline] |
T inlib::a4::sqm< T >::v33 | ( | ) | const [inline] |