Loading...
Searching...
No Matches
single precision
Sparse LA » Sparse preconditioners » General matrix preconditioner

## Functions

magma_int_t | magma_scustomicsetup (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
| Reads in an Incomplete Cholesky preconditioner.
magma_int_t | magma_scustomilusetup (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
| Reads in an Incomplete LU preconditioner.
magma_int_t | magma_sisai_l (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue)
| Left-hand-side application of ISAI preconditioner.
magma_int_t | magma_sisai_r (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue)
| Right-hand-side application of ISAI preconditioner.
magma_int_t | magma_sisai_l_t (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue)
| Left-hand-side application of ISAI preconditioner.
magma_int_t | magma_sisai_r_t (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue)
| Right-hand-side application of ISAI preconditioner.
magma_int_t | magma_siluisaisetup_lower (magma_s_matrix L, magma_s_matrix S, magma_s_matrix *ISAIL, magma_queue_t queue)
| Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.
magma_int_t | magma_siluisaisetup_upper (magma_s_matrix U, magma_s_matrix S, magma_s_matrix *ISAIU, magma_queue_t queue)
| Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.
magma_int_t | magma_sparic_cpu (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
| Generates an IC(0) preconditer via fixed-point iterations.
magma_int_t | magma_sparic_gpu (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
| Generates an IC(0) preconditer via fixed-point iterations.
magma_int_t | magma_sparict (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
| Prepares the iterative threshold Incomplete Cholesky preconditioner.
magma_int_t | magma_sparict_cpu (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
| Generates an incomplete threshold Cholesky preconditioner via the ParILUT algorithm.
magma_int_t | magma_sparilu_cpu (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
| Generates an ILU(0) preconditer via fixed-point iterations.
magma_int_t | magma_sparilu_gpu (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
| Generates an ILU(0) preconditer via fixed-point iterations.
magma_int_t | magma_sparilut (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
| Prepares the iterative threshold Incomplete LU preconditioner.
magma_int_t | magma_sparilut_cpu (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
| Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.
magma_int_t | magma_sparilut_gpu (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
| Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.
magma_int_t | magma_sparilut_gpu_nodp (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
| Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.
magma_int_t | magma_scumilusetup (magma_s_matrix A, magma_s_preconditioner *precond, magma_queue_t queue)
| Prepares the ILU preconditioner via the cuSPARSE.
magma_int_t | magma_scumilusetup_transpose (magma_s_matrix A, magma_s_preconditioner *precond, magma_queue_t queue)
| Prepares the ILU transpose preconditioner via the cuSPARSE.
magma_int_t | magma_scumilugeneratesolverinfo (magma_s_preconditioner *precond, magma_queue_t queue)
| Prepares the ILU triangular solves via cuSPARSE using an ILU factorization matrix stored either in precond->M or on the device as precond->L and precond->U.
magma_int_t | magma_sapplycumilu_l (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue)
| Performs the left triangular solves using the ILU preconditioner.
magma_int_t | magma_sapplycumilu_l_transpose (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue)
| Performs the left triangular solves using the transpose ILU preconditioner.
magma_int_t | magma_sapplycumilu_r (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue)
| Performs the right triangular solves using the ILU preconditioner.
magma_int_t | magma_sapplycumilu_r_transpose (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue)
| Performs the right triangular solves using the transpose ILU preconditioner.
magma_int_t | magma_sapplyiteric_l (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue)
| Performs the left triangular solves using the IC preconditioner via Jacobi.
magma_int_t | magma_sapplyiteric_r (magma_s_matrix b, magma_s_matrix *x, magma_s_preconditioner *precond, magma_queue_t queue)
| Performs the right triangular solves using the IC preconditioner via Jacobi.
magma_int_t | magma_sjaccard_weights (magma_s_matrix A, magma_s_matrix *J, magma_queue_t queue)
| Computes Jaccard weights for a matrix.
magma_int_t | magma_sparilusetup (magma_s_matrix A, magma_s_matrix b, magma_s_preconditioner *precond, magma_queue_t queue)
| Prepares the ILU preconditioner via the iterative ILU iteration.

## Detailed Description

## Function Documentation

## magma_scustomicsetup()

magma_int_t magma_scustomicsetup | ( | magma_s_matrix | A,
|  | magma_s_matrix | b,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Reads in an Incomplete Cholesky preconditioner.

Parameters

  [in] | A | magma_s_matrix input matrix A
  [in] | b | magma_s_matrix input RHS b
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_scustomilusetup()

magma_int_t magma_scustomilusetup | ( | magma_s_matrix | A,
|  | magma_s_matrix | b,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Reads in an Incomplete LU preconditioner.

Parameters

  [in] | A | magma_s_matrix input matrix A
  [in] | b | magma_s_matrix input RHS b
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sisai_l()

magma_int_t magma_sisai_l | ( | magma_s_matrix | b,
|  | magma_s_matrix * | x,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Left-hand-side application of ISAI preconditioner.

Parameters

  [in] | b | magma_s_matrix input RHS b
  [in,out] | x | magma_s_matrix solution x
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sisai_r()

magma_int_t magma_sisai_r | ( | magma_s_matrix | b,
|  | magma_s_matrix * | x,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Right-hand-side application of ISAI preconditioner.

Parameters

  [in] | b | magma_s_matrix input RHS b
  [in,out] | x | magma_s_matrix solution x
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sisai_l_t()

magma_int_t magma_sisai_l_t | ( | magma_s_matrix | b,
|  | magma_s_matrix * | x,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Left-hand-side application of ISAI preconditioner.

Transpose.

Parameters

  [in] | b | magma_s_matrix input RHS b
  [in,out] | x | magma_s_matrix solution x
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sisai_r_t()

magma_int_t magma_sisai_r_t | ( | magma_s_matrix | b,
|  | magma_s_matrix * | x,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Right-hand-side application of ISAI preconditioner.

Transpose.

Parameters

  [in] | b | magma_s_matrix input RHS b
  [in,out] | x | magma_s_matrix solution x
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_siluisaisetup_lower()

magma_int_t magma_siluisaisetup_lower | ( | magma_s_matrix | L,
|  | magma_s_matrix | S,
|  | magma_s_matrix * | ISAIL,
|  | magma_queue_t | queue )

Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.

This routine only handles the lower triangular part. The return value is 0 in case of success, and Magma_CUSOLVE if the pattern is too large to be handled.

Parameters

  [in] | L | magma_s_matrix lower triangular factor
  [in] | S | magma_s_matrix pattern for the ISAI preconditioner for L
  [out] | ISAIL | magma_s_matrix* ISAI preconditioner for L
  [in] | queue | magma_queue_t Queue to execute in.

## magma_siluisaisetup_upper()

magma_int_t magma_siluisaisetup_upper | ( | magma_s_matrix | U,
|  | magma_s_matrix | S,
|  | magma_s_matrix * | ISAIU,
|  | magma_queue_t | queue )

Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.

This routine only handles the upper triangular part. The return value is 0 in case of success, and Magma_CUSOLVE if the pattern is too large to be handled.

Parameters

  [in] | U | magma_s_matrix lower triangular factor
  [in] | S | magma_s_matrix pattern for the ISAI preconditioner for U
  [out] | ISAIU | magma_s_matrix* ISAI preconditioner for U
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sparic_cpu()

magma_int_t magma_sparic_cpu | ( | magma_s_matrix | A,
|  | magma_s_matrix | b,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Generates an IC(0) preconditer via fixed-point iterations.

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the CPU implementation of the ParIC

Parameters

  [in] | A | magma_s_matrix input matrix A
  [in] | b | magma_s_matrix input RHS b
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sparic_gpu()

magma_int_t magma_sparic_gpu | ( | magma_s_matrix | A,
|  | magma_s_matrix | b,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Generates an IC(0) preconditer via fixed-point iterations.

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the GPU implementation of the ParIC

Parameters

  [in] | A | magma_s_matrix input matrix A
  [in] | b | magma_s_matrix input RHS b
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sparict()

magma_int_t magma_sparict | ( | magma_s_matrix | A,
|  | magma_s_matrix | b,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Prepares the iterative threshold Incomplete Cholesky preconditioner.

The strategy is interleaving a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this new algorithm has fine-grained parallelism, and we show that it can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2016.

This function requires OpenMP, and is only available if OpenMP is activated.

Parameters

  [in] | A | magma_s_matrix input matrix A
  [in] | b | magma_s_matrix input RHS b
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sparict_cpu()

magma_int_t magma_sparict_cpu | ( | magma_s_matrix | A,
|  | magma_s_matrix | b,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Generates an incomplete threshold Cholesky preconditioner via the ParILUT algorithm.

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern. It is the variant for SPD systems.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

Parameters

  [in] | A | magma_s_matrix input matrix A
  [in] | b | magma_s_matrix input RHS b
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sparilu_cpu()

magma_int_t magma_sparilu_cpu | ( | magma_s_matrix | A,
|  | magma_s_matrix | b,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Generates an ILU(0) preconditer via fixed-point iterations.

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the CPU implementation of the ParILU

Parameters

  [in] | A | magma_s_matrix input matrix A
  [in] | b | magma_s_matrix input RHS b
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sparilu_gpu()

magma_int_t magma_sparilu_gpu | ( | magma_s_matrix | A,
|  | magma_s_matrix | b,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Generates an ILU(0) preconditer via fixed-point iterations.

For reference, see: E. Chow and A. Patel: "Fine-grained Parallel Incomplete LU Factorization", SIAM Journal on Scientific Computing, 37, C169-C193 (2015).

This is the GPU implementation of the ParILU

Parameters

  [in] | A | magma_s_matrix input matrix A
  [in] | b | magma_s_matrix input RHS b
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sparilut()

magma_int_t magma_sparilut | ( | magma_s_matrix | A,
|  | magma_s_matrix | b,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Prepares the iterative threshold Incomplete LU preconditioner.

The strategy is interleaving a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this new algorithm has fine-grained parallelism, and we show that it can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz constant) precond.rtol : how many candidates are added to the sparsity pattern 1.0 one per row < 1.0 a fraction of those > 1.0 all candidates

Parameters

  [in] | A | magma_s_matrix input matrix A
  [in] | b | magma_s_matrix input RHS b
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sparilut_cpu()

magma_int_t magma_sparilut_cpu | ( | magma_s_matrix | A,
|  | magma_s_matrix | b,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

Parameters

  [in] | A | magma_s_matrix input matrix A
  [in] | b | magma_s_matrix input RHS b
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sparilut_gpu()

magma_int_t magma_sparilut_gpu | ( | magma_s_matrix | A,
|  | magma_s_matrix | b,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

Parameters

  [in] | A | magma_s_matrix input matrix A
  [in] | b | magma_s_matrix input RHS b
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sparilut_gpu_nodp()

magma_int_t magma_sparilut_gpu_nodp | ( | magma_s_matrix | A,
|  | magma_s_matrix | b,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Generates an incomplete threshold LU preconditioner via the ParILUT algorithm.

The strategy is to interleave a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this algorithm has fine-grained parallelism, and can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This version uses the default setting which adds all candidates to the sparsity pattern.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz count constant)

This routine is the same as magma_sparilut_gpu(), except that it uses no dynamic paralellism

Parameters

  [in] | A | magma_s_matrix input matrix A
  [in] | b | magma_s_matrix input RHS b
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_scumilusetup()

magma_int_t magma_scumilusetup | ( | magma_s_matrix | A,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Prepares the ILU preconditioner via the cuSPARSE.

Parameters

  [in] | A | magma_s_matrix input matrix A
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_scumilusetup_transpose()

magma_int_t magma_scumilusetup_transpose | ( | magma_s_matrix | A,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Prepares the ILU transpose preconditioner via the cuSPARSE.

Parameters

  [in] | A | magma_s_matrix input matrix A
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_scumilugeneratesolverinfo()

magma_int_t magma_scumilugeneratesolverinfo | ( | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Prepares the ILU triangular solves via cuSPARSE using an ILU factorization matrix stored either in precond->M or on the device as precond->L and precond->U.

Parameters

  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sapplycumilu_l()

magma_int_t magma_sapplycumilu_l | ( | magma_s_matrix | b,
|  | magma_s_matrix * | x,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Performs the left triangular solves using the ILU preconditioner.

Parameters

  [in] | b | magma_s_matrix RHS
  [in,out] | x | magma_s_matrix* vector to precondition
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sapplycumilu_l_transpose()

magma_int_t magma_sapplycumilu_l_transpose | ( | magma_s_matrix | b,
|  | magma_s_matrix * | x,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Performs the left triangular solves using the transpose ILU preconditioner.

Parameters

  [in] | b | magma_s_matrix RHS
  [in,out] | x | magma_s_matrix* vector to precondition
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sapplycumilu_r()

magma_int_t magma_sapplycumilu_r | ( | magma_s_matrix | b,
|  | magma_s_matrix * | x,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Performs the right triangular solves using the ILU preconditioner.

Parameters

  [in] | b | magma_s_matrix RHS
  [in,out] | x | magma_s_matrix* vector to precondition
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sapplycumilu_r_transpose()

magma_int_t magma_sapplycumilu_r_transpose | ( | magma_s_matrix | b,
|  | magma_s_matrix * | x,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Performs the right triangular solves using the transpose ILU preconditioner.

Parameters

  [in] | b | magma_s_matrix RHS
  [in,out] | x | magma_s_matrix* vector to precondition
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sapplyiteric_l()

magma_int_t magma_sapplyiteric_l | ( | magma_s_matrix | b,
|  | magma_s_matrix * | x,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Performs the left triangular solves using the IC preconditioner via Jacobi.

Parameters

  [in] | b | magma_s_matrix RHS
  [out] | x | magma_s_matrix* vector to precondition
  [in] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sapplyiteric_r()

magma_int_t magma_sapplyiteric_r | ( | magma_s_matrix | b,
|  | magma_s_matrix * | x,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Performs the right triangular solves using the IC preconditioner via Jacobi.

Parameters

  [in] | b | magma_s_matrix RHS
  [out] | x | magma_s_matrix* vector to precondition
  [in] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sjaccard_weights()

magma_int_t magma_sjaccard_weights | ( | magma_s_matrix | A,
|  | magma_s_matrix * | J,
|  | magma_queue_t | queue )

Computes Jaccard weights for a matrix.

Parameters

  [in] | A | magma_s_matrix input matrix
  [out] | J | magma_s_matrix* Jaccard weights
  [in] | queue | magma_queue_t Queue to execute in.

## magma_sparilusetup()

magma_int_t magma_sparilusetup | ( | magma_s_matrix | A,
|  | magma_s_matrix | b,
|  | magma_s_preconditioner * | precond,
|  | magma_queue_t | queue )

Prepares the ILU preconditioner via the iterative ILU iteration.

Parameters

  [in] | A | magma_s_matrix input matrix A
  [in] | b | magma_s_matrix input RHS b
  [in,out] | precond | magma_s_preconditioner* preconditioner parameters
  [in] | queue | magma_queue_t Queue to execute in.