antivector: Antivectors or pseudovectors

antivectorR Documentation

Antivectors or pseudovectors

Description

\loadmathjax

Antivectors or pseudovectors

Usage

antivector(v, n = length(v))
as.antivector(v)
is.antivector(C, include.pseudoscalar=FALSE)

Arguments

v

Numeric vector

n

Integer specifying dimensionality of underlying vector space

C

Clifford object

include.pseudoscalar

Boolean: should the pseudoscalar be considered an antivector?

Details

An antivector is an \mjseqnn-dimensional Clifford object, all of whose terms are of grade \mjseqnn-1. An antivector has \mjseqnn degrees of freedom. Function antivector(v,n) interprets v[i] as the coefficient of \mjeqne_1e_2... e_i-1e_i+1... e_nomitted.

Function as.antivector() is a convenience wrapper, coercing its argument to an antivector of minimal dimension (zero entries are interpreted consistently).

The pseudoscalar is a peculiar edge case. Consider:

  A <- clifford(list(c(1,2,3)))
  B <- A + clifford(list(c(1,2,4)))

> is.antivector(A)
[1] FALSE
> is.antivector(B)
[1] TRUE
> is.antivector(A,include.pseudoscalar=TRUE)
[1] TRUE
> is.antivector(B,include.pseudoscalar=TRUE)
[1] TRUE

One could argue that A should be an antivector as it is a term in B, which is definitely an antivector. Use include.pseudoscalar=TRUE to ensure consistency in this case.

Compare as.1vector(), which returns a clifford object of grade 1.

Note

An antivector is always a blade.

Author(s)

Robin K. S. Hankin

References

Wikipedia contributors. (2018, July 20). “Antivector”. In Wikipedia, The Free Encyclopedia. Retrieved 19:06, January 27, 2020, from https://en.wikipedia.org/w/index.php?title=Antivector&oldid=851094060

See Also

as.1vector

Examples

antivector(1:5)

as.1vector(c(1,1,2)) %X% as.1vector(c(3,2,2))
c(1*2-2*2, 2*3-1*2, 1*2-1*3)  # note sign of e_13


clifford documentation built on Aug. 14, 2022, 1:05 a.m.