Average Error: 0.1 → 0.1
Time: 24.2s
Precision: 64
\[\left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\right)\]
\[\left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1 \cdot rand}{\sqrt{\left(\sqrt[3]{9} \cdot \sqrt[3]{9}\right) \cdot \left(\sqrt[3]{9} \cdot \left(a - \frac{1}{3}\right)\right)}}\right)\]
\left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\right)
\left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1 \cdot rand}{\sqrt{\left(\sqrt[3]{9} \cdot \sqrt[3]{9}\right) \cdot \left(\sqrt[3]{9} \cdot \left(a - \frac{1}{3}\right)\right)}}\right)
double f(double a, double rand) {
        double r74754 = a;
        double r74755 = 1.0;
        double r74756 = 3.0;
        double r74757 = r74755 / r74756;
        double r74758 = r74754 - r74757;
        double r74759 = 9.0;
        double r74760 = r74759 * r74758;
        double r74761 = sqrt(r74760);
        double r74762 = r74755 / r74761;
        double r74763 = rand;
        double r74764 = r74762 * r74763;
        double r74765 = r74755 + r74764;
        double r74766 = r74758 * r74765;
        return r74766;
}

double f(double a, double rand) {
        double r74767 = a;
        double r74768 = 1.0;
        double r74769 = 3.0;
        double r74770 = r74768 / r74769;
        double r74771 = r74767 - r74770;
        double r74772 = rand;
        double r74773 = r74768 * r74772;
        double r74774 = 9.0;
        double r74775 = cbrt(r74774);
        double r74776 = r74775 * r74775;
        double r74777 = r74775 * r74771;
        double r74778 = r74776 * r74777;
        double r74779 = sqrt(r74778);
        double r74780 = r74773 / r74779;
        double r74781 = r74768 + r74780;
        double r74782 = r74771 * r74781;
        return r74782;
}

Error

Bits error versus a

Bits error versus rand

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.1

    \[\left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\right)\]
  2. Using strategy rm
  3. Applied associate-*l/0.1

    \[\leadsto \left(a - \frac{1}{3}\right) \cdot \left(1 + \color{blue}{\frac{1 \cdot rand}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}}}\right)\]
  4. Using strategy rm
  5. Applied add-cube-cbrt0.1

    \[\leadsto \left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1 \cdot rand}{\sqrt{\color{blue}{\left(\left(\sqrt[3]{9} \cdot \sqrt[3]{9}\right) \cdot \sqrt[3]{9}\right)} \cdot \left(a - \frac{1}{3}\right)}}\right)\]
  6. Applied associate-*l*0.1

    \[\leadsto \left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1 \cdot rand}{\sqrt{\color{blue}{\left(\sqrt[3]{9} \cdot \sqrt[3]{9}\right) \cdot \left(\sqrt[3]{9} \cdot \left(a - \frac{1}{3}\right)\right)}}}\right)\]
  7. Final simplification0.1

    \[\leadsto \left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1 \cdot rand}{\sqrt{\left(\sqrt[3]{9} \cdot \sqrt[3]{9}\right) \cdot \left(\sqrt[3]{9} \cdot \left(a - \frac{1}{3}\right)\right)}}\right)\]

Reproduce

herbie shell --seed 2019198 +o rules:numerics
(FPCore (a rand)
  :name "Octave 3.8, oct_fill_randg"
  (* (- a (/ 1.0 3.0)) (+ 1.0 (* (/ 1.0 (sqrt (* 9.0 (- a (/ 1.0 3.0))))) rand))))