Average Error: 0.5 → 0.5
Time: 6.8s
Precision: 64
\[\sqrt{x - 1} \cdot \sqrt{x}\]
\[\sqrt{x - 1} \cdot \sqrt{x}\]
double f(double x) {
        double r77690 = x;
        double r77691 = 1.0;
        double r77692 = r77690 - r77691;
        double r77693 = sqrt(r77692);
        double r77694 = sqrt(r77690);
        double r77695 = r77693 * r77694;
        return r77695;
}

double f(double x) {
        double r77696 = x;
        double r77697 = 1.0;
        double r77698 = r77696 - r77697;
        double r77699 = sqrt(r77698);
        double r77700 = sqrt(r77696);
        double r77701 = r77699 * r77700;
        return r77701;
}

\sqrt{x - 1} \cdot \sqrt{x}
\sqrt{x - 1} \cdot \sqrt{x}

Error

Bits error versus x

Derivation

  1. Initial program 0.5

    \[\sqrt{x - 1} \cdot \sqrt{x}\]
  2. Final simplification0.5

    \[\leadsto \sqrt{x - 1} \cdot \sqrt{x}\]

Reproduce

herbie shell --seed 2019102 +o rules:numerics
(FPCore (x)
  :name "sqrt times"
  (* (sqrt (- x 1)) (sqrt x)))