Thread overview
[Issue 18571] Missing functions in std.complex
Mar 08, 2018
Simen Kjaeraas
Mar 08, 2018
Seb
Oct 21, 2018
Tiberiu Lepadatu
Apr 25, 2021
Iain Buclaw
March 08, 2018
https://issues.dlang.org/show_bug.cgi?id=18571

Simen Kjaeraas <simen.kjaras@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |simen.kjaras@gmail.com
            Summary|log for Complex             |Missing functions in
                   |                            |std.complex

--- Comment #1 from Simen Kjaeraas <simen.kjaras@gmail.com> ---
Not just log, either - all of the following functions are missing:
acos, acosh, approxEqual, asin, asinh, atan, atan2, atanh, cbrt, ceil,
copysign, cosh, exp, floor, isInfinity, isNaN, log, log10, log2, poly, pow,
round, sgn, sinh, tan, tanh, trunc.

Naïve implementations of every one of those are available here: https://gist.github.com/Biotronic/17af645c2c9b7913de1f04980cd22b37

There's probably plenty of optimization opportunities, as very little attempt has been made to make the functions fast, but they should provide a starting point for anyone wanting to make something better.

There are other functions in std.math that might make sense to implement for complex numbers, like remainder, scalbn, exp2, expm1, ldexp, quantize, and hypot.

--
March 08, 2018
https://issues.dlang.org/show_bug.cgi?id=18571

Seb <greensunny12@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |greensunny12@gmail.com

--- Comment #2 from Seb <greensunny12@gmail.com> ---
How about adding the naive implementations for now? Optimization can always be made in later releases.

--
October 21, 2018
https://issues.dlang.org/show_bug.cgi?id=18571

Tiberiu Lepadatu <tiberiulepadatu14@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tiberiulepadatu14@gmail.com

--- Comment #3 from Tiberiu Lepadatu <tiberiulepadatu14@gmail.com> ---
Is the formula "ln(z) = ln|z| + i * (Arg(z))" enough for a naive
implementation?

--
April 25, 2021
https://issues.dlang.org/show_bug.cgi?id=18571

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |ibuclaw@gdcproject.org
         Resolution|---                         |FIXED

--- Comment #4 from Iain Buclaw <ibuclaw@gdcproject.org> ---
https://github.com/dlang/phobos/pull/7456 https://github.com/dlang/phobos/pull/7474 https://github.com/dlang/phobos/pull/7475 https://github.com/dlang/phobos/pull/7482 https://github.com/dlang/phobos/pull/7669

--