Average Error: 0.5 → 0.6
Time: 55.8s
Precision: 64
\[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right)\]
\[\left(\left(\left(x1 \cdot x1\right) \cdot 3 + \left(x1 \cdot \left(\frac{2 \cdot x2 - \left(x1 - \left(x1 \cdot x1\right) \cdot 3\right)}{1 + x1 \cdot x1} - 3\right)\right) \cdot \left(2 \cdot \left(1 + x1 \cdot x1\right)\right)\right) \cdot \frac{2 \cdot x2 - \left(x1 - \left(x1 \cdot x1\right) \cdot 3\right)}{1 + x1 \cdot x1} + \left(x1 + \left(-6 + \frac{4}{1 + x1 \cdot x1} \cdot \left(2 \cdot x2 - \left(x1 - \sqrt{\left(x1 \cdot x1\right) \cdot 3} \cdot \sqrt{\left(x1 \cdot x1\right) \cdot 3}\right)\right)\right) \cdot \left(x1 \cdot x1\right)\right) \cdot \left(1 + x1 \cdot x1\right)\right) + \left(\frac{x2 \cdot -2 + \left(\left(x1 \cdot x1\right) \cdot 3 - x1\right)}{1 + x1 \cdot x1} \cdot 3 + x1\right)\]
x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right)
\left(\left(\left(x1 \cdot x1\right) \cdot 3 + \left(x1 \cdot \left(\frac{2 \cdot x2 - \left(x1 - \left(x1 \cdot x1\right) \cdot 3\right)}{1 + x1 \cdot x1} - 3\right)\right) \cdot \left(2 \cdot \left(1 + x1 \cdot x1\right)\right)\right) \cdot \frac{2 \cdot x2 - \left(x1 - \left(x1 \cdot x1\right) \cdot 3\right)}{1 + x1 \cdot x1} + \left(x1 + \left(-6 + \frac{4}{1 + x1 \cdot x1} \cdot \left(2 \cdot x2 - \left(x1 - \sqrt{\left(x1 \cdot x1\right) \cdot 3} \cdot \sqrt{\left(x1 \cdot x1\right) \cdot 3}\right)\right)\right) \cdot \left(x1 \cdot x1\right)\right) \cdot \left(1 + x1 \cdot x1\right)\right) + \left(\frac{x2 \cdot -2 + \left(\left(x1 \cdot x1\right) \cdot 3 - x1\right)}{1 + x1 \cdot x1} \cdot 3 + x1\right)
double f(double x1, double x2) {
        double r3288614 = x1;
        double r3288615 = 2.0;
        double r3288616 = r3288615 * r3288614;
        double r3288617 = 3.0;
        double r3288618 = r3288617 * r3288614;
        double r3288619 = r3288618 * r3288614;
        double r3288620 = x2;
        double r3288621 = r3288615 * r3288620;
        double r3288622 = r3288619 + r3288621;
        double r3288623 = r3288622 - r3288614;
        double r3288624 = r3288614 * r3288614;
        double r3288625 = 1.0;
        double r3288626 = r3288624 + r3288625;
        double r3288627 = r3288623 / r3288626;
        double r3288628 = r3288616 * r3288627;
        double r3288629 = r3288627 - r3288617;
        double r3288630 = r3288628 * r3288629;
        double r3288631 = 4.0;
        double r3288632 = r3288631 * r3288627;
        double r3288633 = 6.0;
        double r3288634 = r3288632 - r3288633;
        double r3288635 = r3288624 * r3288634;
        double r3288636 = r3288630 + r3288635;
        double r3288637 = r3288636 * r3288626;
        double r3288638 = r3288619 * r3288627;
        double r3288639 = r3288637 + r3288638;
        double r3288640 = r3288624 * r3288614;
        double r3288641 = r3288639 + r3288640;
        double r3288642 = r3288641 + r3288614;
        double r3288643 = r3288619 - r3288621;
        double r3288644 = r3288643 - r3288614;
        double r3288645 = r3288644 / r3288626;
        double r3288646 = r3288617 * r3288645;
        double r3288647 = r3288642 + r3288646;
        double r3288648 = r3288614 + r3288647;
        return r3288648;
}

double f(double x1, double x2) {
        double r3288649 = x1;
        double r3288650 = r3288649 * r3288649;
        double r3288651 = 3.0;
        double r3288652 = r3288650 * r3288651;
        double r3288653 = 2.0;
        double r3288654 = x2;
        double r3288655 = r3288653 * r3288654;
        double r3288656 = r3288649 - r3288652;
        double r3288657 = r3288655 - r3288656;
        double r3288658 = 1.0;
        double r3288659 = r3288658 + r3288650;
        double r3288660 = r3288657 / r3288659;
        double r3288661 = r3288660 - r3288651;
        double r3288662 = r3288649 * r3288661;
        double r3288663 = r3288653 * r3288659;
        double r3288664 = r3288662 * r3288663;
        double r3288665 = r3288652 + r3288664;
        double r3288666 = r3288665 * r3288660;
        double r3288667 = -6.0;
        double r3288668 = 4.0;
        double r3288669 = r3288668 / r3288659;
        double r3288670 = sqrt(r3288652);
        double r3288671 = r3288670 * r3288670;
        double r3288672 = r3288649 - r3288671;
        double r3288673 = r3288655 - r3288672;
        double r3288674 = r3288669 * r3288673;
        double r3288675 = r3288667 + r3288674;
        double r3288676 = r3288675 * r3288650;
        double r3288677 = r3288649 + r3288676;
        double r3288678 = r3288677 * r3288659;
        double r3288679 = r3288666 + r3288678;
        double r3288680 = -2.0;
        double r3288681 = r3288654 * r3288680;
        double r3288682 = r3288652 - r3288649;
        double r3288683 = r3288681 + r3288682;
        double r3288684 = r3288683 / r3288659;
        double r3288685 = r3288684 * r3288651;
        double r3288686 = r3288685 + r3288649;
        double r3288687 = r3288679 + r3288686;
        return r3288687;
}

Error

Bits error versus x1

Bits error versus x2

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.5

    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right)\]
  2. Simplified0.5

    \[\leadsto \color{blue}{\left(x1 + 3 \cdot \frac{\left(\left(x1 \cdot x1\right) \cdot 3 - x1\right) + x2 \cdot -2}{1 + x1 \cdot x1}\right) + \left(\frac{x2 \cdot 2 - \left(x1 - \left(x1 \cdot x1\right) \cdot 3\right)}{1 + x1 \cdot x1} \cdot \left(\left(x1 \cdot x1\right) \cdot 3 + \left(2 \cdot \left(1 + x1 \cdot x1\right)\right) \cdot \left(\left(\frac{x2 \cdot 2 - \left(x1 - \left(x1 \cdot x1\right) \cdot 3\right)}{1 + x1 \cdot x1} - 3\right) \cdot x1\right)\right) + \left(1 + x1 \cdot x1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot \left(\frac{4}{1 + x1 \cdot x1} \cdot \left(x2 \cdot 2 - \left(x1 - \left(x1 \cdot x1\right) \cdot 3\right)\right) + -6\right) + x1\right)\right)}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt0.6

    \[\leadsto \left(x1 + 3 \cdot \frac{\left(\left(x1 \cdot x1\right) \cdot 3 - x1\right) + x2 \cdot -2}{1 + x1 \cdot x1}\right) + \left(\frac{x2 \cdot 2 - \left(x1 - \left(x1 \cdot x1\right) \cdot 3\right)}{1 + x1 \cdot x1} \cdot \left(\left(x1 \cdot x1\right) \cdot 3 + \left(2 \cdot \left(1 + x1 \cdot x1\right)\right) \cdot \left(\left(\frac{x2 \cdot 2 - \left(x1 - \left(x1 \cdot x1\right) \cdot 3\right)}{1 + x1 \cdot x1} - 3\right) \cdot x1\right)\right) + \left(1 + x1 \cdot x1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot \left(\frac{4}{1 + x1 \cdot x1} \cdot \left(x2 \cdot 2 - \left(x1 - \color{blue}{\sqrt{\left(x1 \cdot x1\right) \cdot 3} \cdot \sqrt{\left(x1 \cdot x1\right) \cdot 3}}\right)\right) + -6\right) + x1\right)\right)\]
  5. Final simplification0.6

    \[\leadsto \left(\left(\left(x1 \cdot x1\right) \cdot 3 + \left(x1 \cdot \left(\frac{2 \cdot x2 - \left(x1 - \left(x1 \cdot x1\right) \cdot 3\right)}{1 + x1 \cdot x1} - 3\right)\right) \cdot \left(2 \cdot \left(1 + x1 \cdot x1\right)\right)\right) \cdot \frac{2 \cdot x2 - \left(x1 - \left(x1 \cdot x1\right) \cdot 3\right)}{1 + x1 \cdot x1} + \left(x1 + \left(-6 + \frac{4}{1 + x1 \cdot x1} \cdot \left(2 \cdot x2 - \left(x1 - \sqrt{\left(x1 \cdot x1\right) \cdot 3} \cdot \sqrt{\left(x1 \cdot x1\right) \cdot 3}\right)\right)\right) \cdot \left(x1 \cdot x1\right)\right) \cdot \left(1 + x1 \cdot x1\right)\right) + \left(\frac{x2 \cdot -2 + \left(\left(x1 \cdot x1\right) \cdot 3 - x1\right)}{1 + x1 \cdot x1} \cdot 3 + x1\right)\]

Reproduce

herbie shell --seed 2019149 
(FPCore (x1 x2)
  :name "Rosa's FloatVsDoubleBenchmark"
  (+ x1 (+ (+ (+ (+ (* (+ (* (* (* 2 x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) (- (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)) 3)) (* (* x1 x1) (- (* 4 (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))) 6))) (+ (* x1 x1) 1)) (* (* (* 3 x1) x1) (/ (- (+ (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1)))) (* (* x1 x1) x1)) x1) (* 3 (/ (- (- (* (* 3 x1) x1) (* 2 x2)) x1) (+ (* x1 x1) 1))))))