|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
Concepts | |
| concept | dedekind::geometry::IsMatrixScalar |
| A scalar type that can serve as coefficients in a LinearMap. | |
| concept | dedekind::geometry::HasMatrixScalarEmbedding |
| Floating carrier that is admissible as a matrix scalar by policy. | |
| concept | dedekind::geometry::HasJacobianAt |
| Map-like object exposing a finite-dimensional LinearMap Jacobian. | |
| concept | dedekind::geometry::IsFiniteDimensionalInnerProductSpace |
| A finite-dimensional real inner-product space. | |
| concept | dedekind::geometry::IsHilbertSpace |
| An Inner Product Space where every Cauchy sequence converges. | |
| concept | dedekind::geometry::IsOuterProductSpace |
W carries the outer-product structure for factor spaces U and V: there is a dyad(u, v) → W constructor representing u ⊗ v in W. | |
| concept | dedekind::geometry::IsFunctionSpace |
W is a function space T^D — eval f(d), pointwise +, and scalar · over T. | |
| concept | dedekind::geometry::IsTangentBundle |
| A flat-case (element-wise) tangent-bundle carrier over a base scalar: a pair (point, tangent vector) with ring-shaped arithmetic. | |
| concept | dedekind::geometry::HasFiniteDimension |
| A vector type whose coordinate index set is finite. | |
| concept | dedekind::geometry::HasCountableDimension |
| A vector type whose coordinate index set is at most countably infinite. | |
| concept | dedekind::geometry::HasDimension |
| A vector type with a specific compile-time dimension N. | |
| concept | dedekind::geometry::IsAffine |
| Affine-space witness over scalar carrier S. | |
| concept | dedekind::geometry::IsMetricSpace |
| A set equipped with a distance function (metric) d(a, b). | |
| concept | dedekind::geometry::IsEuclideanSpace |
| A Vector Space that is also a Metric Space where distance is the Norm. | |
| concept | dedekind::geometry::HasInnerProduct |
Carrier exposing a scalar-valued inner-product form, its exact squared norm abs2, and the (√-induced) norm. | |
| concept | dedekind::geometry::IsInnerProductSemimodule |
| A semimodule equipped with an inner-product-like scalar form. | |
| concept | dedekind::geometry::IsInnerProductModule |
| A module equipped with an inner-product-like scalar form. | |
| concept | dedekind::geometry::IsInnerProductSpace |
| A field-like vector carrier equipped with an inner product morphism. | |
| concept | dedekind::geometry::IsGeometricLattice |
| A Set S whose elements are integer-coordinate points, embedded into a continuous vector space V via a declared-monic arrow E. | |
Classes | |
| class | dedekind::geometry::LinearMap< F, Rows, Cols > |
| A dense compile-time-sized linear map F^Cols -> F^Rows. More... | |
| class | dedekind::geometry::DifferentiableMap< F, DomainDim, CodomainDim, ValueFn, JacobianFn > |
| A finite-dimensional map paired with a user-supplied Jacobian witness. More... | |
| struct | dedekind::geometry::TangentBundlePoint< F, N > |
| A point in the tangent bundle T(F^N) = F^N × F^N. More... | |
| struct | dedekind::geometry::CotangentBundlePoint< F, N > |
| A point in the cotangent bundle T*(F^N) = F^N × (F^N)*. More... | |
| struct | dedekind::geometry::FiniteDim |
| struct | dedekind::geometry::CountablyInfiniteDim |
| class | dedekind::geometry::Vector< F, N > |
| An element of a Coordinate Space over a Field F. More... | |
| class | dedekind::geometry::FunctionalVector< F, Fn > |
| A vector-like object defined by coordinate evaluation x[i]. More... | |
| struct | dedekind::geometry::LatticeFactory< S > |
| Factory for unbounded lattice discretizations by set species. More... | |
Typedefs | |
| template<IsMatrixScalar F, std::size_t Rows, std::size_t Cols> | |
| using | dedekind::geometry::Matrix = LinearMap<F, Rows, Cols> |
| template<IsMatrixScalar F, std::size_t N> | |
| using | dedekind::geometry::Covector = LinearMap<F, 1, N> |
| Covector: a linear functional F^N -> F, represented as a row vector. | |
| template<std::size_t Rows, std::size_t Cols> | |
| using | dedekind::geometry::RealMatrix = LinearMap<double, Rows, Cols> |
| RealMatrix: machine-real matrix alias behind explicit opt-in. | |
| template<IsMatrixScalar F, std::size_t N> | |
| using | dedekind::geometry::TangentVector = Vector<F, N> |
| TangentVector at a point in F^N. | |
| template<IsMatrixScalar F, std::size_t N> | |
| using | dedekind::geometry::CotangentVector = Covector<F, N> |
| CotangentVector at a point in F^N. | |
| template<IsFloatingScalar F, typename Fn> | |
| using | dedekind::geometry::InfiniteVector = FunctionalVector<F, Fn> |
| Alias highlighting intent for potentially infinite-dimensional vectors. | |
| template<IsFloatingScalar F, typename Fn> | |
| using | dedekind::geometry::SequenceVector = FunctionalVector<F, Fn> |
| Alias for well-behaved infinite sequences viewed as vectors. | |
| using | dedekind::geometry::NaturalLatticeSet = 𝔸<Cardinality> |
| using | dedekind::geometry::IntegerLatticeSet = 𝔸<int> |
| using | dedekind::geometry::IntegerLatticeScalar = typename IntegerLatticeSet::Domain |
| using | dedekind::geometry::IntegerLatticePoint2D |
| using | dedekind::geometry::NaturalLatticeScalar = Cardinality |
| using | dedekind::geometry::NaturalLatticePoint2D |
Functions | |
| template<typename F> requires std::floating_point<F> && IsMatrixScalar<F> | |
| constexpr F | dedekind::geometry::embed_matrix_scalar (F value) noexcept |
| Explicit embedding witness from floating carriers into matrix scalars. | |
| template<IsMatrixScalar F, std::size_t Rows, std::size_t Cols> | |
| constexpr LinearMap< F, Rows, Cols > | dedekind::geometry::operator+ (const LinearMap< F, Rows, Cols > &a, const LinearMap< F, Rows, Cols > &b) |
| template<IsMatrixScalar F, std::size_t Rows, std::size_t Cols> | |
| constexpr LinearMap< F, Rows, Cols > | dedekind::geometry::operator- (const LinearMap< F, Rows, Cols > &a, const LinearMap< F, Rows, Cols > &b) |
| template<IsMatrixScalar F, std::size_t Rows, std::size_t Cols> | |
| constexpr LinearMap< F, Rows, Cols > | dedekind::geometry::operator- (const LinearMap< F, Rows, Cols > &a) |
| template<IsMatrixScalar F, std::size_t Rows, std::size_t Cols> | |
| constexpr LinearMap< F, Rows, Cols > | dedekind::geometry::operator* (const F &scalar, const LinearMap< F, Rows, Cols > &a) |
| template<IsMatrixScalar F, std::size_t Rows, std::size_t Cols> | |
| constexpr LinearMap< F, Rows, Cols > | dedekind::geometry::operator* (const LinearMap< F, Rows, Cols > &a, const F &scalar) |
| template<IsMatrixScalar F, std::size_t Rows, std::size_t Cols> | |
| constexpr Vector< F, Rows > | dedekind::geometry::operator* (const LinearMap< F, Rows, Cols > &a, const Vector< F, Cols > &v) |
| template<IsMatrixScalar F, std::size_t Rows, std::size_t Inner, std::size_t Cols> | |
| constexpr LinearMap< F, Rows, Cols > | dedekind::geometry::operator* (const LinearMap< F, Rows, Inner > &a, const LinearMap< F, Inner, Cols > &b) |
| template<IsMatrixScalar F, std::size_t N> | |
| constexpr LinearMap< F, N, N > | dedekind::geometry::identity_linear_map () |
| template<IsMatrixScalar F, std::size_t Rows, std::size_t Cols> | |
| constexpr LinearMap< F, Rows, Cols > | dedekind::geometry::zero_linear_map () |
| template<IsMatrixScalar F, std::size_t DomainDim, std::size_t CodomainDim, typename ValueFn, typename JacobianFn> | |
| constexpr auto | dedekind::geometry::make_differentiable_map (ValueFn value, JacobianFn jacobian) |
| Construct a finite-dimensional differentiable map from primal and Jacobian callables. | |
| template<HasJacobianAt Map> | |
| constexpr auto | dedekind::geometry::jacobian_at (const Map &map, const typename Map::Domain &x) -> typename Map::Jacobian |
| Return the Jacobian of a finite-dimensional differentiable map. | |
| template<HasJacobianAt Map> | |
| constexpr auto | dedekind::geometry::frechet_derivative_at (const Map &map, const typename Map::Domain &x) -> typename Map::Jacobian |
| Return the Fr\'echet derivative of a finite-dimensional map. | |
|
template<HasJacobianAt Map> requires (Map::codomain_dimension == 1) && std::same_as< typename Map::Jacobian, Covector<typename Map::scalar_type, Map::domain_dimension>> | |
| constexpr Covector< typename Map::scalar_type, Map::domain_dimension > | dedekind::geometry::differential_at (const Map &map, const typename Map::Domain &x) |
| Return the scalar-valued differential as a covector. | |
| template<IsMatrixScalar F, std::size_t M, std::size_t N> | |
| constexpr LinearMap< F, M, N > | dedekind::geometry::outer (const Vector< F, M > &u, const Vector< F, N > &v) |
| Outer product u ⊗ v : F^N -> F^M. | |
| template<IsMatrixScalar F, std::size_t M, std::size_t N> requires dedekind::category::IsField<F, std::plus<F>, std::multiplies<F>> | |
| constexpr LinearMap< F, M, N > | dedekind::geometry::dyad (const Vector< F, M > &u, const Vector< F, N > &v) |
| template<IsMatrixScalar F, std::size_t M, std::size_t N> requires dedekind::category::IsField<F, std::plus<F>, std::multiplies<F>> | |
| constexpr LinearMap< F, M, N > | dedekind::geometry::operator* (const Vector< F, M > &u, const Covector< F, N > &phi) |
|
template<IsFloatingScalar F, typename Fn> requires requires(const Fn& fn, std::size_t i) { { fn(i) } -> std::convertible_to<F>; } | |
| constexpr auto | dedekind::geometry::functional_vector (Fn &&fn) |
| Factory helper for function-based vectors. | |
|
template<IsFloatingScalar F, typename Fn> requires requires(const Fn& fn, std::size_t i) { { fn(i) } -> std::convertible_to<F>; } | |
| constexpr auto | dedekind::geometry::sequence_vector (Fn &&fn) |
| Factory helper emphasizing sequence semantics. | |
| template<IsFloatingScalar F> | |
| constexpr Vector< F, 1 > | dedekind::geometry::as_vector (const F &x) |
| Embed a scalar as a 1-dimensional vector. | |
| template<dedekind::algebra::IsFloatingScalar F, std::size_t N> | |
| constexpr F | dedekind::geometry::distance (const Vector< F, N > &a, const Vector< F, N > &b) |
| Canonical Euclidean distance induced by the norm. | |
| template<typename Threshold, typename Compare = std::greater<>> | |
| constexpr auto | dedekind::geometry::compare_euclidean_norm_squared (Threshold threshold, Compare compare={}) |
| Predicate factory over squared Euclidean norm. | |
| template<typename RadiusSquared> | |
| constexpr auto | dedekind::geometry::outside_closed_euclidean_ball_squared (RadiusSquared radius_squared) |
| Predicate factory for points outside the closed Euclidean ball, using squared radius to avoid square roots. | |
| template<std::floating_point F, std::size_t N> | |
| constexpr F | dedekind::geometry::dot (const Vector< F, N > &u, const Vector< F, N > &v) |
| template<typename V> requires requires(const V& v) { dot(v, v); } | |
| constexpr auto | dedekind::geometry::abs2 (const V &v) |
The inner-product squared norm abs2(v) = <v, v> — the canonical name for the squared magnitude, and the primitive the HasInnerProduct surface requires. | |
|
template<typename V> requires requires(const V& v) { dot(v, v); } | |
| constexpr auto | dedekind::geometry::euclidean_norm_squared (const V &v) |
Squared Euclidean norm: a synonym for abs2, retained for the Euclidean-metric / escape-test consumers (IsEuclideanSpace, compare_euclidean_norm_squared). | |
| template<std::floating_point F, std::size_t N> | |
| constexpr F | dedekind::geometry::norm (const Vector< F, N > &v) |
| Induced Norm for Real Species. | |
| template<typename F, std::size_t N> requires dedekind::category::IsField<F, std::plus<F>, std::multiplies<F>> | |
| constexpr F | dedekind::geometry::operator* (const Covector< F, N > &phi, const Vector< F, N > &v) |
| constexpr auto | dedekind::geometry::natural_lattice_2d () |
| The unbounded natural lattice in 2D: Λ_nat = { (x, y) ∈ ℕ² }. | |
| constexpr auto | dedekind::geometry::integer_lattice_2d () |
| The unbounded integer lattice in 2D: Λ_int = { (x, y) ∈ ℤ² }. | |
| constexpr auto | dedekind::geometry::square_natural_grid (unsigned int n) |
| The canonical N×N square natural grid: G_N^nat = { (x, y) ∈ ℕ² | 0 ≤ x < n, 0 ≤ y < n }. | |
| constexpr auto | dedekind::geometry::square_integer_grid (IntegerLatticeScalar lower, IntegerLatticeScalar upper) |
| Bounded square integer grid: G_Z = { (x, y) ∈ ℤ² | lower ≤ x < upper, lower ≤ y < upper }. | |
Variables | |
| template<typename S> | |
| constexpr LatticeFactory< S > | dedekind::geometry::lattice {} |
| constexpr auto | dedekind::geometry::embed_z2_r2 |
| The canonical embedding ℤ² ↪ ℝ²: (x, y) ↦ Vector{x, y}. | |
Files | |
| file | src/main/modules/dedekind/geometry/geometry.cppm |
| Affine ⊂ InnerProduct ⊂ Euclidean ⊂ Hilbert. | |
| file | src/main/modules/dedekind/geometry/affine.cppm |
| Affine spaces — points, vectors, dimension witnesses. | |
| file | src/main/modules/dedekind/geometry/euclidean.cppm |
| The Study of Distance, Metrics, and Curvature. | |
| file | src/main/modules/dedekind/geometry/function.cppm |
| Concept anchoring for function spaces — #537 slice 1. | |
| file | src/main/modules/dedekind/geometry/hilbert.cppm |
| Hilbert spaces — Cauchy-complete inner-product spaces. | |
| file | src/main/modules/dedekind/geometry/inner_product.cppm |
| Pre-Hilbert (inner-product) spaces over ℝ or ℂ. | |
| file | src/main/modules/dedekind/geometry/lattice.cppm |
| Geometric lattices (ℤ², ℕ², Gaussian integers in ℂ). | |
| file | src/main/modules/dedekind/geometry/linear_map.cppm |
| Finite-dim linear maps with algebraic witnesses. | |
| file | src/main/modules/dedekind/geometry/outer_product.cppm |
| Concept-side anchoring for the outer / dyadic / rank-1 product space (#535). | |
| file | src/main/modules/dedekind/geometry/tangent.cppm |
| Tangent-bundle concepts (flat case). | |