Average Error: 0.1 → 0.2
Time: 22.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{\frac{1}{\sqrt{9}}}{{\left(a - \frac{1}{3}\right)}^{\frac{1}{2}}} \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{\frac{1}{\sqrt{9}}}{{\left(a - \frac{1}{3}\right)}^{\frac{1}{2}}} \cdot rand\right)
double f(double a, double rand) {
        double r154968 = a;
        double r154969 = 1.0;
        double r154970 = 3.0;
        double r154971 = r154969 / r154970;
        double r154972 = r154968 - r154971;
        double r154973 = 9.0;
        double r154974 = r154973 * r154972;
        double r154975 = sqrt(r154974);
        double r154976 = r154969 / r154975;
        double r154977 = rand;
        double r154978 = r154976 * r154977;
        double r154979 = r154969 + r154978;
        double r154980 = r154972 * r154979;
        return r154980;
}

double f(double a, double rand) {
        double r154981 = a;
        double r154982 = 1.0;
        double r154983 = 3.0;
        double r154984 = r154982 / r154983;
        double r154985 = r154981 - r154984;
        double r154986 = 9.0;
        double r154987 = sqrt(r154986);
        double r154988 = r154982 / r154987;
        double r154989 = 0.5;
        double r154990 = pow(r154985, r154989);
        double r154991 = r154988 / r154990;
        double r154992 = rand;
        double r154993 = r154991 * r154992;
        double r154994 = r154982 + r154993;
        double r154995 = r154985 * r154994;
        return r154995;
}

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 sqrt-prod0.1

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

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

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

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

Reproduce

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