template<typename VectorType>
class QR< VectorType >
A class to compute and store the QR factorization of a matrix represented by a set of column vectors.
The class is design to update a given (possibly empty) QR factorization of a matrix (constructed incrementally by providing its columns) due to the addition of a new column vector to . This is equivalent to constructing an orthonormal basis by the Gram-Schmidt procedure. The class also provides update functionality when the first column is removed.
The VectorType template argument may either be a parallel and serial vector, and only need to have basic operations such as additions, scalar product, etc. It also needs to have a copy-constructor.
See sections 6.5.2-6.5.3 on pp. 335-338 in [Golub2013] as well as [Daniel1976] and [Reichel1990].
Append column to the QR factorization. Returns true if the result is successful, i.e. the columns are linearly independent. Otherwise the column is rejected and the return value is false.
const std::function< void(const unsigned int i, const unsigned int j, const std::array< Number, 3 > &csr)> &
slot
)
inherited
Connect a slot to retrieve a notification when the Givens rotations are performed.
The function takes two indices, i and j, describing the plane of rotation, and a triplet of numbers csr (cosine, sine and radius, see Utilities::LinearAlgebra::givens_rotation()) which represents the rotation matrix.