Date: Tue, 25 Oct 2022 21:16:14 +0200
Good news: it is possible to uniquely pick *cbrt *of any complex number.
Bad news: function is not continuous.
On Tue, Oct 25, 2022 at 6:40 PM Jason C <jason.cipriani_at_[hidden]> wrote:
> On Tue, Oct 25, 2022 at 12:30 PM Jason C <jason.cipriani_at_[hidden]> wrote:
>
>> Perhaps
>>
>> template <typename T>
>> std::tuple<std::complex<T>,std::complex<T>,std::complex<T> > cbrt
>> (std::complex<T> const &c)
>>
>
> Although... this then implies that the roots are ordered, and I'm pretty
> sure there's no predictable and consistent way to ensure some order of the
> returned roots given that there's no solid definition of ordering for
> complex number combined with realistic fp precision errors.
>
> I'm starting to think maybe my idea wasn't such a good one after all and
> this is probably too complicated to make its way into std; users would be
> better off choosing other implementations that meet their specific needs,
> probably.
>
> Jason
>
>
>
>
>
>> On Tue, Oct 25, 2022 at 11:48 AM Dejan Milosavljevic <dmilos_at_[hidden]>
>> wrote:
>>
>>> Cubic root have three solutions.
>>> *What is the rule to uniquely pick the first one?*
>>> Rest of them we can have by multiply with cbrt( {+1,0} );
>>>
>>> My proposal for complex cbrt:
>>> template< typename T/*number like*/>
>>> std::complex<T> cbrt( std::complex<T> const& c, int index =0 /*
>>> which root to use is defined by ( index % 3) 0,1 or 2 */ );
>>>
>>> This might be too complex.
>>> Any idea to make it simple?
>>>
>>> On Tue, Oct 25, 2022 at 5:01 PM Jason C via Std-Proposals <
>>> std-proposals_at_[hidden]> wrote:
>>>
>>>> <complex> is conspicuously missing cbrt().
>>>>
>>>> If I put together a proposal to add std::cbrt(std::complex) to
>>>> <complex>, would there be any interest?
>>>>
>>>> Any thoughts?
>>>>
>>>> Jason
>>>> --
>>>> Std-Proposals mailing list
>>>> Std-Proposals_at_[hidden]
>>>> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
>>>>
>>>
Bad news: function is not continuous.
On Tue, Oct 25, 2022 at 6:40 PM Jason C <jason.cipriani_at_[hidden]> wrote:
> On Tue, Oct 25, 2022 at 12:30 PM Jason C <jason.cipriani_at_[hidden]> wrote:
>
>> Perhaps
>>
>> template <typename T>
>> std::tuple<std::complex<T>,std::complex<T>,std::complex<T> > cbrt
>> (std::complex<T> const &c)
>>
>
> Although... this then implies that the roots are ordered, and I'm pretty
> sure there's no predictable and consistent way to ensure some order of the
> returned roots given that there's no solid definition of ordering for
> complex number combined with realistic fp precision errors.
>
> I'm starting to think maybe my idea wasn't such a good one after all and
> this is probably too complicated to make its way into std; users would be
> better off choosing other implementations that meet their specific needs,
> probably.
>
> Jason
>
>
>
>
>
>> On Tue, Oct 25, 2022 at 11:48 AM Dejan Milosavljevic <dmilos_at_[hidden]>
>> wrote:
>>
>>> Cubic root have three solutions.
>>> *What is the rule to uniquely pick the first one?*
>>> Rest of them we can have by multiply with cbrt( {+1,0} );
>>>
>>> My proposal for complex cbrt:
>>> template< typename T/*number like*/>
>>> std::complex<T> cbrt( std::complex<T> const& c, int index =0 /*
>>> which root to use is defined by ( index % 3) 0,1 or 2 */ );
>>>
>>> This might be too complex.
>>> Any idea to make it simple?
>>>
>>> On Tue, Oct 25, 2022 at 5:01 PM Jason C via Std-Proposals <
>>> std-proposals_at_[hidden]> wrote:
>>>
>>>> <complex> is conspicuously missing cbrt().
>>>>
>>>> If I put together a proposal to add std::cbrt(std::complex) to
>>>> <complex>, would there be any interest?
>>>>
>>>> Any thoughts?
>>>>
>>>> Jason
>>>> --
>>>> Std-Proposals mailing list
>>>> Std-Proposals_at_[hidden]
>>>> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
>>>>
>>>
Received on 2022-10-25 19:16:25