\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{rand}{\sqrt{\sqrt{9} \cdot \left(\sqrt{9} \cdot \left(a - \frac{1}{3}\right)\right)}} \cdot 1 + 1\right)double f(double a, double rand) {
double r3261425 = a;
double r3261426 = 1.0;
double r3261427 = 3.0;
double r3261428 = r3261426 / r3261427;
double r3261429 = r3261425 - r3261428;
double r3261430 = 9.0;
double r3261431 = r3261430 * r3261429;
double r3261432 = sqrt(r3261431);
double r3261433 = r3261426 / r3261432;
double r3261434 = rand;
double r3261435 = r3261433 * r3261434;
double r3261436 = r3261426 + r3261435;
double r3261437 = r3261429 * r3261436;
return r3261437;
}
double f(double a, double rand) {
double r3261438 = a;
double r3261439 = 1.0;
double r3261440 = 3.0;
double r3261441 = r3261439 / r3261440;
double r3261442 = r3261438 - r3261441;
double r3261443 = rand;
double r3261444 = 9.0;
double r3261445 = sqrt(r3261444);
double r3261446 = r3261445 * r3261442;
double r3261447 = r3261445 * r3261446;
double r3261448 = sqrt(r3261447);
double r3261449 = r3261443 / r3261448;
double r3261450 = r3261449 * r3261439;
double r3261451 = r3261450 + r3261439;
double r3261452 = r3261442 * r3261451;
return r3261452;
}



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 add-sqr-sqrt0.1
Applied associate-*r*0.1
Final simplification0.1
herbie shell --seed 2019169
(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))))