Namespaces | |
namespace | detail |
Classes | |
class | bad_type_erased_type |
struct | BasicVTable |
Struct that stores the size of a polymorphic object, as well as pointers to functions to copy, move or destroy the object. More... | |
struct | class_from_member_ptr_impl |
struct | class_from_member_ptr_impl< Ret(C::*)(Args...) const > |
struct | class_from_member_ptr_impl< Ret(C::*)(Args...)> |
struct | copyable_unique_ptr |
struct | enumerate_t |
struct | first_type_or_void |
struct | first_type_or_void< First, Pack... > |
struct | first_type_or_void<> |
struct | iter_range_adapter |
struct | last_type |
struct | last_type< Only > |
struct | noop_delete |
Deleter for std::unique_ptr that just destructs the object, without deallocating. More... | |
struct | set_intersection_iterable |
struct | te_in_place_t |
Similar to std::in_place_t . More... | |
struct | Timed |
class | TypeErased |
Class for polymorphism through type erasure. More... | |
struct | VTableTypeTag |
Concepts | |
concept | no_leading_allocator |
Typedefs | |
template<class M > | |
using | class_from_member_ptr_impl_t = typename class_from_member_ptr_impl< M >::type |
template<auto M> | |
using | class_from_member_ptr_t = class_from_member_ptr_impl_t< decltype(M)> |
template<class... Pack> | |
using | last_type_t = typename last_type< Pack... >::type |
template<class... Pack> | |
using | first_type_or_void_t = typename first_type_or_void< Pack... >::type |
Functions | |
template<Config Conf> | |
void | check_dim_msg (crvec< Conf > v, auto sz, std::string msg) |
template<Config Conf> | |
void | check_dim_msg (std::optional< vec< Conf > > &v, auto sz, std::string msg) |
template<Config Conf, class V > | |
void | check_dim (std::string name, V &&v, auto sz) |
template<Config Conf> | |
void | check_dim_msg (crmat< Conf > m, auto rows, auto cols, std::string msg) |
template<Config Conf> | |
void | check_dim (std::string name, crmat< Conf > m, auto rows, auto cols) |
template<class Rng > | |
auto | enumerate (Rng &&rng) |
template<std::ranges::viewable_range R1, std::ranges::viewable_range R2, class Comp = std::ranges::less, class Proj1 = std::identity, class Proj2 = std::identity> | |
set_intersection_iterable< std::ranges::views::all_t< R1 >, std::ranges::views::all_t< R2 >, Comp, Proj1, Proj2 > | iter_set_intersection (R1 &&r1, R2 &&r2, Comp comp={}, Proj1 proj1={}, Proj2 proj2={}) |
template<class SpMat , class Mat , class MaskVec > | |
void | sparse_add_masked (const SpMat &R_full, Mat &&R, const MaskVec &mask) |
R += R_full(mask,mask) | |
template<class SpMat , class Mat , class MaskVec > | |
void | sparse_add_masked_rows (const SpMat &S_full, Mat &&S, const MaskVec &mask) |
S += S_full(mask,:) | |
template<class SpMat , class CVec , class Vec , class MaskVec > | |
void | sparse_matvec_add_masked_rows_cols (const SpMat &R, const CVec &v, Vec &&out, const MaskVec &mask_J, const MaskVec &mask_K) |
out += R(mask_J,mask_K) * v(mask_K); | |
template<class SpMat , class CVec , class Vec , class MaskVec > | |
void | sparse_matvec_add_transpose_masked_rows (const SpMat &S, const CVec &v, Vec &&out, const MaskVec &mask) |
out += S(mask,:)ᵀ * v(mask); | |
template<auto Method, class... ExtraArgs> | |
constexpr auto | type_erased_wrapped () |
Returns a function that accepts a void pointer, casts it to the class type of the member function Method , launders it, and then invokes Method with it, passing on the arguments to Method . | |
template<class VTable , class Allocator > | |
constexpr size_t | default_te_buffer_size () |
template<class... Types> | |
constexpr size_t | required_te_buffer_size_for () |
Variables | |
template<class T > | |
constexpr te_in_place_t< T > | te_in_place |
Convenience instance of te_in_place_t. | |
struct alpaqa::util::class_from_member_ptr_impl |
struct alpaqa::util::class_from_member_ptr_impl< Ret(C::*)(Args...) const > |
struct alpaqa::util::class_from_member_ptr_impl< Ret(C::*)(Args...)> |
struct alpaqa::util::first_type_or_void |
struct alpaqa::util::first_type_or_void< First, Pack... > |
struct alpaqa::util::first_type_or_void<> |
struct alpaqa::util::last_type |
struct alpaqa::util::last_type< Only > |
struct alpaqa::util::te_in_place_t |
struct alpaqa::util::VTableTypeTag |
using class_from_member_ptr_impl_t = typename class_from_member_ptr_impl<M>::type |
Definition at line 23 of file type-traits.hpp.
using class_from_member_ptr_t = class_from_member_ptr_impl_t<decltype(M)> |
Definition at line 27 of file type-traits.hpp.
using last_type_t = typename last_type<Pack...>::type |
Definition at line 38 of file type-traits.hpp.
using first_type_or_void_t = typename first_type_or_void<Pack...>::type |
Definition at line 51 of file type-traits.hpp.
void check_dim_msg | ( | crvec< Conf > | v, |
auto | sz, | ||
std::string | msg | ||
) |
Definition at line 11 of file check-dim.hpp.
void check_dim_msg | ( | std::optional< vec< Conf > > & | v, |
auto | sz, | ||
std::string | msg | ||
) |
Definition at line 23 of file check-dim.hpp.
void check_dim | ( | std::string | name, |
V && | v, | ||
auto | sz | ||
) |
Definition at line 37 of file check-dim.hpp.
void check_dim_msg | ( | crmat< Conf > | m, |
auto | rows, | ||
auto | cols, | ||
std::string | msg | ||
) |
Definition at line 43 of file check-dim.hpp.
void check_dim | ( | std::string | name, |
crmat< Conf > | m, | ||
auto | rows, | ||
auto | cols | ||
) |
Definition at line 59 of file check-dim.hpp.
auto enumerate | ( | Rng && | rng | ) |
set_intersection_iterable< std::ranges::views::all_t< R1 >, std::ranges::views::all_t< R2 >, Comp, Proj1, Proj2 > iter_set_intersection | ( | R1 && | r1, |
R2 && | r2, | ||
Comp | comp = {} , |
||
Proj1 | proj1 = {} , |
||
Proj2 | proj2 = {} |
||
) |
void sparse_add_masked | ( | const SpMat & | R_full, |
Mat && | R, | ||
const MaskVec & | mask | ||
) |
R += R_full(mask,mask)
Definition at line 77 of file sparse-ops.hpp.
void sparse_add_masked_rows | ( | const SpMat & | S_full, |
Mat && | S, | ||
const MaskVec & | mask | ||
) |
S += S_full(mask,:)
Definition at line 87 of file sparse-ops.hpp.
void sparse_matvec_add_masked_rows_cols | ( | const SpMat & | R, |
const CVec & | v, | ||
Vec && | out, | ||
const MaskVec & | mask_J, | ||
const MaskVec & | mask_K | ||
) |
out += R(mask_J,mask_K) * v(mask_K);
Definition at line 98 of file sparse-ops.hpp.
void sparse_matvec_add_transpose_masked_rows | ( | const SpMat & | S, |
const CVec & | v, | ||
Vec && | out, | ||
const MaskVec & | mask | ||
) |
out += S(mask,:)ᵀ * v(mask);
Definition at line 111 of file sparse-ops.hpp.
|
constexpr |
Returns a function that accepts a void pointer, casts it to the class type of the member function Method
, launders it, and then invokes Method
with it, passing on the arguments to Method
.
The function can also accept additional arguments at the end, of type ExtraArgs
.
Definition at line 162 of file type-erasure.hpp.
|
inlineconstexpr |
Definition at line 167 of file type-erasure.hpp.
|
inlineconstexpr |
Definition at line 178 of file type-erasure.hpp.
|
inlineconstexpr |
Convenience instance of te_in_place_t.
Definition at line 188 of file type-erasure.hpp.