# Librería estándar de funciones nativas

Aseba cuenta con una librería estándar de funciones nativas. Los objetivos, normalmente1 incorporan esta librería. Si el firmware de tu dispositivo es portador de una versión de Aseba desactualizada, es posible que no estén disponibles todas las funciones. Las funciones disponibles en Aseba versión 1.1 son2:

`math.copy(A,B)`
  Copia el vector en el vector , elemento por elemento: .
`math.fill(A,c)`
  Llena cada posición de un vector con una constante : .
`math.addscalar(A, B, c)`
  Calcula donde es un escalar.
`math.add(A, B, C)`
  Calcula donde , y son tres vectores del mismo tamaño.
`math.sub(A, B, C)`
  Calcula donde , y son tres vectores del mismo tamaño.
`math.mul(A, B, C)`
  Calcula donde , y son tres vectores del mismo tamaño. Tenga en cuenta que no se trata de un producto escalar.
`math.div(A, B, C)`
  Calcula donde , y son tres vectores del mismo tamaño. Ocurrirá una excepción si se intenta dividir por cero.
`math.min(A, B, C)`
  Escribe en el menor valor entre cada elemento de y donde , y son tres vectores del mismo tamaño: .
`math.max(A, B, C)`
  Escribe en el mayor valor entre cada elemento de y donde , y son tres vectores del mismo tamaño: .
`math.dot(r, A, B, n)`
  Calcula el producto escalar entre dos vectores del mismo tamaño and :
`math.stat(V, min, max, mean)`
  Calcula la media y los valores máximo y mínimo del vector .
`math.argbounds(A, argmin, argmax)`
  Obtiene los índices argmin y argmax que corresponden a los valores mínimo y máximo de , respectivamente.
`math.sort(A)`
  Ordena el vector .
`math.muldiv(A, B, C, D)`
  Computa una multiplicación-división usando una presición interna de 32\,bits: . Ocurrirá una excepción si se intenta dividir por cero.
`math.atan2(A, Y, X)`
  Calcula usando los signos de y para determinar el cuadrante de la respuesta., donde , y son tres vectores del mismo tamaño. Tenga en cuenta que y produce .
`math.sin(A, B)`
  Calcula donde y son dos vectores del mismo tamaño.
`math.cos(A, B)`
  Calcula donde y son dos vectores del mismo tamaño.
`math.rot2(A, B, angle)`
  Rota el vector un ángulo angle, escribe el resultado en . Tenga en cuenta que y son vectores de dos elementos cada uno (tamaño =2 ).
`math.sqrt(A, B)`
  Calcula donde y son dos vectores del mismo tamaño.
`math.nzseq(a, B, m)`
  Escribe en el índice medio de la mayor secuencia de elementos diferentes que cero que se encuentran en . El resultado será si no se encuentran o si el tamaño de la secuencia es menor que .
`math.rand(v)`
  Genera un valor aleatorio entre .