diff options
author | Michael Stapelberg <stapelberg@debian.org> | 2013-03-04 21:27:36 +0100 |
---|---|---|
committer | Michael Stapelberg <michael@stapelberg.de> | 2013-03-04 21:27:36 +0100 |
commit | 04b08da9af0c450d645ab7389d1467308cfc2db8 (patch) | |
tree | db247935fa4f2f94408edc3acd5d0d4f997aa0d8 /src/pkg/runtime/complex.c | |
parent | 917c5fb8ec48e22459d77e3849e6d388f93d3260 (diff) | |
download | golang-04b08da9af0c450d645ab7389d1467308cfc2db8.tar.gz |
Imported Upstream version 1.1~hg20130304upstream/1.1_hg20130304
Diffstat (limited to 'src/pkg/runtime/complex.c')
-rw-r--r-- | src/pkg/runtime/complex.c | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/src/pkg/runtime/complex.c b/src/pkg/runtime/complex.c index eeb943940..395e70fe3 100644 --- a/src/pkg/runtime/complex.c +++ b/src/pkg/runtime/complex.c @@ -13,28 +13,30 @@ runtime·complex128div(Complex128 n, Complex128 d, Complex128 q) float64 a, b, ratio, denom; // Special cases as in C99. - ninf = runtime·isInf(n.real, 0) || runtime·isInf(n.imag, 0); - dinf = runtime·isInf(d.real, 0) || runtime·isInf(d.imag, 0); + ninf = n.real == runtime·posinf || n.real == runtime·neginf || + n.imag == runtime·posinf || n.imag == runtime·neginf; + dinf = d.real == runtime·posinf || d.real == runtime·neginf || + d.imag == runtime·posinf || d.imag == runtime·neginf; - nnan = !ninf && (runtime·isNaN(n.real) || runtime·isNaN(n.imag)); - dnan = !dinf && (runtime·isNaN(d.real) || runtime·isNaN(d.imag)); + nnan = !ninf && (ISNAN(n.real) || ISNAN(n.imag)); + dnan = !dinf && (ISNAN(d.real) || ISNAN(d.imag)); if(nnan || dnan) { - q.real = runtime·NaN(); - q.imag = runtime·NaN(); - } else if(ninf && !dinf && !dnan) { - q.real = runtime·Inf(0); - q.imag = runtime·Inf(0); - } else if(!ninf && !nnan && dinf) { + q.real = runtime·nan; + q.imag = runtime·nan; + } else if(ninf && !dinf) { + q.real = runtime·posinf; + q.imag = runtime·posinf; + } else if(!ninf && dinf) { q.real = 0; q.imag = 0; } else if(d.real == 0 && d.imag == 0) { if(n.real == 0 && n.imag == 0) { - q.real = runtime·NaN(); - q.imag = runtime·NaN(); + q.real = runtime·nan; + q.imag = runtime·nan; } else { - q.real = runtime·Inf(0); - q.imag = runtime·Inf(0); + q.real = runtime·posinf; + q.imag = runtime·posinf; } } else { // Standard complex arithmetic, factored to avoid unnecessary overflow. |