Average Error: 0.1 → 0.1
Time: 7.0s
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 1 + \left(a - \frac{1}{3}\right) \cdot \frac{\frac{1 \cdot rand}{\sqrt{9}}}{\sqrt{a - \frac{1}{3}}}\]
\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 1 + \left(a - \frac{1}{3}\right) \cdot \frac{\frac{1 \cdot rand}{\sqrt{9}}}{\sqrt{a - \frac{1}{3}}}
double f(double a, double rand) {
        double r91702 = a;
        double r91703 = 1.0;
        double r91704 = 3.0;
        double r91705 = r91703 / r91704;
        double r91706 = r91702 - r91705;
        double r91707 = 9.0;
        double r91708 = r91707 * r91706;
        double r91709 = sqrt(r91708);
        double r91710 = r91703 / r91709;
        double r91711 = rand;
        double r91712 = r91710 * r91711;
        double r91713 = r91703 + r91712;
        double r91714 = r91706 * r91713;
        return r91714;
}

double f(double a, double rand) {
        double r91715 = a;
        double r91716 = 1.0;
        double r91717 = 3.0;
        double r91718 = r91716 / r91717;
        double r91719 = r91715 - r91718;
        double r91720 = r91719 * r91716;
        double r91721 = rand;
        double r91722 = r91716 * r91721;
        double r91723 = 9.0;
        double r91724 = sqrt(r91723);
        double r91725 = r91722 / r91724;
        double r91726 = sqrt(r91719);
        double r91727 = r91725 / r91726;
        double r91728 = r91719 * r91727;
        double r91729 = r91720 + r91728;
        return r91729;
}

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 distribute-lft-in0.1

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

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

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

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

Reproduce

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