26 using DView = Eigen::Map<
const VectorXs, Eigen::Unaligned,
27 Eigen::InnerStride<Eigen::Dynamic>>;
29 template <
typename Mat>
static DView diag_view_impl(Mat &&mat) {
30 Eigen::InnerStride<Eigen::Dynamic> stride{mat.outerStride() + 1};
31 return {mat.data(), mat.rows(), 1, stride};
34 virtual ldlt_base &compute(
const ConstMatrixRef &mat) = 0;
35 bool solveInPlace(MatrixRef)
const {
36 PROXSUITE_NLP_RUNTIME_ERROR(
"Not implemented");
38 virtual DView vectorD()
const = 0;
39 virtual const MatrixXs &matrixLDLT()
const {
40 PROXSUITE_NLP_RUNTIME_ERROR(
"Not implemented");
42 virtual MatrixXs reconstructedMatrix()
const = 0;
43 Eigen::ComputationInfo info()
const {
return m_info; }
44 SignMatrix sign()
const {
return m_sign; }
48 Eigen::ComputationInfo m_info;
49 SignMatrix m_sign = SignMatrix::ZeroSign;