algebra 设计
外部接入层级、运算符语义、实现归属以及与 container 字典的关系,请参阅 生态接入指南。
职责
- 表示线性代数需要的语义数学结构。
- 将结构级 trait 与操作级算术 trait 分开。
- 避免把近似浮点行为写成精确代数律。
- 用
AdditiveVector/TransposeMatrix直接表达对象形状和同类型闭合运算。 - 把共享上游标量抽象留在包外,只有用户代码确实需要时再直接导入。
非职责
- 不导入稠密后端类型。
- 不定义存储、可变操作或算法执行 trait。
- 不把内积、范数等返回标量值的映射放入核心结构层。
- 不在缺少显式标量作用模型时引入
Module或VectorSpace。 - 不用包内依赖形状的零元替代上游
Zero。 - 不把动态矩形矩阵乘法这种部分运算塞进最小矩阵形状 trait。
维护说明
如果未来某个 trait 需要关联标量类型,应显式设计出来,而不是把 Double 之类的固定标量偷偷编码进公开 trait。