Expand description
The “circuit-builder’s” view of an expression. In particular, it represents a template of polynomial relationships between an output computational graph node and outputs from source computational graph nodes.
WARNING: because AbstractExpression does not contain any semblance of MLE sizes nor indices, it can thus represent an entire class of polynomial relationships, depending on its circuit-time instantiation. For example, the simple relationship of
ⓘ
node_id_1 + node_id_2can refer to \widetilde{V}{i}(x_1, …, x_m) + \widetilde{V}{j}(x_1, …, x_n) where:
- m > n, i.e. the second MLE’s “data” is “wrapped around” via repetition
- m = n, i.e. the resulting bookkeeping table is the element-wise sum of the two
- m < n, i.e. the first MLE’s “data” is “wrapped around” via repetition
Enums§
- Abstract
Expression - See [ExpressionNode] for more details. Note that this implementation is somewhat redundant with [Expression] and [ExpressionNode], but the separation allows for more flexibility with respect to this particular frontend being able to create polynomial relationships in any way it chooses, so long as those representations are compile-able into [Expression].