luna-complex
Luna-Flow/luna-complex は Luna Flow に複素数を提供します。ルートパッケージは、任意のスカラー T 上の環 であるジェネリック型 Complex[T] を、その算術および luna-generic の構造インスタンスとともに定義します。float_backend パッケージは、Complex[Double] の解析関数(根、対数、べき乗、三角関数・双曲線関数とその逆関数)を数値的に安定な式で追加し、浮動小数点スカラー向けの能力トレイトも提供します。
このマニュアルは、MoonBit 0.10 上のバージョン 0.2.0(moon.mod に記載のバージョン)のコードを説明します。
パッケージ
| パッケージ | インポートパス | 役割 | ページ |
|---|---|---|---|
core | Luna-Flow/luna-complex | ジェネリックな Complex[T]: 構築、変更、算術、共役、構造インスタンス | API · チュートリアル · 設計 |
float_backend | Luna-Flow/luna-complex/float_backend | Complex[Double] の解析関数。FloatingAnalyticScalar、FloatingSpecialValues、FloatingBackendScalar | API · チュートリアル · 設計 |
ルートパッケージは core という名前で説明しています。float_backend は以前の double_ext パッケージを置き換えるものです。
読み進め方
はじめの一歩。 算術については core チュートリアル を、sqrt、log、sin などの関数については続けて float_backend チュートリアル を読んでください。
ライブラリを使う。 core API と float_backend API を手元に置いてください。後者には、負の実軸上での既知の逸脱を含め、各関数の分枝、特殊値、中断の振る舞いが記載されています。
コントリビュート。 代数とインスタンスが法則を満たすかについては core の設計 を、安定な式と分岐切断の導出については float_backend の設計 を読み、コントリビューションガイド も参照してください。
インストール
moon add Luna-Flow/luna-complex@0.2.0
import {
"Luna-Flow/luna-complex" @complex,
"Luna-Flow/luna-complex/float_backend" @fb,
}
ツールチェーン
moon.mod / moon.pkg マニフェストに対応した MoonBit moonc 0.10 以降。テストは wasm-gc、wasm、js、native で実行されます。
検証
moon check --target all
moon test
moon info