Home || Architecture || Video Search || Visual Search || Scripts || Applications || Important Messages || OGL || Src

template<class ArrayT>
Array::Element::Vec3Real64 Impala::Core::Matrix::MatMulVec ( ArrayT *  m,
Array::Element::Vec3Real64  b 
) [inline]

Definition at line 17 of file MatMulVec.h.

References MatE(), MatNrCol(), MatNrRow(), Impala::Core::Array::Element::Vec3Real64::X(), Impala::Core::Array::Element::Vec3Real64::Y(), and Impala::Core::Array::Element::Vec3Real64::Z().

Referenced by Impala::Core::Array::Pattern::FuncGeometricOp(), and Impala::Core::Array::Pattern::PatGeometricOp().

00018 {
00019     if ((MatNrRow(m) != 3) || (MatNrCol(m) != 3))
00020     {
00021         std::cerr << "nonconformant MatMulVec operands." << std::endl;
00022         return Array::Element::Vec3Real64(0, 0, 0);
00023     }
00024     double v[3];
00025     for (int i=0 ; i<MatNrRow(m) ; i++)
00026     {
00027         v[i] = *MatE(m, i, 0) * b.X() +
00028                *MatE(m, i, 1) * b.Y() +
00029                *MatE(m, i, 2) * b.Z();
00030     }
00031     return Array::Element::Vec3Real64(v[0], v[1], v[2]);
00032 }

Here is the call graph for this function:


Generated on Fri Mar 19 11:16:03 2010 for ImpalaSrc by  doxygen 1.5.1