examples/homography/TooN/generated.h

00001 // Generated for J*C*J^T, C symmetric
00002 template <class A1, class A2, class A3> inline void transformCovariance(const FixedMatrix<2,2,A1>& A, const FixedMatrix<2,2,A2>& B, FixedMatrix<2,2,A3>& M)
00003 {
00004     M = A*B*A.T();
00005 }
00006 
00007 // Generated for J*C*J^T, C symmetric
00008 template <int N, class A1, class A2, class A3> inline void transformCovariance(const FixedMatrix<2,N,A1>& A, const FixedMatrix<N,N,A2>& B, FixedMatrix<2,2,A3>& M)
00009 {
00010         {       const Vector<N> ABi = B * A[0];
00011                 M[0][0] = ABi * A[0];
00012                 M[0][1] = M[1][0] = ABi * A[1];
00013         }
00014         M[1][1] = (B * A[1]) * A[1];
00015 }
00016 
00017 // Generated for J*C*J^T, C symmetric
00018 template <int N, class A1, class A2, class A3> inline void transformCovariance(const FixedMatrix<3,N,A1>& A, const FixedMatrix<N,N,A2>& B, FixedMatrix<3,3,A3>& M)
00019 {
00020         {       const Vector<N> ABi = B * A[0];
00021                 M[0][0] = ABi * A[0];
00022                 M[0][1] = M[1][0] = ABi * A[1];
00023                 M[0][2] = M[2][0] = ABi * A[2];
00024         }
00025         {       const Vector<N> ABi = B * A[1];
00026                 M[1][1] = ABi * A[1];
00027                 M[1][2] = M[2][1] = ABi * A[2];
00028         }
00029         M[2][2] = (B * A[2]) * A[2];
00030 }
00031 
00032 #if 0
00033 // Generated for J*C*J^T, C symmetric
00034 template <int N, class A1, class A2, class A3> inline void transformCovariance(const FixedMatrix<6,N,A1>& A, const FixedMatrix<N,N,A2>& B, FixedMatrix<6,6,A3>& M)
00035 {
00036         {       const Vector<N> ABi = B * A[0];
00037                 M[0][0] = ABi * A[0];
00038                 M[0][1] = M[1][0] = ABi * A[1];
00039                 M[0][2] = M[2][0] = ABi * A[2];
00040                 M[0][3] = M[3][0] = ABi * A[3];
00041                 M[0][4] = M[4][0] = ABi * A[4];
00042                 M[0][5] = M[5][0] = ABi * A[5];
00043         }
00044         {       const Vector<N> ABi = B * A[1];
00045                 M[1][1] = ABi * A[1];
00046                 M[1][2] = M[2][1] = ABi * A[2];
00047                 M[1][3] = M[3][1] = ABi * A[3];
00048                 M[1][4] = M[4][1] = ABi * A[4];
00049                 M[1][5] = M[5][1] = ABi * A[5];
00050         }
00051         {       const Vector<N> ABi = B * A[2];
00052                 M[2][2] = ABi * A[2];
00053                 M[2][3] = M[3][2] = ABi * A[3];
00054                 M[2][4] = M[4][2] = ABi * A[4];
00055                 M[2][5] = M[5][2] = ABi * A[5];
00056         }
00057         {       const Vector<N> ABi = B * A[3];
00058                 M[3][3] = ABi * A[3];
00059                 M[3][4] = M[4][3] = ABi * A[4];
00060                 M[3][5] = M[5][3] = ABi * A[5];
00061         }
00062         {       const Vector<N> ABi = B * A[4];
00063                 M[4][4] = ABi * A[4];
00064                 M[4][5] = M[5][4] = ABi * A[5];
00065         }
00066         M[5][5] = (B * A[5]) * A[5];
00067 }
00068 #endif

Generated on Fri Feb 22 18:26:54 2008 for QVision by  doxygen 1.5.3