Function

SparseRefactor(_:_:)

Reuses the object's storage to compute a new factorization of the double-precision matrix.

Declaration

func SparseRefactor(_ Matrix: SparseMatrix_Double, _ Factorization: UnsafeMutablePointer<SparseOpaqueFactorization_Double>)

Parameters

Matrix

The matrix containing numerical data to recompute.

Factorization

On input, the factorization to recompute. On output, the recomputed result.

Discussion

Matrix must have the same non-zero structure as that used for the original factorization.

The same numerical factorization options will be used as in the original construction of Factorization.

This call provides very similar behavior to that which can be achieved by reusing explicit storage supplied to SparseFactor(_:_:_:_:_:) as the argument factorStorage. However, in addition to providing a simplified call sequence, this call can also reuse any additional storage allocated to accommodate delayed pivots.

Note that if the reference count of the underlying object is not exactly one (that is, if there are any implicit copies as a result of calls to transpose or extract factor functions that have not been destroyed through a call to the relevant cleanup function), then new storage will be allocated regardless.

See Also

Matrix Refactorizations

func SparseRefactor(SparseMatrix_Float, UnsafeMutablePointer<SparseOpaqueFactorization_Float>)

Reuses the object's storage to compute a new factorization of the single-precision matrix.

func SparseRefactor(SparseMatrix_Double, UnsafeMutablePointer<SparseOpaqueFactorization_Double>, SparseNumericFactorOptions)

Reuses the object's storage to compute a new factorization of the double-precision matrix, using specified options.

func SparseRefactor(SparseMatrix_Float, UnsafeMutablePointer<SparseOpaqueFactorization_Float>, SparseNumericFactorOptions)

Reuses the object's storage to compute a new factorization of the single-precision matrix, using specified options.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software