\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 1 + \left(a - \frac{1}{3}\right) \cdot \left(1 \cdot \frac{\frac{rand}{\sqrt{a - \frac{1}{3}}}}{\sqrt{9}}\right)double f(double a, double rand) {
double r95678 = a;
double r95679 = 1.0;
double r95680 = 3.0;
double r95681 = r95679 / r95680;
double r95682 = r95678 - r95681;
double r95683 = 9.0;
double r95684 = r95683 * r95682;
double r95685 = sqrt(r95684);
double r95686 = r95679 / r95685;
double r95687 = rand;
double r95688 = r95686 * r95687;
double r95689 = r95679 + r95688;
double r95690 = r95682 * r95689;
return r95690;
}
double f(double a, double rand) {
double r95691 = a;
double r95692 = 1.0;
double r95693 = 3.0;
double r95694 = r95692 / r95693;
double r95695 = r95691 - r95694;
double r95696 = r95695 * r95692;
double r95697 = rand;
double r95698 = sqrt(r95695);
double r95699 = r95697 / r95698;
double r95700 = 9.0;
double r95701 = sqrt(r95700);
double r95702 = r95699 / r95701;
double r95703 = r95692 * r95702;
double r95704 = r95695 * r95703;
double r95705 = r95696 + r95704;
return r95705;
}



Bits error versus a



Bits error versus rand
Results
Initial program 0.1
rmApplied distribute-lft-in0.1
rmApplied sqrt-prod0.1
rmApplied div-inv0.1
Applied associate-*l*0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2020033
(FPCore (a rand)
:name "Octave 3.8, oct_fill_randg"
:precision binary64
(* (- a (/ 1 3)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1 3))))) rand))))