Class TriangularSolve
- Namespace
- NVMathNet.LinAlg
- Assembly
- NVMath.Net.dll
Stateless helpers for cuBLAS triangular solve (TRSM): B = alpha * inv(op(A)) * B (side=Left) or B = alpha * B * inv(op(A)) (side=Right) where A is triangular, in column-major layout.
public static class TriangularSolveInheritance
Inherited Members
Methods
DtrsmAsync(DeviceBuffer<double>, DeviceBuffer<double>, int, int, double, bool, bool, bool, bool, CudaStream?, CancellationToken)
Solves a triangular system asynchronously (double-precision).
public static Task DtrsmAsync(DeviceBuffer<double> a, DeviceBuffer<double> b, int m, int n, double alpha = 1, bool leftSide = true, bool upper = false, bool transpose = false, bool unitDiag = false, CudaStream? stream = null, CancellationToken ct = default)Parameters
aDeviceBuffer<double>bDeviceBuffer<double>mintnintalphadoubleleftSideboolupperbooltransposeboolunitDiagboolstreamCudaStream?ctCancellationToken
Returns
StrsmAsync(DeviceBuffer<float>, DeviceBuffer<float>, int, int, float, bool, bool, bool, bool, CudaStream?, CancellationToken)
Solves a triangular system asynchronously (single-precision). B is overwritten with the solution.
public static Task StrsmAsync(DeviceBuffer<float> a, DeviceBuffer<float> b, int m, int n, float alpha = 1, bool leftSide = true, bool upper = false, bool transpose = false, bool unitDiag = false, CudaStream? stream = null, CancellationToken ct = default)Parameters
aDeviceBuffer<float>-
Device buffer for triangular matrix A (m×m for Left, n×n for Right).
bDeviceBuffer<float>-
Device buffer for matrix B (m×n), overwritten with the solution.
mint-
Rows of B.
nint-
Columns of B.
alphafloat-
Scalar multiplier. Default: 1.
leftSidebool-
If true, solve from the left (AX = alphaB); otherwise right.
upperbool-
If true, A is upper triangular; otherwise lower.
transposebool-
If true, use A^T instead of A.
unitDiagbool-
If true, diagonal of A is assumed to be all ones.
streamCudaStream?-
Optional CUDA stream.
ctCancellationToken-
Cancellation token.