\left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\right)\left(\frac{rand}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} + 1\right) \cdot \left(1 \cdot \left(a - \frac{1}{3}\right)\right)double f(double a, double rand) {
double r56846 = a;
double r56847 = 1.0;
double r56848 = 3.0;
double r56849 = r56847 / r56848;
double r56850 = r56846 - r56849;
double r56851 = 9.0;
double r56852 = r56851 * r56850;
double r56853 = sqrt(r56852);
double r56854 = r56847 / r56853;
double r56855 = rand;
double r56856 = r56854 * r56855;
double r56857 = r56847 + r56856;
double r56858 = r56850 * r56857;
return r56858;
}
double f(double a, double rand) {
double r56859 = rand;
double r56860 = 9.0;
double r56861 = a;
double r56862 = 1.0;
double r56863 = 3.0;
double r56864 = r56862 / r56863;
double r56865 = r56861 - r56864;
double r56866 = r56860 * r56865;
double r56867 = sqrt(r56866);
double r56868 = r56859 / r56867;
double r56869 = 1.0;
double r56870 = r56868 + r56869;
double r56871 = r56862 * r56865;
double r56872 = r56870 * r56871;
return r56872;
}



Bits error versus a



Bits error versus rand
Results
Initial program 0.1
rmApplied associate-*l/0.1
rmApplied add-sqr-sqrt0.1
Final simplification0.1
herbie shell --seed 2019298
(FPCore (a rand)
:name "Octave 3.8, oct_fill_randg"
:precision binary64
(* (- a (/ 1 3)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1 3))))) rand))))