proxsuite 0.7.2
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 413 of file views.hpp.

◆ CompTimeColsImpl

Initial value:
_detail::_meta::make_signed< usize >::Type isize
Definition typedefs.hpp:43

Definition at line 416 of file views.hpp.

◆ CompTimeRowsImpl

Initial value:

Definition at line 419 of file views.hpp.

◆ CompTimeInnerStrideImpl

Initial value:
isize(T::InnerStrideAtCompileTime)>

Definition at line 422 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 426 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 430 of file views.hpp.

◆ 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 443 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 457 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 467 of file views.hpp.

◆ ColToVec

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

Definition at line 478 of file views.hpp.

◆ RowToVec

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

Definition at line 480 of file views.hpp.

◆ ColToVecMut

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

Definition at line 482 of file views.hpp.

◆ RowToVecMut

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

Definition at line 484 of file views.hpp.

◆ VecMap

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

Definition at line 487 of file views.hpp.

◆ VecMapMut

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

Definition at line 489 of file views.hpp.

Function Documentation

◆ min_list_impl()

template<typename T>
auto proxsuite::proxqp::detail::min_list_impl(Tinit,
T const *arr,
usizen ) -> T
constexprnoexcept

Definition at line 121 of file views.hpp.

◆ cx_min_list()

template<typename T, usize N>
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,
usizen )

Definition at line 184 of file views.hpp.

◆ round_up()

auto proxsuite::proxqp::detail::round_up(isizen,
isizek ) -> isize
constexprnoexcept

Definition at line 190 of file views.hpp.

◆ uround_up()

auto proxsuite::proxqp::detail::uround_up(usizen,
usizek ) -> usize
constexprnoexcept

Definition at line 195 of file views.hpp.

◆ bytes_to_prev_aligned()

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

Definition at line 201 of file views.hpp.

◆ bytes_to_next_aligned()

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

Definition at line 211 of file views.hpp.

◆ next_aligned()

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

Definition at line 222 of file views.hpp.

◆ prev_aligned()

auto proxsuite::proxqp::detail::prev_aligned(void *ptr,
usizealign ) -> 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,
Tfactor )

Definition at line 1103 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,
Tfactor )

Definition at line 1170 of file views.hpp.

◆ dot()

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

Definition at line 1196 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 1226 of file views.hpp.

◆ assign_scalar_prod()

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

Definition at line 1234 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 1241 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 1259 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 1273 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 1287 of file views.hpp.