\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 \left(1 + 1 \cdot \frac{1}{\frac{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}}{rand}}\right)double f(double a, double rand) {
double r135407 = a;
double r135408 = 1.0;
double r135409 = 3.0;
double r135410 = r135408 / r135409;
double r135411 = r135407 - r135410;
double r135412 = 9.0;
double r135413 = r135412 * r135411;
double r135414 = sqrt(r135413);
double r135415 = r135408 / r135414;
double r135416 = rand;
double r135417 = r135415 * r135416;
double r135418 = r135408 + r135417;
double r135419 = r135411 * r135418;
return r135419;
}
double f(double a, double rand) {
double r135420 = a;
double r135421 = 1.0;
double r135422 = 3.0;
double r135423 = r135421 / r135422;
double r135424 = r135420 - r135423;
double r135425 = 1.0;
double r135426 = 9.0;
double r135427 = r135426 * r135424;
double r135428 = sqrt(r135427);
double r135429 = rand;
double r135430 = r135428 / r135429;
double r135431 = r135425 / r135430;
double r135432 = r135421 * r135431;
double r135433 = r135421 + r135432;
double r135434 = r135424 * r135433;
return r135434;
}



Bits error versus a



Bits error versus rand
Results
Initial program 0.1
rmApplied div-inv0.1
Applied associate-*l*0.1
Simplified0.1
rmApplied clear-num0.1
Final simplification0.1
herbie shell --seed 2019323
(FPCore (a rand)
:name "Octave 3.8, oct_fill_randg"
:precision binary64
(* (- a (/ 1 3)) (+ 1 (* (/ 1 (sqrt (* 9 (- a (/ 1 3))))) rand))))