#ifndef USE_SSE2 // Matrix class without SIMD instructions class DMatrix3x2{ public: DMatrix3x2(){ for (unsigned int i=0;i<2;i++){ for (unsigned int j=0;j<3;j++){ mA[i][j]=0.; } } } DMatrix3x2(const double A1,const double A2,const double B1,const double B2, const double C1,const double C2){ mA[0][0]=A1; mA[0][1]=A2; mA[1][0]=B1; mA[1][1]=B2; mA[2][0]=C1; mA[2][1]=C2; } ~DMatrix3x2(){}; double &operator() (int row,int col){ return mA[row][col]; } double operator() (int row,int col) const{ return mA[row][col]; } // Matrix multiplication: (3x2) x (2x2) DMatrix3x2 operator*(const DMatrix2x2 &m2){ return DMatrix3x2(mA[0][0]*m2(0,0)+mA[0][1]*m2(1,0), mA[0][0]*m2(0,1)+mA[0][1]*m2(1,1), mA[1][0]*m2(0,0)+mA[1][1]*m2(1,0), mA[1][0]*m2(0,1)+mA[1][1]*m2(1,1), mA[2][0]*m2(0,0)+mA[2][1]*m2(1,0), mA[2][0]*m2(0,1)+mA[2][1]*m2(1,1) ); } void Print(){ cout << "DMatrix3x2:" <