# Subfactor Multiplication and Solve Functions

Work with subfactors of factors.

## Topics

### Subfactor and Dense Matrix Multiplication

`func SparseMultiply(SparseOpaqueSubfactor_Double, DenseMatrix_Double)`

Performs the multiply operation Y = Subfactor * X` `in place on a dense matrix of double-precision values.

`func SparseMultiply(SparseOpaqueSubfactor_Float, DenseMatrix_Float)`

Performs the multiply operation Y = Subfactor * X in place on a dense matrix of single-precision values.

`func SparseMultiply(SparseOpaqueSubfactor_Double, DenseMatrix_Double, DenseMatrix_Double)`

Performs the multiply operation Y = Subfactor * X on a dense matrix of double-precision values.

`func SparseMultiply(SparseOpaqueSubfactor_Float, DenseMatrix_Float, DenseMatrix_Float)`

Performs the multiply operation Y = Subfactor * X on a dense matrix of single-precision values.

### Subfactor and Dense Matrix Multiplication with User-Defined Workspace

`func SparseMultiply(SparseOpaqueSubfactor_Double, DenseMatrix_Double, UnsafeMutableRawPointer)`

Performs the multiply operation Y = Subfactor * X in place on a dense matrix of double-precision values, without any internal memory allocations.

`func SparseMultiply(SparseOpaqueSubfactor_Float, DenseMatrix_Float, UnsafeMutableRawPointer)`

Performs the multiply operation Y = Subfactor * X in place on a dense matrix of single-precision values, without any internal memory allocations.

`func SparseMultiply(SparseOpaqueSubfactor_Double, DenseMatrix_Double, DenseMatrix_Double, UnsafeMutableRawPointer)`

Performs the multiply operation Y = Subfactor * X on a dense matrix of double-precision values, without any internal memory allocations.

`func SparseMultiply(SparseOpaqueSubfactor_Float, DenseMatrix_Float, DenseMatrix_Float, UnsafeMutableRawPointer)`

Performs the multiply operation Y = Subfactor * X on a dense matrix of single-precision values, without any internal memory allocations.

### Matrix Solve Functions

`func SparseSolve(SparseOpaqueSubfactor_Double, DenseMatrix_Double)`

Solves the equation Subfactor * X = B in place for the matrix of double-precision values X.

`func SparseSolve(SparseOpaqueSubfactor_Float, DenseMatrix_Float)`

Solves the equation Subfactor * X = B in place for the matrix of single-precision values X.

`func SparseSolve(SparseOpaqueSubfactor_Double, DenseMatrix_Double, DenseMatrix_Double)`

Solves the equation Subfactor * X = B for the matrix of double-precision values X.

`func SparseSolve(SparseOpaqueSubfactor_Float, DenseMatrix_Float, DenseMatrix_Float)`

Solves the equation Subfactor * X = B for the matrix of single-precision values X.

### Matrix Solve Functions with User-Defined Workspace

`func SparseSolve(SparseOpaqueSubfactor_Double, DenseMatrix_Double, UnsafeMutableRawPointer)`

Solves the equation Subfactor * X = B in place for the matrix of double-precision values X without any internal memory allocations.

`func SparseSolve(SparseOpaqueSubfactor_Float, DenseMatrix_Float, UnsafeMutableRawPointer)`

Solves the equation Subfactor * X = B in place for the matrix of single-precision values X without any internal memory allocations.

`func SparseSolve(SparseOpaqueSubfactor_Double, DenseMatrix_Double, DenseMatrix_Double, UnsafeMutableRawPointer)`

Solves the equation Subfactor * X = B for the matrix of double-precision values X without any internal memory allocations.

`func SparseSolve(SparseOpaqueSubfactor_Float, DenseMatrix_Float, DenseMatrix_Float, UnsafeMutableRawPointer)`

Solves the equation Subfactor * X = B for the matrix of single-precision values X without any internal memory allocations.

### Subfactor and Dense Vector Multiplication

`func SparseMultiply(SparseOpaqueSubfactor_Double, DenseVector_Double)`

Perform the multiply operation Y = Subfactor * X in place on a vector of double-precision values.

`func SparseMultiply(SparseOpaqueSubfactor_Float, DenseVector_Float)`

Perform the multiply operation Y = Subfactor * X in place on a vector of single-precision values.

`func SparseMultiply(SparseOpaqueSubfactor_Double, DenseVector_Double, DenseVector_Double)`

Perform the multiply operation Y = Subfactor * X on a vector of double-precision values.

`func SparseMultiply(SparseOpaqueSubfactor_Float, DenseVector_Float, DenseVector_Float)`

Perform the multiply operation Y = Subfactor * X on a vector of single-precision values.

### Subfactor and Dense Vector Multiplication with User-Defined Workspace

`func SparseMultiply(SparseOpaqueSubfactor_Double, DenseVector_Double, UnsafeMutableRawPointer)`

Perform the multiply operation Y = Subfactor * X on a vector of double-precision values X, in place and without any internal memory allocations.

`func SparseMultiply(SparseOpaqueSubfactor_Float, DenseVector_Float, UnsafeMutableRawPointer)`

Perform the multiply operation Y = Subfactor * X on a vector of single-precision values X, in place and without any internal memory allocations.

`func SparseMultiply(SparseOpaqueSubfactor_Double, DenseVector_Double, DenseVector_Double, UnsafeMutableRawPointer)`

Perform the multiply operation Y = Subfactor * X on a vector of double-precision values X, without any internal memory allocations.

`func SparseMultiply(SparseOpaqueSubfactor_Float, DenseVector_Float, DenseVector_Float, UnsafeMutableRawPointer)`

Perform the multiply operation Y = Subfactor * X on a vector of double-precision values X, without any internal memory allocations.

### Vector Solve Functions

`func SparseSolve(SparseOpaqueSubfactor_Double, DenseVector_Double)`

Solves the equation Subfactor * X = B in place for the vector of double-precision values X.

`func SparseSolve(SparseOpaqueSubfactor_Float, DenseVector_Float)`

Solves the equation Subfactor * X = B in place for the vector of single-precision values X.

`func SparseSolve(SparseOpaqueSubfactor_Double, DenseVector_Double, DenseVector_Double)`

Solves the equation Subfactor * X = B in place for the vector of double-precision values X.

`func SparseSolve(SparseOpaqueSubfactor_Float, DenseVector_Float, DenseVector_Float)`

Solves the equation Subfactor * X = B in place for the vector of single-precision values X.

### Vector Solve Functions with User-Defined Workspace

`func SparseSolve(SparseOpaqueSubfactor_Double, DenseVector_Double, UnsafeMutableRawPointer)`

Solves the equation Subfactor * X = B for the vector of double-precision values X, in place and without any internal memory allocations.

`func SparseSolve(SparseOpaqueSubfactor_Float, DenseVector_Float, UnsafeMutableRawPointer)`

Solves the equation Subfactor * X = B for the vector of single-precision values X, in place and without any internal memory allocations.

`func SparseSolve(SparseOpaqueSubfactor_Double, DenseVector_Double, DenseVector_Double, UnsafeMutableRawPointer)`

Solves the equation Subfactor * X = B for the vector of double-precision values X, without any internal memory allocations.

`func SparseSolve(SparseOpaqueSubfactor_Float, DenseVector_Float, DenseVector_Float, UnsafeMutableRawPointer)`

Solves the equation Subfactor * X = B for the vector of single-precision values X, without any internal memory allocations.

### Subfactors

`struct SparseOpaqueSubfactor_Double`

A structure representing the factorization of a matrix of double-precision, floating-point values.

`struct SparseOpaqueSubfactor_Float`

A structure representing the factorization of a matrix of single-precision, floating-point values.

`struct SparseSubfactor_t`

Defines the subfactor of a factorization.

Subfactor Extraction

Extract subfactors of factors.