#define _GNU_SOURCE #include #include #include #include double complex test_clog10(double complex z, bool manpages) { double r; if (manpages) r = carg(z) / M_LN10; else r = carg(z); return log10(cabs(z)) + r * I; } int main(void) { double complex c, r1, r2; c = 4 + 5*I; r1 = clog10(c); r2 = test_clog10(c, false); printf("%g + I%g %s %g + I%g\n", creal(r1), cimag(r1), r1 == r2 ? "==" : "!=", creal(r2), cimag(r2)); r2 = test_clog10(c, true); printf("%g + I%g %s %g + I%g\n", creal(r1), cimag(r1), r1 == r2 ? "==" : "!=", creal(r2), cimag(r2)); return 0; }