proxsuite 0.6.7
The Advanced Proximal Optimization Toolbox
Loading...
Searching...
No Matches
proxsuite::linalg::dense::_detail Namespace Reference

Namespaces

namespace  _simd
 
namespace  nb
 

Classes

struct  ConstantR
 
struct  ElemAddrImpl
 
struct  ElemAddrImpl< false >
 
struct  ElemAddrImpl< true >
 
struct  IndicesR
 
struct  NoCopy
 
struct  RankRUpdateLoopImpl
 
struct  RankRUpdateLoopImpl< false >
 
struct  RankRUpdateLoopImpl< true >
 
struct  RankUpdateLoadPMu
 
struct  RankUpdateLoadW
 
struct  RankUpdateStoreW
 
struct  RankUpdateUpdateWAndL
 
struct  RowColAccessImpl
 
struct  RowColAccessImpl< false >
 
struct  RowColAccessImpl< true >
 
struct  SimdAlignedSystemAlloc
 

Typedefs

template<bool COND, typename T >
using const_if = proxsuite::linalg::veg::meta::if_t<COND, T const, T>
 
template<typename T >
using ptr_is_const
 
template<typename T >
using should_vectorize = proxsuite::linalg::veg::meta::bool_constant<false>
 
template<typename T >
using OwnedMatrix
 
template<typename T >
using OwnedAll
 
template<typename T >
using OwnedRows
 
template<typename T >
using OwnedCols
 
template<typename T >
using OwnedColVector
 
template<typename T >
using OwnedRowVector
 
template<typename T >
using StrideOf
 
using factorize_recursive_threshold
 

Functions

template<typename T >
constexpr auto round_up (T a, T b) noexcept -> T
 
template<typename T >
auto adjusted_stride (isize n) noexcept -> isize
 
template<typename T >
auto align () noexcept -> isize
 
 VEG_NIEBLOID (min2)
 
 VEG_NIEBLOID (max2)
 
template<typename T >
void set_zero (T *dest, usize n)
 
template<typename Dst , typename Lhs , typename Rhs , typename T >
void noalias_mul_add_impl (Dst dst, Lhs lhs, Rhs rhs, T factor)
 
template<typename T >
VEG_NO_INLINE void compute_permutation_impl (isize *perm_indices, isize *perm_inv_indices, isize n, T const *diagonal_data, isize stride)
 
template<typename Diag >
VEG_NO_INLINE void compute_permutation (isize *perm_indices, isize *perm_inv_indices, Diag const &diagonal)
 
template<typename Mat , typename Work >
void apply_permutation_tri_lower (Mat &&mat, Work &&work, isize const *perm_indices)
 
template<typename Mat >
void factorize_unblocked_impl (Mat mat, proxsuite::linalg::veg::dynstack::DynStackMut stack)
 
template<typename Mat >
void factorize_blocked_impl (Mat mat, isize block_size, proxsuite::linalg::veg::dynstack::DynStackMut stack)
 
template<typename Mat >
void factorize_recursive_impl (Mat mat, proxsuite::linalg::veg::dynstack::DynStackMut stack)
 
template<typename Mat >
void delete_rows_and_cols_triangular_impl (Mat mat, isize const *indices, isize r)
 
template<typename Mat >
void delete_rows_and_cols_triangular (Mat &&mat, isize const *indices, isize r)
 
template<typename Mat >
void ldlt_delete_rows_and_cols_impl (Mat ld, isize *indices, isize r, proxsuite::linalg::veg::dynstack::DynStackMut stack)
 
template<typename Mat , typename A_1 >
void ldlt_insert_rows_and_cols_impl (Mat ld, isize pos, A_1 a_1, proxsuite::linalg::veg::dynstack::DynStackMut stack)
 
template<typename Mat , typename Rhs >
void solve_impl (Mat ld, Rhs rhs)
 
auto bytes_to_prev_aligned (void *ptr, usize align) noexcept -> isize
 
auto bytes_to_next_aligned (void *ptr, usize align) noexcept -> isize
 
template<usize... Is, typename Fn >
VEG_INLINE void unroll_impl (proxsuite::linalg::veg::meta::index_sequence< Is... >, Fn fn)
 
template<usize N, typename Fn >
VEG_INLINE void unroll (Fn fn)
 
template<usize R, typename T , usize N>
VEG_INLINE void rank_r_update_inner_loop_iter (_simd::Pack< T, N > const *p_p, _simd::Pack< T, N > const *p_mu, T *inout_l, T *pw, isize w_stride)
 
template<usize R, typename T >
VEG_INLINE void rank_r_update_inner_loop (isize n, T *inout_l, T *pw, isize w_stride, T const *p, T const *mu)
 
template<typename LD , typename T , typename Fn >
void rank_r_update_clobber_w_impl (LD ld, T *pw, isize w_stride, T *palpha, Fn r_fn)
 

Typedef Documentation

◆ const_if

template<bool COND, typename T >
using proxsuite::linalg::dense::_detail::const_if = proxsuite::linalg::veg::meta::if_t<COND, T const, T>

Definition at line 302 of file core.hpp.

◆ ptr_is_const

Initial value:

Definition at line 305 of file core.hpp.

◆ should_vectorize

Definition at line 322 of file core.hpp.

◆ OwnedMatrix

Initial value:
Eigen::Matrix<typename T::Scalar,
Eigen::Dynamic,
Eigen::Dynamic,
bool(T::IsRowMajor) ? Eigen::RowMajor : Eigen::ColMajor>

Definition at line 387 of file core.hpp.

◆ OwnedAll

template<typename T >
using proxsuite::linalg::dense::_detail::OwnedAll
Initial value:
Eigen::Matrix<typename T::Scalar,
T::RowsAtCompileTime,
T::ColsAtCompileTime,
bool(T::IsRowMajor) ? Eigen::RowMajor : Eigen::ColMajor>

Definition at line 394 of file core.hpp.

◆ OwnedRows

template<typename T >
using proxsuite::linalg::dense::_detail::OwnedRows
Initial value:
Eigen::Matrix<typename T::Scalar,
Eigen::Dynamic,
T::ColsAtCompileTime,
bool(T::IsRowMajor) ? Eigen::RowMajor : Eigen::ColMajor>

Definition at line 401 of file core.hpp.

◆ OwnedCols

template<typename T >
using proxsuite::linalg::dense::_detail::OwnedCols
Initial value:
Eigen::Matrix<typename T::Scalar,
T::RowsAtCompileTime,
Eigen::Dynamic,
bool(T::IsRowMajor) ? Eigen::RowMajor : Eigen::ColMajor>

Definition at line 408 of file core.hpp.

◆ OwnedColVector

Initial value:
Eigen::Matrix<
typename T::Scalar,
Eigen::Dynamic,
1,
Eigen::ColMajor>

Definition at line 415 of file core.hpp.

◆ OwnedRowVector

Initial value:
Eigen::Matrix<
typename T::Scalar,
1,
Eigen::Dynamic,
Eigen::RowMajor>

Definition at line 421 of file core.hpp.

◆ StrideOf

template<typename T >
using proxsuite::linalg::dense::_detail::StrideOf
Initial value:
Eigen::Stride<
T::OuterStrideAtCompileTime,
T::InnerStrideAtCompileTime>

Definition at line 543 of file core.hpp.

◆ factorize_recursive_threshold

Function Documentation

◆ round_up()

template<typename T >
constexpr auto proxsuite::linalg::dense::_detail::round_up ( T a,
T b ) -> T
constexprnoexcept

Definition at line 310 of file core.hpp.

◆ adjusted_stride()

template<typename T >
auto proxsuite::linalg::dense::_detail::adjusted_stride ( isize n) -> isize
noexcept

Definition at line 327 of file core.hpp.

◆ align()

template<typename T >
auto proxsuite::linalg::dense::_detail::align ( ) -> isize
noexcept

Definition at line 340 of file core.hpp.

◆ VEG_NIEBLOID() [1/2]

proxsuite::linalg::dense::_detail::VEG_NIEBLOID ( min2 )

◆ VEG_NIEBLOID() [2/2]

proxsuite::linalg::dense::_detail::VEG_NIEBLOID ( max2 )

◆ set_zero()

template<typename T >
void proxsuite::linalg::dense::_detail::set_zero ( T * dest,
usize n )

Definition at line 379 of file core.hpp.

◆ noalias_mul_add_impl()

template<typename Dst , typename Lhs , typename Rhs , typename T >
void proxsuite::linalg::dense::_detail::noalias_mul_add_impl ( Dst dst,
Lhs lhs,
Rhs rhs,
T factor )

Definition at line 794 of file core.hpp.

◆ compute_permutation_impl()

template<typename T >
VEG_NO_INLINE void proxsuite::linalg::dense::_detail::compute_permutation_impl ( isize * perm_indices,
isize * perm_inv_indices,
isize n,
T const * diagonal_data,
isize stride )

Definition at line 19 of file factorize.hpp.

◆ compute_permutation()

template<typename Diag >
VEG_NO_INLINE void proxsuite::linalg::dense::_detail::compute_permutation ( isize * perm_indices,
isize * perm_inv_indices,
Diag const & diagonal )

Definition at line 50 of file factorize.hpp.

◆ apply_permutation_tri_lower()

template<typename Mat , typename Work >
void proxsuite::linalg::dense::_detail::apply_permutation_tri_lower ( Mat && mat,
Work && work,
isize const * perm_indices )

Definition at line 64 of file factorize.hpp.

◆ factorize_unblocked_impl()

template<typename Mat >
void proxsuite::linalg::dense::_detail::factorize_unblocked_impl ( Mat mat,
proxsuite::linalg::veg::dynstack::DynStackMut stack )

Definition at line 91 of file factorize.hpp.

◆ factorize_blocked_impl()

template<typename Mat >
void proxsuite::linalg::dense::_detail::factorize_blocked_impl ( Mat mat,
isize block_size,
proxsuite::linalg::veg::dynstack::DynStackMut stack )

Definition at line 152 of file factorize.hpp.

◆ factorize_recursive_impl()

template<typename Mat >
void proxsuite::linalg::dense::_detail::factorize_recursive_impl ( Mat mat,
proxsuite::linalg::veg::dynstack::DynStackMut stack )

Definition at line 217 of file factorize.hpp.

◆ delete_rows_and_cols_triangular_impl()

template<typename Mat >
void proxsuite::linalg::dense::_detail::delete_rows_and_cols_triangular_impl ( Mat mat,
isize const * indices,
isize r )

Definition at line 21 of file modify.hpp.

◆ delete_rows_and_cols_triangular()

template<typename Mat >
void proxsuite::linalg::dense::_detail::delete_rows_and_cols_triangular ( Mat && mat,
isize const * indices,
isize r )

Definition at line 52 of file modify.hpp.

◆ ldlt_delete_rows_and_cols_impl()

template<typename Mat >
void proxsuite::linalg::dense::_detail::ldlt_delete_rows_and_cols_impl ( Mat ld,
isize * indices,
isize r,
proxsuite::linalg::veg::dynstack::DynStackMut stack )

Definition at line 82 of file modify.hpp.

◆ ldlt_insert_rows_and_cols_impl()

template<typename Mat , typename A_1 >
void proxsuite::linalg::dense::_detail::ldlt_insert_rows_and_cols_impl ( Mat ld,
isize pos,
A_1 a_1,
proxsuite::linalg::veg::dynstack::DynStackMut stack )

Definition at line 131 of file modify.hpp.

◆ solve_impl()

template<typename Mat , typename Rhs >
void proxsuite::linalg::dense::_detail::solve_impl ( Mat ld,
Rhs rhs )

Definition at line 17 of file solve.hpp.

◆ bytes_to_prev_aligned()

auto proxsuite::linalg::dense::_detail::bytes_to_prev_aligned ( void * ptr,
usize align ) -> isize
inlinenoexcept

Definition at line 15 of file update.hpp.

◆ bytes_to_next_aligned()

auto proxsuite::linalg::dense::_detail::bytes_to_next_aligned ( void * ptr,
usize align ) -> isize
inlinenoexcept

Definition at line 25 of file update.hpp.

◆ unroll_impl()

template<usize... Is, typename Fn >
VEG_INLINE void proxsuite::linalg::dense::_detail::unroll_impl ( proxsuite::linalg::veg::meta::index_sequence< Is... > ,
Fn fn )

Definition at line 37 of file update.hpp.

◆ unroll()

template<usize N, typename Fn >
VEG_INLINE void proxsuite::linalg::dense::_detail::unroll ( Fn fn)

Definition at line 45 of file update.hpp.

◆ rank_r_update_inner_loop_iter()

template<usize R, typename T , usize N>
VEG_INLINE void proxsuite::linalg::dense::_detail::rank_r_update_inner_loop_iter ( _simd::Pack< T, N > const * p_p,
_simd::Pack< T, N > const * p_mu,
T * inout_l,
T * pw,
isize w_stride )

Definition at line 94 of file update.hpp.

◆ rank_r_update_inner_loop()

template<usize R, typename T >
VEG_INLINE void proxsuite::linalg::dense::_detail::rank_r_update_inner_loop ( isize n,
T * inout_l,
T * pw,
isize w_stride,
T const * p,
T const * mu )

Definition at line 208 of file update.hpp.

◆ rank_r_update_clobber_w_impl()

template<typename LD , typename T , typename Fn >
void proxsuite::linalg::dense::_detail::rank_r_update_clobber_w_impl ( LD ld,
T * pw,
isize w_stride,
T * palpha,
Fn r_fn )

Definition at line 221 of file update.hpp.