protected override double evaluate(int cacheGeneration) { var value1 = Arg1.Evaluate(cacheGeneration); return(value1 == 0 ? 0 : _evaluate(value1, Arg2.Evaluate(cacheGeneration))); }