proxsuite 0.6.7
The Advanced Proximal Optimization Toolbox
Loading...
Searching...
No Matches
solve.hpp
Go to the documentation of this file.
1
2//
3// Copyright (c) 2022 INRIA
4//
5#ifndef PROXSUITE_LINALG_DENSE_LDLT_SOLVE_HPP
6#define PROXSUITE_LINALG_DENSE_LDLT_SOLVE_HPP
7
9#include <Eigen/Core>
10
11namespace proxsuite {
12namespace linalg {
13namespace dense {
14namespace _detail {
15template<typename Mat, typename Rhs>
16void
17solve_impl(Mat ld, Rhs rhs)
18{
19 auto l = ld.template triangularView<Eigen::UnitLower>();
20 auto lt = util::trans(ld).template triangularView<Eigen::UnitUpper>();
21 auto d = util::diagonal(ld);
22
23 l.solveInPlace(rhs);
24 rhs = rhs.cwiseQuotient(d);
25 lt.solveInPlace(rhs);
26}
27} // namespace _detail
28template<typename Mat, typename Rhs>
29void
30solve(Mat const& mat, Rhs&& rhs)
31{
33}
34} // namespace dense
35} // namespace linalg
36} // namespace proxsuite
37
38#endif /* end of include guard PROXSUITE_LINALG_DENSE_LDLT_SOLVE_HPP */
void solve_impl(Mat ld, Rhs rhs)
Definition solve.hpp:17
auto trans(Mat &&mat) noexcept -> Eigen::Map< _detail::const_if< _detail::ptr_is_const< decltype(mat.data())>::value, Eigen::Matrix< typename proxsuite::linalg::veg::uncvref_t< Mat >::Scalar, proxsuite::linalg::veg::uncvref_t< Mat >::ColsAtCompileTime, proxsuite::linalg::veg::uncvref_t< Mat >::RowsAtCompileTime, bool(proxsuite::linalg::veg::uncvref_t< Mat >::IsRowMajor) ? Eigen::ColMajor :Eigen::RowMajor > >, Eigen::Unaligned, _detail::StrideOf< proxsuite::linalg::veg::uncvref_t< Mat > > >
Definition core.hpp:597
auto to_view_dyn_rows(Mat &&mat) noexcept -> Eigen::Map< _detail::const_if< _detail::ptr_is_const< decltype(mat.data())>::value, _detail::OwnedRows< proxsuite::linalg::veg::uncvref_t< Mat > > >, Eigen::Unaligned, _detail::StrideOf< proxsuite::linalg::veg::uncvref_t< Mat > > >
Definition core.hpp:690
auto diagonal(Mat &&mat) noexcept -> Eigen::Map< _detail::const_if< _detail::ptr_is_const< decltype(mat.data())>::value, Eigen::Matrix< typename proxsuite::linalg::veg::uncvref_t< Mat >::Scalar, Eigen::Dynamic, 1, Eigen::ColMajor > >, Eigen::Unaligned, Eigen::InnerStride< Eigen::Dynamic > >
Definition core.hpp:624
auto to_view(Mat &&mat) noexcept -> Eigen::Map< _detail::const_if< _detail::ptr_is_const< decltype(mat.data())>::value, _detail::OwnedAll< proxsuite::linalg::veg::uncvref_t< Mat > > >, Eigen::Unaligned, _detail::StrideOf< proxsuite::linalg::veg::uncvref_t< Mat > > >
Definition core.hpp:670
void solve(Mat const &mat, Rhs &&rhs)
Definition solve.hpp:30