SFA::SfAExpand
--
expands a SFA expression
SFA::SfAExpand(sfa)
sfa | - | any valid expression in vlist |
The SFA::SfAExpand
function expands, whenever possible, any expression in SFA
.
It is a direct implementation of the Lambda-ring
structure, i.e. symmetric functions are considered as operators over the ring
of polynomials.
Expansion is inductively propagated, thus enabling chains of plethysms.
Alphabets are either formal alphabets (A1, A2
, ...), or real constants
(any float object or any formal variable <> Ai,
or variables (when explicitely so declared), or symmetric functions of
SFA
, or any linear combination of alphabets.
For instance, 3/2*A1 + k*(A2 - s[3](-A1))
is a valid alphabet.
One may declare variables by setting e.g.
SfAVars({{x}, {y}, z1, z2})
.
Here, z1
, z2
, all x
i's, and all y
i's will be held as
variables within alphabets.
Rules used for e.g. power sums symmetric functions are:
p[i](-A) = -p[i](A)
p[i](A B) = p[i](A) p[i](B)
p[i](A+B) = p[i](A)+p[i](B)
p[i](k) = k, k
real constant (<> Ai)
p[i](x) = x^i, x
explicitely declared variable
p[i](Aj) = p[i](Aj), Aj
formal alphabet
p[i](p[j](A)) = p[ij](A)
(plethysm, from previous equations)
>> muEC::SFA::SfAExpand( p[4,2](7+A1) );
7 p[2](A1) + 7 p[4](A1) + p[4, 2](A1) + 49
>> muEC::SFA::SfAExpand( s[2](A1 - 3/2*A2 + k) );
k 3 s[2](A2) 15 s[1, 1](A2) - + s[2](A1) + ---------- + -------------- + k s[1](A1) - 2 8 8 2 3 k s[1](A2) 3 s[1](A1) s[1](A2) k ------------ - ------------------- + -- 2 2 2
>> muEC::SFA::SfAVars( { {x}, {y}, z1 } );
{{x}, {y}, z1}
>> muEC::SFA::SfAExpand( p[3]( q*m[2,1]( x1-k+A2 ) - z1^2+C ) );
2 6 C - q p[9](A2) + q p[6, 3](A2) + k q + k q - z1 - 3 6 k q p[3](A2) - k q p[6](A2) - k q x1 - k q x1 + 3 6 q x1 p[6](A2) + q x1 p[3](A2)
SfAVars
, SYMF::SfEval
, SYMF::SfPlethysm
, SfACollect
MuPAD Combinat, an open source algebraic combinatorics package