13 #if defined(LIBM_SCCS) && !defined(lint)
14 static const char rcsid[] =
15 "$NetBSD: e_sqrt.c,v 1.8 1995/05/10 20:46:17 jtc Exp $";
92 static const double one = 1.0,
tiny = 1.0e-300;
114 if ((ix0 & 0x7ff00000) == 0x7ff00000) {
120 if (((ix0 & (~sign)) | ix1) == 0)
123 return (x - x) / (x -
x);
133 for (i = 0; (ix0 & 0x00100000) == 0; i++)
136 ix0 |= (ix1 >> (32 -
i));
140 ix0 = (ix0 & 0x000fffff) | 0x00100000;
142 ix0 += ix0 + ((ix1 &
sign) >> 31);
148 ix0 += ix0 + ((ix1 &
sign) >> 31);
150 q = q1 = s0 = s1 = 0;
160 ix0 += ix0 + ((ix1 &
sign) >> 31);
169 if ((t < ix0) || ((t == ix0) && (t1 <= ix1))) {
171 if (((t1 & sign) == sign) && (s1 & sign) == 0)
179 ix0 += ix0 + ((ix1 &
sign) >> 31);
185 if ((ix0 | ix1) != 0) {
192 }
else if (z >
one) {
200 ix0 = (q >> 1) + 0x3fe00000;
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat s0
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat t1
#define EXTRACT_WORDS(ix0, ix1, d)
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat s1
GLdouble GLdouble GLdouble GLdouble q
GLdouble GLdouble GLdouble r
GLint GLint GLint GLint z
INSERT_WORDS(z, ix0, ix1)