Average Error: 0.4 → 0.4
Time: 1.1m
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{\frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6} \cdot \left(\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot \left(\frac{{\left(-2 \cdot \log u1\right)}^{0.5}}{6} \cdot \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6}\right)\right) + 0.5 \cdot \left(0.5 \cdot 0.5\right)}{\left(0.5 - \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6}\right) \cdot 0.5 + \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6} \cdot \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6}}\]
\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{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6} \cdot \left(\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot \left(\frac{{\left(-2 \cdot \log u1\right)}^{0.5}}{6} \cdot \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6}\right)\right) + 0.5 \cdot \left(0.5 \cdot 0.5\right)}{\left(0.5 - \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6}\right) \cdot 0.5 + \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6} \cdot \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6}}
double f(double u1, double u2) {
        double r1812077 = 1.0;
        double r1812078 = 6.0;
        double r1812079 = r1812077 / r1812078;
        double r1812080 = -2.0;
        double r1812081 = u1;
        double r1812082 = log(r1812081);
        double r1812083 = r1812080 * r1812082;
        double r1812084 = 0.5;
        double r1812085 = pow(r1812083, r1812084);
        double r1812086 = r1812079 * r1812085;
        double r1812087 = 2.0;
        double r1812088 = atan2(1.0, 0.0);
        double r1812089 = r1812087 * r1812088;
        double r1812090 = u2;
        double r1812091 = r1812089 * r1812090;
        double r1812092 = cos(r1812091);
        double r1812093 = r1812086 * r1812092;
        double r1812094 = r1812093 + r1812084;
        return r1812094;
}

double f(double u1, double u2) {
        double r1812095 = atan2(1.0, 0.0);
        double r1812096 = u2;
        double r1812097 = r1812095 * r1812096;
        double r1812098 = 2.0;
        double r1812099 = r1812097 * r1812098;
        double r1812100 = cos(r1812099);
        double r1812101 = -2.0;
        double r1812102 = u1;
        double r1812103 = log(r1812102);
        double r1812104 = r1812101 * r1812103;
        double r1812105 = 0.5;
        double r1812106 = pow(r1812104, r1812105);
        double r1812107 = r1812100 * r1812106;
        double r1812108 = 6.0;
        double r1812109 = r1812107 / r1812108;
        double r1812110 = r1812106 / r1812108;
        double r1812111 = r1812110 * r1812109;
        double r1812112 = r1812100 * r1812111;
        double r1812113 = r1812109 * r1812112;
        double r1812114 = r1812105 * r1812105;
        double r1812115 = r1812105 * r1812114;
        double r1812116 = r1812113 + r1812115;
        double r1812117 = r1812105 - r1812109;
        double r1812118 = r1812117 * r1812105;
        double r1812119 = r1812109 * r1812109;
        double r1812120 = r1812118 + r1812119;
        double r1812121 = r1812116 / r1812120;
        return r1812121;
}

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 flip3-+0.6

    \[\leadsto \color{blue}{\frac{{\left(\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)\right)}^{3} + {0.5}^{3}}{\left(\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)\right) \cdot \left(\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)\right) + \left(0.5 \cdot 0.5 - \left(\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)\right) \cdot 0.5\right)}}\]
  4. Simplified0.8

    \[\leadsto \frac{\color{blue}{\left(\frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6} \cdot \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6}\right) \cdot \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6} + 0.5 \cdot \left(0.5 \cdot 0.5\right)}}{\left(\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)\right) \cdot \left(\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)\right) + \left(0.5 \cdot 0.5 - \left(\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)\right) \cdot 0.5\right)}\]
  5. Simplified0.4

    \[\leadsto \frac{\left(\frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6} \cdot \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6}\right) \cdot \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6} + 0.5 \cdot \left(0.5 \cdot 0.5\right)}{\color{blue}{0.5 \cdot \left(0.5 - \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6}\right) + \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6} \cdot \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6}}}\]
  6. Using strategy rm
  7. Applied *-un-lft-identity0.4

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

    \[\leadsto \frac{\left(\color{blue}{\left(\frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right)}{1} \cdot \frac{{\left(-2 \cdot \log u1\right)}^{0.5}}{6}\right)} \cdot \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6}\right) \cdot \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6} + 0.5 \cdot \left(0.5 \cdot 0.5\right)}{0.5 \cdot \left(0.5 - \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6}\right) + \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6} \cdot \frac{\cos \left(\left(\pi \cdot u2\right) \cdot 2\right) \cdot {\left(-2 \cdot \log u1\right)}^{0.5}}{6}}\]
  9. Applied associate-*l*0.4

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

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

Reproduce

herbie shell --seed 2019130 
(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))