subs.Rd
Substitute symbols in a freealg
object for numbers or other
freealg
objects
subs(...)
subsu(S1,S2,r)
Returns a freealg
object.
Function subs()
substitutes variables for freealg
objects
(coerced if necessary) using natural R idiom. Observe that this type
of substitution is sensitive to order:
> subs("ax",a="1+x",x="1+a")
free algebra element algebraically equal to
+ 2 + 3*a + 1*aa
> subs("ax",x="1+a",a="1+x")
free algebra element algebraically equal to
+ 2 + 3*x + 1*xx
Functions subsu()
is a lower-level formal function, not really
intended for the end-user. Function subsu()
takes S1
and
substitutes occurrences of symbol r
with S2
.
No equivalent to mvp::subvec()
is currently implemented.
Function subs()
is one place in the package where the use of
letters
is effectively hard-wired in. Idiom such as
subs("abccc",b="1+3x")
is very nice, but identifies “b” with 2. Note that argument
r
of subsu()
is canonically an integer but a single
character is interpreted as a letter
. See also the note
at freealg.Rd
.
subs("abccc",b="1+3x")
#> free algebra element algebraically equal to
#> + accc + 3axccc
subs("aaaa",a="1+x") # binomial
#> free algebra element algebraically equal to
#> + 1 + 4x + 6xx + 4xxx + xxxx
subs("abA",b=31)
#> free algebra element algebraically equal to
#> + 31
subs("1+a",a="A") # can substitute for an inverse
#> free algebra element algebraically equal to
#> + 1 + A
subs("A",a="1+x") # inverses are not substituted for
#> free algebra element algebraically equal to
#> + A
a <- rfalg()
subs(a,a=a)
#> free algebra element algebraically equal to
#> + 36a + 49bc + 36ca + 168caba + 12cabb + 168cabbc + 72cabca + 96cabcaba +
#> 24cabcabb + 168cabccb + 21cbc + 168cbcba + 7cbcbb + 196cbcbbc + 84cbcbca +
#> 112cbcbcaba + 28cbcbcabb + 196cbcbccb + 9cca + 84ccaba + 96ccababa + 4ccababb +
#> 112ccababbc + 48ccababca + 64ccababcaba + 16ccababcabb + 112ccababccb + 6ccabb
#> + 24ccabbba + ccabbbb + 28ccabbbbc + 12ccabbbca + 16ccabbbcaba + 4ccabbbcabb +
#> 28ccabbbccb + 84ccabbc + 36ccabca + 48ccabcaba + 12ccabcabb + 84ccabccb + 49ccb
#> + 21cccb + 168cccbba + 7cccbbb + 196cccbbbc + 84cccbbca + 112cccbbcaba +
#> 28cccbbcabb + 196cccbbccb
## Sequential substitution works:
subs("abccc",b="1+3x",x="1+d+2e")
#> free algebra element algebraically equal to
#> + 4accc + 3adccc + 6aeccc
subs(rfalg(),a=rfalg())
#> free algebra element algebraically equal to
#> + 2401aacbaacbaacb + 686aacbaacbabca + 2058aacbaacbbb + 1029aacbaacbbca +
#> 1715aacbaacbbccb + 1715aacbaacbc + 686aacbabcaaacb + 196aacbabcaabca +
#> 588aacbabcabb + 294aacbabcabca + 490aacbabcabccb + 490aacbabcac +
#> 2058aacbbbaacb + 588aacbbbabca + 1764aacbbbbb + 882aacbbbbca + 1470aacbbbbccb +
#> 1470aacbbbc + 1029aacbbcaaacb + 294aacbbcaabca + 882aacbbcabb + 441aacbbcabca +
#> 735aacbbcabccb + 735aacbbcac + 1715aacbbccbaacb + 490aacbbccbabca +
#> 1470aacbbccbbb + 735aacbbccbbca + 1225aacbbccbbccb + 1225aacbbccbc + 7aacbc +
#> 1715aacbcaacb + 686aacbcaacbaacb + 196aacbcaacbabca + 588aacbcaacbbb +
#> 294aacbcaacbbca + 490aacbcaacbbccb + 490aacbcaacbc + 490aacbcabca +
#> 196aacbcabcaaacb + 56aacbcabcaabca + 168aacbcabcabb + 84aacbcabcabca +
#> 140aacbcabcabccb + 140aacbcabcac + 1470aacbcbb + 588aacbcbbaacb +
#> 168aacbcbbabca + 504aacbcbbbb + 252aacbcbbbca + 420aacbcbbbccb + 420aacbcbbc +
#> 735aacbcbca + 294aacbcbcaaacb + 84aacbcbcaabca + 252aacbcbcabb + 126aacbcbcabca
#> + 210aacbcbcabccb + 210aacbcbcac + 1225aacbcbccb + 490aacbcbccbaacb +
#> 140aacbcbccbabca + 420aacbcbccbbb + 210aacbcbccbbca + 350aacbcbccbbccb +
#> 350aacbcbccbc + 1225aacbcc + 490aacbccaacb + 140aacbccabca + 420aacbccbb +
#> 210aacbccbca + 350aacbccbccb + 350aacbccc + 686abcaaacbaacb + 196abcaaacbabca +
#> 588abcaaacbbb + 294abcaaacbbca + 490abcaaacbbccb + 490abcaaacbc +
#> 196abcaabcaaacb + 56abcaabcaabca + 168abcaabcabb + 84abcaabcabca +
#> 140abcaabcabccb + 140abcaabcac + 588abcabbaacb + 168abcabbabca + 504abcabbbb +
#> 252abcabbbca + 420abcabbbccb + 420abcabbc + 294abcabcaaacb + 84abcabcaabca +
#> 252abcabcabb + 126abcabcabca + 210abcabcabccb + 210abcabcac + 490abcabccbaacb +
#> 140abcabccbabca + 420abcabccbbb + 210abcabccbbca + 350abcabccbbccb +
#> 350abcabccbc + 2abcac + 490abcacaacb + 196abcacaacbaacb + 56abcacaacbabca +
#> 168abcacaacbbb + 84abcacaacbbca + 140abcacaacbbccb + 140abcacaacbc +
#> 140abcacabca + 56abcacabcaaacb + 16abcacabcaabca + 48abcacabcabb +
#> 24abcacabcabca + 40abcacabcabccb + 40abcacabcac + 420abcacbb + 168abcacbbaacb +
#> 48abcacbbabca + 144abcacbbbb + 72abcacbbbca + 120abcacbbbccb + 120abcacbbc +
#> 210abcacbca + 84abcacbcaaacb + 24abcacbcaabca + 72abcacbcabb + 36abcacbcabca +
#> 60abcacbcabccb + 60abcacbcac + 350abcacbccb + 140abcacbccbaacb +
#> 40abcacbccbabca + 120abcacbccbbb + 60abcacbccbbca + 100abcacbccbbccb +
#> 100abcacbccbc + 350abcacc + 140abcaccaacb + 40abcaccabca + 120abcaccbb +
#> 60abcaccbca + 100abcaccbccb + 100abcaccc + 8b + 2058bbaacbaacb + 588bbaacbabca
#> + 1764bbaacbbb + 882bbaacbbca + 1470bbaacbbccb + 1470bbaacbc + 588bbabcaaacb +
#> 168bbabcaabca + 504bbabcabb + 252bbabcabca + 420bbabcabccb + 420bbabcac +
#> 1764bbbbaacb + 504bbbbabca + 1512bbbbbb + 756bbbbbca + 1260bbbbbccb + 1260bbbbc
#> + 882bbbcaaacb + 252bbbcaabca + 756bbbcabb + 378bbbcabca + 630bbbcabccb +
#> 630bbbcac + 1470bbbccbaacb + 420bbbccbabca + 1260bbbccbbb + 630bbbccbbca +
#> 1050bbbccbbccb + 1050bbbccbc + 6bbc + 1470bbcaacb + 588bbcaacbaacb +
#> 168bbcaacbabca + 504bbcaacbbb + 252bbcaacbbca + 420bbcaacbbccb + 420bbcaacbc +
#> 420bbcabca + 168bbcabcaaacb + 48bbcabcaabca + 144bbcabcabb + 72bbcabcabca +
#> 120bbcabcabccb + 120bbcabcac + 1260bbcbb + 504bbcbbaacb + 144bbcbbabca +
#> 432bbcbbbb + 216bbcbbbca + 360bbcbbbccb + 360bbcbbc + 630bbcbca + 252bbcbcaaacb
#> + 72bbcbcaabca + 216bbcbcabb + 108bbcbcabca + 180bbcbcabccb + 180bbcbcac +
#> 1050bbcbccb + 420bbcbccbaacb + 120bbcbccbabca + 360bbcbccbbb + 180bbcbccbbca +
#> 300bbcbccbbccb + 300bbcbccbc + 1050bbcc + 420bbccaacb + 120bbccabca + 360bbccbb
#> + 180bbccbca + 300bbccbccb + 300bbccc + 1029bcaaacbaacb + 294bcaaacbabca +
#> 882bcaaacbbb + 441bcaaacbbca + 735bcaaacbbccb + 735bcaaacbc + 294bcaabcaaacb +
#> 84bcaabcaabca + 252bcaabcabb + 126bcaabcabca + 210bcaabcabccb + 210bcaabcac +
#> 882bcabbaacb + 252bcabbabca + 756bcabbbb + 378bcabbbca + 630bcabbbccb +
#> 630bcabbc + 441bcabcaaacb + 126bcabcaabca + 378bcabcabb + 189bcabcabca +
#> 315bcabcabccb + 315bcabcac + 735bcabccbaacb + 210bcabccbabca + 630bcabccbbb +
#> 315bcabccbbca + 525bcabccbbccb + 525bcabccbc + 3bcac + 735bcacaacb +
#> 294bcacaacbaacb + 84bcacaacbabca + 252bcacaacbbb + 126bcacaacbbca +
#> 210bcacaacbbccb + 210bcacaacbc + 210bcacabca + 84bcacabcaaacb + 24bcacabcaabca
#> + 72bcacabcabb + 36bcacabcabca + 60bcacabcabccb + 60bcacabcac + 630bcacbb +
#> 252bcacbbaacb + 72bcacbbabca + 216bcacbbbb + 108bcacbbbca + 180bcacbbbccb +
#> 180bcacbbc + 315bcacbca + 126bcacbcaaacb + 36bcacbcaabca + 108bcacbcabb +
#> 54bcacbcabca + 90bcacbcabccb + 90bcacbcac + 525bcacbccb + 210bcacbccbaacb +
#> 60bcacbccbabca + 180bcacbccbbb + 90bcacbccbbca + 150bcacbccbbccb + 150bcacbccbc
#> + 525bcacc + 210bcaccaacb + 60bcaccabca + 180bcaccbb + 90bcaccbca +
#> 150bcaccbccb + 150bcaccc + 1715bccbaacbaacb + 490bccbaacbabca + 1470bccbaacbbb
#> + 735bccbaacbbca + 1225bccbaacbbccb + 1225bccbaacbc + 490bccbabcaaacb +
#> 140bccbabcaabca + 420bccbabcabb + 210bccbabcabca + 350bccbabcabccb +
#> 350bccbabcac + 1470bccbbbaacb + 420bccbbbabca + 1260bccbbbbb + 630bccbbbbca +
#> 1050bccbbbbccb + 1050bccbbbc + 735bccbbcaaacb + 210bccbbcaabca + 630bccbbcabb +
#> 315bccbbcabca + 525bccbbcabccb + 525bccbbcac + 1225bccbbccbaacb +
#> 350bccbbccbabca + 1050bccbbccbbb + 525bccbbccbbca + 875bccbbccbbccb +
#> 875bccbbccbc + 5bccbc + 1225bccbcaacb + 490bccbcaacbaacb + 140bccbcaacbabca +
#> 420bccbcaacbbb + 210bccbcaacbbca + 350bccbcaacbbccb + 350bccbcaacbc +
#> 350bccbcabca + 140bccbcabcaaacb + 40bccbcabcaabca + 120bccbcabcabb +
#> 60bccbcabcabca + 100bccbcabcabccb + 100bccbcabcac + 1050bccbcbb +
#> 420bccbcbbaacb + 120bccbcbbabca + 360bccbcbbbb + 180bccbcbbbca + 300bccbcbbbccb
#> + 300bccbcbbc + 525bccbcbca + 210bccbcbcaaacb + 60bccbcbcaabca + 180bccbcbcabb
#> + 90bccbcbcabca + 150bccbcbcabccb + 150bccbcbcac + 875bccbcbccb +
#> 350bccbcbccbaacb + 100bccbcbccbabca + 300bccbcbccbbb + 150bccbcbccbbca +
#> 250bccbcbccbbccb + 250bccbcbccbc + 875bccbcc + 350bccbccaacb + 100bccbccabca +
#> 300bccbccbb + 150bccbccbca + 250bccbccbccb + 250bccbccc + 4c + 1715caacbaacb +
#> 490caacbabca + 1470caacbbb + 735caacbbca + 1225caacbbccb + 1225caacbc +
#> 490cabcaaacb + 140cabcaabca + 420cabcabb + 210cabcabca + 350cabcabccb +
#> 350cabcac + 6cbb + 1470cbbaacb + 420cbbabca + 1260cbbbb + 630cbbbca +
#> 1050cbbbccb + 1050cbbc + 735cbcaaacb + 210cbcaabca + 630cbcabb + 315cbcabca +
#> 525cbcabccb + 525cbcac + 1225cbccbaacb + 350cbccbabca + 1050cbccbbb +
#> 525cbccbbca + 875cbccbbccb + 875cbccbc + 5cc + 1225ccaacb + 490ccaacbaacb +
#> 140ccaacbabca + 420ccaacbbb + 210ccaacbbca + 350ccaacbbccb + 350ccaacbc +
#> 350ccabca + 140ccabcaaacb + 40ccabcaabca + 120ccabcabb + 60ccabcabca +
#> 100ccabcabccb + 100ccabcac + 1050ccbb + 420ccbbaacb + 120ccbbabca + 360ccbbbb +
#> 180ccbbbca + 300ccbbbccb + 300ccbbc + 525ccbca + 210ccbcaaacb + 60ccbcaabca +
#> 180ccbcabb + 90ccbcabca + 150ccbcabccb + 150ccbcac + 875ccbccb + 350ccbccbaacb
#> + 100ccbccbabca + 300ccbccbbb + 150ccbccbbca + 250ccbccbbccb + 250ccbccbc +
#> 875ccc + 350cccaacb + 100cccabca + 300cccbb + 150cccbca + 250cccbccb + 250cccc