\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 \cdot rand}{\sqrt{9}}}{\sqrt{a - \frac{1}{3}}}\right)double f(double a, double rand) {
double r155344 = a;
double r155345 = 1.0;
double r155346 = 3.0;
double r155347 = r155345 / r155346;
double r155348 = r155344 - r155347;
double r155349 = 9.0;
double r155350 = r155349 * r155348;
double r155351 = sqrt(r155350);
double r155352 = r155345 / r155351;
double r155353 = rand;
double r155354 = r155352 * r155353;
double r155355 = r155345 + r155354;
double r155356 = r155348 * r155355;
return r155356;
}
double f(double a, double rand) {
double r155357 = a;
double r155358 = 1.0;
double r155359 = 3.0;
double r155360 = r155358 / r155359;
double r155361 = r155357 - r155360;
double r155362 = rand;
double r155363 = r155358 * r155362;
double r155364 = 9.0;
double r155365 = sqrt(r155364);
double r155366 = r155363 / r155365;
double r155367 = sqrt(r155361);
double r155368 = r155366 / r155367;
double r155369 = r155358 + r155368;
double r155370 = r155361 * r155369;
return r155370;
}



Bits error versus a



Bits error versus rand
Results
Initial program 0.1
rmApplied sqrt-prod0.2
Applied *-un-lft-identity0.2
Applied times-frac0.2
Applied associate-*l*0.2
rmApplied associate-*l/0.2
Applied associate-*r/0.2
Simplified0.1
Final simplification0.1
herbie shell --seed 2020020
(FPCore (a rand)
:name "Octave 3.8, oct_fill_randg"
:precision binary64
(* (- a (/ 1 3)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1 3))))) rand))))