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

**PARTITION**

**PERMUTATION**

**POLYNOM**polynomial with arbitrary coefficents

**LONGINT**

**BARPERM**barred permutations

symmetrica (at) symmetrica.de