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

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 FieldsnumRows :: Exp Int columnMatrix :: Matrix ix (Int, a)

multiplyColumnsVector :: (Shape ix, Slice ix, Num a) => Columns ix a -> Vector ix a -> Vector ix a Source #

transposeColumns :: (Shape ix, Slice ix, Num 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 FieldsnumCols :: Exp Int rowMatrix :: Matrix ix (Int, a)

multiplyRowsVector :: (Shape ix, Slice ix, Num a) => Rows ix a -> Vector ix a -> Vector ix a Source #

transposeRows :: (Shape ix, Slice ix, Num a) => Rows ix a -> Columns 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.

scaleRowRows :: (Slice ix, Shape ix, Num a) => Vector ix a -> Rows ix a -> Rows ix a Source #