FUNCTION: SfAddBasis - addition of a new basis
CALLING SEQUENCE:
- SfAddBasis(b)
- SfAddBasis(b, scal)
- SfAddBasis(b, scal, leadcoeff)
- SYMF[SfAddBasis](b)
- SYMF[SfAddBasis](b, scal)
- SYMF[SfAddBasis](b, scal, leadcoeff)
-
PARAMETERS:
- b = any name
- scal, leadcoeff = any procedures accepting a partition as input
SYNOPSIS:
- The function part -> scal(part) choosen by the user defines a scalar
product <,> on symmetric functions for which power sums are orthogonal,
and such that <p[part], p[part]> = scal(part). The usual scalar product
SfScalar corresponds to scal(part) = SfZee(part).
- There exists a unique basis b[] of the linear space of symmetric
functions that is orthogonal and satisfies: b[part] = leadcoeff(part)*
m[part] + combination of m[mu], mu<part (with respect to the total order
on partitions listed with the ListPart function).
- By default, the leading coefficient is set equal to 1, i.e. is the
function which returns 1 whatever is its argument: proc(part) 1 end.
- The new basis b is added to the list of bases and will be recognized in
any expression; a new procedure Tob is available, with the same syntax
as for instance Tom, Tos, and is devoted to express any symmetric
function in the b-basis.
- It has also the effect to define a Isb function that tests whether an
expression is an element of the b-basis.
- The result is the current set of known bases.
- An error is produced if 'b' is the name of a previously defined basis.
- Whenever there is a conflict between the function name SfAddBasis and
another name used in the same session, use the long form
SYMF['SfAddBasis'].
EXAMPLES:
> with(SYMF):
> NewZee:=proc(part) SfZee(part, 'q', 't') end:
> SfAddBasis(Mac, NewZee); # Macdonald polynomials, up to constants
{p, s, e, h, m, c, Mac}
> map(factor, Tom(Mac[2]*s[2,1], 'collect'));
(2 t q + t - q - 2) m[3, 2] (2 t q + t - q - 2) m[3, 1, 1]
m[4, 1] + --------------------------- + 2 ------------------------------
t q - 1 t q - 1
(3 t q + 2 t - 2 q - 3) m[2, 2, 1]
+ 2 ----------------------------------
t q - 1
(9 t + 11 t q - 9 q - 11) m[2, 1, 1, 1]
+ ---------------------------------------
t q - 1
(- 1 + t) (q + 1) m[1, 1, 1, 1, 1]
+ 20 ----------------------------------
t q - 1
> map(factor, ToMac(Mac[2]*s[1], 'collect'));
2
(q + 1) (q t - 1) (- 1 + q) Mac[2, 1]
Mac[3] + --------------------------------------
2
(q t - 1) (t q - 1)
> map(factor, SfMat(3, 'Mac', 'm'));
[ 2 2 ]
[ (q + 1) (q + q + 1) (- 1 + t) ]
[ 1 0 ------------------------------- ]
[ 2 ]
[ (q t - 1) (t q - 1) ]
[ ]
[ (2 t q + t + q + 2) (- 1 + t) ]
[ 0 1 ----------------------------- ]
[ 2 ]
[ q t - 1 ]
[ ]
[ 0 0 1 ]
SEE ALSO: SfDualBasis SfMat SfScalar SfZee