Module abstract_expr

Module abstract_expr 

Source
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_2

can 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§

AbstractExpression
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].