Average Error: 0.1 → 0.1
Time: 29.4s
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 + 1 \cdot \frac{1}{\frac{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}}{rand}}\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 + 1 \cdot \frac{1}{\frac{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}}{rand}}\right)
double f(double a, double rand) {
        double r70105 = a;
        double r70106 = 1.0;
        double r70107 = 3.0;
        double r70108 = r70106 / r70107;
        double r70109 = r70105 - r70108;
        double r70110 = 9.0;
        double r70111 = r70110 * r70109;
        double r70112 = sqrt(r70111);
        double r70113 = r70106 / r70112;
        double r70114 = rand;
        double r70115 = r70113 * r70114;
        double r70116 = r70106 + r70115;
        double r70117 = r70109 * r70116;
        return r70117;
}

double f(double a, double rand) {
        double r70118 = a;
        double r70119 = 1.0;
        double r70120 = 3.0;
        double r70121 = r70119 / r70120;
        double r70122 = r70118 - r70121;
        double r70123 = 1.0;
        double r70124 = 9.0;
        double r70125 = r70124 * r70122;
        double r70126 = sqrt(r70125);
        double r70127 = rand;
        double r70128 = r70126 / r70127;
        double r70129 = r70123 / r70128;
        double r70130 = r70119 * r70129;
        double r70131 = r70119 + r70130;
        double r70132 = r70122 * r70131;
        return r70132;
}

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 div-inv0.1

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

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

    \[\leadsto \left(a - \frac{1}{3}\right) \cdot \left(1 + 1 \cdot \color{blue}{\frac{rand}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}}}\right)\]
  6. Using strategy rm
  7. Applied clear-num0.1

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

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

Reproduce

herbie shell --seed 2019323 +o rules:numerics
(FPCore (a rand)
  :name "Octave 3.8, oct_fill_randg"
  :precision binary64
  (* (- a (/ 1 3)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1 3))))) rand))))