\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 \frac{1 \cdot rand}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}}double f(double a, double rand) {
double r8546095 = a;
double r8546096 = 1.0;
double r8546097 = 3.0;
double r8546098 = r8546096 / r8546097;
double r8546099 = r8546095 - r8546098;
double r8546100 = 9.0;
double r8546101 = r8546100 * r8546099;
double r8546102 = sqrt(r8546101);
double r8546103 = r8546096 / r8546102;
double r8546104 = rand;
double r8546105 = r8546103 * r8546104;
double r8546106 = r8546096 + r8546105;
double r8546107 = r8546099 * r8546106;
return r8546107;
}
double f(double a, double rand) {
double r8546108 = a;
double r8546109 = 1.0;
double r8546110 = 3.0;
double r8546111 = r8546109 / r8546110;
double r8546112 = r8546108 - r8546111;
double r8546113 = r8546112 * r8546109;
double r8546114 = rand;
double r8546115 = r8546109 * r8546114;
double r8546116 = 9.0;
double r8546117 = r8546116 * r8546112;
double r8546118 = sqrt(r8546117);
double r8546119 = r8546115 / r8546118;
double r8546120 = r8546112 * r8546119;
double r8546121 = r8546113 + r8546120;
return r8546121;
}



Bits error versus a



Bits error versus rand
Results
Initial program 0.1
rmApplied associate-*l/0.1
rmApplied distribute-lft-in0.1
Final simplification0.1
herbie shell --seed 2019173
(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))))