template<class ArrayT>
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:
|