Average Error: 0.1 → 0.1
Time: 23.1s
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 + 1 \cdot \frac{\frac{rand}{\sqrt{9}}}{\sqrt{a - \frac{1}{3}}}\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 + 1 \cdot \frac{\frac{rand}{\sqrt{9}}}{\sqrt{a - \frac{1}{3}}}\right)
double f(double a, double rand) {
        double r119481 = a;
        double r119482 = 1.0;
        double r119483 = 3.0;
        double r119484 = r119482 / r119483;
        double r119485 = r119481 - r119484;
        double r119486 = 9.0;
        double r119487 = r119486 * r119485;
        double r119488 = sqrt(r119487);
        double r119489 = r119482 / r119488;
        double r119490 = rand;
        double r119491 = r119489 * r119490;
        double r119492 = r119482 + r119491;
        double r119493 = r119485 * r119492;
        return r119493;
}

double f(double a, double rand) {
        double r119494 = a;
        double r119495 = 1.0;
        double r119496 = 3.0;
        double r119497 = r119495 / r119496;
        double r119498 = r119494 - r119497;
        double r119499 = rand;
        double r119500 = 9.0;
        double r119501 = sqrt(r119500);
        double r119502 = r119499 / r119501;
        double r119503 = sqrt(r119498);
        double r119504 = r119502 / r119503;
        double r119505 = r119495 * r119504;
        double r119506 = r119495 + r119505;
        double r119507 = r119498 * r119506;
        return r119507;
}

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

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

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

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

Reproduce

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