Dedekind 0.0.0
A structuralist C++23 Module Library
Loading...
Searching...
No Matches
dedekind::geometry::TangentBundlePoint< F, N > Struct Template Referenceexport

A point in the tangent bundle T(F^N) = F^N × F^N. More...

Public Attributes

Vector< F, N > base
 Base point p ∈ F^N.
TangentVector< F, N > fiber
 Tangent vector v ∈ T_p(F^N) ≅ F^N.

Friends

constexpr bool operator== (const TangentBundlePoint &, const TangentBundlePoint &)=default

Detailed Description

template<IsMatrixScalar F, std::size_t N>
struct dedekind::geometry::TangentBundlePoint< F, N >

A point in the tangent bundle T(F^N) = F^N × F^N.

Packages a base-point with a tangent vector at that point. For the flat manifold F^N the bundle is trivially the product; in a non-flat setting (future issue) this struct would generalise to an atlas-chart-local section.

Note
Structurally this is the (point, fibre) pair shape that the IsTangentBundle concept in :tangent describes. The current struct stops at the data layout, however — it does not supply ring operators (+, -, *) on the bundle, which the concept additionally requires. The carrier that does carry the full tangent-bundle ring structure — value, derivative, and arithmetic respecting the nilpotent ε² = 0 — is Dual<F> in dedekind.analysis:dual. When the manifold abstraction of #185 lands, a sibling IsTangentBundlePoint concept (just the structural pair, no ring) and a refined IsTangentBundleStructure<TM, M> (paired with a base manifold and projection) are the natural extensions; TangentBundlePoint can then be retrofitted to satisfy the structural-pair concept without forcing a ring shape.

FIXME(https://github.com/vincentk/dedekind/issues/185): Lift the bundle point carriers from extensional N to first-class dimension/cardinality witnesses when manifold-local geometry is introduced.


The documentation for this struct was generated from the following file: