dzmingli_vs_floating/bench の設計
設計目標
この実行ファイルはライブラリパッケージを再現可能な実験に変えます。演算、サイズ、シード、プロトコルを固定し、出力ではすべての生レコードを要約の隣に残します。
設計上の決定
- 固定のシード
0xDEC1A1とプロトコル。 コーパスと実行順序が再現でき、JSONL のフィンガープリントが各データセットを識別します。 - サイズごとに 3 データセット。
expand_digit_scales(sizes, 3)はサイズごとに三つのオペランドプロファイルを与えるので、結果が一組のオペランドの偶然にはなりません。確認用の繰り返し 20 回と合わせて 60 組の対応サンプルになります。 - レコードは標準出力、レポートはディスクへ。 JSONL はパイプで渡してアーカイブでき、HTML レポートは実行のたびに再生成されます。
- レポートの後で中断。 検証失敗のある実行もレポートは書き出し、その後失敗として終了するので、スクリプトがそれを正常な実行と取り違えることはありません。
- native のみ。 公開された数値は native のリリースビルドでの計測です。代替の
mainにより、他のターゲットでもmoon check --target allが通ります。
乗算は 10,000 桁で止めます。DzmingLi の桁数見積もりは積が約 21,475 桁を超えるとオーバーフローするからです。他の演算は 20,000 桁まで続けます。拡張の 14 演算は実行時間を妥当に保つため 1,024 桁で止めます。上限の導出はパッケージの設計にあります。
正しさと不変条件
実行ファイルはライブラリのオラクルを通じて、計時の前に各データセットを検証します。パッケージの設計のとおり、サイズは有効な観測を通じてのみ対応のある統計に入ります。
境界
実行ファイルは引数を解析せず、実行時にサイズを選ばず、Matplotlib の図を描かず、実行同士を比較しません。一回の実行が表すのは一つのホストと一つのターゲットです。