accelerate-arithmetic-0.1: Linear algebra and interpolation using the Accelerate framework

Safe HaskellNone
LanguageHaskell98

Data.Array.Accelerate.LinearAlgebra.Matrix.Sparse

Synopsis

Documentation

data Columns ix a Source

Sparse matrix with a definite number of non-zero entries per column.

Constructors

Columns 

Fields

numRows :: Exp Int
 
columnMatrix :: Matrix ix (Int, a)
 

multiplyColumnsVector :: (Shape ix, Slice ix, IsNum a, Elt a) => Columns ix a -> Vector ix a -> Vector ix a Source

transposeColumns :: (Shape ix, Slice ix, IsNum a, Elt a) => Columns ix a -> Rows ix a Source

data Rows ix a Source

Sparse matrix with a definite number of non-zero entries per row.

Constructors

Rows 

Fields

numCols :: Exp Int
 
rowMatrix :: Matrix ix (Int, a)
 

multiplyRowsVector :: (Shape ix, Slice ix, IsNum a, Elt a) => Rows ix a -> Vector ix a -> Vector ix a Source

transposeRows :: (Shape ix, Slice ix, IsNum a, Elt a) => Rows ix a -> Columns ix a Source

multiplyColumnsRows :: (Shape ix, Slice ix, IsNum a, Elt a) => Columns ix a -> Rows ix a -> Matrix ix a Source

realBandedGramian :: (Shape ix, Slice ix, IsNum a, Elt 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.

scaleRowRows :: (Slice ix, Shape ix, Elt a, IsNum a) => Vector ix a -> Rows ix a -> Rows ix a Source