\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)x.re \cdot \left(\left(x.re - x.im\right) \cdot \left(x.im + x.re\right) - \left(x.im + x.im\right) \cdot x.im\right)
double f(double x_re, double x_im) {
double r3161633 = x_re;
double r3161634 = r3161633 * r3161633;
double r3161635 = x_im;
double r3161636 = r3161635 * r3161635;
double r3161637 = r3161634 - r3161636;
double r3161638 = r3161637 * r3161633;
double r3161639 = r3161633 * r3161635;
double r3161640 = r3161635 * r3161633;
double r3161641 = r3161639 + r3161640;
double r3161642 = r3161641 * r3161635;
double r3161643 = r3161638 - r3161642;
return r3161643;
}
double f(double x_re, double x_im) {
double r3161644 = x_re;
double r3161645 = x_im;
double r3161646 = r3161644 - r3161645;
double r3161647 = r3161645 + r3161644;
double r3161648 = r3161646 * r3161647;
double r3161649 = r3161645 + r3161645;
double r3161650 = r3161649 * r3161645;
double r3161651 = r3161648 - r3161650;
double r3161652 = r3161644 * r3161651;
return r3161652;
}



Bits error versus x.re



Bits error versus x.im
Initial program 0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2019134 +o rules:numerics
(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)))