\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 r4048715 = x_re;
double r4048716 = r4048715 * r4048715;
double r4048717 = x_im;
double r4048718 = r4048717 * r4048717;
double r4048719 = r4048716 - r4048718;
double r4048720 = r4048719 * r4048715;
double r4048721 = r4048715 * r4048717;
double r4048722 = r4048717 * r4048715;
double r4048723 = r4048721 + r4048722;
double r4048724 = r4048723 * r4048717;
double r4048725 = r4048720 - r4048724;
return r4048725;
}
double f(double x_re, double x_im) {
double r4048726 = x_re;
double r4048727 = x_im;
double r4048728 = r4048726 + r4048727;
double r4048729 = r4048726 - r4048727;
double r4048730 = r4048729 * r4048726;
double r4048731 = r4048728 * r4048730;
double r4048732 = r4048726 * r4048727;
double r4048733 = r4048727 * r4048726;
double r4048734 = r4048732 + r4048733;
double r4048735 = r4048734 * r4048727;
double r4048736 = r4048731 - r4048735;
return r4048736;
}



Bits error versus x.re



Bits error versus x.im
Initial program 0.4
rmApplied difference-of-squares0.4
rmApplied associate-*l*0.4
Final simplification0.4
herbie shell --seed 2019135
(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)))