Average Error: 0.4 → 0.2
Time: 7.4s
Precision: binary64
Cost: 26240
\[0 \leq u1 \land u1 \leq 1 \land 0 \leq u2 \land u2 \leq 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\]
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \sqrt{\log \left({u1}^{-0.05555555555555555}\right)}\]
\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
0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \sqrt{\log \left({u1}^{-0.05555555555555555}\right)}
(FPCore (u1 u2)
 :precision binary64
 (+
  (* (* (/ 1.0 6.0) (pow (* -2.0 (log u1)) 0.5)) (cos (* (* 2.0 PI) u2)))
  0.5))
(FPCore (u1 u2)
 :precision binary64
 (+
  0.5
  (* (cos (* (* 2.0 PI) u2)) (sqrt (log (pow u1 -0.05555555555555555))))))
double code(double u1, double u2) {
	return (((1.0 / 6.0) * pow((-2.0 * log(u1)), 0.5)) * cos((2.0 * ((double) M_PI)) * u2)) + 0.5;
}
double code(double u1, double u2) {
	return 0.5 + (cos((2.0 * ((double) M_PI)) * u2) * sqrt(log(pow(u1, -0.05555555555555555))));
}

Error

Bits error versus u1

Bits error versus u2

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Alternatives

Alternative 1
Error1.1
Cost65600
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \left(\sqrt[3]{0.16666666666666666 \cdot \sqrt{\log u1 \cdot -2}} \cdot \left(\sqrt[3]{0.16666666666666666 \cdot \sqrt{\log u1 \cdot -2}} \cdot \sqrt[3]{0.16666666666666666 \cdot \sqrt{\log u1 \cdot -2}}\right)\right)\]
Alternative 2
Error1.2
Cost65344
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \left(\sqrt[3]{\sqrt{\log u1 \cdot -2}} \cdot \left(0.16666666666666666 \cdot \left(\sqrt[3]{\sqrt{\log u1 \cdot -2}} \cdot \sqrt[3]{\sqrt{\log u1 \cdot -2}}\right)\right)\right)\]
Alternative 3
Error0.7
Cost58816
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \left(\left(\sqrt{0.16666666666666666} \cdot \sqrt{\sqrt{\log u1 \cdot -2}}\right) \cdot \left(\sqrt{0.16666666666666666} \cdot \sqrt{\sqrt{\log u1 \cdot -2}}\right)\right)\]
Alternative 4
Error0.6
Cost46016
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \left(\sqrt{0.16666666666666666 \cdot \sqrt{\log u1 \cdot -2}} \cdot \sqrt{0.16666666666666666 \cdot \sqrt{\log u1 \cdot -2}}\right)\]
Alternative 5
Error0.6
Cost45888
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \left(\sqrt{\sqrt{\log u1 \cdot -2}} \cdot \left(0.16666666666666666 \cdot \sqrt{\sqrt{\log u1 \cdot -2}}\right)\right)\]
Alternative 6
Error0.5
Cost40384
\[\frac{0.25 - \left(\log u1 \cdot -0.05555555555555555\right) \cdot \left(\cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)\right)}{0.5 - \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \left(0.16666666666666666 \cdot \sqrt{\log u1 \cdot -2}\right)}\]
Alternative 7
Error0.3
Cost32960
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \left(\sqrt{0.16666666666666666} \cdot \left(\sqrt{\log u1 \cdot -2} \cdot \sqrt{0.16666666666666666}\right)\right)\]
Alternative 8
Error0.5
Cost32896
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \sqrt[3]{{\left(\sqrt{\log u1 \cdot -2}\right)}^{3} \cdot 0.004629629629629629}\]
Alternative 9
Error0.6
Cost32896
\[\sqrt[3]{{\left(0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \left(0.16666666666666666 \cdot \sqrt{\log u1 \cdot -2}\right)\right)}^{3}}\]
Alternative 10
Error0.6
Cost32896
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \left(0.16666666666666666 \cdot \sqrt[3]{{\left(\sqrt{\log u1 \cdot -2}\right)}^{3}}\right)\]
Alternative 11
Error0.6
Cost32896
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \sqrt[3]{{\left(0.16666666666666666 \cdot \sqrt{\log u1 \cdot -2}\right)}^{3}}\]
Alternative 12
Error0.5
Cost32832
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot e^{\log \left(0.16666666666666666 \cdot \sqrt{\log u1 \cdot -2}\right)}\]
Alternative 13
Error0.6
Cost32832
\[e^{\log \left(0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \left(0.16666666666666666 \cdot \sqrt{\log u1 \cdot -2}\right)\right)}\]
Alternative 14
Error0.7
Cost32832
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \left(0.16666666666666666 \cdot e^{\log \left(\sqrt{\log u1 \cdot -2}\right)}\right)\]
Alternative 15
Error0.5
Cost32768
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \sqrt[3]{{\left(\sqrt{\log u1 \cdot -0.05555555555555555}\right)}^{3}}\]
Alternative 16
Error0.3
Cost32768
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \sqrt{\sqrt[3]{{\left(\log u1 \cdot -0.05555555555555555\right)}^{3}}}\]
Alternative 17
Error0.6
Cost32768
\[\sqrt[3]{{\left(0.5 + \sqrt{\log u1 \cdot -0.05555555555555555} \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)\right)}^{3}}\]
Alternative 18
Error0.4
Cost32704
\[0.5 + e^{\log \left(\sqrt{\log u1 \cdot -0.05555555555555555}\right)} \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)\]
Alternative 19
Error0.4
Cost32704
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \sqrt{e^{\log \left(\log u1 \cdot -0.05555555555555555\right)}}\]
Alternative 20
Error0.3
Cost26496
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \left(\sqrt{-\log u1} \cdot \left(0.16666666666666666 \cdot \sqrt{2}\right)\right)\]
Alternative 21
Error0.3
Cost26496
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \left(0.16666666666666666 \cdot \left(\sqrt{-\log u1} \cdot \sqrt{2}\right)\right)\]
Alternative 22
Error0.3
Cost26496
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \left(\sqrt{0.16666666666666666} \cdot {\left(\log u1 \cdot -0.3333333333333333\right)}^{0.5}\right)\]
Alternative 23
Error0.3
Cost26496
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \left(\sqrt{2} \cdot \left(0.16666666666666666 \cdot \sqrt{-\log u1}\right)\right)\]
Alternative 24
Error0.3
Cost26432
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \left(\sqrt{0.16666666666666666} \cdot \sqrt{\log u1 \cdot -0.3333333333333333}\right)\]
Alternative 25
Error0.3
Cost26368
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \left(\sqrt{-\log u1} \cdot \sqrt{0.05555555555555555}\right)\]
Alternative 26
Error0.7
Cost20224
\[0.5 + \sqrt{\log u1 \cdot -2} \cdot \left(0.16666666666666666 + -0.3333333333333333 \cdot \left(\left(u2 \cdot u2\right) \cdot {\pi}^{2}\right)\right)\]
Alternative 27
Error0.4
Cost20096
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \left(0.16666666666666666 \cdot {\left(\log u1 \cdot -2\right)}^{0.5}\right)\]
Alternative 28
Error0.2
Cost20096
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot {\left(\left(\log u1 \cdot -2\right) \cdot 0.027777777777777776\right)}^{0.5}\]
Alternative 29
Error0.2
Cost20032
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \sqrt{\left(\log u1 \cdot -2\right) \cdot 0.027777777777777776}\]
Alternative 30
Error0.4
Cost20032
\[0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \left(0.16666666666666666 \cdot \sqrt{\log u1 \cdot -2}\right)\]
Alternative 31
Error0.2
Cost19904
\[0.5 + \sqrt{\log u1 \cdot -0.05555555555555555} \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)\]
Alternative 32
Error1.1
Cost13248
\[0.5 + 0.16666666666666666 \cdot \sqrt{\log u1 \cdot -2}\]
Alternative 33
Error1.0
Cost13120
\[0.5 + \sqrt{\log u1 \cdot -0.05555555555555555}\]
Alternative 34
Error53.0
Cost64
\[1\]
Alternative 35
Error62.0
Cost64
\[0\]
Alternative 36
Error63.0
Cost64
\[-1\]

Error

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 + \left(0.16666666666666666 \cdot \sqrt{-2 \cdot \log u1}\right) \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt_binary640.4

    \[\leadsto 0.5 + \left(\color{blue}{\left(\sqrt{0.16666666666666666} \cdot \sqrt{0.16666666666666666}\right)} \cdot \sqrt{-2 \cdot \log u1}\right) \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)\]
  5. Applied associate-*l*_binary640.3

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

    \[\leadsto 0.5 + \left(\sqrt{0.16666666666666666} \cdot \color{blue}{\left(\sqrt{-2 \cdot \log u1} \cdot \sqrt{0.16666666666666666}\right)}\right) \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)\]
  7. Using strategy rm
  8. Applied sqrt-unprod_binary640.3

    \[\leadsto 0.5 + \left(\sqrt{0.16666666666666666} \cdot \color{blue}{\sqrt{\left(-2 \cdot \log u1\right) \cdot 0.16666666666666666}}\right) \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)\]
  9. Applied sqrt-unprod_binary640.3

    \[\leadsto 0.5 + \color{blue}{\sqrt{0.16666666666666666 \cdot \left(\left(-2 \cdot \log u1\right) \cdot 0.16666666666666666\right)}} \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)\]
  10. Simplified0.2

    \[\leadsto 0.5 + \sqrt{\color{blue}{\left(-2 \cdot \log u1\right) \cdot 0.027777777777777776}} \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)\]
  11. Using strategy rm
  12. Applied add-log-exp_binary640.2

    \[\leadsto 0.5 + \sqrt{\color{blue}{\log \left(e^{\left(-2 \cdot \log u1\right) \cdot 0.027777777777777776}\right)}} \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)\]
  13. Simplified0.2

    \[\leadsto 0.5 + \sqrt{\log \color{blue}{\left({u1}^{-0.05555555555555555}\right)}} \cdot \cos \left(\left(2 \cdot \pi\right) \cdot u2\right)\]
  14. Simplified0.2

    \[\leadsto \color{blue}{0.5 + \cos \left(\left(2 \cdot \pi\right) \cdot u2\right) \cdot \sqrt{\log \left({u1}^{-0.05555555555555555}\right)}}\]
  15. Final simplification0.2

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

Reproduce

herbie shell --seed 2021042 
(FPCore (u1 u2)
  :name "normal distribution"
  :precision binary64
  :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))