mirror of
https://github.com/powdr-labs/powdr.git
synced 2026-01-09 14:48:16 -05:00
This PR refactors `QuadraticSymbolicExpression`: I removed the reference to [`SymbolicExpression`](f60e9d9f69/constraint-solver/src/quadratic_symbolic_expression.rs (L70)). It can represent values that are known at runtime, represented as an expression. We don't need this in the context of APC: Variables are either unknown or known at compile time, and therefore can be represented as a `FieldElement` instead. The idea is to introduce [this trait](4989be08f3/constraint-solver/src/runtime_constant.rs (L11)), which is implemented by `SymbolicExpression` and any `T: FieldElement`. This way, we can continue to use the solver with `QuadraticSymbolicExpression<SymbolicExpression<T, V>, V>` (equivalent to the current `QuadraticSymbolicExpression<T, V>`) in the old JIT pipeline and use the simpler `QuadraticSymbolicExpression<T, V>` in the APC pipeline. --------- Co-authored-by: chriseth <chriseth.github@gmail.com>
539 B
539 B