Skip to content

Desired functionalities before registration #1

@serenity4

Description

@serenity4

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions