\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)\left(a - \frac{1.0}{3.0}\right) \cdot \frac{rand}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} + \left(a - \frac{1.0}{3.0}\right)double f(double a, double rand) {
double r2640121 = a;
double r2640122 = 1.0;
double r2640123 = 3.0;
double r2640124 = r2640122 / r2640123;
double r2640125 = r2640121 - r2640124;
double r2640126 = 1.0;
double r2640127 = 9.0;
double r2640128 = r2640127 * r2640125;
double r2640129 = sqrt(r2640128);
double r2640130 = r2640126 / r2640129;
double r2640131 = rand;
double r2640132 = r2640130 * r2640131;
double r2640133 = r2640126 + r2640132;
double r2640134 = r2640125 * r2640133;
return r2640134;
}
double f(double a, double rand) {
double r2640135 = a;
double r2640136 = 1.0;
double r2640137 = 3.0;
double r2640138 = r2640136 / r2640137;
double r2640139 = r2640135 - r2640138;
double r2640140 = rand;
double r2640141 = 9.0;
double r2640142 = r2640141 * r2640139;
double r2640143 = sqrt(r2640142);
double r2640144 = r2640140 / r2640143;
double r2640145 = r2640139 * r2640144;
double r2640146 = r2640145 + r2640139;
return r2640146;
}



Bits error versus a



Bits error versus rand
Results
Initial program 0.1
rmApplied distribute-lft-in0.1
Simplified0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019164 +o rules:numerics
(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))))