Average Error: 0.4 → 0.4
Time: 42.1s
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(\frac{1}{6} \cdot {\left(-2 \cdot \log u1\right)}^{0.5}\right) \cdot \cos \left(u2 \cdot \left(2 \cdot \pi\right)\right)\right) \cdot \left(\cos \left(u2 \cdot \left(2 \cdot \pi\right)\right) \cdot \left(1 \cdot {\left(-2 \cdot \log u1\right)}^{0.5}\right)\right)}{6} - 0.5 \cdot 0.5}{\left(\frac{1}{6} \cdot {\left(-2 \cdot \log u1\right)}^{0.5}\right) \cdot \cos \left(u2 \cdot \left(2 \cdot \pi\right)\right) - 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(\frac{1}{6} \cdot {\left(-2 \cdot \log u1\right)}^{0.5}\right) \cdot \cos \left(u2 \cdot \left(2 \cdot \pi\right)\right)\right) \cdot \left(\cos \left(u2 \cdot \left(2 \cdot \pi\right)\right) \cdot \left(1 \cdot {\left(-2 \cdot \log u1\right)}^{0.5}\right)\right)}{6} - 0.5 \cdot 0.5}{\left(\frac{1}{6} \cdot {\left(-2 \cdot \log u1\right)}^{0.5}\right) \cdot \cos \left(u2 \cdot \left(2 \cdot \pi\right)\right) - 0.5}
double f(double u1, double u2) {
        double r2710633 = 1.0;
        double r2710634 = 6.0;
        double r2710635 = r2710633 / r2710634;
        double r2710636 = -2.0;
        double r2710637 = u1;
        double r2710638 = log(r2710637);
        double r2710639 = r2710636 * r2710638;
        double r2710640 = 0.5;
        double r2710641 = pow(r2710639, r2710640);
        double r2710642 = r2710635 * r2710641;
        double r2710643 = 2.0;
        double r2710644 = atan2(1.0, 0.0);
        double r2710645 = r2710643 * r2710644;
        double r2710646 = u2;
        double r2710647 = r2710645 * r2710646;
        double r2710648 = cos(r2710647);
        double r2710649 = r2710642 * r2710648;
        double r2710650 = r2710649 + r2710640;
        return r2710650;
}

double f(double u1, double u2) {
        double r2710651 = 1.0;
        double r2710652 = 6.0;
        double r2710653 = r2710651 / r2710652;
        double r2710654 = -2.0;
        double r2710655 = u1;
        double r2710656 = log(r2710655);
        double r2710657 = r2710654 * r2710656;
        double r2710658 = 0.5;
        double r2710659 = pow(r2710657, r2710658);
        double r2710660 = r2710653 * r2710659;
        double r2710661 = u2;
        double r2710662 = 2.0;
        double r2710663 = atan2(1.0, 0.0);
        double r2710664 = r2710662 * r2710663;
        double r2710665 = r2710661 * r2710664;
        double r2710666 = cos(r2710665);
        double r2710667 = r2710660 * r2710666;
        double r2710668 = r2710651 * r2710659;
        double r2710669 = r2710666 * r2710668;
        double r2710670 = r2710667 * r2710669;
        double r2710671 = r2710670 / r2710652;
        double r2710672 = r2710658 * r2710658;
        double r2710673 = r2710671 - r2710672;
        double r2710674 = r2710667 - r2710658;
        double r2710675 = r2710673 / r2710674;
        return r2710675;
}

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 flip-+0.4

    \[\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) \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) - 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}}\]
  4. Using strategy rm
  5. Applied associate-*l/0.4

    \[\leadsto \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) \cdot \left(\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)\right) - 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}\]
  6. Applied associate-*l/0.4

    \[\leadsto \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) \cdot \color{blue}{\frac{\left(1 \cdot {\left(-2 \cdot \log u1\right)}^{0.5}\right) \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\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}\]
  7. Applied associate-*r/0.4

    \[\leadsto \frac{\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) \cdot \left(\left(1 \cdot {\left(-2 \cdot \log u1\right)}^{0.5}\right) \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)\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}\]
  8. Final simplification0.4

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

Reproduce

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