# Grassmann.jl

*⟨Leibniz-Grassmann-Clifford-Hestenes⟩ differential geometric algebra / multivector simplicial complex*

The Grassmann.jl package provides tools for doing computations based on multi-linear algebra, differential geometry, and spin groups using the extended tensor algebra known as Leibniz-Grassmann-Clifford-Hestenes geometric algebra. Combinatorial products include $\wedge, \vee, \cdot, *, \star, ', \sim, d, \partial$ (which are the exterior, regressive, inner, and geometric products; along with the Hodge star, adjoint, reversal, differential and boundary operators). Kernelized operations are built up from composite sparse tensor products and Hodge duality, with high dimensional support for up to 62 indices using staged caching and precompilation. Code generation enables concise yet highly extensible definitions. DirectSum.jl multivector parametric type polymorphism is based on tangent bundle vector spaces and conformal projective geometry to make the dispatch highly extensible for many applications. Additionally, universal interoperability between different sub-algebras is enabled by AbstractTensors.jl, on which the type system is built.

`TensorAlgebra`

design,`Manifold`

code generation- DirectSum yields
`TensorBundle`

parametric type polymorphism - Approaching ∞ dimensions with
`SparseBasis`

and`ExtendedBasis`

- Interoperability for
`TensorAlgebra{V}`

- Grassmann elements and geometric algebra Λ(V)
- Null-basis of the projective split
- Differential forms and tangent algebra
- Symbolic coefficients by declaring algebra
- Grassmann.jl Library
- References

This `Grassmann`

package for the Julia language was created by github.com/chakravala for mathematics and computer algebra research with differential geometric algebras. These projects and repositories were started entirely independently and are available as free software to help spread the ideas to a wider audience. Please consider donating to show your thanks and appreciation to this project at liberapay, GitHub Sponsors, Patreon, Tidelift, Bandcamp or contribute (documentation, tests, examples) in the repositories.