\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 + \frac{\frac{1}{\sqrt{9}}}{{\left(a - \frac{1}{3}\right)}^{\frac{1}{2}}} \cdot rand\right)double f(double a, double rand) {
double r154968 = a;
double r154969 = 1.0;
double r154970 = 3.0;
double r154971 = r154969 / r154970;
double r154972 = r154968 - r154971;
double r154973 = 9.0;
double r154974 = r154973 * r154972;
double r154975 = sqrt(r154974);
double r154976 = r154969 / r154975;
double r154977 = rand;
double r154978 = r154976 * r154977;
double r154979 = r154969 + r154978;
double r154980 = r154972 * r154979;
return r154980;
}
double f(double a, double rand) {
double r154981 = a;
double r154982 = 1.0;
double r154983 = 3.0;
double r154984 = r154982 / r154983;
double r154985 = r154981 - r154984;
double r154986 = 9.0;
double r154987 = sqrt(r154986);
double r154988 = r154982 / r154987;
double r154989 = 0.5;
double r154990 = pow(r154985, r154989);
double r154991 = r154988 / r154990;
double r154992 = rand;
double r154993 = r154991 * r154992;
double r154994 = r154982 + r154993;
double r154995 = r154985 * r154994;
return r154995;
}



Bits error versus a



Bits error versus rand
Results
Initial program 0.1
rmApplied sqrt-prod0.1
Applied associate-/r*0.2
rmApplied pow1/20.2
Final simplification0.2
herbie shell --seed 2019350
(FPCore (a rand)
:name "Octave 3.8, oct_fill_randg"
:precision binary64
(* (- a (/ 1 3)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1 3))))) rand))))