proxsuite 0.6.7
The Advanced Proximal Optimization Toolbox
Loading...
Searching...
No Matches
proxsuite::proxqp::detail Namespace Reference

Namespaces

namespace  nb
 

Classes

struct  Defer
 
struct  DetectedImpl
 
struct  DetectedImpl< Void< F< Ts... > >, Fallback, F, Ts... >
 
struct  ElementAccess
 
struct  ElementAccess< Layout::colmajor >
 
struct  ElementAccess< Layout::rowmajor >
 
struct  FnInfo
 
struct  NoCopy
 
struct  Ret_
 
struct  SetZeroImpl
 
struct  SetZeroImpl< T, true >
 
struct  unlref
 
struct  unlref< T & >
 

Typedefs

template<typename... Ts>
using Void = void
 
template<typename Mat , typename T >
using DataExpr = decltype(static_cast<T*>(VEG_DECLVAL(Mat&).data()))
 
template<typename Fallback , template< typename... > class F, typename... Ts>
using Detected = typename DetectedImpl<void, Fallback, F, Ts...>::Type
 
template<typename T >
using CompTimeColsImpl
 
template<typename T >
using CompTimeRowsImpl
 
template<typename T >
using CompTimeInnerStrideImpl
 
template<typename T >
using LayoutImpl
 
template<typename T , Layout L>
using EigenMatMap
 
template<typename T , Layout L>
using EigenMatMapMut
 
template<typename T , typename Stride >
using EigenVecMap
 
template<typename T , typename Stride >
using EigenVecMapMut
 
template<typename T , Layout L>
using ColToVec = EigenVecMap<T, typename ElementAccess<L>::NextRowStride>
 
template<typename T , Layout L>
using RowToVec = EigenVecMap<T, typename ElementAccess<L>::NextColStride>
 
template<typename T , Layout L>
using ColToVecMut = EigenVecMapMut<T, typename ElementAccess<L>::NextRowStride>
 
template<typename T , Layout L>
using RowToVecMut = EigenVecMapMut<T, typename ElementAccess<L>::NextColStride>
 
template<typename T >
using VecMap = EigenVecMap<T, Eigen::Stride<0, 0>>
 
template<typename T >
using VecMapMut = EigenVecMapMut<T, Eigen::Stride<0, 0>>
 

Functions

template<typename T >
constexpr auto min_list_impl (T init, T const *arr, usize n) noexcept -> T
 
template<typename T , usize N>
constexpr auto cx_min_list (T const (&arr)[N]) noexcept -> T
 
 VEG_NIEBLOID (defer)
 
 VEG_NIEBLOID (max2)
 
 VEG_NIEBLOID (min2)
 
 VEG_NIEBLOID (max_list)
 
template<typename T >
void set_zero (T *dest, usize n)
 
constexpr auto round_up (isize n, isize k) noexcept -> isize
 
constexpr auto uround_up (usize n, usize k) noexcept -> usize
 
auto bytes_to_prev_aligned (void *ptr, usize align) noexcept -> isize
 
auto bytes_to_next_aligned (void *ptr, usize align) noexcept -> isize
 
auto next_aligned (void *ptr, usize align) noexcept -> void *
 
auto prev_aligned (void *ptr, usize align) noexcept -> void *
 
template<typename T >
auto is_eigen_matrix_base_impl (Eigen::MatrixBase< T > const volatile *) -> proxsuite::linalg::veg::meta::true_type
 
auto is_eigen_matrix_base_impl (void const volatile *) -> proxsuite::linalg::veg::meta::false_type
 
template<typename T >
auto is_eigen_owning_matrix_base_impl (Eigen::PlainObjectBase< T > const volatile *) -> proxsuite::linalg::veg::meta::true_type
 
auto is_eigen_owning_matrix_base_impl (void const volatile *) -> proxsuite::linalg::veg::meta::false_type
 
template<typename T >
void noalias_mul_add (MatrixViewMut< T, colmajor > dst, MatrixView< T, colmajor > lhs, MatrixView< T, colmajor > rhs, T factor)
 
template<typename T >
void noalias_mul_add_vec (VectorViewMut< T > dst, MatrixView< T, colmajor > lhs, VectorView< T > rhs, T factor)
 
template<typename T >
auto dot (StridedVectorView< T > lhs, VectorView< T > rhs) -> T
 
template<typename T >
void assign_cwise_prod (VectorViewMut< T > out, StridedVectorView< T > lhs, StridedVectorView< T > rhs)
 
template<typename T >
void assign_scalar_prod (VectorViewMut< T > out, T factor, VectorView< T > in)
 
template<typename T >
void trans_tr_unit_up_solve_in_place_on_right (MatrixView< T, colmajor > tr, MatrixViewMut< T, colmajor > rhs)
 
template<typename T >
void apply_diag_inv_on_right (MatrixViewMut< T, colmajor > out, StridedVectorView< T > d, MatrixView< T, colmajor > in)
 
template<typename T >
void apply_diag_on_right (MatrixViewMut< T, colmajor > out, StridedVectorView< T > d, MatrixView< T, colmajor > in)
 
template<typename T >
void noalias_mul_sub_tr_lo (MatrixViewMut< T, colmajor > out, MatrixView< T, colmajor > lhs, MatrixView< T, rowmajor > rhs)
 

Typedef Documentation

◆ Void

template<typename... Ts>
using proxsuite::proxqp::detail::Void = void

Definition at line 391 of file views.hpp.

◆ DataExpr

template<typename Mat , typename T >
using proxsuite::proxqp::detail::DataExpr = decltype(static_cast<T*>(VEG_DECLVAL(Mat&).data()))

Definition at line 394 of file views.hpp.

◆ Detected

template<typename Fallback , template< typename... > class F, typename... Ts>
using proxsuite::proxqp::detail::Detected = typename DetectedImpl<void, Fallback, F, Ts...>::Type

Definition at line 414 of file views.hpp.

◆ CompTimeColsImpl

template<typename T >
using proxsuite::proxqp::detail::CompTimeColsImpl
Initial value:

Definition at line 417 of file views.hpp.

◆ CompTimeRowsImpl

template<typename T >
using proxsuite::proxqp::detail::CompTimeRowsImpl
Initial value:
proxsuite::linalg::veg::meta::constant<isize, isize(T::RowsAtCompileTime)>

Definition at line 420 of file views.hpp.

◆ CompTimeInnerStrideImpl

Initial value:
isize(T::InnerStrideAtCompileTime)>

Definition at line 423 of file views.hpp.

◆ LayoutImpl

template<typename T >
using proxsuite::proxqp::detail::LayoutImpl
Initial value:
proxsuite::linalg::veg::meta::
constant<Layout, (bool(T::IsRowMajor) ? rowmajor : colmajor)>
constexpr Layout colmajor
Definition views.hpp:244
constexpr Layout rowmajor
Definition views.hpp:245

Definition at line 427 of file views.hpp.

◆ EigenMatMap

template<typename T , Layout L>
using proxsuite::proxqp::detail::EigenMatMap
Initial value:
Eigen::Map<
Eigen::Matrix<
T,
Eigen::Dynamic,
Eigen::Dynamic,
(L == colmajor)
? Eigen::ColMajor
: Eigen::RowMajor
> const,
Eigen::Unaligned,
Eigen::OuterStride<Eigen::Dynamic>
>

Definition at line 431 of file views.hpp.

◆ EigenMatMapMut

template<typename T , Layout L>
using proxsuite::proxqp::detail::EigenMatMapMut
Initial value:
Eigen::Map<
Eigen::Matrix<
T,
Eigen::Dynamic,
Eigen::Dynamic,
(L == colmajor)
? Eigen::ColMajor
: Eigen::RowMajor
>,
Eigen::Unaligned,
Eigen::OuterStride<Eigen::Dynamic>
>

Definition at line 444 of file views.hpp.

◆ EigenVecMap

template<typename T , typename Stride >
using proxsuite::proxqp::detail::EigenVecMap
Initial value:
Eigen::Map<
Eigen::Matrix<
T,
Eigen::Dynamic,
1
> const,
Eigen::Unaligned,
Stride
>

Definition at line 458 of file views.hpp.

◆ EigenVecMapMut

template<typename T , typename Stride >
using proxsuite::proxqp::detail::EigenVecMapMut
Initial value:
Eigen::Map<
Eigen::Matrix<
T,
Eigen::Dynamic,
1
>,
Eigen::Unaligned,
Stride
>

Definition at line 468 of file views.hpp.

◆ ColToVec

template<typename T , Layout L>
using proxsuite::proxqp::detail::ColToVec = EigenVecMap<T, typename ElementAccess<L>::NextRowStride>

Definition at line 479 of file views.hpp.

◆ RowToVec

template<typename T , Layout L>
using proxsuite::proxqp::detail::RowToVec = EigenVecMap<T, typename ElementAccess<L>::NextColStride>

Definition at line 481 of file views.hpp.

◆ ColToVecMut

template<typename T , Layout L>
using proxsuite::proxqp::detail::ColToVecMut = EigenVecMapMut<T, typename ElementAccess<L>::NextRowStride>

Definition at line 483 of file views.hpp.

◆ RowToVecMut

template<typename T , Layout L>
using proxsuite::proxqp::detail::RowToVecMut = EigenVecMapMut<T, typename ElementAccess<L>::NextColStride>

Definition at line 485 of file views.hpp.

◆ VecMap

template<typename T >
using proxsuite::proxqp::detail::VecMap = EigenVecMap<T, Eigen::Stride<0, 0>>

Definition at line 488 of file views.hpp.

◆ VecMapMut

template<typename T >
using proxsuite::proxqp::detail::VecMapMut = EigenVecMapMut<T, Eigen::Stride<0, 0>>

Definition at line 490 of file views.hpp.

Function Documentation

◆ min_list_impl()

template<typename T >
constexpr auto proxsuite::proxqp::detail::min_list_impl ( T init,
T const * arr,
usize n ) -> T
constexprnoexcept

Definition at line 121 of file views.hpp.

◆ cx_min_list()

template<typename T , usize N>
constexpr auto proxsuite::proxqp::detail::cx_min_list ( T const (&) arr[N]) -> T
constexprnoexcept

Definition at line 129 of file views.hpp.

◆ VEG_NIEBLOID() [1/4]

proxsuite::proxqp::detail::VEG_NIEBLOID ( defer )

◆ VEG_NIEBLOID() [2/4]

proxsuite::proxqp::detail::VEG_NIEBLOID ( max2 )

◆ VEG_NIEBLOID() [3/4]

proxsuite::proxqp::detail::VEG_NIEBLOID ( min2 )

◆ VEG_NIEBLOID() [4/4]

proxsuite::proxqp::detail::VEG_NIEBLOID ( max_list )

◆ set_zero()

template<typename T >
void proxsuite::proxqp::detail::set_zero ( T * dest,
usize n )

Definition at line 184 of file views.hpp.

◆ round_up()

constexpr auto proxsuite::proxqp::detail::round_up ( isize n,
isize k ) -> isize
constexprnoexcept

Definition at line 190 of file views.hpp.

◆ uround_up()

constexpr auto proxsuite::proxqp::detail::uround_up ( usize n,
usize k ) -> usize
constexprnoexcept

Definition at line 195 of file views.hpp.

◆ bytes_to_prev_aligned()

auto proxsuite::proxqp::detail::bytes_to_prev_aligned ( void * ptr,
usize align ) -> isize
inlinenoexcept

Definition at line 201 of file views.hpp.

◆ bytes_to_next_aligned()

auto proxsuite::proxqp::detail::bytes_to_next_aligned ( void * ptr,
usize align ) -> isize
inlinenoexcept

Definition at line 211 of file views.hpp.

◆ next_aligned()

auto proxsuite::proxqp::detail::next_aligned ( void * ptr,
usize align ) -> void*
inlinenoexcept

Definition at line 222 of file views.hpp.

◆ prev_aligned()

auto proxsuite::proxqp::detail::prev_aligned ( void * ptr,
usize align ) -> void*
inlinenoexcept

Definition at line 229 of file views.hpp.

◆ is_eigen_matrix_base_impl() [1/2]

template<typename T >
auto proxsuite::proxqp::detail::is_eigen_matrix_base_impl ( Eigen::MatrixBase< T > const volatile * ) -> proxsuite::linalg::veg::meta::true_type

◆ is_eigen_matrix_base_impl() [2/2]

auto proxsuite::proxqp::detail::is_eigen_matrix_base_impl ( void const volatile * ) -> proxsuite::linalg::veg::meta::false_type

◆ is_eigen_owning_matrix_base_impl() [1/2]

template<typename T >
auto proxsuite::proxqp::detail::is_eigen_owning_matrix_base_impl ( Eigen::PlainObjectBase< T > const volatile * ) -> proxsuite::linalg::veg::meta::true_type

◆ is_eigen_owning_matrix_base_impl() [2/2]

auto proxsuite::proxqp::detail::is_eigen_owning_matrix_base_impl ( void const volatile * ) -> proxsuite::linalg::veg::meta::false_type

◆ noalias_mul_add()

template<typename T >
void proxsuite::proxqp::detail::noalias_mul_add ( MatrixViewMut< T, colmajor > dst,
MatrixView< T, colmajor > lhs,
MatrixView< T, colmajor > rhs,
T factor )

Definition at line 1108 of file views.hpp.

◆ noalias_mul_add_vec()

template<typename T >
void proxsuite::proxqp::detail::noalias_mul_add_vec ( VectorViewMut< T > dst,
MatrixView< T, colmajor > lhs,
VectorView< T > rhs,
T factor )

Definition at line 1175 of file views.hpp.

◆ dot()

template<typename T >
auto proxsuite::proxqp::detail::dot ( StridedVectorView< T > lhs,
VectorView< T > rhs ) -> T

Definition at line 1201 of file views.hpp.

◆ assign_cwise_prod()

template<typename T >
void proxsuite::proxqp::detail::assign_cwise_prod ( VectorViewMut< T > out,
StridedVectorView< T > lhs,
StridedVectorView< T > rhs )

Definition at line 1231 of file views.hpp.

◆ assign_scalar_prod()

template<typename T >
void proxsuite::proxqp::detail::assign_scalar_prod ( VectorViewMut< T > out,
T factor,
VectorView< T > in )

Definition at line 1239 of file views.hpp.

◆ trans_tr_unit_up_solve_in_place_on_right()

template<typename T >
void proxsuite::proxqp::detail::trans_tr_unit_up_solve_in_place_on_right ( MatrixView< T, colmajor > tr,
MatrixViewMut< T, colmajor > rhs )

Definition at line 1246 of file views.hpp.

◆ apply_diag_inv_on_right()

template<typename T >
void proxsuite::proxqp::detail::apply_diag_inv_on_right ( MatrixViewMut< T, colmajor > out,
StridedVectorView< T > d,
MatrixView< T, colmajor > in )

Definition at line 1264 of file views.hpp.

◆ apply_diag_on_right()

template<typename T >
void proxsuite::proxqp::detail::apply_diag_on_right ( MatrixViewMut< T, colmajor > out,
StridedVectorView< T > d,
MatrixView< T, colmajor > in )

Definition at line 1278 of file views.hpp.

◆ noalias_mul_sub_tr_lo()

template<typename T >
void proxsuite::proxqp::detail::noalias_mul_sub_tr_lo ( MatrixViewMut< T, colmajor > out,
MatrixView< T, colmajor > lhs,
MatrixView< T, rowmajor > rhs )

Definition at line 1292 of file views.hpp.