\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{1}{\sqrt{9}} \cdot \frac{rand}{\sqrt{a - \frac{1}{3}}}\right)double f(double a, double rand) {
double r67523 = a;
double r67524 = 1.0;
double r67525 = 3.0;
double r67526 = r67524 / r67525;
double r67527 = r67523 - r67526;
double r67528 = 9.0;
double r67529 = r67528 * r67527;
double r67530 = sqrt(r67529);
double r67531 = r67524 / r67530;
double r67532 = rand;
double r67533 = r67531 * r67532;
double r67534 = r67524 + r67533;
double r67535 = r67527 * r67534;
return r67535;
}
double f(double a, double rand) {
double r67536 = a;
double r67537 = 1.0;
double r67538 = 3.0;
double r67539 = r67537 / r67538;
double r67540 = r67536 - r67539;
double r67541 = 9.0;
double r67542 = sqrt(r67541);
double r67543 = r67537 / r67542;
double r67544 = rand;
double r67545 = sqrt(r67540);
double r67546 = r67544 / r67545;
double r67547 = r67543 * r67546;
double r67548 = r67537 + r67547;
double r67549 = r67540 * r67548;
return r67549;
}



Bits error versus a



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