Average Error: 0.1 → 0.1
Time: 22.9s
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{\sqrt{1}}{\frac{\sqrt{\left(a - \frac{1}{3}\right) \cdot 9}}{\sqrt{1} \cdot rand}} + 1\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(\frac{\sqrt{1}}{\frac{\sqrt{\left(a - \frac{1}{3}\right) \cdot 9}}{\sqrt{1} \cdot rand}} + 1\right)
double f(double a, double rand) {
        double r84002 = a;
        double r84003 = 1.0;
        double r84004 = 3.0;
        double r84005 = r84003 / r84004;
        double r84006 = r84002 - r84005;
        double r84007 = 9.0;
        double r84008 = r84007 * r84006;
        double r84009 = sqrt(r84008);
        double r84010 = r84003 / r84009;
        double r84011 = rand;
        double r84012 = r84010 * r84011;
        double r84013 = r84003 + r84012;
        double r84014 = r84006 * r84013;
        return r84014;
}

double f(double a, double rand) {
        double r84015 = a;
        double r84016 = 1.0;
        double r84017 = 3.0;
        double r84018 = r84016 / r84017;
        double r84019 = r84015 - r84018;
        double r84020 = sqrt(r84016);
        double r84021 = 9.0;
        double r84022 = r84019 * r84021;
        double r84023 = sqrt(r84022);
        double r84024 = rand;
        double r84025 = r84020 * r84024;
        double r84026 = r84023 / r84025;
        double r84027 = r84020 / r84026;
        double r84028 = r84027 + r84016;
        double r84029 = r84019 * r84028;
        return r84029;
}

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. Simplified0.1

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

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

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

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

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

Reproduce

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