[ANN] DirectSum.jl, AbstractTensors.jl : dispatch on VectorBundle <: Manifold{n}

The DirectSum package has a tangent bundle encoding based on the following:

Let T^dV\in\text{Vect}_\mathbb K be a VectorBundle<:Manifold of rank n,

T^dV = (n,p,g,d),\, n \in\mathbb N,\, g :V\times V\rightarrow\mathbb K, \, d \in\mathbb Z

::VectorBundle{n,p,g,d} where {n,p,g,d} byte-encoded

  • p specifies the null-basis from the projective split of V,
  • g is a bilinear form that specifies the metric of the space,
  • d is an integer specifying the order of the tangent bundle.

\bigoplus T^{d_i}V_i = (|p|+d+\sum n_i-|p_i|-d_i,\,\bigcup p_i,\,\oplus_i g_i,\,\max\{d_i\}_i)

::SubManifold{m,V,s} where \{n\geq m\in\mathbb N,V\in\text{Vect}_\mathbb K,s\in V\}

T^eV \subset T^dW \iff \exists Z\in\text{Vect}_\mathbb K(T^e(V\oplus Z) = T^{e\leq d}W,\,V\perp Z)

Dual space involution: (\cdot)':\text{Vect}_\mathbb K^\text{op}\rightarrow\text{Vect}_\mathbb K, V' = \text{Hom}(V,\mathbb K)

T^dV = \langle v_1,\dots,v_n,\epsilon_1,\dots,\epsilon_d\rangle,\, T^dV' = \langle w_1,\dots,w_n,\partial_1,\dots,\partial_d\rangle

Additional Manifold types such as SubManifold and DiagonalManifold will enable the precise application of Riemannian geometry in the Grassmann algebra package in an upcoming release.