9 for (
unsigned int i=0;i<5;i++)
mA[i]=0.;
11 DMatrix5x1(
double a1,
double a2,
double a3,
double a4,
double a5){
29 for (
unsigned int i=0;i<5;i++){
35 for (
unsigned int i=0;i<5;i++){
47 for (
unsigned int i=0;i<5;i++){
61 return (isfinite(
mA[0]) && isfinite(
mA[1]) && isfinite(
mA[2]) && isfinite(
mA[3]) && isfinite(
mA[4]));
66 cout <<
"DMatrix5x1:" <<endl;
67 cout <<
" | 0 |" <<endl;
68 cout <<
"----------------------" <<endl;
69 for (
unsigned int i=0;i<5;i++){
70 cout <<
" "<<i<<
" |" << setw(11)<<setprecision(6) <<
mA[i] << endl;
80 return DMatrix5x1(c*M(0),c*M(1),c*M(2),c*M(3),c*M(4));
92 for (
unsigned int j=0;j<3;j++){
93 mA->v[j]=_mm_setzero_pd();
103 DMatrix5x1(
double a1,
double a2,
double a3,
double a4,
double a5)
115 __m128d GetV(
int pair)
const{
144 return DMatrix5x1(_mm_add_pd(GetV(0),m2.GetV(0)),
145 _mm_add_pd(GetV(1),m2.GetV(1)),
146 _mm_add_pd(GetV(2),m2.GetV(2)));
149 mA->v[0]=_mm_add_pd(GetV(0),m2.GetV(0));
150 mA->v[1]=_mm_add_pd(GetV(1),m2.GetV(1));
151 mA->v[2]=_mm_add_pd(GetV(2),m2.GetV(2));
157 return DMatrix5x1(_mm_sub_pd(GetV(0),m2.GetV(0)),
158 _mm_sub_pd(GetV(1),m2.GetV(1)),
159 _mm_sub_pd(GetV(2),m2.GetV(2)));
163 cout <<
"DMatrix5x1:" <<endl;
164 cout <<
" | 0 |" <<endl;
165 cout <<
"----------------------" <<endl;
166 for (
unsigned int i=0;i<5;i++){
167 cout <<
" "<<i<<
" |" << setw(11)<<setprecision(4) <<
mA->d[i] << endl;
184 scale=_mm_set1_pd(c);
186 _mm_mul_pd(scale,M.GetV(1)),
187 _mm_mul_pd(scale,M.GetV(2)));
DMatrix2x1 operator*(const double c, const DMatrix2x1 &M)
#define ALIGNED_16_BLOCK_PTR(TYPE, NUM, PTR)
DMatrix5x1(double a1, double a2, double a3, double a4, double a5)
DMatrix5x1 & operator+=(const DMatrix5x1 &m2)
#define ALIGNED_16_BLOCK_WITH_PTR(TYPE, NUM, PTR)
DMatrix5x1 & operator=(const DMatrix5x1 &m2)
DMatrix5x1 operator-(const DMatrix5x1 &m2) const
DMatrix5x1(const DMatrix5x1 &m2)
double & operator()(int row)
DMatrix5x1 operator+(const DMatrix5x1 &m2) const
#define ALIGNED_16_BLOCK(TYPE, NUM, PTR)