Average Error: 33.2 → 4.0
Time: 9.0s
Precision: 64
\[e^{\log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) \cdot y.re - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot \cos \left(\log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) \cdot y.im + \tan^{-1}_* \frac{x.im}{x.re} \cdot y.re\right)\]
\[e^{\left(\left(\left(\sqrt[3]{\sqrt[3]{y.re} \cdot \sqrt[3]{y.re}} \cdot \sqrt[3]{\sqrt[3]{y.re}}\right) \cdot \sqrt[3]{y.re}\right) \cdot \left(1 \cdot \log \left(\mathsf{hypot}\left(x.re, x.im\right)\right)\right)\right) \cdot \left(\sqrt[3]{\sqrt[3]{y.re} \cdot \sqrt[3]{y.re}} \cdot \sqrt[3]{\sqrt[3]{y.re}}\right) - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im}\]
e^{\log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) \cdot y.re - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot \cos \left(\log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) \cdot y.im + \tan^{-1}_* \frac{x.im}{x.re} \cdot y.re\right)
e^{\left(\left(\left(\sqrt[3]{\sqrt[3]{y.re} \cdot \sqrt[3]{y.re}} \cdot \sqrt[3]{\sqrt[3]{y.re}}\right) \cdot \sqrt[3]{y.re}\right) \cdot \left(1 \cdot \log \left(\mathsf{hypot}\left(x.re, x.im\right)\right)\right)\right) \cdot \left(\sqrt[3]{\sqrt[3]{y.re} \cdot \sqrt[3]{y.re}} \cdot \sqrt[3]{\sqrt[3]{y.re}}\right) - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im}
double f(double x_re, double x_im, double y_re, double y_im) {
        double r19285 = x_re;
        double r19286 = r19285 * r19285;
        double r19287 = x_im;
        double r19288 = r19287 * r19287;
        double r19289 = r19286 + r19288;
        double r19290 = sqrt(r19289);
        double r19291 = log(r19290);
        double r19292 = y_re;
        double r19293 = r19291 * r19292;
        double r19294 = atan2(r19287, r19285);
        double r19295 = y_im;
        double r19296 = r19294 * r19295;
        double r19297 = r19293 - r19296;
        double r19298 = exp(r19297);
        double r19299 = r19291 * r19295;
        double r19300 = r19294 * r19292;
        double r19301 = r19299 + r19300;
        double r19302 = cos(r19301);
        double r19303 = r19298 * r19302;
        return r19303;
}

double f(double x_re, double x_im, double y_re, double y_im) {
        double r19304 = y_re;
        double r19305 = cbrt(r19304);
        double r19306 = r19305 * r19305;
        double r19307 = cbrt(r19306);
        double r19308 = cbrt(r19305);
        double r19309 = r19307 * r19308;
        double r19310 = r19309 * r19305;
        double r19311 = 1.0;
        double r19312 = x_re;
        double r19313 = x_im;
        double r19314 = hypot(r19312, r19313);
        double r19315 = log(r19314);
        double r19316 = r19311 * r19315;
        double r19317 = r19310 * r19316;
        double r19318 = r19317 * r19309;
        double r19319 = atan2(r19313, r19312);
        double r19320 = y_im;
        double r19321 = r19319 * r19320;
        double r19322 = r19318 - r19321;
        double r19323 = exp(r19322);
        return r19323;
}

Error

Bits error versus x.re

Bits error versus x.im

Bits error versus y.re

Bits error versus y.im

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 33.2

    \[e^{\log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) \cdot y.re - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot \cos \left(\log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) \cdot y.im + \tan^{-1}_* \frac{x.im}{x.re} \cdot y.re\right)\]
  2. Taylor expanded around 0 19.8

    \[\leadsto e^{\log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) \cdot y.re - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot \color{blue}{1}\]
  3. Using strategy rm
  4. Applied add-cube-cbrt19.8

    \[\leadsto e^{\log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) \cdot \color{blue}{\left(\left(\sqrt[3]{y.re} \cdot \sqrt[3]{y.re}\right) \cdot \sqrt[3]{y.re}\right)} - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot 1\]
  5. Applied associate-*r*19.8

    \[\leadsto e^{\color{blue}{\left(\log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) \cdot \left(\sqrt[3]{y.re} \cdot \sqrt[3]{y.re}\right)\right) \cdot \sqrt[3]{y.re}} - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot 1\]
  6. Simplified4.0

    \[\leadsto e^{\color{blue}{\left(\left(\sqrt[3]{y.re} \cdot \sqrt[3]{y.re}\right) \cdot \left(1 \cdot \log \left(\mathsf{hypot}\left(x.re, x.im\right)\right)\right)\right)} \cdot \sqrt[3]{y.re} - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot 1\]
  7. Using strategy rm
  8. Applied add-cube-cbrt4.0

    \[\leadsto e^{\left(\left(\sqrt[3]{\color{blue}{\left(\sqrt[3]{y.re} \cdot \sqrt[3]{y.re}\right) \cdot \sqrt[3]{y.re}}} \cdot \sqrt[3]{y.re}\right) \cdot \left(1 \cdot \log \left(\mathsf{hypot}\left(x.re, x.im\right)\right)\right)\right) \cdot \sqrt[3]{y.re} - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot 1\]
  9. Applied cbrt-prod4.0

    \[\leadsto e^{\left(\left(\color{blue}{\left(\sqrt[3]{\sqrt[3]{y.re} \cdot \sqrt[3]{y.re}} \cdot \sqrt[3]{\sqrt[3]{y.re}}\right)} \cdot \sqrt[3]{y.re}\right) \cdot \left(1 \cdot \log \left(\mathsf{hypot}\left(x.re, x.im\right)\right)\right)\right) \cdot \sqrt[3]{y.re} - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot 1\]
  10. Using strategy rm
  11. Applied add-cube-cbrt4.0

    \[\leadsto e^{\left(\left(\left(\sqrt[3]{\sqrt[3]{y.re} \cdot \sqrt[3]{y.re}} \cdot \sqrt[3]{\sqrt[3]{y.re}}\right) \cdot \sqrt[3]{y.re}\right) \cdot \left(1 \cdot \log \left(\mathsf{hypot}\left(x.re, x.im\right)\right)\right)\right) \cdot \sqrt[3]{\color{blue}{\left(\sqrt[3]{y.re} \cdot \sqrt[3]{y.re}\right) \cdot \sqrt[3]{y.re}}} - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot 1\]
  12. Applied cbrt-prod4.0

    \[\leadsto e^{\left(\left(\left(\sqrt[3]{\sqrt[3]{y.re} \cdot \sqrt[3]{y.re}} \cdot \sqrt[3]{\sqrt[3]{y.re}}\right) \cdot \sqrt[3]{y.re}\right) \cdot \left(1 \cdot \log \left(\mathsf{hypot}\left(x.re, x.im\right)\right)\right)\right) \cdot \color{blue}{\left(\sqrt[3]{\sqrt[3]{y.re} \cdot \sqrt[3]{y.re}} \cdot \sqrt[3]{\sqrt[3]{y.re}}\right)} - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot 1\]
  13. Final simplification4.0

    \[\leadsto e^{\left(\left(\left(\sqrt[3]{\sqrt[3]{y.re} \cdot \sqrt[3]{y.re}} \cdot \sqrt[3]{\sqrt[3]{y.re}}\right) \cdot \sqrt[3]{y.re}\right) \cdot \left(1 \cdot \log \left(\mathsf{hypot}\left(x.re, x.im\right)\right)\right)\right) \cdot \left(\sqrt[3]{\sqrt[3]{y.re} \cdot \sqrt[3]{y.re}} \cdot \sqrt[3]{\sqrt[3]{y.re}}\right) - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im}\]

Reproduce

herbie shell --seed 2020083 +o rules:numerics
(FPCore (x.re x.im y.re y.im)
  :name "powComplex, real part"
  :precision binary64
  (* (exp (- (* (log (sqrt (+ (* x.re x.re) (* x.im x.im)))) y.re) (* (atan2 x.im x.re) y.im))) (cos (+ (* (log (sqrt (+ (* x.re x.re) (* x.im x.im)))) y.im) (* (atan2 x.im x.re) y.re)))))