¿Cuál es la mejor biblioteca matemática para hacer cálculos de alta resolución con Node.js?

¿Podría darnos un contexto sobre lo que está tratando de hacer exactamente? No estoy totalmente seguro de lo que quiere decir con “alta resolución” o “breve, pero preciso”. ¿Te refieres al procesamiento de imágenes? “Cálculos breves pero precisos” realmente podrían significar cualquier cosa en mi mente, incluido el andamiaje de una aplicación web básica.

Pregunto porque Node.js es una gran herramienta para construir una aplicación web RESTful, pero no es tan buena para el trabajo intensivo en CPU. Esto se debe a que el nodo tiene un solo subproceso. Esto significa que, si está sentado en un cálculo complejo dentro de Node, está bloqueando todo el bucle de eventos.

Como resultado, si desea realizar un trabajo intensivo de CPU en Node, muchas personas envían este trabajo a otro proceso para mantener el bucle de eventos desbloqueado. Por ejemplo, podría procesar datos en C ++ de forma asincrónica.

Dicho esto, por “uso intensivo de CPU”, estoy pensando más en la línea de aprendizaje automático, minería de datos, etc. Node.js todavía puede hacer cálculos y matemáticas, pero probablemente no crearía un motor de optimización de vendedor ambulante en JavaScript

Para finalizar, el ecosistema Node.js no contiene demasiadas bibliotecas matemáticas o estadísticas geniales por las razones de bloqueo que describí anteriormente. Puede encontrar muchas bibliotecas excelentes en otros idiomas que son más conocidas por este tipo de trabajo, como Python, R y Scala.

Primero, para cálculos precisos, debe evitar usar la biblioteca matemática estándar de JavaScript. La especificación ECMAScript no a) requiere que los proveedores implementen algoritmos específicos yb) requiere que las implementaciones devuelvan resultados que cumplan con una precisión mínima. Por lo tanto, los vendedores han sido libres de hacer compensaciones entre velocidad y precisión, a menudo favoreciendo la velocidad sobre la precisión. Como resultado, las aplicaciones que requieren cálculos precisos y reproducibles no deben depender de funciones matemáticas integradas, ya que los resultados pueden variar entre los motores de JavaScript e incluso desde un reinicio del navegador hasta el siguiente.

En segundo lugar, asegúrese de leer el código fuente al evaluar una biblioteca matemática. Demasiadas bibliotecas matemáticas, incluidas las bibliotecas más populares, escritas en JavaScript y para Node.js, están escritas por personas que carecen del conocimiento y la experiencia para escribir implementaciones robustas. En consecuencia, asegúrese de que cualquier biblioteca matemática que elija pruebe en múltiples entornos y contra implementaciones de referencia. Y asegúrese de que existan pruebas para verificar la precisión.

En términos de bibliotecas que cumplan con los criterios anteriores, sugiero mirar stdlib, una biblioteca estándar para JavaScript y Node.js, que incluye implementaciones robustas para funciones especiales, manipulación de punto flotante y generación de números pseudoaleatorios. Incluso si no lo usa, el proyecto debe al menos proporcionar una idea sobre el rigor y los requisitos necesarios para realizar el cálculo numérico en JavaScript y servir como referencia para lo que debe esperar en la biblioteca que use.

divulgación : soy uno de los autores de stdlib.