\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{\frac{1 \cdot rand}{\sqrt{9}}}{\sqrt{a - \frac{1}{3}}}double f(double a, double rand) {
double r79201 = a;
double r79202 = 1.0;
double r79203 = 3.0;
double r79204 = r79202 / r79203;
double r79205 = r79201 - r79204;
double r79206 = 9.0;
double r79207 = r79206 * r79205;
double r79208 = sqrt(r79207);
double r79209 = r79202 / r79208;
double r79210 = rand;
double r79211 = r79209 * r79210;
double r79212 = r79202 + r79211;
double r79213 = r79205 * r79212;
return r79213;
}
double f(double a, double rand) {
double r79214 = a;
double r79215 = 1.0;
double r79216 = 3.0;
double r79217 = r79215 / r79216;
double r79218 = r79214 - r79217;
double r79219 = r79218 * r79215;
double r79220 = rand;
double r79221 = r79215 * r79220;
double r79222 = 9.0;
double r79223 = sqrt(r79222);
double r79224 = r79221 / r79223;
double r79225 = sqrt(r79218);
double r79226 = r79224 / r79225;
double r79227 = r79218 * r79226;
double r79228 = r79219 + r79227;
return r79228;
}



Bits error versus a



Bits error versus rand
Results
Initial program 0.1
rmApplied associate-*l/0.1
rmApplied distribute-lft-in0.1
rmApplied sqrt-prod0.1
Applied associate-/r*0.1
Final simplification0.1
herbie shell --seed 2020002 +o rules:numerics
(FPCore (a rand)
:name "Octave 3.8, oct_fill_randg"
:precision binary64
(* (- a (/ 1 3)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1 3))))) rand))))