\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(\frac{\frac{rand}{\sqrt{a - \frac{1}{3}}}}{\sqrt{9}} \cdot 1\right) + \left(a - \frac{1}{3}\right) \cdot 1double f(double a, double rand) {
double r3768273 = a;
double r3768274 = 1.0;
double r3768275 = 3.0;
double r3768276 = r3768274 / r3768275;
double r3768277 = r3768273 - r3768276;
double r3768278 = 9.0;
double r3768279 = r3768278 * r3768277;
double r3768280 = sqrt(r3768279);
double r3768281 = r3768274 / r3768280;
double r3768282 = rand;
double r3768283 = r3768281 * r3768282;
double r3768284 = r3768274 + r3768283;
double r3768285 = r3768277 * r3768284;
return r3768285;
}
double f(double a, double rand) {
double r3768286 = a;
double r3768287 = 1.0;
double r3768288 = 3.0;
double r3768289 = r3768287 / r3768288;
double r3768290 = r3768286 - r3768289;
double r3768291 = rand;
double r3768292 = sqrt(r3768290);
double r3768293 = r3768291 / r3768292;
double r3768294 = 9.0;
double r3768295 = sqrt(r3768294);
double r3768296 = r3768293 / r3768295;
double r3768297 = r3768296 * r3768287;
double r3768298 = r3768290 * r3768297;
double r3768299 = r3768290 * r3768287;
double r3768300 = r3768298 + r3768299;
return r3768300;
}



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 distribute-rgt-in0.1
rmApplied sqrt-prod0.1
Applied associate-/r*0.1
Final simplification0.1
herbie shell --seed 2019168
(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))))