Librerie standard delle funzioni native

Aseba fornisce una libreria standard delle funzioni native. Le piattaforme a microcontrollore utilizzate dovrebbero normalmente1 fornire questa libreria. Se il vostro firmware contiene una vecchia versione della macchina virtuale Aseba, non tutte le funzioni possono essere disponibili. Nelle versioni 1.1 e successive di Aseba sono disponibili le seguenti funzioni2:

math.copy(A,B)
Copia l'array nell'array , elemento per elemento: .
math.fill(A,c)
Assegna a ciascun elemento dell'array la costante : .
math.addscalar(A, B, c)
Calcola dove è uno scalare.
math.add(A, B, C)
Calcola dove , e sono tre arrays della stessa dimensione.
math.sub(A, B, C)
Calcola dove , e sono tre arrays della stessa dimensione.
math.mul(A, B, C)
Calcola dove , e sono tre array della stessa dimensione. Notare che questo non è un prodotto scalare
math.div(A, B, C)
Calcola dove , e sono tre array della stessa dimensione. Viene sollevata una eccezione nel caso in cui uno degli elementi di C contenga zero.
math.min(A, B, C)
Secrive il minimo valore di ciascun elemento di e in dove , e sono tre array della stessa dimensione: .
math.max(A, B, C)
Scrive il massimo di ciascun elemento di e in dove , e sono tre array della stessa dimensione: .
math.dot(r, A, B, n)
Calcola il prodotto scalare tra due arrays della stessa dimensione and :
math.stat(V, min, max, mean)
Calcola il minimo, il massimo e il valore medio dell'array .
math.argbounds(A, argmin, argmax)
Scrive in argmin e argmax l'indice corrispondente rispettivamente al valore minimo e massimo degli elementi dell'array .
math.sort(A)
Ordina l'array .
math.muldiv(A, B, C, D)
Calcola una moltiplicazione-divisione usando una precisione interna di 32\,bit : . Viene sollevata una eccezione in caso di divisione per zero.
math.atan2(A, Y, X)
Calcola utilizzando i segni di e per determinare il quadrante di uscita. , e sono tre array della stessa dimensione. Notare che e produrranno .
math.sin(A, B)
Calcola dove e sono due array della stessa diensione.
math.cos(A, B)
Calcola dove e sono due array della stessa dimensione.
math.rot2(A, B, angle)
Ruota l'array di angle, e scrive il risultato in . Notare che e devono essere entrambi di dimensione 2.
math.sqrt(A, B)
Calcola dove e sono due array della stessa dimensione.
math.nzseq(a, B, m)
scrive in l'indice medio della più lunga sequenza di elementi non nulli di , se non trovato o se la sequenza è di lunghezza minore di elementi.
math.rand(v)
Restituisce un valore casuale nell'intervallo .