\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)\frac{rand}{\sqrt{\left(a - \frac{1.0}{3.0}\right) \cdot 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 r13796623 = a;
double r13796624 = 1.0;
double r13796625 = 3.0;
double r13796626 = r13796624 / r13796625;
double r13796627 = r13796623 - r13796626;
double r13796628 = 1.0;
double r13796629 = 9.0;
double r13796630 = r13796629 * r13796627;
double r13796631 = sqrt(r13796630);
double r13796632 = r13796628 / r13796631;
double r13796633 = rand;
double r13796634 = r13796632 * r13796633;
double r13796635 = r13796628 + r13796634;
double r13796636 = r13796627 * r13796635;
return r13796636;
}
double f(double a, double rand) {
double r13796637 = rand;
double r13796638 = a;
double r13796639 = 1.0;
double r13796640 = 3.0;
double r13796641 = r13796639 / r13796640;
double r13796642 = r13796638 - r13796641;
double r13796643 = 9.0;
double r13796644 = r13796642 * r13796643;
double r13796645 = sqrt(r13796644);
double r13796646 = r13796637 / r13796645;
double r13796647 = r13796646 * r13796642;
double r13796648 = r13796647 + r13796642;
return r13796648;
}



Bits error versus a



Bits error versus rand
Results
Initial program 0.1
Simplified0.1
rmApplied fma-udef0.1
Final simplification0.1
herbie shell --seed 2019120 +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))))