4 Punkte von GN⁺ 2024-12-09 | 1 Kommentare | Auf WhatsApp teilen

Zusammenfassung des Updates für Mathics3/mathics-core

  • Neue Funktionen und Verbesserungen

    • Es wurde an der Unterstützung für Lazy Loading integrierter Funktionen gearbeitet.
    • Python-Code und -Stil wurden modernisiert, Typannotationen hinzugefügt und Rechtschreibfehler beseitigt.
    • Verwendung der neuesten Versionen von SymPy und Python.
    • Neue integrierte Funktionen hinzugefügt: $MaxLengthIntStringConversion, Elements, ComplexExpand, ConjugateTranspose, LeviCivitaTensor, RealAbs, RealSign, RealValuedNumberQ.
  • Dokumentation

    • Formatprobleme in PDF-Dateien wurden behoben.
    • Der Abstand der Nummerierung in Kapitel- und Abschnittsverzeichnissen wurde vergrößert.
    • Der Leerraum rund um integrierte Definitionen wurde erweitert.
    • Rechtschreibfehler wurden korrigiert.
    • Der Code zum Ausführen von doctests und zum Erzeugen von LaTeX-Dokumenten wurde überarbeitet, damit schrittweise Updates integrierter Funktionen möglich sind.
  • Kompatibilität

    • Plot zeigt während der Auswertung keine Meldungen mehr an.
    • Range[] kann jetzt auch negative Werte verarbeiten.
    • Die Unterstützung für DirectedInfinity und Indeterminate wurde verbessert.
    • Im Mathics-Django-Interface werden Tooltipps für Fehlermeldungen angezeigt.
    • $CharacterEncoding kann nun innerhalb einer Sitzung geändert werden.
  • Interne Struktur

    • eval_abs und eval_sign wurden aus Abs und Sign herausgelöst und zu mathics.eval.arithmetic hinzugefügt.
    • Die maximale Stellenzahl von Zeichenketten ist auf 7000 gesetzt und kann über die Umgebungsvariable MATHICS_MAX_STR_DIGITS angepasst werden.
    • Reelle Vergleiche basieren nun auf der internen Implementierung von RealSign.
    • In Python 3.11 steuert $MaxLengthIntStringConversion die maximale Größe bei Umwandlungen zwischen großen Ganzzahlen und Zeichenketten.
  • Fehlerbehebungen

    • Definitions ist mit pickle kompatibel.
    • Die Unterstützung für Quantity-Ausdrücke wurde verbessert.
    • Die Hintergrundoptionen von Graphics und Graphics3D funktionieren.
    • Probleme bei numerischen Vergleichen von Ausdrücken mit Zeichenketten wurden behoben.
    • Ein Problem bei der Verarbeitung von Unendlichkeit in Switch[] wurde behoben.
    • Ein Problem bei der Verarbeitung von SparseArray in Outer[] wurde behoben.
    • ArrayQ[] erkennt nun SparseArray.
    • Ein Problem bei der Behandlung der Ausnahme BoxExpressionError wurde behoben.
    • Probleme bei der Ableitungsauswertung von True, False, List[] wurden behoben.
    • Das Paket Combinatorica wurde korrigiert.
    • Ein Problem mit der Funktionsweise von Exit[] wurde behoben.
    • BaseForm ist in $OutputForms aufgeführt.
  • API-Änderungen

    • Der neue Funktionsaufruf import_and_load_builtins() ist erforderlich.
    • Dies ist zur Unterstützung von Lazy Loading für integrierte Module nötig.
  • Paket-Updates

    • Unterstützung für Python 3.11.
    • Unterstützung für Sympy 1.12.

1 Kommentare

 
GN⁺ 2024-12-09
Hacker-News-Kommentar
  • Ich verfolge dieses Projekt seit einigen Jahren, und für Leute, die sich für Open-Source-Computeralgebrasysteme interessieren, gibt es eine Vielzahl ausgereifter Lösungen

    • von Klassikern wie GNU Octave und Maxima bis hin zu moderneren Optionen wie SAGEmath, Symbolics.jl und sympy
    • das Spektrum reicht von symbolischen Bibliotheken wie GiNaC bis zu "Batteries-included"-IDEs wie SAGEmath
    • SAGEmath war Vorreiter bei webbasierten Notebook-Oberflächen und brachte damit letztlich das hervor, was wir heute als Jupyter kennen
  • Persönlich mag ich den LISPy-Stil von Mathematica, aber die eigentliche Stärke von MMA liegt in seiner riesigen Bibliothek

    • sie umfasst nicht nur branchenführende Lösungen für Kernthemen wie symbolische Integration, 2D/3D-Grafik und die Finite-Elemente-Methode, sondern auch spezialisierte Domänen wie Bioinformatik
    • Mathics hat den Kern gut nachgebildet, aber all diese Bibliotheken fehlen
    • die Logik ist ähnlich wie bei Nachbildungen von Matlab und numpy
  • Wolfram Cloud ist für den privaten Gebrauch kostenlos verfügbar, und Wolfram Engine ist eine Möglichkeit, Mathematica kostenlos über die Kommandozeile zu nutzen

  • Eine kurze Einführung in Mathics gibt es hier

  • Mathematica kann auf dem Raspberry Pi kostenlos genutzt werden, und die meisten Universitäten verfügen über eine Campuslizenz

    • die "Home & Hobby"-Lizenz ist mit 195 $ pro Jahr oder 390 $ als Dauerlizenz relativ günstig
    • ich finde, dass es sich lohnt, den Preis für die Hobby-Lizenz zu zahlen, und dass es eine gute Sache ist, Mathematiksoftware zu unterstützen
  • (F)OSS-Mathematiksoftware spielt weiterhin eine wichtige Rolle

    • Mathematica ist zwar umfassend, hat aber in der höheren Mathematik einige wichtige Schwächen
    • (F)OSS-Software wie GAP, M2 und PARI/GP spielt eine wichtige Rolle dabei, die Lücken der Wolfram Language zu ergänzen
  • Ich habe kein großes Interesse an Projekten, die versuchen, die Funktionen von Mathematica zu replizieren, aber solche Projekte setzen Wolfram Research unter Druck, die Grundfunktionen kontinuierlich zu verbessern

  • Softwareingenieure neigen dazu, nicht für Software bezahlen zu wollen

  • Einer der unbequemen Aspekte von Mathematica ist, dass alle Funktionen in denselben Namespace gedrängt sind und es kein Overloading mit unterschiedlichen Parametrisierungsoptionen gibt