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... | |
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<class Class , 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 > |
Class Members | ||
---|---|---|
typedef add_const_t< C > | type |
struct alpaqa::util::class_from_member_ptr_impl< Ret(C::*)(Args...)> |
Class Members | ||
---|---|---|
typedef C | type |
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 |
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.
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.
Definition at line 37 of file check-dim.hpp.
Definition at line 43 of file check-dim.hpp.
Definition at line 59 of file check-dim.hpp.
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 = {} |
||
) |
R += R_full(mask,mask)
Definition at line 83 of file sparse-ops.hpp.
S += S_full(mask,:)
Definition at line 93 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 104 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 117 of file sparse-ops.hpp.
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 159 of file type-erasure.hpp.
Definition at line 164 of file type-erasure.hpp.
Definition at line 175 of file type-erasure.hpp.
|
inlineconstexpr |
Convenience instance of te_in_place_t.
Definition at line 185 of file type-erasure.hpp.