If you want to know the value of a matrix element, you can use two methods :

1 {c++}
2 T& at(unsigned int,unsigned int);
3 T get(unsigned int,unsigned int) const;

The first one returns a reference ans should only be used to populate the matrix (or more generally to modify the matrix) and the second one (get) should be used whenever you just want to know the value.

Why 'subtract' instead of 'operator-' ?

The operation

1 {c++}
2 A.subtract(B)

changes A into A-B.

The operation (not yet implemented)

1 {c++}
2 C=A-B

creates a new matrix that has the value A-B.

"PLU" decomposition

P : permutation matrix, L : lower triangular matrix with 1 on the diagonal, U : upper triangular matrix.

The mathematics can be found (in French) here :