Average Error: 0.4 → 0.4
Time: 38.5s
Precision: 64
\[0 \le u1 \le 1 \land 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{\left(\left(\frac{1}{6} \cdot \cos \left(2 \cdot \left(\pi \cdot u2\right)\right)\right) \cdot {\left({\left(\log u1\right)}^{1.0} \cdot {-2}^{1.0}\right)}^{0.5}\right) \cdot \left(\left(\frac{1}{6} \cdot \cos \left(2 \cdot \left(\pi \cdot u2\right)\right)\right) \cdot {\left({\left(\log u1\right)}^{1.0} \cdot {-2}^{1.0}\right)}^{0.5}\right) - 0.5 \cdot 0.5}{\left(\frac{1}{6} \cdot \cos \left(2 \cdot \left(\pi \cdot u2\right)\right)\right) \cdot {\left({\left(\log u1\right)}^{1.0} \cdot {-2}^{1.0}\right)}^{0.5} - 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{\left(\left(\frac{1}{6} \cdot \cos \left(2 \cdot \left(\pi \cdot u2\right)\right)\right) \cdot {\left({\left(\log u1\right)}^{1.0} \cdot {-2}^{1.0}\right)}^{0.5}\right) \cdot \left(\left(\frac{1}{6} \cdot \cos \left(2 \cdot \left(\pi \cdot u2\right)\right)\right) \cdot {\left({\left(\log u1\right)}^{1.0} \cdot {-2}^{1.0}\right)}^{0.5}\right) - 0.5 \cdot 0.5}{\left(\frac{1}{6} \cdot \cos \left(2 \cdot \left(\pi \cdot u2\right)\right)\right) \cdot {\left({\left(\log u1\right)}^{1.0} \cdot {-2}^{1.0}\right)}^{0.5} - 0.5}
double f(double u1, double u2) {
        double r3082079 = 1.0;
        double r3082080 = 6.0;
        double r3082081 = r3082079 / r3082080;
        double r3082082 = -2.0;
        double r3082083 = u1;
        double r3082084 = log(r3082083);
        double r3082085 = r3082082 * r3082084;
        double r3082086 = 0.5;
        double r3082087 = pow(r3082085, r3082086);
        double r3082088 = r3082081 * r3082087;
        double r3082089 = 2.0;
        double r3082090 = atan2(1.0, 0.0);
        double r3082091 = r3082089 * r3082090;
        double r3082092 = u2;
        double r3082093 = r3082091 * r3082092;
        double r3082094 = cos(r3082093);
        double r3082095 = r3082088 * r3082094;
        double r3082096 = r3082095 + r3082086;
        return r3082096;
}

double f(double u1, double u2) {
        double r3082097 = 0.16666666666666666;
        double r3082098 = 2.0;
        double r3082099 = atan2(1.0, 0.0);
        double r3082100 = u2;
        double r3082101 = r3082099 * r3082100;
        double r3082102 = r3082098 * r3082101;
        double r3082103 = cos(r3082102);
        double r3082104 = r3082097 * r3082103;
        double r3082105 = u1;
        double r3082106 = log(r3082105);
        double r3082107 = 1.0;
        double r3082108 = pow(r3082106, r3082107);
        double r3082109 = -2.0;
        double r3082110 = pow(r3082109, r3082107);
        double r3082111 = r3082108 * r3082110;
        double r3082112 = 0.5;
        double r3082113 = pow(r3082111, r3082112);
        double r3082114 = r3082104 * r3082113;
        double r3082115 = r3082114 * r3082114;
        double r3082116 = r3082112 * r3082112;
        double r3082117 = r3082115 - r3082116;
        double r3082118 = r3082114 - r3082112;
        double r3082119 = r3082117 / r3082118;
        return r3082119;
}

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. Simplified0.4

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

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

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

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

    \[\leadsto \frac{\left(\left(\frac{1}{6} \cdot \cos \left(2 \cdot \left(\pi \cdot u2\right)\right)\right) \cdot {\left({\left(\log u1\right)}^{1.0} \cdot {-2}^{1.0}\right)}^{0.5}\right) \cdot \left(\left(\frac{1}{6} \cdot \cos \left(2 \cdot \left(\pi \cdot u2\right)\right)\right) \cdot {\left({\left(\log u1\right)}^{1.0} \cdot {-2}^{1.0}\right)}^{0.5}\right) - 0.5 \cdot 0.5}{\left(\frac{1}{6} \cdot \cos \left(2 \cdot \left(\pi \cdot u2\right)\right)\right) \cdot {\left({\left(\log u1\right)}^{1.0} \cdot {-2}^{1.0}\right)}^{0.5} - 0.5}\]

Reproduce

herbie shell --seed 2019168 
(FPCore (u1 u2)
  :name "normal distribution"
  :pre (and (<= 0 u1 1) (<= 0 u2 1))
  (+ (* (* (/ 1 6) (pow (* -2 (log u1)) 0.5)) (cos (* (* 2 PI) u2))) 0.5))