Skip to main content

Crate cas_poly

Crate cas_poly 

Source
Expand description

cas 多项式层(P0-M2):有序稀疏分布式多项式,泛型于 Ring 系数。

设计见 cas/DESIGN.md D3:

  • 有序:项按 PolyRing 携带的单项式序(缺省 DegRevLex)严格升序, Poly::terms 的次序即序列化/打印/代码生成次序(D6 四方同序);
  • 稀疏:零系数项不存在,指数向量平坦存储(exps[i*nvars..]);
  • 确定性:构造即规范化(合并同类项、去零、按项序排序); 乘法经哈希合并后必经排序出口,内部哈希迭代序不进入输出。

M2 范围:加/减/乘/幂/偏导/求值。gcd、除法、因式分解属 M3/M4/M5; ℚ 上“本原 ℤ 表示 + 容度“的去分母优化同属 M3。

Structs§

Poly
稀疏有序多项式。exps 长度恒为 nvars × nterms,第 i 项指数为 exps[i*nvars..(i+1)*nvars];项按环的项序严格升序,系数零的项不存在。
PolyRing
多项式环身份 =(变元表, 项序)。相同身份的 Poly 才可相互运算。

Enums§

MonOrder
单项式序。变元位置即 PolyRing::vars 的下标。