\left(\frac{1}{6} \cdot {\left(-2 \cdot \log u1\right)}^{0.5}\right) \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) + 0.5\left(1 \cdot \frac{1}{\frac{6}{{\left(-2 \cdot \log u1\right)}^{0.5}}}\right) \cdot \cos \left(\left(\sqrt[3]{\left(2 \cdot \pi\right) \cdot u2} \cdot \sqrt[3]{\left(2 \cdot \pi\right) \cdot u2}\right) \cdot \sqrt[3]{\left(2 \cdot \pi\right) \cdot u2}\right) + 0.5double f(double u1, double u2) {
double r57871 = 1.0;
double r57872 = 6.0;
double r57873 = r57871 / r57872;
double r57874 = -2.0;
double r57875 = u1;
double r57876 = log(r57875);
double r57877 = r57874 * r57876;
double r57878 = 0.5;
double r57879 = pow(r57877, r57878);
double r57880 = r57873 * r57879;
double r57881 = 2.0;
double r57882 = atan2(1.0, 0.0);
double r57883 = r57881 * r57882;
double r57884 = u2;
double r57885 = r57883 * r57884;
double r57886 = cos(r57885);
double r57887 = r57880 * r57886;
double r57888 = r57887 + r57878;
return r57888;
}
double f(double u1, double u2) {
double r57889 = 1.0;
double r57890 = 1.0;
double r57891 = 6.0;
double r57892 = -2.0;
double r57893 = u1;
double r57894 = log(r57893);
double r57895 = r57892 * r57894;
double r57896 = 0.5;
double r57897 = pow(r57895, r57896);
double r57898 = r57891 / r57897;
double r57899 = r57890 / r57898;
double r57900 = r57889 * r57899;
double r57901 = 2.0;
double r57902 = atan2(1.0, 0.0);
double r57903 = r57901 * r57902;
double r57904 = u2;
double r57905 = r57903 * r57904;
double r57906 = cbrt(r57905);
double r57907 = r57906 * r57906;
double r57908 = r57907 * r57906;
double r57909 = cos(r57908);
double r57910 = r57900 * r57909;
double r57911 = r57910 + r57896;
return r57911;
}



Bits error versus u1



Bits error versus u2
Results
Initial program 0.4
rmApplied div-inv0.4
Applied associate-*l*0.4
Simplified0.3
rmApplied clear-num0.3
rmApplied add-cube-cbrt0.4
Final simplification0.4
herbie shell --seed 2020036
(FPCore (u1 u2)
:name "normal distribution"
:precision binary64
:pre (and (<= 0.0 u1 1) (<= 0.0 u2 1))
(+ (* (* (/ 1 6) (pow (* -2 (log u1)) 0.5)) (cos (* (* 2 PI) u2))) 0.5))