Skip to main content

xsytrs

Function xsytrs 

Source
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

ยง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.