The cost of creating resulting function but not its execution.
The cost of creating resulting function but not its execution.
Thus it is expected to be small. It can be increased if useful cases are found
such that tree
should contains heavy operations.
This class represents context variable and register value of a functional type A => B. When variable or register is accessed using
getVar[A => B](id).get
orbox.getReg[A => B].get an instance of this class is returned.
It internally transforms a given
tree
into executable function. This it similar to what happens during validation of propositions in the input boxes: - size check of underlying ErgoTree against limits - construction ofcalcF
andcostF
graphs, both are stored together with resulting function. - check the types ofcalcF
graph to be compatible with expected types A and B If anything goes wrong, this operation fails and if it is used in the script, the script also fails.When f is obtained as
val f = getVar[Int => Int](id).get
then any applicationf(x)
involves size estimation using underlyingcostF(x)
.