On Wednesday, 7 March 2018 at 08:04:36 UTC, Simen Kjærås wrote:
On Wednesday, 7 March 2018 at 07:42:37 UTC, J-S Caux wrote:
Simple question: how do I get the log of a complex number?

If I try the simple
logtest = log(complex(1.0, 2.0))

I get the compiler error

Error: function core.stdc.math.log(double x) is not callable using argument types (Complex!double)

Some basic functions are described in https://dlang.org/phobos/std_complex.html, but not the log...

That seems like an oversight. For now, this should work:

auto log(T)(Complex!T x) {
    import std.math : log;
    return Complex!T(log (abs(x)), arg(x));
}

--
  Simen

Yes indeed I can do this, but isn't this inefficient as compared to what it should be? The internals of arg are presumable already doing part of/all the necessary work.

Reply via email to