\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1\left(\left(\left(\sqrt[3]{\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{\left(\frac{2}{2}\right)}} \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{\left(\frac{2}{2}\right)}}} \cdot \sqrt[3]{\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{\left(\frac{2}{2}\right)}}}\right) \cdot \left(\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}} \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{\left(\frac{2}{2}\right)}}\right)\right) \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 + a\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right)\right) - 1double f(double a, double b) {
double r141147 = a;
double r141148 = r141147 * r141147;
double r141149 = b;
double r141150 = r141149 * r141149;
double r141151 = r141148 + r141150;
double r141152 = 2.0;
double r141153 = pow(r141151, r141152);
double r141154 = 4.0;
double r141155 = 1.0;
double r141156 = r141155 + r141147;
double r141157 = r141148 * r141156;
double r141158 = 3.0;
double r141159 = r141158 * r141147;
double r141160 = r141155 - r141159;
double r141161 = r141150 * r141160;
double r141162 = r141157 + r141161;
double r141163 = r141154 * r141162;
double r141164 = r141153 + r141163;
double r141165 = r141164 - r141155;
return r141165;
}
double f(double a, double b) {
double r141166 = a;
double r141167 = r141166 * r141166;
double r141168 = b;
double r141169 = r141168 * r141168;
double r141170 = r141167 + r141169;
double r141171 = 2.0;
double r141172 = 2.0;
double r141173 = r141171 / r141172;
double r141174 = pow(r141170, r141173);
double r141175 = cbrt(r141174);
double r141176 = r141175 * r141175;
double r141177 = cbrt(r141176);
double r141178 = cbrt(r141175);
double r141179 = r141177 * r141178;
double r141180 = pow(r141170, r141171);
double r141181 = cbrt(r141180);
double r141182 = r141181 * r141175;
double r141183 = r141179 * r141182;
double r141184 = r141183 * r141181;
double r141185 = 4.0;
double r141186 = 1.0;
double r141187 = r141186 + r141166;
double r141188 = r141167 * r141187;
double r141189 = 3.0;
double r141190 = r141189 * r141166;
double r141191 = r141186 - r141190;
double r141192 = r141169 * r141191;
double r141193 = r141188 + r141192;
double r141194 = r141185 * r141193;
double r141195 = r141184 + r141194;
double r141196 = r141195 - r141186;
return r141196;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
rmApplied add-cube-cbrt0.5
rmApplied sqr-pow0.5
Applied cbrt-prod0.5
Applied associate-*l*0.5
Simplified0.5
rmApplied add-cube-cbrt0.5
Applied cbrt-prod0.5
Final simplification0.5
herbie shell --seed 2019352 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
:precision binary64
(- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (+ (* (* a a) (+ 1 a)) (* (* b b) (- 1 (* 3 a)))))) 1))