The standard method value provides a way to evaluate Gates at particular inputs, provided in the form of a ValueHashTable. The results are cached, and thus are not recomputed when called again with the same Gate and ValueHashTable as inputs.
i1 : declareVariable X o1 = X o1 : InputGate |
i2 : declareVariable Y o2 = Y o2 : InputGate |
i3 : C = sumGate {X+Y,Y,X}
o3 = ((X + Y) + Y + X)
o3 : SumGate
|
i4 : D = productGate {X*Y,Y,C}
o4 = ((X * Y) * Y * ((X + Y) + Y + X))
o4 : ProductGate
|
i5 : h = valueHashTable({X,Y},{1,ii})
o5 = ValueHashTable{...2...}
o5 : ValueHashTable
|
i6 : v = value(D,h) o6 = -2-2*ii o6 : CC (of precision 53) |
i7 : v == product{value(X*Y,h),value(Y,h),value(C,h)}
o7 = true
|