The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
signature() in the
clifford package## function (p, q = 0)
## {
## if (missing(p)) {
## s <- getOption("signature")
## if (is.null(s)) {
## s <- c(.Machine$integer.max, 0)
## }
## showsig(s)
## class(s) <- "sigobj"
## return(s)
## }
## else {
## s <- c(p, q)
## m <- getOption("maxdim")
## if (!is.null(m)) {
## if (p + q > m) {
## stop("signature requires p+q <= maxdim")
## }
## }
## p <- min(s[1], .Machine$integer.max)
## q <- min(s[2], .Machine$integer.max)
## stopifnot(is_ok_sig(s))
## options(signature = c(p, q))
## showsig(s)
## return(invisible(s))
## }
## }
To cite the clifford package in publications please use
Hankin (2025a). This short document
discusses signature() in the clifford R
package. As an example we might wish to work in \(\operatorname{Cl}(1,2)\):
Thus \(e_1^2=+1\), and \(e_2^2=e_3^2=-1\):
## [1] 1 -1 -1
We might ask what \(e_4^2\) would evaluate to, and this is assumed to be zero as is \(e_i^2\) for \(i\geqslant 4\):
## [1] 0 0
If we wish to set paranoid-level safety measures, we would set option
maxdim to prevent accidentally working with too-large
values of \(i\):
Now we work with a four-dimensional vector space in which \(e_1^2=+1,e_2^2=e_3^2=-1,e_4^2=0\), but now \(e_5\) is undefined:
## [1] 1 -1 -1 0
## Error in is_ok_clifford(terms, coeffs): option maxdim exceeded
The operation of signature() is modelled on the
sol() function in the lorentz package (Hankin 2025b). Thus, if given no arguments we
return the signature:
## [1] 1 2
However, the default value is to use an infinite signature which corresponds to \(e_i^2=1\) for all i$:
## [1] Inf 0
Function signature() returns an object of (trivial)
class sigobj which has a bespoke print method,
print.sigobj(). For technical reasons an infinite signature
is not allowed but is represented internally by a near-infinite integer,
specifically .Machine$integer.max:
## structure(c(2147483647, 0), class = "sigobj")
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.