64  Tmat6(
const double in00, 
const double in01, 
const double in02, 
const double in03, 
const double in04, 
const double in05,
 
   65        const double in10, 
const double in11, 
const double in12, 
const double in13, 
const double in14, 
const double in15,
 
   66        const double in20, 
const double in21, 
const double in22, 
const double in23, 
const double in24, 
const double in25,
 
   67        const double in30, 
const double in31, 
const double in32, 
const double in33, 
const double in34, 
const double in35,
 
   68        const double in40, 
const double in41, 
const double in42, 
const double in43, 
const double in44, 
const double in45,
 
   69        const double in50, 
const double in51, 
const double in52, 
const double in53, 
const double in54, 
const double in55);
 
   96  void set(
const DT val);
 
  122  DT 
determinantLower5(
const int col1, 
const int col2, 
const int col3, 
const int col4, 
const int col5) 
const;
 
  158  this->v[0] = this->v[1] = this->v[2] = this->v[3] = this->v[4] = this->v[5] = 
Tvec6<DT>(0);
 
 
  165  this->v[0][0] = this->v[1][1] = this->v[2][2] = this->v[3][3] = this->v[4][4] = this->v[5][5] = diagValue;
 
  166  this->v[1][0] = this->v[2][0] = this->v[3][0] = this->v[4][0] = this->v[5][0] = this->v[2][1] = this->v[3][1] = this->v[4][1] = this->v[5][1] = this->v[3][2] = this->v[4][2] = this->v[5][2] = this->v[4][3] = this->v[5][3] = this->v[5][4] = 0;
 
  167  this->v[0][1] = this->v[0][2] = this->v[0][3] = this->v[0][4] = this->v[0][5] = this->v[1][2] = this->v[1][3] = this->v[1][4] = this->v[1][5] = this->v[2][3] = this->v[2][4] = this->v[2][5] = this->v[3][4] = this->v[3][5] = this->v[4][5] = 0;
 
 
  187  this->v[0] = mat.
v[0];
 
  188  this->v[1] = mat.
v[1];
 
  189  this->v[2] = mat.
v[2];
 
  190  this->v[3] = mat.
v[3];
 
  191  this->v[4] = mat.
v[4];
 
  192  this->v[5] = mat.
v[5];
 
 
  213  return Tmat6<DT>(val, val, val, val, val, val,
 
  214                   val, val, val, val, val, val,
 
  215                   val, val, val, val, val, val,
 
  216                   val, val, val, val, val, val,
 
  217                   val, val, val, val, val, val,
 
  218                   val, val, val, val, val, val);
 
 
  225  this->v[0] = this->v[1] = this->v[2] = this->v[3] = this->v[4] = this->v[5] = 
Tvec6<DT>(val);
 
 
  248  this->v[0] += m.
v[0];
 
  249  this->v[1] += m.
v[1];
 
  250  this->v[2] += m.
v[2];
 
  251  this->v[3] += m.
v[3];
 
  252  this->v[4] += m.
v[4];
 
  253  this->v[5] += m.
v[5];
 
 
  262  this->v[0] -= m.
v[0];
 
  263  this->v[1] -= m.
v[1];
 
  264  this->v[2] -= m.
v[2];
 
  265  this->v[3] -= m.
v[3];
 
  266  this->v[4] -= m.
v[4];
 
  267  this->v[5] -= m.
v[5];
 
 
  309  return Tmat6<DT>(a) *= 
static_cast<DT
>(-1.0);
 
 
  364Tmat6<DT>::Tmat6(
const double in00, 
const double in01, 
const double in02, 
const double in03, 
const double in04, 
const double in05,
 
  365                 const double in10, 
const double in11, 
const double in12, 
const double in13, 
const double in14, 
const double in15,
 
  366                 const double in20, 
const double in21, 
const double in22, 
const double in23, 
const double in24, 
const double in25,
 
  367                 const double in30, 
const double in31, 
const double in32, 
const double in33, 
const double in34, 
const double in35,
 
  368                 const double in40, 
const double in41, 
const double in42, 
const double in43, 
const double in44, 
const double in45,
 
  369                 const double in50, 
const double in51, 
const double in52, 
const double in53, 
const double in54, 
const double in55)
 
  371  this->v[0][0]=
static_cast<DT
>(in00); this->v[0][1]=
static_cast<DT
>(in01); this->v[0][2]=
static_cast<DT
>(in02);  this->v[0][3]=
static_cast<DT
>(in03); this->v[0][4]=
static_cast<DT
>(in04); this->v[0][5]=
static_cast<DT
>(in05);
 
  372  this->v[1][0]=
static_cast<DT
>(in10); this->v[1][1]=
static_cast<DT
>(in11); this->v[1][2]=
static_cast<DT
>(in12);  this->v[1][3]=
static_cast<DT
>(in13); this->v[1][4]=
static_cast<DT
>(in14); this->v[1][5]=
static_cast<DT
>(in15);
 
  373  this->v[2][0]=
static_cast<DT
>(in20); this->v[2][1]=
static_cast<DT
>(in21); this->v[2][2]=
static_cast<DT
>(in22);  this->v[2][3]=
static_cast<DT
>(in23); this->v[2][4]=
static_cast<DT
>(in24); this->v[2][5]=
static_cast<DT
>(in25);
 
  374  this->v[3][0]=
static_cast<DT
>(in30); this->v[3][1]=
static_cast<DT
>(in31); this->v[3][2]=
static_cast<DT
>(in32);  this->v[3][3]=
static_cast<DT
>(in33); this->v[3][4]=
static_cast<DT
>(in34); this->v[3][5]=
static_cast<DT
>(in35);
 
  375  this->v[4][0]=
static_cast<DT
>(in40); this->v[4][1]=
static_cast<DT
>(in41); this->v[4][2]=
static_cast<DT
>(in42);  this->v[4][3]=
static_cast<DT
>(in43); this->v[4][4]=
static_cast<DT
>(in44); this->v[4][5]=
static_cast<DT
>(in45);
 
  376  this->v[5][0]=
static_cast<DT
>(in50); this->v[5][1]=
static_cast<DT
>(in51); this->v[5][2]=
static_cast<DT
>(in52);  this->v[5][3]=
static_cast<DT
>(in53); this->v[5][4]=
static_cast<DT
>(in54); this->v[5][5]=
static_cast<DT
>(in55);
 
 
  387  this->v[0][0] = 
static_cast<DT
>(m[ 0]);  this->v[0][1] = 
static_cast<DT
>(m[ 1]);  this->v[0][2] = 
static_cast<DT
>(m[ 2]);  this->v[0][3] = 
static_cast<DT
>(m[ 3]);  this->v[0][4] = 
static_cast<DT
>(m[ 4]);  this->v[0][5] = 
static_cast<DT
>(m[ 5]);
 
  388  this->v[1][0] = 
static_cast<DT
>(m[ 6]);  this->v[1][1] = 
static_cast<DT
>(m[ 7]);  this->v[1][2] = 
static_cast<DT
>(m[ 8]);  this->v[1][3] = 
static_cast<DT
>(m[ 9]);  this->v[1][4] = 
static_cast<DT
>(m[10]);  this->v[1][5] = 
static_cast<DT
>(m[11]);
 
  389  this->v[2][0] = 
static_cast<DT
>(m[12]);  this->v[2][1] = 
static_cast<DT
>(m[13]);  this->v[2][2] = 
static_cast<DT
>(m[14]);  this->v[2][3] = 
static_cast<DT
>(m[15]);  this->v[2][4] = 
static_cast<DT
>(m[16]);  this->v[2][5] = 
static_cast<DT
>(m[17]);
 
  390  this->v[3][0] = 
static_cast<DT
>(m[18]);  this->v[3][1] = 
static_cast<DT
>(m[19]);  this->v[3][2] = 
static_cast<DT
>(m[20]);  this->v[3][3] = 
static_cast<DT
>(m[21]);  this->v[3][4] = 
static_cast<DT
>(m[22]);  this->v[3][5] = 
static_cast<DT
>(m[23]);
 
  391  this->v[4][0] = 
static_cast<DT
>(m[24]);  this->v[4][1] = 
static_cast<DT
>(m[25]);  this->v[4][2] = 
static_cast<DT
>(m[26]);  this->v[4][3] = 
static_cast<DT
>(m[27]);  this->v[4][4] = 
static_cast<DT
>(m[28]);  this->v[4][5] = 
static_cast<DT
>(m[29]);
 
  392  this->v[5][0] = 
static_cast<DT
>(m[30]);  this->v[5][1] = 
static_cast<DT
>(m[31]);  this->v[5][2] = 
static_cast<DT
>(m[32]);  this->v[5][3] = 
static_cast<DT
>(m[33]);  this->v[5][4] = 
static_cast<DT
>(m[34]);  this->v[5][5] = 
static_cast<DT
>(m[35]);
 
 
  404  m[ 0] = 
static_cast<float>(this->v[0][0]);  m[ 1] = 
static_cast<float>(this->v[0][1]);  m[ 2] = 
static_cast<float>(this->v[0][2]);  m[ 3] = 
static_cast<float>(this->v[0][3]);  m[ 4] = 
static_cast<float>(this->v[0][4]);  m[ 5] = 
static_cast<float>(this->v[0][5]);
 
  405  m[ 6] = 
static_cast<float>(this->v[1][0]);  m[ 7] = 
static_cast<float>(this->v[1][1]);  m[ 8] = 
static_cast<float>(this->v[1][2]);  m[ 9] = 
static_cast<float>(this->v[1][3]);  m[10] = 
static_cast<float>(this->v[1][4]);  m[11] = 
static_cast<float>(this->v[1][5]);
 
  406  m[12] = 
static_cast<float>(this->v[2][0]);  m[13] = 
static_cast<float>(this->v[2][1]);  m[14] = 
static_cast<float>(this->v[2][2]);  m[15] = 
static_cast<float>(this->v[2][3]);  m[16] = 
static_cast<float>(this->v[2][4]);  m[17] = 
static_cast<float>(this->v[2][5]);
 
  407  m[18] = 
static_cast<float>(this->v[3][0]);  m[19] = 
static_cast<float>(this->v[3][1]);  m[20] = 
static_cast<float>(this->v[3][2]);  m[21] = 
static_cast<float>(this->v[3][3]);  m[22] = 
static_cast<float>(this->v[3][4]);  m[23] = 
static_cast<float>(this->v[3][5]);
 
  408  m[24] = 
static_cast<float>(this->v[4][0]);  m[25] = 
static_cast<float>(this->v[4][1]);  m[26] = 
static_cast<float>(this->v[4][2]);  m[27] = 
static_cast<float>(this->v[4][3]);  m[28] = 
static_cast<float>(this->v[4][4]);  m[29] = 
static_cast<float>(this->v[4][5]);
 
  409  m[30] = 
static_cast<float>(this->v[5][0]);  m[31] = 
static_cast<float>(this->v[5][1]);  m[32] = 
static_cast<float>(this->v[5][2]);  m[33] = 
static_cast<float>(this->v[5][3]);  m[34] = 
static_cast<float>(this->v[5][4]);  m[35] = 
static_cast<float>(this->v[5][5]);
 
 
  419  this->v[0][0] = 
static_cast<DT
>(m[ 0]);  this->v[0][1] = 
static_cast<DT
>(m[ 1]);  this->v[0][2] = 
static_cast<DT
>(m[ 2]);  this->v[0][3] = 
static_cast<DT
>(m[ 3]);  this->v[0][4] = 
static_cast<DT
>(m[ 4]);  this->v[0][5] = 
static_cast<DT
>(m[ 5]);
 
  420  this->v[1][0] = 
static_cast<DT
>(m[ 6]);  this->v[1][1] = 
static_cast<DT
>(m[ 7]);  this->v[1][2] = 
static_cast<DT
>(m[ 8]);  this->v[1][3] = 
static_cast<DT
>(m[ 9]);  this->v[1][4] = 
static_cast<DT
>(m[10]);  this->v[1][5] = 
static_cast<DT
>(m[11]);
 
  421  this->v[2][0] = 
static_cast<DT
>(m[12]);  this->v[2][1] = 
static_cast<DT
>(m[13]);  this->v[2][2] = 
static_cast<DT
>(m[14]);  this->v[2][3] = 
static_cast<DT
>(m[15]);  this->v[2][4] = 
static_cast<DT
>(m[16]);  this->v[2][5] = 
static_cast<DT
>(m[17]);
 
  422  this->v[3][0] = 
static_cast<DT
>(m[18]);  this->v[3][1] = 
static_cast<DT
>(m[19]);  this->v[3][2] = 
static_cast<DT
>(m[20]);  this->v[3][3] = 
static_cast<DT
>(m[21]);  this->v[3][4] = 
static_cast<DT
>(m[22]);  this->v[3][5] = 
static_cast<DT
>(m[23]);
 
  423  this->v[4][0] = 
static_cast<DT
>(m[24]);  this->v[4][1] = 
static_cast<DT
>(m[25]);  this->v[4][2] = 
static_cast<DT
>(m[26]);  this->v[4][3] = 
static_cast<DT
>(m[27]);  this->v[4][4] = 
static_cast<DT
>(m[28]);  this->v[4][5] = 
static_cast<DT
>(m[29]);
 
  424  this->v[5][0] = 
static_cast<DT
>(m[30]);  this->v[5][1] = 
static_cast<DT
>(m[31]);  this->v[5][2] = 
static_cast<DT
>(m[32]);  this->v[5][3] = 
static_cast<DT
>(m[33]);  this->v[5][4] = 
static_cast<DT
>(m[34]);  this->v[5][5] = 
static_cast<DT
>(m[35]);
 
 
  434  m[ 0] = 
static_cast<double>(this->v[0][0]);  m[ 1] = 
static_cast<double>(this->v[0][1]);  m[ 2] = 
static_cast<double>(this->v[0][2]);  m[ 3] = 
static_cast<double>(this->v[0][3]);  m[ 4] = 
static_cast<double>(this->v[0][4]);  m[ 5] = 
static_cast<double>(this->v[0][5]);
 
  435  m[ 6] = 
static_cast<double>(this->v[1][0]);  m[ 7] = 
static_cast<double>(this->v[1][1]);  m[ 8] = 
static_cast<double>(this->v[1][2]);  m[ 9] = 
static_cast<double>(this->v[1][3]);  m[10] = 
static_cast<double>(this->v[1][4]);  m[11] = 
static_cast<double>(this->v[1][5]);
 
  436  m[12] = 
static_cast<double>(this->v[2][0]);  m[13] = 
static_cast<double>(this->v[2][1]);  m[14] = 
static_cast<double>(this->v[2][2]);  m[15] = 
static_cast<double>(this->v[2][3]);  m[16] = 
static_cast<double>(this->v[2][4]);  m[17] = 
static_cast<double>(this->v[2][5]);
 
  437  m[18] = 
static_cast<double>(this->v[3][0]);  m[19] = 
static_cast<double>(this->v[3][1]);  m[20] = 
static_cast<double>(this->v[3][2]);  m[21] = 
static_cast<double>(this->v[3][3]);  m[22] = 
static_cast<double>(this->v[3][4]);  m[23] = 
static_cast<double>(this->v[3][5]);
 
  438  m[24] = 
static_cast<double>(this->v[4][0]);  m[25] = 
static_cast<double>(this->v[4][1]);  m[26] = 
static_cast<double>(this->v[4][2]);  m[27] = 
static_cast<double>(this->v[4][3]);  m[28] = 
static_cast<double>(this->v[4][4]);  m[29] = 
static_cast<double>(this->v[4][5]);
 
  439  m[30] = 
static_cast<double>(this->v[5][0]);  m[31] = 
static_cast<double>(this->v[5][1]);  m[32] = 
static_cast<double>(this->v[5][2]);  m[33] = 
static_cast<double>(this->v[5][3]);  m[34] = 
static_cast<double>(this->v[5][4]);  m[35] = 
static_cast<double>(this->v[5][5]);
 
 
  449  this->v[0][0] = scale;   this->v[0][1] =     0;   this->v[0][2] =     0;   this->v[0][3] =     0;   this->v[0][4] =     0;   this->v[0][5] =     0;
 
  450  this->v[1][0] =     0;   this->v[1][1] = scale;   this->v[1][2] =     0;   this->v[1][3] =     0;   this->v[1][4] =     0;   this->v[1][5] =     0;
 
  451  this->v[2][0] =     0;   this->v[2][1] =     0;   this->v[2][2] = scale;   this->v[2][3] =     0;   this->v[2][4] =     0;   this->v[2][5] =     0;
 
  452  this->v[3][0] =     0;   this->v[3][1] =     0;   this->v[3][2] =     0;   this->v[3][3] = scale;   this->v[3][4] =     0;   this->v[3][5] =     0;
 
  453  this->v[4][0] =     0;   this->v[4][1] =     0;   this->v[4][2] =     0;   this->v[4][3] =     0;   this->v[4][4] = scale;   this->v[4][5] =     0;
 
  454  this->v[5][0] =     0;   this->v[5][1] =     0;   this->v[5][2] =     0;   this->v[5][3] =     0;   this->v[5][4] =     0;   this->v[5][5] = scale;
 
 
  470  return Tmat5<DT>(this->v[1][col1], this->v[1][col2], this->v[1][col3], this->v[1][col4], this->v[1][col5],
 
  471                   this->v[2][col1], this->v[2][col2], this->v[2][col3], this->v[2][col4], this->v[2][col5],
 
  472                   this->v[3][col1], this->v[3][col2], this->v[3][col3], this->v[3][col4], this->v[3][col5],
 
  473                   this->v[4][col1], this->v[4][col2], this->v[4][col3], this->v[4][col4], this->v[4][col5],
 
  474                   this->v[5][col1], this->v[5][col2], this->v[5][col3], this->v[5][col4], this->v[5][col5]).
det();
 
 
  483  return (  this->v[0][0] * determinantLower5(1, 2, 3, 4, 5)
 
  484          - this->v[0][1] * determinantLower5(0, 2, 3, 4, 5)
 
  485          + this->v[0][2] * determinantLower5(0, 1, 3, 4, 5)
 
  486          - this->v[0][3] * determinantLower5(0, 1, 2, 4, 5)
 
  487          + this->v[0][4] * determinantLower5(0, 1, 2, 3, 5)
 
  488          - this->v[0][5] * determinantLower5(0, 1, 2, 3, 4));
 
 
  504  static const DT Epsilon = 
static_cast<DT
>(10e-12);
 
  510                            "Tmat6<DT> Tmat6<DT>::inverse(bool* isInvertible) const, matrix not invertable",
 
 
  522  return Tmat6<DT>(
Tvec6<DT>(this->v[0][0], this->v[1][0], this->v[2][0], this->v[3][0], this->v[4][0], this->v[5][0]),
 
  523                   Tvec6<DT>(this->v[0][1], this->v[1][1], this->v[2][1], this->v[3][1], this->v[4][1], this->v[5][1]),
 
  524                   Tvec6<DT>(this->v[0][2], this->v[1][2], this->v[2][2], this->v[3][2], this->v[4][2], this->v[5][2]),
 
  525                   Tvec6<DT>(this->v[0][3], this->v[1][3], this->v[2][3], this->v[3][3], this->v[4][3], this->v[5][3]),
 
  526                   Tvec6<DT>(this->v[0][4], this->v[1][4], this->v[2][4], this->v[3][4], this->v[4][4], this->v[5][4]),
 
  527                   Tvec6<DT>(this->v[0][5], this->v[1][5], this->v[2][5], this->v[3][5], this->v[4][5], this->v[5][5]));
 
 
  550  this->v[0].
apply(fct);
 
  551  this->v[1].apply(fct);
 
  552  this->v[2].apply(fct);
 
  553  this->v[3].apply(fct);
 
  554  this->v[4].apply(fct);
 
  555  this->v[5].apply(fct);
 
 
 
  561#define _ML_MAT6_RC(i, j) a[i][0]*b[0][j] + a[i][1]*b[1][j] + a[i][2]*b[2][j] + \ 
  562a[i][3]*b[3][j] + a[i][4]*b[4][j] + a[i][5]*b[5][j] 
 
  569  return Tmat6<DT>(
Tvec6<DT>(
_ML_MAT6_RC(0,0), 
_ML_MAT6_RC(0,1), 
_ML_MAT6_RC(0,2), 
_ML_MAT6_RC(0,3), 
_ML_MAT6_RC(0,4), 
_ML_MAT6_RC(0,5)),
 
  570                   Tvec6<DT>(
_ML_MAT6_RC(1,0), 
_ML_MAT6_RC(1,1), 
_ML_MAT6_RC(1,2), 
_ML_MAT6_RC(1,3), 
_ML_MAT6_RC(1,4), 
_ML_MAT6_RC(1,5)),
 
  571                   Tvec6<DT>(
_ML_MAT6_RC(2,0), 
_ML_MAT6_RC(2,1), 
_ML_MAT6_RC(2,2), 
_ML_MAT6_RC(2,3), 
_ML_MAT6_RC(2,4), 
_ML_MAT6_RC(2,5)),
 
  572                   Tvec6<DT>(
_ML_MAT6_RC(3,0), 
_ML_MAT6_RC(3,1), 
_ML_MAT6_RC(3,2), 
_ML_MAT6_RC(3,3), 
_ML_MAT6_RC(3,4), 
_ML_MAT6_RC(3,5)),
 
  573                   Tvec6<DT>(
_ML_MAT6_RC(4,0), 
_ML_MAT6_RC(4,1), 
_ML_MAT6_RC(4,2), 
_ML_MAT6_RC(4,3), 
_ML_MAT6_RC(4,4), 
_ML_MAT6_RC(4,5)),
 
  574                   Tvec6<DT>(
_ML_MAT6_RC(5,0), 
_ML_MAT6_RC(5,1), 
_ML_MAT6_RC(5,2), 
_ML_MAT6_RC(5,3), 
_ML_MAT6_RC(5,4), 
_ML_MAT6_RC(5,5)));
 
 
  584  return (a[0] == b[0]) &&
 
 
  602#define _ML_MAT6_RC(i) a[i][0]*v[0] + a[i][1]*v[1] + a[i][2]*v[2] + a[i][3]*v[3] + a[i][4]*v[4] + a[i][5]*v[5] 
  648  inline std::ostream& 
operator<<(std::ostream& os, 
const ML_LA_NAMESPACE::Tmat6<DT> & m)
 
  650    return os << m[0] << 
'\n' << m[1] << 
'\n' << m[2] << 
'\n' << m[3] << 
'\n' << m[4] << 
'\n' << m[5];
 
 
  657  inline std::istream& 
operator>>(std::istream& is, ML_LA_NAMESPACE::Tmat6<DT> & m)
 
  659    ML_LA_NAMESPACE::Tmat6<DT> m_tmp;
 
  661    is >> m_tmp[0] >> m_tmp[1] >> m_tmp[2] >> m_tmp[3] >> m_tmp[4] >> m_tmp[5];
 
  662    if (is){ m = m_tmp; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Base class of all matrix classes that holds the data buffer and provides some general access methods.
 
VectorT v[size]
The rows constituting the matrix.
 
A 5x5 matrix class of five row vectors.
 
DT det() const
Determinant.
 
A 6x6 matrix class of six row vectors.
 
Tmat6()
Builds a 6x6 matrix from 36 zero elements.
 
Tmat6 transpose() const
Returns the transposed of this matrix.
 
const Tmat6< DT > & operator*=(const DT d)
Multiplies by a scalar constant d.
 
void setValues(const float m[36])
Copies the contents from float array m into *this.
 
const Tmat6< DT > & apply(MLDblFuncPtr fct)
Applies the function fct to each component.
 
static Tmat6< DT > getMat(const double val)
Returns a matrix filled with values val.
 
Tmat6(const double in00, const double in01, const double in02, const double in03, const double in04, const double in05, const double in10, const double in11, const double in12, const double in13, const double in14, const double in15, const double in20, const double in21, const double in22, const double in23, const double in24, const double in25, const double in30, const double in31, const double in32, const double in33, const double in34, const double in35, const double in40, const double in41, const double in42, const double in43, const double in44, const double in45, const double in50, const double in51, const double in52, const double in53, const double in54, const double in55)
Initializes all matrix elements explicitly with scalars, filling it row by row.
 
Tmat6(const Tmat6< DT > &m)
Copy constructor from the Tmat6 mat.
 
void set(const DT val)
Sets all values to val.
 
void setScaleMatrix(const DT scale)
Sets the diagonal matrix with scale on the diagonal.
 
bool operator<(const Tmat6< DT > &) const
Dummy 'lesser than operator' that always returns false.
 
DT determinantLower5(const int col1, const int col2, const int col3, const int col4, const int col5) const
Determines the (sub)determinant of columns given by col1, col2, col3, col4, and col5.
 
void getValues(float m[36]) const
Copies the contents of *this into float array m.
 
DT det() const
Returns the determinant of this matrix.
 
const Tmat6< DT > & operator+=(const Tmat6< DT > &m)
Adds component-wise with a Tmat6.
 
Tmat6(const double mat[36])
Constructor from 36 doubles given as array mat, read row by row.
 
Tmat6(const DT diagValue)
Builds a matrix that has the argument diagValue as the diagonal values, zero otherwise.
 
void getValues(double m[36]) const
Copies the contents of *this into double array m.
 
const Tmat6< DT > & operator-=(const Tmat6< DT > &m)
Subtracts component-wise by a Tmat6.
 
Tmat6(const float mat[36])
Constructor from 36 floats given as array mat, read row by row.
 
DT ComponentType
A typedef to 'export' the type of components.
 
const Tmat6< DT > & operator=(const Tmat6< DT > &m)
Assigns from a Tmat6.
 
const Tmat6< DT > & operator/=(const DT d)
Divides by a scalar constant d.
 
static Tmat6 getIdentity()
Returns the identity matrix.
 
void setValues(const double m[36])
Copies the contents from double array m into *this.
 
Tmat6< DT > inverse(bool *isInvertible=nullptr) const
Returns the inverse.
 
Tmat6(const Tvec6< DT > &row0, const Tvec6< DT > &row1, const Tvec6< DT > &row2, const Tvec6< DT > &row3, const Tvec6< DT > &row4, const Tvec6< DT > &row5)
Builds a matrix of the six row vectors row0, ..., row5.
 
A six dimensional vector class for floating point types.
 
bool MLValueIs0WOM(MLint8 a)
Returns true if value is 0; otherwise, it returns false.
 
#define ML_CHECK_THROW(x)
 
#define ML_CHECK_FLOAT_THROW(x)
 
#define _ML_MAT6_RC(i, j)
Internal helper macro to multiply two matrices, do not use.
 
double(* MLDblFuncPtr)(double)
A function pointer type to a function that returns a double and takes a double as argument.
 
FloatingPointVector< T, size, DataContainer > operator/(FloatingPointVector< T, size, DataContainer > lhs, MLdouble rhs)
Component-wise division of lhs by specialized rhs of type MLdouble.
 
bool operator==(const Tmat2< DT > &a, const Tmat2< DT > &b)
a == b ? Returns true if yes.
 
T operator*(const FloatingPointVector< T, size, DataContainer > &a, const FloatingPointVector< T, size, DataContainer > &b)
Dot product, returns a.dot(b).
 
bool operator!=(const Tmat2< DT > &a, const Tmat2< DT > &b)
a != b ? Returns true if yes.
 
FloatingPointVector< T, size, DataContainer > operator-(FloatingPointVector< T, size, DataContainer > lhs, const FloatingPointVector< T, size, DataContainer > &rhs)
Return value is the component-wise subtraction of rhs from lhs.
 
BASE_TYPE MLInverseMatHelper(const BASE_TYPE &origMat, bool *isInvertible, const typename BASE_TYPE::ComponentType, const char *const ZeroDetErrString, const BASE_TYPE &Identity, const size_t Dim)
Computes an N dimensional inverse from given default parameters.
 
MLEXPORT std::ostream & operator<<(std::ostream &s, const ml::Field &v)
Overloads the operator '<<' for stream output of Field objects.
 
istream & operator>>(istream &is, ml::FloatingPointVector< T, size, DataContainer > &v)
Reads a vector from std::istream.