pub fn xsytrs<TA: DataTypeLike, TB: DataTypeLike>(
ctx: &Context,
fill_mode: FillMode,
n: usize,
nrhs: usize,
a: MatrixRef<'_, TA>,
pivots: Option<&DeviceMemory<i64>>,
b: MatrixMut<'_, TB>,
workspace: ByteWorkspaceMut<'_>,
dev_info: &mut DeviceMemory<i32>,
) -> Result<()>Expand description
Use the matching buffer-size helper to calculate the sizes needed for pre-allocated workspace.
Solves a system of linear equations through the generic cuSOLVER routine.
A contains the factorization produced by the typed *sytrf operations in this module.
Only the lower or upper part is meaningful; the other part is left untouched.
Provide the pivot indices returned by the matching *sytrf operation, along
with device and host workspace through workspace.
Use xsytrs_buffer_size to determine the required sizes for
workspace.device and workspace.host.
To factorize and solve the symmetric system without pivoting, pass None
for the pivot buffer to both the matching *sytrf operation and xsytrs.
If the reported dev_info value is -i, the ith parameter is invalid.
List of input arguments for xsytrs_buffer_size and xsytrs:
The generic cuSOLVER routine has two data types: data_type_a is the data type of the
matrix A, and data_type_b is the data type of the matrix B.
xsytrs only supports the following four combinations:
Valid combination of data type and compute type
| data_type_a | data_type_b | Meaning |
|---|---|---|
DataType::F32 | DataType::F32 | SSYTRS |
DataType::F64 | DataType::F64 | DSYTRS |
DataType::ComplexF32 | DataType::ComplexF32 | CSYTRS |
DataType::ComplexF64 | DataType::ComplexF64 | ZSYTRS |
ยงErrors
Returns an error if cuSOLVER has not been initialized, if the matrix dimensions or leading dimension are invalid, if the matrix data type is not supported, or if cuSOLVER reports an internal failure.