\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 + 1 \cdot \frac{1}{\frac{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}}{rand}}\right)double f(double a, double rand) {
double r70105 = a;
double r70106 = 1.0;
double r70107 = 3.0;
double r70108 = r70106 / r70107;
double r70109 = r70105 - r70108;
double r70110 = 9.0;
double r70111 = r70110 * r70109;
double r70112 = sqrt(r70111);
double r70113 = r70106 / r70112;
double r70114 = rand;
double r70115 = r70113 * r70114;
double r70116 = r70106 + r70115;
double r70117 = r70109 * r70116;
return r70117;
}
double f(double a, double rand) {
double r70118 = a;
double r70119 = 1.0;
double r70120 = 3.0;
double r70121 = r70119 / r70120;
double r70122 = r70118 - r70121;
double r70123 = 1.0;
double r70124 = 9.0;
double r70125 = r70124 * r70122;
double r70126 = sqrt(r70125);
double r70127 = rand;
double r70128 = r70126 / r70127;
double r70129 = r70123 / r70128;
double r70130 = r70119 * r70129;
double r70131 = r70119 + r70130;
double r70132 = r70122 * r70131;
return r70132;
}



Bits error versus a



Bits error versus rand
Results
Initial program 0.1
rmApplied div-inv0.1
Applied associate-*l*0.1
Simplified0.1
rmApplied clear-num0.1
Final simplification0.1
herbie shell --seed 2019323 +o rules:numerics
(FPCore (a rand)
:name "Octave 3.8, oct_fill_randg"
:precision binary64
(* (- a (/ 1 3)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1 3))))) rand))))