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.