Average Error: 0.2 → 0.2
Time: 5.0s
Precision: 64
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1\]
\[\left(\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)} + \sqrt{1}\right) \cdot \left(\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)} - \sqrt{1}\right)\]
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - 1
\left(\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)} + \sqrt{1}\right) \cdot \left(\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)} - \sqrt{1}\right)
double f(double a, double b) {
        double r366157 = a;
        double r366158 = r366157 * r366157;
        double r366159 = b;
        double r366160 = r366159 * r366159;
        double r366161 = r366158 + r366160;
        double r366162 = 2.0;
        double r366163 = pow(r366161, r366162);
        double r366164 = 4.0;
        double r366165 = r366164 * r366160;
        double r366166 = r366163 + r366165;
        double r366167 = 1.0;
        double r366168 = r366166 - r366167;
        return r366168;
}

double f(double a, double b) {
        double r366169 = a;
        double r366170 = r366169 * r366169;
        double r366171 = b;
        double r366172 = r366171 * r366171;
        double r366173 = r366170 + r366172;
        double r366174 = 2.0;
        double r366175 = pow(r366173, r366174);
        double r366176 = 4.0;
        double r366177 = r366176 * r366172;
        double r366178 = r366175 + r366177;
        double r366179 = sqrt(r366178);
        double r366180 = 1.0;
        double r366181 = sqrt(r366180);
        double r366182 = r366179 + r366181;
        double r366183 = r366179 - r366181;
        double r366184 = r366182 * r366183;
        return r366184;
}

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(b \cdot b\right)\right) - 1\]
  2. Using strategy rm
  3. Applied add-sqr-sqrt0.2

    \[\leadsto \left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)\right) - \color{blue}{\sqrt{1} \cdot \sqrt{1}}\]
  4. Applied add-sqr-sqrt0.2

    \[\leadsto \color{blue}{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)} \cdot \sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)}} - \sqrt{1} \cdot \sqrt{1}\]
  5. Applied difference-of-squares0.2

    \[\leadsto \color{blue}{\left(\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)} + \sqrt{1}\right) \cdot \left(\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(b \cdot b\right)} - \sqrt{1}\right)}\]
  6. Final simplification0.2

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

Reproduce

herbie shell --seed 2019362 
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (26)"
  :precision binary64
  (- (+ (pow (+ (* a a) (* b b)) 2) (* 4 (* b b))) 1))