Objects in SYMMETRICA
Symmetrica was written in the programming language C. The design of
the routines was in a object oriented way.
In
Symmetrica there is only one type of object. One component of the
object is a tag identifying the specific kind of object. Using this tag the (meta-) routines
(e.g. mult)
switch to the specific routine (e.g. mult_permutation).
The advantage of this method is that we only have one routine for different
kind of objects. So is the routine for the inversion of a matrix independent of the
objects inside the matrix. We only need a routine to invert the entries.
But we have a overhead in the object to store the tag, and a
overhead in runtime to switch to the specific routine. This method is simliar to virtual classes
in C++.
Now a complete listing of available types of objects.
INTEGER
VECTOR of arbitray objects
BITVECTOR 0-1 vector as bit vector
PARTITION
BRUCH fraction of two arbitrary objects
PERMUTATION
SKEWPARTITION
TABLEAUX
POLYNOM
polynomial with arbitrary coefficents
SCHUR Schur function with arbitrary coefficents
MATRIX of arbitray objects
HOMSYM complete symmetric function
SCHUBERT Schubert polynomial
INTEGERVECTOR VECTOR object with INTEGER objects
INTEGERMATRIX MATRIX object with INTEGER objects
SYMCHAR charcter of the symmetric group
WORD
LIST list of arbitray objects
LONGINT
(3/1/99)
BINTREE binary tree of arbitray objects
POWSYM symmetric power sum
ELMSYM elementary symmetric function
KRANZ element of wreath product of symmetric groups
FINITEFIELD element of a finite field
GROUPALGEBRA element of the group algebra of a permutation group
REIHE series
CYCLOTOMIC
MONOPOLY polynomial in one variable
SQ_RADICAL
LAURENT
BARPERM
barred permutations
Send comments or suggestions to:
sym@btm2x2.mat.uni-bayreuth.de
AK 010399