module Numeric.LAPACK.Matrix.Array.Banded where import qualified Numeric.LAPACK.Matrix.Array.Private as ArrMatrix import qualified Numeric.LAPACK.Matrix.Shape.Omni as Omni import Numeric.LAPACK.Matrix.Array.Private (ArrayMatrix) import Numeric.LAPACK.Matrix.Shape.Omni (Unit, Arbitrary) import Numeric.LAPACK.Matrix.Layout.Private (Bands, Packed) import Numeric.LAPACK.Matrix.Extent.Private (Size, Big) import qualified Type.Data.Num.Unary.Literal as TypeNum type FlexBanded prop sub super meas vert horiz height width = ArrayMatrix Packed prop (Bands sub) (Bands super) meas vert horiz height width type Banded sub super meas vert horiz height width = FlexBanded Arbitrary sub super meas vert horiz height width type General sub super height width = Banded sub super Size Big Big height width type Quadratic prop sub super size = ArrMatrix.Quadratic Packed prop (Bands sub) (Bands super) size type Square sub super size = Quadratic Arbitrary sub super size type Lower sub size = Square sub TypeNum.U0 size type Upper super size = Square TypeNum.U0 super size type UnitTriangular sub super size = Quadratic Unit sub super size type UnitLower sub size = UnitTriangular sub TypeNum.U0 size type UnitUpper super size = UnitTriangular TypeNum.U0 super size type Diagonal size = FlexDiagonal Arbitrary size type FlexDiagonal diag size = SymmQuadratic diag TypeNum.U0 size type RectangularDiagonal meas vert horiz height width = Banded TypeNum.U0 TypeNum.U0 meas vert horiz height width type SymmQuadratic prop offDiag sh = Quadratic prop offDiag offDiag sh type FlexHermitian neg zero pos offDiag sh = SymmQuadratic (Omni.Hermitian neg zero pos) offDiag sh type Hermitian offDiag sh = SymmQuadratic Omni.HermitianUnknownDefiniteness offDiag sh type HermitianPosSemidef offDiag sh = SymmQuadratic Omni.HermitianPositiveSemidefinite offDiag sh type HermitianPosDef offDiag sh = SymmQuadratic Omni.HermitianPositiveDefinite offDiag sh