\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\frac{\frac{\left({\left(-2 \cdot \log u1\right)}^{0.5} \cdot 1\right) \cdot \cos \left(\left(2 \cdot u2\right) \cdot \pi\right)}{6} \cdot \left(\frac{\left({\left(-2 \cdot \log u1\right)}^{0.5} \cdot 1\right) \cdot \cos \left(\left(2 \cdot u2\right) \cdot \pi\right)}{6} \cdot \frac{\left({\left(-2 \cdot \log u1\right)}^{0.5} \cdot 1\right) \cdot \cos \left(\left(2 \cdot u2\right) \cdot \pi\right)}{6}\right) + 0.5 \cdot \left(0.5 \cdot 0.5\right)}{\left(\frac{\left({\left(-2 \cdot \log u1\right)}^{0.5} \cdot 1\right) \cdot \cos \left(\left(2 \cdot u2\right) \cdot \pi\right)}{6} - 0.5\right) \cdot \frac{\left({\left(-2 \cdot \log u1\right)}^{0.5} \cdot 1\right) \cdot \cos \left(\left(2 \cdot u2\right) \cdot \pi\right)}{6} + 0.5 \cdot 0.5}double f(double u1, double u2) {
double r2352782 = 1.0;
double r2352783 = 6.0;
double r2352784 = r2352782 / r2352783;
double r2352785 = -2.0;
double r2352786 = u1;
double r2352787 = log(r2352786);
double r2352788 = r2352785 * r2352787;
double r2352789 = 0.5;
double r2352790 = pow(r2352788, r2352789);
double r2352791 = r2352784 * r2352790;
double r2352792 = 2.0;
double r2352793 = atan2(1.0, 0.0);
double r2352794 = r2352792 * r2352793;
double r2352795 = u2;
double r2352796 = r2352794 * r2352795;
double r2352797 = cos(r2352796);
double r2352798 = r2352791 * r2352797;
double r2352799 = r2352798 + r2352789;
return r2352799;
}
double f(double u1, double u2) {
double r2352800 = -2.0;
double r2352801 = u1;
double r2352802 = log(r2352801);
double r2352803 = r2352800 * r2352802;
double r2352804 = 0.5;
double r2352805 = pow(r2352803, r2352804);
double r2352806 = 1.0;
double r2352807 = r2352805 * r2352806;
double r2352808 = 2.0;
double r2352809 = u2;
double r2352810 = r2352808 * r2352809;
double r2352811 = atan2(1.0, 0.0);
double r2352812 = r2352810 * r2352811;
double r2352813 = cos(r2352812);
double r2352814 = r2352807 * r2352813;
double r2352815 = 6.0;
double r2352816 = r2352814 / r2352815;
double r2352817 = r2352816 * r2352816;
double r2352818 = r2352816 * r2352817;
double r2352819 = r2352804 * r2352804;
double r2352820 = r2352804 * r2352819;
double r2352821 = r2352818 + r2352820;
double r2352822 = r2352816 - r2352804;
double r2352823 = r2352822 * r2352816;
double r2352824 = r2352823 + r2352819;
double r2352825 = r2352821 / r2352824;
return r2352825;
}



Bits error versus u1



Bits error versus u2
Results
Initial program 0.4
rmApplied associate-*l/0.3
rmApplied flip3-+0.5
Simplified0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019169
(FPCore (u1 u2)
:name "normal distribution"
:pre (and (<= 0.0 u1 1.0) (<= 0.0 u2 1.0))
(+ (* (* (/ 1.0 6.0) (pow (* -2.0 (log u1)) 0.5)) (cos (* (* 2.0 PI) u2))) 0.5))