Clase de software matemático
El software tensorial es una clase de software matemático diseñado para la manipulación y el cálculo con tensores .
Software independiente
- SPLATT [1] es un paquete de software de código abierto para factorización tensorial dispersa de alto rendimiento . SPLATT incluye un ejecutable independiente, una biblioteca C/C++ y una API Octave / MATLAB .
- Cadabra [2] es un sistema de álgebra computacional (CAS) diseñado específicamente para la solución de problemas encontrados en la teoría de campos. Tiene una amplia funcionalidad para la simplificación de polinomios tensoriales, incluyendo simetrías de múltiples términos, fermiones y variables anticonmutativas, álgebras de Clifford y transformaciones de Fierz, dependencia de coordenadas implícita, múltiples tipos de índices y mucho más. El formato de entrada es un subconjunto de TeX. Están disponibles tanto una línea de comandos como una interfaz gráfica.
- Tela [3] es un paquete de software similar a MATLAB y GNU Octave , pero diseñado específicamente para tensores.
Software para utilizar con Mathematica
- Tensor [4] es un paquete de tensores escrito para el sistema Mathematica. Proporciona muchas funciones relevantes para los cálculos de relatividad general en geometrías generales de Riemann-Cartan.
- Ricci [5] es un sistema para Mathematica 2.x y posteriores para realizar análisis tensoriales básicos, disponible de forma gratuita.
- TTC [6] Tools of Tensor Calculus es un paquete de Mathematica para realizar cálculo tensorial y exterior en variedades diferenciables.
- EDC y RGTC, [7] "Exterior Differential Calculus" y "Riemannian Geometry & Tensor Calculus", son paquetes gratuitos de Mathematica para cálculo tensorial especialmente diseñados, pero no solo, para la relatividad general.
- Tensorial [8] "Tensorial 4.0" es un paquete de cálculo tensorial de propósito general para Mathematica.
- xAct: [9] Álgebra computacional tensorial eficiente para Mathematica. xAct es una colección de paquetes para la manipulación rápida de expresiones tensoriales.
- GREAT [10] es un paquete gratuito para Mathematica que calcula la conexión de Christoffel y los tensores básicos de la relatividad general a partir de un tensor métrico dado.
- Atlas 2 para Mathematica [11] es una potente caja de herramientas de Mathematica que permite realizar una amplia gama de cálculos de geometría diferencial moderna.
- GRTensorM [12] es un paquete de álgebra computacional para realizar cálculos en el área general de geometría diferencial.
- MathGR [13] es un paquete para manipular cálculos de tensores y GR con índices abstractos o explícitos, simplificar tensores con simetrías permutacionales, descomponer tensores de índices abstractos a índices parcialmente o completamente explícitos y convertir derivadas parciales en derivadas totales.
- TensoriaCalc [14] es un paquete de cálculo tensorial escrito para Mathematica 9 y versiones posteriores, cuyo objetivo es proporcionar una funcionalidad fácil de usar y una coherencia fluida con el lenguaje de Mathematica. A partir de enero de 2015, dada una métrica y las coordenadas utilizadas, TensoriaCalc puede calcular símbolos de Christoffel, el tensor de curvatura de Riemann y el tensor/escalar de Ricci; permite tensores definidos por el usuario y puede realizar operaciones básicas como tomar las derivadas covariantes de tensores. TensoriaCalc se encuentra en continuo desarrollo debido a las limitaciones de tiempo que enfrenta su desarrollador.
- OGRe [15] es un paquete de Mathematica moderno , gratuito y de código abierto para el cálculo tensorial, lanzado en 2021 para Mathematica 12.0 y versiones posteriores. Está diseñado para ser potente y fácil de usar, y es especialmente adecuado para la relatividad general. OGRe permite realizar operaciones tensoriales arbitrariamente complicadas y transforma automáticamente entre configuraciones de índice y sistemas de coordenadas en segundo plano según sea necesario para cada operación.
Software para utilizar con Maple
- GRTensorII [16] es un paquete de álgebra computacional para realizar cálculos en el área general de geometría diferencial.
- Atlas 2 para Maple [17] es una geometría diferencial moderna para Maple.
- DifferentialGeometry [18] es un paquete que realiza operaciones fundamentales de cálculo en variedades, geometría diferencial, cálculo tensorial, relatividad general, álgebras de Lie, grupos de Lie, grupos de transformación, espacios jet y cálculo variacional. Está incluido en Maple.
- Physics [19] es un paquete desarrollado como parte de Maple, que implementa cálculos simbólicos con la mayoría de los objetos utilizados en física matemática. Incluye objetos de la relatividad general (tensores, métricas, derivadas covariantes, tétradas, etc.), mecánica cuántica (Kets, Bras, conmutadores, variables no conmutativas), etc.
Software para utilizar con Matlab
Software para utilizar con Maxima
Maxima [25] es un sistema de álgebra computacional de propósito general , de código abierto y gratuito , que incluye varios paquetes para cálculos de álgebra tensorial en su distribución principal. Es particularmente útil para cálculos con tensores abstractos, es decir, cuando se desea realizar cálculos sin definir todos los componentes del tensor de manera explícita. Viene con tres paquetes de tensores: [26]
- itensor para manipulación de tensores abstractos (indiciales),
- ctensor para tensores definidos por componentes, y
- sensor para manipulación de tensores algebraicos.
Software para utilizar con R
- Tensor [27] es un paquete R para operaciones tensoriales básicas.
- rTensor [28] proporciona varios enfoques de descomposición de tensores.
- nnTensor [29] proporciona varios enfoques de descomposición de tensores no negativos.
- ttTensor [30] proporciona varios enfoques de descomposición de trenes tensoriales.
- tensorBF [31] es un paquete R para la descomposición del tensor bayesiano.
- MTF [32] Factorización multitensorial bayesiana para fusión de datos y versiones bayesianas de Tensor PCA y Tensor CCA. Software: MTF.
Software para utilizar con Python
- TensorLy [33] proporciona varios enfoques de descomposición de tensores.
- OGRePy [34] es una versión para Python del paquete OGRe de Mathematica (consulte § Software para usar con Mathematica), publicado en 2024 para Python 3.12 y versiones posteriores. Utiliza SymPy para cálculos simbólicos y Jupyter como interfaz de notebook. OGRePy permite calcular fórmulas tensoriales arbitrarias utilizando cualquier combinación de adición, multiplicación por escalar, traza, contracción, derivada parcial, derivada covariante y permutación de índices, y proporciona funciones para calcular varios tensores de curvatura y ecuaciones geodésicas.
Software para utilizar con Julia
- TensorDecompositions.jl [35] proporciona varios enfoques de descomposición de tensores.
- TensorToolbox.jl [36] ofrece varios métodos de descomposición de tensores. Esto sigue la funcionalidad de la caja de herramientas Tensor de MATLAB y la caja de herramientas Hierarchical Tucker.
- ITensors.jl [37] es una biblioteca para crear rápidamente algoritmos de redes tensoriales correctos y eficientes. Esta es la versión Julia de ITensor, no un contenedor de la versión C++ sino implementaciones completas en lenguaje Julia.
- TensorOperations.jl [38] proporciona operaciones tensoriales rápidas utilizando una conveniente notación de índice de Einstein.
- TensorRules.jl [39] proporciona una macro que nos permite utilizar bibliotecas de diferenciación automática (AD) (por ejemplo, Zygote.jl, ForwardDiff.jl) con macros @tensor y @tensoropt en TensorOperations.jl.
Software para utilizar con SageMath
- SageManifolds : cálculo tensorial en variedades suaves; todo el código de SageManifolds [40] está incluido en SageMath desde la versión 7.5; permite realizar cálculos en varios marcos vectoriales y gráficos de coordenadas, sin que sea necesario que la variedad sea paralelizable .
Software para utilizar con Java
- ND4J: matrices N -dimensionales para JVM [41] es una biblioteca Java para operaciones tensoriales básicas y computación científica.
- Tensor: cálculo para tensores multidimensionales regulares o no estructurados. Las entradas escalares son numéricas o de precisión exacta. API inspirada en Mathematica. Biblioteca Java 8 sin dependencias externas.
Bibliotecas
- Redberry [42] es un sistema de álgebra computacional de código abierto diseñado para la manipulación de tensores simbólicos. Redberry proporciona herramientas comunes para la manipulación de expresiones, generalizadas en objetos tensoriales, así como características específicas de tensores: simetrías de índices, entrada de estilo LaTeX , manejo de índices ficticios naturales, múltiples tipos de índices, etc. El paquete HEP incluye herramientas para el cálculo de diagramas de Feynman : álgebra de Dirac y SU(N) , simplificaciones de Levi-Civita , herramientas para el cálculo de contratérminos de un bucle, etc. Redberry está escrito en Java y proporciona un extenso lenguaje de programación basado en Groovy .
- libxm [43] es una biblioteca tensorial distribuida y paralela liviana escrita en C.
- FTensor [44] es una biblioteca tensorial de alto rendimiento escrita en C++.
- TL [45] es una biblioteca de tensores multiproceso implementada en C++ que se utiliza en Dynare++. La biblioteca permite representaciones de tensores plegados/desplegados, densos/dispersos, y rangos generales (simetrías). La biblioteca implementa la fórmula Faa Di Bruno y se adapta a la memoria disponible. Dynare++ es un paquete independiente que resuelve aproximaciones de Taylor de orden superior a equilibrios de modelos estocásticos no lineales con expectativas racionales .
- vmmlib [46] es una biblioteca de álgebra lineal de C++ que admite tensores de 3 vías, enfatizando el cálculo y la manipulación de varias descomposiciones de tensores .
- Spartns [47] es un marco de tensor disperso para Common Lisp .
- FAstMat [48] es una biblioteca de álgebra tensorial general segura para subprocesos escrita en C++ y especialmente diseñada para cálculos de elementos/bordes FEM/FVM/BEM/FDM.
- Cyclops Tensor Framework [49] es una biblioteca de memoria distribuida para la descomposición eficiente de tensores de tipo arbitrario y la ejecución paralela MPI+OpenMP de contracciones/funciones de tensores.
- TiledArray [50] es una biblioteca de tensores escalable y de bloques dispersos que está diseñada para ayudar en la composición rápida de ecuaciones tensoriales algebraicas de alto rendimiento. Está diseñada para escalar desde una sola computadora multinúcleo a un sistema de memoria distribuida y masivamente paralelo.
- libtensor [51] es un conjunto de rutinas de álgebra tensorial lineal de alto rendimiento para tensores grandes que se encuentran en los métodos posteriores a Hartree-Fock en química cuántica.
- ITensor [52] ofrece la contracción automática de los índices tensoriales coincidentes. Está escrito en C++ y tiene características de nivel superior para algoritmos de física cuántica basados en redes tensoriales.
- Fastor [53] es una biblioteca de álgebra tensorial de C++ de alto rendimiento que admite tensores de cualquier dimensión arbitraria y todas sus posibles contracciones y permutaciones. Emplea optimizaciones de búsqueda de grafos en tiempo de compilación para encontrar la secuencia de contracción óptima entre un número arbitrario de tensores en una red. Tiene características específicas de dominio de alto nivel para resolver problemas multifísicos no lineales utilizando FEM.
- Xerus [54] es una biblioteca de álgebra tensorial de C++ para tensores de dimensiones arbitrarias y descomposición de tensores en redes tensoriales generales (centrándose en los estados de producto de matriz ). Ofrece una sintaxis similar a la notación de Einstein y optimiza el orden de contracción de cualquier red de tensores en tiempo de ejecución, de modo que no es necesario fijar las dimensiones en tiempo de compilación.
Referencias
- ^ "SPLATT - Descomposición tensorial dispersa paralela | Karypis Lab".
- ^ "Cadabra: un enfoque motivado por la teoría de campos para el álgebra computacional".
- ^ http://www.ava.fmi.fi/prog/tela.html Tela
- ^ "Cartan: un paquete de Mathematica para el análisis tensorial". Archivado desde el original el 2009-05-31 . Consultado el 2010-01-01 .Tensores en Física
- ^ http://www.math.washington.edu/~lee/Ricci/ Ricci
- ^ https://sites.google.com/view/xjaen-ttc/home TTC
- ^ http://www.inp.demokritos.gr/~sbonano/RGTC/ EDC y RGTC
- ^ http://home.comcast.net/~djmpark/TensorialPage.html Tensorial
- ^ http://www.xact.es/ xAct
- ^ http://library.wolfram.com/infocenter/MathSource/4781/ EXCELENTE
- ^ http://digi-area.com/Mathematica/atlas/ atlas 2 para Mathematica
- ^ http://grtensor.phy.queensu.ca/GRTensorII
- ^ https://github.com/tririver/MathGR; https://arxiv.org/abs/1306.1295MathGR
- ^ http://www.stargazing.net/yizen/Tensoria.html TensoriaCalc
- ^ Shoshany, Barak (2021). "OGRe: Un paquete de relatividad general orientado a objetos para Mathematica". Revista de software de código abierto . 6 (65). The Open Journal: 3416. arXiv : 2109.04193 . doi :10.21105/joss.03416.https://github.com/bshoshany/OGRe
- ^ http://grtensor.phy.queensu.ca/GRTensorII
- ^ http://digi-area.com/Maple/atlas/ atlas 2 para Maple
- ^ "Proyecto de software de geometría diferencial de la Universidad Estatal de Utah | Investigación de la Universidad Estatal de Utah | DigitalCommons@USU".
- ^ "Descripción general del paquete Physics - Ayuda de programación de Maple".
- ^ "Tensorlab | Un paquete de Matlab para cálculos tensoriales".
- ^ http://sandia.gov/~tgkolda/TensorToolbox Caja de herramientas de tensor
- ^ http://www.mathworks.com/matlabcentral/fileexchange/26168 MPCA y MPCA+LDA
- ^ UMPC
- ^ http://www.mathworks.com/matlabcentral/fileexchange/35782 UMLDA
- ^ http://maxima.sourceforge.net/ Maxima en sourceforge.net
- ^ http://maxima.sourceforge.net/docs/manual/en/maxima_27.html#SEC90 La guía del paquete itensor
- ^ Rougier, Jonathan (5 de mayo de 2012), tensor: producto tensorial de matrices , consultado el 10 de diciembre de 2016
- ^ Wells, James Li y Jacob Bien y Martin (15 de diciembre de 2015), rTensor: herramientas para el análisis y descomposición de tensores , consultado el 10 de diciembre de 2016
- ^ Tsuyuzaki, Koki (4 de junio de 2020), nnTensor: descomposición tensorial no negativa , consultado el 4 de marzo de 2021
- ^ Tsuyuzaki, Koki (6 de marzo de 2019), ttTensor: Descomposición de tren tensorial , consultado el 4 de marzo de 2021
- ^ Khan, Suleiman A.; Ammad-ud-din, Muhammad (29 de diciembre de 2016), tensorBF: factorización tensorial bayesiana , consultado el 7 de enero de 2017
- ^ Khan, Suleiman A.; Leppäaho, Eemeli; Kaski, Samuel (10 de junio de 2016). "Factorización multitensorial bayesiana". Aprendizaje automático . 105 (2): 233–253. arXiv : 1412.4679 . doi :10.1007/s10994-016-5563-y. ISSN 0885-6125. S2CID 11871330.
- ^ Kossaifi, Jean; Panagakis, Yannis; Anandkumar, Anima; Pantic, Maja (2019). "TensorLy: aprendizaje tensorial en Python". Revista de investigación en aprendizaje automático . 20 (26): 1–6.
- ^ https://github.com/bshoshany/OGRePy
- ^ yunjhongwu/TensorDecompositions.jl, 16 de septiembre de 2018 , consultado el 4 de marzo de 2021
- ^ Periša, Lana; Arslan, Alex (13 de noviembre de 2019), lanaperisa/TensorToolbox.jl, doi :10.5281/zenodo.3540787 , consultado el 4 de marzo de 2021
- ^ Fishman, Matthew; Shite, Steven R.; Stoudenmire, E. Miles (28 de junio de 2020). "La biblioteca de software ITensor para cálculos de redes tensoriales". Software matemático . arXiv : 2007.14822v1 .
- ^ Jutho/TensorOperations.jl, 23 de noviembre de 2020 , consultado el 4 de marzo de 2021
- ^ Nakano, Hayate (23 de febrero de 2021), ho-oto/TensorRules.jl , consultado el 4 de marzo de 2021
- ^ http://sagemanifolds.obspm.fr/ SageManifolds
- ^ Gibson, Adam (11 de noviembre de 2017), ND4J: matrices N-dimensionales para la JVM , consultado el 10 de diciembre de 2016
- ^ Página de inicio: http://redberry.cc . Proyecto Redberry en Bitbucket : http://bitbucket.org/redberry/redberry
- ^ https://github.com/ilyak/libxmlibxm
- ^ http://www.wlandry.net/Projects/FTensor FTensor
- ^ http://www.cepremap.cnrs.fr/juillard/mambo/download/manual/dynare++/tl.pdf TL
- ^ https://vmml.github.com/vmmlib/vmmlib
- ^ http://aleph0.info/spartns/ Espartanos
- ^ http://www.cimec.org.ar/petscfem FastMat
- ^ "La bifurcación del repositorio cyclops-community/ctf se actualizó de forma aleatoria; anteriormente, esta era la ubicación del repositorio principal: Solomonik/ctf". GitHub . 2018-10-31.
- ^ "Un marco tensorial masivo, de bloques dispersos y paralelos escrito en C++: ValeevGroup/tiledarray". GitHub . 2019-02-03.
- ^ "Descargas - iOpenShell".
- ^ "ITensor - Biblioteca de tensores inteligentes".
- ^ "Un marco de trabajo de álgebra tensorial basado en SIMD, ligero y de alto rendimiento en C++11/14/17: Romeric/Fastor". GitHub . 2019-01-11.
- ^ "Documentación de Xerus - Xerus".