Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind.geometry Module Reference

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).