Bertini 2 d882924 (2026-10-06 19:56 UTC)
Numerical algebraic geometry library (C++ core)
Loading...
Searching...
No Matches
bertini::detail Namespace Reference

Classes

struct  Configured
 This templated struct allows one to provide a variable typelist of config structs (or anything else for that matter), and provides a way to get and set these configs by looking up the structs by type. More...
struct  Configured< TypeList< Ts... > >
 Configured specialization accepting the config types packaged in a TypeList. More...
struct  IndexByType
struct  IndexByType< T, T, RemainingT... >
struct  IndexByType< T1, T2, RemainingT... >
struct  AreValidArguments
struct  AreValidArguments< true >
struct  DefaultConstruct
 Holds a default-constructed value of T, used to fill arguments not present when unpermuting. More...
struct  IsTemplateParameter
 Base template, which says 'no', it's not in the pack. More...
struct  IsTemplateParameter< F, S, T... >
 Specialized template, which says 'yes', if it is in the pack, by recursively expanding the pack. More...
struct  IsTemplateParameter< T, TypeList< Ts... > >
 IsTemplateParameter specialization accepting the candidate types packaged in a TypeList. More...
struct  Digest256
 A 256-bit content digest – the output of Sha256, used as a persistent identity key. More...
struct  Singleton
 A virtual singleton base class which can be used in a heirarchy to require a class to be singleton. More...
struct  TypeList
 A basic typelist, in the style of Modern C++ Design, but using variadic templates. More...
struct  ListCat
 Concatenate two typelists. More...
struct  ListCat< TypeList< Ts... >, TypeList< Rs... > >
 A specialization of ListCat for joining two lists. More...
struct  ListCat< TypeList< Ps... >, TypeList< Qs... >, TypeList< Rs... > >
 A specialization of ListCat for joining 3+ lists. More...
struct  SharedPointerPolicy
 Pool pointer policy that holds objects via std::shared_ptr. More...
class  Pool
 A process-wide cache of objects, held by pointer, that hands out shared references. More...

Typedefs

template<typename ObjT>
using DefaultPointerPolicy = SharedPointerPolicy<ObjT>
 The default pool pointer policy (shared_ptr).

Functions

template<std::size_t I, std::size_t J, typename T, typename... PresentT, typename... GivenT>
auto GetByIndex (const std::tuple< PresentT... > &, const std::tuple< GivenT... > &absent_args) -> typename std::enable_if< I==sizeof...(PresentT), const T & >::type
 Get the value of type T, pulling from the given (absent) args when T is not among the present types.
template<std::size_t I, std::size_t J, typename T, typename... PresentT, typename... GivenT>
auto GetByIndex (const std::tuple< PresentT... > &present_args, const std::tuple< GivenT... > &) -> typename std::enable_if< I !=sizeof...(PresentT), const T & >::type
 Get the value of type T from the present args when T is among the present types (the I != sizeof... overload).
template<std::size_t...>
void ValidateTypes ()
 Proxy function ensuring the types are distinct and indexable by type (compile-time check).
Digest256 Sha256 (std::string_view data)
 SHA-256 (FIPS 180-4) of a byte string.
bool IsEmojiBase (char32_t cp)
 True if cp is in a primary emoji / pictographic range, so a name may start with it (🎉, 👍, ❤, ⭐, a regional-indicator letter, ...).
bool IsEmojiGlue (char32_t cp)
 True if cp only extends an emoji cluster – valid mid-name to glue a multi-code-point emoji, but not meaningful as a name's first character.

Typedef Documentation

◆ DefaultPointerPolicy

template<typename ObjT>
using bertini::detail::DefaultPointerPolicy = SharedPointerPolicy<ObjT>

The default pool pointer policy (shared_ptr).

Function Documentation

◆ GetByIndex() [1/2]

template<std::size_t I, std::size_t J, typename T, typename... PresentT, typename... GivenT>
auto bertini::detail::GetByIndex ( const std::tuple< PresentT... > & ,
const std::tuple< GivenT... > & absent_args )->typenamestd::enable_if< I==sizeof...(PresentT), constT & >::type

Get the value of type T, pulling from the given (absent) args when T is not among the present types.

◆ GetByIndex() [2/2]

template<std::size_t I, std::size_t J, typename T, typename... PresentT, typename... GivenT>
auto bertini::detail::GetByIndex ( const std::tuple< PresentT... > & present_args,
const std::tuple< GivenT... > &  )->typenamestd::enable_if< I!=sizeof...(PresentT), constT & >::type

Get the value of type T from the present args when T is among the present types (the I != sizeof... overload).

◆ IsEmojiBase()

bool bertini::detail::IsEmojiBase ( char32_t cp)
inline

True if cp is in a primary emoji / pictographic range, so a name may start with it (🎉, 👍, ❤, ⭐, a regional-indicator letter, ...).

◆ IsEmojiGlue()

bool bertini::detail::IsEmojiGlue ( char32_t cp)
inline

True if cp only extends an emoji cluster – valid mid-name to glue a multi-code-point emoji, but not meaningful as a name's first character.

◆ Sha256()

Digest256 bertini::detail::Sha256 ( std::string_view data)

SHA-256 (FIPS 180-4) of a byte string.

Parameters
dataThe bytes to hash (canonical-encoding text, in practice).
Returns
The 256-bit digest.

◆ ValidateTypes()

template<std::size_t...>
void bertini::detail::ValidateTypes ( )

Proxy function ensuring the types are distinct and indexable by type (compile-time check).