Librerie standard delle funzioni native
Aseba fornisce una libreria standard delle funzioni native. Le piattaforme a microcontrollore utilizzate dovrebbero normalmente 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 funzioni:
-
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
.