Safe Haskell | None |
---|---|
Language | Haskell98 |
Synopsis
- type Full meas vert horiz height width = UnpackedMatrix Arbitrary Filled Filled meas vert horiz height width
- type Unpacked property lower upper meas vert horiz height width = ArrayMatrix Unpacked property lower upper meas vert horiz height width
- identity :: (Measure meas, C vert, C horiz) => (C sh, Floating a) => sh -> Full meas vert horiz sh sh a
- diagonal :: (Measure meas, C vert, C horiz) => (C sh, Floating a) => Vector sh a -> Full meas vert horiz sh sh a
- mapExtent :: (Measure measA, C vertA, C horizA) => (Measure measB, C vertB, C horizB) => Map measA vertA horizA measB vertB horizB height width -> Full measA vertA horizA height width a -> Full measB vertB horizB height width a
- mapHeight :: (C vert, C horiz, C heightA, C heightB, C width) => (heightA -> heightB) -> Full Size vert horiz heightA width a -> Full Size vert horiz heightB width a
- mapWidth :: (C vert, C horiz, C widthA, C widthB, C height) => (widthA -> widthB) -> Full Size vert horiz height widthA a -> Full Size vert horiz height widthB a
- transpose :: (Measure meas, C vert, C horiz) => Full meas vert horiz height width a -> Full meas horiz vert width height a
- adjoint :: (Measure meas, C vert, C horiz, C height, C width, Floating a) => Full meas vert horiz height width a -> Full meas horiz vert width height a
- multiplyVector :: (Measure meas, C vert, C horiz, C height, C width, Eq width, Floating a) => Full meas vert horiz height width a -> Vector width a -> Vector height a
- multiply :: (Measure meas, C vert, C horiz, C height, C fuse, Eq fuse, C width, Floating a) => Full meas vert horiz height fuse a -> Full meas vert horiz fuse width a -> Full meas vert horiz height width a
Documentation
type Full meas vert horiz height width = UnpackedMatrix Arbitrary Filled Filled meas vert horiz height width Source #
type Unpacked property lower upper meas vert horiz height width = ArrayMatrix Unpacked property lower upper meas vert horiz height width Source #
identity :: (Measure meas, C vert, C horiz) => (C sh, Floating a) => sh -> Full meas vert horiz sh sh a Source #
diagonal :: (Measure meas, C vert, C horiz) => (C sh, Floating a) => Vector sh a -> Full meas vert horiz sh sh a Source #
mapExtent :: (Measure measA, C vertA, C horizA) => (Measure measB, C vertB, C horizB) => Map measA vertA horizA measB vertB horizB height width -> Full measA vertA horizA height width a -> Full measB vertB horizB height width a Source #
mapHeight :: (C vert, C horiz, C heightA, C heightB, C width) => (heightA -> heightB) -> Full Size vert horiz heightA width a -> Full Size vert horiz heightB width a Source #
The number of rows must be maintained by the height mapping function.
mapWidth :: (C vert, C horiz, C widthA, C widthB, C height) => (widthA -> widthB) -> Full Size vert horiz height widthA a -> Full Size vert horiz height widthB a Source #
The number of columns must be maintained by the width mapping function.
transpose :: (Measure meas, C vert, C horiz) => Full meas vert horiz height width a -> Full meas horiz vert width height a Source #
adjoint :: (Measure meas, C vert, C horiz, C height, C width, Floating a) => Full meas vert horiz height width a -> Full meas horiz vert width height a Source #
conjugate transpose
Problem: adjoint a <> a
is always square,
but how to convince the type checker to choose the Square type?
Anser: Use Hermitian.toSquare $ Hermitian.gramian a
instead.