[Previous] [Next] [Contents]

## `SFA::SfAExpand` -- expands a SFA expression

#### Call(s)

`SFA::SfAExpand(sfa)`

#### Parameters

`sfa` | - | any valid expression in `vlist`

#### Introduction

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)

where i and j are positive integers. Equivalent rules for the other bases are also implemented.

#### Example 1

    >> 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)

#### Related Functions

`SfAVars`, `SYMF::SfEval`, `SYMF::SfPlethysm`, `SfACollect`

[Previous] [Next] [Contents]

MuPAD Combinat, an open source algebraic combinatorics package