仿射模式匹配¶
- extract_affine(fn)[源代码]¶
提取 funsor 的仿射表示,满足
x = ... const, coeffs = extract_affine(x) y = sum(Einsum(eqn, coeff, Variable(var, coeff.output)) for var, (coeff, eqn) in coeffs.items()) assert_close(y, x) assert frozenset(coeffs) == affine_inputs(x)
coeffs
将为每个输入设置一个键,对于这些输入,fn
已知为仿射(通过affine_inputs()
),并且const
和coeffs.values
都将相对于这些输入是常数。仿射近似是通过在零点和每个基向量处计算 `fn` 来获得的。为了提高性能,用户可能希望在
Memoize()
解释器下运行。