Average Error: 0.2 → 0.2
Time: 22.3s
Precision: 64
\[\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(3 + a\right)\right)\right) - 1\]
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4\right) - 1\]
\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(3 + a\right)\right)\right) - 1
\left({\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4\right) - 1
double f(double a, double b) {
        double r11792118 = a;
        double r11792119 = r11792118 * r11792118;
        double r11792120 = b;
        double r11792121 = r11792120 * r11792120;
        double r11792122 = r11792119 + r11792121;
        double r11792123 = 2.0;
        double r11792124 = pow(r11792122, r11792123);
        double r11792125 = 4.0;
        double r11792126 = 1.0;
        double r11792127 = r11792126 - r11792118;
        double r11792128 = r11792119 * r11792127;
        double r11792129 = 3.0;
        double r11792130 = r11792129 + r11792118;
        double r11792131 = r11792121 * r11792130;
        double r11792132 = r11792128 + r11792131;
        double r11792133 = r11792125 * r11792132;
        double r11792134 = r11792124 + r11792133;
        double r11792135 = r11792134 - r11792126;
        return r11792135;
}

double f(double a, double b) {
        double r11792136 = a;
        double r11792137 = r11792136 * r11792136;
        double r11792138 = b;
        double r11792139 = r11792138 * r11792138;
        double r11792140 = r11792137 + r11792139;
        double r11792141 = 2.0;
        double r11792142 = pow(r11792140, r11792141);
        double r11792143 = 3.0;
        double r11792144 = r11792136 + r11792143;
        double r11792145 = r11792144 * r11792139;
        double r11792146 = 1.0;
        double r11792147 = r11792146 - r11792136;
        double r11792148 = r11792137 * r11792147;
        double r11792149 = r11792145 + r11792148;
        double r11792150 = 4.0;
        double r11792151 = r11792149 * r11792150;
        double r11792152 = r11792142 + r11792151;
        double r11792153 = r11792152 - r11792146;
        return r11792153;
}

Error

Bits error versus a

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.2

    \[\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(3 + a\right)\right)\right) - 1\]
  2. Final simplification0.2

    \[\leadsto \left({\left(a \cdot a + b \cdot b\right)}^{2} + \left(\left(a + 3\right) \cdot \left(b \cdot b\right) + \left(a \cdot a\right) \cdot \left(1 - a\right)\right) \cdot 4\right) - 1\]

Reproduce

herbie shell --seed 2019171 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (24)"
  (- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (- 1.0 a)) (* (* b b) (+ 3.0 a))))) 1.0))