\left(\left(d1 \cdot d2 - d1 \cdot d3\right) + d4 \cdot d1\right) - d1 \cdot d1
\mathsf{fma}\left(d1, d2 - d3, d4 \cdot d1\right) - d1 \cdot d1double f(double d1, double d2, double d3, double d4) {
double r12408326 = d1;
double r12408327 = d2;
double r12408328 = r12408326 * r12408327;
double r12408329 = d3;
double r12408330 = r12408326 * r12408329;
double r12408331 = r12408328 - r12408330;
double r12408332 = d4;
double r12408333 = r12408332 * r12408326;
double r12408334 = r12408331 + r12408333;
double r12408335 = r12408326 * r12408326;
double r12408336 = r12408334 - r12408335;
return r12408336;
}
double f(double d1, double d2, double d3, double d4) {
double r12408337 = d1;
double r12408338 = d2;
double r12408339 = d3;
double r12408340 = r12408338 - r12408339;
double r12408341 = d4;
double r12408342 = r12408341 * r12408337;
double r12408343 = fma(r12408337, r12408340, r12408342);
double r12408344 = r12408337 * r12408337;
double r12408345 = r12408343 - r12408344;
return r12408345;
}




Bits error versus d1




Bits error versus d2




Bits error versus d3




Bits error versus d4
| Original | 0.0 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.0
rmApplied distribute-lft-out--0.0
Applied fma-def0.0
Final simplification0.0
herbie shell --seed 2019151 +o rules:numerics
(FPCore (d1 d2 d3 d4)
:name "FastMath dist4"
:herbie-target
(* d1 (- (+ (- d2 d3) d4) d1))
(- (+ (- (* d1 d2) (* d1 d3)) (* d4 d1)) (* d1 d1)))