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
- BLOPEX (Block Locally Optimal Preconditioned Eigenvalue Xolvers) es una biblioteca de código abierto para la solución escalable ( paralela ) de problemas de valores propios.
- La Transformada de Fourier más rápida del Oeste (FFTW) es una biblioteca de software para calcular la transformada de Fourier y transformadas relacionadas.
- Biblioteca Científica GNU , una popular biblioteca gratuita de análisis numérico implementada en C.
- La biblioteca GNU Multi-Precision es una biblioteca para realizar aritmética de precisión arbitraria .
- hypre (High Performance Preconditioners) es una biblioteca de código abierto de rutinas para la solución escalable ( paralela ) de sistemas lineales y preacondicionamiento.
- LabWindows/CVI es un entorno de desarrollo integrado (IDE) basado en ANSI C que incluye bibliotecas integradas para el análisis de datos de medición sin procesar, generación de señales, ventanas, funciones de filtrado, procesamiento de señales, álgebra lineal, operaciones con matrices y operaciones complejas, ajuste de curvas y estadística.
- Lis es una biblioteca paralela escalable para resolver sistemas de ecuaciones lineales y problemas de valores propios mediante métodos iterativos.
- Intel MKL (Math Kernel Library) contiene rutinas matemáticas optimizadas para aplicaciones científicas, de ingeniería y financieras, y está escrita en C/C++ y Fortran. Las funciones matemáticas principales incluyen BLAS, LAPACK, ScaLAPACK, solucionadores dispersos, transformadas rápidas de Fourier y matemáticas vectoriales.
- Intel IPP es una biblioteca de software multihilo con funciones para aplicaciones multimedia y de procesamiento de datos.
- OpenBLAS es una implementación de código abierto de la API BLAS con numerosas optimizaciones personalizadas para tipos de procesadores específicos. Su rendimiento es similar al de Intel MKL en procesadores Intel y superior en otros.
- El kit de herramientas portátil y extensible para computación científica (PETSc) es un conjunto de estructuras de datos y rutinas para la solución escalable ( paralela ) de aplicaciones científicas modeladas mediante ecuaciones diferenciales parciales .
- SLEPc Scalable Library for Eigenvalue Problem Computations es una biblioteca de código abierto basada en PETSc para la solución escalable ( paralela ) de problemas de valores propios.
- UMFPACK es una biblioteca para resolver sistemas lineales dispersos, escrita en Ansi C. Es el backend para matrices dispersas en MATLAB y SciPy .
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
- BLAS (Basic Linear Algebra Subprograms) es un estándar de facto de interfaz de programación de aplicaciones para publicar bibliotecas que realicen operaciones básicas de álgebra lineal, como la multiplicación de vectores y matrices .
- CERNLIB es una colección de bibliotecas y módulos de FORTRAN 77 .
- EISPACK es una biblioteca de software para el cálculo numérico de valores propios y vectores propios de matrices, [ 5 ] escrita en FORTRAN . Contiene subrutinas para calcular los valores propios de nueve clases de matrices : compleja general, compleja hermítica , real general, real simétrica, real simétrica de banda , real simétrica tridiagonal, real tridiagonal especial, real generalizada y matrices reales simétricas generalizadas.
- Las bibliotecas numéricas de IMSL son bibliotecas multiplataforma que contienen un conjunto completo de funciones matemáticas y estadísticas que se pueden integrar en la aplicación del usuario.
- La biblioteca de subrutinas de Harwell es una colección de códigos Fortran 77 y 95 que abordan problemas fundamentales del análisis numérico.
- LAPACK , [ 6 ] [ 7 ] el PAQUETE de Álgebra Lineal , es una biblioteca de software para computación numérica escrita originalmente en FORTRAN 77 y ahora escrita en Fortran 90 .
- LINPACK es una biblioteca de software para realizar álgebra lineal numérica en computadoras digitales. [ 8 ] [ 9 ] [ 10 ] Fue escrita en Fortran por Jack Dongarra , Jim Bunch, Cleve Moler y Pete Stewart, y fue diseñada para usarse en supercomputadoras en las décadas de 1970 y principios de 1980. Ha sido reemplazada en gran medida por LAPACK , que se ejecuta de manera más eficiente en arquitecturas modernas.
- Lis es una biblioteca paralela escalable para resolver sistemas de ecuaciones lineales y problemas de valores propios mediante métodos iterativos.
- MINPACK es una biblioteca de subrutinas FORTRAN para la resolución de sistemas de ecuaciones no lineales, o la minimización por mínimos cuadrados del residuo de un conjunto de ecuaciones lineales o no lineales.
- La biblioteca NAG Fortran es una colección de rutinas matemáticas y estadísticas para Fortran.
- NOVAS es una biblioteca de software para cálculos numéricos relacionados con la astrometría. Hay versiones disponibles tanto en Fortran como en C.
- Netlib es un repositorio de software de computación científica que contiene una gran cantidad de programas y bibliotecas independientes, entre los que se incluyen BLAS , EISPACK , LAPACK y otros.
- PAW es un paquete de análisis de datos gratuito desarrollado en el CERN .
- El kit de herramientas portátil y extensible para computación científica ( PETSc ) es un conjunto de estructuras de datos y rutinas para la solución escalable ( paralela ) de aplicaciones científicas modeladas mediante ecuaciones diferenciales parciales .
- QUADPACK es una biblioteca FORTRAN 77 para la integración numérica de funciones unidimensionales.
- SLATEC es una biblioteca FORTRAN 77 con más de 1400 rutinas matemáticas y estadísticas de propósito general.
- SOFA es una colección de subrutinas que implementan algoritmos oficiales de la IAU para cálculos astronómicos . Hay versiones disponibles tanto en Fortran como en C.
- ARPACK es una colección de subrutinas Fortran77 diseñadas para resolver problemas de valores propios a gran escala.
- BLIS es un marco de código abierto para implementar un superconjunto de la funcionalidad de BLAS para tipos de procesadores específicos, que fue galardonado con el Premio JH Wilkinson de Software Numérico .
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
- Perl Data Language proporciona a Perl estándar la capacidad de almacenar de forma compacta y manipular rápidamente grandes matrices de datos N -dimensionales. [ 12 ] Puede realizar operaciones matemáticas complejas y matriciales, y cuenta con interfaces para la Biblioteca Científica GNU , LINPACK , PROJ y la representación gráfica con PGPLOT . Existen bibliotecas en CPAN que añaden soporte para la biblioteca de álgebra lineal LAPACK , [ 13 ] la biblioteca de transformada de Fourier FFTW , [ 14 ] y la representación gráfica con gnuplot , [ 15 ] y PLplot . [ 16 ]
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
- XNUMBERS : cálculo de punto flotante de precisión múltiple y métodos numéricos para Microsoft Excel .
- INTLAB – biblioteca de aritmética de intervalos para MATLAB . [ 21 ] [ 22 ] [ 23 ] [ 24 ]
Véase también
Referencias
- ↑ Sanderson, C., & Curtin, R. (2016). Armadillo: una biblioteca C++ basada en plantillas para álgebra lineal. Journal of Open Source Software, 1(2), 26.
- ↑ 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 .
- ↑ 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 .
- ↑ Kareem Anderson (09/05/2017). "Microsoft presenta ML.NET, un marco de aprendizaje automático multiplataforma" . En MSFT . Consultado el 10/05/2018 .
- ^ 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.
- ^ 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.
- ↑ 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.
- ↑ Dongarra, JJ, Moler, CB, Bunch, JR y Stewart, GW (1979). Guía del usuario de LINPACK. Sociedad de Matemáticas Industriales y Aplicadas.
- ↑ Dongarra, JJ, Luszczek, P., & Petitet, A. (2003). El benchmark LINPACK: pasado, presente y futuro. Concurrency and Computation: practice and experience, 15(9), 803-820.
- ↑ Dongarra, JJ (1987, junio). El benchmark LINPACK: una explicación. En Conferencia Internacional sobre Supercomputación (págs. 456-474). Springer, Berlín, Heidelberg.
- ↑ "Tutorial en línea de Owl" . Tutorial en línea de Owl . Consultado el 9 de febrero de 2025 .
- ↑ "Lenguaje de datos Perl - metacpan.org" . 26 de julio de 2021.
- ↑ "PDL::LinearAlgebra - Utilidades de álgebra lineal para PDL - metacpan.org" . 26 de julio de 2021.
- ↑ "PDL::FFTW3 - Interfaz PDL para la transformada de Fourier más rápida de Occidente - metacpan.org" . 26 de julio de 2021.
- ↑ "PDL::Graphics::Gnuplot - Gráficos basados en Gnuplot para PDL - metacpan.org" . 26 de julio de 2021.
- ↑ "PDL::Graphics::PLplot - Interfaz orientada a objetos desde perl/PDL a la biblioteca de gráficos PLPLOT - metacpan.org" . 26 de julio de 2021.
- ^ Zimmermann, P., Casamayou, A., Cohen, N., Connan, G., Dumont, T., Fousse, L., ... y Bray, E. (2018). Matemática Computacional con SageMath. SIAM.
- ↑ Jones, E., Oliphant, T., & Peterson, P. (2001). SciPy: Herramientas científicas de código abierto para Python.
- ↑ Bressert, E. (2012). SciPy y NumPy: una descripción general para desarrolladores. " O'Reilly Media, Inc."
- ↑ Blanco-Silva, FJ (2013). Aprendiendo SciPy para computación numérica y científica. Packt Publishing Ltd.
- ↑ SM Rump: INTLAB – Laboratorio Intermedio. En Tibor Csendes, editor, Desarrollos en Computación Confiable, páginas 77–104. Kluwer Academic Publishers, Dordrecht, 1999.
- ↑ Moore, RE, Kearfott, RB y Cloud, MJ (2009). Introducción al análisis de intervalos. Sociedad de Matemáticas Industriales y Aplicadas.
- ↑ Rump, SM (2010). Métodos de verificación: resultados rigurosos mediante aritmética de punto flotante. Acta Numerica, 19, 287–449.
- ↑ Hargreaves, GI (2002). Análisis de intervalos en MATLAB . Algoritmos numéricos, (2009.1).
Enlaces externos
- El Foro de Matemáticas - Bibliotecas de Matemáticas , una extensa lista de bibliotecas matemáticas con breves descripciones.
- Listas de software
- Listas relacionadas con las matemáticas
- Bibliotecas numéricas
- Software numérico
- Lenguajes de programación numérica