Template Function proxsuite::linalg::sparse::factorize_numeric

Function Documentation

template<typename T, typename I>
void proxsuite::linalg::sparse::factorize_numeric(T *values, I *row_indices, proxsuite::linalg::veg::DoNotDeduce<T const*> diag_to_add, proxsuite::linalg::veg::DoNotDeduce<I const*> perm, I const *col_ptrs, I const *etree, I const *perm_inv, MatRef<T, I> a, DynStackMut stack) noexcept(false)

Performs numerical LDLT factorization, assuming the symbolic factorization and column counts have already been computed. L and D are stored in the same matrix, with the elements of D replacing the implicit diagonal 1 element of each column of L.

Parameters:
  • values – pointer to the values of the factorization

  • row_indices – pointer to the row indices of the factorization

  • diag_to_add – pointer to a vector that is added to the diagonal of the matrix during factorization, if diag_to_add and perm are both non null

  • perm – pointer to the pre-computed permutation that is applied to diag.

  • col_ptrs – pointer to the already computed column pointers

  • etree – pointer to the already computed elimination tree

  • perm_inv – pointer to the already computed inverse permutation. Must be the inverse of perm

  • a – matrix to be factorized

  • stack – temporary allocation stack