Skip to content

Commit ed7dca6

Browse files
authoredJan 29, 2025
Merge pull request #595 from Guest0x0/dev
fix cpp/java benchmark program: wrong output due to logic error
2 parents b2cf5aa + 7411bcb commit ed7dca6

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed
 

‎test/bench/cpp/deriv.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,10 @@ static const Expr* mul( const Expr* x, const Expr* y ) {
9696
return new ValExpr(((ValExpr*)x)->value * ((ValExpr*)y)->value);
9797
}
9898
else if (x->kind==Val && ((ValExpr*)x)->value==0) {
99-
return x;
99+
return new ValExpr(0);
100100
}
101101
else if (y->kind==Val && ((ValExpr*)y)->value==0) {
102-
return y;
102+
return new ValExpr(0);
103103
}
104104
else if (x->kind==Val && ((ValExpr*)x)->value==1) {
105105
return y;

‎test/bench/java/deriv.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,10 @@ static Expr mul( Expr x, Expr y ) {
9393
return new ValExpr( a.value * b.value );
9494
}
9595
else if (x instanceof ValExpr a && a.value == 0) {
96-
return x;
96+
return new ValExpr(0);
9797
}
9898
else if (y instanceof ValExpr b && b.value == 0) {
99-
return y;
99+
return new ValExpr(0);
100100
}
101101
else if (x instanceof ValExpr a && a.value == 1) {
102102
return y;
@@ -110,7 +110,7 @@ else if (y instanceof ValExpr b) {
110110
else if (x instanceof ValExpr a && y instanceof MulExpr b && b.left instanceof ValExpr bl) {
111111
return mul(new ValExpr(a.value * bl.value), b.right);
112112
}
113-
else if (y instanceof MulExpr b && b.left instanceof MulExpr) {
113+
else if (y instanceof MulExpr b && b.left instanceof ValExpr) {
114114
return mul(b.left, mul(x,b.right));
115115
}
116116
else if (x instanceof MulExpr a) {

0 commit comments

Comments
 (0)
Please sign in to comment.