\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\frac{1}{\sqrt{\log 10}} \cdot \log \left({\left(\mathsf{hypot}\left(re, im\right)\right)}^{\left(\frac{1}{\sqrt{\log 10}}\right)}\right)double f(double re, double im) {
double r43370 = re;
double r43371 = r43370 * r43370;
double r43372 = im;
double r43373 = r43372 * r43372;
double r43374 = r43371 + r43373;
double r43375 = sqrt(r43374);
double r43376 = log(r43375);
double r43377 = 10.0;
double r43378 = log(r43377);
double r43379 = r43376 / r43378;
return r43379;
}
double f(double re, double im) {
double r43380 = 1.0;
double r43381 = 10.0;
double r43382 = log(r43381);
double r43383 = sqrt(r43382);
double r43384 = r43380 / r43383;
double r43385 = re;
double r43386 = im;
double r43387 = hypot(r43385, r43386);
double r43388 = pow(r43387, r43384);
double r43389 = log(r43388);
double r43390 = r43384 * r43389;
return r43390;
}



Bits error versus re



Bits error versus im
Results
Initial program 31.6
rmApplied hypot-def0.6
rmApplied add-sqr-sqrt0.6
Applied pow10.6
Applied log-pow0.6
Applied times-frac0.6
rmApplied add-log-exp0.6
Simplified0.3
Final simplification0.3
herbie shell --seed 2019352 +o rules:numerics
(FPCore (re im)
:name "math.log10 on complex, real part"
:precision binary64
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))