Mathics 7.0 – la alternativa de código abierto a Mathematica
(github.com/Mathics3)Resumen de la actualización de Mathics3/mathics-core
-
Nuevas funciones y mejoras
- Se avanzó en el trabajo para admitir la carga diferida de funciones integradas.
- Se modernizó el código y estilo de Python, se agregaron anotaciones de tipo y se eliminaron errores ortográficos.
- Uso de las versiones más recientes de SymPy y Python.
- Nuevas funciones integradas:
$MaxLengthIntStringConversion,Elements,ComplexExpand,ConjugateTranspose,LeviCivitaTensor,RealAbs,RealSign,RealValuedNumberQ.
-
Documentación
- Se resolvieron problemas de formato en archivos PDF.
- Se aumentó el espaciado de numeración en los índices de capítulos y secciones.
- Se incrementó el espacio en blanco alrededor de las definiciones integradas.
- Se corrigieron errores ortográficos.
- Se revisó el código para ejecutar
doctestsy generar documentación en LaTeX, permitiendo actualizaciones graduales de integrados.
-
Compatibilidad
Plotya no muestra mensajes durante la evaluación.Range[]ahora también puede manejar valores negativos.- Se mejoró el soporte para
DirectedInfinityeIndeterminate. - Se muestran tooltips de mensajes de error en la interfaz Mathics-Django.
$CharacterEncodingpuede cambiarse dentro de la sesión.
-
Estructura interna
eval_absyeval_signse extrajeron deAbsySigny se añadieron amathics.eval.arithmetic.- La cantidad máxima de dígitos en cadenas se fija en 7000 y puede ajustarse con la variable de entorno
MATHICS_MAX_STR_DIGITS. - La comparación de números reales ahora se basa en la implementación interna de
RealSign. - En Python 3.11,
$MaxLengthIntStringConversioncontrola el tamaño máximo de conversión entre enteros grandes y cadenas.
-
Corrección de errores
Definitionses compatible conpickle.- Se mejoró el soporte para expresiones
Quantity. - La opción de fondo funciona en
GraphicsyGraphics3D. - Se resolvió un problema de comparación numérica en expresiones que incluyen cadenas.
- Se resolvió un problema con el manejo de infinito en
Switch[]. - Se resolvió un problema con el manejo de
SparseArrayenOuter[]. ArrayQ[]detectaSparseArray.- Se resolvió un problema en el manejo de excepciones
BoxExpressionError. - Se resolvió un problema en la evaluación de derivadas de
True,False,List[]. - Se corrigió el paquete
Combinatorica. - Se resolvió un problema de funcionamiento de
Exit[]. BaseFormaparece listado en$OutputForms.
-
Cambios en la API
- Ahora es necesario llamar a la nueva función
import_and_load_builtins(). - Esto es necesario para admitir la carga diferida de módulos integrados.
- Ahora es necesario llamar a la nueva función
-
Actualización de paquetes
- Soporte para Python 3.11.
- Soporte para Sympy 1.12.
1 comentarios
Comentarios de Hacker News
He seguido este proyecto durante algunos años, y existen varias soluciones maduras para quienes están interesados en sistemas de álgebra computacional de código abierto
Personalmente me gusta el estilo LISPy de Mathematica, pero la verdadera fortaleza de MMA está en su enorme biblioteca
Wolfram Cloud se ofrece gratis para uso personal, y Wolfram Engine es una forma de usar Mathematica gratis desde la línea de comandos
Una breve introducción a Mathics puede verse aquí
Mathematica puede usarse gratis en Raspberry Pi, y la mayoría de las universidades tienen licencia institucional
El software matemático (F)OSS sigue cumpliendo un papel importante
No me interesan mucho los proyectos que intentan replicar las funciones de Mathematica, pero estos proyectos presionan a Wolfram Research para que siga mejorando las funciones básicas
Los ingenieros de software tienden a no querer pagar por software
Una de las cosas incómodas de Mathematica es que todas las funciones están amontonadas en el mismo espacio de nombres y no hay sobrecarga con distintas opciones de parametrización