Safe Haskell | None |
---|---|
Language | Haskell98 |
Synopsis
- type Symmetric sh = SymmetricP Packed sh
- takeUpper :: Symmetric sh a -> Upper sh a
- fromUpper :: Upper sh a -> Symmetric sh a
- pack :: (Packing pack, C sh, Floating a) => SymmetricP pack sh a -> Symmetric sh a
- assureSymmetry :: (Packing pack, C sh, Floating a) => Square sh a -> SymmetricP pack sh a
- size :: SymmetricP pack sh a -> sh
- fromList :: (C sh, Storable a) => Order -> sh -> [a] -> Symmetric sh a
- autoFromList :: Storable a => Order -> [a] -> Symmetric ShapeInt a
- identity :: (C sh, Floating a) => Order -> sh -> Symmetric sh a
- diagonal :: (C sh, Floating a) => Order -> Vector sh a -> Symmetric sh a
- takeDiagonal :: (C sh, Floating a) => Symmetric sh a -> Vector sh a
- forceOrder :: (Packing pack, C sh, Floating a) => Order -> SymmetricP pack sh a -> SymmetricP pack sh a
- transpose :: SymmetricP pack sh a -> SymmetricP pack sh a
- adjoint :: (Packing pack, C sh, Floating a) => SymmetricP pack sh a -> SymmetricP pack sh a
- stack :: (Packing pack, C sh0, Eq sh0, C sh1, Eq sh1, Floating a) => SymmetricP pack sh0 a -> General sh0 sh1 a -> SymmetricP pack sh1 a -> SymmetricP pack (sh0 ::+ sh1) a
- (#%%%#) :: (Packing pack, C sh0, Eq sh0, C sh1, Eq sh1, Floating a) => (SymmetricP pack sh0 a, General sh0 sh1 a) -> SymmetricP pack sh1 a -> SymmetricP pack (sh0 ::+ sh1) a
- split :: (Packing pack, C sh0, Eq sh0, C sh1, Eq sh1, Floating a) => SymmetricP pack (sh0 ::+ sh1) a -> (SymmetricP pack sh0 a, General sh0 sh1 a, SymmetricP pack sh1 a)
- takeTopLeft :: (Packing pack, C sh0, C sh1, Floating a) => SymmetricP pack (sh0 ::+ sh1) a -> SymmetricP pack sh0 a
- takeTopRight :: (Packing pack, C sh0, C sh1, Floating a) => SymmetricP pack (sh0 ::+ sh1) a -> General sh0 sh1 a
- takeBottomRight :: (Packing pack, C sh0, C sh1, Floating a) => SymmetricP pack (sh0 ::+ sh1) a -> SymmetricP pack sh1 a
- toSquare :: (Packing pack, C sh, Floating a) => SymmetricP pack sh a -> Square sh a
- fromHermitian :: (Packing pack, C neg, C zero, C pos, C sh, Real a) => FlexHermitianP pack neg zero pos sh a -> SymmetricP pack sh a
- multiplyVector :: Packing pack => (C sh, Eq sh, Floating a) => SymmetricP pack sh a -> Vector sh a -> Vector sh a
- multiplyFull :: Packing pack => (Measure meas, C vert, C horiz, C height, Eq height, C width, Floating a) => SymmetricP pack height a -> Full meas vert horiz height width a -> Full meas vert horiz height width a
- square :: (Packing pack, C sh, Floating a) => SymmetricP pack sh a -> SymmetricP pack sh a
- tensorProduct :: (Packing pack, C sh, Floating a) => Order -> Vector sh a -> SymmetricP pack sh a
- sumRank1 :: (Packing pack, C sh, Eq sh, Floating a) => Order -> sh -> [(a, Vector sh a)] -> SymmetricP pack sh a
- sumRank1NonEmpty :: (Packing pack, C sh, Eq sh, Floating a) => Order -> T [] (a, Vector sh a) -> SymmetricP pack sh a
- gramian :: Packing pack => (C height, C width, Floating a) => General height width a -> SymmetricP pack width a
- gramianTransposed :: Packing pack => (C height, C width, Floating a) => General height width a -> SymmetricP pack height a
- congruenceDiagonal :: Packing pack => (C height, Eq height, C width, Floating a) => Vector height a -> General height width a -> SymmetricP pack width a
- congruenceDiagonalTransposed :: Packing pack => (C height, C width, Eq width, Floating a) => General height width a -> Vector width a -> SymmetricP pack height a
- congruence :: Packing pack => (C height, Eq height, C width, Floating a) => SymmetricP pack height a -> General height width a -> SymmetricP pack width a
- congruenceTransposed :: Packing pack => (C height, C width, Eq width, Floating a) => General height width a -> SymmetricP pack width a -> SymmetricP pack height a
- anticommutator :: (Packing pack, Measure meas, C vert, C horiz, C height, Eq height, C width, Eq width, Floating a) => Full meas vert horiz height width a -> Full meas vert horiz height width a -> SymmetricP pack width a
- anticommutatorTransposed :: (Packing pack, Measure meas, C vert, C horiz, C height, Eq height, C width, Eq width, Floating a) => Full meas vert horiz height width a -> Full meas vert horiz height width a -> SymmetricP pack height a
- addTransposed :: (Packing pack, C sh, Floating a) => Square sh a -> SymmetricP pack sh a
- solve :: Packing pack => (Measure meas, C vert, C horiz, C sh, Eq sh, C nrhs, Floating a) => SymmetricP pack sh a -> Full meas vert horiz sh nrhs a -> Full meas vert horiz sh nrhs a
- inverse :: (Packing pack, C sh, Floating a) => SymmetricP pack sh a -> SymmetricP pack sh a
- determinant :: (Packing pack, C sh, Floating a) => SymmetricP pack sh a -> a
Documentation
forceOrder :: (Packing pack, C sh, Floating a) => Order -> SymmetricP pack sh a -> SymmetricP pack sh a Source #
adjoint :: (Packing pack, C sh, Floating a) => SymmetricP pack sh a -> SymmetricP pack sh a Source #
stack :: (Packing pack, C sh0, Eq sh0, C sh1, Eq sh1, Floating a) => SymmetricP pack sh0 a -> General sh0 sh1 a -> SymmetricP pack sh1 a -> SymmetricP pack (sh0 ::+ sh1) a Source #
(#%%%#) :: (Packing pack, C sh0, Eq sh0, C sh1, Eq sh1, Floating a) => (SymmetricP pack sh0 a, General sh0 sh1 a) -> SymmetricP pack sh1 a -> SymmetricP pack (sh0 ::+ sh1) a infixr 2 Source #
split :: (Packing pack, C sh0, Eq sh0, C sh1, Eq sh1, Floating a) => SymmetricP pack (sh0 ::+ sh1) a -> (SymmetricP pack sh0 a, General sh0 sh1 a, SymmetricP pack sh1 a) Source #
takeTopLeft :: (Packing pack, C sh0, C sh1, Floating a) => SymmetricP pack (sh0 ::+ sh1) a -> SymmetricP pack sh0 a Source #
takeTopRight :: (Packing pack, C sh0, C sh1, Floating a) => SymmetricP pack (sh0 ::+ sh1) a -> General sh0 sh1 a Source #
takeBottomRight :: (Packing pack, C sh0, C sh1, Floating a) => SymmetricP pack (sh0 ::+ sh1) a -> SymmetricP pack sh1 a Source #
fromHermitian :: (Packing pack, C neg, C zero, C pos, C sh, Real a) => FlexHermitianP pack neg zero pos sh a -> SymmetricP pack sh a Source #
multiplyVector :: Packing pack => (C sh, Eq sh, Floating a) => SymmetricP pack sh a -> Vector sh a -> Vector sh a Source #
multiplyFull :: Packing pack => (Measure meas, C vert, C horiz, C height, Eq height, C width, Floating a) => SymmetricP pack height a -> Full meas vert horiz height width a -> Full meas vert horiz height width a Source #
tensorProduct :: (Packing pack, C sh, Floating a) => Order -> Vector sh a -> SymmetricP pack sh a Source #
sumRank1 :: (Packing pack, C sh, Eq sh, Floating a) => Order -> sh -> [(a, Vector sh a)] -> SymmetricP pack sh a Source #
sumRank1NonEmpty :: (Packing pack, C sh, Eq sh, Floating a) => Order -> T [] (a, Vector sh a) -> SymmetricP pack sh a Source #
gramian :: Packing pack => (C height, C width, Floating a) => General height width a -> SymmetricP pack width a Source #
gramian A = A^T * A
gramianTransposed :: Packing pack => (C height, C width, Floating a) => General height width a -> SymmetricP pack height a Source #
gramianTransposed A = A * A^T = gramian (A^T)
congruenceDiagonal :: Packing pack => (C height, Eq height, C width, Floating a) => Vector height a -> General height width a -> SymmetricP pack width a Source #
congruenceDiagonal D A = A^T * D * A
congruenceDiagonalTransposed :: Packing pack => (C height, C width, Eq width, Floating a) => General height width a -> Vector width a -> SymmetricP pack height a Source #
congruenceDiagonalTransposed A D = A * D * A^T
congruence :: Packing pack => (C height, Eq height, C width, Floating a) => SymmetricP pack height a -> General height width a -> SymmetricP pack width a Source #
congruence B A = A^T * B * A
congruenceTransposed :: Packing pack => (C height, C width, Eq width, Floating a) => General height width a -> SymmetricP pack width a -> SymmetricP pack height a Source #
congruenceTransposed B A = A * B * A^T
anticommutator :: (Packing pack, Measure meas, C vert, C horiz, C height, Eq height, C width, Eq width, Floating a) => Full meas vert horiz height width a -> Full meas vert horiz height width a -> SymmetricP pack width a Source #
anticommutator A B = A^T * B + B^T * A
Not exactly a matrix anticommutator, thus I like to call it Symmetric anticommutator.
anticommutatorTransposed :: (Packing pack, Measure meas, C vert, C horiz, C height, Eq height, C width, Eq width, Floating a) => Full meas vert horiz height width a -> Full meas vert horiz height width a -> SymmetricP pack height a Source #
anticommutatorTransposed A B = A * B^T + B * A^T = anticommutator (transpose A) (transpose B)
addTransposed :: (Packing pack, C sh, Floating a) => Square sh a -> SymmetricP pack sh a Source #
addTransposed A = A^T + A
solve :: Packing pack => (Measure meas, C vert, C horiz, C sh, Eq sh, C nrhs, Floating a) => SymmetricP pack sh a -> Full meas vert horiz sh nrhs a -> Full meas vert horiz sh nrhs a Source #