`DirectSum.Basis`

— Type`DirectSum.Basis{V} <: SubAlgebra{V} <: TensorAlgebra{V}`

Grassmann basis container with cache of `Submanifold`

elements and their `Symbol`

names.

`DirectSum.ExtendedBasis`

— Type`DirectSum.ExtendedBasis{V} <: SubAlgebra{V} <: TensorAlgebra{V}`

Grassmann basis container without a dedicated `Submanifold`

cache (only lazy caching).

`DirectSum.Infinity`

— Type`Infinity{V} <: TensorGraded{V,0} <: TensorAlgebra{V}`

Infinite quantity `Infinity`

of the `Grassmann`

algebra over `V`

.

`DirectSum.One`

— Type`One{V} <: TensorGraded{V,0} <: TensorAlgebra{V}`

Unit quantity `One`

of the `Grassmann`

algebra over `V`

.

`DirectSum.Single`

— Type`Single{V,G,B,𝕂} <: TensorTerm{V,G} <: TensorGraded{V,G}`

Single type with pseudoscalar `V::Manifold`

, grade/rank `G::Int`

, `B::Submanifold{V,G}`

, field `𝕂::Type`

.

`DirectSum.SparseBasis`

— Type`DirectSum.SparseBasis{V} <: SubAlgebra{V} <: TensorAlgebra{V}`

Grassmann basis with sparse cache of `Submanifold{G,V}`

elements and their `Symbol`

names.

`DirectSum.Submanifold`

— Type`Submanifold{V,G,B} <: TensorGraded{V,G} <: Manifold{G}`

Basis type with pseudoscalar `V::Manifold`

, grade/rank `G::Int`

, bits `B::UInt64`

.

`DirectSum.TensorBundle`

— Type`TensorBundle{n,ℙ,g,ν,μ} <: Manifold{n}`

Let `n`

be the rank of a `Manifold{n}`

. The type `TensorBundle{n,ℙ,g,ν,μ}`

uses *byte-encoded* data available at pre-compilation, where `ℙ`

specifies the basis for up and down projection, `g`

is a bilinear form that specifies the metric of the space, and `μ`

is an integer specifying the order of the tangent bundle (i.e. multiplicity limit of Leibniz-Taylor monomials). Lastly, `ν`

is the number of tangent variables.

`DirectSum.Zero`

— Type`Zero{V} <: TensorGraded{V,0} <: TensorAlgebra{V}`

Null quantity `Zero`

of the `Grassmann`

algebra over `V`

.

`AbstractTensors.clifford`

— Function`clifford(ω::TensorAlgebra)`

Clifford conjugate of an element: clifford(ω) = involute(conj(ω))

`AbstractTensors.involute`

— Function`involute(ω::TensorAlgebra)`

Involute of an element: ~ω = (-1)^grade(ω)*ω

`Base.:~`

— Method`reverse(ω::TensorAlgebra)`

Reverse of an element: ~ω = (-1)^(grade(ω)*(grade(ω)-1)/2)*ω

`Base.conj`

— Function`~(ω::TensorAlgebra)`

Reverse of an element: ~ω = (-1)^(grade(ω)*(grade(ω)-1)/2)*ω

`Base.imag`

— Method`imag(ω::TensorAlgebra)`

The `imag`

part `(ω-(~ω))/2`

is defined by `abs2(imag(ω)) == -(imag(ω)^2)`

.

`Base.real`

— Methodreal(ω::TensorAlgebra)

The `real`

part `(ω+(~ω))/2`

is defined by `abs2(real(ω)) == real(ω)^2`

.

`DirectSum.alloc`

— Function`alloc(V::Manifold,:V,"v","w","∂","ϵ")`

Generates `Basis`

declaration having `Manifold`

specified by `V`

. The first argument provides pseudoscalar specifications, the second argument is the variable name for the `Manifold`

, and the third and fourth argument are variable prefixes of the `Submanifold`

vector names (and covector basis names).

`DirectSum.getbasis`

— Method`getbasis(V::Manifold,v)`

Fetch a specific `Submanifold{G,V}`

element from an optimal `SubAlgebra{V}`

selection.

`DirectSum.@basis`

— Macro`@basis`

Generates `Submanifold`

elements having `Manifold`

specified by `V`

. As a result of this macro, all of the `Submanifold{V,G}`

elements generated by that `TensorBundle`

become available in the local workspace with the specified naming. The first argument provides pseudoscalar specifications, the second argument is the variable name for the `Manifold`

, and the third and fourth argument are variable prefixes of the `Submanifold`

vector names (and covector basis names). Default for `@basis M`

is `@basis M V v w ∂ ϵ`

.

`DirectSum.@dualbasis`

— Macro`@dualbasis`

Generates `Submanifold`

elements having `Manifold`

specified by `V'`

. As a result of this macro, all of the `Submanifold{V',G}`

elements generated by that `TensorBundle`

become available in the local workspace with the specified naming. The first argument provides pseudoscalar specifications, the second argument is the variable name for the dual `Manifold`

, and the third and fourth argument are variable prefixes of the `Submanifold`

covector names (and tensor field basis names). Default for `@dualbasis M`

is `@dualbasis M VV w ϵ`

.

`DirectSum.@mixedbasis`

— Macro`@mixedbasis`

Generates `Submanifold`

elements having `Manifold`

specified by `V⊕V'`

. As a result of this macro, all of the `Submanifold{V⊕V',G}`

elements generated by that `TensorBundle`

become available in the local workspace with the specified naming. The first argument provides pseudoscalar specifications, the second argument is the variable name for the `Manifold`

, and the third and fourth argument are variable prefixes of the `Submanifold`

vector names (and covector basis names). Default for `@mixedbasis M`

is `@mixedbasis M V v w ∂ ϵ`

.