Average Error: 33.7 → 22.7
Time: 28.3s
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 \sin \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)\]
\[\begin{array}{l} \mathbf{if}\;x.re \le -5.616832559651558451849109678525604482482 \cdot 10^{-55}:\\ \;\;\;\;e^{y.re \cdot \log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot \sin \left(\tan^{-1}_* \frac{x.im}{x.re} \cdot y.re + y.im \cdot \log \left(-x.re\right)\right)\\ \mathbf{elif}\;x.re \le -5.801236634736125880840417635301472309179 \cdot 10^{-149}:\\ \;\;\;\;e^{y.re \cdot \log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot \sin \left(\tan^{-1}_* \frac{x.im}{x.re} \cdot y.re + \log \left(\sqrt[3]{\sqrt[3]{\sqrt{{x.im}^{2} + {x.re}^{2}}} \cdot \left(\sqrt[3]{\sqrt{{x.im}^{2} + {x.re}^{2}}} \cdot \sqrt[3]{\sqrt{{x.im}^{2} + {x.re}^{2}}}\right)} \cdot \left(\sqrt[3]{\sqrt{x.re \cdot x.re + x.im \cdot x.im}} \cdot \sqrt[3]{\sqrt{x.re \cdot x.re + x.im \cdot x.im}}\right)\right) \cdot y.im\right)\\ \mathbf{elif}\;x.re \le 2.139329358485260398678701659639633596924 \cdot 10^{-311}:\\ \;\;\;\;e^{y.re \cdot \log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot \sin \left(\tan^{-1}_* \frac{x.im}{x.re} \cdot y.re + y.im \cdot \log \left(-x.re\right)\right)\\ \mathbf{else}:\\ \;\;\;\;e^{y.re \cdot \log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot \sin \left(y.im \cdot \log x.re + \tan^{-1}_* \frac{x.im}{x.re} \cdot y.re\right)\\ \end{array}\]
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 \sin \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)
\begin{array}{l}
\mathbf{if}\;x.re \le -5.616832559651558451849109678525604482482 \cdot 10^{-55}:\\
\;\;\;\;e^{y.re \cdot \log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot \sin \left(\tan^{-1}_* \frac{x.im}{x.re} \cdot y.re + y.im \cdot \log \left(-x.re\right)\right)\\

\mathbf{elif}\;x.re \le -5.801236634736125880840417635301472309179 \cdot 10^{-149}:\\
\;\;\;\;e^{y.re \cdot \log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot \sin \left(\tan^{-1}_* \frac{x.im}{x.re} \cdot y.re + \log \left(\sqrt[3]{\sqrt[3]{\sqrt{{x.im}^{2} + {x.re}^{2}}} \cdot \left(\sqrt[3]{\sqrt{{x.im}^{2} + {x.re}^{2}}} \cdot \sqrt[3]{\sqrt{{x.im}^{2} + {x.re}^{2}}}\right)} \cdot \left(\sqrt[3]{\sqrt{x.re \cdot x.re + x.im \cdot x.im}} \cdot \sqrt[3]{\sqrt{x.re \cdot x.re + x.im \cdot x.im}}\right)\right) \cdot y.im\right)\\

\mathbf{elif}\;x.re \le 2.139329358485260398678701659639633596924 \cdot 10^{-311}:\\
\;\;\;\;e^{y.re \cdot \log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot \sin \left(\tan^{-1}_* \frac{x.im}{x.re} \cdot y.re + y.im \cdot \log \left(-x.re\right)\right)\\

\mathbf{else}:\\
\;\;\;\;e^{y.re \cdot \log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot \sin \left(y.im \cdot \log x.re + \tan^{-1}_* \frac{x.im}{x.re} \cdot y.re\right)\\

\end{array}
double f(double x_re, double x_im, double y_re, double y_im) {
        double r28206 = x_re;
        double r28207 = r28206 * r28206;
        double r28208 = x_im;
        double r28209 = r28208 * r28208;
        double r28210 = r28207 + r28209;
        double r28211 = sqrt(r28210);
        double r28212 = log(r28211);
        double r28213 = y_re;
        double r28214 = r28212 * r28213;
        double r28215 = atan2(r28208, r28206);
        double r28216 = y_im;
        double r28217 = r28215 * r28216;
        double r28218 = r28214 - r28217;
        double r28219 = exp(r28218);
        double r28220 = r28212 * r28216;
        double r28221 = r28215 * r28213;
        double r28222 = r28220 + r28221;
        double r28223 = sin(r28222);
        double r28224 = r28219 * r28223;
        return r28224;
}

double f(double x_re, double x_im, double y_re, double y_im) {
        double r28225 = x_re;
        double r28226 = -5.6168325596515585e-55;
        bool r28227 = r28225 <= r28226;
        double r28228 = y_re;
        double r28229 = r28225 * r28225;
        double r28230 = x_im;
        double r28231 = r28230 * r28230;
        double r28232 = r28229 + r28231;
        double r28233 = sqrt(r28232);
        double r28234 = log(r28233);
        double r28235 = r28228 * r28234;
        double r28236 = atan2(r28230, r28225);
        double r28237 = y_im;
        double r28238 = r28236 * r28237;
        double r28239 = r28235 - r28238;
        double r28240 = exp(r28239);
        double r28241 = r28236 * r28228;
        double r28242 = -r28225;
        double r28243 = log(r28242);
        double r28244 = r28237 * r28243;
        double r28245 = r28241 + r28244;
        double r28246 = sin(r28245);
        double r28247 = r28240 * r28246;
        double r28248 = -5.801236634736126e-149;
        bool r28249 = r28225 <= r28248;
        double r28250 = 2.0;
        double r28251 = pow(r28230, r28250);
        double r28252 = pow(r28225, r28250);
        double r28253 = r28251 + r28252;
        double r28254 = sqrt(r28253);
        double r28255 = cbrt(r28254);
        double r28256 = r28255 * r28255;
        double r28257 = r28255 * r28256;
        double r28258 = cbrt(r28257);
        double r28259 = cbrt(r28233);
        double r28260 = r28259 * r28259;
        double r28261 = r28258 * r28260;
        double r28262 = log(r28261);
        double r28263 = r28262 * r28237;
        double r28264 = r28241 + r28263;
        double r28265 = sin(r28264);
        double r28266 = r28240 * r28265;
        double r28267 = 2.1393293584853e-311;
        bool r28268 = r28225 <= r28267;
        double r28269 = log(r28225);
        double r28270 = r28237 * r28269;
        double r28271 = r28270 + r28241;
        double r28272 = sin(r28271);
        double r28273 = r28240 * r28272;
        double r28274 = r28268 ? r28247 : r28273;
        double r28275 = r28249 ? r28266 : r28274;
        double r28276 = r28227 ? r28247 : r28275;
        return r28276;
}

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. Split input into 3 regimes
  2. if x.re < -5.6168325596515585e-55 or -5.801236634736126e-149 < x.re < 2.1393293584853e-311

    1. Initial program 35.3

      \[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 \sin \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 -inf 22.1

      \[\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 \sin \left(\log \color{blue}{\left(-1 \cdot x.re\right)} \cdot y.im + \tan^{-1}_* \frac{x.im}{x.re} \cdot y.re\right)\]
    3. Simplified22.1

      \[\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 \sin \left(\log \color{blue}{\left(-x.re\right)} \cdot y.im + \tan^{-1}_* \frac{x.im}{x.re} \cdot y.re\right)\]

    if -5.6168325596515585e-55 < x.re < -5.801236634736126e-149

    1. Initial program 16.6

      \[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 \sin \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. Using strategy rm
    3. Applied add-cube-cbrt16.6

      \[\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 \sin \left(\log \color{blue}{\left(\left(\sqrt[3]{\sqrt{x.re \cdot x.re + x.im \cdot x.im}} \cdot \sqrt[3]{\sqrt{x.re \cdot x.re + x.im \cdot x.im}}\right) \cdot \sqrt[3]{\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)\]
    4. Using strategy rm
    5. Applied add-cube-cbrt16.6

      \[\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 \sin \left(\log \left(\left(\sqrt[3]{\sqrt{x.re \cdot x.re + x.im \cdot x.im}} \cdot \sqrt[3]{\sqrt{x.re \cdot x.re + x.im \cdot x.im}}\right) \cdot \sqrt[3]{\color{blue}{\left(\sqrt[3]{\sqrt{x.re \cdot x.re + x.im \cdot x.im}} \cdot \sqrt[3]{\sqrt{x.re \cdot x.re + x.im \cdot x.im}}\right) \cdot \sqrt[3]{\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)\]
    6. Simplified16.6

      \[\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 \sin \left(\log \left(\left(\sqrt[3]{\sqrt{x.re \cdot x.re + x.im \cdot x.im}} \cdot \sqrt[3]{\sqrt{x.re \cdot x.re + x.im \cdot x.im}}\right) \cdot \sqrt[3]{\color{blue}{\left(\sqrt[3]{\sqrt{{x.re}^{2} + {x.im}^{2}}} \cdot \sqrt[3]{\sqrt{{x.re}^{2} + {x.im}^{2}}}\right)} \cdot \sqrt[3]{\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)\]
    7. Simplified16.6

      \[\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 \sin \left(\log \left(\left(\sqrt[3]{\sqrt{x.re \cdot x.re + x.im \cdot x.im}} \cdot \sqrt[3]{\sqrt{x.re \cdot x.re + x.im \cdot x.im}}\right) \cdot \sqrt[3]{\left(\sqrt[3]{\sqrt{{x.re}^{2} + {x.im}^{2}}} \cdot \sqrt[3]{\sqrt{{x.re}^{2} + {x.im}^{2}}}\right) \cdot \color{blue}{\sqrt[3]{\sqrt{{x.re}^{2} + {x.im}^{2}}}}}\right) \cdot y.im + \tan^{-1}_* \frac{x.im}{x.re} \cdot y.re\right)\]

    if 2.1393293584853e-311 < x.re

    1. Initial program 35.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 \sin \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 inf 24.2

      \[\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 \sin \left(\log \color{blue}{x.re} \cdot y.im + \tan^{-1}_* \frac{x.im}{x.re} \cdot y.re\right)\]
  3. Recombined 3 regimes into one program.
  4. Final simplification22.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;x.re \le -5.616832559651558451849109678525604482482 \cdot 10^{-55}:\\ \;\;\;\;e^{y.re \cdot \log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot \sin \left(\tan^{-1}_* \frac{x.im}{x.re} \cdot y.re + y.im \cdot \log \left(-x.re\right)\right)\\ \mathbf{elif}\;x.re \le -5.801236634736125880840417635301472309179 \cdot 10^{-149}:\\ \;\;\;\;e^{y.re \cdot \log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot \sin \left(\tan^{-1}_* \frac{x.im}{x.re} \cdot y.re + \log \left(\sqrt[3]{\sqrt[3]{\sqrt{{x.im}^{2} + {x.re}^{2}}} \cdot \left(\sqrt[3]{\sqrt{{x.im}^{2} + {x.re}^{2}}} \cdot \sqrt[3]{\sqrt{{x.im}^{2} + {x.re}^{2}}}\right)} \cdot \left(\sqrt[3]{\sqrt{x.re \cdot x.re + x.im \cdot x.im}} \cdot \sqrt[3]{\sqrt{x.re \cdot x.re + x.im \cdot x.im}}\right)\right) \cdot y.im\right)\\ \mathbf{elif}\;x.re \le 2.139329358485260398678701659639633596924 \cdot 10^{-311}:\\ \;\;\;\;e^{y.re \cdot \log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot \sin \left(\tan^{-1}_* \frac{x.im}{x.re} \cdot y.re + y.im \cdot \log \left(-x.re\right)\right)\\ \mathbf{else}:\\ \;\;\;\;e^{y.re \cdot \log \left(\sqrt{x.re \cdot x.re + x.im \cdot x.im}\right) - \tan^{-1}_* \frac{x.im}{x.re} \cdot y.im} \cdot \sin \left(y.im \cdot \log x.re + \tan^{-1}_* \frac{x.im}{x.re} \cdot y.re\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019196 
(FPCore (x.re x.im y.re y.im)
  :name "powComplex, imaginary part"
  (* (exp (- (* (log (sqrt (+ (* x.re x.re) (* x.im x.im)))) y.re) (* (atan2 x.im x.re) y.im))) (sin (+ (* (log (sqrt (+ (* x.re x.re) (* x.im x.im)))) y.im) (* (atan2 x.im x.re) y.re)))))