\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(\frac{1}{\sqrt{9 \cdot \left(a - \frac{1.0}{3.0}\right)}} \cdot rand\right) \cdot \left(a - \frac{1.0}{3.0}\right) + \left(a - \frac{1.0}{3.0}\right)double f(double a, double rand) {
double r6066277 = a;
double r6066278 = 1.0;
double r6066279 = 3.0;
double r6066280 = r6066278 / r6066279;
double r6066281 = r6066277 - r6066280;
double r6066282 = 1.0;
double r6066283 = 9.0;
double r6066284 = r6066283 * r6066281;
double r6066285 = sqrt(r6066284);
double r6066286 = r6066282 / r6066285;
double r6066287 = rand;
double r6066288 = r6066286 * r6066287;
double r6066289 = r6066282 + r6066288;
double r6066290 = r6066281 * r6066289;
return r6066290;
}
double f(double a, double rand) {
double r6066291 = 1.0;
double r6066292 = 9.0;
double r6066293 = a;
double r6066294 = 1.0;
double r6066295 = 3.0;
double r6066296 = r6066294 / r6066295;
double r6066297 = r6066293 - r6066296;
double r6066298 = r6066292 * r6066297;
double r6066299 = sqrt(r6066298);
double r6066300 = r6066291 / r6066299;
double r6066301 = rand;
double r6066302 = r6066300 * r6066301;
double r6066303 = r6066302 * r6066297;
double r6066304 = r6066303 + r6066297;
return r6066304;
}



Bits error versus a



Bits error versus rand
Results
Initial program 0.1
Simplified0.1
rmApplied *-commutative0.1
rmApplied div-inv0.1
Applied associate-*l*0.1
Final simplification0.1
herbie shell --seed 2019120
(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))))