Complex number functions
Closed this issue · 9 comments
Are these still needed?
https://www.boost.org/doc/libs/1_81_0/libs/math/doc/html/inverse_complex.html
I see that all six of these functions are in std::complex as of C++11.
Since we are moving to C++14 in the next release we could add the [[deprecated("Replaced by C++11")]]
attribute to these.
I'm cool with that.
Are we sure that 1) these don't work with multiprecision, and 2) they aren't used by some standard library implementation?
Are we sure that 1) these don't work with multiprecision, and 2) they aren't used by some standard library implementation?
-
They return std::complex which is limited to
float
,double
, andlong double
-
That would be a question for @CaseyCarter or @StephanTLavavej. Does MSVC use Boost.Math for complex special functions? I know you use some of the others.
work with multiprecision
When I was recently writing my new cpp_double_fp_backend
for Multiprecision, I got the impression that these functions were used in some of the tests. I'm not sure if they are actually needed for the Multiprecision-backend implementations themselves.
I'll try to take a look before the trail runs cold, since I was recently just snoping around these areas.
We don't use Boost.Math for <complex>
's inverse trig functions; our use is restricted to [sf.cmath]
.
We don't use Boost.Math for
<complex>
's inverse trig functions; our use is restricted to[sf.cmath]
.
Cool
Are we sure that 1) these don't work with multiprecision
No, personally I'm really unsure of that.
Just about every floating-point backend includes the headers when Boost.Math is available. If this is absolutely necessary, I'm not sure.
Wouldn't we need to modify these backends in Multiprecision if deprecation ensues? or did i miss the obvious, as I may have and sometimes do?
No std::complex can not be used for multiprecision types. But... the scalar versions for float/double/long double could well be deprecated I guess. Does that make things worse/less generic though?