Average Error: 0.1 → 0.1
Time: 46.5s
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(\frac{\frac{rand}{\sqrt{a - \frac{1}{3}}}}{\sqrt{9}} \cdot 1\right) + \left(a - \frac{1}{3}\right) \cdot 1\]
\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(\frac{\frac{rand}{\sqrt{a - \frac{1}{3}}}}{\sqrt{9}} \cdot 1\right) + \left(a - \frac{1}{3}\right) \cdot 1
double f(double a, double rand) {
        double r3768273 = a;
        double r3768274 = 1.0;
        double r3768275 = 3.0;
        double r3768276 = r3768274 / r3768275;
        double r3768277 = r3768273 - r3768276;
        double r3768278 = 9.0;
        double r3768279 = r3768278 * r3768277;
        double r3768280 = sqrt(r3768279);
        double r3768281 = r3768274 / r3768280;
        double r3768282 = rand;
        double r3768283 = r3768281 * r3768282;
        double r3768284 = r3768274 + r3768283;
        double r3768285 = r3768277 * r3768284;
        return r3768285;
}

double f(double a, double rand) {
        double r3768286 = a;
        double r3768287 = 1.0;
        double r3768288 = 3.0;
        double r3768289 = r3768287 / r3768288;
        double r3768290 = r3768286 - r3768289;
        double r3768291 = rand;
        double r3768292 = sqrt(r3768290);
        double r3768293 = r3768291 / r3768292;
        double r3768294 = 9.0;
        double r3768295 = sqrt(r3768294);
        double r3768296 = r3768293 / r3768295;
        double r3768297 = r3768296 * r3768287;
        double r3768298 = r3768290 * r3768297;
        double r3768299 = r3768290 * r3768287;
        double r3768300 = r3768298 + r3768299;
        return r3768300;
}

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{\left(a - \frac{1}{3}\right) \cdot 9}}}\right)\]
  6. Using strategy rm
  7. Applied distribute-rgt-in0.1

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

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

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

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

Reproduce

herbie shell --seed 2019168 
(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))))