00001 template<int Cols> void solve_direct(const Matrix<2>& A, const Matrix<2, Cols>& b, Matrix<2,Cols>& x) 00002 { 00003 double t0 = A[0][0]*A[1][1]-A[0][1]*A[1][0]; 00004 double idet = 1/t0; 00005 t0 = A[1][1]; 00006 double i00 = t0*idet; 00007 t0 = -A[0][1]; 00008 double i01 = t0*idet; 00009 t0 = -A[1][0]; 00010 double i10 = t0*idet; 00011 t0 = A[0][0]; 00012 double i11 = t0*idet; 00013 for(unsigned int i=0; i < x.num_cols(); i++) 00014 { 00015 x[0][i] = i00*b[0][i] + i01*b[1][i]; 00016 x[1][i] = i10*b[0][i] + i11*b[1][i]; 00017 } 00018 } 00019 template<int Cols> void solve_direct(const Matrix<3>& A, const Matrix<3, Cols>& b, Matrix<3,Cols>& x) 00020 { 00021 double t0 = A[0][0]*A[1][1]*A[2][2]-A[0][0]*A[1][2]*A[2][1]-A[1][0]*A[0][1]*A[2][2]+A[1][0]*A[0][2]*A[2][1]+A[2][0]*A[0][1]*A[1][2]-A[2][0]*A[0][2]*A[1][1]; 00022 double idet = 1/t0; 00023 t0 = A[1][1]*A[2][2]-A[1][2]*A[2][1]; 00024 double i00 = t0*idet; 00025 t0 = -A[0][1]*A[2][2]+A[0][2]*A[2][1]; 00026 double i01 = t0*idet; 00027 t0 = A[0][1]*A[1][2]-A[0][2]*A[1][1]; 00028 double i02 = t0*idet; 00029 t0 = -A[1][0]*A[2][2]+A[1][2]*A[2][0]; 00030 double i10 = t0*idet; 00031 t0 = A[0][0]*A[2][2]-A[0][2]*A[2][0]; 00032 double i11 = t0*idet; 00033 t0 = -A[0][0]*A[1][2]+A[0][2]*A[1][0]; 00034 double i12 = t0*idet; 00035 t0 = A[1][0]*A[2][1]-A[1][1]*A[2][0]; 00036 double i20 = t0*idet; 00037 t0 = -A[0][0]*A[2][1]+A[0][1]*A[2][0]; 00038 double i21 = t0*idet; 00039 t0 = A[0][0]*A[1][1]-A[0][1]*A[1][0]; 00040 double i22 = t0*idet; 00041 for(unsigned int i=0; i < x.num_cols(); i++) 00042 { 00043 x[0][i] = i00*b[0][i] + i01*b[1][i] + i02*b[2][i]; 00044 x[1][i] = i10*b[0][i] + i11*b[1][i] + i12*b[2][i]; 00045 x[2][i] = i20*b[0][i] + i21*b[1][i] + i22*b[2][i]; 00046 } 00047 } 00048 template<int Cols> void solve_direct(const Matrix<4>& A, const Matrix<4, Cols>& b, Matrix<4,Cols>& x) 00049 { 00050 double t0 = A[0][0]*A[1][1]*A[2][2]*A[3][3]-A[0][0]*A[1][1]*A[2][3]*A[3][2]-A[0][0]*A[2][1]*A[1][2]*A[3][3]+A[0][0]*A[2][1]*A[1][3]*A[3][2]+A[0][0]*A[3][1]*A[1][2]*A[2][3]-A[0][0]*A[3][1]*A[1][3]*A[2][2]-A[1][0]*A[0][1]*A[2][2]*A[3][3]+A[1][0]*A[0][1]*A[2][3]*A[3][2]+A[1][0]*A[2][1]*A[0][2]*A[3][3]-A[1][0]*A[2][1]*A[0][3]*A[3][2]-A[1][0]*A[3][1]*A[0][2]*A[2][3]+A[1][0]*A[3][1]*A[0][3]*A[2][2]+A[2][0]*A[0][1]*A[1][2]*A[3][3]-A[2][0]*A[0][1]*A[1][3]*A[3][2]-A[2][0]*A[1][1]*A[0][2]*A[3][3]+A[2][0]*A[1][1]*A[0][3]*A[3][2]+A[2][0]*A[3][1]*A[0][2]*A[1][3]-A[2][0]*A[3][1]*A[0][3]*A[1][2]-A[3][0]*A[0][1]*A[1][2]*A[2][3]+A[3][0]*A[0][1]*A[1][3]*A[2][2]+A[3][0]*A[1][1]*A[0][2]*A[2][3]-A[3][0]*A[1][1]*A[0][3]*A[2][2]-A[3][0]*A[2][1]*A[0][2]*A[1][3]+A[3][0]*A[2][1]*A[0][3]*A[1][2]; 00051 double idet = 1/t0; 00052 t0 = A[1][1]*A[2][2]*A[3][3]-A[1][1]*A[2][3]*A[3][2]-A[2][1]*A[1][2]*A[3][3]+A[2][1]*A[1][3]*A[3][2]+A[3][1]*A[1][2]*A[2][3]-A[3][1]*A[1][3]*A[2][2]; 00053 double i00 = t0*idet; 00054 t0 = -A[0][1]*A[2][2]*A[3][3]+A[0][1]*A[2][3]*A[3][2]+A[2][1]*A[0][2]*A[3][3]-A[2][1]*A[0][3]*A[3][2]-A[3][1]*A[0][2]*A[2][3]+A[3][1]*A[0][3]*A[2][2]; 00055 double i01 = t0*idet; 00056 t0 = A[0][1]*A[1][2]*A[3][3]-A[0][1]*A[1][3]*A[3][2]-A[1][1]*A[0][2]*A[3][3]+A[1][1]*A[0][3]*A[3][2]+A[3][1]*A[0][2]*A[1][3]-A[3][1]*A[0][3]*A[1][2]; 00057 double i02 = t0*idet; 00058 t0 = -A[0][1]*A[1][2]*A[2][3]+A[0][1]*A[1][3]*A[2][2]+A[1][1]*A[0][2]*A[2][3]-A[1][1]*A[0][3]*A[2][2]-A[2][1]*A[0][2]*A[1][3]+A[2][1]*A[0][3]*A[1][2]; 00059 double i03 = t0*idet; 00060 t0 = -A[1][0]*A[2][2]*A[3][3]+A[1][0]*A[2][3]*A[3][2]+A[2][0]*A[1][2]*A[3][3]-A[2][0]*A[1][3]*A[3][2]-A[3][0]*A[1][2]*A[2][3]+A[3][0]*A[1][3]*A[2][2]; 00061 double i10 = t0*idet; 00062 t0 = A[0][0]*A[2][2]*A[3][3]-A[0][0]*A[2][3]*A[3][2]-A[2][0]*A[0][2]*A[3][3]+A[2][0]*A[0][3]*A[3][2]+A[3][0]*A[0][2]*A[2][3]-A[3][0]*A[0][3]*A[2][2]; 00063 double i11 = t0*idet; 00064 t0 = -A[0][0]*A[1][2]*A[3][3]+A[0][0]*A[1][3]*A[3][2]+A[1][0]*A[0][2]*A[3][3]-A[1][0]*A[0][3]*A[3][2]-A[3][0]*A[0][2]*A[1][3]+A[3][0]*A[0][3]*A[1][2]; 00065 double i12 = t0*idet; 00066 t0 = A[0][0]*A[1][2]*A[2][3]-A[0][0]*A[1][3]*A[2][2]-A[1][0]*A[0][2]*A[2][3]+A[1][0]*A[0][3]*A[2][2]+A[2][0]*A[0][2]*A[1][3]-A[2][0]*A[0][3]*A[1][2]; 00067 double i13 = t0*idet; 00068 t0 = A[1][0]*A[2][1]*A[3][3]-A[1][0]*A[2][3]*A[3][1]-A[2][0]*A[1][1]*A[3][3]+A[2][0]*A[1][3]*A[3][1]+A[3][0]*A[1][1]*A[2][3]-A[3][0]*A[1][3]*A[2][1]; 00069 double i20 = t0*idet; 00070 t0 = -A[0][0]*A[2][1]*A[3][3]+A[0][0]*A[2][3]*A[3][1]+A[2][0]*A[0][1]*A[3][3]-A[2][0]*A[0][3]*A[3][1]-A[3][0]*A[0][1]*A[2][3]+A[3][0]*A[0][3]*A[2][1]; 00071 double i21 = t0*idet; 00072 t0 = A[0][0]*A[1][1]*A[3][3]-A[0][0]*A[1][3]*A[3][1]-A[1][0]*A[0][1]*A[3][3]+A[1][0]*A[0][3]*A[3][1]+A[3][0]*A[0][1]*A[1][3]-A[3][0]*A[0][3]*A[1][1]; 00073 double i22 = t0*idet; 00074 t0 = -A[0][0]*A[1][1]*A[2][3]+A[0][0]*A[1][3]*A[2][1]+A[1][0]*A[0][1]*A[2][3]-A[1][0]*A[0][3]*A[2][1]-A[2][0]*A[0][1]*A[1][3]+A[2][0]*A[0][3]*A[1][1]; 00075 double i23 = t0*idet; 00076 t0 = -A[1][0]*A[2][1]*A[3][2]+A[1][0]*A[2][2]*A[3][1]+A[2][0]*A[1][1]*A[3][2]-A[2][0]*A[1][2]*A[3][1]-A[3][0]*A[1][1]*A[2][2]+A[3][0]*A[1][2]*A[2][1]; 00077 double i30 = t0*idet; 00078 t0 = A[0][0]*A[2][1]*A[3][2]-A[0][0]*A[2][2]*A[3][1]-A[2][0]*A[0][1]*A[3][2]+A[2][0]*A[0][2]*A[3][1]+A[3][0]*A[0][1]*A[2][2]-A[3][0]*A[0][2]*A[2][1]; 00079 double i31 = t0*idet; 00080 t0 = -A[0][0]*A[1][1]*A[3][2]+A[0][0]*A[1][2]*A[3][1]+A[1][0]*A[0][1]*A[3][2]-A[1][0]*A[0][2]*A[3][1]-A[3][0]*A[0][1]*A[1][2]+A[3][0]*A[0][2]*A[1][1]; 00081 double i32 = t0*idet; 00082 t0 = A[0][0]*A[1][1]*A[2][2]-A[0][0]*A[1][2]*A[2][1]-A[1][0]*A[0][1]*A[2][2]+A[1][0]*A[0][2]*A[2][1]+A[2][0]*A[0][1]*A[1][2]-A[2][0]*A[0][2]*A[1][1]; 00083 double i33 = t0*idet; 00084 for(unsigned int i=0; i < x.num_cols(); i++) 00085 { 00086 x[0][i] = i00*b[0][i] + i01*b[1][i] + i02*b[2][i] + i03*b[3][i]; 00087 x[1][i] = i10*b[0][i] + i11*b[1][i] + i12*b[2][i] + i13*b[3][i]; 00088 x[2][i] = i20*b[0][i] + i21*b[1][i] + i22*b[2][i] + i23*b[3][i]; 00089 x[3][i] = i30*b[0][i] + i31*b[1][i] + i32*b[2][i] + i33*b[3][i]; 00090 } 00091 } 00092 template<int Cols> void solve_direct(const Matrix<5>& A, const Matrix<5, Cols>& b, Matrix<5,Cols>& x) 00093 { 00094 double MapleGenVar3 = A[1][1]*A[2][2]*A[4][3]*A[3][0]*A[0][4]+A[1][1]*A[2][2]*A[4][0]*A[0][3]*A[3][4]-A[1][1]*A[2][2]*A[3][3]*A[4][0]*A[0][4]-A[1][1]*A[2][2]*A[3][0]*A[0][3]*A[4][4]-A[1][1]*A[3][3]*A[2][0]*A[0][2]*A[4][4]-A[1][1]*A[4][2]*A[2][3]*A[3][0]*A[0][4]-A[1][1]*A[4][0]*A[0][3]*A[3][2]*A[2][4]-A[1][1]*A[4][0]*A[0][2]*A[2][3]*A[3][4]+A[1][1]*A[2][3]*A[3][2]*A[4][0]*A[0][4]-A[1][1]*A[4][3]*A[3][0]*A[0][2]*A[2][4]+A[1][1]*A[3][3]*A[4][2]*A[2][0]*A[0][4]+A[1][1]*A[2][0]*A[0][3]*A[3][2]*A[4][4]-A[1][1]*A[4][3]*A[3][2]*A[2][0]*A[0][4]+A[1][1]*A[3][0]*A[0][2]*A[2][3]*A[4][4]+A[1][1]*A[4][3]*A[2][0]*A[0][2]*A[3][4]; 00095 double MapleGenVar2 = MapleGenVar3+A[1][1]*A[3][3]*A[4][0]*A[0][2]*A[2][4]-A[1][1]*A[4][2]*A[2][0]*A[0][3]*A[3][4]+A[1][1]*A[3][0]*A[0][3]*A[4][2]*A[2][4]-A[2][2]*A[4][3]*A[3][0]*A[0][1]*A[1][4]-A[0][0]*A[4][3]*A[1][2]*A[3][1]*A[2][4]-A[0][0]*A[4][1]*A[1][3]*A[3][2]*A[2][4]-A[2][2]*A[4][1]*A[1][0]*A[0][3]*A[3][4]+A[4][1]*A[1][0]*A[0][3]*A[3][2]*A[2][4]-A[2][2]*A[3][3]*A[1][0]*A[0][1]*A[4][4]-A[2][0]*A[0][1]*A[1][3]*A[3][2]*A[4][4]+A[4][3]*A[3][2]*A[2][0]*A[0][1]*A[1][4]-A[2][0]*A[3][1]*A[0][3]*A[1][2]*A[4][4]-A[2][0]*A[0][3]*A[3][2]*A[4][1]*A[1][4]-A[3][0]*A[0][1]*A[1][2]*A[2][3]*A[4][4]+A[3][1]*A[1][3]*A[2][0]*A[0][2]*A[4][4]; 00096 MapleGenVar3 = MapleGenVar2-A[4][3]*A[2][0]*A[0][1]*A[1][2]*A[3][4]+A[4][1]*A[1][2]*A[2][3]*A[3][0]*A[0][4]-A[3][1]*A[1][2]*A[2][3]*A[4][0]*A[0][4]+A[3][0]*A[0][3]*A[1][2]*A[2][1]*A[4][4]-A[3][0]*A[0][3]*A[4][2]*A[2][1]*A[1][4]-A[3][1]*A[1][3]*A[4][2]*A[2][0]*A[0][4]-A[3][0]*A[0][2]*A[2][3]*A[4][1]*A[1][4]-A[1][0]*A[3][1]*A[0][2]*A[2][3]*A[4][4]-A[1][0]*A[3][1]*A[0][3]*A[4][2]*A[2][4]-A[3][0]*A[0][3]*A[4][1]*A[1][2]*A[2][4]-A[3][1]*A[1][3]*A[4][0]*A[0][2]*A[2][4]+A[4][3]*A[3][2]*A[2][1]*A[1][0]*A[0][4]+A[4][2]*A[1][3]*A[2][1]*A[3][0]*A[0][4]-A[1][0]*A[2][1]*A[0][3]*A[3][2]*A[4][4]; 00097 double MapleGenVar1 = MapleGenVar3-A[3][3]*A[4][0]*A[0][2]*A[2][1]*A[1][4]-A[3][3]*A[4][0]*A[0][1]*A[1][2]*A[2][4]+A[3][3]*A[4][2]*A[1][0]*A[0][1]*A[2][4]-A[3][3]*A[4][2]*A[2][0]*A[0][1]*A[1][4]-A[3][0]*A[2][1]*A[0][2]*A[1][3]*A[4][4]-A[3][0]*A[0][1]*A[1][3]*A[4][2]*A[2][4]+A[4][2]*A[2][3]*A[3][1]*A[1][0]*A[0][4]-A[4][2]*A[2][3]*A[1][0]*A[0][1]*A[3][4]+A[4][2]*A[2][3]*A[3][0]*A[0][1]*A[1][4]+A[4][0]*A[0][1]*A[1][3]*A[3][2]*A[2][4]+A[4][1]*A[1][2]*A[2][0]*A[0][3]*A[3][4]-A[4][3]*A[1][2]*A[2][1]*A[3][0]*A[0][4]-A[4][3]*A[1][0]*A[0][2]*A[2][1]*A[3][4]+A[4][3]*A[1][2]*A[3][1]*A[2][0]*A[0][4]+A[4][3]*A[3][0]*A[0][2]*A[2][1]*A[1][4]+A[3][3]*A[1][2]*A[2][1]*A[4][0]*A[0][4]; 00098 MapleGenVar3 = A[4][0]*A[0][2]*A[2][3]*A[3][1]*A[1][4]-A[4][0]*A[0][3]*A[1][2]*A[2][1]*A[3][4]+A[4][0]*A[0][3]*A[1][2]*A[3][1]*A[2][4]+A[4][0]*A[0][3]*A[3][2]*A[2][1]*A[1][4]+A[4][2]*A[2][0]*A[0][1]*A[1][3]*A[3][4]+A[4][1]*A[1][3]*A[3][0]*A[0][2]*A[2][4]-A[4][1]*A[1][3]*A[2][0]*A[0][2]*A[3][4]+A[3][3]*A[2][0]*A[0][1]*A[1][2]*A[4][4]+A[3][3]*A[2][0]*A[0][2]*A[4][1]*A[1][4]+A[3][3]*A[1][0]*A[0][2]*A[2][1]*A[4][4]-A[3][3]*A[4][1]*A[1][2]*A[2][0]*A[0][4]-A[3][3]*A[4][2]*A[2][1]*A[1][0]*A[0][4]+A[4][2]*A[1][0]*A[0][3]*A[2][1]*A[3][4]-A[2][1]*A[1][3]*A[3][2]*A[4][0]*A[0][4]+A[4][3]*A[1][0]*A[0][2]*A[3][1]*A[2][4]; 00099 MapleGenVar2 = MapleGenVar3+A[4][3]*A[3][0]*A[0][1]*A[1][2]*A[2][4]+A[4][0]*A[0][2]*A[1][3]*A[2][1]*A[3][4]-A[4][3]*A[3][2]*A[1][0]*A[0][1]*A[2][4]-A[4][3]*A[2][0]*A[0][2]*A[3][1]*A[1][4]+A[4][2]*A[2][0]*A[0][3]*A[3][1]*A[1][4]-A[3][3]*A[4][1]*A[1][0]*A[0][2]*A[2][4]+A[2][2]*A[3][3]*A[4][0]*A[0][1]*A[1][4]-A[2][3]*A[3][2]*A[4][1]*A[1][0]*A[0][4]+A[2][3]*A[3][2]*A[1][0]*A[0][1]*A[4][4]-A[2][3]*A[3][2]*A[4][0]*A[0][1]*A[1][4]+A[4][1]*A[1][3]*A[3][2]*A[2][0]*A[0][4]+A[2][2]*A[3][0]*A[0][3]*A[4][1]*A[1][4]+A[2][2]*A[4][3]*A[1][0]*A[0][1]*A[3][4]+A[2][2]*A[1][0]*A[3][1]*A[0][3]*A[4][4]+A[2][2]*A[3][1]*A[1][3]*A[4][0]*A[0][4]; 00100 MapleGenVar3 = A[2][2]*A[3][3]*A[4][1]*A[1][0]*A[0][4]-A[2][2]*A[4][1]*A[1][3]*A[3][0]*A[0][4]-A[2][2]*A[4][0]*A[0][3]*A[3][1]*A[1][4]-A[2][2]*A[4][0]*A[0][1]*A[1][3]*A[3][4]+A[2][2]*A[3][0]*A[0][1]*A[1][3]*A[4][4]-A[2][2]*A[4][3]*A[3][1]*A[1][0]*A[0][4]+A[4][0]*A[0][1]*A[1][2]*A[2][3]*A[3][4]+A[4][1]*A[1][0]*A[0][2]*A[2][3]*A[3][4]-A[0][0]*A[1][1]*A[2][2]*A[4][3]*A[3][4]+A[0][0]*A[1][1]*A[2][2]*A[3][3]*A[4][4]+A[0][0]*A[1][1]*A[4][2]*A[2][3]*A[3][4]-A[0][0]*A[1][1]*A[2][3]*A[3][2]*A[4][4]+A[0][0]*A[1][1]*A[4][3]*A[3][2]*A[2][4]-A[0][0]*A[1][1]*A[3][3]*A[4][2]*A[2][4]-A[0][0]*A[2][2]*A[3][1]*A[1][3]*A[4][4]+A[0][0]*A[2][2]*A[4][3]*A[3][1]*A[1][4]; 00101 double t0 = MapleGenVar3+A[0][0]*A[2][2]*A[4][1]*A[1][3]*A[3][4]-A[0][0]*A[2][2]*A[3][3]*A[4][1]*A[1][4]-A[0][0]*A[4][2]*A[2][3]*A[3][1]*A[1][4]-A[0][0]*A[4][1]*A[1][2]*A[2][3]*A[3][4]+A[0][0]*A[3][3]*A[4][2]*A[2][1]*A[1][4]+A[0][0]*A[2][3]*A[3][2]*A[4][1]*A[1][4]+A[0][0]*A[4][3]*A[1][2]*A[2][1]*A[3][4]-A[0][0]*A[3][3]*A[1][2]*A[2][1]*A[4][4]+A[0][0]*A[3][3]*A[4][1]*A[1][2]*A[2][4]-A[0][0]*A[4][3]*A[3][2]*A[2][1]*A[1][4]+A[0][0]*A[3][1]*A[1][2]*A[2][3]*A[4][4]+A[0][0]*A[3][1]*A[1][3]*A[4][2]*A[2][4]+A[0][0]*A[2][1]*A[1][3]*A[3][2]*A[4][4]-A[0][0]*A[4][2]*A[1][3]*A[2][1]*A[3][4]+MapleGenVar2+MapleGenVar1; 00102 double idet = 1/t0; 00103 t0 = -A[1][1]*A[2][2]*A[4][3]*A[3][4]+A[1][1]*A[2][2]*A[3][3]*A[4][4]+A[1][1]*A[4][2]*A[2][3]*A[3][4]-A[1][1]*A[2][3]*A[3][2]*A[4][4]+A[1][1]*A[4][3]*A[3][2]*A[2][4]-A[1][1]*A[3][3]*A[4][2]*A[2][4]-A[2][2]*A[3][1]*A[1][3]*A[4][4]+A[2][2]*A[4][3]*A[3][1]*A[1][4]+A[2][2]*A[4][1]*A[1][3]*A[3][4]-A[2][2]*A[3][3]*A[4][1]*A[1][4]-A[4][2]*A[2][3]*A[3][1]*A[1][4]-A[4][1]*A[1][2]*A[2][3]*A[3][4]+A[3][3]*A[4][2]*A[2][1]*A[1][4]+A[2][3]*A[3][2]*A[4][1]*A[1][4]-A[4][3]*A[1][2]*A[3][1]*A[2][4]+A[4][3]*A[1][2]*A[2][1]*A[3][4]-A[3][3]*A[1][2]*A[2][1]*A[4][4]-A[4][1]*A[1][3]*A[3][2]*A[2][4]+A[3][3]*A[4][1]*A[1][2]*A[2][4]-A[4][3]*A[3][2]*A[2][1]*A[1][4]+A[3][1]*A[1][2]*A[2][3]*A[4][4]+A[3][1]*A[1][3]*A[4][2]*A[2][4]+A[2][1]*A[1][3]*A[3][2]*A[4][4]-A[4][2]*A[1][3]*A[2][1]*A[3][4]; 00104 double i00 = t0*idet; 00105 t0 = A[4][4]*A[0][1]*A[2][3]*A[3][2]-A[0][4]*A[2][3]*A[3][2]*A[4][1]+A[2][2]*A[4][4]*A[3][1]*A[0][3]-A[4][4]*A[2][1]*A[0][3]*A[3][2]+A[3][3]*A[4][2]*A[2][4]*A[0][1]-A[4][3]*A[3][4]*A[2][1]*A[0][2]-A[4][4]*A[3][1]*A[0][2]*A[2][3]+A[2][2]*A[3][3]*A[0][4]*A[4][1]-A[4][2]*A[2][3]*A[3][4]*A[0][1]-A[2][2]*A[0][3]*A[3][4]*A[4][1]+A[0][4]*A[4][2]*A[2][3]*A[3][1]+A[0][4]*A[4][3]*A[2][1]*A[3][2]-A[2][2]*A[0][4]*A[4][3]*A[3][1]+A[3][3]*A[4][4]*A[2][1]*A[0][2]+A[0][2]*A[2][3]*A[3][4]*A[4][1]-A[3][3]*A[0][4]*A[4][2]*A[2][1]+A[0][3]*A[3][4]*A[4][2]*A[2][1]+A[2][2]*A[4][3]*A[3][4]*A[0][1]+A[0][2]*A[2][4]*A[4][3]*A[3][1]+A[0][3]*A[3][2]*A[2][4]*A[4][1]-A[2][2]*A[3][3]*A[4][4]*A[0][1]-A[4][3]*A[3][2]*A[2][4]*A[0][1]-A[4][2]*A[2][4]*A[3][1]*A[0][3]-A[3][3]*A[0][2]*A[2][4]*A[4][1]; 00106 double i01 = t0*idet; 00107 t0 = A[1][1]*A[3][3]*A[0][4]*A[4][2]-A[1][1]*A[3][3]*A[4][4]*A[0][2]-A[1][1]*A[0][3]*A[3][4]*A[4][2]-A[1][1]*A[0][4]*A[4][3]*A[3][2]+A[1][1]*A[4][4]*A[0][3]*A[3][2]+A[1][1]*A[4][3]*A[3][4]*A[0][2]-A[3][3]*A[0][1]*A[1][4]*A[4][2]-A[3][3]*A[0][4]*A[4][1]*A[1][2]+A[3][3]*A[4][1]*A[1][4]*A[0][2]+A[3][3]*A[4][4]*A[0][1]*A[1][2]-A[4][3]*A[3][4]*A[0][1]*A[1][2]-A[4][1]*A[1][3]*A[3][4]*A[0][2]+A[3][1]*A[1][3]*A[4][4]*A[0][2]+A[0][1]*A[1][3]*A[3][4]*A[4][2]-A[4][4]*A[0][1]*A[1][3]*A[3][2]+A[0][4]*A[4][3]*A[1][2]*A[3][1]-A[4][1]*A[1][4]*A[0][3]*A[3][2]+A[0][4]*A[4][1]*A[1][3]*A[3][2]-A[4][3]*A[3][1]*A[1][4]*A[0][2]+A[0][1]*A[1][4]*A[4][3]*A[3][2]-A[0][4]*A[3][1]*A[1][3]*A[4][2]+A[0][3]*A[3][4]*A[4][1]*A[1][2]-A[4][4]*A[3][1]*A[0][3]*A[1][2]+A[0][3]*A[3][1]*A[1][4]*A[4][2]; 00108 double i02 = t0*idet; 00109 t0 = -A[1][1]*A[2][2]*A[4][4]*A[0][3]+A[1][1]*A[2][2]*A[0][4]*A[4][3]-A[1][1]*A[0][4]*A[4][2]*A[2][3]+A[1][1]*A[4][2]*A[2][4]*A[0][3]-A[1][1]*A[0][2]*A[2][4]*A[4][3]+A[1][1]*A[4][4]*A[0][2]*A[2][3]+A[2][2]*A[4][1]*A[1][4]*A[0][3]-A[2][2]*A[0][1]*A[1][4]*A[4][3]-A[2][2]*A[0][4]*A[4][1]*A[1][3]+A[2][2]*A[4][4]*A[0][1]*A[1][3]+A[4][4]*A[2][1]*A[0][3]*A[1][2]+A[0][2]*A[2][1]*A[1][4]*A[4][3]-A[4][1]*A[1][4]*A[0][2]*A[2][3]-A[4][4]*A[0][1]*A[1][2]*A[2][3]+A[0][4]*A[4][2]*A[1][3]*A[2][1]-A[4][2]*A[2][4]*A[0][1]*A[1][3]-A[4][1]*A[1][2]*A[2][4]*A[0][3]-A[4][4]*A[2][1]*A[0][2]*A[1][3]-A[4][2]*A[2][1]*A[1][4]*A[0][3]+A[0][1]*A[1][4]*A[4][2]*A[2][3]-A[0][4]*A[1][2]*A[2][1]*A[4][3]+A[0][1]*A[1][2]*A[2][4]*A[4][3]+A[0][2]*A[2][4]*A[4][1]*A[1][3]+A[0][4]*A[4][1]*A[1][2]*A[2][3]; 00110 double i03 = t0*idet; 00111 t0 = A[1][1]*A[2][2]*A[0][3]*A[3][4]-A[1][1]*A[2][2]*A[3][3]*A[0][4]+A[1][1]*A[3][3]*A[0][2]*A[2][4]-A[1][1]*A[0][3]*A[3][2]*A[2][4]-A[1][1]*A[0][2]*A[2][3]*A[3][4]+A[1][1]*A[2][3]*A[3][2]*A[0][4]+A[2][2]*A[3][1]*A[1][3]*A[0][4]-A[2][2]*A[0][1]*A[1][3]*A[3][4]-A[2][2]*A[0][3]*A[3][1]*A[1][4]+A[2][2]*A[3][3]*A[0][1]*A[1][4]+A[0][2]*A[2][3]*A[3][1]*A[1][4]+A[3][3]*A[1][2]*A[2][1]*A[0][4]-A[3][3]*A[0][1]*A[1][2]*A[2][4]-A[3][3]*A[0][2]*A[2][1]*A[1][4]-A[2][3]*A[3][2]*A[0][1]*A[1][4]+A[0][3]*A[1][2]*A[3][1]*A[2][4]+A[0][3]*A[3][2]*A[2][1]*A[1][4]+A[2][1]*A[0][2]*A[1][3]*A[3][4]-A[2][1]*A[1][3]*A[3][2]*A[0][4]-A[3][1]*A[1][3]*A[0][2]*A[2][4]-A[3][1]*A[1][2]*A[2][3]*A[0][4]+A[0][1]*A[1][3]*A[3][2]*A[2][4]+A[0][1]*A[1][2]*A[2][3]*A[3][4]-A[0][3]*A[1][2]*A[2][1]*A[3][4]; 00112 double i04 = t0*idet; 00113 t0 = -A[2][2]*A[1][4]*A[4][3]*A[3][0]-A[2][2]*A[3][3]*A[4][4]*A[1][0]-A[4][4]*A[2][0]*A[1][3]*A[3][2]+A[1][4]*A[4][3]*A[2][0]*A[3][2]-A[4][4]*A[3][0]*A[1][2]*A[2][3]-A[4][3]*A[3][4]*A[2][0]*A[1][2]-A[3][3]*A[1][2]*A[2][4]*A[4][0]+A[3][3]*A[4][2]*A[2][4]*A[1][0]-A[3][3]*A[1][4]*A[4][2]*A[2][0]-A[4][2]*A[2][4]*A[3][0]*A[1][3]-A[4][2]*A[2][3]*A[3][4]*A[1][0]+A[1][4]*A[4][2]*A[2][3]*A[3][0]+A[1][3]*A[3][2]*A[2][4]*A[4][0]+A[1][3]*A[3][4]*A[4][2]*A[2][0]+A[3][3]*A[4][4]*A[2][0]*A[1][2]+A[1][2]*A[2][4]*A[4][3]*A[3][0]-A[4][3]*A[3][2]*A[2][4]*A[1][0]+A[2][2]*A[3][3]*A[1][4]*A[4][0]+A[4][4]*A[1][0]*A[2][3]*A[3][2]-A[1][4]*A[2][3]*A[3][2]*A[4][0]+A[2][2]*A[4][3]*A[3][4]*A[1][0]-A[2][2]*A[1][3]*A[3][4]*A[4][0]+A[2][2]*A[4][4]*A[3][0]*A[1][3]+A[1][2]*A[2][3]*A[3][4]*A[4][0]; 00114 double i10 = t0*idet; 00115 t0 = A[0][0]*A[2][2]*A[4][4]*A[3][3]-A[0][0]*A[2][2]*A[4][3]*A[3][4]-A[0][0]*A[4][2]*A[2][4]*A[3][3]-A[0][0]*A[4][4]*A[2][3]*A[3][2]+A[0][0]*A[4][3]*A[3][2]*A[2][4]+A[0][0]*A[4][2]*A[2][3]*A[3][4]-A[2][2]*A[4][0]*A[0][4]*A[3][3]-A[2][2]*A[3][0]*A[0][3]*A[4][4]+A[2][2]*A[4][3]*A[3][0]*A[0][4]+A[2][2]*A[4][0]*A[0][3]*A[3][4]-A[3][3]*A[2][0]*A[0][2]*A[4][4]+A[3][3]*A[4][0]*A[0][2]*A[2][4]+A[3][3]*A[4][2]*A[2][0]*A[0][4]+A[2][0]*A[0][3]*A[3][2]*A[4][4]-A[4][0]*A[0][3]*A[3][2]*A[2][4]-A[4][3]*A[3][2]*A[2][0]*A[0][4]+A[3][0]*A[0][2]*A[2][3]*A[4][4]-A[4][3]*A[3][0]*A[0][2]*A[2][4]-A[4][0]*A[0][2]*A[2][3]*A[3][4]-A[4][2]*A[2][3]*A[3][0]*A[0][4]-A[4][2]*A[2][0]*A[0][3]*A[3][4]+A[4][3]*A[2][0]*A[0][2]*A[3][4]+A[3][0]*A[0][3]*A[4][2]*A[2][4]+A[4][0]*A[0][4]*A[2][3]*A[3][2]; 00116 double i11 = t0*idet; 00117 t0 = A[0][0]*A[3][3]*A[1][4]*A[4][2]-A[0][0]*A[3][3]*A[4][4]*A[1][2]-A[0][0]*A[1][4]*A[4][3]*A[3][2]+A[0][0]*A[4][4]*A[1][3]*A[3][2]-A[0][0]*A[1][3]*A[3][4]*A[4][2]+A[0][0]*A[4][3]*A[3][4]*A[1][2]+A[3][3]*A[4][0]*A[0][4]*A[1][2]-A[3][3]*A[1][0]*A[0][4]*A[4][2]+A[3][3]*A[4][4]*A[1][0]*A[0][2]-A[3][3]*A[1][4]*A[4][0]*A[0][2]-A[4][3]*A[3][4]*A[1][0]*A[0][2]+A[1][0]*A[0][3]*A[3][4]*A[4][2]+A[1][4]*A[4][3]*A[3][0]*A[0][2]+A[1][4]*A[4][0]*A[0][3]*A[3][2]-A[4][3]*A[3][0]*A[0][4]*A[1][2]+A[1][3]*A[3][0]*A[0][4]*A[4][2]-A[1][4]*A[3][0]*A[0][3]*A[4][2]+A[3][0]*A[0][3]*A[4][4]*A[1][2]+A[1][0]*A[0][4]*A[4][3]*A[3][2]+A[1][3]*A[3][4]*A[4][0]*A[0][2]-A[4][0]*A[0][4]*A[1][3]*A[3][2]-A[4][0]*A[0][3]*A[3][4]*A[1][2]-A[4][4]*A[1][0]*A[0][3]*A[3][2]-A[4][4]*A[3][0]*A[0][2]*A[1][3]; 00118 double i12 = t0*idet; 00119 t0 = -A[0][0]*A[2][2]*A[4][4]*A[1][3]+A[0][0]*A[2][2]*A[1][4]*A[4][3]+A[0][0]*A[4][2]*A[2][4]*A[1][3]-A[0][0]*A[1][4]*A[4][2]*A[2][3]-A[0][0]*A[1][2]*A[2][4]*A[4][3]+A[0][0]*A[4][4]*A[1][2]*A[2][3]+A[2][2]*A[4][0]*A[0][4]*A[1][3]-A[2][2]*A[1][0]*A[0][4]*A[4][3]+A[2][2]*A[4][4]*A[1][0]*A[0][3]-A[2][2]*A[1][4]*A[4][0]*A[0][3]+A[2][0]*A[0][2]*A[4][4]*A[1][3]-A[4][4]*A[2][0]*A[0][3]*A[1][2]-A[4][0]*A[0][2]*A[2][4]*A[1][3]+A[1][2]*A[2][4]*A[4][0]*A[0][3]-A[4][2]*A[2][4]*A[1][0]*A[0][3]-A[4][0]*A[0][4]*A[1][2]*A[2][3]+A[1][0]*A[0][2]*A[2][4]*A[4][3]-A[4][4]*A[1][0]*A[0][2]*A[2][3]+A[1][2]*A[2][0]*A[0][4]*A[4][3]+A[1][4]*A[4][0]*A[0][2]*A[2][3]+A[1][4]*A[4][2]*A[2][0]*A[0][3]+A[1][0]*A[0][4]*A[4][2]*A[2][3]-A[1][4]*A[2][0]*A[0][2]*A[4][3]-A[4][2]*A[2][0]*A[0][4]*A[1][3]; 00120 double i13 = t0*idet; 00121 t0 = -A[0][0]*A[2][2]*A[3][3]*A[1][4]+A[0][0]*A[2][2]*A[1][3]*A[3][4]+A[0][0]*A[3][3]*A[1][2]*A[2][4]-A[0][0]*A[1][3]*A[3][2]*A[2][4]+A[0][0]*A[2][3]*A[3][2]*A[1][4]-A[0][0]*A[1][2]*A[2][3]*A[3][4]+A[2][2]*A[3][3]*A[1][0]*A[0][4]+A[2][2]*A[3][0]*A[0][3]*A[1][4]-A[2][2]*A[1][3]*A[3][0]*A[0][4]-A[2][2]*A[1][0]*A[0][3]*A[3][4]-A[3][3]*A[1][2]*A[2][0]*A[0][4]+A[3][3]*A[2][0]*A[0][2]*A[1][4]-A[3][3]*A[1][0]*A[0][2]*A[2][4]-A[3][0]*A[0][2]*A[2][3]*A[1][4]-A[3][0]*A[0][3]*A[1][2]*A[2][4]+A[1][2]*A[2][3]*A[3][0]*A[0][4]+A[1][3]*A[3][0]*A[0][2]*A[2][4]+A[2][0]*A[0][3]*A[1][2]*A[3][4]+A[1][0]*A[0][2]*A[2][3]*A[3][4]+A[1][3]*A[3][2]*A[2][0]*A[0][4]-A[2][3]*A[3][2]*A[1][0]*A[0][4]-A[2][0]*A[0][3]*A[3][2]*A[1][4]-A[1][3]*A[2][0]*A[0][2]*A[3][4]+A[1][0]*A[0][3]*A[3][2]*A[2][4]; 00122 double i14 = t0*idet; 00123 t0 = -A[1][1]*A[3][3]*A[4][4]*A[2][0]+A[1][1]*A[3][3]*A[2][4]*A[4][0]-A[1][1]*A[2][4]*A[4][3]*A[3][0]-A[1][1]*A[2][3]*A[3][4]*A[4][0]+A[1][1]*A[4][4]*A[3][0]*A[2][3]+A[1][1]*A[4][3]*A[3][4]*A[2][0]-A[3][3]*A[2][1]*A[1][4]*A[4][0]+A[3][3]*A[4][1]*A[1][4]*A[2][0]+A[3][3]*A[4][4]*A[1][0]*A[2][1]-A[3][3]*A[2][4]*A[1][0]*A[4][1]+A[2][3]*A[3][4]*A[1][0]*A[4][1]-A[4][4]*A[1][0]*A[2][3]*A[3][1]+A[2][4]*A[4][1]*A[1][3]*A[3][0]+A[1][3]*A[2][1]*A[3][4]*A[4][0]+A[3][1]*A[1][3]*A[4][4]*A[2][0]-A[4][1]*A[1][4]*A[3][0]*A[2][3]-A[4][4]*A[3][0]*A[1][3]*A[2][1]+A[2][3]*A[3][1]*A[1][4]*A[4][0]+A[2][1]*A[1][4]*A[4][3]*A[3][0]-A[4][3]*A[3][1]*A[1][4]*A[2][0]-A[4][1]*A[1][3]*A[3][4]*A[2][0]+A[2][4]*A[4][3]*A[1][0]*A[3][1]-A[4][3]*A[3][4]*A[1][0]*A[2][1]-A[2][4]*A[3][1]*A[1][3]*A[4][0]; 00124 double i20 = t0*idet; 00125 t0 = -A[0][0]*A[3][3]*A[4][4]*A[2][1]-A[2][4]*A[3][0]*A[0][3]*A[4][1]-A[3][3]*A[2][4]*A[4][0]*A[0][1]-A[0][0]*A[2][3]*A[3][4]*A[4][1]+A[2][0]*A[0][4]*A[4][3]*A[3][1]+A[0][0]*A[4][3]*A[3][4]*A[2][1]+A[3][3]*A[4][4]*A[2][0]*A[0][1]+A[0][0]*A[3][3]*A[2][4]*A[4][1]+A[2][0]*A[0][3]*A[3][4]*A[4][1]+A[0][0]*A[4][4]*A[2][3]*A[3][1]+A[2][4]*A[4][3]*A[3][0]*A[0][1]+A[3][3]*A[4][0]*A[0][4]*A[2][1]-A[4][0]*A[0][3]*A[3][4]*A[2][1]-A[4][4]*A[2][0]*A[0][3]*A[3][1]+A[2][4]*A[4][0]*A[0][3]*A[3][1]-A[4][4]*A[3][0]*A[0][1]*A[2][3]-A[4][3]*A[3][0]*A[0][4]*A[2][1]-A[4][3]*A[3][4]*A[2][0]*A[0][1]+A[2][3]*A[3][0]*A[0][4]*A[4][1]-A[4][0]*A[0][4]*A[2][3]*A[3][1]+A[3][0]*A[0][3]*A[4][4]*A[2][1]-A[3][3]*A[2][0]*A[0][4]*A[4][1]-A[0][0]*A[2][4]*A[4][3]*A[3][1]+A[2][3]*A[3][4]*A[4][0]*A[0][1]; 00126 double i21 = t0*idet; 00127 t0 = A[0][0]*A[1][1]*A[4][4]*A[3][3]-A[0][0]*A[1][1]*A[4][3]*A[3][4]-A[0][0]*A[4][1]*A[1][4]*A[3][3]-A[0][0]*A[4][4]*A[1][3]*A[3][1]+A[0][0]*A[4][1]*A[1][3]*A[3][4]+A[0][0]*A[4][3]*A[3][1]*A[1][4]-A[1][1]*A[4][0]*A[0][4]*A[3][3]-A[1][1]*A[3][0]*A[0][3]*A[4][4]+A[1][1]*A[4][3]*A[3][0]*A[0][4]+A[1][1]*A[4][0]*A[0][3]*A[3][4]-A[3][3]*A[1][0]*A[0][1]*A[4][4]+A[3][3]*A[4][1]*A[1][0]*A[0][4]+A[3][3]*A[4][0]*A[0][1]*A[1][4]-A[4][3]*A[3][1]*A[1][0]*A[0][4]+A[3][0]*A[0][3]*A[4][1]*A[1][4]-A[4][1]*A[1][0]*A[0][3]*A[3][4]+A[4][0]*A[0][4]*A[1][3]*A[3][1]+A[3][0]*A[0][1]*A[1][3]*A[4][4]-A[4][0]*A[0][3]*A[3][1]*A[1][4]-A[4][3]*A[3][0]*A[0][1]*A[1][4]+A[1][0]*A[3][1]*A[0][3]*A[4][4]-A[4][0]*A[0][1]*A[1][3]*A[3][4]-A[4][1]*A[1][3]*A[3][0]*A[0][4]+A[4][3]*A[1][0]*A[0][1]*A[3][4]; 00128 double i22 = t0*idet; 00129 t0 = -A[0][0]*A[1][1]*A[4][4]*A[2][3]+A[0][0]*A[1][1]*A[2][4]*A[4][3]-A[0][0]*A[2][4]*A[4][1]*A[1][3]-A[0][0]*A[2][1]*A[1][4]*A[4][3]+A[0][0]*A[4][1]*A[1][4]*A[2][3]+A[0][0]*A[4][4]*A[1][3]*A[2][1]-A[1][1]*A[2][0]*A[0][4]*A[4][3]+A[1][1]*A[4][4]*A[2][0]*A[0][3]-A[1][1]*A[2][4]*A[4][0]*A[0][3]+A[1][1]*A[4][0]*A[0][4]*A[2][3]-A[4][1]*A[1][4]*A[2][0]*A[0][3]-A[2][4]*A[1][0]*A[0][1]*A[4][3]-A[4][0]*A[0][1]*A[1][4]*A[2][3]+A[2][1]*A[1][4]*A[4][0]*A[0][3]+A[2][0]*A[0][4]*A[4][1]*A[1][3]+A[2][1]*A[1][0]*A[0][4]*A[4][3]+A[2][0]*A[0][1]*A[1][4]*A[4][3]-A[4][4]*A[1][0]*A[0][3]*A[2][1]-A[4][4]*A[2][0]*A[0][1]*A[1][3]-A[4][0]*A[0][4]*A[1][3]*A[2][1]+A[2][4]*A[4][0]*A[0][1]*A[1][3]-A[4][1]*A[1][0]*A[0][4]*A[2][3]+A[1][0]*A[0][1]*A[4][4]*A[2][3]+A[2][4]*A[4][1]*A[1][0]*A[0][3]; 00130 double i23 = t0*idet; 00131 t0 = -A[0][0]*A[1][1]*A[3][3]*A[2][4]+A[0][0]*A[1][1]*A[2][3]*A[3][4]+A[0][0]*A[3][3]*A[2][1]*A[1][4]-A[0][0]*A[2][3]*A[3][1]*A[1][4]-A[0][0]*A[1][3]*A[2][1]*A[3][4]+A[0][0]*A[3][1]*A[1][3]*A[2][4]+A[1][1]*A[3][3]*A[2][0]*A[0][4]-A[1][1]*A[2][0]*A[0][3]*A[3][4]+A[1][1]*A[3][0]*A[0][3]*A[2][4]-A[1][1]*A[2][3]*A[3][0]*A[0][4]+A[3][3]*A[1][0]*A[0][1]*A[2][4]-A[3][3]*A[2][0]*A[0][1]*A[1][4]-A[3][3]*A[2][1]*A[1][0]*A[0][4]-A[1][0]*A[3][1]*A[0][3]*A[2][4]+A[2][0]*A[0][3]*A[3][1]*A[1][4]-A[3][1]*A[1][3]*A[2][0]*A[0][4]+A[2][0]*A[0][1]*A[1][3]*A[3][4]+A[2][3]*A[3][1]*A[1][0]*A[0][4]-A[2][3]*A[1][0]*A[0][1]*A[3][4]+A[1][3]*A[2][1]*A[3][0]*A[0][4]-A[3][0]*A[0][1]*A[1][3]*A[2][4]-A[3][0]*A[0][3]*A[2][1]*A[1][4]+A[2][3]*A[3][0]*A[0][1]*A[1][4]+A[1][0]*A[0][3]*A[2][1]*A[3][4]; 00132 double i24 = t0*idet; 00133 t0 = A[1][1]*A[2][2]*A[3][4]*A[4][0]-A[1][1]*A[2][2]*A[4][4]*A[3][0]-A[1][1]*A[3][4]*A[4][2]*A[2][0]-A[1][1]*A[3][2]*A[2][4]*A[4][0]+A[1][1]*A[4][4]*A[2][0]*A[3][2]+A[1][1]*A[4][2]*A[2][4]*A[3][0]-A[2][2]*A[3][1]*A[1][4]*A[4][0]-A[2][2]*A[3][4]*A[1][0]*A[4][1]+A[2][2]*A[4][4]*A[1][0]*A[3][1]+A[2][2]*A[4][1]*A[1][4]*A[3][0]-A[4][1]*A[1][4]*A[2][0]*A[3][2]-A[4][4]*A[2][0]*A[1][2]*A[3][1]+A[3][4]*A[4][2]*A[1][0]*A[2][1]+A[3][2]*A[2][4]*A[1][0]*A[4][1]+A[4][4]*A[3][0]*A[1][2]*A[2][1]-A[4][2]*A[2][4]*A[1][0]*A[3][1]-A[4][1]*A[1][2]*A[2][4]*A[3][0]+A[1][2]*A[3][1]*A[2][4]*A[4][0]-A[4][4]*A[1][0]*A[2][1]*A[3][2]+A[3][1]*A[1][4]*A[4][2]*A[2][0]+A[3][2]*A[2][1]*A[1][4]*A[4][0]+A[3][4]*A[4][1]*A[1][2]*A[2][0]-A[4][2]*A[2][1]*A[1][4]*A[3][0]-A[3][4]*A[1][2]*A[2][1]*A[4][0]; 00134 double i30 = t0*idet; 00135 t0 = -A[0][0]*A[2][2]*A[4][4]*A[3][1]+A[0][0]*A[2][2]*A[3][4]*A[4][1]+A[0][0]*A[4][4]*A[2][1]*A[3][2]-A[0][0]*A[3][2]*A[2][4]*A[4][1]+A[0][0]*A[4][2]*A[2][4]*A[3][1]-A[0][0]*A[3][4]*A[4][2]*A[2][1]-A[2][2]*A[3][4]*A[4][0]*A[0][1]+A[2][2]*A[4][0]*A[0][4]*A[3][1]-A[2][2]*A[3][0]*A[0][4]*A[4][1]+A[2][2]*A[4][4]*A[3][0]*A[0][1]-A[3][4]*A[2][0]*A[0][2]*A[4][1]-A[4][0]*A[0][4]*A[2][1]*A[3][2]-A[4][4]*A[2][0]*A[0][1]*A[3][2]-A[4][2]*A[2][4]*A[3][0]*A[0][1]+A[2][0]*A[0][2]*A[4][4]*A[3][1]-A[4][0]*A[0][2]*A[2][4]*A[3][1]-A[4][2]*A[2][0]*A[0][4]*A[3][1]+A[3][2]*A[2][4]*A[4][0]*A[0][1]-A[4][4]*A[3][0]*A[0][2]*A[2][1]+A[3][4]*A[4][2]*A[2][0]*A[0][1]+A[3][2]*A[2][0]*A[0][4]*A[4][1]+A[3][0]*A[0][2]*A[2][4]*A[4][1]+A[3][4]*A[4][0]*A[0][2]*A[2][1]+A[3][0]*A[0][4]*A[4][2]*A[2][1]; 00136 double i31 = t0*idet; 00137 t0 = -A[0][0]*A[1][1]*A[4][4]*A[3][2]+A[0][0]*A[1][1]*A[3][4]*A[4][2]+A[0][0]*A[4][4]*A[1][2]*A[3][1]-A[0][0]*A[3][1]*A[1][4]*A[4][2]+A[0][0]*A[4][1]*A[1][4]*A[3][2]-A[0][0]*A[3][4]*A[4][1]*A[1][2]-A[1][1]*A[3][4]*A[4][0]*A[0][2]-A[1][1]*A[3][0]*A[0][4]*A[4][2]+A[1][1]*A[4][0]*A[0][4]*A[3][2]+A[1][1]*A[4][4]*A[3][0]*A[0][2]+A[3][4]*A[4][1]*A[1][0]*A[0][2]+A[3][0]*A[0][1]*A[1][4]*A[4][2]-A[4][1]*A[1][4]*A[3][0]*A[0][2]+A[3][4]*A[4][0]*A[0][1]*A[1][2]+A[3][0]*A[0][4]*A[4][1]*A[1][2]-A[3][4]*A[1][0]*A[0][1]*A[4][2]-A[4][0]*A[0][4]*A[1][2]*A[3][1]+A[1][0]*A[0][1]*A[4][4]*A[3][2]-A[4][0]*A[0][1]*A[1][4]*A[3][2]+A[3][1]*A[1][0]*A[0][4]*A[4][2]-A[4][4]*A[1][0]*A[0][2]*A[3][1]-A[4][4]*A[3][0]*A[0][1]*A[1][2]+A[3][1]*A[1][4]*A[4][0]*A[0][2]-A[4][1]*A[1][0]*A[0][4]*A[3][2]; 00138 double i32 = t0*idet; 00139 t0 = A[0][0]*A[1][1]*A[4][4]*A[2][2]-A[0][0]*A[1][1]*A[4][2]*A[2][4]-A[0][0]*A[4][1]*A[1][4]*A[2][2]+A[0][0]*A[4][1]*A[1][2]*A[2][4]+A[0][0]*A[4][2]*A[2][1]*A[1][4]-A[0][0]*A[1][2]*A[2][1]*A[4][4]-A[1][1]*A[4][0]*A[0][4]*A[2][2]-A[1][1]*A[2][0]*A[0][2]*A[4][4]+A[1][1]*A[4][0]*A[0][2]*A[2][4]+A[1][1]*A[4][2]*A[2][0]*A[0][4]-A[2][2]*A[1][0]*A[0][1]*A[4][4]+A[2][2]*A[4][1]*A[1][0]*A[0][4]+A[2][2]*A[4][0]*A[0][1]*A[1][4]+A[4][2]*A[1][0]*A[0][1]*A[2][4]-A[4][0]*A[0][1]*A[1][2]*A[2][4]-A[4][2]*A[2][1]*A[1][0]*A[0][4]-A[4][0]*A[0][2]*A[2][1]*A[1][4]+A[2][0]*A[0][1]*A[1][2]*A[4][4]+A[1][2]*A[2][1]*A[4][0]*A[0][4]-A[4][1]*A[1][0]*A[0][2]*A[2][4]+A[2][0]*A[0][2]*A[4][1]*A[1][4]-A[4][2]*A[2][0]*A[0][1]*A[1][4]+A[1][0]*A[0][2]*A[2][1]*A[4][4]-A[4][1]*A[1][2]*A[2][0]*A[0][4]; 00140 double i33 = t0*idet; 00141 t0 = -A[0][0]*A[1][1]*A[2][2]*A[3][4]+A[0][0]*A[1][1]*A[3][2]*A[2][4]+A[0][0]*A[2][2]*A[3][1]*A[1][4]+A[0][0]*A[1][2]*A[2][1]*A[3][4]-A[0][0]*A[1][2]*A[3][1]*A[2][4]-A[0][0]*A[3][2]*A[2][1]*A[1][4]+A[1][1]*A[2][2]*A[3][0]*A[0][4]-A[1][1]*A[3][0]*A[0][2]*A[2][4]+A[1][1]*A[2][0]*A[0][2]*A[3][4]-A[1][1]*A[3][2]*A[2][0]*A[0][4]+A[2][2]*A[1][0]*A[0][1]*A[3][4]-A[2][2]*A[3][0]*A[0][1]*A[1][4]-A[2][2]*A[3][1]*A[1][0]*A[0][4]+A[3][0]*A[0][1]*A[1][2]*A[2][4]-A[2][0]*A[0][2]*A[3][1]*A[1][4]-A[1][0]*A[0][2]*A[2][1]*A[3][4]-A[2][0]*A[0][1]*A[1][2]*A[3][4]+A[3][2]*A[2][0]*A[0][1]*A[1][4]+A[1][2]*A[3][1]*A[2][0]*A[0][4]+A[3][0]*A[0][2]*A[2][1]*A[1][4]+A[1][0]*A[0][2]*A[3][1]*A[2][4]+A[3][2]*A[2][1]*A[1][0]*A[0][4]-A[1][2]*A[2][1]*A[3][0]*A[0][4]-A[3][2]*A[1][0]*A[0][1]*A[2][4]; 00142 double i34 = t0*idet; 00143 t0 = A[1][1]*A[2][2]*A[4][3]*A[3][0]-A[1][1]*A[2][2]*A[3][3]*A[4][0]-A[1][1]*A[4][3]*A[2][0]*A[3][2]-A[1][1]*A[4][2]*A[2][3]*A[3][0]+A[1][1]*A[3][3]*A[4][2]*A[2][0]+A[1][1]*A[2][3]*A[3][2]*A[4][0]-A[2][2]*A[4][3]*A[1][0]*A[3][1]+A[2][2]*A[3][3]*A[1][0]*A[4][1]+A[2][2]*A[3][1]*A[1][3]*A[4][0]-A[2][2]*A[4][1]*A[1][3]*A[3][0]-A[3][3]*A[4][2]*A[1][0]*A[2][1]+A[4][3]*A[1][0]*A[2][1]*A[3][2]+A[4][3]*A[2][0]*A[1][2]*A[3][1]+A[4][1]*A[1][2]*A[2][3]*A[3][0]+A[4][1]*A[1][3]*A[2][0]*A[3][2]-A[3][3]*A[4][1]*A[1][2]*A[2][0]+A[3][3]*A[1][2]*A[2][1]*A[4][0]-A[2][3]*A[3][2]*A[1][0]*A[4][1]-A[2][1]*A[1][3]*A[3][2]*A[4][0]-A[3][1]*A[1][3]*A[4][2]*A[2][0]-A[4][3]*A[3][0]*A[1][2]*A[2][1]+A[4][2]*A[2][3]*A[1][0]*A[3][1]-A[3][1]*A[1][2]*A[2][3]*A[4][0]+A[4][2]*A[1][3]*A[2][1]*A[3][0]; 00144 double i40 = t0*idet; 00145 t0 = -A[0][0]*A[2][2]*A[3][3]*A[4][1]+A[0][0]*A[2][2]*A[4][3]*A[3][1]-A[0][0]*A[4][3]*A[2][1]*A[3][2]-A[0][0]*A[4][2]*A[2][3]*A[3][1]+A[0][0]*A[3][3]*A[4][2]*A[2][1]+A[0][0]*A[2][3]*A[3][2]*A[4][1]-A[2][2]*A[4][0]*A[0][3]*A[3][1]+A[2][2]*A[3][0]*A[0][3]*A[4][1]-A[2][2]*A[4][3]*A[3][0]*A[0][1]+A[2][2]*A[3][3]*A[4][0]*A[0][1]+A[4][3]*A[3][0]*A[0][2]*A[2][1]-A[3][3]*A[4][0]*A[0][2]*A[2][1]+A[3][3]*A[2][0]*A[0][2]*A[4][1]+A[4][2]*A[2][0]*A[0][3]*A[3][1]+A[4][0]*A[0][3]*A[2][1]*A[3][2]-A[3][3]*A[4][2]*A[2][0]*A[0][1]-A[2][3]*A[3][2]*A[4][0]*A[0][1]+A[4][3]*A[2][0]*A[0][1]*A[3][2]-A[3][0]*A[0][3]*A[4][2]*A[2][1]+A[4][0]*A[0][2]*A[2][3]*A[3][1]-A[2][0]*A[0][3]*A[3][2]*A[4][1]-A[3][0]*A[0][2]*A[2][3]*A[4][1]-A[4][3]*A[2][0]*A[0][2]*A[3][1]+A[4][2]*A[2][3]*A[3][0]*A[0][1]; 00146 double i41 = t0*idet; 00147 t0 = A[0][0]*A[1][1]*A[4][3]*A[3][2]-A[0][0]*A[1][1]*A[3][3]*A[4][2]-A[0][0]*A[4][1]*A[1][3]*A[3][2]+A[0][0]*A[3][3]*A[4][1]*A[1][2]-A[0][0]*A[4][3]*A[1][2]*A[3][1]+A[0][0]*A[3][1]*A[1][3]*A[4][2]+A[1][1]*A[3][3]*A[4][0]*A[0][2]+A[1][1]*A[3][0]*A[0][3]*A[4][2]-A[1][1]*A[4][3]*A[3][0]*A[0][2]-A[1][1]*A[4][0]*A[0][3]*A[3][2]-A[3][3]*A[4][1]*A[1][0]*A[0][2]+A[4][0]*A[0][3]*A[1][2]*A[3][1]-A[1][0]*A[3][1]*A[0][3]*A[4][2]-A[3][3]*A[4][0]*A[0][1]*A[1][2]+A[3][3]*A[1][0]*A[0][1]*A[4][2]+A[4][3]*A[3][0]*A[0][1]*A[1][2]-A[3][0]*A[0][3]*A[4][1]*A[1][2]+A[4][1]*A[1][0]*A[0][3]*A[3][2]-A[3][0]*A[0][1]*A[1][3]*A[4][2]-A[3][1]*A[1][3]*A[4][0]*A[0][2]+A[4][1]*A[1][3]*A[3][0]*A[0][2]+A[4][3]*A[1][0]*A[0][2]*A[3][1]+A[4][0]*A[0][1]*A[1][3]*A[3][2]-A[4][3]*A[1][0]*A[0][1]*A[3][2]; 00148 double i42 = t0*idet; 00149 t0 = -A[0][0]*A[1][1]*A[2][2]*A[4][3]+A[0][0]*A[1][1]*A[4][2]*A[2][3]-A[0][0]*A[4][2]*A[1][3]*A[2][1]-A[0][0]*A[4][1]*A[1][2]*A[2][3]+A[0][0]*A[2][2]*A[4][1]*A[1][3]+A[0][0]*A[1][2]*A[2][1]*A[4][3]+A[1][1]*A[2][0]*A[0][2]*A[4][3]-A[1][1]*A[4][2]*A[2][0]*A[0][3]-A[1][1]*A[4][0]*A[0][2]*A[2][3]+A[1][1]*A[2][2]*A[4][0]*A[0][3]+A[4][2]*A[2][0]*A[0][1]*A[1][3]+A[4][1]*A[1][2]*A[2][0]*A[0][3]+A[4][0]*A[0][1]*A[1][2]*A[2][3]+A[4][1]*A[1][0]*A[0][2]*A[2][3]-A[2][2]*A[4][1]*A[1][0]*A[0][3]+A[2][2]*A[1][0]*A[0][1]*A[4][3]-A[2][2]*A[4][0]*A[0][1]*A[1][3]-A[1][2]*A[2][1]*A[4][0]*A[0][3]-A[1][0]*A[0][2]*A[2][1]*A[4][3]-A[2][0]*A[0][2]*A[4][1]*A[1][3]-A[2][0]*A[0][1]*A[1][2]*A[4][3]-A[4][2]*A[1][0]*A[0][1]*A[2][3]+A[4][2]*A[1][0]*A[0][3]*A[2][1]+A[4][0]*A[0][2]*A[1][3]*A[2][1]; 00150 double i43 = t0*idet; 00151 t0 = A[0][0]*A[1][1]*A[2][2]*A[3][3]-A[0][0]*A[1][1]*A[2][3]*A[3][2]-A[0][0]*A[2][1]*A[1][2]*A[3][3]+A[0][0]*A[2][1]*A[1][3]*A[3][2]+A[0][0]*A[3][1]*A[1][2]*A[2][3]-A[0][0]*A[3][1]*A[1][3]*A[2][2]-A[1][0]*A[0][1]*A[2][2]*A[3][3]+A[1][0]*A[0][1]*A[2][3]*A[3][2]+A[1][0]*A[2][1]*A[0][2]*A[3][3]-A[1][0]*A[2][1]*A[0][3]*A[3][2]-A[1][0]*A[3][1]*A[0][2]*A[2][3]+A[1][0]*A[3][1]*A[0][3]*A[2][2]+A[2][0]*A[0][1]*A[1][2]*A[3][3]-A[2][0]*A[0][1]*A[1][3]*A[3][2]-A[2][0]*A[1][1]*A[0][2]*A[3][3]+A[2][0]*A[1][1]*A[0][3]*A[3][2]+A[2][0]*A[3][1]*A[0][2]*A[1][3]-A[2][0]*A[3][1]*A[0][3]*A[1][2]-A[3][0]*A[0][1]*A[1][2]*A[2][3]+A[3][0]*A[0][1]*A[1][3]*A[2][2]+A[3][0]*A[1][1]*A[0][2]*A[2][3]-A[3][0]*A[1][1]*A[0][3]*A[2][2]-A[3][0]*A[2][1]*A[0][2]*A[1][3]+A[3][0]*A[2][1]*A[0][3]*A[1][2]; 00152 double i44 = t0*idet; 00153 for(unsigned int i=0; i < x.num_cols(); i++) 00154 { 00155 x[0][i] = i00*b[0][i] + i01*b[1][i] + i02*b[2][i] + i03*b[3][i] + i04*b[4][i]; 00156 x[1][i] = i10*b[0][i] + i11*b[1][i] + i12*b[2][i] + i13*b[3][i] + i14*b[4][i]; 00157 x[2][i] = i20*b[0][i] + i21*b[1][i] + i22*b[2][i] + i23*b[3][i] + i24*b[4][i]; 00158 x[3][i] = i30*b[0][i] + i31*b[1][i] + i32*b[2][i] + i33*b[3][i] + i34*b[4][i]; 00159 x[4][i] = i40*b[0][i] + i41*b[1][i] + i42*b[2][i] + i43*b[3][i] + i44*b[4][i]; 00160 } 00161 } 00162 static const int highest_solver= 5;