Class SymmetricMultiply
- Namespace
- NVMathNet.LinAlg
- Assembly
- NVMath.Net.dll
Stateless helpers for cuBLAS symmetric matrix-matrix multiply (SYMM): C = alpha * A * B + beta * C (side=Left) or C = alpha * B * A + beta * C (side=Right) where A is symmetric, in column-major layout.
public static class SymmetricMultiplyInheritance
Inherited Members
Methods
DsymmAsync(DeviceBuffer<double>, DeviceBuffer<double>, DeviceBuffer<double>, int, int, double, double, bool, bool, CudaStream?, CancellationToken)
Symmetric matrix-matrix multiply (double-precision, async).
public static Task DsymmAsync(DeviceBuffer<double> a, DeviceBuffer<double> b, DeviceBuffer<double> c, int m, int n, double alpha = 1, double beta = 0, bool leftSide = true, bool upper = false, CudaStream? stream = null, CancellationToken ct = default)Parameters
aDeviceBuffer<double>bDeviceBuffer<double>cDeviceBuffer<double>mintnintalphadoublebetadoubleleftSideboolupperboolstreamCudaStream?ctCancellationToken
Returns
SsymmAsync(DeviceBuffer<float>, DeviceBuffer<float>, DeviceBuffer<float>, int, int, float, float, bool, bool, CudaStream?, CancellationToken)
Symmetric matrix-matrix multiply (single-precision, async).
public static Task SsymmAsync(DeviceBuffer<float> a, DeviceBuffer<float> b, DeviceBuffer<float> c, int m, int n, float alpha = 1, float beta = 0, bool leftSide = true, bool upper = false, CudaStream? stream = null, CancellationToken ct = default)Parameters
aDeviceBuffer<float>-
Device buffer for symmetric matrix A.
bDeviceBuffer<float>-
Device buffer for matrix B (m×n).
cDeviceBuffer<float>-
Device buffer for matrix C (m×n), updated in place.
mint-
Rows of B and C.
nint-
Columns of B and C.
alphafloat-
Scalar multiplier for A*B. Default: 1.
betafloat-
Scalar multiplier for existing C. Default: 0.
leftSidebool-
If true, A is on the left (AB); if false, right (BA).
upperbool-
If true, upper triangle of A is stored; otherwise lower.
streamCudaStream?-
Optional CUDA stream.
ctCancellationToken-
Cancellation token.