Average Error: 0.4 → 0.5
Time: 39.0s
Precision: 64
\[0.0 \le u1 \le 1 \land 0.0 \le u2 \le 1\]
\[\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}\]
\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;
}

Error

Bits error versus u1

Bits error versus u2

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.4

    \[\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\]
  2. Using strategy rm
  3. Applied associate-*l/0.3

    \[\leadsto \color{blue}{\frac{1 \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6}} \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) + 0.5\]
  4. Using strategy rm
  5. Applied flip3-+0.5

    \[\leadsto \color{blue}{\frac{{\left(\frac{1 \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6} \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)\right)}^{3} + {0.5}^{3}}{\left(\frac{1 \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6} \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)\right) \cdot \left(\frac{1 \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6} \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)\right) + \left(0.5 \cdot 0.5 - \left(\frac{1 \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6} \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)\right) \cdot 0.5\right)}}\]
  6. Simplified0.5

    \[\leadsto \frac{\color{blue}{\left(\frac{\left({\left(-2 \cdot \log u1\right)}^{0.5} \cdot 1\right) \cdot \cos \left(\left(u2 \cdot 2\right) \cdot \pi\right)}{6} \cdot \frac{\left({\left(-2 \cdot \log u1\right)}^{0.5} \cdot 1\right) \cdot \cos \left(\left(u2 \cdot 2\right) \cdot \pi\right)}{6}\right) \cdot \frac{\left({\left(-2 \cdot \log u1\right)}^{0.5} \cdot 1\right) \cdot \cos \left(\left(u2 \cdot 2\right) \cdot \pi\right)}{6} + \left(0.5 \cdot 0.5\right) \cdot 0.5}}{\left(\frac{1 \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6} \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)\right) \cdot \left(\frac{1 \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6} \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)\right) + \left(0.5 \cdot 0.5 - \left(\frac{1 \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6} \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)\right) \cdot 0.5\right)}\]
  7. Simplified0.5

    \[\leadsto \frac{\left(\frac{\left({\left(-2 \cdot \log u1\right)}^{0.5} \cdot 1\right) \cdot \cos \left(\left(u2 \cdot 2\right) \cdot \pi\right)}{6} \cdot \frac{\left({\left(-2 \cdot \log u1\right)}^{0.5} \cdot 1\right) \cdot \cos \left(\left(u2 \cdot 2\right) \cdot \pi\right)}{6}\right) \cdot \frac{\left({\left(-2 \cdot \log u1\right)}^{0.5} \cdot 1\right) \cdot \cos \left(\left(u2 \cdot 2\right) \cdot \pi\right)}{6} + \left(0.5 \cdot 0.5\right) \cdot 0.5}{\color{blue}{0.5 \cdot 0.5 + \frac{\left({\left(-2 \cdot \log u1\right)}^{0.5} \cdot 1\right) \cdot \cos \left(\left(u2 \cdot 2\right) \cdot \pi\right)}{6} \cdot \left(\frac{\left({\left(-2 \cdot \log u1\right)}^{0.5} \cdot 1\right) \cdot \cos \left(\left(u2 \cdot 2\right) \cdot \pi\right)}{6} - 0.5\right)}}\]
  8. Final simplification0.5

    \[\leadsto \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}\]

Reproduce

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))