home *** CD-ROM | disk | FTP | other *** search
Text File | 1986-11-30 | 23.8 KB | 1,070 lines |
- *** ../f77/src/f77pass1/conv.c.orig Tue Oct 29 15:15:46 1985
- --- ../f77/src/f77pass1/conv.c Tue Oct 29 15:22:23 1985
- ***************
- *** 53,59
-
-
- /* The following constants are used to check the limits of */
- ! /* conversions. Dmaxword is the largest double precision */
- /* number which can be converted to a two-byte integer */
- /* without overflow. Dminword is the smallest double */
- /* precision value which can be converted to a two-byte */
-
- --- 53,61 -----
-
-
- /* The following constants are used to check the limits of */
- ! /* conversions. */
- !
- ! /* Dmaxword is the largest double precision */
- /* number which can be converted to a two-byte integer */
- /* without overflow. Dminword is the smallest double */
- /* precision value which can be converted to a two-byte */
- ***************
- *** 57,66
- /* number which can be converted to a two-byte integer */
- /* without overflow. Dminword is the smallest double */
- /* precision value which can be converted to a two-byte */
- ! /* integer without overflow. Dmaxint and dminint are the */
- ! /* analogous values for four-byte integers. */
- !
- !
- LOCAL long dmaxword[] = { 0xfeff47ff, 0xffffffff };
- LOCAL long dminword[] = { 0x00ffc800, 0xffffffff };
-
-
- --- 59,66 -----
- /* number which can be converted to a two-byte integer */
- /* without overflow. Dminword is the smallest double */
- /* precision value which can be converted to a two-byte */
- ! /* integer without overflow. */
- ! #ifndef GFLOAT
- LOCAL long dmaxword[] = { 0xfeff47ff, 0xffffffff };
- LOCAL long dminword[] = { 0x00ffc800, 0xffffffff };
- #else GFLOAT
- ***************
- *** 63,68
-
- LOCAL long dmaxword[] = { 0xfeff47ff, 0xffffffff };
- LOCAL long dminword[] = { 0x00ffc800, 0xffffffff };
-
- LOCAL long dmaxint[] = { 0xffff4fff, 0xfffffeff };
- LOCAL long dminint[] = { 0x0000d000, 0xffff00ff };
-
- --- 63,72 -----
- #ifndef GFLOAT
- LOCAL long dmaxword[] = { 0xfeff47ff, 0xffffffff };
- LOCAL long dminword[] = { 0x00ffc800, 0xffffffff };
- + #else GFLOAT
- + LOCAL long dmaxword[] = { 0xffdf40ff, 0xffffffff };
- + LOCAL long dminword[] = { 0x0010c100, 0x00000000 };
- + #endif GFLOAT
-
- /* Dmaxint and dminint are the limits for double values */
- /* converted to four-byte integers. */
- ***************
- *** 64,69
- LOCAL long dmaxword[] = { 0xfeff47ff, 0xffffffff };
- LOCAL long dminword[] = { 0x00ffc800, 0xffffffff };
-
- LOCAL long dmaxint[] = { 0xffff4fff, 0xfffffeff };
- LOCAL long dminint[] = { 0x0000d000, 0xffff00ff };
-
-
- --- 68,79 -----
- LOCAL long dminword[] = { 0x0010c100, 0x00000000 };
- #endif GFLOAT
-
- + /* Dmaxint and dminint are the limits for double values */
- + /* converted to four-byte integers. */
- + #ifdef GFLOAT
- + LOCAL long dmaxint[] = { 0xffff41ff, 0xffffffdf };
- + LOCAL long dminint[] = { 0x0000c200, 0xffff0010 };
- + #else GFLOAT
- LOCAL long dmaxint[] = { 0xffff4fff, 0xfffffeff };
- LOCAL long dminint[] = { 0x0000d000, 0xffff00ff };
- #endif GFLOAT
- ***************
- *** 66,71
-
- LOCAL long dmaxint[] = { 0xffff4fff, 0xfffffeff };
- LOCAL long dminint[] = { 0x0000d000, 0xffff00ff };
-
- LOCAL long dmaxreal[] = { 0xffff7fff, 0xffff7fff };
- LOCAL long dminreal[] = { 0xffffffff, 0xffff7fff };
-
- --- 76,82 -----
- #else GFLOAT
- LOCAL long dmaxint[] = { 0xffff4fff, 0xfffffeff };
- LOCAL long dminint[] = { 0x0000d000, 0xffff00ff };
- + #endif GFLOAT
-
- #ifndef GFLOAT
- LOCAL long dmaxreal[] = { 0xffff7fff, 0xffff7fff };
- ***************
- *** 67,72
- LOCAL long dmaxint[] = { 0xffff4fff, 0xfffffeff };
- LOCAL long dminint[] = { 0x0000d000, 0xffff00ff };
-
- LOCAL long dmaxreal[] = { 0xffff7fff, 0xffff7fff };
- LOCAL long dminreal[] = { 0xffffffff, 0xffff7fff };
-
-
- --- 78,84 -----
- LOCAL long dminint[] = { 0x0000d000, 0xffff00ff };
- #endif GFLOAT
-
- + #ifndef GFLOAT
- LOCAL long dmaxreal[] = { 0xffff7fff, 0xffff7fff };
- LOCAL long dminreal[] = { 0xffffffff, 0xffff7fff };
- #else GFLOAT
- ***************
- *** 69,74
-
- LOCAL long dmaxreal[] = { 0xffff7fff, 0xffff7fff };
- LOCAL long dminreal[] = { 0xffffffff, 0xffff7fff };
-
-
-
-
- --- 81,89 -----
- #ifndef GFLOAT
- LOCAL long dmaxreal[] = { 0xffff7fff, 0xffff7fff };
- LOCAL long dminreal[] = { 0xffffffff, 0xffff7fff };
- + #else GFLOAT
- + LOCAL long dmaxreal[] = { 0xffff47f7, 0xffffffff };
- + LOCAL long dminreal[] = { 0xffffc7f7, 0xffffffff };
-
- /* Fmaxword and fminword are limits for float to short. */
- LOCAL long fmaxword[] = { 0xff7f47ff };
- ***************
- *** 70,75
- LOCAL long dmaxreal[] = { 0xffff7fff, 0xffff7fff };
- LOCAL long dminreal[] = { 0xffffffff, 0xffff7fff };
-
-
-
- /* The routines which follow are used to convert */
-
- --- 85,98 -----
- LOCAL long dmaxreal[] = { 0xffff47f7, 0xffffffff };
- LOCAL long dminreal[] = { 0xffffc7f7, 0xffffffff };
-
- + /* Fmaxword and fminword are limits for float to short. */
- + LOCAL long fmaxword[] = { 0xff7f47ff };
- + LOCAL long fminword[] = { 0x00ffc800 };
- +
- + /* Fmaxint and fminint are the limits for float to int. */
- + LOCAL long fmaxint[] = { 0xffff4fff };
- + LOCAL long fminint[] = { 0x0000d000 };
- + #endif GFLOAT
-
-
- /* The routines which follow are used to convert */
- ***************
- *** 188,193
- register long *rp;
- register double *minp;
- register double *maxp;
- realvalue x;
-
- switch (cp->vtype)
-
- --- 211,220 -----
- register long *rp;
- register double *minp;
- register double *maxp;
- + #ifdef GFLOAT
- + register float *minpf;
- + register float *maxpf;
- + #endif GFLOAT
- realvalue x;
-
- switch (cp->vtype)
- ***************
- *** 222,227
- break;
-
- case TYREAL:
- case TYDREAL:
- case TYCOMPLEX:
- case TYDCOMPLEX:
-
- --- 249,255 -----
- break;
-
- case TYREAL:
- + #ifndef GFLOAT
- case TYDREAL:
- #endif GFLOAT
- case TYCOMPLEX:
- ***************
- *** 223,228
-
- case TYREAL:
- case TYDREAL:
- case TYCOMPLEX:
- case TYDCOMPLEX:
- minp = (double *) dminword;
-
- --- 251,257 -----
- case TYREAL:
- #ifndef GFLOAT
- case TYDREAL:
- + #endif GFLOAT
- case TYCOMPLEX:
- #ifdef GFLOAT
- minpf = (float *) fminword;
- ***************
- *** 224,229
- case TYREAL:
- case TYDREAL:
- case TYCOMPLEX:
- case TYDCOMPLEX:
- minp = (double *) dminword;
- maxp = (double *) dmaxword;
-
- --- 253,290 -----
- case TYDREAL:
- #endif GFLOAT
- case TYCOMPLEX:
- + #ifdef GFLOAT
- + minpf = (float *) fminword;
- + maxpf = (float *) fmaxword;
- + rp = (long *) &(cp->const.cr[0]);
- + x.q.word1 = rp[0];
- + if (x.f.sign == 1 && x.f.exp == 0)
- + {
- + if (badvalue <= 1)
- + {
- + badvalue = 2;
- + err(reserved);
- + }
- + p = errnode();
- + }
- + else if ((float) x.q.word1 >= *minpf && (float) x.q.word1 <= *maxpf)
- + {
- + p = (expptr) mkconst(TYSHORT);
- + p->constblock.const.ci = x.q.word1;
- + }
- + else
- + {
- + if (badvalue <= 1)
- + {
- + badvalue = 2;
- + err(toobig);
- + }
- + p = errnode();
- + }
- + break;
- +
- + case TYDREAL:
- + #endif GFLOAT
- case TYDCOMPLEX:
- minp = (double *) dminword;
- maxp = (double *) dmaxword;
- ***************
- *** 230,235
- rp = (long *) &(cp->const.cd[0]);
- x.q.word1 = rp[0];
- x.q.word2 = rp[1];
- if (x.f.sign == 1 && x.f.exp == 0)
- {
- if (badvalue <= 1)
-
- --- 291,297 -----
- rp = (long *) &(cp->const.cd[0]);
- x.q.word1 = rp[0];
- x.q.word2 = rp[1];
- + #ifndef GFLOAT
- if (x.f.sign == 1 && x.f.exp == 0)
- #else GFLOAT
- if (x.g.sign == 1 && x.g.exp == 0)
- ***************
- *** 231,236
- x.q.word1 = rp[0];
- x.q.word2 = rp[1];
- if (x.f.sign == 1 && x.f.exp == 0)
- {
- if (badvalue <= 1)
- {
-
- --- 293,301 -----
- x.q.word2 = rp[1];
- #ifndef GFLOAT
- if (x.f.sign == 1 && x.f.exp == 0)
- + #else GFLOAT
- + if (x.g.sign == 1 && x.g.exp == 0)
- + #endif GFLOAT
- {
- if (badvalue <= 1)
- {
- ***************
- *** 302,307
- register long *rp;
- register double *minp;
- register double *maxp;
- realvalue x;
-
- switch (cp->vtype)
-
- --- 367,376 -----
- register long *rp;
- register double *minp;
- register double *maxp;
- + #ifdef GFLOAT
- + register float *minpf;
- + register float *maxpf;
- + #endif GFLOAT
- realvalue x;
-
- switch (cp->vtype)
- ***************
- *** 323,328
- break;
-
- case TYREAL:
- case TYDREAL:
- case TYCOMPLEX:
- case TYDCOMPLEX:
-
- --- 392,398 -----
- break;
-
- case TYREAL:
- + #ifndef GFLOAT
- case TYDREAL:
- #endif GFLOAT
- case TYCOMPLEX:
- ***************
- *** 324,329
-
- case TYREAL:
- case TYDREAL:
- case TYCOMPLEX:
- case TYDCOMPLEX:
- minp = (double *) dminint;
-
- --- 394,400 -----
- case TYREAL:
- #ifndef GFLOAT
- case TYDREAL:
- + #endif GFLOAT
- case TYCOMPLEX:
- #ifdef GFLOAT
- minpf = (float *) fminint;
- ***************
- *** 325,330
- case TYREAL:
- case TYDREAL:
- case TYCOMPLEX:
- case TYDCOMPLEX:
- minp = (double *) dminint;
- maxp = (double *) dmaxint;
-
- --- 396,432 -----
- case TYDREAL:
- #endif GFLOAT
- case TYCOMPLEX:
- + #ifdef GFLOAT
- + minpf = (float *) fminint;
- + maxpf = (float *) fmaxint;
- + x.q.word1 = *((long *) &cp->const.cr[0]);
- + if (x.f.sign == 1 && x.f.exp == 0)
- + {
- + if (badvalue <= 1)
- + {
- + badvalue = 2;
- + err(reserved);
- + }
- + p = errnode();
- + }
- + else if (cp->const.cr[0] >= *minpf && cp->const.cr[0] <= *maxpf)
- + {
- + p = (expptr) mkconst(TYLONG);
- + p->constblock.const.ci = cp->const.cr[0];
- + }
- + else
- + {
- + if (badvalue <= 1)
- + {
- + badvalue = 2;
- + err(toobig);
- + }
- + p = errnode();
- + }
- + break;
- +
- + case TYDREAL:
- + #endif GFLOAT
- case TYDCOMPLEX:
- minp = (double *) dminint;
- maxp = (double *) dmaxint;
- ***************
- *** 331,336
- rp = (long *) &(cp->const.cd[0]);
- x.q.word1 = rp[0];
- x.q.word2 = rp[1];
- if (x.f.sign == 1 && x.f.exp == 0)
- {
- if (badvalue <= 1)
-
- --- 433,439 -----
- rp = (long *) &(cp->const.cd[0]);
- x.q.word1 = rp[0];
- x.q.word2 = rp[1];
- + #ifndef GFLOAT
- if (x.f.sign == 1 && x.f.exp == 0)
- #else GFLOAT
- if (x.g.sign == 1 && x.g.exp == 0)
- ***************
- *** 332,337
- x.q.word1 = rp[0];
- x.q.word2 = rp[1];
- if (x.f.sign == 1 && x.f.exp == 0)
- {
- if (badvalue <= 1)
- {
-
- --- 435,443 -----
- x.q.word2 = rp[1];
- #ifndef GFLOAT
- if (x.f.sign == 1 && x.f.exp == 0)
- + #else GFLOAT
- + if (x.g.sign == 1 && x.g.exp == 0)
- + #endif GFLOAT
- {
- if (badvalue <= 1)
- {
- ***************
- *** 403,408
- register double *minp;
- register double *maxp;
- realvalue x;
- float y;
-
- switch (cp->vtype)
-
- --- 509,515 -----
- register double *minp;
- register double *maxp;
- realvalue x;
- + #ifndef GFLOAT
- float y;
- #endif GFLOAT
-
- ***************
- *** 404,409
- register double *maxp;
- realvalue x;
- float y;
-
- switch (cp->vtype)
- {
-
- --- 511,517 -----
- realvalue x;
- #ifndef GFLOAT
- float y;
- + #endif GFLOAT
-
- switch (cp->vtype)
- {
- ***************
- *** 418,423
- case TYSHORT:
- case TYLONG:
- p = (expptr) mkconst(TYREAL);
- p->constblock.const.cd[0] = cp->const.ci;
- break;
-
-
- --- 526,532 -----
- case TYSHORT:
- case TYLONG:
- p = (expptr) mkconst(TYREAL);
- + #ifndef GFLOAT
- p->constblock.const.cd[0] = cp->const.ci;
- #else GFLOAT
- p->constblock.const.cr[0] = cp->const.ci;
- ***************
- *** 419,424
- case TYLONG:
- p = (expptr) mkconst(TYREAL);
- p->constblock.const.cd[0] = cp->const.ci;
- break;
-
- case TYREAL:
-
- --- 528,536 -----
- p = (expptr) mkconst(TYREAL);
- #ifndef GFLOAT
- p->constblock.const.cd[0] = cp->const.ci;
- + #else GFLOAT
- + p->constblock.const.cr[0] = cp->const.ci;
- + #endif GFLOAT
- break;
-
- case TYREAL:
- ***************
- *** 422,427
- break;
-
- case TYREAL:
- case TYDREAL:
- case TYCOMPLEX:
- case TYDCOMPLEX:
-
- --- 534,540 -----
- break;
-
- case TYREAL:
- + #ifndef GFLOAT
- case TYDREAL:
- #endif GFLOAT
- case TYCOMPLEX:
- ***************
- *** 423,428
-
- case TYREAL:
- case TYDREAL:
- case TYCOMPLEX:
- case TYDCOMPLEX:
- minp = (double *) dminreal;
-
- --- 536,542 -----
- case TYREAL:
- #ifndef GFLOAT
- case TYDREAL:
- + #endif GFLOAT
- case TYCOMPLEX:
- #ifdef GFLOAT
- p = (expptr) mkconst(TYREAL);
- ***************
- *** 424,429
- case TYREAL:
- case TYDREAL:
- case TYCOMPLEX:
- case TYDCOMPLEX:
- minp = (double *) dminreal;
- maxp = (double *) dmaxreal;
-
- --- 538,550 -----
- case TYDREAL:
- #endif GFLOAT
- case TYCOMPLEX:
- + #ifdef GFLOAT
- + p = (expptr) mkconst(TYREAL);
- + p->constblock.const.cr[0] = cp->const.cr[0];
- + break;
- +
- + case TYDREAL:
- + #endif GFLOAT
- case TYDCOMPLEX:
- minp = (double *) dminreal;
- maxp = (double *) dmaxreal;
- ***************
- *** 430,435
- rp = (long *) &(cp->const.cd[0]);
- x.q.word1 = rp[0];
- x.q.word2 = rp[1];
- if (x.f.sign == 1 && x.f.exp == 0)
- {
- p = (expptr) mkconst(TYREAL);
-
- --- 551,557 -----
- rp = (long *) &(cp->const.cd[0]);
- x.q.word1 = rp[0];
- x.q.word2 = rp[1];
- + #ifndef GFLOAT
- if (x.f.sign == 1 && x.f.exp == 0)
- #else GFLOAT
- if (x.g.sign == 1 && x.g.exp == 0)
- ***************
- *** 431,436
- x.q.word1 = rp[0];
- x.q.word2 = rp[1];
- if (x.f.sign == 1 && x.f.exp == 0)
- {
- p = (expptr) mkconst(TYREAL);
- rp = (long *) &(p->constblock.const.cd[0]);
-
- --- 553,561 -----
- x.q.word2 = rp[1];
- #ifndef GFLOAT
- if (x.f.sign == 1 && x.f.exp == 0)
- + #else GFLOAT
- + if (x.g.sign == 1 && x.g.exp == 0)
- + #endif GFLOAT
- {
- p = (expptr) mkconst(TYREAL);
- #ifndef GFLOAT
- ***************
- *** 433,438
- if (x.f.sign == 1 && x.f.exp == 0)
- {
- p = (expptr) mkconst(TYREAL);
- rp = (long *) &(p->constblock.const.cd[0]);
- rp[0] = x.q.word1;
- }
-
- --- 558,564 -----
- #endif GFLOAT
- {
- p = (expptr) mkconst(TYREAL);
- + #ifndef GFLOAT
- rp = (long *) &(p->constblock.const.cd[0]);
- rp[0] = x.q.word1;
- #else GFLOAT
- ***************
- *** 435,440
- p = (expptr) mkconst(TYREAL);
- rp = (long *) &(p->constblock.const.cd[0]);
- rp[0] = x.q.word1;
- }
- else if (x.d >= *minp && x.d <= *maxp)
- {
-
- --- 561,570 -----
- #ifndef GFLOAT
- rp = (long *) &(p->constblock.const.cd[0]);
- rp[0] = x.q.word1;
- + #else GFLOAT
- + /* Gfloat: Assume that IEEE standard hardware handles exceptions */
- + p->constblock.const.cr[0] = x.d;
- + #endif GFLOAT
- }
- else if (x.d >= *minp && x.d <= *maxp)
- {
- ***************
- *** 439,444
- else if (x.d >= *minp && x.d <= *maxp)
- {
- p = (expptr) mkconst(TYREAL);
- y = x.d;
- p->constblock.const.cd[0] = y;
- }
-
- --- 569,575 -----
- else if (x.d >= *minp && x.d <= *maxp)
- {
- p = (expptr) mkconst(TYREAL);
- + #ifndef GFLOAT
- y = x.d;
- p->constblock.const.cd[0] = y;
- #else GFLOAT
- ***************
- *** 441,446
- p = (expptr) mkconst(TYREAL);
- y = x.d;
- p->constblock.const.cd[0] = y;
- }
- else
- {
-
- --- 572,580 -----
- #ifndef GFLOAT
- y = x.d;
- p->constblock.const.cd[0] = y;
- + #else GFLOAT
- + p->constblock.const.cr[0] = x.d;
- + #endif GFLOAT
- }
- else
- {
- ***************
- *** 517,522
- p->constblock.const.cd[0] = cp->const.ci;
- break;
-
- case TYREAL:
- case TYDREAL:
- case TYCOMPLEX:
-
- --- 651,657 -----
- p->constblock.const.cd[0] = cp->const.ci;
- break;
-
- + #ifndef GFLOAT
- case TYREAL:
- case TYCOMPLEX:
- #endif GFLOAT
- ***************
- *** 518,524
- break;
-
- case TYREAL:
- - case TYDREAL:
- case TYCOMPLEX:
- case TYDCOMPLEX:
- p = (expptr) mkconst(TYDREAL);
-
- --- 653,658 -----
-
- #ifndef GFLOAT
- case TYREAL:
- case TYCOMPLEX:
- #endif GFLOAT
- case TYDREAL:
- ***************
- *** 520,525
- case TYREAL:
- case TYDREAL:
- case TYCOMPLEX:
- case TYDCOMPLEX:
- p = (expptr) mkconst(TYDREAL);
- longp = (long *) &(cp->const.cd[0]);
-
- --- 654,661 -----
- #ifndef GFLOAT
- case TYREAL:
- case TYCOMPLEX:
- + #endif GFLOAT
- + case TYDREAL:
- case TYDCOMPLEX:
- p = (expptr) mkconst(TYDREAL);
- #ifndef GFLOAT
- ***************
- *** 522,527
- case TYCOMPLEX:
- case TYDCOMPLEX:
- p = (expptr) mkconst(TYDREAL);
- longp = (long *) &(cp->const.cd[0]);
- rp = (long *) &(p->constblock.const.cd[0]);
- rp[0] = longp[0];
-
- --- 658,664 -----
- case TYDREAL:
- case TYDCOMPLEX:
- p = (expptr) mkconst(TYDREAL);
- + #ifndef GFLOAT
- longp = (long *) &(cp->const.cd[0]);
- rp = (long *) &(p->constblock.const.cd[0]);
- rp[0] = longp[0];
- ***************
- *** 526,531
- rp = (long *) &(p->constblock.const.cd[0]);
- rp[0] = longp[0];
- rp[1] = longp[1];
- break;
-
- case TYLOGICAL:
-
- --- 663,671 -----
- rp = (long *) &(p->constblock.const.cd[0]);
- rp[0] = longp[0];
- rp[1] = longp[1];
- + #else GFLOAT
- + p->constblock.const.cd[0] = cp->const.cd[0];
- + #endif GFLOAT
- break;
-
- #ifdef GFLOAT
- ***************
- *** 528,533
- rp[1] = longp[1];
- break;
-
- case TYLOGICAL:
- if (badvalue <= 1)
- {
-
- --- 668,681 -----
- #endif GFLOAT
- break;
-
- + #ifdef GFLOAT
- + case TYREAL:
- + case TYCOMPLEX:
- + p = (expptr) mkconst(TYDREAL);
- + p->constblock.const.cd[0] = cp->const.cr[0];
- + break;
- +
- + #endif GFLOAT
- case TYLOGICAL:
- if (badvalue <= 1)
- {
- ***************
- *** 576,581
- register long *rp;
- register double *minp;
- register double *maxp;
- realvalue re, im;
- int overflow;
- float x;
-
- --- 724,733 -----
- register long *rp;
- register double *minp;
- register double *maxp;
- + #ifdef GFLOAT
- + register float *minpf;
- + register float *maxpf;
- + #endif GFLOAT
- realvalue re, im;
- int overflow;
- float x;
- ***************
- *** 598,603
- break;
-
- case TYREAL:
- case TYDREAL:
- case TYCOMPLEX:
- case TYDCOMPLEX:
-
- --- 750,756 -----
- break;
-
- case TYREAL:
- + #ifndef GFLOAT
- case TYDREAL:
- #endif GFLOAT
- case TYCOMPLEX:
- ***************
- *** 599,604
-
- case TYREAL:
- case TYDREAL:
- case TYCOMPLEX:
- case TYDCOMPLEX:
- overflow = 0;
-
- --- 752,758 -----
- case TYREAL:
- #ifndef GFLOAT
- case TYDREAL:
- + #endif GFLOAT
- case TYCOMPLEX:
- #ifdef GFLOAT
- overflow = 0;
- ***************
- *** 600,605
- case TYREAL:
- case TYDREAL:
- case TYCOMPLEX:
- case TYDCOMPLEX:
- overflow = 0;
- minp = (double *) dminreal;
-
- --- 754,768 -----
- case TYDREAL:
- #endif GFLOAT
- case TYCOMPLEX:
- + #ifdef GFLOAT
- + overflow = 0;
- + p = (expptr) mkconst(TYCOMPLEX);
- + p->constblock.const.cr[0] = cp->const.cr[0];
- + p->constblock.const.cr[1] = cp->const.cr[1];
- + break;
- +
- + case TYDREAL:
- + #endif GFLOAT
- case TYDCOMPLEX:
- overflow = 0;
- minp = (double *) dminreal;
- ***************
- *** 609,614
- re.q.word2 = rp[1];
- im.q.word1 = rp[2];
- im.q.word2 = rp[3];
- if (((re.f.sign == 0 || re.f.exp != 0) &&
- (re.d < *minp || re.d > *maxp)) ||
- ((im.f.sign == 0 || re.f.exp != 0) &&
-
- --- 772,778 -----
- re.q.word2 = rp[1];
- im.q.word1 = rp[2];
- im.q.word2 = rp[3];
- + #ifndef GFLOAT
- if (((re.f.sign == 0 || re.f.exp != 0) &&
- #else GFLOAT
- if (((re.g.sign == 0 || re.g.exp != 0) &&
- ***************
- *** 610,615
- im.q.word1 = rp[2];
- im.q.word2 = rp[3];
- if (((re.f.sign == 0 || re.f.exp != 0) &&
- (re.d < *minp || re.d > *maxp)) ||
- ((im.f.sign == 0 || re.f.exp != 0) &&
- (im.d < *minp || re.d > *maxp)))
-
- --- 774,782 -----
- im.q.word2 = rp[3];
- #ifndef GFLOAT
- if (((re.f.sign == 0 || re.f.exp != 0) &&
- + #else GFLOAT
- + if (((re.g.sign == 0 || re.g.exp != 0) &&
- + #endif GFLOAT
- (re.d < *minp || re.d > *maxp)) ||
- #ifndef GFLOAT
- ((im.f.sign == 0 || re.f.exp != 0) &&
- ***************
- *** 611,616
- im.q.word2 = rp[3];
- if (((re.f.sign == 0 || re.f.exp != 0) &&
- (re.d < *minp || re.d > *maxp)) ||
- ((im.f.sign == 0 || re.f.exp != 0) &&
- (im.d < *minp || re.d > *maxp)))
- {
-
- --- 778,784 -----
- if (((re.g.sign == 0 || re.g.exp != 0) &&
- #endif GFLOAT
- (re.d < *minp || re.d > *maxp)) ||
- + #ifndef GFLOAT
- ((im.f.sign == 0 || re.f.exp != 0) &&
- #else GFLOAT
- ((im.g.sign == 0 || re.g.exp != 0) &&
- ***************
- *** 612,617
- if (((re.f.sign == 0 || re.f.exp != 0) &&
- (re.d < *minp || re.d > *maxp)) ||
- ((im.f.sign == 0 || re.f.exp != 0) &&
- (im.d < *minp || re.d > *maxp)))
- {
- if (badvalue <= 1)
-
- --- 780,788 -----
- (re.d < *minp || re.d > *maxp)) ||
- #ifndef GFLOAT
- ((im.f.sign == 0 || re.f.exp != 0) &&
- + #else GFLOAT
- + ((im.g.sign == 0 || re.g.exp != 0) &&
- + #endif GFLOAT
- (im.d < *minp || re.d > *maxp)))
- {
- if (badvalue <= 1)
- ***************
- *** 624,629
- else
- {
- p = (expptr) mkconst(TYCOMPLEX);
- if (re.f.sign == 1 && re.f.exp == 0)
- re.q.word2 = 0;
- else
-
- --- 795,801 -----
- else
- {
- p = (expptr) mkconst(TYCOMPLEX);
- + #ifndef GFLOAT
- if (re.f.sign == 1 && re.f.exp == 0)
- re.q.word2 = 0;
- else
- ***************
- *** 643,648
- rp[1] = re.q.word2;
- rp[2] = im.q.word1;
- rp[3] = im.q.word2;
- }
- break;
-
-
- --- 815,824 -----
- rp[1] = re.q.word2;
- rp[2] = im.q.word1;
- rp[3] = im.q.word2;
- + #else GFLOAT
- + p->constblock.const.cr[0] = cp->const.cd[0];
- + p->constblock.const.cr[0] = cp->const.cd[1];
- + #endif GFLOAT
- }
- break;
-
- ***************
- *** 711,716
- break;
-
- case TYREAL:
- case TYDREAL:
- case TYCOMPLEX:
- case TYDCOMPLEX:
-
- --- 887,893 -----
- break;
-
- case TYREAL:
- + #ifndef GFLOAT
- case TYDREAL:
- #endif GFLOAT
- case TYCOMPLEX:
- ***************
- *** 712,717
-
- case TYREAL:
- case TYDREAL:
- case TYCOMPLEX:
- case TYDCOMPLEX:
- p = (expptr) mkconst(TYDCOMPLEX);
-
- --- 889,895 -----
- case TYREAL:
- #ifndef GFLOAT
- case TYDREAL:
- + #endif GFLOAT
- case TYCOMPLEX:
- #ifdef GFLOAT
- p = (expptr) mkconst(TYDCOMPLEX);
- ***************
- *** 713,718
- case TYREAL:
- case TYDREAL:
- case TYCOMPLEX:
- case TYDCOMPLEX:
- p = (expptr) mkconst(TYDCOMPLEX);
- longp = (long *) &(cp->const.cd[0]);
-
- --- 891,904 -----
- case TYDREAL:
- #endif GFLOAT
- case TYCOMPLEX:
- + #ifdef GFLOAT
- + p = (expptr) mkconst(TYDCOMPLEX);
- + p->constblock.const.cd[0] = cp->const.cr[0];
- + p->constblock.const.cd[1] = cp->const.cr[1];
- + break;
- +
- + case TYDREAL:
- + #endif GFLOAT
- case TYDCOMPLEX:
- p = (expptr) mkconst(TYDCOMPLEX);
- #ifndef GFLOAT
- ***************
- *** 715,720
- case TYCOMPLEX:
- case TYDCOMPLEX:
- p = (expptr) mkconst(TYDCOMPLEX);
- longp = (long *) &(cp->const.cd[0]);
- rp = (long *) &(p->constblock.const.cd[0]);
- rp[0] = longp[0];
-
- --- 901,907 -----
- #endif GFLOAT
- case TYDCOMPLEX:
- p = (expptr) mkconst(TYDCOMPLEX);
- + #ifndef GFLOAT
- longp = (long *) &(cp->const.cd[0]);
- rp = (long *) &(p->constblock.const.cd[0]);
- rp[0] = longp[0];
- ***************
- *** 721,726
- rp[1] = longp[1];
- rp[2] = longp[2];
- rp[3] = longp[3];
- break;
-
- case TYLOGICAL:
-
- --- 908,917 -----
- rp[1] = longp[1];
- rp[2] = longp[2];
- rp[3] = longp[3];
- + #else GFLOAT
- + p->constblock.const.cd[0] = cp->const.cd[0];
- + p->constblock.const.cd[1] = cp->const.cd[1];
- + #endif GFLOAT
- break;
-
- case TYLOGICAL:
-