Unary Operations

Base.:-Method
-(M::AbstractMultivector)::AbstractMultivector

Compute the additive inverse of M.

source
Base.invFunction
inv(B::AbstractBlade)::AbstractBlade

Compute the multiplicative inverse of blade B.

source
Base.reverseFunction
reverse(M::AbstractMultivector)::AbstractMultivector

Compute the reverse of M.

source
GeometricAlgebra.dualFunction
dual(M::AbstractMultivector)::AbstractMultivector

Compute the dual of M (relative to the unit pseudoscalar of the geometric algebra that M is an element of).

source
GeometricAlgebra.dualMethod
dual(B::AbstractBlade, C::AbstractBlade)::AbstractBlade

Compute the dual B relative to the subspace represented by C.

Note

dual(B, C) is only defined if

  1. B and C are extended from real vector spaces of the same dimension and

  2. the subspace represented by B is contained in subspace represented by C.

If either of these conditions is not satisfied, an error is thrown.

Note

The volume of C is ignored when computing dual(B, C).

source

Binary Operations

Base.:+Method
+(M::AbstractMultivector, N::AbstractMultivector)::AbstractMultivector

Compute the sum of M and N.

source
Base.:-Method
-(M::AbstractMultivector, N::AbstractMultivector)::AbstractMultivector

Compute the difference between M and N.

source
Base.:*Method
*(M::AbstractMultivector, N::AbstractMultivector)::AbstractMultivector

Compute the geometric product of M and N.

source
Base.:/Method
/(M::AbstractMultivector, N::AbstractMultivector)::AbstractMultivector

Compute the geometric product of M with the inverse of N.

source
GeometricAlgebra.wedgeFunction
wedge(M::AbstractMultivector, N::AbstractMultivector)::AbstractMultivector

wedge(M::AbstractMultivector, N::Vector{<:Real})::AbstractMultivector
wedge(M::Vector{<:Real}, N::AbstractMultivector)::AbstractMultivector
wedge(M::Vector{<:Real}, N::Vector{<:Real})::AbstractMultivector

wedge(M::AbstractMultivector, N::Real)::AbstractMultivector
wedge(M::Real, N::AbstractMultivector)::AbstractMultivector

Compute the exterior product of M and N.

source
Base.:<Function
<(M::AbstractMultivector, N::AbstractMultivector)::AbstractMultivector

Alias for the contract_left() function. Compute the left contraction of M with N.

source
LinearAlgebra.dotFunction
dot(M::AbstractMultivector, N::AbstractMultivector)::AbstractMultivector

Compute the inner product of M and N.

source

Geometric Operations

GeometricAlgebra.projectFunction
project(M::AbstractMultivector, B::AbstractBlade;
        return_blade=true)::Union{AbstractBlade, AbstractFloat,
                                  Vector, Matrix, LinearAlgebra.I}

Compute the projection of M onto the subspace represented by B.

When return_blade is true, the return value is an AbstractBlade. Otherwise, the return value is an AbstractFloat if the result is a scalar, a Vector if the result is a vector, a Matrix if the result is a blade with 1 < grade < dim, and a multiple of LinearAlgebra.I if the result is a pseudoscalar.

source