blas-0.6: Bindings to the BLAS librarySource codeContentsIndex
BLAS.Matrix.Solve.Mutable
Stabilityexperimental
MaintainerPatrick Perry <patperry@stanford.edu>
Contents
Matrix and vector solving
In-place solving
The MSolve typeclass
Unsafe operations
Description
Synopsis
getSolve :: (MSolve a e m, ReadVector y m, WriteVector x m) => a (k, l) e -> y k e -> m (x l e)
getSolveMat :: (MSolve a e m, ReadMatrix c y m, WriteMatrix b x m) => a (r, s) e -> c (r, t) e -> m (b (s, t) e)
getSSolve :: (MSolve a e m, ReadVector y m, WriteVector x m) => e -> a (k, l) e -> y k e -> m (x l e)
getSSolveMat :: (MSolve a e m, ReadMatrix c y m, WriteMatrix b x m) => e -> a (r, s) e -> c (r, t) e -> m (b (s, t) e)
doSolve :: (MSolve a e m, ReadVector y m, WriteVector x m) => a (r, s) e -> y r e -> x s e -> m ()
doSolveMat :: (MSolve a e m, ReadMatrix c y m, WriteMatrix b x m) => a (r, s) e -> c (r, t) e -> b (s, t) e -> m ()
doSSolve :: (MSolve a e m, ReadVector y m, WriteVector x m) => e -> a (k, l) e -> y k e -> x l e -> m ()
doSSolveMat :: (MSolve a e m, ReadMatrix c y m, WriteMatrix b x m) => e -> a (r, s) e -> c (r, t) e -> b (s, t) e -> m ()
doSolve_ :: (MSolve a e m, ReadVector y m, WriteVector x m) => a (k, k) e -> x k e -> m ()
doSolveMat_ :: (MSolve a e m, WriteMatrix b x m) => a (k, k) e -> b (k, l) e -> m ()
doSSolve_ :: (MSolve a e m, WriteVector x m) => e -> a (k, k) e -> x k e -> m ()
doSSolveMat_ :: (MSolve a e m, WriteMatrix b x m) => e -> a (k, k) e -> b (k, l) e -> m ()
class (BaseMatrix a, BLAS1 e, Monad m) => MSolve a e m where
unsafeDoSolve :: (ReadVector y m, WriteVector x m) => a (k, l) e -> y k e -> x l e -> m ()
unsafeDoSolveMat :: (ReadMatrix c y m, WriteMatrix b x m) => a (r, s) e -> c (r, t) e -> b (s, t) e -> m ()
unsafeDoSSolve :: (ReadVector y m, WriteVector x m) => e -> a (k, l) e -> y k e -> x l e -> m ()
unsafeDoSSolveMat :: (ReadMatrix c y m, WriteMatrix b x m) => e -> a (r, s) e -> c (r, t) e -> b (s, t) e -> m ()
unsafeDoSolve_ :: WriteVector x m => a (k, k) e -> x k e -> m ()
unsafeDoSSolve_ :: WriteVector x m => e -> a (k, k) e -> x k e -> m ()
unsafeDoSolveMat_ :: WriteMatrix b x m => a (k, k) e -> b (k, l) e -> m ()
unsafeDoSSolveMat_ :: WriteMatrix b x m => e -> a (k, k) e -> b (k, l) e -> m ()
unsafeGetSolve :: (MSolve a e m, ReadVector y m, WriteVector x m) => a (k, l) e -> y k e -> m (x l e)
unsafeGetSolveMat :: (MSolve a e m, ReadMatrix c y m, WriteMatrix b x m) => a (r, s) e -> c (r, t) e -> m (b (s, t) e)
unsafeGetSSolve :: (MSolve a e m, ReadVector y m, WriteVector x m) => e -> a (k, l) e -> y k e -> m (x l e)
unsafeGetSSolveMat :: (MSolve a e m, ReadMatrix c y m, WriteMatrix b x m) => e -> a (r, s) e -> c (r, t) e -> m (b (s, t) e)
Matrix and vector solving
getSolve :: (MSolve a e m, ReadVector y m, WriteVector x m) => a (k, l) e -> y k e -> m (x l e)Source
Solve for a vector
getSolveMat :: (MSolve a e m, ReadMatrix c y m, WriteMatrix b x m) => a (r, s) e -> c (r, t) e -> m (b (s, t) e)Source
Solve for a matrix
getSSolve :: (MSolve a e m, ReadVector y m, WriteVector x m) => e -> a (k, l) e -> y k e -> m (x l e)Source
Solve for a vector and scale
getSSolveMat :: (MSolve a e m, ReadMatrix c y m, WriteMatrix b x m) => e -> a (r, s) e -> c (r, t) e -> m (b (s, t) e)Source
Solve for a matrix and scale
In-place solving
doSolve :: (MSolve a e m, ReadVector y m, WriteVector x m) => a (r, s) e -> y r e -> x s e -> m ()Source
doSolveMat :: (MSolve a e m, ReadMatrix c y m, WriteMatrix b x m) => a (r, s) e -> c (r, t) e -> b (s, t) e -> m ()Source
doSSolve :: (MSolve a e m, ReadVector y m, WriteVector x m) => e -> a (k, l) e -> y k e -> x l e -> m ()Source
doSSolveMat :: (MSolve a e m, ReadMatrix c y m, WriteMatrix b x m) => e -> a (r, s) e -> c (r, t) e -> b (s, t) e -> m ()Source
doSolve_ :: (MSolve a e m, ReadVector y m, WriteVector x m) => a (k, k) e -> x k e -> m ()Source
doSolveMat_ :: (MSolve a e m, WriteMatrix b x m) => a (k, k) e -> b (k, l) e -> m ()Source
doSSolve_ :: (MSolve a e m, WriteVector x m) => e -> a (k, k) e -> x k e -> m ()Source
doSSolveMat_ :: (MSolve a e m, WriteMatrix b x m) => e -> a (k, k) e -> b (k, l) e -> m ()Source
The MSolve typeclass
class (BaseMatrix a, BLAS1 e, Monad m) => MSolve a e m whereSource
Methods
unsafeDoSolve :: (ReadVector y m, WriteVector x m) => a (k, l) e -> y k e -> x l e -> m ()Source
unsafeDoSolveMat :: (ReadMatrix c y m, WriteMatrix b x m) => a (r, s) e -> c (r, t) e -> b (s, t) e -> m ()Source
unsafeDoSSolve :: (ReadVector y m, WriteVector x m) => e -> a (k, l) e -> y k e -> x l e -> m ()Source
unsafeDoSSolveMat :: (ReadMatrix c y m, WriteMatrix b x m) => e -> a (r, s) e -> c (r, t) e -> b (s, t) e -> m ()Source
unsafeDoSolve_ :: WriteVector x m => a (k, k) e -> x k e -> m ()Source
unsafeDoSSolve_ :: WriteVector x m => e -> a (k, k) e -> x k e -> m ()Source
unsafeDoSolveMat_ :: WriteMatrix b x m => a (k, k) e -> b (k, l) e -> m ()Source
unsafeDoSSolveMat_ :: WriteMatrix b x m => e -> a (k, k) e -> b (k, l) e -> m ()Source
show/hide Instances
(BLAS1 e, UnsafeIOToM m) => MSolve Perm e m
BLAS1 e => MSolve (Diag IOVector) e IO
BLAS1 e => MSolve (Diag IOVector) e IO
(BLAS1 e, UnsafeIOToM m) => MSolve (Diag Vector) e m
BLAS3 e => MSolve (Tri IOMatrix) e IO
BLAS3 e => MSolve (Tri IOMatrix) e IO
(BLAS3 e, UnsafeIOToM m) => MSolve (Tri Matrix) e m
BLAS2 e => MSolve (Tri IOBanded) e IO
BLAS2 e => MSolve (Tri IOBanded) e IO
(BLAS2 e, UnsafeIOToM m) => MSolve (Tri Banded) e m
BLAS1 e => MSolve (Diag (STVector s)) e (ST s)
BLAS1 e => MSolve (Diag (STVector s)) e (ST s)
BLAS3 e => MSolve (Tri (STMatrix s)) e (ST s)
BLAS3 e => MSolve (Tri (STMatrix s)) e (ST s)
BLAS2 e => MSolve (Tri (STBanded s)) e (ST s)
BLAS2 e => MSolve (Tri (STBanded s)) e (ST s)
Unsafe operations
unsafeGetSolve :: (MSolve a e m, ReadVector y m, WriteVector x m) => a (k, l) e -> y k e -> m (x l e)Source
unsafeGetSolveMat :: (MSolve a e m, ReadMatrix c y m, WriteMatrix b x m) => a (r, s) e -> c (r, t) e -> m (b (s, t) e)Source
unsafeGetSSolve :: (MSolve a e m, ReadVector y m, WriteVector x m) => e -> a (k, l) e -> y k e -> m (x l e)Source
unsafeGetSSolveMat :: (MSolve a e m, ReadMatrix c y m, WriteMatrix b x m) => e -> a (r, s) e -> c (r, t) e -> m (b (s, t) e)Source
Produced by Haddock version 2.3.0