| Safe Haskell | None |
|---|
Numeric.LAPACK.Orthogonal
- leastSquares :: (C vert, C horiz, C height, Eq height, C width, C nrhs, Floating a) => Full horiz Small height width a -> Full vert horiz height nrhs a -> Full vert horiz width nrhs a
- minimumNorm :: (C vert, C horiz, C height, Eq height, C width, C nrhs, Floating a) => Full Small vert height width a -> Full vert horiz height nrhs a -> Full vert horiz width nrhs a
- leastSquaresMinimumNormRCond :: (C vert, C horiz, C height, Eq height, C width, C nrhs, Floating a) => RealOf a -> Full horiz vert height width a -> Full vert horiz height nrhs a -> (Int, Full vert horiz width nrhs a)
- pseudoInverseRCond :: (C vert, C horiz, C height, Eq height, C width, Eq width, Floating a) => RealOf a -> Full vert horiz height width a -> (Int, Full horiz vert width height a)
- determinant :: (C sh, Floating a) => Square sh a -> a
- determinantAbsolute :: (C vert, C horiz, C height, C width, Floating a) => Full vert horiz height width a -> RealOf a
- complement :: (C height, C width, Floating a) => Tall height width a -> Tall height ZeroInt a
- householder :: (C vert, C horiz, C height, C width, Floating a) => Full vert horiz height width a -> (Square height a, Full vert horiz height width a)
Documentation
leastSquares :: (C vert, C horiz, C height, Eq height, C width, C nrhs, Floating a) => Full horiz Small height width a -> Full vert horiz height nrhs a -> Full vert horiz width nrhs aSource
If x = leastSquares a b
then x minimizes Vector.norm2 (multiply a x .
sub b)
Precondition: a must have full rank and height a >= width a.
minimumNorm :: (C vert, C horiz, C height, Eq height, C width, C nrhs, Floating a) => Full Small vert height width a -> Full vert horiz height nrhs a -> Full vert horiz width nrhs aSource
The vector x with x = minimumNorm a b
is the vector with minimal Vector.norm2 x
that satisfies multiply a x == b.
Precondition: a must have full rank and height a <= width a.
leastSquaresMinimumNormRCond :: (C vert, C horiz, C height, Eq height, C width, C nrhs, Floating a) => RealOf a -> Full horiz vert height width a -> Full vert horiz height nrhs a -> (Int, Full vert horiz width nrhs a)Source
If x = leastSquaresMinimumNormRCond rcond a b
then x is the vector with minimum Vector.norm2 x
that minimizes Vector.norm2 (multiply a x .
sub b)
Matrix a can have any rank
but you must specify the reciprocal condition of the rank-truncated matrix.
pseudoInverseRCond :: (C vert, C horiz, C height, Eq height, C width, Eq width, Floating a) => RealOf a -> Full vert horiz height width a -> (Int, Full horiz vert width height a)Source
determinant :: (C sh, Floating a) => Square sh a -> aSource
determinantAbsolute :: (C vert, C horiz, C height, C width, Floating a) => Full vert horiz height width a -> RealOf aSource
Gramian determinant - works also for non-square matrices, but is sensitive to transposition.
determinantAbsolute a = sqrt (Herm.determinant (Herm.covariance a))
complement :: (C height, C width, Floating a) => Tall height width a -> Tall height ZeroInt aSource
For an m-by-n-matrix a with m>=n
this function computes an m-by-(m-n)-matrix b
such that Matrix.multiply (adjoint b) a is a zero matrix.
The function does not try to compensate a rank deficiency of a.
That is, a|||b has full rank if and only if a has full rank.
For full-rank matrices you might also call this kernel or nullspace.