\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 \left(a - \frac{1}{3}\right) + \left(\frac{rand}{\sqrt{9 \cdot \left(a - \frac{1}{3}\right)}} \cdot 1\right) \cdot \left(a - \frac{1}{3}\right)double f(double a, double rand) {
double r3744052 = a;
double r3744053 = 1.0;
double r3744054 = 3.0;
double r3744055 = r3744053 / r3744054;
double r3744056 = r3744052 - r3744055;
double r3744057 = 9.0;
double r3744058 = r3744057 * r3744056;
double r3744059 = sqrt(r3744058);
double r3744060 = r3744053 / r3744059;
double r3744061 = rand;
double r3744062 = r3744060 * r3744061;
double r3744063 = r3744053 + r3744062;
double r3744064 = r3744056 * r3744063;
return r3744064;
}
double f(double a, double rand) {
double r3744065 = 1.0;
double r3744066 = a;
double r3744067 = 3.0;
double r3744068 = r3744065 / r3744067;
double r3744069 = r3744066 - r3744068;
double r3744070 = r3744065 * r3744069;
double r3744071 = rand;
double r3744072 = 9.0;
double r3744073 = r3744072 * r3744069;
double r3744074 = sqrt(r3744073);
double r3744075 = r3744071 / r3744074;
double r3744076 = r3744075 * r3744065;
double r3744077 = r3744076 * r3744069;
double r3744078 = r3744070 + r3744077;
return r3744078;
}



Bits error versus a



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