\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(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a \cdot a\right) \cdot \left(a + 1\right) + \left(b \cdot b\right) \cdot \left(1 - 3 \cdot a\right)\right) \cdot 4\right) - 1double f(double a, double b) {
double r5439066 = a;
double r5439067 = r5439066 * r5439066;
double r5439068 = b;
double r5439069 = r5439068 * r5439068;
double r5439070 = r5439067 + r5439069;
double r5439071 = 2.0;
double r5439072 = pow(r5439070, r5439071);
double r5439073 = 4.0;
double r5439074 = 1.0;
double r5439075 = r5439074 + r5439066;
double r5439076 = r5439067 * r5439075;
double r5439077 = 3.0;
double r5439078 = r5439077 * r5439066;
double r5439079 = r5439074 - r5439078;
double r5439080 = r5439069 * r5439079;
double r5439081 = r5439076 + r5439080;
double r5439082 = r5439073 * r5439081;
double r5439083 = r5439072 + r5439082;
double r5439084 = r5439083 - r5439074;
return r5439084;
}
double f(double a, double b) {
double r5439085 = a;
double r5439086 = r5439085 * r5439085;
double r5439087 = b;
double r5439088 = r5439087 * r5439087;
double r5439089 = r5439086 + r5439088;
double r5439090 = 2.0;
double r5439091 = pow(r5439089, r5439090);
double r5439092 = 1.0;
double r5439093 = r5439085 + r5439092;
double r5439094 = r5439086 * r5439093;
double r5439095 = 3.0;
double r5439096 = r5439095 * r5439085;
double r5439097 = r5439092 - r5439096;
double r5439098 = r5439088 * r5439097;
double r5439099 = r5439094 + r5439098;
double r5439100 = 4.0;
double r5439101 = r5439099 * r5439100;
double r5439102 = r5439091 + r5439101;
double r5439103 = r5439102 - r5439092;
return r5439103;
}



Bits error versus a



Bits error versus b
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2019171 +o rules:numerics
(FPCore (a b)
:name "Bouland and Aaronson, Equation (25)"
(- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (+ 1.0 a)) (* (* b b) (- 1.0 (* 3.0 a)))))) 1.0))