\left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\right)1 \cdot \left(a - \frac{1}{3}\right) + \left(1 \cdot \left(a - \frac{1}{3}\right)\right) \cdot \frac{rand}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}}double f(double a, double rand) {
double r4349253 = a;
double r4349254 = 1.0;
double r4349255 = 3.0;
double r4349256 = r4349254 / r4349255;
double r4349257 = r4349253 - r4349256;
double r4349258 = 9.0;
double r4349259 = r4349258 * r4349257;
double r4349260 = sqrt(r4349259);
double r4349261 = r4349254 / r4349260;
double r4349262 = rand;
double r4349263 = r4349261 * r4349262;
double r4349264 = r4349254 + r4349263;
double r4349265 = r4349257 * r4349264;
return r4349265;
}
double f(double a, double rand) {
double r4349266 = 1.0;
double r4349267 = a;
double r4349268 = 3.0;
double r4349269 = r4349266 / r4349268;
double r4349270 = r4349267 - r4349269;
double r4349271 = r4349266 * r4349270;
double r4349272 = rand;
double r4349273 = 9.0;
double r4349274 = r4349273 * r4349270;
double r4349275 = sqrt(r4349274);
double r4349276 = r4349272 / r4349275;
double r4349277 = r4349271 * r4349276;
double r4349278 = r4349271 + r4349277;
return r4349278;
}



Bits error versus a



Bits error versus rand
Results
Initial program 0.1
rmApplied distribute-lft-in0.1
Simplified0.1
rmApplied div-inv0.1
Applied associate-*l*0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019172
(FPCore (a rand)
:name "Octave 3.8, oct_fill_randg"
(* (- a (/ 1.0 3.0)) (+ 1.0 (* (/ 1.0 (sqrt (* 9.0 (- a (/ 1.0 3.0))))) rand))))