This file contains the executor classes for the Crow framework.

All the executors are based on TensorValue classes. It supports all expressions defined in expressions, including the basic function application expressions and a few first-order logic expression types. The executors are designed to be “differentiable”, which means we can directly do backpropagation on the computed values.

The main entry for the executor is the CrowExecutor class. Internally it contains two executor implementations: the basic one, and an “optimistic” one, which handles the case where the value of a variable can be unknown and “optimistic”.




The underlying default implementation for CrowExecutor.