Grassmann.jl Library
AbstractTensors.Bivector
AbstractTensors.GradedVector
AbstractTensors.Manifold
AbstractTensors.Scalar
AbstractTensors.TensorAlgebra
AbstractTensors.TensorGraded
AbstractTensors.TensorMixed
AbstractTensors.TensorTerm
AbstractTensors.Trivector
DirectSum.Basis
DirectSum.ExtendedBasis
DirectSum.Infinity
DirectSum.One
DirectSum.Single
DirectSum.SparseBasis
DirectSum.Submanifold
DirectSum.TensorBundle
DirectSum.Zero
Grassmann.AbstractSpinor
Grassmann.Chain
Grassmann.ChainBundle
Grassmann.CoSpinor
Grassmann.Couple
Grassmann.Multivector
Grassmann.Phasor
Grassmann.PseudoCouple
Grassmann.Spinor
AbstractLattices.:β§
AbstractLattices.:β¨
AbstractTensors.:β
AbstractTensors.:β
AbstractTensors.:β
AbstractTensors.:β
AbstractTensors.:β
AbstractTensors.antisandwich
AbstractTensors.bivector
AbstractTensors.clifford
AbstractTensors.coabs
AbstractTensors.coabs2
AbstractTensors.cocbrt
AbstractTensors.cocos
AbstractTensors.cocosh
AbstractTensors.coexp
AbstractTensors.coinv
AbstractTensors.colog
AbstractTensors.complementleft
AbstractTensors.complementlefthodge
AbstractTensors.complementright
AbstractTensors.complementrighthodge
AbstractTensors.contraction
AbstractTensors.cosandwich
AbstractTensors.cosin
AbstractTensors.cosinh
AbstractTensors.cosqrt
AbstractTensors.cotan
AbstractTensors.cotanh
AbstractTensors.counit
AbstractTensors.gdims
AbstractTensors.geomabs
AbstractTensors.involute
AbstractTensors.isgraded
AbstractTensors.ismanifold
AbstractTensors.ismixed
AbstractTensors.istensor
AbstractTensors.isterm
AbstractTensors.mdims
AbstractTensors.pseudoabs
AbstractTensors.pseudoabs2
AbstractTensors.pseudocbrt
AbstractTensors.pseudocos
AbstractTensors.pseudocosh
AbstractTensors.pseudoexp
AbstractTensors.pseudoinv
AbstractTensors.pseudolog
AbstractTensors.pseudoscalar
AbstractTensors.pseudosin
AbstractTensors.pseudosinh
AbstractTensors.pseudosqrt
AbstractTensors.pseudotan
AbstractTensors.pseudotanh
AbstractTensors.scalar
AbstractTensors.tdims
AbstractTensors.trivector
AbstractTensors.unit
AbstractTensors.unitnorm
AbstractTensors.value
AbstractTensors.valuetype
AbstractTensors.vector
Base.:&
Base.:>>>
Base.:~
Base.conj
Base.imag
Base.real
DirectSum.alloc
DirectSum.getbasis
DirectSum.nameindex
DirectSum.nameindex
DirectSum.nameindex
DirectSum.namelist
DirectSum.pseudoclifford
DirectSum.pseudoinvolute
DirectSum.pseudoreverse
DirectSum.tensorhash
Grassmann.betti
Grassmann.cayley
Grassmann.compact
Leibniz.bit2int
Leibniz.digitsfast
Leibniz.gdimsall
Leibniz.gdimseven
Leibniz.gdimsodd
Leibniz.getbasis
Leibniz.indexbits
Leibniz.indices
Leibniz.intlog
Leibniz.Ο
LinearAlgebra.cross
LinearAlgebra.dot
LinearAlgebra.rank
AbstractTensors.@co
AbstractTensors.@pseudo
DirectSum.@basis
DirectSum.@dualbasis
DirectSum.@mixedbasis
AbstractTensors.Bivector
β TypeBivector{V,T} <: TensorGraded{V,2,T}
Graded bivector
elements of a Manifold
instance V
with scalar field T
.
AbstractTensors.GradedVector
β TypeGradedVector{V,T} <: TensorGraded{V,1,T}
Graded vector
elements of a Manifold
instance V
with scalar field T
.
AbstractTensors.Manifold
β TypeManifold{V,T} <: TensorAlgebra{V,T}
Basis parameter locally homeomorphic to V::Submanifold{M}
T-module product topology.
AbstractTensors.Scalar
β TypeScalar{V,T} <: TensorGraded{V,0,T}
Graded scalar
elements of a Manifold
instance V
with scalar field T
.
AbstractTensors.TensorAlgebra
β TypeTensorAlgebra{V,T} <: Number
Universal root tensor type with Manifold
instance V
with scalar field T
.
AbstractTensors.TensorGraded
β TypeTensorGraded{V,G,T} <: Manifold{V,T} <: TensorAlgebra
Grade G
elements of a Manifold
instance V
with scalar field T
.
AbstractTensors.TensorMixed
β TypeTensorMixed{V,T} <: TensorAlgebra{V,T}
Elements of Manifold
instance V
having non-homogenous grade with scalar field T
.
AbstractTensors.TensorTerm
β TypeTensorTerm{V,G,T} <: TensorGraded{V,G,T}
Single coefficient for grade G
of a Manifold
instance V
with scalar field T
.
AbstractTensors.Trivector
β TypeTrivector{V,T} <: TensorGraded{V,3,T}
Graded trivector
elements of a Manifold
instance V
with scalar field T
.
AbstractTensors.antisandwich
β Methodantisandwich(x::TensorAlgebra,R::TensorAlgebra)
Defined as complementleft(complementright(R)>>>complementright(x))
.
AbstractTensors.bivector
β Functionbivector(::TensorAlgebra)
Return the bivector (rank 2) part of any TensorAlgebra
element.
AbstractTensors.coabs
β Functioncoabs(t::TensorAlgebra)
Complemented abs
defined as complementleft(abs(complementright(t)))
.
AbstractTensors.coabs2
β Functioncoabs2(t::TensorAlgebra)
Complemented abs2
defined as complementleft(abs2(complementright(t)))
.
AbstractTensors.cocbrt
β Functioncocbrt(t::TensorAlgebra)
Complemented cbrt
defined as complementleft(cbrt(complementright(t)))
.
AbstractTensors.cocos
β Functioncocos(t::TensorAlgebra)
Complemented cos
defined as complementleft(cos(complementright(t)))
.
AbstractTensors.cocosh
β Functioncocosh(t::TensorAlgebra)
Complemented cosh
defined as complementleft(cosh(complementright(t)))
.
AbstractTensors.coexp
β Functioncoexp(t::TensorAlgebra)
Complemented exp
defined as complementleft(exp(complementright(t)))
.
AbstractTensors.coinv
β Functioncoinv(t::TensorAlgebra)
Complemented inv
defined as complementleft(inv(complementright(t)))
.
AbstractTensors.colog
β Functioncolog(t::TensorAlgebra)
Complemented log
defined as complementleft(log(complementright(t)))
.
AbstractTensors.cosandwich
β Methodcosandwich(x::TensorAlgebra,R::TensorAlgebra)
Defined as complementleft(sandwich(complementright(x),complementright(R)))
.
AbstractTensors.cosin
β Functioncosin(t::TensorAlgebra)
Complemented sin
defined as complementleft(sin(complementright(t)))
.
AbstractTensors.cosinh
β Functioncosinh(t::TensorAlgebra)
Complemented sinh
defined as complementleft(sinh(complementright(t)))
.
AbstractTensors.cosqrt
β Functioncosqrt(t::TensorAlgebra)
Complemented sqrt
defined as complementleft(sqrt(complementright(t)))
.
AbstractTensors.cotan
β Functioncotan(t::TensorAlgebra)
Complemented tan
defined as complementleft(tan(complementright(t)))
.
AbstractTensors.cotanh
β Functioncotanh(t::TensorAlgebra)
Complemented tanh
defined as complementleft(tanh(complementright(t)))
.
AbstractTensors.counit
β Methodcounit(t::TensorAlgebra)
Pseudo-normalization defined as unitize(t) = t/value(coabs(t))
.
AbstractTensors.gdims
β Methodgdims(t::TensorGraded{V,G})
Dimensionality of the grade G
of V
for that TensorAlgebra
.
AbstractTensors.geomabs
β Methodgeomabs(t::TensorAlgebra)
Geometric norm defined as geomabs(t) = abs(t) + coabs(t)
.
AbstractTensors.isgraded
β Methodisgraded(t) -> Bool
Test whether t
is some subtype of TensorGraded
.
AbstractTensors.ismanifold
β Methodismanifold(t) -> Bool
Test whether t
is some subtype of Manifold
.
AbstractTensors.ismixed
β Methodismixed(t) -> Bool
Test whether t
is some subtype of TensorMixed
.
AbstractTensors.istensor
β Methodistensor(t) -> Bool
Test whether t
is some subtype of TensorAlgebra
.
AbstractTensors.isterm
β Methodisterm(t) -> Bool
Test whether t
is some subtype of TensorTerm
.
AbstractTensors.mdims
β Methodmdims(t::TensorAlgebra{V})
Dimensionality of the pseudoscalar V
of that TensorAlgebra
.
AbstractTensors.pseudoabs
β Functionpseudoabs(t::TensorAlgebra)
Complemented abs
defined as complementleft(abs(complementright(t)))
.
AbstractTensors.pseudoabs2
β Functionpseudoabs2(t::TensorAlgebra)
Complemented abs2
defined as complementleft(abs2(complementright(t)))
.
AbstractTensors.pseudocbrt
β Functionpseudocbrt(t::TensorAlgebra)
Complemented cbrt
defined as complementleft(cbrt(complementright(t)))
.
AbstractTensors.pseudocos
β Functionpseudocos(t::TensorAlgebra)
Complemented cos
defined as complementleft(cos(complementright(t)))
.
AbstractTensors.pseudocosh
β Functionpseudocosh(t::TensorAlgebra)
Complemented cosh
defined as complementleft(cosh(complementright(t)))
.
AbstractTensors.pseudoexp
β Functionpseudoexp(t::TensorAlgebra)
Complemented exp
defined as complementleft(exp(complementright(t)))
.
AbstractTensors.pseudoinv
β Functionpseudoinv(t::TensorAlgebra)
Complemented inv
defined as complementleft(inv(complementright(t)))
.
AbstractTensors.pseudolog
β Functionpseudolog(t::TensorAlgebra)
Complemented log
defined as complementleft(log(complementright(t)))
.
AbstractTensors.pseudoscalar
β Methodpseudoscalar(::TensorAlgebra), volume(::TensorAlgebra)
Return the pseudoscalar (full rank) part of any TensorAlgebra
element.
AbstractTensors.pseudosin
β Functionpseudosin(t::TensorAlgebra)
Complemented sin
defined as complementleft(sin(complementright(t)))
.
AbstractTensors.pseudosinh
β Functionpseudosinh(t::TensorAlgebra)
Complemented sinh
defined as complementleft(sinh(complementright(t)))
.
AbstractTensors.pseudosqrt
β Functionpseudosqrt(t::TensorAlgebra)
Complemented sqrt
defined as complementleft(sqrt(complementright(t)))
.
AbstractTensors.pseudotan
β Functionpseudotan(t::TensorAlgebra)
Complemented tan
defined as complementleft(tan(complementright(t)))
.
AbstractTensors.pseudotanh
β Functionpseudotanh(t::TensorAlgebra)
Complemented tanh
defined as complementleft(tanh(complementright(t)))
.
AbstractTensors.scalar
β Functionscalar(::TensorAlgebra)
Return the scalar (rank 0) part of any TensorAlgebra
element.
AbstractTensors.tdims
β Methodtdims(t::TensorAlgebra{V})
Dimensionality of the superalgebra of V
for that TensorAlgebra
.
AbstractTensors.trivector
β Functiontrivector(::TensorAlgebra)
Return the trivector (rank 3) part of any TensorAlgebra
element.
AbstractTensors.unit
β Methodunit(t::Number)
Normalization defined as unit(t) = t/abs(t)
.
AbstractTensors.unitnorm
β Methodunitnorm(t::TensorAlgebra)
Geometric normalization defined as unitnorm(t) = t/norm(geomabs(t))
.
AbstractTensors.value
β Methodvalue(::TensorAlgebra)
Returns the internal Values
representation of a TensorAlgebra
element.
AbstractTensors.valuetype
β Methodvaluetype(t::TensorAlgebra{V,T}) where {V,T} = T
Returns type of a TensorAlgebra
element value's internal representation.
AbstractTensors.vector
β Functionvector(::TensorAlgebra)
Return the vector (rank 1) part of any TensorAlgebra
element.
LinearAlgebra.rank
β Methodrank(::Manifold{n})
Dimensionality n
of the Manifold
subspace representation.
AbstractTensors.@co
β Macro@co fun(args...)
Use the macro @co
to make a pseudoscalar complement
variant of any functions:
julia> @co myfun(x)
comyfun (generic function with 1 method)
Now comyfun(x) = complementleft(myfun(complementright(x)))
is defined.
julia> @co myproduct(a,b)
comyproduct (generic function with 1 method)
Now comyproduct(a,b) = complementleft(myproduct(!a,!b))
is defined.
AbstractTensors.@pseudo
β Macro@pseudo fun(args...)
Use the macro @pseudo
to make a pseudoscalar complement
variant of any functions:
julia> @pseudo myfun(x)
pseudomyfun (generic function with 1 method)
Now pseudomyfun(x) = complementleft(myfun(complementright(x)))
is defined.
julia> @pseudo myproduct(a,b)
pseudomyproduct (generic function with 1 method)
Now pseudomyproduct(a,b) = complementleft(myproduct(!a,!b))
is defined.
DirectSum.Basis
β TypeDirectSum.Basis{V} <: SubAlgebra{V} <: TensorAlgebra{V}
Grassmann basis container with cache of Submanifold
elements and their Symbol
names.
DirectSum.ExtendedBasis
β TypeDirectSum.ExtendedBasis{V} <: SubAlgebra{V} <: TensorAlgebra{V}
Grassmann basis container without a dedicated Submanifold
cache (only lazy caching).
DirectSum.Infinity
β TypeInfinity{V} <: TensorGraded{V,0} <: TensorAlgebra{V}
Infinite quantity Infinity
of the Grassmann
algebra over V
.
DirectSum.One
β TypeOne{V} <: TensorGraded{V,0} <: TensorAlgebra{V}
Unit quantity One
of the Grassmann
algebra over V
.
DirectSum.Single
β TypeSingle{V,G,B,T} <: TensorTerm{V,G,T} <: TensorGraded{V,G,T}
Single type with pseudoscalar V::Manifold
, grade/rank G::Int
, B::Submanifold{V,G}
, field T::Type
.
DirectSum.SparseBasis
β TypeDirectSum.SparseBasis{V} <: SubAlgebra{V} <: TensorAlgebra{V}
Grassmann basis with sparse cache of Submanifold{G,V}
elements and their Symbol
names.
DirectSum.Submanifold
β TypeSubmanifold{V,G,B} <: TensorGraded{V,G} <: Manifold{G}
Basis type with pseudoscalar V::Manifold
, grade/rank G::Int
, bits B::UInt64
.
DirectSum.TensorBundle
β TypeTensorBundle{n,β,g,Ξ½,ΞΌ} <: Manifold{n}
A manifold representing the space of tensors with a given metric and basis for projection.
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
β TypeZero{V} <: TensorGraded{V,0} <: TensorAlgebra{V}
Null quantity Zero
of the Grassmann
algebra over V
.
AbstractTensors.clifford
β Functionclifford(Ο::TensorAlgebra)
Clifford conjugate of an element: clifford(Ο) = involute(reverse(Ο))
AbstractTensors.involute
β Functioninvolute(Ο::TensorAlgebra)
Involute of an element: ~Ο = (-1)^grade(Ο)*Ο
Base.:~
β Methodreverse(Ο::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
β Methodimag(Ο::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
β Functionalloc(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
β Methodgetbasis(V::Manifold,v)
Fetch a specific Submanifold{G,V}
element from an optimal SubAlgebra{V}
selection.
DirectSum.nameindex
β Methodnameindex(V::Int) -> Int
Returns a default name index for an integer input.
DirectSum.nameindex
β Methodnameindex(a::NTuple{4, String}) -> Int
Get a unique index for a set of name options, based on a cached result.
DirectSum.nameindex
β Methodnameindex(V::T) -> Int
Returns the name index for V
when V
is a TensorBundle
or Manifold
.
DirectSum.namelist
β Methodnamelist(V) -> String
Get the cached name list for the options specified in V
.
DirectSum.pseudoclifford
β Functionpseudoclifford(Ο::TensorAlgebra)
Pseudo-clifford conjugate element: pseudoclifford(Ο) = pseudoinvolute(pseudoreverse(Ο))
DirectSum.pseudoinvolute
β Functionpseudoinvolute(Ο::TensorAlgebra)
Anti-involute of an element: ~Ο = (-1)^pseudograde(Ο)*Ο
DirectSum.pseudoreverse
β Functionpseudoreverse(Ο::TensorAlgebra)
Anti-reverse of an element: ~Ο = (-1)^(pseudograde(Ο)(pseudograde(Ο)-1)/2)Ο
DirectSum.tensorhash
β Functiontensorhash(d, o; c=0, C=0) -> Int
Compute a unique integer representation for a set of options.
Arguments:
d
: Number of tangent variables (corresponds toΞ½
).o
: Order of Leibniz-Taylor monomials multiplicity limit (corresponds toΞΌ
).c
: Coefficient used to specify the metric (corresponds tog
). Defaults to 0.C
: Additional coefficient. Defaults to 0.
Returns
A unique integer representation that can be used as a cache key.
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 β Ο΅
.
Grassmann.AbstractSpinor
β TypeAbstractSpinor{V,T} <: TensorMixed{V,T} <: TensorAlgebra{V,T}
Elements of TensorAlgebra
having non-homogenous grade being a spinor in the abstract.
Grassmann.Chain
β MethodChain{V,G,T} <: TensorGraded{V,G,T} <: TensorAlgebra{V,T}
Chain type with pseudoscalar V::Manifold
, grade/rank G::Int
, scalar field T::Type
.
Grassmann.ChainBundle
β TypeChainBundle{V,G,T,P} <: Manifold{V,T} <: TensorAlgebra{V,T}
Subsets of a bundle cross-section over a Manifold
topology.
Grassmann.CoSpinor
β MethodCoSpinor{V,T} <: AbstractSpinor{V,T} <: TensorAlgebra{V,T}
PsuedoSpinor (odd
grade) type with pseudoscalar V::Manifold
and scalar T::Type
.
Grassmann.Couple
β TypeCouple{V,B,T} <: AbstractSpinor{V,T} <: TensorAlgebra{V,T}
Pair of values with V::Manifold
, basis B::Submanifold
, scalar field of T::Type
.
Grassmann.Multivector
β MethodMultivector{V,T} <: TensorMixed{V,T} <: TensorAlgebra{V,T}
Chain type with pseudoscalar V::Manifold
and scalar field T::Type
.
Grassmann.Phasor
β TypePhasor{V,B,T} <: AbstractSpinor{V,T} <: TensorAlgebra{V,T}
Magnitude/phase angle with V::Manifold
, basis B::Submanifold
, scalar field T::Type
.
Grassmann.PseudoCouple
β TypePseudoCouple{V,B,T} <: AbstractSpinor{V,T} <: TensorAlgebra{V,T}
Pair of values with V::Manifold
, basis B::Submanifold
, pseudoscalar of T::Type
.
Grassmann.Spinor
β MethodSpinor{V,T} <: AbstractSpinor{V,T} <: TensorAlgebra{V,T}
Spinor (even
grade) type with pseudoscalar V::Manifold
and scalar field T::Type
.
AbstractLattices.:β§
β Methodβ§(Ο::TensorAlgebra,Ξ·::TensorAlgebra)
Exterior product as defined by the anti-symmetric quotient Ξβ‘β/~
AbstractLattices.:β¨
β Methodβ¨(Ο::TensorAlgebra,Ξ·::TensorAlgebra)
Regressive product as defined by the DeMorgan's law: β¨(Ο...) = ββ»ΒΉ(β§(β.(Ο)...))
AbstractTensors.:β
β Functionβ(Ο::TensorAlgebra,Ξ·::TensorAlgebra)
Reversed geometric product: ΟβΞ· = (~Ο)*Ξ·
AbstractTensors.:β
β Functionβ(Ο::TensorAlgebra,Ξ·::TensorAlgebra)
General sandwich product: ΟβΞ· = reverse(Ξ·)βΟβinvolute(Ξ·)
For normalized even grade Ξ· it is ΟβΞ· = (~Ξ·)βΟβΞ·
AbstractTensors.:β
β Methodβ(Ο::TensorAlgebra,Ξ·::TensorAlgebra)
Symmetrization projection: β(Ο...) = β(β(Ο.(Ο)...))/factorial(length(Ο))
AbstractTensors.:β
β Methodβ (Ο::TensorAlgebra,Ξ·::TensorAlgebra)
Anti-symmetrization projection: β (Ο...) = β(β(ΟΟ.(Ο)...))/factorial(length(Ο))
AbstractTensors.:β
β Method*(Ο::TensorAlgebra,Ξ·::TensorAlgebra)
Geometric algebraic product: ΟβΞ· = (-1)α΅det(Οβ©Ξ·)β(Ξ(ΟβΞ·)βͺL(ΟβΞ·))
AbstractTensors.contraction
β Methodcontraction(Ο::TensorAlgebra,Ξ·::TensorAlgebra)
Interior (right) contraction product: Οβ Ξ· = Οβ¨βΞ·
Base.:&
β Functionβ¨(Ο::TensorAlgebra,Ξ·::TensorAlgebra)
Regressive product as defined by the DeMorgan's law: β¨(Ο...) = ββ»ΒΉ(β§(β.(Ο)...))
Base.:>>>
β Function>>>(Ο::TensorAlgebra,Ξ·::TensorAlgebra)
Traditional sandwich product: Ο>>>Ξ· = ΟβΞ·βclifford(Ο)
For normalized even grade Ξ· it is Ο>>>Ξ· = ΟβΞ·β(~Ο)
Grassmann.betti
β Methodbetti(::TensorAlgebra)
Compute the Betti numbers.
Grassmann.cayley
β Functioncayley(V,op=*)
Compute the cayley
table with op(a,b)
for each Submanifold
basis of V
.
Grassmann.compact
β Functioncompactio(::Bool)
Toggles compact numbers for extended Grassmann
elements (enabled by default)
LinearAlgebra.cross
β Functioncross(Ο::TensorAlgebra,Ξ·::TensorAlgebra)
Cross product: ΟΓΞ· = β(Οβ§Ξ·)
LinearAlgebra.dot
β Functiondot(Ο::TensorAlgebra,Ξ·::TensorAlgebra)
Interior (right) contraction product: Οβ Ξ· = Οβ¨βΞ·
AbstractTensors.complementleft
β Functioncomplementleft(::TensorAlgebra)
Euclidean metric variant Grassmann left complement.
AbstractTensors.complementlefthodge
β Functioncomplementlefthodge(Ο::TensorAlgebra)
Grassmann-Hodge left complement: β'Ο = Iβ'Ο
AbstractTensors.complementright
β Functioncomplementright(::TensorAlgebra)
Euclidean metric variant of Grassmann right complement.
AbstractTensors.complementrighthodge
β Functioncomplementrighthodge(Ο::TensorAlgebra)
Grassmann-Hodge right complement: βΟ = ΟβI
Leibniz.bit2int
β Methodbit2int(b::BitVector) -> UInt
Takes a BitVector and converts it to a corresponding unsigned integer representation.
Leibniz.digitsfast
β Methoddigitsfast(b,N::Int) -> Values{N+1,Int}
Calculates the digits of a binary number b
up to length N
.
Leibniz.gdimsall
β Methodgdimsall(N) -> Values{N+1,Int}
Returns Values{N+1,Int}
representing binomial coefficients from 0
to N
.
Leibniz.gdimseven
β Methodgdimseven(N) -> Values
Returns Values
representing binomial coefficients for even values from 0
to N
.
Leibniz.gdimsodd
β Methodgdimsodd(N) -> Values
Returns Values
representing binomial coefficients for odd values from 1
to N
.
Leibniz.getbasis
β Methodgetbasis(V::Manifold,v)
Fetch a specific SubManifold{G,V}
element from an optimal SubAlgebra{V}
selection.
Leibniz.indexbits
β Methodindexbits(N,indices) -> BitVector
Converts a list of indices
into a BitVector
of length N
, used to create an array where only the specified indices
are set to true
.
Leibniz.indices
β Methodindices(b::UInt) -> Vector
indices(b::UInt,N::UInt) -> Vector
Computes the indices at which a binary number b
has bits equal to 1. The N
argument (optional) specifies the length of the binary representation.
Leibniz.intlog
β Methodintlog(M::Integer) -> Int
This function computes the integer 2-logarithm of an integer.
Leibniz.Ο
β MethodΟ(::TensorAlgebra)
Compute the Euler characteristic Ο = ββ(-1)α΅bβ.