#include <Matrix3.hpp>
List of all members.
Public Member Functions |
| Matrix3 () |
| Matrix3 (double diagonal) |
| Matrix3 (const CartVect &diagonal) |
template<typename T > |
| Matrix3 (const std::vector< T > &diagonal) |
| Matrix3 (double v00, double v01, double v02, double v10, double v11, double v12, double v20, double v21, double v22) |
| Matrix3 (const Matrix3 &f) |
template<typename Vector > |
| Matrix3 (const Vector &row0, const Vector &row1, const Vector &row2) |
| Matrix3 (const double *v) |
Matrix3 & | operator= (const Matrix3 &m) |
Matrix3 & | operator= (const double *v) |
double * | operator[] (unsigned i) |
const double * | operator[] (unsigned i) const |
double & | operator() (unsigned r, unsigned c) |
double | operator() (unsigned r, unsigned c) const |
double & | operator() (unsigned i) |
double | operator() (unsigned i) const |
double * | array () |
const double * | array () const |
Matrix3 & | operator+= (const Matrix3 &m) |
Matrix3 & | operator-= (const Matrix3 &m) |
Matrix3 & | operator*= (double s) |
Matrix3 & | operator/= (double s) |
Matrix3 & | operator*= (const Matrix3 &m) |
double | determinant () const |
Matrix3 | inverse () const |
Matrix3 | inverse (double i) const |
bool | positive_definite () const |
bool | positive_definite (double &det) const |
Matrix3 | transpose () const |
bool | invert () |
double | subdet (int r, int c) const |
Private Attributes |
double | d [9] |
Detailed Description
Definition at line 263 of file Matrix3.hpp.
Constructor & Destructor Documentation
Definition at line 269 of file Matrix3.hpp.
{
for(int i = 0; i < 9; ++i){ d[ i] = 0; }
}
Definition at line 274 of file Matrix3.hpp.
{
d[0] = d[4] = d[8] = diagonal;
d[1] = d[2] = d[3] = 0.0;
d[5] = d[6] = d[7] = 0.0;
}
Definition at line 279 of file Matrix3.hpp.
{
d[0] = diagonal[0];
d[4] = diagonal[1],
d[8] = diagonal[2];
d[1] = d[2] = d[3] = 0.0;
d[5] = d[6] = d[7] = 0.0;
}
Definition at line 292 of file Matrix3.hpp.
{
d[0] = diagonal[0];
d[4] = diagonal[1],
d[8] = diagonal[2];
d[1] = d[2] = d[3] = 0.0;
d[5] = d[6] = d[7] = 0.0;
}
moab::Matrix3::Matrix3 |
( |
double |
v00, |
|
|
double |
v01, |
|
|
double |
v02, |
|
|
double |
v10, |
|
|
double |
v11, |
|
|
double |
v12, |
|
|
double |
v20, |
|
|
double |
v21, |
|
|
double |
v22 |
|
) |
| [inline] |
Definition at line 300 of file Matrix3.hpp.
{
d[0] = v00; d[1] = v01; d[2] = v02;
d[3] = v10; d[4] = v11; d[5] = v12;
d[6] = v20; d[7] = v21; d[8] = v22;
}
Definition at line 309 of file Matrix3.hpp.
{
for(int i = 0; i < 9; ++i) { d[ i] = f.d[ i]; }
}
template<typename Vector >
Definition at line 314 of file Matrix3.hpp.
{
for(std::size_t i = 0; i < 3; ++i){
d[ i] = row0[ i];
d[ i+3]= row1[ i];
d[ i+6] = row2[ i];
}
}
Definition at line 324 of file Matrix3.hpp.
{
d[0] = v[0]; d[1] = v[1]; d[2] = v[2];
d[3] = v[3]; d[4] = v[4]; d[5] = v[5];
d[6] = v[6]; d[7] = v[7]; d[8] = v[8];
}
Member Function Documentation
Definition at line 413 of file Matrix3.hpp.
{
double i = 1.0 / determinant();
if (!finite(i) || fabs(i) < std::numeric_limits<double>::epsilon())
return false;
*this = inverse( i );
return true;
}
double& moab::Matrix3::operator() |
( |
unsigned |
r, |
|
|
unsigned |
c |
|
) |
| [inline] |
double moab::Matrix3::operator() |
( |
unsigned |
r, |
|
|
unsigned |
c |
|
) |
| const [inline] |
double& moab::Matrix3::operator() |
( |
unsigned |
i | ) |
[inline] |
double moab::Matrix3::operator() |
( |
unsigned |
i | ) |
const [inline] |
Matrix3& moab::Matrix3::operator*= |
( |
double |
s | ) |
[inline] |
Definition at line 371 of file Matrix3.hpp.
{
d[0] *= s; d[1] *= s; d[2] *= s;
d[3] *= s; d[4] *= s; d[5] *= s;
d[6] *= s; d[7] *= s; d[8] *= s;
return *this;
}
Definition at line 357 of file Matrix3.hpp.
{
d[0] += m.d[0]; d[1] += m.d[1]; d[2] += m.d[2];
d[3] += m.d[3]; d[4] += m.d[4]; d[5] += m.d[5];
d[6] += m.d[6]; d[7] += m.d[7]; d[8] += m.d[8];
return *this;
}
Definition at line 364 of file Matrix3.hpp.
{
d[0] -= m.d[0]; d[1] -= m.d[1]; d[2] -= m.d[2];
d[3] -= m.d[3]; d[4] -= m.d[4]; d[5] -= m.d[5];
d[6] -= m.d[6]; d[7] -= m.d[7]; d[8] -= m.d[8];
return *this;
}
Matrix3& moab::Matrix3::operator/= |
( |
double |
s | ) |
[inline] |
Definition at line 378 of file Matrix3.hpp.
{
d[0] /= s; d[1] /= s; d[2] /= s;
d[3] /= s; d[4] /= s; d[5] /= s;
d[6] /= s; d[7] /= s; d[8] /= s;
return *this;
}
Definition at line 330 of file Matrix3.hpp.
{
d[0] = m.d[0]; d[1] = m.d[1]; d[2] = m.d[2];
d[3] = m.d[3]; d[4] = m.d[4]; d[5] = m.d[5];
d[6] = m.d[6]; d[7] = m.d[7]; d[8] = m.d[8];
return *this;
}
Matrix3& moab::Matrix3::operator= |
( |
const double * |
v | ) |
[inline] |
Definition at line 337 of file Matrix3.hpp.
{
d[0] = v[0]; d[1] = v[1]; d[2] = v[2];
d[3] = v[3]; d[4] = v[4]; d[5] = v[5];
d[6] = v[6]; d[7] = v[7]; d[8] = v[8];
return *this;
}
double* moab::Matrix3::operator[] |
( |
unsigned |
i | ) |
[inline] |
const double* moab::Matrix3::operator[] |
( |
unsigned |
i | ) |
const [inline] |
Definition at line 422 of file Matrix3.hpp.
{
const int r1 = (r+1)%3, r2 = (r+2)%3;
const int c1 = (c+1)%3, c2 = (c+2)%3;
assert(r >= 0 && c >= 0);
if (r < 0 || c < 0) return DBL_MAX;
return d[3*r1+c1]*d[3*r2+c2] - d[3*r1+c2]*d[3*r2+c1];
}
Member Data Documentation
The documentation for this class was generated from the following file: