signature {clifford} R Documentation

## The signature of the Clifford algebra

### Description

Getting and setting the signature of the Clifford algebra

### Usage

signature(p,q=0)
is_ok_sig(s)
showsig(s)
## S3 method for class 'sigobj'
print(x,...)


### Arguments

 s, p, q Integers, specifying number of positive elements on the diagonal of the quadratic form, with s=c(p,q) x Object of class sigobj ... Further arguments, currently ignored

### Details

The signature functionality is modelled on lorentz::sol() which gets and sets the speed of light.

Clifford algebras require a bilinear form on $$\mathbb{R}^n$$ $$\left\langle\cdot,\cdot\right\rangle$$, usually written

$\left\langle{\mathbf x},{\mathbf x}\right\rangle=x_1^2+x_2^2+\cdots +x_p^2-x_{p+1}^2-\cdots -x_{p+q}^2$

where $$p+q=n$$. With this quadratic form the vector space is denoted $$\mathbb{R}^{p,q}$$ and we say that $$(p,q)$$ is the signature of the bilinear form $$\left\langle\cdot,\cdot\right\rangle$$. This gives rise to the Clifford algebra $$C_{p,q}$$.

If the signature is $$(p,q)$$, then we have

$e_i e_i = +1\, (\mbox{if } 1\leq i\leq p), -1\, (\mbox{if } p+1\leq i\leq p+q), 0\, (\mbox{if } i>p+q).$

Note that $$(p,0)$$ corresponds to a positive-semidefinite quadratic form in which $$e_ie_i=+1$$ for all $$i\leq p$$ and $$e_ie_i=0$$ for all $$i > p$$. Similarly, $$(0,q)$$ corresponds to a negative-semidefinite quadratic form in which $$e_ie_i=-1$$ for all $$i\leq q$$ and $$e_ie_i=0$$ for all $$i > q$$.

Package idiom for a strictly positive-definite quadratic form would be to specify infinite $$p$$ [in which case $$q$$ is irrelevant] and for a strictly negative-definite quadratic form we would need $$p=0,q=\infty$$.

If we specify $$e_ie_i=0$$ for all $$i$$, then the operation reduces to the wedge product of a Grassman algebra. Package idiom for this is to set $$p=q=0$$, but this is not recommended: use the stokes package for Grassman algebras, which is much more efficient and uses nicer idiom.

Function signature(p,q) returns the signature silently; but setting option show_signature to TRUE makes signature() have the side-effect of calling showsig(), which changes the default prompt to display the signature, much like showSOL in the lorentz package. There is special dispensation for “infinite” $$p$$ or $$q$$.

Calling signature() [that is, with no arguments] returns an object of class sigobj with elements corresponding to p and q. The sigobj class ensures that a near-infinite integer such as .Machine\$integer.max will be printed as “Inf” rather than, for example, “2147483647”.

Function is_ok_sig() is a helper function that checks for a proper signature.

### Author(s)

Robin K. S. Hankin

### Examples



signature()

e(1)^2
e(2)^2

signature(1)
e(1)^2
e(2)^2   # note sign

signature(3,4)
sapply(1:10,function(i){drop(e(i)^2)})

signature(Inf)   # restore default