The OpenD Programming Language

glas_csymm

Performs symmetric or hermitian matrix-matrix multiplication.

More...
extern (C) nothrow @nogc @system
void
glas_csymm
(
cfloat alpha
,
Slice!(SliceKind.universal, [2], const(cfloat)*) asl
,
Slice!(SliceKind.universal, [2], const(cfloat)*) bsl
,
cfloat beta
,
Slice!(SliceKind.universal, [2], cfloat*) csl
,
ulong settings = 0
)

Parameters

alpha cfloat

scalar

asl Slice!(SliceKind.universal, [2], const(cfloat)*)

k ⨉ k matrix, where k is n when Right flag is set and is m otherwise.

bsl Slice!(SliceKind.universal, [2], const(cfloat)*)

m ⨉ n matrix

beta cfloat

scalar. When beta is supplied as zero then the matrix csl need not be set on input.

csl Slice!(SliceKind.universal, [2], cfloat*)

m ⨉ n matrix with one stride equals to ±1.

settings ulong

Operation settings. Allowed flags are Left, Right, Lower, Upper, ConjA, ConjB. ConjA flag specifies if the matrix A is hermitian.

Unified alias

symm

If your matrix is not SliceKind.universal, you can use mir.ndslice.topology.universal to convert it before passing it.

BLAS: SSYMM, DSYMM, CSYMM, ZSYMM, SHEMM, DHEMM, CHEMM, ZHEMM

Detailed Description

Pseudo code

C := alpha A × B + beta C or C := alpha B × A + beta C, where alpha and beta are scalars, A is a symmetric or hermitian matrix and B and C are m × n matrices.

Meta