The OpenD Programming Language

glas_zsymm

Performs symmetric or hermitian matrix-matrix multiplication.

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

Parameters

alpha cdouble

scalar

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

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

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

m ⨉ n matrix

beta cdouble

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

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

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