This library is available as
math2 expands the mathematical operations and functions of the standard C/C++ libraries.
The main goals are:
Unter einer Menge M versteht man die Zusammenfassung gewisser wohlunterschiedener Objekte, Elemente genannt, zu einer Einheit.[Papula]
Zur Darstellung von Mengen (in aufzählender Form) bietet sich das "array"- Konstrukt an. Zur Darstellung von Elementen gibt es die Datentypen. In C/C++ kann man von allen Datentypen, auch der selbst definierten, arrays anlegen. Das array-Konstrukt kann also zur Darstellung von Mengen, in aufzählender Form, verwendet werden. Die mathematisch definierte Menge darf jedoch nur aus wohlunterschiedenen Elementen bestehen. D.h. der Programmierer muß diese Eigenschaft der mathematischen Menge sicherstellen, wenn er sie denn benötigt.
Ebenso sind die Operationen auf Mengen (z.B. ist Element von) nicht im Standard C/C++ enthalten.
Mengen in beschreibender Form sind sehr individuell und müssen mittels geeigneten Algorithmen geschrieben werden. Beispiel:
Die Transformationsgleichung für einen 2-achsigen Knickarm Roboter liefert immer beide mögliche Lösungen für die Achskoordinaten um einen Punkt anzufahren. Die gesuchte Lösung beschreibt aber z.B. die Lösungsmenge mit
solution = { (a1,a2) | a1 beliebig, a2 >= 0 }
Übersetzt: Wir suchen nur die Lösung(en), bei der die Winkelposition der 2. Achse positive ist, da sonst der Roboter sich einmal strecken muß um die Armigkeit zu ändern.
Die Template-Klasse fixArray in dieser Library bietet auch einige Operationen auf Mengen an.
Die vordefinierten Grunddatentypen in C/C++ sind:
und deren Verweise (Pointer) auf diese Datentypen. Also void*, char*, short*, ...
Mit dem Schlüsselwort typedef können in der Programmiersprache C/C++ eigene Datentypen definiert werden. Mit dem Schlüsselwort struct können mehrere Datentypen (auch selbst definierte) zu einem Element zusammengefasst werden. Beispiel:
typedef struct unitNumber { double number; //floating point number int unit; //e.g. 0 = Meter, 1 = Grad, ... } UNIT_NUMBER;
In einem array können die Elemente direkt oder über einen Verweis referenziert werden. Beispiel:
int numberArray[8]; //array of integer numbers with 8 elements
float* floatReferenceArray[16]; //array of 16 references (pointers) //to floating point numbers
UNIT_NUMBER uNumbers[4]; //array of numbers with unit
Die Menge der natürlichen Zahlen, N = {0,1,2,3,...}, können auf dem Computer mit Hilfe von standard C "Datentypen" (eingeschränkt) dargestellt werden:
Für die Menge der ganzen Zahlen, Z = {...,-3,-2,-1,0,1,2,3,...}, werden die gleichen Datentypen verwendet (8, 16, 32, 64 bit). Das hoechstwertige Bit wird dabei als Vorzeichen interpretiert. Somit ergibt sich folgender Wertebereich:
Die Menge der rationalen Zahlen, Q = { x | x = p / q } mit p Element Z und q Element Z ohne 0, werden die Datentypen für Fliesskommazahlen verwendet (32, 64 bit):
1.6.3