// Koerper.cpp: Implementierung der Klasse Koerper. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "koerper.h" #include #include #include ////////////////////////////////////////////////////////////////////// // Konstruktion/Destruktion ////////////////////////////////////////////////////////////////////// koerper::koerper(unsigned short n, unsigned short epsilon) /* n gibt die Anzahl der Elemente des Körpers an, epsilon = 0/1 */ { koerper::anzahl = n; koerper::epsilon = epsilon; koerper::initAdd(); koerper::initMult(); koerper::initInv(); } koerper::~koerper() { free(additionstafel); free(multiplikationstafel); free(inverses); } int koerper::getIndex(zahl z1, zahl z2) /* gibt den Index in der Multiplikations- bzw. Additionstabelle zurück */ { return(z1.x*anzahl*anzahl*anzahl + z1.eps*anzahl*anzahl + z2.x*anzahl + z2.eps); } void koerper::initAdd() { /* erstellt die Additionstabelle */ /* Matrix zahl x zahl = zahl */ unsigned short i; unsigned short j; unsigned short k; unsigned short l; additionstafel = (zahl*)malloc(sizeof(zahl)*anzahl*anzahl*anzahl*anzahl); zahl z1; zahl z2; int index; for (i=0; ix >= anzahl)) //||(a->x<0)) da unsigned gibt es kein < 0 a->x = a->x % anzahl; if ((a->eps >= anzahl)) //||(a->eps <0))da unsigned gibt es kein < 0 a->eps = a->eps % anzahl; }