Template Function lupnt::BlockDiagonal

Function Documentation

template<typename T, int N1, int M1, int N2, int M2>
Matrix<T, N1 + N2, M1 + N2> lupnt::BlockDiagonal(const Matrix<T, N1, M1> &A, const Matrix<T, N2, M2> &B)

Form the block-diagonal matrix [[A, 0], [0, B]] from two matrices.

Used by filters/filter_utils.ccInitialCovariancePosVelClock to combine an independent position/velocity covariance block with a clock bias/drift covariance block into the joint filter initial-covariance matrix.

Parameters:
  • A – Top-left block (size N1 x M1)

  • B – Bottom-right block (size N2 x M2)

Returns:

Block-diagonal matrix of size (N1+N2) x (M1+M2), with off-diagonal blocks zero