Activa las notificaciones para estar al tanto de lo más nuevo en tecnología.

math-js-00

Los lenguajes de programación vienen en muchos colores y sabores, por decirlo de manera coloquial. Muchos incluyen una serie de bibliotecas que le agregan funcionalidad. Otros buscan que dichas bibliotecas sean parte del lenguaje. Otros lenguajes de programación tienen mecanismos para crear todo género de rutinas que a la larga pasan a ser parte de bibliotecas que hacen labores perfectamente definidas. Obviamente la elección de una herramienta para programar dependerá muchas veces de qué poder necesitamos o bien, si podemos hacernos de bibliotecas que nos ahorren el trabajo pesado.

Ahora sale Math.js, una extensión al objeto matemático en Javascript, el cual añade poder a este lenguaje. Por ejemplo,

math.pow(2,3)

calcula 2 al cubo. Pero desde luego no sólo hace esto. Math.js puede manipular números complejos, matemática de precisión grande así como matrices.

Una de las características más importantes de Math.js es que soporta un rango de tipos de datos y, en la medida de lo posible, todas las funciones trabajan con todos los tipos de datos disponibles. Se pueden usar números estándar, números de precisión grande (de precisión arbitraria pues, números complejos y matrices. Se pueden definir unidades para hacer incluso cálculos físicos.

Por ejemplo:

var a = math.complex(2, 3);
var b = math.complex(‘4 – 2i’);

define los números complejos y entonces se puede trabajar con ellos:

math.add(a,b);

Hay también un método “eval” para trabajar con expresiones aritméticas de cualquier tipo sin necesidad de usar funciones especiales. Por ejemplo:

math.eval(‘a+b’);

lo cual hace sumas complejas si a y b son complejos.

Aparte de las operaciones básicas, se pueden usar funciones avanzadas, como math.inv, la cual encuentra la inversa de una matriz. También tiene incorporadas un pequeño número de funciones de probabilidad y estadística.

Hay que decir que el rango de facilidades de Math.js no lo pone en la misma clase que la biblioteca de Python, NumPy, pero claramente va en la dirección correcta. Se puede usar en el navegador o como una biblioteca de Node.js, y tiene la ventaja de trabajar de la misma manera como cliente o servidor. Es de código abierto y cualquiera puede ayudar a extender su funcionamiento.

Quizás el gran problema con Javascript es la velocidad de su procesamiento numérico. Sería interesante ver si Math.js podría ser optimizado con tipos de asm.js. Sin duda esto parece un trabajo enorme pero si se logra, se tendrían velocidades cercanas a las que ofrecen los lenguajes que compilan a código nativo

Referencias:

Math.js

Desde la Red…
Comentarios