lapack-0.2: src/Numeric/LAPACK/Matrix/Shape.hs
module Numeric.LAPACK.Matrix.Shape (
General,
Tall,
Wide,
Square,
Full(..), fullHeight, fullWidth,
Order(..), flipOrder,
general,
square,
wide,
tall,
Split,
SplitGeneral,
Triangle(..),
Reflector(..),
splitGeneral,
splitFromFull,
Hermitian(..),
hermitian,
Triangular(..),
Identity,
Diagonal,
LowerTriangular,
UpperTriangular,
Symmetric,
diagonal,
lowerTriangular,
upperTriangular,
symmetric,
autoDiag,
autoUplo,
DiagUpLo,
Unit(Unit),
NonUnit(NonUnit),
Banded(..),
BandedGeneral,
BandedSquare,
BandedLowerTriangular,
BandedUpperTriangular,
BandedDiagonal,
BandedIndex(..),
bandedGeneral,
bandedSquare,
bandedFromFull,
UnaryProxy,
addOffDiagonals,
TriDiag,
switchTriDiag,
Content,
BandedHermitian(..),
bandedHermitian,
) where
import qualified Numeric.LAPACK.Matrix.Extent.Private as Extent
import Numeric.LAPACK.Matrix.Shape.Private
type SplitGeneral lower height width =
Split lower Extent.Big Extent.Big height width
splitGeneral ::
lower -> Order -> height -> width -> SplitGeneral lower height width
splitGeneral lowerPart order height width =
Split lowerPart order $ Extent.general height width
splitFromFull ::
lower ->
Full vert horiz height width ->
Split lower vert horiz height width
splitFromFull lowerPart (Full order extent) = Split lowerPart order extent
diagonal :: Order -> size -> Triangular Empty NonUnit Empty size
diagonal = Triangular NonUnit autoUplo
lowerTriangular :: Order -> size -> LowerTriangular NonUnit size
lowerTriangular = Triangular NonUnit autoUplo
upperTriangular :: Order -> size -> UpperTriangular NonUnit size
upperTriangular = Triangular NonUnit autoUplo
symmetric :: Order -> size -> Symmetric size
symmetric = Triangular NonUnit autoUplo
hermitian :: Order -> size -> Hermitian size
hermitian = Hermitian
bandedFromFull ::
(UnaryProxy sub, UnaryProxy super) ->
Full vert horiz height width ->
Banded sub super vert horiz height width
bandedFromFull offDiag (Full order extent) = Banded offDiag order extent
bandedHermitian :: UnaryProxy off -> Order -> size -> BandedHermitian off size
bandedHermitian = BandedHermitian