Mathics 7.0 – Mathematicaのオープンソース代替
(github.com/Mathics3)Mathics3/mathics-core アップデート要約
-
新機能と改善点
- 組み込み関数の遅延ロードをサポートするための作業が進行。
- Pythonコードとスタイルをモダン化し、型注釈を追加し、スペルミスを削除。
- SymPyおよびPythonの最新バージョンを使用。
- 新しい組み込み関数を追加:
$MaxLengthIntStringConversion,Elements,ComplexExpand,ConjugateTranspose,LeviCivitaTensor,RealAbs,RealSign,RealValuedNumberQ.
-
ドキュメント
- PDFファイルの書式問題を解決。
- 章および節の目次の番号間隔を拡大。
- 組み込み定義の周辺余白を拡大。
- スペルミスを修正。
doctestsの実行およびLaTeX文書生成コードを改訂し、段階的な組み込み更新を可能に。
-
互換性
Plotは評価中にメッセージを表示しない。Range[]は現在、負数も処理可能。DirectedInfinityおよびIndeterminateのサポートを改善。- Mathics-Djangoインターフェースでエラーメッセージのツールチップを表示。
$CharacterEncodingをセッション内で変更可能。
-
内部構造
eval_absおよびeval_signをAbsとSignから抽出し、mathics.eval.arithmeticに追加。- 文字列の最大桁数は7000に設定され、環境変数
MATHICS_MAX_STR_DIGITSで調整可能。 - 実数比較は現在、
RealSignの内部実装に基づく。 - Python 3.11では、
$MaxLengthIntStringConversionが大きな整数と文字列の間の変換最大サイズを制御。
-
バグ修正
Definitionsはpickleと互換。Quantity式のサポートを改善。GraphicsおよびGraphics3Dの背景オプションが動作。- 文字列を含む式の数値比較問題を解決。
Switch[]の無限大処理問題を解決。Outer[]のSparseArray処理問題を解決。ArrayQ[]はSparseArrayを検出。BoxExpressionError例外処理問題を解決。True,False,List[]の導関数評価問題を解決。Combinatoricaパッケージを修正。Exit[]の動作問題を解決。BaseFormが$OutputFormsに列挙される。
-
API変更点
- 新しい関数
import_and_load_builtins()の呼び出しが必要。 - 組み込みモジュールの遅延ロード対応のために必要。
- 新しい関数
-
パッケージ更新
- Python 3.11をサポート。
- Sympy 1.12をサポート。
1件のコメント
Hacker Newsの意見
このプロジェクトを何年も追ってきたが、オープンソースのコンピュータ代数システムに関心のある人々向けには、成熟した多様なソリューションが存在する
個人的にはMathematicaのLISPyスタイルが好きだが、MMAの強みは膨大なライブラリにある
Wolfram Cloudは個人利用向けに無料で提供されており、Wolfram Engineはコマンドライン経由でMathematicaを無料で使う方法である
Mathicsの簡単な紹介はこちらで確認できる
MathematicaはRaspberry Piで無料で使え、多くの大学がサイトライセンスを保有している
(F)OSSの数学ソフトウェアは依然として重要な役割を果たしている
Mathematicaの機能を再現しようとするプロジェクトにはあまり強い関心はないが、こうしたプロジェクトはWolfram Researchに対し、基本機能を継続的に改善するよう圧力をかけている
ソフトウェアエンジニアはソフトウェアの代金を払いたがらない傾向がある
Mathematicaの不便な点の1つは、すべての関数が同じ名前空間に密集しており、異なるパラメータ化オプションによるオーバーロードが存在しないことである