\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{1}{\frac{\sqrt{\left(a - \frac{1}{3}\right) \cdot 9}}{rand}} + 1\right)double f(double a, double rand) {
double r79785 = a;
double r79786 = 1.0;
double r79787 = 3.0;
double r79788 = r79786 / r79787;
double r79789 = r79785 - r79788;
double r79790 = 9.0;
double r79791 = r79790 * r79789;
double r79792 = sqrt(r79791);
double r79793 = r79786 / r79792;
double r79794 = rand;
double r79795 = r79793 * r79794;
double r79796 = r79786 + r79795;
double r79797 = r79789 * r79796;
return r79797;
}
double f(double a, double rand) {
double r79798 = a;
double r79799 = 1.0;
double r79800 = 3.0;
double r79801 = r79799 / r79800;
double r79802 = r79798 - r79801;
double r79803 = 9.0;
double r79804 = r79802 * r79803;
double r79805 = sqrt(r79804);
double r79806 = rand;
double r79807 = r79805 / r79806;
double r79808 = r79799 / r79807;
double r79809 = r79808 + r79799;
double r79810 = r79802 * r79809;
return r79810;
}



Bits error versus a



Bits error versus rand
Results
Initial program 0.1
Simplified0.1
rmApplied *-un-lft-identity0.1
Applied *-un-lft-identity0.1
Applied times-frac0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019194
(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))))