\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}{\sqrt{9} \cdot \sqrt{a - \frac{1}{3}}}}{\frac{1}{rand}}\right)double f(double a, double rand) {
double r137527 = a;
double r137528 = 1.0;
double r137529 = 3.0;
double r137530 = r137528 / r137529;
double r137531 = r137527 - r137530;
double r137532 = 9.0;
double r137533 = r137532 * r137531;
double r137534 = sqrt(r137533);
double r137535 = r137528 / r137534;
double r137536 = rand;
double r137537 = r137535 * r137536;
double r137538 = r137528 + r137537;
double r137539 = r137531 * r137538;
return r137539;
}
double f(double a, double rand) {
double r137540 = a;
double r137541 = 1.0;
double r137542 = 3.0;
double r137543 = r137541 / r137542;
double r137544 = r137540 - r137543;
double r137545 = 9.0;
double r137546 = sqrt(r137545);
double r137547 = sqrt(r137544);
double r137548 = r137546 * r137547;
double r137549 = r137541 / r137548;
double r137550 = 1.0;
double r137551 = rand;
double r137552 = r137550 / r137551;
double r137553 = r137549 / r137552;
double r137554 = r137541 + r137553;
double r137555 = r137544 * r137554;
return r137555;
}



Bits error versus a



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