\name{dot-class}
\docType{class}
\alias{dot}
\alias{.}
\alias{dot-class}
\alias{commutator}
\alias{jacobi}
\alias{dot_error}
\alias{[,dot-method}
\alias{[,dot,clifford,ANY,ANY-method}
\alias{[,dot,clifford,ANY-method}
\title{Class \dQuote{dot}}
\description{

  The dot object is defined so that idiom like \code{.[x,y]} returns the
  commutator, that is, \code{(x*y-y*x)/2}.  The factor of 2 ensures that
  \code{.[x,y] == x \%X\% y}.

  The dot object is generated by running script \code{inst/dot.Rmd},
  which includes some further discussion and technical documentation,
  and creates file \code{dot.rda} which resides in the \code{data/}
  directory.

}
\usage{
\S4method{[}{dot,clifford,ANY}(x, i, j)
\S4method{[}{dot,clifford,ANY,ANY}(x, i, j, drop)
}
\arguments{
  \item{x}{An object of class \code{dot} (typically the pre-built object \code{.})}
  \item{i, j}{Elements to commute}
  \item{drop}{Logical; passed to \code{drop()} in the default method}
}
\value{
  Always returns an object of the same class as \code{xy}.
}
\author{Robin K. S. Hankin}
\examples{
x <- rcliff()
y <- rcliff()
z <- rcliff()

.[x,.[y,z]] + .[y,.[z,x]] + .[z,.[x,y]]  # Jacobi identity


}
