blas-0.5: Bindings to the BLAS librarySource codeContentsIndex
Data.Matrix.Dense
Stabilityexperimental
MaintainerPatrick Perry <patperry@stanford.edu>
Contents
Dense matrix type
Creating matrices
Special matrices
Rows and columns
Diagonals
Augmenting matrices
Matrix arithmetic
Casting matrices
Converting between vectors and matrices
Unsafe operations
Description
Synopsis
type Matrix = DMatrix Imm
module BLAS.Matrix.Base
module BLAS.Matrix.Immutable
module BLAS.Tensor.Base
module BLAS.Tensor.Dense.Immutable
module BLAS.Tensor.Immutable
module BLAS.Tensor.Scalable
matrix :: BLAS1 e => (Int, Int) -> [((Int, Int), e)] -> Matrix (m, n) e
listMatrix :: Elem e => (Int, Int) -> [e] -> Matrix (m, n) e
fromCols :: BLAS1 e => (Int, Int) -> [Vector m e] -> Matrix (m, n) e
fromRows :: BLAS1 e => (Int, Int) -> [Vector n e] -> Matrix (m, n) e
identity :: BLAS1 e => (Int, Int) -> Matrix (m, n) e
row :: Elem e => DMatrix t (m, n) e -> Int -> DVector t n e
col :: Elem e => DMatrix t (m, n) e -> Int -> DVector t m e
rows :: Elem e => DMatrix t (m, n) e -> [DVector t n e]
cols :: Elem e => DMatrix t (m, n) e -> [DVector t m e]
diag :: Elem e => DMatrix t (m, n) e -> Int -> DVector t k e
submatrix :: Elem e => DMatrix t (m, n) e -> (Int, Int) -> (Int, Int) -> DMatrix t (k, l) e
shift :: BLAS1 e => e -> Matrix (m, n) e -> Matrix (m, n) e
scale :: BLAS1 e => e -> Matrix (m, n) e -> Matrix (m, n) e
invScale :: BLAS1 e => e -> Matrix (m, n) e -> Matrix (m, n) e
coerceMatrix :: DMatrix t mn e -> DMatrix t kl e
fromRow :: BLAS1 e => Vector n e -> Matrix (one, n) e
fromCol :: BLAS1 e => Vector m e -> Matrix (m, one) e
unsafeMatrix :: BLAS1 e => (Int, Int) -> [((Int, Int), e)] -> Matrix (m, n) e
unsafeRow :: Elem e => DMatrix t (m, n) e -> Int -> DVector t n e
unsafeCol :: Elem e => DMatrix t (m, n) e -> Int -> DVector t m e
unsafeDiag :: Elem e => DMatrix t (m, n) e -> Int -> DVector t k e
unsafeSubmatrix :: Elem e => DMatrix t (m, n) e -> (Int, Int) -> (Int, Int) -> DMatrix t (k, l) e
Dense matrix type
type Matrix = DMatrix ImmSource
module BLAS.Matrix.Base
module BLAS.Matrix.Immutable
module BLAS.Tensor.Base
module BLAS.Tensor.Dense.Immutable
module BLAS.Tensor.Immutable
module BLAS.Tensor.Scalable
Creating matrices
matrix :: BLAS1 e => (Int, Int) -> [((Int, Int), e)] -> Matrix (m, n) eSource
Create a new matrix of the given size and initialize the given elements to the given values. All other elements get set to zero.
listMatrix :: Elem e => (Int, Int) -> [e] -> Matrix (m, n) eSource
Create a new matrix with the given elements in row-major order.
fromCols :: BLAS1 e => (Int, Int) -> [Vector m e] -> Matrix (m, n) eSource
Create a matrix of the given shape from a list of columns
fromRows :: BLAS1 e => (Int, Int) -> [Vector n e] -> Matrix (m, n) eSource
Create a matrix of the given shape from a list of rows
Special matrices
identity :: BLAS1 e => (Int, Int) -> Matrix (m, n) eSource
Get a new matrix of the given shape with ones along the diagonal and zeroes everywhere else.
Rows and columns
row :: Elem e => DMatrix t (m, n) e -> Int -> DVector t n eSource
Get a vector view of the given row in a matrix.
col :: Elem e => DMatrix t (m, n) e -> Int -> DVector t m eSource
Get a vector view of the given column in a matrix.
rows :: Elem e => DMatrix t (m, n) e -> [DVector t n e]Source
Get a list of vector views of the rows of the matrix.
cols :: Elem e => DMatrix t (m, n) e -> [DVector t m e]Source
Get a list of vector views of the columns of the matrix.
Diagonals
diag :: Elem e => DMatrix t (m, n) e -> Int -> DVector t k eSource
diag a 0 gets a vector view of the main diagonal of a. diag a k for k positive gets a view of the kth superdiagonal. For k negative, it gets a view of the (-k)th subdiagonal.
Augmenting matrices
submatrix :: Elem e => DMatrix t (m, n) e -> (Int, Int) -> (Int, Int) -> DMatrix t (k, l) eSource
submatrix a ij mn returns a view of the submatrix of a with element (0,0) being element ij in a, and having shape mn.
Matrix arithmetic
shift :: BLAS1 e => e -> Matrix (m, n) e -> Matrix (m, n) eSource
Form a new matrix by adding a value to every element in a matrix.
scale :: BLAS1 e => e -> Matrix (m, n) e -> Matrix (m, n) eSource
Create a new matrix by scaling another matrix by the given value.
invScale :: BLAS1 e => e -> Matrix (m, n) e -> Matrix (m, n) eSource
Form a new matrix by dividing every element by a value.
Casting matrices
coerceMatrix :: DMatrix t mn e -> DMatrix t kl eSource
Coerce the phantom shape type from one type to another.
Converting between vectors and matrices
fromRow :: BLAS1 e => Vector n e -> Matrix (one, n) eSource
Get a matrix from a row vector.
fromCol :: BLAS1 e => Vector m e -> Matrix (m, one) eSource
Get a matrix from a column vector.
Unsafe operations
unsafeMatrix :: BLAS1 e => (Int, Int) -> [((Int, Int), e)] -> Matrix (m, n) eSource
Same as matrix but does not do any bounds checking.
unsafeRow :: Elem e => DMatrix t (m, n) e -> Int -> DVector t n eSource
Same as row, but does not do any bounds checking.
unsafeCol :: Elem e => DMatrix t (m, n) e -> Int -> DVector t m eSource
Same as col, but does not do any bounds checking.
unsafeDiag :: Elem e => DMatrix t (m, n) e -> Int -> DVector t k eSource
Same as diag, but does not do any bounds checking.
unsafeSubmatrix :: Elem e => DMatrix t (m, n) e -> (Int, Int) -> (Int, Int) -> DMatrix t (k, l) eSource
Same as submatrix but does not do any bounds checking.
Produced by Haddock version 2.3.0