freealg-package.RdThe free algebra in R with non-commuting indeterminates. Uses 'disordR' discipline (Hankin, 2022, <doi:10.48550/ARXIV.2210.03856>). To cite the package in publications please use Hankin (2022) <doi:10.48550/ARXIV.2211.04002>.
The DESCRIPTION file:
This package was not yet installed at build time.
Index: This package was not yet installed at build time.
a <- as.freealg("x+xyx")
b <- as.freealg("4x +XyX") # upper-case interpreted as inverse
a+b
#> free algebra element algebraically equal to
#> + XyX + 5x + xyx
stopifnot(a+b == b+a) # should be TRUE
a*b == b*a # FALSE; noncommutative algebra
#> [1] FALSE
as.freealg("1+X+xy")^3
#> free algebra element algebraically equal to
#> + 1 + 3X + 3XX + XXX + Xy + 3xy + 3xyX + xyXX + 3xyxy + xyxyX + xyxyxy + xyy +
#> 3y + yX + yxy
rfalg()
#> free algebra element algebraically equal to
#> + 2aa + 3aabb + 5ab + 6abab + 5c + 7ccca
rfalg()^2
#> free algebra element algebraically equal to
#> + 25aa + 10aab + 5aabb + 15aac + 35ab + 10aba + 4abab + 2ababb + 6abac + 14abb
#> + 5abba + 2abbab + abbabb + 3abbac + 7abbb + 4abbbc + 6abbbcba + 8abbc +
#> 12abbcba + 20abc + 30abcba + 15aca + 6acab + 3acabb + 9acac + 21acb + 12acbc +
#> 18acbcba + 35ba + 14bab + 7babb + 21bac + 49bb + 28bbc + 42bbcba + 20bca +
#> 8bcab + 4bcabb + 12bcac + 28bcb + 30bcbaa + 12bcbaab + 6bcbaabb + 18bcbaac +
#> 42bcbab + 24bcbabc + 36bcbabcba + 16bcbc + 24bcbcba