5 #ifndef _SQUAREMATRIXESBGK_H_
6 #define _SQUAREMATRIXESBGK_H_
47 for(
int i=1;i<
_order+1;i++)
50 s[i-1]=
fabs((*
this)(i,1));
51 for(
int j=2;j<_order+1;j++)
53 if(s[i-1]<
fabs((*
this)(i,j)))
54 s[i-1]=
fabs((*
this)(i,j));
66 T rmax=
fabs(LU(l[i-1],i)/s[l[i-1]]);
68 for(
int j=i+1;j<_order+1;j++)
70 T r=
fabs(LU(l[j-1],i)/s[l[j-1]]);
85 for(
int j=i+1;j<_order+1;j++)
87 T factor=LU(l[j-1],i)/LU(l[i-1],i);
90 cout<<
"GE NaN at l[j-1], l[i-1], LU(l[j-1],i), LU(l[i-1],i) "<<l[j-1]<<
" "<<l[i-1]<<
" "<<LU(l[j-1],i)<<
" "<<LU(l[i-1],i)<<endl;
91 bVec[l[j-1]-1]-=factor*bVec[l[i-1]-1];
92 for(
int k=i+1;k<_order+1;k++)
93 LU(l[j-1],k)=LU(l[j-1],k)-LU(l[i-1],k)*factor;
103 for(
int j=i+1;j<_order+1;j++)
107 bVec[
_pivotRows[j-1]-1]-=factor*bVec[_pivotRows[i-1]-1];
108 for(
int k=i+1;k<_order+1;k++)
110 LU(_pivotRows[j-1],k)=LU(_pivotRows[j-1],k)
111 -LU(_pivotRows[i-1],k)*factor;
149 for(
int i=_order-1;i>0;i--)
152 for(
int j=i+1;j<_order+1;j++)
153 sum=sum-LU(_pivotRows[i-1],j)*x[j-1];
154 x[i-1]=sum/LU(_pivotRows[i-1],i);
164 if(o.
_order!=this->_order)
165 throw CException(
"Cannot copy matrices of different sizes!");
175 for(
int i=1;i<
_order+1;i++)
177 for(
int j=1;j<_order+1;j++)
178 cout<<(*
this)(i,j)<<
" ";
187 for(
int i=1;i<
_order+1;i++)
188 trace+=
fabs((*
this)(i,i));
T & getElement(const int i, const int j)
T & operator()(const int i, const int j)
SquareMatrixESBGK(const int N)
void makeCopy(SquareMatrixESBGK< T > &o)
NumTypeTraits< T >::T_Scalar T_Scalar
Tangent fabs(const Tangent &a)