\log \left(\sqrt{re \cdot re + im \cdot im}\right)\begin{array}{l}
\mathbf{if}\;re \le -9.16501881147335996 \cdot 10^{142}:\\
\;\;\;\;\log \left(-1 \cdot re\right)\\
\mathbf{elif}\;re \le -2.0370240534066732 \cdot 10^{-273}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{elif}\;re \le 3.9546023522807356 \cdot 10^{-186}:\\
\;\;\;\;\log im\\
\mathbf{elif}\;re \le 7.34377542514503093 \cdot 10^{133}:\\
\;\;\;\;\log \left(\sqrt{re \cdot re + im \cdot im}\right)\\
\mathbf{else}:\\
\;\;\;\;\log re\\
\end{array}double f(double re, double im) {
double r31582 = re;
double r31583 = r31582 * r31582;
double r31584 = im;
double r31585 = r31584 * r31584;
double r31586 = r31583 + r31585;
double r31587 = sqrt(r31586);
double r31588 = log(r31587);
return r31588;
}
double f(double re, double im) {
double r31589 = re;
double r31590 = -9.16501881147336e+142;
bool r31591 = r31589 <= r31590;
double r31592 = -1.0;
double r31593 = r31592 * r31589;
double r31594 = log(r31593);
double r31595 = -2.037024053406673e-273;
bool r31596 = r31589 <= r31595;
double r31597 = r31589 * r31589;
double r31598 = im;
double r31599 = r31598 * r31598;
double r31600 = r31597 + r31599;
double r31601 = sqrt(r31600);
double r31602 = log(r31601);
double r31603 = 3.954602352280736e-186;
bool r31604 = r31589 <= r31603;
double r31605 = log(r31598);
double r31606 = 7.343775425145031e+133;
bool r31607 = r31589 <= r31606;
double r31608 = log(r31589);
double r31609 = r31607 ? r31602 : r31608;
double r31610 = r31604 ? r31605 : r31609;
double r31611 = r31596 ? r31602 : r31610;
double r31612 = r31591 ? r31594 : r31611;
return r31612;
}



Bits error versus re



Bits error versus im
Results
if re < -9.16501881147336e+142Initial program 61.3
Taylor expanded around -inf 7.6
if -9.16501881147336e+142 < re < -2.037024053406673e-273 or 3.954602352280736e-186 < re < 7.343775425145031e+133Initial program 19.0
if -2.037024053406673e-273 < re < 3.954602352280736e-186Initial program 31.3
Taylor expanded around 0 34.6
if 7.343775425145031e+133 < re Initial program 58.6
Taylor expanded around inf 7.7
Final simplification17.7
herbie shell --seed 2020025
(FPCore (re im)
:name "math.log/1 on complex, real part"
:precision binary64
(log (sqrt (+ (* re re) (* im im)))))