octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Welcome C++11!


From: Ed Meyer
Subject: Re: Welcome C++11!
Date: Fri, 14 Dec 2012 09:19:22 -0800



On Fri, Dec 14, 2012 at 5:50 AM, Jordi Gutiérrez Hermoso <address@hidden> wrote:
On 13 December 2012 23:45, Ed Meyer <address@hidden> wrote:

> that did it, but now it fails 2 tests involving pow. With the old
> std i^2 yields -1 exactly because the implementation of pow in
> /usr/include/c++/4.7/complex accounts for the fact that 2 is an even
> integer; it's wrapped with #ifndef __GXX_EXPERIMENTAL_CXX0X__ The
> new pow just does a polar(y*cos(log(x)), y*sin(log(x))) which
> because of roundoff leaves a tiny value (1.2e-16) in the imag part.
>
> I suppose realpow.m should check the imag part and cast the result
> to real if it is tiny instead of returning an error - what do you
> think?

Could this reasonably be considered a bug in the libstdc++
implementation? It sounds like they removed a check for even numbers
for no reason?

- Jordi G. H.

I'm guessing they would not consider this a bug, rather a feature that hasn't been
implemented yet. They haven't implemented pow(complex<T>, int) for c++11 so
the int arg gets cast to double and pow(complex<T>,T) gets called instead.
 I'm trying to figure out from their comments why they did this.

--
Ed Meyer


reply via email to

[Prev in Thread] Current Thread [Next in Thread]