Safe Haskell | None |
---|---|
Language | Haskell98 |
- data Columns ix a = Columns {}
- multiplyColumnsVector :: (Shape ix, Slice ix, Num a) => Columns ix a -> Vector ix a -> Vector ix a
- transposeColumns :: (Shape ix, Slice ix, Num a) => Columns ix a -> Rows ix a
- data Rows ix a = Rows {}
- multiplyRowsVector :: (Shape ix, Slice ix, Num a) => Rows ix a -> Vector ix a -> Vector ix a
- transposeRows :: (Shape ix, Slice ix, Num a) => Rows ix a -> Columns ix a
- multiplyColumnsRows :: (Shape ix, Slice ix, Num a) => Columns ix a -> Rows ix a -> Matrix ix a
- realBandedGramian :: (Shape ix, Slice ix, Num a) => Exp Int -> Rows ix a -> Symmetric ix a
- scaleRowRows :: (Slice ix, Shape ix, Num a) => Vector ix a -> Rows ix a -> Rows ix a
Documentation
Sparse matrix with a definite number of non-zero entries per column.
multiplyColumnsVector :: (Shape ix, Slice ix, Num a) => Columns ix a -> Vector ix a -> Vector ix a Source #
Sparse matrix with a definite number of non-zero entries per row.
multiplyRowsVector :: (Shape ix, Slice ix, Num a) => Rows ix a -> Vector ix a -> Vector ix a Source #
multiplyColumnsRows :: (Shape ix, Slice ix, Num a) => Columns ix a -> Rows ix a -> Matrix ix a Source #
realBandedGramian :: (Shape ix, Slice ix, Num a) => Exp Int -> Rows ix a -> Symmetric ix a Source #
Compute x^T*x, given that it has a band structure. You must pass the band-width as parameter and you must make sure that the Gramian stays within this band. Otherwise you cause out-of-bounds array accesses. So far, only correct for real matrices.