Bug in division eval
This commit is contained in:
9
eval.c
9
eval.c
@@ -63,15 +63,20 @@ int eval_node(node, depth, pvals, pops, ncalcs)
|
|||||||
res=val1+val2;
|
res=val1+val2;
|
||||||
break;
|
break;
|
||||||
case Mul:
|
case Mul:
|
||||||
res=val1*val2;
|
if (val1 > 1 && val2 > 1) /* we avoid "x*1" */
|
||||||
|
res=val1*val2;
|
||||||
break;
|
break;
|
||||||
case Sub:
|
case Sub:
|
||||||
if (val1 > val2)
|
if (val1 > val2)
|
||||||
res=val1-val2;
|
res=val1-val2;
|
||||||
|
if (res == val2) /* we already got this value in tree */
|
||||||
|
res=-1;
|
||||||
break;
|
break;
|
||||||
case Div:
|
case Div:
|
||||||
if (val1 > val2 && (val1 % val2 == 0))
|
if (val1 >= val2 && val2 != 1 && (val1 % val2 == 0))
|
||||||
res=val1/val2;
|
res=val1/val2;
|
||||||
|
if (res == val2) /* we already got this value in tree */
|
||||||
|
res=-1;
|
||||||
break;
|
break;
|
||||||
case Nop:
|
case Nop:
|
||||||
case End:
|
case End:
|
||||||
|
Reference in New Issue
Block a user