concepts.dsl.executors.tensor_value_eager_executor.TensorValueEagerExecutor#
- class TensorValueEagerExecutor[source]#
Bases:
TensorValueExecutorBase
Methods
check_constraint
(constraint[, state])check_eq_constraint
(dtype, x, y, target[, state])execute
(expression[, state, bounded_variables])Execute an expression.
get_bounded_variable
(variable)Get the value of a bounded variable.
Get the implementation of a function.
Check whether the executor has an implementation for a function.
new_bounded_variables
(bvdict)A context manager to add additional bounded variables to the executor.
parse
(expression)Parse an expression.
register_function
(name, func)Register an implementation for a function to the executor.
register_function_implementation
(name, func)Register an implementation for a function.
Retrieve a bounded variable by its name.
set_parser
(parser)Set the parser for the executor.
with_bounded_variables
(bvdict)A context manager to set the bounded variables for the executor.
with_state
([state])A context manager to temporarily set the state of the executor.
Attributes
The bounded variables for the execution.
The function domain of the executor.
The implementations of functions, which is a mapping from function names to implementations.
The parser for the domain.
The Python object store.
The current state of the environment.
The value quantizer.
- __init__(domain, parser=None)[source]#
Initialize a tensor value executor for a function domain.
- Parameters:
domain (FunctionDomain) – the domain of the executor.
parser (ParserBase | None) – the parser to use. If not specified, no parser will be used.
- __new__(**kwargs)#
- check_constraint(constraint, state=None)#
- Parameters:
constraint (Constraint)
state (TensorState | None)
- check_eq_constraint(dtype, x, y, target, state=None)#
- Parameters:
dtype (TensorValueTypeBase)
x (TensorValue)
y (TensorValue)
target (bool)
state (TensorState | None)
- Return type:
- execute(expression, state=None, bounded_variables=None)#
Execute an expression.
- Parameters:
expression (Expression | str) – the expression to execute.
state (TensorState | None) – the state to use. If None, the current state of the executor will be used.
bounded_variables (None | Sequence[Variable] | Dict[str | Variable, str | int | slice | bool | float | Tensor | TensorValue | ObjectConstant | StateObjectReference] | Dict[str, Dict[str, StateObjectReference | slice | TensorValue]]) – the bounded variables to use. If None, the current bounded variables of the executor will be used.
- Returns:
the TensorValue object.
- Return type:
TensorValue | slice | StateObjectReference | ListValue | None | Tuple[TensorValue | slice | StateObjectReference | ListValue | None, …]
- get_bounded_variable(variable)#
Get the value of a bounded variable.
- Parameters:
variable (Variable) – the variable.
- Returns:
the value of the variable.
- Return type:
- get_function_implementation(name)#
Get the implementation of a function. When the executor does not have an implementation for the function, the implementation of the function in the domain will be returned. If that is also None, a KeyError will be raised.
- has_function_implementation(name)#
Check whether the executor has an implementation for a function.
- new_bounded_variables(bvdict)#
A context manager to add additional bounded variables to the executor.
- Parameters:
bvdict (None | Sequence[Variable] | Dict[str | Variable, str | int | slice | bool | float | Tensor | TensorValue | ObjectConstant | StateObjectReference] | Dict[str, Dict[str, StateObjectReference | slice | TensorValue]]) – the new bounded variables.
- parse(expression)#
Parse an expression.
- Parameters:
expression (Expression | str) – the expression to parse. When the input is already an expression, it will be returned directly.
- Returns:
the parsed expression.
- register_function(name, func)#
Register an implementation for a function to the executor. Alias for
register_function_implementation()
.
- register_function_implementation(name, func)#
Register an implementation for a function.
- retrieve_bounded_variable_by_name(name)#
Retrieve a bounded variable by its name.
- Parameters:
name (str) – the name of the variable.
- Returns:
the value of the variable.
- Return type:
- set_parser(parser)#
Set the parser for the executor.
- Parameters:
parser (ParserBase) – the parser.
- with_bounded_variables(bvdict)#
A context manager to set the bounded variables for the executor.
- Parameters:
bvdict (None | Sequence[Variable] | Dict[str | Variable, str | int | slice | bool | float | Tensor | TensorValue | ObjectConstant | StateObjectReference] | Dict[str, Dict[str, StateObjectReference | slice | TensorValue]]) – the bounded variables.
- with_state(state=None)#
A context manager to temporarily set the state of the executor.
- Parameters:
state (TensorState | None)
- property bounded_variables: Dict[str, Dict[str, StateObjectReference | slice | TensorValue]]#
The bounded variables for the execution. Note that most of the time you should use the
get_bounded_variable()
method to get values for the bounded variable.
- property domain: FunctionDomain#
The function domain of the executor.
- property function_implementations: Dict[str, Callable]#
The implementations of functions, which is a mapping from function names to implementations.
- property parser: ParserBase | None#
The parser for the domain.
- property pyobj_store: PyObjectStore#
The Python object store.
- property state: TensorState | None#
The current state of the environment.
- property value_quantizer: ValueQuantizer#
The value quantizer.