4 points par GN⁺ 2024-12-09 | 1 commentaires | Partager sur WhatsApp

Résumé de la mise à jour de Mathics3/mathics-core

  • Nouvelles fonctionnalités et améliorations

    • Des travaux ont été menés pour prendre en charge le chargement paresseux des fonctions intégrées.
    • Modernisation du code Python et du style, ajout d’annotations de type et suppression des fautes d’orthographe.
    • Utilisation des versions les plus récentes de SymPy et de Python.
    • Ajout de nouvelles fonctions intégrées : $MaxLengthIntStringConversion, Elements, ComplexExpand, ConjugateTranspose, LeviCivitaTensor, RealAbs, RealSign, RealValuedNumberQ.
  • Documentation

    • Correction de problèmes de mise en forme dans les fichiers PDF.
    • Augmentation de l’espacement de la numérotation dans les tables des matières des chapitres et sections.
    • Augmentation des espaces autour des définitions intégrées.
    • Correction de fautes d’orthographe.
    • Révision du code d’exécution des doctests et de génération de la documentation LaTeX pour permettre des mises à jour progressives des fonctions intégrées.
  • Compatibilité

    • Plot n’affiche plus de messages pendant l’évaluation.
    • Range[] peut désormais aussi gérer les valeurs négatives.
    • Amélioration de la prise en charge de DirectedInfinity et Indeterminate.
    • Affichage des info-bulles de messages d’erreur dans l’interface Mathics-Django.
    • $CharacterEncoding peut être modifié au sein d’une session.
  • Structure interne

    • eval_abs et eval_sign ont été extraits de Abs et Sign puis ajoutés à mathics.eval.arithmetic.
    • Le nombre maximal de chiffres pour les chaînes est fixé à 7000 et peut être ajusté via la variable d’environnement MATHICS_MAX_STR_DIGITS.
    • Les comparaisons de nombres réels reposent désormais sur l’implémentation interne de RealSign.
    • En Python 3.11, $MaxLengthIntStringConversion contrôle la taille maximale des conversions entre grands entiers et chaînes.
  • Corrections de bugs

    • Definitions est compatible avec pickle.
    • Amélioration de la prise en charge des expressions Quantity.
    • L’option d’arrière-plan fonctionne dans Graphics et Graphics3D.
    • Correction d’un problème de comparaison numérique pour les expressions contenant des chaînes.
    • Correction d’un problème de gestion de l’infini dans Switch[].
    • Correction d’un problème de traitement de SparseArray dans Outer[].
    • ArrayQ[] détecte désormais SparseArray.
    • Correction d’un problème de gestion de l’exception BoxExpressionError.
    • Correction d’un problème d’évaluation des dérivées de True, False, List[].
    • Correctifs du package Combinatorica.
    • Correction d’un problème de fonctionnement de Exit[].
    • BaseForm est listé dans $OutputForms.
  • Modifications de l’API

    • Il est désormais nécessaire d’appeler la nouvelle fonction import_and_load_builtins().
    • Cela est nécessaire pour prendre en charge le chargement paresseux des modules intégrés.
  • Mise à jour des packages

    • Prise en charge de Python 3.11.
    • Prise en charge de Sympy 1.12.

1 commentaires

 
GN⁺ 2024-12-09
Avis Hacker News
  • Je suis ce projet depuis quelques années, et il existe de nombreuses solutions matures pour ceux qui s’intéressent aux systèmes de calcul formel open source

    • Cela va des classiques comme GNU Octave et Maxima aux solutions plus modernes comme SAGEmath, Symbolics.jl et sympy
    • L’éventail va de bibliothèques symboliques comme GiNaC à des IDE « batteries incluses » comme SAGEmath
    • SAGEmath a été pionnier de l’interface de notebook web, qui a ensuite donné naissance à Jupyter tel qu’on le connaît aujourd’hui
  • Personnellement, j’aime le style très LISPy de Mathematica, mais la vraie force de MMA réside dans l’ampleur de ses bibliothèques

    • Cela inclut non seulement des solutions de pointe pour des sujets fondamentaux comme l’intégration symbolique, les graphiques 2D/3D ou la méthode des éléments finis, mais aussi des domaines spécialisés comme la bio-informatique
    • Mathics a bien reproduit le noyau, mais il lui manque l’ensemble des bibliothèques
    • La logique est similaire à celle des clones de Matlab et de numpy
  • Wolfram Cloud est gratuit pour un usage personnel, et Wolfram Engine permet d’utiliser Mathematica gratuitement en ligne de commande

  • Une brève introduction à Mathics est disponible ici

  • Mathematica est gratuit sur Raspberry Pi, et la plupart des universités disposent d’une licence site

    • La licence « Home & Hobby » est relativement abordable, à 195 $ par an ou 390 $ pour une licence perpétuelle
    • Je pense qu’il vaut la peine de payer le prix de la licence loisir, et qu’il est positif de soutenir les logiciels de mathématiques
  • Les logiciels de mathématiques (F)OSS continuent malgré tout de jouer un rôle important

    • Mathematica est complet, mais présente quelques lacunes importantes en mathématiques avancées
    • Des logiciels (F)OSS comme GAP, M2 et PARI/GP jouent un rôle essentiel pour combler les manques du Wolfram Language
  • Je n’ai pas un grand intérêt pour les projets qui cherchent à reproduire les fonctionnalités de Mathematica, mais ils poussent Wolfram Research à améliorer continuellement les fonctions de base

  • Les ingénieurs logiciel ont tendance à ne pas vouloir payer pour leurs logiciels

  • L’un des aspects pénibles de Mathematica est que toutes les fonctions sont entassées dans le même espace de noms, sans surcharge via différentes options de paramétrage