algebra 設計
外部接続レベル、演算子の意味、実装の所有者、container 辞書との関係は エコシステム接続ガイド を参照してください。
責務
- 線形代数で使う意味論的な数学構造を表します。
- 構造レベルの trait と、操作だけを表す算術 trait を分離します。
- 近似的な浮動小数点の振る舞いを、厳密な代数法則として扱いません。
AdditiveVector/TransposeMatrixで、対象の形状と同じ型に閉じた演算を直接表します。- 共有の上流スカラー抽象はこのパッケージに包み込まず、必要なときだけ利用側コードから直接インポートします。
非責務
- 密バックエンド型をインポートしません。
- 保存形式、可変操作、アルゴリズム実行の trait は定義しません。
- 内積、ノルムなど、スカラー値を返す写像を中核構造層に置きません。
- 明示的なスカラー作用モデルなしに
ModuleやVectorSpaceを追加しません。 - パッケージ固有の形状依存の零元を、上流の
Zeroの代わりに導入しません。 - 動的な矩形行列乗算のような部分演算を、最小の行列形状 trait に入れません。
保守メモ
将来の trait がスカラーの関連付けを必要とするなら、Double のような固定スカラーを公開 trait に埋め込むのではなく、その関係を明示的に設計します。