\frac{\left(\left(\left(x.re \cdot x.re\right) - \left(x.im \cdot x.im\right)\right) \cdot x.im\right)}{\left(\left(\frac{\left(x.re \cdot x.im\right)}{\left(x.im \cdot x.re\right)}\right) \cdot x.re\right)}\left(\mathsf{qma}\left(\left(\left(\left(x.im \cdot \left(x.re - x.im\right)\right) \cdot \left(x.im + x.re\right)\right)\right), \left(x.im \cdot \left(x.re + x.re\right)\right), x.re\right)\right)double f(double x_re, double x_im) {
double r1947890 = x_re;
double r1947891 = r1947890 * r1947890;
double r1947892 = x_im;
double r1947893 = r1947892 * r1947892;
double r1947894 = r1947891 - r1947893;
double r1947895 = r1947894 * r1947892;
double r1947896 = r1947890 * r1947892;
double r1947897 = r1947892 * r1947890;
double r1947898 = r1947896 + r1947897;
double r1947899 = r1947898 * r1947890;
double r1947900 = r1947895 + r1947899;
return r1947900;
}
double f(double x_re, double x_im) {
double r1947901 = x_im;
double r1947902 = x_re;
double r1947903 = r1947902 - r1947901;
double r1947904 = r1947901 * r1947903;
double r1947905 = r1947901 + r1947902;
double r1947906 = r1947904 * r1947905;
double r1947907 = /*Error: no posit support in C */;
double r1947908 = r1947902 + r1947902;
double r1947909 = r1947901 * r1947908;
double r1947910 = /*Error: no posit support in C */;
double r1947911 = /*Error: no posit support in C */;
return r1947911;
}



Bits error versus x.re



Bits error versus x.im
Initial program 0.4
rmApplied introduce-quire0.4
Applied insert-quire-fdp-add0.3
Simplified0.3
rmApplied associate-*r*0.3
Final simplification0.3
herbie shell --seed 2019158 +o rules:numerics
(FPCore (x.re x.im)
:name "math.cube on complex, imaginary part"
(+.p16 (*.p16 (-.p16 (*.p16 x.re x.re) (*.p16 x.im x.im)) x.im) (*.p16 (+.p16 (*.p16 x.re x.im) (*.p16 x.im x.re)) x.re)))