proxsuite 0.7.2
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:
#define VEG_CONCEPT(...)
Definition macros.hpp:1241
typename _detail::_meta::is_pointer< T >::type unptr_t
Definition core.hpp:270
constant< bool, B > bool_constant
Definition macros.hpp:900

Definition at line 305 of file core.hpp.

◆ should_vectorize

◆ 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

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

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

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

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>
auto proxsuite::linalg::dense::_detail::round_up(Ta,
Tb ) -> T
constexprnoexcept

Definition at line 310 of file core.hpp.

◆ adjusted_stride()

template<typename T>
auto proxsuite::linalg::dense::_detail::adjusted_stride(isizen)-> 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,
usizen )

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(Dstdst,
Lhslhs,
Rhsrhs,
Tfactor )

Definition at line 783 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,
isizen,
T const *diagonal_data,
isizestride )

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(Matmat,
proxsuite::linalg::veg::dynstack::DynStackMutstack )

Definition at line 91 of file factorize.hpp.

◆ factorize_blocked_impl()

template<typename Mat>
void proxsuite::linalg::dense::_detail::factorize_blocked_impl(Matmat,
isizeblock_size,
proxsuite::linalg::veg::dynstack::DynStackMutstack )

Definition at line 152 of file factorize.hpp.

◆ factorize_recursive_impl()

template<typename Mat>
void proxsuite::linalg::dense::_detail::factorize_recursive_impl(Matmat,
proxsuite::linalg::veg::dynstack::DynStackMutstack )

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(Matmat,
isize const *indices,
isizer )

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,
isizer )

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(Matld,
isize *indices,
isizer,
proxsuite::linalg::veg::dynstack::DynStackMutstack )

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(Matld,
isizepos,
A_1a_1,
proxsuite::linalg::veg::dynstack::DynStackMutstack )

Definition at line 131 of file modify.hpp.

◆ solve_impl()

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

Definition at line 17 of file solve.hpp.

◆ bytes_to_prev_aligned()

auto proxsuite::linalg::dense::_detail::bytes_to_prev_aligned(void *ptr,
usizealign ) -> 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,
usizealign ) -> 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... >,
Fnfn )

Definition at line 37 of file update.hpp.

◆ unroll()

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

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,
isizew_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(isizen,
T *inout_l,
T *pw,
isizew_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(LDld,
T *pw,
isizew_stride,
T *palpha,
Fnr_fn )

Definition at line 221 of file update.hpp.