accelerate-blas-0.3.0.0: Numeric Linear Algebra in Accelerate
Copyright [2017..2020] 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 Num a => Numeric a Source #

Minimal complete definition

numericR

#### Instances

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

type Matrix #

Arguments

 = 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

Instances details
 Source # Instance details Methods Source # Instance details MethodsshowList :: [Transpose] -> ShowS #

Arguments

 :: forall e. 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