Average Error: 0.1 → 0.1
Time: 30.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 + \frac{1}{\frac{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}}{1 \cdot 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 + \frac{1}{\frac{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}}{1 \cdot rand}}\right)
double f(double a, double rand) {
        double r66599 = a;
        double r66600 = 1.0;
        double r66601 = 3.0;
        double r66602 = r66600 / r66601;
        double r66603 = r66599 - r66602;
        double r66604 = 9.0;
        double r66605 = r66604 * r66603;
        double r66606 = sqrt(r66605);
        double r66607 = r66600 / r66606;
        double r66608 = rand;
        double r66609 = r66607 * r66608;
        double r66610 = r66600 + r66609;
        double r66611 = r66603 * r66610;
        return r66611;
}

double f(double a, double rand) {
        double r66612 = a;
        double r66613 = 1.0;
        double r66614 = 3.0;
        double r66615 = r66613 / r66614;
        double r66616 = r66612 - r66615;
        double r66617 = 1.0;
        double r66618 = 9.0;
        double r66619 = r66618 * r66616;
        double r66620 = sqrt(r66619);
        double r66621 = rand;
        double r66622 = r66613 * r66621;
        double r66623 = r66620 / r66622;
        double r66624 = r66617 / r66623;
        double r66625 = r66613 + r66624;
        double r66626 = r66616 * r66625;
        return r66626;
}

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 clear-num0.1

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

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

Reproduce

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