Manipulations of determinants

Warning

This library is stable, but documentation is currently being written and needs a serious rereading and cleaning

The purpose of this little class is to regroup standard block manipulations on determinant, used in several algorithms.

Given a function \(F(x,y)\), and two sets of values \(x_i,y_i \ 0\leq i < N\), we can define the \(N\times N\) square matrix

\[M_{i,j} = F(x_i,y_j)\]

When adding/removing a line and column (i.e. a value of x, y), \(M^{-1}\) and \(det M\) can be fast updated using standard block matrix computations. This class implements these general operations. It contains:

  • Datas:

    • \(M^{-1}\) and \(det M\)

    • a vector containing \(x_i,y_i \ 0\leq i \leq N\)

  • Methods to quickly update \(M^{-1}\) and \(\det M\) when one:

    • adds/removes a line and a column (i.e. adding or removing one x and one y)

    • adds/removes two lines and two columns (i.e. adding or removing two x and two y)

    • changes a line/colum, etc…