\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)\mathsf{fma}\left(-\sqrt[3]{\frac{1.0}{3.0}}, \sqrt[3]{\frac{1.0}{3.0}} \cdot \sqrt[3]{\frac{1.0}{3.0}}, \left(\sqrt[3]{\frac{1.0}{3.0}} \cdot \sqrt[3]{\frac{1.0}{3.0}}\right) \cdot \sqrt[3]{\frac{1.0}{3.0}}\right) + \mathsf{fma}\left(rand, \frac{\sqrt{a - \frac{1.0}{3.0}}}{3}, a - \frac{1.0}{3.0}\right)double f(double a, double rand) {
double r1451251 = a;
double r1451252 = 1.0;
double r1451253 = 3.0;
double r1451254 = r1451252 / r1451253;
double r1451255 = r1451251 - r1451254;
double r1451256 = 1.0;
double r1451257 = 9.0;
double r1451258 = r1451257 * r1451255;
double r1451259 = sqrt(r1451258);
double r1451260 = r1451256 / r1451259;
double r1451261 = rand;
double r1451262 = r1451260 * r1451261;
double r1451263 = r1451256 + r1451262;
double r1451264 = r1451255 * r1451263;
return r1451264;
}
double f(double a, double rand) {
double r1451265 = 1.0;
double r1451266 = 3.0;
double r1451267 = r1451265 / r1451266;
double r1451268 = cbrt(r1451267);
double r1451269 = -r1451268;
double r1451270 = r1451268 * r1451268;
double r1451271 = r1451270 * r1451268;
double r1451272 = fma(r1451269, r1451270, r1451271);
double r1451273 = rand;
double r1451274 = a;
double r1451275 = r1451274 - r1451267;
double r1451276 = sqrt(r1451275);
double r1451277 = 3.0;
double r1451278 = r1451276 / r1451277;
double r1451279 = fma(r1451273, r1451278, r1451275);
double r1451280 = r1451272 + r1451279;
return r1451280;
}



Bits error versus a



Bits error versus rand
Initial program 0.1
Simplified0.1
rmApplied sqrt-prod0.1
Applied add-sqr-sqrt0.1
Applied times-frac0.1
Simplified0.1
Simplified0.1
rmApplied fma-udef0.1
Simplified0.1
rmApplied add-cube-cbrt0.1
Applied add-sqr-sqrt0.5
Applied prod-diff0.5
Applied associate-+r+0.5
Simplified0.1
Final simplification0.1
herbie shell --seed 2019152 +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))))