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
#> + 3aa + aaca + 7b + 4bcba + 13c
rfalg()^2
#> free algebra element algebraically equal to
#> + abababab + 2ababb + 7ababbb + 3ababbca + 6ababbcba + 9ababc + 2babab + 4bb +
#> 7bbabab + 28bbb + 49bbbb + 21bbbca + 42bbbcba + 63bbc + 6bbca + 12bbcba + 18bc
#> + 3bcaabab + 6bcab + 21bcabb + 9bcabca + 18bcabcba + 27bcac + 6bcbaabab +
#> 12bcbab + 42bcbabb + 18bcbabca + 36bcbabcba + 54bcbac + 9cabab + 18cb + 63cbb +
#> 27cbca + 54cbcba + 81cc