The basic structure of an element of the free group is a two-row
matrix. The top row is the symbols (1=a, 2=b, 3=c, etc) and the bottom
row is the corresponding power. Thus \(a^2ba^{-1}\) would be
> rbind(c(1,2,1),c(2,1,-1))
[,1] [,2] [,3]
[1,] 1 2 1
[2,] 2 1 -1
>
Function free()
needs either a two-row matrix or a list of
two-row matrices. It is the only place in the package that sets the
class of an objet to free
. Function as.free()
is a bit
more user-friendly and tries a bit harder to do the Right Thing.
The package uses setOldClass("free")
for the dot
methods.