19 Stars
Updated Last
1 Year Ago
Started In
June 2019


Bit entanglements for tensor algebra derivations and hypergraphs

Build Status Build status Coverage Status codecov.io Gitter Liberapay patrons

Although intended for compatibility use with the Grassmann.jl package for multivariable differential operators and tensor field operations, Leibniz can be used independently.

Extended dual index printing with full alphanumeric characters #62'

To help provide a commonly shared and readable indexing to the user, some print methods are provided:

julia> Leibniz.printindices(stdout,Leibniz.indices(UInt(2^62-1)),false,"v")

julia> Leibniz.printindices(stdout,Leibniz.indices(UInt(2^62-1)),false,"w")

An application of this is in Grassmann and DirectSum, where dual indexing is used.


Generates the tensor algebra of multivariable symmetric Leibniz differentials and interfaces using Reduce, Grassmann to provide the ∇,Δ vector field operators, enabling mixed-symmetry tensors with arbitrary multivariate Grassmann manifolds.

julia> using Leibniz, Grassmann

julia> V = tangent(ℝ^3,4,3)

julia> V(∇)
∂₁v₁ + ∂₂v₂ + ∂₃v₃

julia> V(∇^2)
0 + 1∂₁∂₁ + 1∂₂∂₂ + 1∂₃∂₃

julia> V(∇^3)
0 + 1∂₁∂₁∂₁v₁ + 1∂₂∂₂∂₂v₂ + 1∂₃∂₃∂₃v₃ + 1∂₂∂₁₂v₁ + 1∂₃∂₁₃v₁ + 1∂₁∂₁₂v₂ + 1∂₃∂₂₃v₂ + 1∂₁∂₁₃v₃ + 1∂₂∂₂₃v₃

julia> V(∇^4)
0.0 + 1∂₁∂₁∂₁∂₁ + 1∂₂∂₂∂₂∂₂ + 1∂₃∂₃∂₃∂₃ + 2∂₁₂∂₁₂ + 2∂₁₃∂₁₃ + 2∂₂₃∂₂₃

julia>^2 == Δ

julia> ∇, Δ
(∂ₖvₖ, ∂ₖ²v)

This is an initial undocumented pre-release registration for testing with other packages.