\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 + \left(\frac{1}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\right) \cdot \left(a - \frac{1}{3}\right)double f(double a, double rand) {
double r87804 = a;
double r87805 = 1.0;
double r87806 = 3.0;
double r87807 = r87805 / r87806;
double r87808 = r87804 - r87807;
double r87809 = 9.0;
double r87810 = r87809 * r87808;
double r87811 = sqrt(r87810);
double r87812 = r87805 / r87811;
double r87813 = rand;
double r87814 = r87812 * r87813;
double r87815 = r87805 + r87814;
double r87816 = r87808 * r87815;
return r87816;
}
double f(double a, double rand) {
double r87817 = a;
double r87818 = 1.0;
double r87819 = 3.0;
double r87820 = r87818 / r87819;
double r87821 = r87817 - r87820;
double r87822 = r87821 * r87818;
double r87823 = 9.0;
double r87824 = r87823 * r87821;
double r87825 = sqrt(r87824);
double r87826 = r87818 / r87825;
double r87827 = rand;
double r87828 = r87826 * r87827;
double r87829 = r87828 * r87821;
double r87830 = r87822 + r87829;
return r87830;
}



Bits error versus a



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