Average Error: 0.1 → 0.2
Time: 32.1s
Precision: 64
\[\left(a - \frac{1.0}{3.0}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot rand\right)\]
\[\left(rand \cdot \frac{\frac{1}{3}}{\sqrt{a - \frac{1.0}{3.0}}}\right) \cdot \left(a - \frac{1.0}{3.0}\right) + \left(a - \frac{1.0}{3.0}\right)\]
\left(a - \frac{1.0}{3.0}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot rand\right)
\left(rand \cdot \frac{\frac{1}{3}}{\sqrt{a - \frac{1.0}{3.0}}}\right) \cdot \left(a - \frac{1.0}{3.0}\right) + \left(a - \frac{1.0}{3.0}\right)
double f(double a, double rand) {
        double r3730924 = a;
        double r3730925 = 1.0;
        double r3730926 = 3.0;
        double r3730927 = r3730925 / r3730926;
        double r3730928 = r3730924 - r3730927;
        double r3730929 = 1.0;
        double r3730930 = 9.0;
        double r3730931 = r3730930 * r3730928;
        double r3730932 = sqrt(r3730931);
        double r3730933 = r3730929 / r3730932;
        double r3730934 = rand;
        double r3730935 = r3730933 * r3730934;
        double r3730936 = r3730929 + r3730935;
        double r3730937 = r3730928 * r3730936;
        return r3730937;
}

double f(double a, double rand) {
        double r3730938 = rand;
        double r3730939 = 0.3333333333333333;
        double r3730940 = a;
        double r3730941 = 1.0;
        double r3730942 = 3.0;
        double r3730943 = r3730941 / r3730942;
        double r3730944 = r3730940 - r3730943;
        double r3730945 = sqrt(r3730944);
        double r3730946 = r3730939 / r3730945;
        double r3730947 = r3730938 * r3730946;
        double r3730948 = r3730947 * r3730944;
        double r3730949 = r3730948 + r3730944;
        return r3730949;
}

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.0}{3.0}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot rand\right)\]
  2. Simplified0.1

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

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

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

    \[\leadsto \frac{\color{blue}{\frac{rand}{3}}}{\sqrt{a - \frac{1.0}{3.0}}} \cdot \left(a - \frac{1.0}{3.0}\right) + \left(a - \frac{1.0}{3.0}\right)\]
  7. Using strategy rm
  8. Applied *-un-lft-identity0.1

    \[\leadsto \frac{\frac{rand}{3}}{\sqrt{a - \color{blue}{1 \cdot \frac{1.0}{3.0}}}} \cdot \left(a - \frac{1.0}{3.0}\right) + \left(a - \frac{1.0}{3.0}\right)\]
  9. Applied *-un-lft-identity0.1

    \[\leadsto \frac{\frac{rand}{3}}{\sqrt{\color{blue}{1 \cdot a} - 1 \cdot \frac{1.0}{3.0}}} \cdot \left(a - \frac{1.0}{3.0}\right) + \left(a - \frac{1.0}{3.0}\right)\]
  10. Applied distribute-lft-out--0.1

    \[\leadsto \frac{\frac{rand}{3}}{\sqrt{\color{blue}{1 \cdot \left(a - \frac{1.0}{3.0}\right)}}} \cdot \left(a - \frac{1.0}{3.0}\right) + \left(a - \frac{1.0}{3.0}\right)\]
  11. Applied sqrt-prod0.1

    \[\leadsto \frac{\frac{rand}{3}}{\color{blue}{\sqrt{1} \cdot \sqrt{a - \frac{1.0}{3.0}}}} \cdot \left(a - \frac{1.0}{3.0}\right) + \left(a - \frac{1.0}{3.0}\right)\]
  12. Applied div-inv0.2

    \[\leadsto \frac{\color{blue}{rand \cdot \frac{1}{3}}}{\sqrt{1} \cdot \sqrt{a - \frac{1.0}{3.0}}} \cdot \left(a - \frac{1.0}{3.0}\right) + \left(a - \frac{1.0}{3.0}\right)\]
  13. Applied times-frac0.2

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

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

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

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

Reproduce

herbie shell --seed 2019133 
(FPCore (a rand)
  :name "Octave 3.8, oct_fill_randg"
  (* (- a (/ 1.0 3.0)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand))))