Bibliothèque standard de fonctions natives
Bibliothèque standard de fonctions natives
Aseba fournit une bibliothèque standard de fonctions natives. Les micro-contrôleurs devraient normalement1 fournir cette bibliothèque. Dans la version 1.1 d'Aseba, les fonctions suivantes sont disponibles2:
- math.copy(A,B)
- Copie le tableau $B$ dans le tableau $A$, élément par élément: $A_i = B_i$.
- math.fill(A,c)
- Rempli chaque élément du tableau $A$ par la constante $c$: $A_i = c$.
- math.addscalar(A, B, c)
- Effectue l'opération $A_i = B_i + c$ où $c$ est un nombre scalaire.
- math.add(A, B, C)
- Effectue l'opération $A_i = B_i + C_i$ où $A$, $B$ et $C$ sont des tableaux de même taille.
- math.sub(A, B, C)
- Effectue l'opération $A_i = B_i - C_i$ où $A$, $B$ et $C$ sont des tableaux de même taille.
- math.mul(A, B, C)
- Effectue l'opération $A_i = B_i \cdot C_i$ où $A$, $B$ et $C$ sont des tableaux de même taille. Ceci n'est pas le produit scalaire.
- math.div(A, B, C)
- Effectue l'opération $A_i = B_i / C_i$ where $A$, $B$ et $C$ sont des tableaux de même taille. Une erreur sera envoyée en cas de division par zéro.
- math.min(A, B, C)
- Écrit le plus petit élément entre $B$ et $C$ dans $A$ où $A$, $B$ et $C$ sont des tableaux de même taille: $A_i = \mathrm{min}(B_i, C_i)$.
- math.max(A, B, C)
- Écrit le plus grand élement entre $B$ et $C$ dans $A$ où $A$, $B$ et $C$ sont des tableaux de même taille: $A_i = \mathrm{max}(B_i, C_i)$.
- math.dot(r, A, B, n)
- Effectue le produit scalaire entre deux tableaux $A$ et $B$ de même taille: $r = \frac{\sum_i(A_i\cdot B_i)}{2^{n}}$
- math.stat(V, min, max, mean)
- Calcule le minimum, le maximum et la moyenne des éléments d'un tableau $V$.
- math.argbounds(A, argmin, argmax)
- Fournit les indices argmin et argmax correspondant au minimum respectivement au maximum des éléments de $A$.
- math.sort(A)
- Trie le tableau $A$ du minimum au maximum, directement dans $A$.
- math.muldiv(A, B, C, D)
- Calcule la multiplication-division en utilisant une précision interne de 32\,bits: $A_i = \frac{B_i\cdot C_i}{D_i}$. Une erreur sera envoyée en cas de division par zéro.
- math.atan2(A, Y, X)
- Calcule $A_i=\arctan\left(\frac{Y_i}{X_i}\right)$ en utilisant le signe de $Y_i$ et $X_i$ pour déterminer le quadrant de sortie, où $A$, $Y$ et $X$ sont des tableaux de même taille. Si $X_i = 0$ et $Y_i = 0$ alors $A_i = 0$..
- math.sin(A, B)
- Calcule $A_i = \sin(B_i)$ où $A$ et $B$ sont deux tableaux de même taille.
- math.cos(A, B)
- Calcule $A_i = \cos(B_i)$ où $A$ et $B$ sont deux tableaux de même taille.
- math.rot2(A, B, angle)
- Rotation du tableau $B$ par l'angle, écrit le résultat dans $A$. $A$ et $B$ Doivent être des tableaux de taille 2
- math.sqrt(A, B)
- Calcule $A_i = \sqrt{B_i}$ où $A$ et $B$ sont deux tableaux de même taille.
- math.rand(v)
- Retourne une valeur aléatoire $v$ de intervalle $-32768:32767$.
Puisqu'un scalaire est considéré comme un tableau de taille une, ces fonctions peuvent être utilisées sur des scalaires:
var theta = 16384
var cos_theta
call math.cos(cos_theta, theta)