RobinHankin / freegroup

The free group in R
0 stars 0 forks source link

subs() functionality #30

Closed RobinHankin closed 1 year ago

RobinHankin commented 2 years ago

In the freealg package, subs() has a nice feature:

> (x <- rfalg())
free algebra element algebraically equal to
+ 4*abcc + 13*b + 2*bbba + 3*cbbc + 1*ccba + 5*cccc
> x %>% subs(a="1+x")
free algebra element algebraically equal to
+ 13*b + 2*bbb + 2*bbbx + 4*bcc + 3*cbbc + 1*ccb + 1*ccbx + 5*cccc + 4*xbcc
> 

But this does not work in the freegroup package:

> (x <- as.free(c("a","aab","c")))
[1] a     a^2.b c    
> x %>% subs(a="1+x")
Error in is_ok_free(words, coeffs) : 
  length(words) == length(coeffs) is not TRUE
> 

and it would be nice if it did.

RobinHankin commented 2 years ago

Actually subs(a="1+x") would not be sensible (the free group is not an algebra) but something like subs(a="abA") might be useful and/or interesting.

RobinHankin commented 2 years ago

Also observe that the internal representation for a freegroup object is a list of integer matrices, symbols like a and b are created by the print method.