lapack-0.5.0.3: Numerical Linear Algebra using LAPACK

Safe HaskellNone
LanguageHaskell98

Numeric.LAPACK.Matrix.Extent

Synopsis

Documentation

class C tag where Source #

Methods

switchTag :: f Small -> f Big -> f tag Source #

Instances
C Small Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

switchTag :: f Small -> f Big -> f Small Source #

C Big Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

switchTag :: f Small -> f Big -> f Big Source #

data Small Source #

Instances
Eq Small Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

(==) :: Small -> Small -> Bool #

(/=) :: Small -> Small -> Bool #

Show Small Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

showsPrec :: Int -> Small -> ShowS #

show :: Small -> String #

showList :: [Small] -> ShowS #

NFData Small Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

rnf :: Small -> () #

C Small Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

switchTag :: f Small -> f Big -> f Small Source #

(Packing pack, height ~ width) => ToPlain pack Symmetric Filled Filled Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Methods

toPlain :: Omni pack Symmetric Filled Filled Shape Small Small height width -> Plain pack Symmetric Filled Filled Shape Small Small height width Source #

(Packing pack, TriDiag diag, height ~ width) => ToPlain pack diag Filled Empty Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Methods

toPlain :: Omni pack diag Filled Empty Shape Small Small height width -> Plain pack diag Filled Empty Shape Small Small height width Source #

(Packing pack, TriDiag diag, height ~ width) => ToPlain pack diag Empty Filled Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Methods

toPlain :: Omni pack diag Empty Filled Shape Small Small height width -> Plain pack diag Empty Filled Shape Small Small height width Source #

(Packing pack, height ~ width) => FromPlain pack Symmetric Filled Filled Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Associated Types

type Plain pack Symmetric Filled Filled Shape Small Small height width :: Type Source #

Methods

fromPlain :: Plain pack Symmetric Filled Filled Shape Small Small height width -> Omni pack Symmetric Filled Filled Shape Small Small height width Source #

(Packing pack, TriDiag diag, height ~ width) => FromPlain pack diag Filled Empty Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Associated Types

type Plain pack diag Filled Empty Shape Small Small height width :: Type Source #

Methods

fromPlain :: Plain pack diag Filled Empty Shape Small Small height width -> Omni pack diag Filled Empty Shape Small Small height width Source #

(Packing pack, TriDiag diag, height ~ width) => FromPlain pack diag Empty Filled Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Associated Types

type Plain pack diag Empty Filled Shape Small Small height width :: Type Source #

Methods

fromPlain :: Plain pack diag Empty Filled Shape Small Small height width -> Omni pack diag Empty Filled Shape Small Small height width Source #

(BandedTriangular sub super, BandedTriangular super sub, height ~ width) => ToPlain Packed Unit (Bands sub) (Bands super) Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Methods

toPlain :: Omni Packed Unit (Bands sub) (Bands super) Shape Small Small height width -> Plain Packed Unit (Bands sub) (Bands super) Shape Small Small height width Source #

(BandedTriangular sub super, BandedTriangular super sub, height ~ width) => FromPlain Packed Unit (Bands sub) (Bands super) Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Associated Types

type Plain Packed Unit (Bands sub) (Bands super) Shape Small Small height width :: Type Source #

Methods

fromPlain :: Plain Packed Unit (Bands sub) (Bands super) Shape Small Small height width -> Omni Packed Unit (Bands sub) (Bands super) Shape Small Small height width Source #

(Packing pack, C neg, C zero, C pos, height ~ width) => ToPlain pack (Hermitian neg zero pos) Filled Filled Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Methods

toPlain :: Omni pack (Hermitian neg zero pos) Filled Filled Shape Small Small height width -> Plain pack (Hermitian neg zero pos) Filled Filled Shape Small Small height width Source #

(Packing pack, C neg, C zero, C pos, height ~ width) => FromPlain pack (Hermitian neg zero pos) Filled Filled Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Associated Types

type Plain pack (Hermitian neg zero pos) Filled Filled Shape Small Small height width :: Type Source #

Methods

fromPlain :: Plain pack (Hermitian neg zero pos) Filled Filled Shape Small Small height width -> Omni pack (Hermitian neg zero pos) Filled Filled Shape Small Small height width Source #

(Natural sub, sub ~ super, height ~ width, C neg, C zero, C pos) => ToPlain Packed (Hermitian neg zero pos) (Bands sub) (Bands super) Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Methods

toPlain :: Omni Packed (Hermitian neg zero pos) (Bands sub) (Bands super) Shape Small Small height width -> Plain Packed (Hermitian neg zero pos) (Bands sub) (Bands super) Shape Small Small height width Source #

(Natural sub, sub ~ super, height ~ width, C neg, C zero, C pos) => FromPlain Packed (Hermitian neg zero pos) (Bands sub) (Bands super) Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Associated Types

type Plain Packed (Hermitian neg zero pos) (Bands sub) (Bands super) Shape Small Small height width :: Type Source #

Methods

fromPlain :: Plain Packed (Hermitian neg zero pos) (Bands sub) (Bands super) Shape Small Small height width -> Omni Packed (Hermitian neg zero pos) (Bands sub) (Bands super) Shape Small Small height width Source #

type Append Small b Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

type Append Small b = Small
type Plain pack Symmetric Filled Filled Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

type Plain pack Symmetric Filled Filled Shape Small Small height width = SymmetricP pack height
type Plain pack diag Filled Empty Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

type Plain pack diag Filled Empty Shape Small Small height width = LowerTriangularP pack height
type Plain pack diag Empty Filled Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

type Plain pack diag Empty Filled Shape Small Small height width = UpperTriangularP pack height
type Plain Packed Unit (Bands sub) (Bands super) Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

type Plain Packed Unit (Bands sub) (Bands super) Shape Small Small height width = BandedSquare sub super height
type Plain pack (Hermitian neg zero pos) Filled Filled Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

type Plain pack (Hermitian neg zero pos) Filled Filled Shape Small Small height width = HermitianP pack height
type Plain Packed (Hermitian neg zero pos) (Bands sub) (Bands super) Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

type Plain Packed (Hermitian neg zero pos) (Bands sub) (Bands super) Shape Small Small height width = BandedHermitian sub height

data Big Source #

Instances
Eq Big Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

(==) :: Big -> Big -> Bool #

(/=) :: Big -> Big -> Bool #

Show Big Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

showsPrec :: Int -> Big -> ShowS #

show :: Big -> String #

showList :: [Big] -> ShowS #

NFData Big Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

rnf :: Big -> () #

C Big Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

switchTag :: f Small -> f Big -> f Big Source #

type Append Big b Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

type Append Big b = b

class Measure meas where Source #

Methods

switchMeasure :: f Shape -> f Size -> f meas Source #

Instances
Measure Shape Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

switchMeasure :: f Shape -> f Size -> f Shape Source #

Measure Size Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

switchMeasure :: f Shape -> f Size -> f Size Source #

data Shape Source #

Instances
Eq Shape Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

(==) :: Shape -> Shape -> Bool #

(/=) :: Shape -> Shape -> Bool #

Show Shape Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

showsPrec :: Int -> Shape -> ShowS #

show :: Shape -> String #

showList :: [Shape] -> ShowS #

NFData Shape Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

rnf :: Shape -> () #

Measure Shape Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

switchMeasure :: f Shape -> f Size -> f Shape Source #

tag ~ Small => Measured Shape tag Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Strict

Methods

switchMeasured :: f Shape Small -> f Size Small -> f Size Big -> f Shape tag Source #

(Packing pack, height ~ width) => ToPlain pack Symmetric Filled Filled Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Methods

toPlain :: Omni pack Symmetric Filled Filled Shape Small Small height width -> Plain pack Symmetric Filled Filled Shape Small Small height width Source #

(Packing pack, TriDiag diag, height ~ width) => ToPlain pack diag Filled Empty Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Methods

toPlain :: Omni pack diag Filled Empty Shape Small Small height width -> Plain pack diag Filled Empty Shape Small Small height width Source #

(Packing pack, TriDiag diag, height ~ width) => ToPlain pack diag Empty Filled Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Methods

toPlain :: Omni pack diag Empty Filled Shape Small Small height width -> Plain pack diag Empty Filled Shape Small Small height width Source #

(Packing pack, height ~ width) => FromPlain pack Symmetric Filled Filled Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Associated Types

type Plain pack Symmetric Filled Filled Shape Small Small height width :: Type Source #

Methods

fromPlain :: Plain pack Symmetric Filled Filled Shape Small Small height width -> Omni pack Symmetric Filled Filled Shape Small Small height width Source #

(Packing pack, TriDiag diag, height ~ width) => FromPlain pack diag Filled Empty Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Associated Types

type Plain pack diag Filled Empty Shape Small Small height width :: Type Source #

Methods

fromPlain :: Plain pack diag Filled Empty Shape Small Small height width -> Omni pack diag Filled Empty Shape Small Small height width Source #

(Packing pack, TriDiag diag, height ~ width) => FromPlain pack diag Empty Filled Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Associated Types

type Plain pack diag Empty Filled Shape Small Small height width :: Type Source #

Methods

fromPlain :: Plain pack diag Empty Filled Shape Small Small height width -> Omni pack diag Empty Filled Shape Small Small height width Source #

(BandedTriangular sub super, BandedTriangular super sub, height ~ width) => ToPlain Packed Unit (Bands sub) (Bands super) Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Methods

toPlain :: Omni Packed Unit (Bands sub) (Bands super) Shape Small Small height width -> Plain Packed Unit (Bands sub) (Bands super) Shape Small Small height width Source #

(BandedTriangular sub super, BandedTriangular super sub, height ~ width) => FromPlain Packed Unit (Bands sub) (Bands super) Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Associated Types

type Plain Packed Unit (Bands sub) (Bands super) Shape Small Small height width :: Type Source #

Methods

fromPlain :: Plain Packed Unit (Bands sub) (Bands super) Shape Small Small height width -> Omni Packed Unit (Bands sub) (Bands super) Shape Small Small height width Source #

(Packing pack, C neg, C zero, C pos, height ~ width) => ToPlain pack (Hermitian neg zero pos) Filled Filled Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Methods

toPlain :: Omni pack (Hermitian neg zero pos) Filled Filled Shape Small Small height width -> Plain pack (Hermitian neg zero pos) Filled Filled Shape Small Small height width Source #

(Packing pack, C neg, C zero, C pos, height ~ width) => FromPlain pack (Hermitian neg zero pos) Filled Filled Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Associated Types

type Plain pack (Hermitian neg zero pos) Filled Filled Shape Small Small height width :: Type Source #

Methods

fromPlain :: Plain pack (Hermitian neg zero pos) Filled Filled Shape Small Small height width -> Omni pack (Hermitian neg zero pos) Filled Filled Shape Small Small height width Source #

(Natural sub, sub ~ super, height ~ width, C neg, C zero, C pos) => ToPlain Packed (Hermitian neg zero pos) (Bands sub) (Bands super) Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Methods

toPlain :: Omni Packed (Hermitian neg zero pos) (Bands sub) (Bands super) Shape Small Small height width -> Plain Packed (Hermitian neg zero pos) (Bands sub) (Bands super) Shape Small Small height width Source #

(Natural sub, sub ~ super, height ~ width, C neg, C zero, C pos) => FromPlain Packed (Hermitian neg zero pos) (Bands sub) (Bands super) Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

Associated Types

type Plain Packed (Hermitian neg zero pos) (Bands sub) (Bands super) Shape Small Small height width :: Type Source #

Methods

fromPlain :: Plain Packed (Hermitian neg zero pos) (Bands sub) (Bands super) Shape Small Small height width -> Omni Packed (Hermitian neg zero pos) (Bands sub) (Bands super) Shape Small Small height width Source #

type MultiplyMeasure Shape b Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

type Plain pack Symmetric Filled Filled Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

type Plain pack Symmetric Filled Filled Shape Small Small height width = SymmetricP pack height
type Plain pack diag Filled Empty Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

type Plain pack diag Filled Empty Shape Small Small height width = LowerTriangularP pack height
type Plain pack diag Empty Filled Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

type Plain pack diag Empty Filled Shape Small Small height width = UpperTriangularP pack height
type Plain Packed Unit (Bands sub) (Bands super) Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

type Plain Packed Unit (Bands sub) (Bands super) Shape Small Small height width = BandedSquare sub super height
type Plain pack (Hermitian neg zero pos) Filled Filled Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

type Plain pack (Hermitian neg zero pos) Filled Filled Shape Small Small height width = HermitianP pack height
type Plain Packed (Hermitian neg zero pos) (Bands sub) (Bands super) Shape Small Small height width Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Shape.Omni

type Plain Packed (Hermitian neg zero pos) (Bands sub) (Bands super) Shape Small Small height width = BandedHermitian sub height

data Size Source #

Instances
Eq Size Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

(==) :: Size -> Size -> Bool #

(/=) :: Size -> Size -> Bool #

Show Size Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

showsPrec :: Int -> Size -> ShowS #

show :: Size -> String #

showList :: [Size] -> ShowS #

NFData Size Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

rnf :: Size -> () #

Measure Size Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

switchMeasure :: f Shape -> f Size -> f Size Source #

C tag => Measured Size tag Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Strict

Methods

switchMeasured :: f Shape Small -> f Size Small -> f Size Big -> f Size tag Source #

type MultiplyMeasure Size b Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

class (Measure meas, C tag) => Measured meas tag where Source #

Admissible tag combinations are:

meas  vert  horiz
Shape Small Small - Square
Size  Small Small - LiberalSquare
Size  Big   Small - Tall
Size  Small Big   - Wide
Size  Big   Big   - General

We can enforce this set with the constraints

(Extent.Measured meas vert, Extent.Measured meas horiz)

However, in some cases it leads to constraints like Measured meas Small or Measured meas Big. The former one is morally equivalent to Measure meas and the latter one is morally equivalent to meas ~ Size. However, in order to convince the compiler you would have to go through switchMeasured.

In order to circumvent this trouble we use internal functions with weaker constraints:

(Extent.Measure meas, Extent.C vert, Extent.C horiz)

This is typesafe whenever the input is based on one of the five admissible extent types. We only need the strict constraints when constructing matrices of arbitrary extent type, i.e. this almost only concerns fromSquare.

Methods

switchMeasured :: f Shape Small -> f Size Small -> f Size Big -> f meas tag Source #

Instances
tag ~ Small => Measured Shape tag Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Strict

Methods

switchMeasured :: f Shape Small -> f Size Small -> f Size Big -> f Shape tag Source #

C tag => Measured Size tag Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Strict

Methods

switchMeasured :: f Shape Small -> f Size Small -> f Size Big -> f Size tag Source #

data Extent meas vert horiz height width Source #

Instances
(Measure meas, C vert, C horiz, Eq height, Eq width) => Eq (Extent meas vert horiz height width) Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

(==) :: Extent meas vert horiz height width -> Extent meas vert horiz height width -> Bool #

(/=) :: Extent meas vert horiz height width -> Extent meas vert horiz height width -> Bool #

(Measure meas, C vert, C horiz, Show height, Show width) => Show (Extent meas vert horiz height width) Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

showsPrec :: Int -> Extent meas vert horiz height width -> ShowS #

show :: Extent meas vert horiz height width -> String #

showList :: [Extent meas vert horiz height width] -> ShowS #

(Measure measure, C vertical, C horizontal, NFData height, NFData width) => NFData (Extent measure vertical horizontal height width) Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

Methods

rnf :: Extent measure vertical horizontal height width -> () #

data Map measA vertA horizA measB vertB horizB height width Source #

height :: (Measure meas, C vert, C horiz) => Extent meas vert horiz height width -> height Source #

width :: (Measure meas, C vert, C horiz) => Extent meas vert horiz height width -> width Source #

squareSize :: Square shape -> shape Source #

dimensions :: (Measure meas, C vert, C horiz) => Extent meas vert horiz height width -> (height, width) Source #

transpose :: (Measure meas, C vert, C horiz) => Extent meas vert horiz height width -> Extent meas horiz vert width height Source #

fuse :: (Measure meas, C vert, C horiz, Eq fuse) => Extent meas vert horiz height fuse -> Extent meas vert horiz fuse width -> Maybe (Extent meas vert horiz height width) Source #

type family MultiplyMeasure a b Source #

Instances
type MultiplyMeasure Shape b Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

type MultiplyMeasure Size b Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

square :: sh -> Square sh Source #

toGeneral :: (Measure meas, C vert, C horiz) => Map meas vert horiz Size Big Big height width Source #

fromSquare :: (Measured meas vert, Measured meas horiz) => Map Shape Small Small meas vert horiz size size Source #

fromSquareLiberal :: (Measured meas vert, Measured meas horiz) => Map Shape Small Small meas vert horiz height width Source #

fromLiberalSquare :: (C vert, C horiz) => Map Size Small Small Size vert horiz height width Source #

generalizeTall :: (Measure meas, C vert, C horiz) => Map meas vert Small Size vert horiz height width Source #

generalizeWide :: (Measure meas, C vert, C horiz) => Map meas Small horiz Size vert horiz height width Source #

weakenTall :: (Measured meas horiz, C vert) => Map meas vert Small meas vert horiz height width Source #

weakenWide :: (Measured meas vert, C horiz) => Map meas Small horiz meas vert horiz height width Source #

data AppendMode vertA vertB vertC height widthA widthB Source #

appendSame :: C vert => AppendMode vert vert vert height widthA widthB Source #

appendLeft :: C vert => AppendMode vert Big vert height widthA widthB Source #

appendRight :: C vert => AppendMode Big vert vert height widthA widthB Source #

type family Append a b Source #

Instances
type Append Small b Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

type Append Small b = Small
type Append Big b Source # 
Instance details

Defined in Numeric.LAPACK.Matrix.Extent.Private

type Append Big b = b

appendAny :: (C vertA, C vertB) => AppendMode vertA vertB (Append vertA vertB) height widthA widthB Source #