Articulo de referencia

Lista de bibliotecas numéricas

Esta es una lista de bibliotecas numéricas , es decir, bibliotecas utilizadas en el desarrollo de software para realizar cálculos numéricos . No es una lista exhaustiva, sino un...

Esta es una lista de bibliotecas numéricas , es decir, bibliotecas utilizadas en el desarrollo de software para realizar cálculos numéricos . No es una lista exhaustiva, sino una lista de bibliotecas numéricas con artículos en Wikipedia, con algunas excepciones.

La elección de una biblioteca típica depende de una serie de requisitos, tales como: las características deseadas (por ejemplo, álgebra lineal de grandes dimensiones, computación paralela, ecuaciones diferenciales parciales), la licencia, la legibilidad de la API, la portabilidad o la dependencia de la plataforma/compilador (por ejemplo, Linux, Windows, Visual C++, GCC), el rendimiento, la facilidad de uso, el soporte continuo de los desarrolladores, el cumplimiento de los estándares, la optimización especializada del código para escenarios de aplicación específicos o incluso el tamaño de la base de código que se va a instalar.

Multilingüe

  • ALGLIB es una biblioteca de análisis numérico de código abierto que se puede utilizar desde C++, C#, FreePascal, Delphi y VBA.
  • ArrayFire es una biblioteca de software de código abierto de alto rendimiento para computación paralela con una API fácil de usar.
  • Las bibliotecas numéricas de IMSL son bibliotecas de funcionalidades de análisis numérico implementadas en lenguajes de programación estándar como C, Java, C# .NET, Fortran y Python.
  • La biblioteca NAG es una colección de rutinas matemáticas y estadísticas para múltiples lenguajes de programación (C, C++, Fortran, Visual Basic, Java, Python y C#) y paquetes (MATLAB, Excel, R, LabVIEW).
  • GNU Octave es un lenguaje de programación y biblioteca de alto nivel de código abierto, que incluye una interfaz de línea de comandos y una interfaz gráfica de usuario (GUI), similar a alternativas comerciales como Maple, MATLAB, Mathematica, etc. Las API, funciones y bibliotecas se pueden llamar desde diversas plataformas, incluidos programas de ingeniería de alto nivel, donde las funciones, en muchos casos, se interpretan e integran sin problemas, de forma similar a MATLAB. También se puede utilizar con procesamiento por lotes.
  • librsb es una biblioteca de código abierto para cálculos de matrices dispersas de alto rendimiento que proporciona primitivas multihilo para construir solucionadores iterativos (también implementa el estándar Sparse BLAS ). Se puede utilizar desde C, C++, Fortran y un paquete específico de GNU Octave .

do

C++

  • Adept es una biblioteca combinada de diferenciación automática y de matrices .
  • Advanced Simulation Library es un software de simulación multifísica gratuito y de código abierto, acelerado por hardware, que utiliza un motor de cálculo interno basado en OpenCL .
  • ALGLIB es una biblioteca de análisis numérico de código abierto/comercial con versión en C++.
  • Armadillo es una biblioteca de álgebra lineal en C++ (matemáticas de matrices y vectores), que busca un buen equilibrio entre velocidad y facilidad de uso. [ 1 ] Emplea clases plantilla y tiene enlaces opcionales a BLAS y LAPACK. La sintaxis ( API ) es similar a la de MATLAB .
  • Blitz++ es una biblioteca de matemáticas vectoriales de alto rendimiento escrita en C++.
  • Bibliotecas Boost.uBLAS de C++ para computación numérica
  • deal.II es una biblioteca que admite métodos de elementos finitos para ecuaciones diferenciales parciales.
  • Dlib es una biblioteca moderna de C++ con herramientas de álgebra lineal y optimización fáciles de usar que se benefician de las bibliotecas BLAS y LAPACK optimizadas.
  • Eigen es una biblioteca de matemáticas vectoriales con un rendimiento comparable al de la biblioteca Math Kernel de Intel.
  • Proyecto Hermes : Biblioteca C++/Python para la creación rápida de prototipos de solucionadores hp-FEM adaptativos al espacio y al tiempo.
  • IML++ es una biblioteca de C++ para resolver sistemas de ecuaciones lineales, capaz de trabajar con matrices densas, dispersas y distribuidas.
  • IT++ es una biblioteca de C++ para álgebra lineal (matrices y vectores), procesamiento de señales y comunicaciones. Su funcionalidad es similar a la de MATLAB y Octave.
  • LAPACK++ , una biblioteca de envoltura C++ para LAPACK y BLAS
  • MFEM es una biblioteca C++ gratuita, ligera y escalable para métodos de elementos finitos .
  • Intel MKL , la biblioteca Intel Math Kernel Library (en C y C++), es una biblioteca de rutinas matemáticas optimizadas para aplicaciones científicas, de ingeniería y financieras, escrita en C/C++ y Fortran. Sus funciones matemáticas principales incluyen BLAS, LAPACK, ScaLAPACK, solucionadores de matrices dispersas, transformadas rápidas de Fourier y matemáticas vectoriales.
  • mlpack es una biblioteca de código abierto para aprendizaje automático que aprovecha las características del lenguaje C++ para ofrecer el máximo rendimiento y flexibilidad, a la vez que proporciona una API sencilla y consistente.
  • MTL4 es una biblioteca de plantillas C++ genérica que proporciona funcionalidad BLAS dispersa y densa. MTL4 establece una interfaz intuitiva (similar a MATLAB ) y una amplia aplicabilidad gracias a la programación genérica .
  • La biblioteca NAG tiene una API de C++.
  • NTL es una biblioteca de C++ para la teoría de números.
  • OpenFOAM es una biblioteca de código abierto en C++ para resolver ecuaciones diferenciales parciales en dinámica de fluidos computacional (CFD).
  • El código SU2 es una biblioteca de código abierto para resolver ecuaciones diferenciales parciales mediante el método de volumen finito o el método de elementos finitos.
  • Trilinos es un esfuerzo para desarrollar algoritmos y tecnologías habilitadoras para la solución de problemas científicos y de ingeniería multifísicos complejos y a gran escala. Es una colección de paquetes .
  • El software de álgebra lineal Template Numerical Toolkit (TNT) es de dominio público y se presenta completamente en forma de archivos de cabecera, del NIST. TNT se presentó originalmente como sucesor de Lapack++, Sparselib++ e IML++. [ 2 ]

Delfos

  • ALGLIB : una biblioteca de análisis numérico de código abierto.

Lenguajes de .NET Framework: C#, F#, VB.NET y PowerShell

  • Accord.NET es una colección de bibliotecas para computación científica, que incluye álgebra lineal numérica, optimización, estadística, redes neuronales artificiales, aprendizaje automático, procesamiento de señales y visión artificial. Licencia LGPLv3, parcialmente GPLv3.
  • AForge.NET es una biblioteca de visión artificial e inteligencia artificial. Implementa diversos algoritmos genéticos, de lógica difusa y de aprendizaje automático, con varias arquitecturas de redes neuronales artificiales y sus correspondientes algoritmos de entrenamiento. Licencia LGPLv3 y parcialmente GPLv3.
  • ALGLIB es una biblioteca de análisis numérico de código abierto con versión en C#. Doble licencia: GPLv2+ y licencia comercial.
  • ILNumerics.Net ofrece clases y funciones de matrices numéricas comerciales de alto rendimiento y con tipado seguro para matemáticas generales, FFT y álgebra lineal. Está diseñado para .NET/mono, 32 y 64 bits, con sintaxis similar a la de scripts en C#, controles de gráficos 2D y 3D y una gestión eficiente de la memoria.
  • Las bibliotecas numéricas de IMSL cuentan con una versión en C# (con licencia comercial). IMSL .Net ha anunciado el fin de su soporte a finales de 2020.
  • Math.NET Numerics ofrece métodos y algoritmos para cálculos numéricos en ciencia, ingeniería y uso cotidiano. Entre los temas que abarca se incluyen funciones especiales, álgebra lineal, modelos de probabilidad, números aleatorios, interpolación, transformadas integrales y más. Software libre bajo licencia MIT/X11.
  • Measurement Studio es un conjunto integrado de controles de interfaz de usuario y bibliotecas de clases comerciales para el desarrollo de aplicaciones de prueba y medición. Las bibliotecas de clases de análisis proporcionan diversas funcionalidades de procesamiento de señales digitales, filtrado de señales, generación de señales, detección de picos y otras funciones matemáticas generales.
  • ML.NET es una biblioteca de software libre para aprendizaje automático en el lenguaje de programación C# . [ 3 ] [ 4 ]
  • La biblioteca NAG tiene API C#. Licencia comercial.
  • NMath de CenterSpace Software : Bibliotecas de componentes numéricos comerciales para la plataforma .NET, que incluyen clases de procesamiento de señales (FFT), un marco de álgebra lineal (LAPACK y BLAS) y un paquete estadístico.

Fortran

Java

  • Apache Commons es una plataforma de código abierto para crear componentes Java reutilizables. Incluye paquetes numéricos para álgebra lineal y optimización no lineal.
  • Colt proporciona un conjunto de bibliotecas de código abierto para la computación científica y técnica de alto rendimiento.
  • Efficient Java Matrix Library (EJML) es una biblioteca de álgebra lineal de código abierto para la manipulación de matrices densas.
  • JAMA es un conjunto de herramientas de álgebra lineal numérica para el lenguaje de programación Java . No se ha desarrollado activamente desde 2005, pero sigue siendo uno de los paquetes de álgebra lineal más populares en Java.
  • Jblas: Álgebra lineal para Java , una biblioteca de álgebra lineal que es una interfaz fácil de usar para BLAS y LAPACK .
  • Parallel Colt es una biblioteca de código abierto para computación científica. Una extensión paralela de Colt .
  • Matrix Toolkit Java es una biblioteca de álgebra lineal basada en BLAS y LAPACK .
  • ojAlgo es una biblioteca Java de código abierto para matemáticas, álgebra lineal y optimización.
  • exp4j es una pequeña biblioteca de Java para la evaluación de expresiones matemáticas.
  • SuanShu es una biblioteca matemática de Java de código abierto. Admite análisis numérico, estadística y optimización.
  • Maja es una biblioteca Java de código abierto que se centra principalmente en la correcta implementación de varias funciones especiales .

OCaml

  • El lenguaje de programación OCaml tiene soporte para programación de matrices en la biblioteca estándar, también con un módulo específico llamado bigarrays para matrices numéricas multidimensionales, con opciones de diseño tanto en C como en Fortran. El soporte integral para cálculos numéricos lo proporciona la biblioteca Owl Scientific Computing que proporciona métodos para estadística, álgebra lineal (usando OpenBLAS), ecuaciones diferenciales, diferenciación algorítmica, transformada rápida de Fourier o redes neuronales profundas. [ 11 ] Otras bibliotecas numéricas en OCaml son Lacaml que interactúa con las bibliotecas Fortran/C BLAS y LAPACK, L-BFGS-ocaml (enlaces de OCaml para L-BFGS). Para la visualización existen bibliotecas para graficar usando PLplot , gnuplot o matplotlib .

Perl

Pitón

  • JAX , una biblioteca con licencia Apache para computación numérica , diferenciación automática y computación de matrices orientada a aceleradores en Python .
  • NumPy , una biblioteca con licencia BSD, permite la manipulación de matrices y arreglos multidimensionales de gran tamaño e incluye una amplia colección de funciones matemáticas avanzadas. NumPy sirve de base para otras bibliotecas numéricas, como SciPy . Es el estándar de facto para operaciones con matrices y tensores en Python.
  • Pandas , una biblioteca para la manipulación y el análisis de datos.
  • SageMath es una gran aplicación de software matemático que integra el trabajo de casi 100 proyectos de software libre y admite álgebra lineal, combinatoria, matemáticas numéricas, cálculo y más. [ 17 ]
  • SciPy , [ 18 ] [ 19 ] [ 20 ] una gran biblioteca de herramientas científicas con licencia BSD. Estándar de facto para cálculos científicos en Python.
  • ScientificPython , una biblioteca con un conjunto diferente de herramientas científicas.
  • SymPy es una biblioteca basada en la licencia New BSD para computación simbólica. Sus funcionalidades abarcan desde aritmética simbólica básica hasta cálculo, álgebra, matemáticas discretas y física cuántica.

Otros

Véase también

Referencias

  1. Sanderson, C., & Curtin, R. (2016). Armadillo: una biblioteca C++ basada en plantillas para álgebra lineal. Journal of Open Source Software, 1(2), 26.
  2. Pozo, Roldan (1997). "Template Numerical Toolkit for Linear Algebra: High Performance Programming With C++ and the Standard Template Library" . The International Journal of Supercomputer Applications and High Performance Computing . 11 (3). Association for Computing Machinery: 251– 263. doi : 10.1177/109434209701100307 . Consultado el 15 de octubre de 2024 .
  3. David Ramel (8 de mayo de 2018). "ML.NET de código abierto y multiplataforma simplifica el aprendizaje automático - Visual Studio Magazine" . Visual Studio Magazine . Consultado el 10 de mayo de 2018 .
  4. Kareem Anderson (09/05/2017). "Microsoft presenta ML.NET, un marco de aprendizaje automático multiplataforma" . En MSFT . Consultado el 10/05/2018 .
  5. ^ Smith, BT, Boyle, JM, Garbow, BS, Ikebe, Y., Klema, VC y Moler, CB (2013). Rutinas del sistema propio de matriz-Guía EISPACK (Vol. 6). Saltador.
  6. ^ Anderson, E., Bai, Z., Bischof, C., Blackford, S., Dongarra, J., Du Croz, J., ... y Sorensen, D. (1999). Guía de usuario de LAPACK (Vol. 9). SIAM.
  7. Demmel, J. (1989, diciembre). LAPACK: Una biblioteca portátil de álgebra lineal para supercomputadoras. En IEEE Control Systems Society Workshop on Computer-Aided Control System Design (pp. 1-7). IEEE.
  8. Dongarra, JJ, Moler, CB, Bunch, JR y Stewart, GW (1979). Guía del usuario de LINPACK. Sociedad de Matemáticas Industriales y Aplicadas.
  9. Dongarra, JJ, Luszczek, P., & Petitet, A. (2003). El benchmark LINPACK: pasado, presente y futuro. Concurrency and Computation: practice and experience, 15(9), 803-820.
  10. Dongarra, JJ (1987, junio). El benchmark LINPACK: una explicación. En Conferencia Internacional sobre Supercomputación (págs. 456-474). Springer, Berlín, Heidelberg.
  11. "Tutorial en línea de Owl" . Tutorial en línea de Owl . Consultado el 9 de febrero de 2025 .
  12. "Lenguaje de datos Perl - metacpan.org" . 26 de julio de 2021.
  13. "PDL::LinearAlgebra - Utilidades de álgebra lineal para PDL - metacpan.org" . 26 de julio de 2021.
  14. "PDL::FFTW3 - Interfaz PDL para la transformada de Fourier más rápida de Occidente - metacpan.org" . 26 de julio de 2021.
  15. "PDL::Graphics::Gnuplot - Gráficos basados ​​en Gnuplot para PDL - metacpan.org" . 26 de julio de 2021.
  16. "PDL::Graphics::PLplot - Interfaz orientada a objetos desde perl/PDL a la biblioteca de gráficos PLPLOT - metacpan.org" . 26 de julio de 2021.
  17. ^ Zimmermann, P., Casamayou, A., Cohen, N., Connan, G., Dumont, T., Fousse, L., ... y Bray, E. (2018). Matemática Computacional con SageMath. SIAM.
  18. Jones, E., Oliphant, T., & Peterson, P. (2001). SciPy: Herramientas científicas de código abierto para Python.
  19. Bressert, E. (2012). SciPy y NumPy: una descripción general para desarrolladores. " O'Reilly Media, Inc."
  20. Blanco-Silva, FJ (2013). Aprendiendo SciPy para computación numérica y científica. Packt Publishing Ltd.
  21. SM Rump: INTLAB – Laboratorio Intermedio. En Tibor Csendes, editor, Desarrollos en Computación Confiable, páginas 77–104. Kluwer Academic Publishers, Dordrecht, 1999.
  22. Moore, RE, Kearfott, RB y Cloud, MJ (2009). Introducción al análisis de intervalos. Sociedad de Matemáticas Industriales y Aplicadas.
  23. Rump, SM (2010). Métodos de verificación: resultados rigurosos mediante aritmética de punto flotante. Acta Numerica, 19, 287–449.
  24. Hargreaves, GI (2002). Análisis de intervalos en MATLAB . Algoritmos numéricos, (2009.1).
  • El Foro de Matemáticas - Bibliotecas de Matemáticas , una extensa lista de bibliotecas matemáticas con breves descripciones.