|
Dedekind 0.0.0
A structuralist C++23 Module Library
|
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 |
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.
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.