ZonoOpt v2.0.1
Loading...
Searching...
No Matches
CholeskyUtilities.hpp
Go to the documentation of this file.
1#ifndef ZONOOPT_CHOLESKY_UTILITIES_HPP_
2#define ZONOOPT_CHOLESKY_UTILITIES_HPP_
3
15#include "Eigen/Sparse"
16#include "Eigen/Dense"
17
18namespace ZonoOpt::detail {
19
20 struct LDLT_data
21 {
22 Eigen::SparseMatrix<zono_float> L;
23 Eigen::DiagonalMatrix<zono_float, -1> Dinv;
24 Eigen::PermutationMatrix<-1, -1, int> P, Pinv;
25 bool factorized = false;
26 };
27
28 void get_LDLT_data(const Eigen::SimplicialLDLT<Eigen::SparseMatrix<zono_float>>& solver, LDLT_data& data);
29
30 Eigen::Vector<zono_float, -1> solve_LDLT(const LDLT_data& data, const Eigen::Vector<zono_float, -1>& b);
31
32 void affine_set_projection(Eigen::Ref<Eigen::Vector<zono_float, -1>> z, const Eigen::SparseMatrix<zono_float>& A,
33 const Eigen::SparseMatrix<zono_float>& AT, const Eigen::Vector<zono_float, -1>& b, const LDLT_data& AAT_ldlt);
34
35} // end namespace detail
36// end namespace ZonoOpt
37
38#endif
#define zono_float
Defines the floating-point type used in ZonoOpt.
Definition ZonoOpt.hpp:45