\left(a - \frac{1}{3}\right) \cdot \left(1 + \frac{1}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot rand\right)1 \cdot \mathsf{fma}\left(\frac{rand}{\sqrt{\left(a - \frac{1}{3}\right) \cdot 9}}, a - \frac{1}{3}, a - \frac{1}{3}\right)double f(double a, double rand) {
double r3485035 = a;
double r3485036 = 1.0;
double r3485037 = 3.0;
double r3485038 = r3485036 / r3485037;
double r3485039 = r3485035 - r3485038;
double r3485040 = 9.0;
double r3485041 = r3485040 * r3485039;
double r3485042 = sqrt(r3485041);
double r3485043 = r3485036 / r3485042;
double r3485044 = rand;
double r3485045 = r3485043 * r3485044;
double r3485046 = r3485036 + r3485045;
double r3485047 = r3485039 * r3485046;
return r3485047;
}
double f(double a, double rand) {
double r3485048 = 1.0;
double r3485049 = rand;
double r3485050 = a;
double r3485051 = 3.0;
double r3485052 = r3485048 / r3485051;
double r3485053 = r3485050 - r3485052;
double r3485054 = 9.0;
double r3485055 = r3485053 * r3485054;
double r3485056 = sqrt(r3485055);
double r3485057 = r3485049 / r3485056;
double r3485058 = fma(r3485057, r3485053, r3485053);
double r3485059 = r3485048 * r3485058;
return r3485059;
}



Bits error versus a



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