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 |