Skip to content

algebra 設計

外部接続レベル、演算子の意味、実装の所有者、container 辞書との関係は エコシステム接続ガイド を参照してください。

責務

  • 線形代数で使う意味論的な数学構造を表します。
  • 構造レベルの trait と、操作だけを表す算術 trait を分離します。
  • 近似的な浮動小数点の振る舞いを、厳密な代数法則として扱いません。
  • AdditiveVector / TransposeMatrix で、対象の形状と同じ型に閉じた演算を直接表します。
  • 共有の上流スカラー抽象はこのパッケージに包み込まず、必要なときだけ利用側コードから直接インポートします。

非責務

  • 密バックエンド型をインポートしません。
  • 保存形式、可変操作、アルゴリズム実行の trait は定義しません。
  • 内積、ノルムなど、スカラー値を返す写像を中核構造層に置きません。
  • 明示的なスカラー作用モデルなしに ModuleVectorSpace を追加しません。
  • パッケージ固有の形状依存の零元を、上流の Zero の代わりに導入しません。
  • 動的な矩形行列乗算のような部分演算を、最小の行列形状 trait に入れません。

保守メモ

将来の trait がスカラーの関連付けを必要とするなら、Double のような固定スカラーを公開 trait に埋め込むのではなく、その関係を明示的に設計します。