\left(a - \frac{1.0}{3.0}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot rand\right)rand \cdot \frac{\frac{a - \frac{1.0}{3.0}}{3}}{\sqrt{a - \frac{1.0}{3.0}}} + \left(a - \frac{1.0}{3.0}\right)double f(double a, double rand) {
double r3359627 = a;
double r3359628 = 1.0;
double r3359629 = 3.0;
double r3359630 = r3359628 / r3359629;
double r3359631 = r3359627 - r3359630;
double r3359632 = 1.0;
double r3359633 = 9.0;
double r3359634 = r3359633 * r3359631;
double r3359635 = sqrt(r3359634);
double r3359636 = r3359632 / r3359635;
double r3359637 = rand;
double r3359638 = r3359636 * r3359637;
double r3359639 = r3359632 + r3359638;
double r3359640 = r3359631 * r3359639;
return r3359640;
}
double f(double a, double rand) {
double r3359641 = rand;
double r3359642 = a;
double r3359643 = 1.0;
double r3359644 = 3.0;
double r3359645 = r3359643 / r3359644;
double r3359646 = r3359642 - r3359645;
double r3359647 = 3.0;
double r3359648 = r3359646 / r3359647;
double r3359649 = sqrt(r3359646);
double r3359650 = r3359648 / r3359649;
double r3359651 = r3359641 * r3359650;
double r3359652 = r3359651 + r3359646;
return r3359652;
}



Bits error versus a



Bits error versus rand
Results
Initial program 0.1
Simplified0.1
rmApplied sqrt-prod0.1
Applied associate-/r*0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019138
(FPCore (a rand)
:name "Octave 3.8, oct_fill_randg"
(* (- a (/ 1.0 3.0)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1.0 3.0))))) rand))))