You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Before we register this package, we should define minimal functionality that may be helpful to others.
Here is a list (kept up to date) of the different features that we are targetting:
Define empty functions for common operators in geometric algebra, meant to be extended by implementations:
geometric product
inner product
outer product
scalar product
commutator product
hodge star
reversion operator
norm
left and right contractions
grade projection
dual operator
Define non-unicode functions for all the operators above (e.g. inner, outer, commutator, ...).
Define core interface functions that may be useful in context of geometric algebra, declaring functions that are not already declared in Base or LinearAlgebra. They can then be used when validating implementations. These functions include:
dim: Dimension of the real space that the AbstractMultivector is embedded within.
grades: Grades of the nonzero k-vector components of an AbstractMultivector.
Base.zero: Return the additive identity.
Base.iszero: Return whether an AbstractMultivector is the additive identity.
Base.one: Return the multiplicative identity.
Base.isone: Return whether an AbstractMultivector is the multiplicative identity.
Base.:(-): Return negation of AbstractMultivectors.
Base.:(==): Return whether two AbstractMultivectors are equal.
Base.isapprox: Return whether two AbstractMultivectors are approximately equal.
Base.getindex(M, k): Return the k-vector component of the AbstractMultivector M.
Document all functions, describing their behavior and semantics.
Define a test harness for implementations to use, based on the functions defined in this package. This testing utility would validate that implementations possess correct behavior with regard to these functions, by validating most algebraic identities.
README documentation describing the intended role of this package, stating our goals for a somewhat official geometric algebra library and describing our decision to let one (or more) implementations come to maturity before committing to any of them in this package.
Before we register this package, we should define minimal functionality that may be helpful to others.
Here is a list (kept up to date) of the different features that we are targetting:
inner,outer,commutator, ...).BaseorLinearAlgebra. They can then be used when validating implementations. These functions include:dim: Dimension of the real space that the AbstractMultivector is embedded within.grades: Grades of the nonzero k-vector components of an AbstractMultivector.Base.zero: Return the additive identity.Base.iszero: Return whether an AbstractMultivector is the additive identity.Base.one: Return the multiplicative identity.Base.isone: Return whether an AbstractMultivector is the multiplicative identity.Base.:(-): Return negation of AbstractMultivectors.Base.:(==): Return whether two AbstractMultivectors are equal.Base.isapprox: Return whether two AbstractMultivectors are approximately equal.Base.getindex(M, k): Return the k-vector component of theAbstractMultivectorM.