Average Error: 0.5 → 0.6
Time: 40.6s
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)\]
\[x1 + \left(3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - x2 \cdot 2\right) - x1}{1 + x1 \cdot x1} + \left(x1 + \left(\left(\left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(x2 \cdot 2 + \left(3 \cdot x1\right) \cdot x1\right) - x1}{1 + x1 \cdot x1} + \left(\left(\frac{\left(x2 \cdot 2 + \left(3 \cdot x1\right) \cdot x1\right) - x1}{1 + x1 \cdot x1} - 3\right) \cdot \left(\left(x1 \cdot 2\right) \cdot \frac{\left(x2 \cdot 2 + \left(3 \cdot x1\right) \cdot x1\right) - x1}{1 + x1 \cdot x1}\right) + \sqrt[3]{\left(4 \cdot \frac{\mathsf{fma}\left(3 \cdot x1, x1, x2 \cdot 2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)} - 6\right) \cdot \left(x1 \cdot x1\right)} \cdot \left(\sqrt[3]{\left(4 \cdot \frac{\mathsf{fma}\left(3 \cdot x1, x1, x2 \cdot 2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)} - 6\right) \cdot \left(x1 \cdot x1\right)} \cdot \sqrt[3]{\left(4 \cdot \frac{\mathsf{fma}\left(3 \cdot x1, x1, x2 \cdot 2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)} - 6\right) \cdot \left(x1 \cdot x1\right)}\right)\right) \cdot \left(1 + x1 \cdot x1\right)\right) + x1 \cdot \left(x1 \cdot x1\right)\right)\right)\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)
x1 + \left(3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - x2 \cdot 2\right) - x1}{1 + x1 \cdot x1} + \left(x1 + \left(\left(\left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(x2 \cdot 2 + \left(3 \cdot x1\right) \cdot x1\right) - x1}{1 + x1 \cdot x1} + \left(\left(\frac{\left(x2 \cdot 2 + \left(3 \cdot x1\right) \cdot x1\right) - x1}{1 + x1 \cdot x1} - 3\right) \cdot \left(\left(x1 \cdot 2\right) \cdot \frac{\left(x2 \cdot 2 + \left(3 \cdot x1\right) \cdot x1\right) - x1}{1 + x1 \cdot x1}\right) + \sqrt[3]{\left(4 \cdot \frac{\mathsf{fma}\left(3 \cdot x1, x1, x2 \cdot 2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)} - 6\right) \cdot \left(x1 \cdot x1\right)} \cdot \left(\sqrt[3]{\left(4 \cdot \frac{\mathsf{fma}\left(3 \cdot x1, x1, x2 \cdot 2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)} - 6\right) \cdot \left(x1 \cdot x1\right)} \cdot \sqrt[3]{\left(4 \cdot \frac{\mathsf{fma}\left(3 \cdot x1, x1, x2 \cdot 2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)} - 6\right) \cdot \left(x1 \cdot x1\right)}\right)\right) \cdot \left(1 + x1 \cdot x1\right)\right) + x1 \cdot \left(x1 \cdot x1\right)\right)\right)\right)
double f(double x1, double x2) {
        double r79654 = x1;
        double r79655 = 2.0;
        double r79656 = r79655 * r79654;
        double r79657 = 3.0;
        double r79658 = r79657 * r79654;
        double r79659 = r79658 * r79654;
        double r79660 = x2;
        double r79661 = r79655 * r79660;
        double r79662 = r79659 + r79661;
        double r79663 = r79662 - r79654;
        double r79664 = r79654 * r79654;
        double r79665 = 1.0;
        double r79666 = r79664 + r79665;
        double r79667 = r79663 / r79666;
        double r79668 = r79656 * r79667;
        double r79669 = r79667 - r79657;
        double r79670 = r79668 * r79669;
        double r79671 = 4.0;
        double r79672 = r79671 * r79667;
        double r79673 = 6.0;
        double r79674 = r79672 - r79673;
        double r79675 = r79664 * r79674;
        double r79676 = r79670 + r79675;
        double r79677 = r79676 * r79666;
        double r79678 = r79659 * r79667;
        double r79679 = r79677 + r79678;
        double r79680 = r79664 * r79654;
        double r79681 = r79679 + r79680;
        double r79682 = r79681 + r79654;
        double r79683 = r79659 - r79661;
        double r79684 = r79683 - r79654;
        double r79685 = r79684 / r79666;
        double r79686 = r79657 * r79685;
        double r79687 = r79682 + r79686;
        double r79688 = r79654 + r79687;
        return r79688;
}

double f(double x1, double x2) {
        double r79689 = x1;
        double r79690 = 3.0;
        double r79691 = r79690 * r79689;
        double r79692 = r79691 * r79689;
        double r79693 = x2;
        double r79694 = 2.0;
        double r79695 = r79693 * r79694;
        double r79696 = r79692 - r79695;
        double r79697 = r79696 - r79689;
        double r79698 = 1.0;
        double r79699 = r79689 * r79689;
        double r79700 = r79698 + r79699;
        double r79701 = r79697 / r79700;
        double r79702 = r79690 * r79701;
        double r79703 = r79695 + r79692;
        double r79704 = r79703 - r79689;
        double r79705 = r79704 / r79700;
        double r79706 = r79692 * r79705;
        double r79707 = r79705 - r79690;
        double r79708 = r79689 * r79694;
        double r79709 = r79708 * r79705;
        double r79710 = r79707 * r79709;
        double r79711 = 4.0;
        double r79712 = fma(r79691, r79689, r79695);
        double r79713 = r79712 - r79689;
        double r79714 = fma(r79689, r79689, r79698);
        double r79715 = r79713 / r79714;
        double r79716 = r79711 * r79715;
        double r79717 = 6.0;
        double r79718 = r79716 - r79717;
        double r79719 = r79718 * r79699;
        double r79720 = cbrt(r79719);
        double r79721 = r79720 * r79720;
        double r79722 = r79720 * r79721;
        double r79723 = r79710 + r79722;
        double r79724 = r79723 * r79700;
        double r79725 = r79706 + r79724;
        double r79726 = r79689 * r79699;
        double r79727 = r79725 + r79726;
        double r79728 = r79689 + r79727;
        double r79729 = r79702 + r79728;
        double r79730 = r79689 + r79729;
        return r79730;
}

Error

Bits error versus x1

Bits error versus x2

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. Using strategy rm
  3. Applied add-cube-cbrt0.6

    \[\leadsto 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) + \color{blue}{\left(\sqrt[3]{\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)} \cdot \sqrt[3]{\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 \sqrt[3]{\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)\]
  4. Simplified0.6

    \[\leadsto 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) + \color{blue}{\left(\sqrt[3]{\left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\mathsf{fma}\left(3 \cdot x1, x1, x2 \cdot 2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)} - 6\right)} \cdot \sqrt[3]{\left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\mathsf{fma}\left(3 \cdot x1, x1, x2 \cdot 2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)} - 6\right)}\right)} \cdot \sqrt[3]{\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)\]
  5. Simplified0.6

    \[\leadsto 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(\sqrt[3]{\left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\mathsf{fma}\left(3 \cdot x1, x1, x2 \cdot 2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)} - 6\right)} \cdot \sqrt[3]{\left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\mathsf{fma}\left(3 \cdot x1, x1, x2 \cdot 2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)} - 6\right)}\right) \cdot \color{blue}{\sqrt[3]{\left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\mathsf{fma}\left(3 \cdot x1, x1, x2 \cdot 2\right) - x1}{\mathsf{fma}\left(x1, x1, 1\right)} - 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)\]
  6. Final simplification0.6

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

Reproduce

herbie shell --seed 2019174 +o rules:numerics
(FPCore (x1 x2)
  :name "Rosa's FloatVsDoubleBenchmark"
  (+ x1 (+ (+ (+ (+ (* (+ (* (* (* 2.0 x1) (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0))) (- (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0)) 3.0)) (* (* x1 x1) (- (* 4.0 (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0))) 6.0))) (+ (* x1 x1) 1.0)) (* (* (* 3.0 x1) x1) (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0)))) (* (* x1 x1) x1)) x1) (* 3.0 (/ (- (- (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0))))))