Subject: Re: [boost] Review request: extended complex number library
From: Neal Becker (ndbecker2_at_[hidden])
Date: 2012-03-10 08:44:28
Matthieu Schaller wrote:
>>>> IIUC the standard cover just complex on builtin types, isn't it? See
>>>> the C99 or C11 standards, annex G.
>>>>> It also comes with a possible implementation.
>>>> I don't which can be the correct implementation for C++ complex on
>>>> builtin types without using arbitrary precision.
>>>> I have no access to this standard. Please could you add it here?
>>> look for instance n1124.pdf which is a C99 draft.
>>> The aim is not to have full precision but to minimize
>>> overflows/underflows and to
>>> get good behviour with inf and nan.
>>> For example
>>> 1) (0+0i)*(inf+0i) must return nan+0i, not nan+nani
>>> 2) if modulus(a)Â² overflow this must not necesseraly implies
>>> that 1/a which is mathematically conj(a)/modulus(a)Â² underflows
>> Thanks. I see now what you mean. I agree, correctness is important.
> The question is thus do we (you) rather want a library that reproduces
> the std::complex (i.e. the gcc and icc ones at least) class both in
> terms of performance and accuracy or do we want a library that is more
> accurate when de-normalized numbers are involved but that would be
> slower than the standard one ?
> I am not sure people would easily give up the speed of the standard one
> just to be able to handle numbers that should anyway never enter
> everyday calculations. What is your opinion ?
Can we have both? With gcc, -ffast-math will allow faster/less correct code.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk