accelerate-blas-0.1.0.1: Numeric Linear Algebra in Accelerate

Copyright[2017] Trevor L. McDonell
LicenseBSD3
MaintainerTrevor L. McDonell <tmcdonell@cse.unsw.edu.au>
Stabilityexperimental
Portabilitynon-portable (GHC extensions)
Safe HaskellNone
LanguageHaskell2010

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

Numeric Double Source # 

Methods

numericR :: NumericR Double

Numeric Float Source # 

Methods

numericR :: NumericR Float

Numeric (Complex Double) Source # 

Methods

numericR :: NumericR (Complex Double)

Numeric (Complex Float) Source # 

Methods

numericR :: NumericR (Complex Float)

type Matrix e = Array DIM2 e Source #

Matrices as dense two-dimensional arrays in row-major ordering

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).

gemm Source #

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