log for complex

J-S Caux js at gmail.com
Wed Mar 7 10:10:49 UTC 2018


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.



More information about the Digitalmars-d-learn mailing list