\left(\left(\left(x.re \cdot x.re\right) - \left(x.im \cdot x.im\right)\right) \cdot x.re\right) - \left(\left(\frac{\left(x.re \cdot x.im\right)}{\left(x.im \cdot x.re\right)}\right) \cdot x.im\right)\left(x.re + x.im\right) \cdot \left(\left(x.re - x.im\right) \cdot x.re\right) - \left(x.re \cdot x.im + x.im \cdot x.re\right) \cdot x.im
double f(double x_re, double x_im) {
double r695453 = x_re;
double r695454 = r695453 * r695453;
double r695455 = x_im;
double r695456 = r695455 * r695455;
double r695457 = r695454 - r695456;
double r695458 = r695457 * r695453;
double r695459 = r695453 * r695455;
double r695460 = r695455 * r695453;
double r695461 = r695459 + r695460;
double r695462 = r695461 * r695455;
double r695463 = r695458 - r695462;
return r695463;
}
double f(double x_re, double x_im) {
double r695464 = x_re;
double r695465 = x_im;
double r695466 = r695464 + r695465;
double r695467 = r695464 - r695465;
double r695468 = r695467 * r695464;
double r695469 = r695466 * r695468;
double r695470 = r695464 * r695465;
double r695471 = r695465 * r695464;
double r695472 = r695470 + r695471;
double r695473 = r695472 * r695465;
double r695474 = r695469 - r695473;
return r695474;
}



Bits error versus x.re



Bits error versus x.im
Initial program 0.4
rmApplied difference-of-squares0.4
Applied associate-*l*0.4
Final simplification0.4
herbie shell --seed 2019153
(FPCore (x.re x.im)
:name "math.cube on complex, real part"
(-.p16 (*.p16 (-.p16 (*.p16 x.re x.re) (*.p16 x.im x.im)) x.re) (*.p16 (+.p16 (*.p16 x.re x.im) (*.p16 x.im x.re)) x.im)))