\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 \left(a - \frac{1}{3}\right)}} \cdot rand\right)double f(double a, double rand) {
double r142366 = a;
double r142367 = 1.0;
double r142368 = 3.0;
double r142369 = r142367 / r142368;
double r142370 = r142366 - r142369;
double r142371 = 9.0;
double r142372 = r142371 * r142370;
double r142373 = sqrt(r142372);
double r142374 = r142367 / r142373;
double r142375 = rand;
double r142376 = r142374 * r142375;
double r142377 = r142367 + r142376;
double r142378 = r142370 * r142377;
return r142378;
}
double f(double a, double rand) {
double r142379 = a;
double r142380 = 1.0;
double r142381 = 3.0;
double r142382 = r142380 / r142381;
double r142383 = r142379 - r142382;
double r142384 = 9.0;
double r142385 = r142384 * r142383;
double r142386 = sqrt(r142385);
double r142387 = r142380 / r142386;
double r142388 = rand;
double r142389 = r142387 * r142388;
double r142390 = r142380 + r142389;
double r142391 = r142383 * r142390;
return r142391;
}



Bits error versus a



Bits error versus rand
Results
Initial program 0.1
Final simplification0.1
herbie shell --seed 2019346
(FPCore (a rand)
:name "Octave 3.8, oct_fill_randg"
:precision binary64
(* (- a (/ 1 3)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1 3))))) rand))))