´

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

symmetrica (at) symmetrica.de

University of Bayreuth -