|
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] |
1.7.5.1