This is in-development software. Stuff may be broken. This package requires SF 2.4 (or later). After loading the vanilla edition of QF, and the unix or vanilla edition of SF, each QF function may be accessed using the calling sequence QF[functionname](arguments). In order to use the abbreviated formfunctionname(arguments), run the command 'withQF()'. If there is a conflict between the names of one of the package functions and another name in the same session, a warning is printed. To use the abbreviated form for a subset of the procedures in the package (e.g., to avoid conflicts), run the command 'withQF(name1,name2,...)'. In addition to the names e, h, p, s, cl, and e1, p1, h1, e2, h2, p2,.... that are reserved for use by SF, the names q, Q, P, and q1, q2,... play special roles as global variables in the QF package and should not be assigned values by the user. This document provides help texts for each of the functions in QF:

- char2qf - convert spin characters to symmetric functions
- DPar - list partitions with distinct parts
- OPar - list partitions with odd parts
- pfaff - pfaffian for a (possibly skew) Schur Q-function
- qf2char - convert symmetric functions to spin characters
- spin - spin characters of the symmetric group
- super - superfication of symmetric functions
- toddp - convert to the basis of odd power-sums
- toddq - convert to the odd q-basis
- toP - convert to Schur P-functions
- toq - convert to a polynomial in the q-functions
- toQ - convert to Schur Q-functions
- zeeQ - squared norm of (odd) power sums

FUNCTION: char2qf - convert spin characters to symmetric functions CALLING SEQUENCE: char2qf(clf); char2qf(clf,b); PARAMETERS: clf = a signed class function (i.e., a linear combination of the indicator functions cl[mu] for partitions mu) b = (optional) a basis name SYNOPSIS: The spin characteristic is an isometric linear map from signed class functions on a double cover of the symmetric group of degree n onto homogeneous symmetric functions of degree n in the Omega algebra. A class function f is "signed" if f(-w)=-f(w) for all group elements w, where -1 denotes the central element of the extension. Under this map, the irreducible spin character(s) of S_n indexed by lambda correspond to a multiple of the Schur Q-function Q[lambda] (see the help for 'spin'). Signed class functions that are supported only on elements whose symmetric group images have at least one even- length cycle are in the kernel of the spin characteristic. Signed class functions are expressed as linear combinations of terms of the form cl[mu], where mu ranges over partitions. Here, cl[mu] denotes a signed class function that takes the value +/- 1 at elements whose symmetric group image has cycle-type mu, and 0 otherwise. The signs are determined by the convention that the coefficients for the basic spin character are positive. In particular, the coefficient of cl[1,....,1] is the value at the identity element. If clf is any signed class function, char2qf(clf) returns the symmetric function in Omega corresponding to f, expressed in terms of the odd power sums p1,p3,.... If a second argument b is one of the special bases of QF; namely, p, q, Q (or Q[]), or P (or P[]), then the result is expressed in that basis. EXAMPLES: char2qf(cl[5,3,3,1]); yields 2/45*p5*p3^2*p1 char2qf(10*cl[5,1],Q); yields 2*Q[6]-Q[5,1]+Q[3,2,1] SEE ALSO: OPar, qf2char, spin, zeeQ, SF[char2sf], SF[sf2char], SF[zee]

FUNCTION: DPar - list partitions with distinct parts CALLING SEQUENCE: DPar(n); DPar(n,l); DPar(n,k,l); PARAMETERS: n = a nonnegative integer l = (optional) maximum number of parts allowed k = (optional) maximum part size allowed SYNOPSIS: A partition of n is defined to be a non-increasing list of positive integers with sum n. The members of the list are called parts. DPar(n) returns a list consisting of all partitions of n with no repeated parts; i.e., each list is strictly decreasing. DPar(n,l) returns a list of all partitions of n with distinct parts, restricted to those with at most l parts. DPar(n,k,l) returns a list of all partitions of n with distinct parts, restricted to those with at most l parts and all parts <= k. In all cases, the list of partitions is arranged in reverse lex order. EXAMPLES: DPar(6); yields [[6], [5,1], [4,2], [3,2,1]] DPar(8,2); yields [[8], [7,1], [6,2], [5,3]] DPar(10,7,3); yields [[7,3], [7,2,1], [6,4], [6,3,1], [5,4,1], [5,3,2]] SEE ALSO: OPar, SF[Par]

FUNCTION: OPar - list partitions with odd parts CALLING SEQUENCE: OPar(n); OPar(n,l); OPar(n,k,l); PARAMETERS: n = a nonnegative integer l = (optional) maximum number of parts allowed k = (optional) maximum part size allowed SYNOPSIS: A partition of n is defined to be a non-increasing list of positive integers with sum n. The members of the list are called parts. OPar(n) returns a list consisting of all partitions of n in which all of the parts are odd. OPar(n,l) returns a list of all partitions of n with at most l parts, all of which are odd. OPar(n,k,l) returns a list of all partitions of n with at most l parts, all of which are odd and <= k. In all cases, the list of partitions is arranged in reverse lex order. EXAMPLES: OPar(6); yields [[5,1], [3,3], [3,1,1,1], [1,1,1,1,1,1]] OPar(8,4); yields [[7,1], [5,3], [5,1,1,1], [3,3,1,1]]] OPar(11,5,3); yields [[5,5,1], [5,3,3]] SEE ALSO: DPar, SF[Par]

FUNCTION: pfaff - pfaffian for a (possibly skew) Schur Q-function CALLING SEQUENCE: pfaff(lambda); pfaff(lambda,mu); PARAMETERS: lambda,mu = partitions with distinct parts SYNOPSIS: If lambda is a partition with l parts, all distinct, then the Schur Q-function Q[lambda] is expressible as the pfaffian of the skew symmetric matrix whose [i,j] entry is the two-rowed Q-function Q[lambda[i],lambda[j]]. If l is odd, then one should add an extra row and column by setting lambda[l+1]=0. More generally, if mu is a second partition with m parts, all distinct, then the Schur Q-function associated to the "skew shape" lambda/mu is the pfaffian of the skew symmetric matrix [ A B ] [ C 0 ] where A is the above matrix, C=-B^T, and B is the l x m matrix whose [i,j] entry is the one-rowed Q-function Q[lambda[i]-mu[m+1-j]]. If l+m is odd, one adds an extra row and column by setting lambda[l+1]=0. pfaff(lambda) evaluates the pfaffian associated to lambda, leaving the result as a polynomial in one- and two-rowed Q-functions. pfaff(lambda,mu) does the same for the skew shape lambda/mu. EXAMPLES: pfaff([8,4,1]); yields Q[8]*Q[4,1]-Q[4]*Q[8,1]+Q[1]*Q[8,4] pfaff([8,4,3],[3]); yields Q[5]*Q[4,3]-Q[1]*Q[8,3]+Q[8,4] SEE ALSO: DPar, toddq, toq, toP, toQ

FUNCTION: qf2char - convert symmetric functions to spin characters CALLING SEQUENCE: qf2char(f); qf2char(f,b); PARAMETERS: f = a symmetric function in the Omega algebra b = (optional) a basis name SYNOPSIS: The inverse spin characteristic is an isometric linear map from homogeneous symmetric functions of degree n in the Omega algebra to signed class functions on a double cover of the symmetric group of degree n. A class function g is "signed" if g(-w)=-g(w) for all group elements w, where -1 denotes the central element of the extension. The image of the Omega algebra under this map is the space of signed class functions that vanish on all elements whose symmetric group images have one or more cycles of even length. The image of the Schur Q-function Q[lambda] is closely related to the irreducible spin character indexed by lambda (see the help for 'spin'). If f is any symmetric function in the Omega algebra, qf2char(f) returns the corresponding signed class function. Signed class functions are expressed as linear combinations of terms of the form cl[mu], where mu ranges over partitions. Here, cl[mu] denotes a signed class function that takes the value +/- 1 at elements whose symmetric group image has cycle-type mu, and 0 otherwise. The signs are determined by the convention that the coefficients for the basic spin character are positive. In particular, the coefficient of cl[1,....,1] is the value at the identity element. If a second argument b is one of the special bases of QF; namely, p, q, Q (or Q[]), or P (or P[]), then f is assumed to be expressed purely in terms of this basis. EXAMPLES: qf2char(q4*p3*p1); yields cl[3,1,1,1,1,1]+12*cl[3,3,1,1] qf2char(Q[3,1],Q); yields 8*cl[1,1,1,1] - 2*cl[3,1] SEE ALSO: OPar, char2qf, spin, zeeQ, SF[char2sf], SF[sf2char]

FUNCTION: spin - spin characters of the symmetric group CALLING SEQUENCE: spin(lambda); PARAMETERS: lambda = a partition with distinct parts SYNOPSIS: The irreducible spin characters of the symmetric group of degree n are indexed by partitions lambda of n with distinct parts. If n-l is odd (where l is the length of lambda), then there are two distinct characters indexed by lambda, distinguished by the fact that their values at group elements whose symmetric group images have cycle type lambda are negatives of each other. On all other conjugacy classes, the two characters agree. If lambda is a partition of n with distinct parts, spin(lambda) returns (one of) the corresponding spin character(s). The result is expressed as a signed class function (see the help for 'char2qf'). The spin characteristic of spin(lambda) is 2^(-k/2) * Q[lambda], where k = l + modp(n-l,2) and l denotes the length of lambda. EXAMPLES: spin([3,2,1]); yields 4*cl[1,1,1,1,1,1]-cl[3,1,1,1]-2*cl[3,3]+cl[5,1]+3^(1/2)*cl[3,2,1] SEE ALSO: DPar, char2qf, qf2char, zeeQ, SF[char2sf], SF[sf2char]

FUNCTION: super - superfication of symmetric functions CALLING SEQUENCE: super(f); PARAMETERS: f = a symmetric function SYNOPSIS: The superfication map is a homomorphism from the ring of symmetric functions onto the subalgebra Omega. It can be determined by its action on various sets of generators. For example, e.n and h.n both correspond to q.n under this map, and p.n maps to (1-(-1)^n)*p.n. If f is a symmetric function, expressed in terms of bases known to the 'SF' package, then super(f) returns the result of applying this map. The results are expressed in terms of the bases q.i and p.j. If the expression for f involves any of the special bases of QF, such as q, Q (or Q[]), or P (or P[]), then these terms are ignored. This may be a bug, but it is intentional. EXAMPLES: f:=super(s[3,3,1]); yields q3^2*q1-q4*q3-q2*q4*q1+q5*q2 toQ(f); yields Q[5,2]+Q[4,3]+Q[4,2,1] SEE ALSO: toddp, toddq, toP, toQ

FUNCTION: toddp - convert to the basis of odd power-sums CALLING SEQUENCE: toddp(f); toddp(f,b); PARAMETERS: f = a symmetric function in the Omega algebra b = (optional) a basis name SYNOPSIS: If f is any symmetric function in the Omega algebra, toddp(f) will convert f into a polynomial in the odd power-sum symmetric functions p1,p3,p5,..., with the result collected in 'distributed' form with respect to p1,p3,p5,..., and 'normal' applied to the coefficients. If a second argument b is one of the special bases of QF; namely, q, Q (or Q[]), or P (or P[]), then f is assumed to be expressed purely in terms of this basis. If f is an expression involving symmetric functions known to SF but not to QF, use SF[top]. EXAMPLES: toddp(Q[4,2,1],Q); yields 8/45*p1^7-8/9*p3*p1^4+8/5*p5*p1^2-8/9*p3^2*p1 toddp(q5+2*P[4,1]); yields 4/3*p1^2*p3+2/3*p1^5 SEE ALSO: toq, toddq, toP, toQ, SF[top]

FUNCTION: toddq - convert to the odd q-basis CALLING SEQUENCE: toddq(f); toddq(f,b); PARAMETERS: f = a symmetric function in the Omega algebra b = (optional) a basis name SYNOPSIS: If f is any symmetric function in the Omega algebra, toddq(f) will convert f into a polynomial in the generators q1,q3,q5,..., with the result collected in 'distributed' form with respect to q1,q3,q5,..., and 'normal' applied to the coefficients. The generator q.i is the same as the one-rowed Q-function Q[i]. If a second argument b is one of the special bases of QF; namely, p, Q (or Q[]), or P (or P[]), then f is assumed to be expressed purely in terms of this basis. Note that 'toq' is faster, but produces a non-canonical answer. EXAMPLES: toddq(8*q4); yields 8*q3*q1 - q1^4 toddq(12*q6-8*p1*p5); yields 2*q1*q5 - q1^3*q3 + 6*q3^2 toddq(2^7*P[4,2,1],P); yields q1^7-4*q1^4*q3+16*q1^2*q5-16*q1*q3^2 SEE ALSO: toq, toddp, toP, toQ

FUNCTION: toP - convert to Schur P-functions CALLING SEQUENCE: toP(f,<options>); PARAMETERS: f = a symmetric function <options> = zero or more of the following (in any order): (1) a basis name (2) a list of partitions with distinct parts (3) an equation of the form 'nrows=<integer>' SYNOPSIS: If f is any symmetric function in the Omega algebra, toP(f) will convert f into a linear combination of Schur P-functions P[lambda], with 'normal' applied to the coefficients. A number of optional arguments can be passed to the procedure that may increase the efficiency, or (in some cases) modify the behavior of 'toP'. In particular, if one of the arguments passed to 'toP' is ... (1) One of the special bases of QF; namely, p, q, or Q (or Q[]), then the procedure assumes that f is expressed purely in terms of this basis. (2) A list of partitions with distinct parts, then the procedure will assume (without verification) that if the coefficient of P[lambda] is nonzero in f, then lambda appears in this list. If f is "sparse" with respect to Schur P-functions, this can significantly speed up the computation. The procedure 'DPar' can be useful for producing lists of partitions for this purpose. (3) An equation of the form 'nrows=n', where n is a positive integer, then the calculation will be performed in a quotient ring of Omega; namely, the quotient in which there are only n variables. This is equivalent to setting P[mu]=0 whenever mu has more than n parts. EXAMPLES: toP(Q[6,4,2,1],Q); yields 16*P[6,4,2,1] toP(p1^8, nrows=2); yields P[8]+6*P[7,1]+14*P[6,2]+14*P[5,3] SEE ALSO: DPar, pfaff, top, toq, toddp, toddq, toP

FUNCTION: toq - convert to a polynomial in the q-functions CALLING SEQUENCE: toq(f); toq(f,b); PARAMETERS: f = a symmetric function in the Omega algebra b = (optional) a basis name SYNOPSIS: If f is any symmetric function in the Omega algebra, toq(f) will convert f into a polynomial expression in the symmetric functions q1,q2,q3,..., with the result collected in 'distributed' form with respect to q1,q2,q3,..., and 'normal' applied to the coefficients. The generator q.i is the same as the one-rowed Q-function Q[i]. Note that the generators q.i are not algebraically independent, so the expression is not unique. For a canonical expression, use 'toddq' to express the result in terms of q1,q3,q5,... If a second argument b is one of the special bases of QF; namely, p, Q (or Q[]), or P (or P[]), then f is assumed to be expressed purely in terms of this basis. EXAMPLES: toq(8*p5*p1+5*Q[4,2]); yields -6*q4*q1^2+2*q2*q3*q1+10*q6+5*q4*q2 toq(Q[5,2],Q); yields q5*q2-2*q6*q1+2*q7 SEE ALSO: toddp, toddq, toP, toQ

FUNCTION: toQ - convert to Schur Q-functions CALLING SEQUENCE: toQ(f,<options>); PARAMETERS: f = a symmetric function <options> = zero or more of the following (in any order): (1) a basis name (2) a list of partitions with distinct parts (3) an equation of the form 'nrows=<integer>' SYNOPSIS: If f is any symmetric function in the Omega algebra, toQ(f) will convert f into a linear combination of Schur Q-functions Q[lambda], with 'normal' applied to the coefficients. A number of optional arguments can be passed to the procedure that may increase the efficiency, or (in some cases) modify the behavior of 'toQ'. In particular, if one of the arguments passed to 'toQ' is ... (1) One of the special bases of QF; namely, p, q, or P (or P[]), then the procedure assumes that f is expressed purely in terms of this basis. (2) A list of partitions with distinct parts, then the procedure will assume (without verification) that if the coefficient of Q[lambda] is nonzero in f, then lambda appears in this list. If f is "sparse" with respect to Schur Q-functions, this can significantly speed up the computation. The procedure 'DPar' can be useful for producing lists of partitions for this purpose. (3) An equation of the form 'nrows=n', where n is a positive integer, then the calculation will be performed in a quotient ring of Omega; namely, the quotient in which there are only n variables. This is equivalent to setting Q[mu]=0 whenever mu has more than n parts. EXAMPLES: toQ(2*p5*Q[3,2]); yields 2*Q[8,2]-2*Q[7,3]+Q[5,3,2]-Q[4,3,2,1] toQ(Q[2,1]*Q[3,2], Q, DPar(8,5,4)); yields 4*Q[5,3]+2*Q[5,2,1]+2*Q[4,3,1] ##Compute the expansion of a skew Schur Q-function in 3 variables: f:=pfaff([6,4,3,1],[2,1]); toQ(f, nrows=3); yields Q[6,4,1]+Q[6,3,2]+2*Q[5,4,2] SEE ALSO: DPar, pfaff, top, toq, toddp, toddq, toP

FUNCTION: zeeQ - squared norm of (odd) power sums CALLING SEQUENCE: zeeQ(lambda); PARAMETERS: lambda = a partition SYNOPSIS: If lambda is a partition with m[i] parts equal to i, then zeeQ(lambda) is defined to be 0 if any any of m[2], m[4], m[6], ... are positive, and otherwise equal to (1/2)^m[1] * m[1]! * (3/2)^m[3] * m[3]! * ... This is the squared norm of the power-sum symmetric function indexed by lambda, relative to the bilinear form on Omega in which the Schur P-functions and Q-functions are dual bases. The procedure zeeQ is designed to be used in conjunction with SF[scalar] for computing scalar products in the algebra Omega (see the help for 'SF[scalar]'). However, it is important to note that the power sums are (currently) the only symmetric functions understood by both SF and QF, so this requires arguments for SF[scalar] to be expressed in terms of power sums. EXAMPLES: zeeQ([3,3,2]); yields 0 zeeQ([3,3,1]); yields 9/4 scalar(toddp(P[4,2]),toddp(Q[4,2]),zeeQ); yields 1 SEE ALSO: OPar, SF[Par], SF[scalar]

© 2005 John R. Stembridge