Average Error: 0.1 → 0.1
Time: 26.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 1 + \frac{a - \frac{1}{3}}{\sqrt{\left(a - \frac{1}{3}\right) \cdot 9}} \cdot \left(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 1 + \frac{a - \frac{1}{3}}{\sqrt{\left(a - \frac{1}{3}\right) \cdot 9}} \cdot \left(1 \cdot rand\right)
double f(double a, double rand) {
        double r4704132 = a;
        double r4704133 = 1.0;
        double r4704134 = 3.0;
        double r4704135 = r4704133 / r4704134;
        double r4704136 = r4704132 - r4704135;
        double r4704137 = 9.0;
        double r4704138 = r4704137 * r4704136;
        double r4704139 = sqrt(r4704138);
        double r4704140 = r4704133 / r4704139;
        double r4704141 = rand;
        double r4704142 = r4704140 * r4704141;
        double r4704143 = r4704133 + r4704142;
        double r4704144 = r4704136 * r4704143;
        return r4704144;
}

double f(double a, double rand) {
        double r4704145 = a;
        double r4704146 = 1.0;
        double r4704147 = 3.0;
        double r4704148 = r4704146 / r4704147;
        double r4704149 = r4704145 - r4704148;
        double r4704150 = r4704149 * r4704146;
        double r4704151 = 9.0;
        double r4704152 = r4704149 * r4704151;
        double r4704153 = sqrt(r4704152);
        double r4704154 = r4704149 / r4704153;
        double r4704155 = rand;
        double r4704156 = r4704146 * r4704155;
        double r4704157 = r4704154 * r4704156;
        double r4704158 = r4704150 + r4704157;
        return r4704158;
}

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

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

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

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

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

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

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

Reproduce

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