# Vorgegebene Funktionen Standard-Bibliothek

Aseba bringt eine Standard-Bibliothek mit, die von Haus aus bereits viele Funktionen enthält. Die meisten Geräte liefern diese Standard-Bibliothek mit.1 Falls die Firmware Ihres Gerätes schon etwas älter ist, unterstützt sie möglicherweise noch nicht neu hinzugekommene Funktionen. Seit Aseba 1.1 sind folgende Funktionen verfügbar2:

`math.copy(A,B)`
  Kopiert eines nach dem anderen jedes Element des Vektors in den Vektor : .
`math.fill(A,c)`
  Schreibt die Konstante in jedes Element des Vektors : .
`math.addscalar(A, B, c)`
  Berechne , wobei ein Skalar ist.
`math.add(A, B, C)`
  Berechne , wobei, und drei gleichgrosse Vektoren sind.
`math.sub(A, B, C)`
  Berechne , wobei , und drei gleichgrosse Vektoren sind.
`math.mul(A, B, C)`
  Berechne , wobei , und gleichgrosse Vektoren sind. Beachte: Dies ist kein Skalarprodukt!
`math.div(A, B, C)`
  Berechne , wobei , und drei gleichgrosse Vektoren sind. Eine Division durch Null führt zu einer Ausnahmesituation.
`math.min(A, B, C)`
  Speichere für jedes Element das Minimum der Vektoren und in , wobei , und drei Vektoren gleicher Grösse sind: .
`math.max(A, B, C)`
  Speichere für jedes Element das Maximum der Vektoren und in , wobei , and drei Vektoren gleicher Grösse sind: .
`math.dot(r, A, B, n)`
  Berechne das Skalarprodukt zweier gleichgrosser Vektoren und :
`math.stat(V, min, max, mean)`
  Berechne das Maximum, den Mittelwert und das Minimum des Vektors .
`math.argbounds(A, argmin, argmax)`
  Bestimme die Indizes argmin und argmax, die dem kleinsten und dem grössten Wert aus entsprechen.
`math.sort(A)`
  Sortiere den Vektor in situ.
`math.muldiv(A, B, C, D)`
  Berechne die Multiplikations-Division mit 32-bit-Genauigkeit. . Eine Division durch Null führt zu einer Ausnahmesituation.
`math.atan2(A, Y, X)`
  Berechne , wobei die Zeichen von und den Ausgabe-Quandranten festlegen. , und müssen Vektoren gleicher Grösse sein. Beachte, dass und zu dem Ergebnis führen..
`math.sin(A, B)`
  Berechne , wobei und zwei Vektoren gleicher Grösse sind.
`math.cos(A, B)`
  Berechne , wobei und zwei Vektoren gleicher Grösse sind.
`math.rot2(A, B, Winkel)`
  Rotiere den Vektor um Winkel und speichere das Ergebnis in . Beachte: und müssen beide genau 2 Elemente enthalten.
`math.sqrt(A, B)`
  Berechne , wobei und zwei Vektoren gleicher Grösse sind.
`math.nzseq(a, B, m)`
  Speichere in den mittleren Index der längsten Aufeinanderfolge von Zahlen in , die nicht Null sind oder falls es keine solche gibt oder dessen Länge kleiner als ist.
`math.rand(v)`
  Bestimme einen zufälligen Wert aus dem zwischen und .