diff options
author | enge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4> | 2012-01-23 18:08:28 +0000 |
---|---|---|
committer | enge <enge@211d60ee-9f03-0410-a15a-8952a2c7a4e4> | 2012-01-23 18:08:28 +0000 |
commit | 85c8e57d4cbbb5c24babdbf53a87a3ef40c43aea (patch) | |
tree | 4eec5e99ff6fcaddfae5f43cc302633ab37e00bf /src | |
parent | 04d836e20bad46104f9ff06c3bce5349dbfa362d (diff) | |
download | mpc-85c8e57d4cbbb5c24babdbf53a87a3ef40c43aea.tar.gz |
define 0^0 as (1,+0), since the sign of the imaginary part cannot be determined
git-svn-id: svn://scm.gforge.inria.fr/svn/mpc/trunk@1121 211d60ee-9f03-0410-a15a-8952a2c7a4e4
Diffstat (limited to 'src')
-rw-r--r-- | src/pow.c | 32 |
1 files changed, 4 insertions, 28 deletions
@@ -1,6 +1,6 @@ /* mpc_pow -- Raise a complex number to the power of another complex number. -Copyright (C) 2009, 2010, 2011 INRIA +Copyright (C) 2009, 2010, 2011, 2012 INRIA This file is part of GNU MPC. @@ -491,34 +491,10 @@ mpc_pow (mpc_ptr z, mpc_srcptr x, mpc_srcptr y, mpc_rnd_t rnd) { if (x_real && mpfr_zero_p (mpc_realref(x))) { - /* we define 0^0 to be (1, -sign(Im(y))*0) since the real part is + /* we define 0^0 to be (1, +0) since the real part is coherent with MPFR where 0^0 gives 1, and the sign of the - imaginary part is the most frequent one obtained for random - tiny x and y, for example with the following Sage program: - D = dict() - for sa in [-1,1]: - for sb in [-1,1]: - for sc in [-1,1]: - for sd in [-1,1]: - D[(sa,sb,sc,sd)] = [0,0] - def tiny(): - return (random() - 0.5) * 1e-3 - for n in range(10^4): - a = tiny() - b = tiny() - c = tiny() - d = tiny() - x = a+I*b - y = c+I*d - z = x^y - t = sign(a),sign(b),sign(c),sign(d) - if sign(z.imag()) == 1: - D[t] = [D[t][0],D[t][1]+1] - else: - D[t] = [D[t][0]+1,D[t][1]] */ - mpfr_set_ui (mpc_realref(z), 1, GMP_RNDZ); - mpfr_set_zero (mpc_imagref(z), - mpfr_signbit (mpc_imagref(y)) ? 1 : -1); + imaginary part cannot be determined */ + mpc_set_ui_ui (z, 1, 0, MPC_RNDNN); return 0; } else /* x^0 = 1 +/- i*0 even for x=NaN see algorithms.tex for the |