\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{1 \cdot rand}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}}\right)double f(double a, double rand) {
double r80092 = a;
double r80093 = 1.0;
double r80094 = 3.0;
double r80095 = r80093 / r80094;
double r80096 = r80092 - r80095;
double r80097 = 9.0;
double r80098 = r80097 * r80096;
double r80099 = sqrt(r80098);
double r80100 = r80093 / r80099;
double r80101 = rand;
double r80102 = r80100 * r80101;
double r80103 = r80093 + r80102;
double r80104 = r80096 * r80103;
return r80104;
}
double f(double a, double rand) {
double r80105 = a;
double r80106 = 1.0;
double r80107 = 3.0;
double r80108 = r80106 / r80107;
double r80109 = r80105 - r80108;
double r80110 = rand;
double r80111 = r80106 * r80110;
double r80112 = 9.0;
double r80113 = r80112 * r80109;
double r80114 = sqrt(r80113);
double r80115 = r80111 / r80114;
double r80116 = r80106 + r80115;
double r80117 = r80109 * r80116;
return r80117;
}



Bits error versus a



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