Skip to content

コンテナ能力の設計

数学能力と構造能力

algebra は加算、転置、乗算などの数学的振る舞いを表します。container は 形状、検査付きアクセス、構築、編集モデルを表します。一方だけを提供する型も 正当です。

コンテナ型、要素型、操作の関係は小さな明示的辞書で表します。多引数関係を 無理にグローバルトレイトへ押し込まず、外部型が用途別の辞書を提供できます。

所有権と編集

永続編集は新しい値を返し、共有ストレージがあっても元の値を保持します。 可変編集は渡された値を変更します。別レコードにすることで、コピーと変更を ジェネリックコードが混同しません。

汎用 insert / delete / create / remove は定義しません。疎要素の削除、 ゼロ代入、行削除、サイズ変更は別の操作です。

依存方向と将来

containererror のみに依存し、container/adapters が具象実装へ依存します。 OpenBLAS は container へ直接依存し native 限定のままです。将来の MatrixKernelOps[M, T] は read/build を変更せず、行交換や行基本変形を持つ 任意辞書として追加できます。