matmul_ozaki — DRIVE ozaki op

• 資料種類:matrix × matrix → matrix

• 呼叫: import fullseye as fs; fs.ledger.matmul_ozaki(A, B, n_slices=None, scheme: 'str' = 'ozaki1', tol: 'float' = 1.1102230246251565e-16, on_insufficient: 'str' = 'raise', return_info: 'bool' = False)(要直接呼叫實作,import ozakimm; ozakimm.matmul_ozaki(A, B, n_slices=None, scheme: 'str' = 'ozaki1', tol: 'float' = 1.1102230246251565e-16, on_insufficient: 'str' = 'raise', return_info: 'bool' = False);從台帳取用則 opsdrive.get("matmul_ozaki"))

用法

> 該運算子的說明尚無譯文,以下照原文給出。

FP64 の精度の行列積 `A @ B` を、正確な低精度の部分積から組む(Ozaki-I / Ozaki-II)。

`scheme="ozaki1": n_slices 枚に切る(積 n(n+1)/2 回)。n_slices=None` なら、誤差の保証上界が

`tol · (|A||B|)_ij 以下になる最少の枚数を自動で選ぶ(1〜16 枚)。届かなければ on_insufficient="raise"` で

`ValueError、"fallback" で普通の float64 の積を返す(この場合だけ再現性の約束は外れる。return_info=True`

の `fallback` で分かる)。

`scheme="ozaki2": 法の数を n_slices(2〜20)で必ず指定する(積 n` 回)。自動の選択は無い。

`return_info=True で (C, info)(n_slices・n_products・scheme・fallback`)。

どちらの方式も、同じ入力なら内側の並べ替え・BLAS のスレッド数に依らず同じビット。CPU では DGEMM より 1〜2 桁遅い

(module の docstring の使い分けを参照)。

參考(範例資料・文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

• 演算法的正典(作者・年份)與用途見上面的族使用指南。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• poc_reproducible_icp — py -3.11 examples/poc_reproducible_icp.py

型別可銜接的下一個運算子(可接受 matrix 作為輸入)

world_camera · lidar_scan · relative_motion · foe_from_motion · flow_from_depth_motion · ttc_truth · world_materials · mesh_signed_volume

同類別(ozaki)

matmul_reproducible · ozaki_error_bound · cross_covariance_reproducible · kabsch_reproducible · fp64_emulation_probe


*Provenance: ozakimm.py — DRIVE 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.