subs.RdSubstitute 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
#> + 25acccc + 40accccc + 16acccccc + 6b + 30bcc + 24bccc + c + 30cbaccc +
#> 24cbacccc + 7cbb + 18cbbc + 35cbbcc + 28cbbccc + 20cbcacc + 16cbcaccc + 12cbcb
#> + 9cbcbacc + 21cbcbbc + 6cbcbcac + 5cbcc + 6cbccbac + 14cbccbb + 4cbccbca +
#> 5ccc + 4cccc
## 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
#> + aacbaacbaacb + 4aacbaacbab + 2aacbaacbbaab + 3aacbaacbbbcb + 11aacbaacbc +
#> 7aacbaacbca + 4aacbabaacb + 16aacbabab + 8aacbabbaab + 12aacbabbbcb + 44aacbabc
#> + 28aacbabca + 2aacbbaabaacb + 8aacbbaabab + 4aacbbaabbaab + 6aacbbaabbbcb +
#> 22aacbbaabc + 14aacbbaabca + 3aacbbbcbaacb + 12aacbbbcbab + 6aacbbbcbbaab +
#> 9aacbbbcbbbcb + 33aacbbbcbc + 21aacbbbcbca + 3aacbbcaacb + 12aacbbcab +
#> 6aacbbcbaab + 9aacbbcbbcb + 33aacbbcc + 21aacbbcca + 7aacbcaaacb + 28aacbcaab +
#> 11aacbcaacb + 44aacbcab + 14aacbcabaab + 21aacbcabbcb + 77aacbcac + 49aacbcaca
#> + 22aacbcbaab + 33aacbcbbcb + 121aacbcc + 77aacbcca + 4abaacbaacb + 16abaacbab
#> + 8abaacbbaab + 12abaacbbbcb + 44abaacbc + 28abaacbca + 16ababaacb + 64ababab +
#> 32ababbaab + 48ababbbcb + 176ababc + 112ababca + 8abbaabaacb + 32abbaabab +
#> 16abbaabbaab + 24abbaabbbcb + 88abbaabc + 56abbaabca + 12abbbcbaacb +
#> 48abbbcbab + 24abbbcbbaab + 36abbbcbbbcb + 132abbbcbc + 84abbbcbca + 12abbcaacb
#> + 48abbcab + 24abbcbaab + 36abbcbbcb + 132abbcc + 84abbcca + 28abcaaacb +
#> 112abcaab + 44abcaacb + 176abcab + 56abcabaab + 84abcabbcb + 308abcac +
#> 196abcaca + 88abcbaab + 132abcbbcb + 484abcc + 308abcca + 2baabaacbaacb +
#> 8baabaacbab + 4baabaacbbaab + 6baabaacbbbcb + 22baabaacbc + 14baabaacbca +
#> 8baababaacb + 32baababab + 16baababbaab + 24baababbbcb + 88baababc + 56baababca
#> + 4baabbaabaacb + 16baabbaabab + 8baabbaabbaab + 12baabbaabbbcb + 44baabbaabc +
#> 28baabbaabca + 6baabbbcbaacb + 24baabbbcbab + 12baabbbcbbaab + 18baabbbcbbbcb +
#> 66baabbbcbc + 42baabbbcbca + 6baabbcaacb + 24baabbcab + 12baabbcbaab +
#> 18baabbcbbcb + 66baabbcc + 42baabbcca + 14baabcaaacb + 56baabcaab + 22baabcaacb
#> + 88baabcab + 28baabcabaab + 42baabcabbcb + 154baabcac + 98baabcaca +
#> 44baabcbaab + 66baabcbbcb + 242baabcc + 154baabcca + 7bb + 3bbcbaacbaacb +
#> 12bbcbaacbab + 6bbcbaacbbaab + 9bbcbaacbbbcb + 33bbcbaacbc + 21bbcbaacbca +
#> 12bbcbabaacb + 48bbcbabab + 24bbcbabbaab + 36bbcbabbbcb + 132bbcbabc +
#> 84bbcbabca + 6bbcbbaabaacb + 24bbcbbaabab + 12bbcbbaabbaab + 18bbcbbaabbbcb +
#> 66bbcbbaabc + 42bbcbbaabca + 9bbcbbbcbaacb + 36bbcbbbcbab + 18bbcbbbcbbaab +
#> 27bbcbbbcbbbcb + 99bbcbbbcbc + 63bbcbbbcbca + 9bbcbbcaacb + 36bbcbbcab +
#> 18bbcbbcbaab + 27bbcbbcbbcb + 99bbcbbcc + 63bbcbbcca + 21bbcbcaaacb +
#> 84bbcbcaab + 33bbcbcaacb + 132bbcbcab + 42bbcbcabaab + 63bbcbcabbcb +
#> 231bbcbcac + 147bbcbcaca + 66bbcbcbaab + 99bbcbcbbcb + 363bbcbcc + 231bbcbcca +
#> 4bcaacb + 16bcab + 8bcbaab + 12bcbbcb + 44bcc + 28bcca + 7bccb + 6c +
#> 7caaacbaacb + 28caaacbab + 14caaacbbaab + 21caaacbbbcb + 77caaacbc + 49caaacbca
#> + 28caabaacb + 112caabab + 56caabbaab + 84caabbbcb + 308caabc + 196caabca +
#> 11caacbaacb + 44caacbab + 22caacbbaab + 33caacbbbcb + 121caacbc + 77caacbca +
#> 14cabaabaacb + 56cabaabab + 28cabaabbaab + 42cabaabbbcb + 154cabaabc +
#> 98cabaabca + 44cabaacb + 176cabab + 88cabbaab + 132cabbbcb + 21cabbcbaacb +
#> 84cabbcbab + 42cabbcbbaab + 63cabbcbbbcb + 231cabbcbc + 147cabbcbca + 484cabc +
#> 308cabca + 21cabcaacb + 84cabcab + 42cabcbaab + 63cabcbbcb + 231cabcc +
#> 147cabcca + 49cacaaacb + 196cacaab + 77cacaacb + 308cacab + 98cacabaab +
#> 147cacabbcb + 539cacac + 343cacaca + 154cacbaab + 231cacbbcb + 847cacc +
#> 539cacca + 22cbaabaacb + 88cbaabab + 44cbaabbaab + 66cbaabbbcb + 242cbaabc +
#> 154cbaabca + 33cbbcbaacb + 132cbbcbab + 66cbbcbbaab + 99cbbcbbbcb + 363cbbcbc +
#> 231cbbcbca + 33cbcaacb + 132cbcab + 66cbcbaab + 99cbcbbcb + 363cbcc + 231cbcca
#> + 77ccaaacb + 308ccaab + 121ccaacb + 484ccab + 154ccabaab + 231ccabbcb +
#> 847ccac + 539ccaca + 242ccbaab + 363ccbbcb + 1331ccc + 847ccca