lapack-0.2.1: Numerical Linear Algebra using LAPACK

Numeric.LAPACK.Orthogonal

Synopsis

# 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`.

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)Source