2 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)
8 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)
10 {
const Vector<N> ABi = B * A[0];
12 M[0][1] = M[1][0] = ABi * A[1];
14 M[1][1] = (B * A[1]) * A[1];
18 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)
20 {
const Vector<N> ABi = B * A[0];
22 M[0][1] = M[1][0] = ABi * A[1];
23 M[0][2] = M[2][0] = ABi * A[2];
25 {
const Vector<N> ABi = B * A[1];
27 M[1][2] = M[2][1] = ABi * A[2];
29 M[2][2] = (B * A[2]) * A[2];
34 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)
36 {
const Vector<N> ABi = B * A[0];
38 M[0][1] = M[1][0] = ABi * A[1];
39 M[0][2] = M[2][0] = ABi * A[2];
40 M[0][3] = M[3][0] = ABi * A[3];
41 M[0][4] = M[4][0] = ABi * A[4];
42 M[0][5] = M[5][0] = ABi * A[5];
44 {
const Vector<N> ABi = B * A[1];
46 M[1][2] = M[2][1] = ABi * A[2];
47 M[1][3] = M[3][1] = ABi * A[3];
48 M[1][4] = M[4][1] = ABi * A[4];
49 M[1][5] = M[5][1] = ABi * A[5];
51 {
const Vector<N> ABi = B * A[2];
53 M[2][3] = M[3][2] = ABi * A[3];
54 M[2][4] = M[4][2] = ABi * A[4];
55 M[2][5] = M[5][2] = ABi * A[5];
57 {
const Vector<N> ABi = B * A[3];
59 M[3][4] = M[4][3] = ABi * A[4];
60 M[3][5] = M[5][3] = ABi * A[5];
62 {
const Vector<N> ABi = B * A[4];
64 M[4][5] = M[5][4] = ABi * A[5];
66 M[5][5] = (B * A[5]) * A[5];
void transformCovariance(const FixedMatrix< 2, 2, A1 > &A, const FixedMatrix< 2, 2, A2 > &B, FixedMatrix< 2, 2, A3 > &M)