Esta es una lista de bibliotecas numéricas , que son bibliotecas que se utilizan en el desarrollo de software para realizar cálculos numéricos . No es una lista completa, sino una lista de bibliotecas numéricas con artículos en Wikipedia, con pocas excepciones.
La elección de una biblioteca típica depende de una variedad de requisitos tales como: características deseadas (por ejemplo, álgebra lineal de gran dimensión, computación paralela, ecuaciones diferenciales parciales), licencias, legibilidad de la API, portabilidad o dependencia de la plataforma/compilador (por ejemplo, Linux, Windows, Visual C++, GCC), rendimiento, facilidad de uso, soporte continuo de los desarrolladores, cumplimiento de estándares, optimización especializada en código para escenarios de aplicación específicos o incluso el tamaño de la base de código que se instalará.
Multi-idioma
- ALGLIB es una biblioteca de análisis numérico de código abierto que puede utilizarse desde C++, C#, FreePascal, Delphi, 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 IMSL son bibliotecas de funcionalidad 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 de alto nivel y una biblioteca de código abierto que incluye una interfaz de línea de comandos y una GUI análoga a alternativas comerciales como Maple, MATLAB, Mathematica, etc. Las API, funciones y bibliotecas se pueden llamar desde muchas plataformas, incluidos programas de ingeniería de alto nivel, donde las funciones se interpretan e integran sin problemas, en muchos casos, de manera similar a MATLAB. También se puede utilizar con orientación por lotes.
- librsb es una biblioteca de código abierto para cálculos de matrices dispersas de alto rendimiento que proporciona primitivas multiproceso para construir solucionadores iterativos (también implementa el estándar Sparse BLAS ). Se puede utilizar desde C, C++, Fortran y un paquete GNU Octave dedicado.
- 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.
- FFTW (la transformada de Fourier más rápida de Occidente) es una biblioteca de software para calcular transformadas de Fourier y otras relacionadas.
- Biblioteca científica GNU , una biblioteca de análisis numérico popular y gratuita implementada en C.
- GNU Multi-Precision Library es una biblioteca para realizar operaciones aritméticas de precisión arbitraria .
- hypre (High Performance Preconditioners) es una biblioteca de código abierto de rutinas para soluciones escalables ( paralelas ) de sistemas lineales y preacondicionamiento.
- LabWindows/CVI es un IDE 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 filtro, procesamiento de señales, álgebra lineal, operaciones matriciales y complejas, ajuste de curvas y estadísticas.
- Lis es una biblioteca paralela escalable para resolver sistemas de ecuaciones lineales y problemas de valores propios utilizando 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 básicas incluyen BLAS, LAPACK, ScaLAPACK, solucionadores dispersos, transformadas rápidas de Fourier y matemáticas vectoriales.
- Intel IPP es una biblioteca de software multiproceso de funciones para aplicaciones de procesamiento de datos y multimedia.
- OpenBLAS es una implementación de código abierto de la API BLAS con muchas optimizaciones diseñadas a mano para tipos de procesadores específicos. Su rendimiento es similar al de Intel MKL en procesadores Intel y superior en varios otros.
- Portable, Extensible Toolkit for Scientific Computation (PETSc), es un conjunto de estructuras de datos y rutinas para la solución escalable ( paralela ) de aplicaciones científicas modeladas por ecuaciones diferenciales parciales .
- La biblioteca escalable SLEPc para cálculos de problemas de valores propios 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 .
- Adept es una biblioteca combinada de diferenciación automática y matrices .
- Advanced Simulation Library es un software de simulación multifísica acelerado por hardware gratuito y de código abierto con un motor computacional interno basado en OpenCL .
- ALGLIB es una biblioteca de análisis numérico comercial de código abierto con versión C++
- Armadillo es una biblioteca de álgebra lineal de C++ (matemáticas matriciales y vectoriales) que busca un buen equilibrio entre velocidad y facilidad de uso. [1] Emplea clases de 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 C++ Boost.uBLAS para cálculo numérico
- deal.II es una biblioteca que admite todas las soluciones de elementos finitos de ecuaciones diferenciales parciales.
- Dlib es una biblioteca C++ moderna con herramientas de optimización y álgebra lineal 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 con la biblioteca de núcleo matemático de Intel.
- Proyecto Hermes : Biblioteca C++/Python para creación rápida de prototipos de solucionadores hp-FEM adaptativos al espacio y al espacio-tiempo.
- IML++ es una biblioteca C++ para resolver sistemas lineales de ecuaciones, capaz de tratar con matrices densas, dispersas y distribuidas.
- IT++ es una biblioteca C++ para álgebra lineal (matrices y vectores), procesamiento de señales y comunicaciones. Funcionalidad similar a MATLAB y Octave.
- LAPACK++ , una biblioteca contenedora de C++ para LAPACK y BLAS
- MFEM es una biblioteca C++ gratuita, liviana y escalable para métodos de elementos finitos .
- Intel MKL , Intel Math Kernel Library (en C y C++), una biblioteca de rutinas matemáticas optimizadas para aplicaciones científicas, de ingeniería y financieras, escritas en C/C++ y Fortran. Las funciones matemáticas básicas incluyen BLAS, LAPACK, ScaLAPACK, solucionadores dispersos, 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 proporcionar el máximo rendimiento y flexibilidad al tiempo que proporciona una API simple y consistente.
- MTL4 es una biblioteca de plantillas genéricas de C++ que proporciona funcionalidad BLAS densa y dispersa. MTL4 establece una interfaz intuitiva (similar a MATLAB ) y una amplia aplicabilidad gracias a la programación genérica .
- La biblioteca NAG tiene API C++
- NTL es una biblioteca C++ para teoría de números.
- OpenFOAM es una biblioteca C++ de código abierto 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 con el método de volumen finito o elementos finitos.
- Trilinos es un esfuerzo por desarrollar algoritmos y tecnologías que permitan resolver problemas científicos y de ingeniería multifísica complejos y de gran escala. Es una colección de paquetes .
- Software de álgebra lineal Template Numerical Toolkit (TNT) de dominio público y en su totalidad en forma de encabezados, del NIST. TNT se presentó originalmente como sucesor de Lapack++, Sparselib++ e IML++. [2]
- ALGLIB - una biblioteca de análisis numérico de código abierto.
Lenguajes de .NET FrameworkDO#,F#,VB.NETyPotencia Shell
- Accord.NET es una colección de bibliotecas para computación científica, que incluye álgebra lineal numérica, optimización, estadísticas, redes neuronales artificiales, aprendizaje automático, procesamiento de señales y visión artificial. LGPLv3, parcialmente GPLv3.
- AForge.NET es una biblioteca de inteligencia artificial y visión artificial. Implementa una serie de algoritmos genéticos, de lógica difusa y de aprendizaje automático con varias arquitecturas de redes neuronales artificiales con sus correspondientes algoritmos de entrenamiento. LGPLv3 y parcialmente GPLv3.
- ALGLIB es una biblioteca de análisis numérico de código abierto con versión C#. Licencia dual: GPLv2+, licencia comercial.
- ILNumerics.Net Clases y funciones de matrices numéricas comerciales, de alto rendimiento y con tipos seguros para matemática general, FFT y álgebra lineal, orientado a .NET/mono, 32 y 64 bits, sintaxis tipo script en C#, controles de gráficos 2D y 3D, gestión eficiente de memoria.
- Las bibliotecas numéricas de IMSL tienen una versión C# (con licencia comercial). IMSL .Net ha anunciado que dejará de funcionar a fines de 2020.
- Math.NET Numerics tiene como objetivo proporcionar métodos y algoritmos para cálculos numéricos en ciencia, ingeniería y uso cotidiano. Los temas tratados incluyen funciones especiales, álgebra lineal, modelos de probabilidad, números aleatorios, interpolación, transformaciones integrales y más. Software libre bajo licencia MIT/X11.
- Measurement Studio es un conjunto comercial integrado de controles de interfaz de usuario y bibliotecas de clases para su uso en el desarrollo de aplicaciones de prueba y medición. Las bibliotecas de clases de análisis proporcionan diversas funciones 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 aprendizaje automático de software libre para 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 de estadísticas.
- BLAS (Basic Linear Algebra Subprograms) es un estándar de interfaz de programación de aplicaciones de facto para publicar bibliotecas para realizar operaciones básicas de álgebra lineal como la multiplicación de vectores y matrices .
- CERNLIB es una colección de bibliotecas y módulos 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 : matrices complejas generales, matrices complejas hermíticas, matrices reales generales, matrices reales simétricas, matrices reales simétricas en bandas , matrices reales simétricas tridiagonales, matrices reales especiales, matrices reales generalizadas y matrices reales simétricas generalizadas.
- Las bibliotecas numéricas IMSL son bibliotecas multiplataforma que contienen un conjunto completo de funciones matemáticas y estadísticas que se pueden integrar en la aplicación de un usuario.
- La biblioteca de subrutinas Harwell es una colección de códigos Fortran 77 y 95 que abordan problemas centrales en el análisis numérico.
- LAPACK , [6] [7] el PAQUETE de Álgebra Lineal , es una biblioteca de software para cálculo numérico 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 estaba destinada a ser utilizada en supercomputadoras en la década de 1970 y principios de la de 1980. Ha sido reemplazada en gran medida por LAPACK , que se ejecutará 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 utilizando 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 de los residuos 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. Están 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 separados, incluidos BLAS , EISPACK , LAPACK y otros.
- PAW es un paquete de análisis de datos gratuito desarrollado en el CERN .
- Portable, Extensible Toolkit for Scientific Computation ( PETSc ), es un conjunto de estructuras de datos y rutinas para la solución escalable ( paralela ) de aplicaciones científicas modeladas por ecuaciones diferenciales parciales .
- QUADPACK es una biblioteca FORTRAN 77 para la integración numérica de funciones unidimensionales
- SLATEC es una biblioteca FORTRAN 77 de 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 . Están 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 funcionalidades BLAS para tipos de procesadores específicos que recibió el Premio JH Wilkinson de Software Numérico .
- Apache Commons es un software de código abierto para crear componentes Java reutilizables. Tiene paquetes numéricos para álgebra lineal y optimización no lineal.
- Colt proporciona un conjunto de bibliotecas de código abierto para informática científica y técnica de alto rendimiento.
- Efficient Java Matrix Library (EJML) es una biblioteca de álgebra lineal de código abierto para manipular matrices densas.
- JAMA , un conjunto de herramientas de álgebra lineal numérica para el lenguaje de programación Java . No se ha producido ningún desarrollo activo 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 un contenedor fácil de usar alrededor de 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 Java para la evaluación de expresiones matemáticas.
- SuanShu es una biblioteca matemática Java de código abierto. Admite análisis numérico, estadísticas y optimización.
- Maja es una biblioteca Java de código abierto que se centra principalmente en la implementación correcta de varias funciones especiales .
- El lenguaje de datos Perl proporciona al Perl estándar la capacidad de almacenar de forma compacta y manipular rápidamente las grandes matrices de datos N -dimensionales. [11] Puede realizar operaciones matemáticas complejas y matriciales, y tiene interfaces para la biblioteca científica GNU , LINPACK , PROJ y para la representación gráfica con PGPLOT . Existen bibliotecas en CPAN que añaden compatibilidad con la biblioteca de álgebra lineal LAPACK , [12] la biblioteca de transformada de Fourier FFTW , [13] y la representación gráfica con gnuplot , [14] y PLplot . [15]
- NumPy , una biblioteca con licencia BSD que agrega soporte para la manipulación de matrices y arreglos multidimensionales grandes; también incluye una gran colección de funciones matemáticas de alto nivel. NumPy sirve como columna vertebral para varias otras bibliotecas numéricas, en particular SciPy . Estándar de facto para operaciones con matrices y tensores en Python.
- Pandas , una biblioteca para manipulación y 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. [16]
- SciPy , [17] [18] [19] 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 , una biblioteca basada en la licencia New BSD para computación simbólica. Las funciones de Sympy 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 . [20] [21] [22] [23]
Véase también
- Lista de sistemas de álgebra computacional
- Comparación de software de análisis numérico
- Lista de software de gráficos de información
- Lista de software de análisis numérico
- Lista de software de optimización
- Lista de software estadístico
Referencias
- ^ Sanderson, C., y Curtin, R. (2016). Armadillo: una biblioteca de C++ basada en plantillas para álgebra lineal. Journal of Open Source Software, 1(2), 26.
- ^ Pozo, Roldan. "Kit de herramientas numéricas de plantillas para álgebra lineal: programación de alto rendimiento con C++ y la biblioteca de plantillas estándar". Revista internacional de aplicaciones informáticas de alto rendimiento . Asociación para la maquinaria informática . Consultado el 15 de octubre de 2024 .
- ^ David Ramel (8 de mayo de 2018). "ML.NET multiplataforma y de código abierto simplifica el aprendizaje automático: Visual Studio Magazine". Visual Studio Magazine . Consultado el 10 de mayo de 2018 .
- ^ Kareem Anderson (9 de mayo de 2017). "Microsoft presenta el marco de aprendizaje automático multiplataforma ML.NET". En MSFT . Consultado el 10 de mayo de 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 el taller sobre diseño de sistemas de control asistidos por computadora de la IEEE Control Systems Society (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., y Petitet, A. (2003). El benchmark LINPACK: pasado, presente y futuro. Concurrencia y computación: práctica y experiencia, 15(9), 803-820.
- ^ Dongarra, JJ (1987, junio). El benchmark LINPACK: una explicación. En International Conference on Supercomputing (pp. 456-474). Springer, Berlín, Heidelberg.
- ^ "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 - Trazado basado en Gnuplot para PDL - metacpan.org". 26 de julio de 2021.
- ^ "PDL::Graphics::PLplot - Interfaz orientada a objetos de Perl/PDL para 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. y 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). Aprendizaje de SciPy para computación numérica y científica. Packt Publishing Ltd.
- ^ SM Rump: INTLAB – INTerval LABoratory. En Tibor Csendes, editor, Developments in Reliable Computing, 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 utilizando 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