Struct IndexBasisSpec

Nested Relationships

Nested Types

Struct Documentation

struct IndexBasisSpec

what IndexBasisRegistry::add(label, space, instance, spec) registers a named basis instance with besides its label, space and instance: each member is given by name, and each is optional; as for IndexSpaceSpec, a bare value in the brace list is rejected

Public Members

SEQUANT_DESIGNATED_INIT_ONLY
std::optional<std::int64_t> extent = {}

the number of functions in the basis; if not given, the dimension of its space, now and whenever that changes (see IndexBasis::own_extent())

Pre:

non-negative

std::optional<IndexBasisMetric> metric = {}

whether the basis is orthonormal; IndexBasisMetric::Unit if not given

std::optional<Field> field = {}

the scalar field of the basis; if not given, that of its space’s own basis, now and whenever that changes (see IndexBasis::own_field())

std::optional<Label> follows = {}

the label of the named basis instance to follow (see IndexBasisRegistry::follow()), whose extent, metric and field the basis then mirrors; excludes the three members above

struct Label

a label given in a spec: any string type (see basic_string_convertible), kept as the registry keeps labels

Public Functions

template<basic_string_convertible S>
inline Label(S &&label)

Public Members

std::wstring value