accelerate-blas-0.2.0.1: Numeric Linear Algebra in Accelerate

Copyright [2017] Trevor L. McDonell BSD3 Trevor L. McDonell experimental non-portable (GHC extensions) None Haskell2010

Data.Array.Accelerate.Numeric.LinearAlgebra.BLAS.Level3

Description

Level 3 (matrix-matrix) BLAS operations.

Synopsis

# Documentation

class (Elt a, Num a) => Numeric a Source #

Minimal complete definition

numericR

Instances
 Source # Instance details MethodsnumericR :: NumericR Double Source # Instance details MethodsnumericR :: NumericR Float Source # Instance details MethodsnumericR :: NumericR (Complex Double) Source # Instance details MethodsnumericR :: NumericR (Complex Float)

type Matrix = Array DIM2 #

Matrices are two-dimensional arrays

data Transpose Source #

Many operations allow you to implicitly transpose the arguments. For a given input matrix mat with dimensions Z :. m :. n (that is; m rows and n columns):

Constructors

 N Leave the matrix as is. T Treat the matrix as implicitly transposed, with dimensions Z :. n :. m. Entry Z :. j :. i is treated as actually being entry Z :. i :. j. H Implicitly transpose and conjugate the input matrix. For complex-valued matrices a given element mat ! Z:.j:.i == x :+ y will be treated as actually being mat ! Z:.i:.j == x :+ (-y).
Instances
 Source # Instance details Methods Source # Instance details MethodsshowList :: [Transpose] -> ShowS #

Arguments

 :: Numeric e => Exp e $$\alpha$$ -> Transpose operation to apply to A -> Acc (Matrix e) A -> Transpose operation to apply to B -> Acc (Matrix e) B -> Acc (Matrix e) C

General matrix-matrix multiply

$C = \alpha * \mathrm{op}(A) * \mathrm{op}(B)$

where:

• shape $$\mathrm{op}(A)$$ = Z :. m :. k
• shape $$\mathrm{op}(B)$$ = Z :. k :. n
• shape $$C$$ = Z :. m :. n

https://software.intel.com/en-us/mkl-developer-reference-c-cblas-gemm