home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume3 / g-format / part3 / gfloat / f77 / src / f77pass1 / expr.c.diff < prev   
Encoding:
Text File  |  1986-11-30  |  14.0 KB  |  677 lines

  1. *** ../f77/src/f77pass1/expr.c.orig    Tue Oct 29 15:15:54 1985
  2. --- ../f77/src/f77pass1/expr.c    Tue Oct 29 15:22:42 1985
  3. ***************
  4. *** 151,157
  5.   register Constp p;
  6.   
  7.   p = mkconst(t);
  8. ! p->const.cd[0] = d;
  9.   return( (expptr) p );
  10.   }
  11.   
  12.  
  13. --- 151,162 -----
  14.   register Constp p;
  15.   
  16.   p = mkconst(t);
  17. ! #ifdef GFLOAT
  18. ! if (t==TYREAL)
  19. !     p->const.cr[0] = d;
  20. ! else
  21. ! #endif GFLOAT
  22. !     p->const.cd[0] = d;
  23.   return( (expptr) p );
  24.   }
  25.   
  26. ***************
  27. *** 241,246
  28.       p = mkconst( (rtype==TYDREAL||itype==TYDREAL) ? TYDCOMPLEX : TYCOMPLEX);
  29.       if( ISINT(rtype) )
  30.           p->const.cd[0] = realp->constblock.const.ci;
  31.       else    p->const.cd[0] = realp->constblock.const.cd[0];
  32.       if( ISINT(itype) )
  33.           p->const.cd[1] = imagp->constblock.const.ci;
  34.  
  35. --- 246,255 -----
  36.       p = mkconst( (rtype==TYDREAL||itype==TYDREAL) ? TYDCOMPLEX : TYCOMPLEX);
  37.       if( ISINT(rtype) )
  38.           p->const.cd[0] = realp->constblock.const.ci;
  39. + #ifdef GFLOAT
  40. +     else if (rtype==TYREAL || itype==TYREAL) 
  41. +         p->const.cr[0] = realp->constblock.const.cr[0];
  42. + #endif GFLOAT
  43.       else    p->const.cd[0] = realp->constblock.const.cd[0];
  44.       if( ISINT(itype) )
  45.           p->const.cd[1] = imagp->constblock.const.ci;
  46. ***************
  47. *** 244,249
  48.       else    p->const.cd[0] = realp->constblock.const.cd[0];
  49.       if( ISINT(itype) )
  50.           p->const.cd[1] = imagp->constblock.const.ci;
  51.       else    p->const.cd[1] = imagp->constblock.const.cd[0];
  52.       }
  53.   else
  54.  
  55. --- 253,262 -----
  56.       else    p->const.cd[0] = realp->constblock.const.cd[0];
  57.       if( ISINT(itype) )
  58.           p->const.cd[1] = imagp->constblock.const.ci;
  59. + #ifdef GFLOAT
  60. +     else if (rtype==TYREAL || itype==TYREAL) 
  61. +         p->const.cr[1] = imagp->constblock.const.cr[0];
  62. + #endif GFLOAT
  63.       else    p->const.cd[1] = imagp->constblock.const.cd[0];
  64.       }
  65.   else
  66. ***************
  67. *** 2255,2261
  68.               lv->ci = rv->ccp[0];
  69.           else if( ISINT(rt) )
  70.               lv->ci = rv->ci;
  71. !         else    lv->ci = rv->cd[0];
  72.           break;
  73.   
  74.       case TYCOMPLEX:
  75.  
  76. --- 2268,2278 -----
  77.               lv->ci = rv->ccp[0];
  78.           else if( ISINT(rt) )
  79.               lv->ci = rv->ci;
  80. ! #ifdef GFLOAT
  81. !         else if (rt==TYREAL || rt==TYCOMPLEX)
  82. !                    lv->ci = rv->cr[0]; /* should test */
  83. ! #endif GFLOAT
  84. !           else    lv->ci = rv->cd[0];
  85.           break;
  86.   
  87.       case TYCOMPLEX: 
  88. ***************
  89. *** 2258,2264
  90.           else    lv->ci = rv->cd[0];
  91.           break;
  92.   
  93. !     case TYCOMPLEX:
  94.       case TYDCOMPLEX:
  95.           switch(rt)
  96.               {
  97.  
  98. --- 2275,2305 -----
  99.             else    lv->ci = rv->cd[0];
  100.           break;
  101.   
  102. !     case TYCOMPLEX: 
  103. ! #ifdef GFLOAT
  104. !         switch(rt)
  105. !             {
  106. !             case TYSHORT:
  107. !             case TYLONG:
  108. !                 /* fall through and do real assignment of
  109. !                    first element */
  110. !             case TYREAL:
  111. !             case TYDREAL:
  112. !                 lv->cr[1] = 0; break;
  113. !             case TYCOMPLEX:
  114. !                 lv->cr[1] = rv->cr[1]; break;
  115. !             case TYDCOMPLEX: /* should check range here */
  116. !                 lv->cr[1] = rv->cd[1]; break;
  117. !             }
  118. !     case TYREAL:
  119. !         if( ISINT(rt) )
  120. !             lv->cr[0] = rv->ci;
  121. !         else if (rt==TYREAL || rt==TYCOMPLEX) 
  122. !             lv->cr[0] = rv->cr[0];
  123. !         else    lv->cr[0] = rv->cd[0]; /* should test range */
  124. !         break;
  125. ! #endif GFLOAT
  126.       case TYDCOMPLEX:
  127.           switch(rt)
  128.               {
  129. ***************
  130. *** 2270,2276
  131.               case TYREAL:
  132.               case TYDREAL:
  133.                   lv->cd[1] = 0; break;
  134. !             case TYCOMPLEX:
  135.               case TYDCOMPLEX:
  136.                   lv->cd[1] = rv->cd[1]; break;
  137.               }
  138.  
  139. --- 2311,2320 -----
  140.               case TYREAL:
  141.               case TYDREAL:
  142.                   lv->cd[1] = 0; break;
  143. !             case TYCOMPLEX: 
  144. ! #ifdef GFLOAT
  145. !                 lv->cd[1] = rv->cr[1]; break;
  146. ! #endif GFLOAT
  147.               case TYDCOMPLEX:
  148.                   lv->cd[1] = rv->cd[1]; break;
  149.               }
  150. ***************
  151. *** 2274,2280
  152.               case TYDCOMPLEX:
  153.                   lv->cd[1] = rv->cd[1]; break;
  154.               }
  155.       case TYREAL:
  156.       case TYDREAL:
  157.           if( ISINT(rt) )
  158.  
  159. --- 2318,2324 -----
  160.               case TYDCOMPLEX:
  161.                   lv->cd[1] = rv->cd[1]; break;
  162.               }
  163. ! #ifndef GFLOAT
  164.       case TYREAL:
  165.   #endif GFLOAT
  166.       case TYDREAL:
  167. ***************
  168. *** 2276,2281
  169.               }
  170.   
  171.       case TYREAL:
  172.       case TYDREAL:
  173.           if( ISINT(rt) )
  174.               lv->cd[0] = rv->ci;
  175.  
  176. --- 2320,2326 -----
  177.               }
  178.   #ifndef GFLOAT
  179.       case TYREAL:
  180. + #endif GFLOAT
  181.       case TYDREAL:
  182.           if( ISINT(rt) )
  183.               lv->cd[0] = rv->ci;
  184. ***************
  185. *** 2279,2284
  186.       case TYDREAL:
  187.           if( ISINT(rt) )
  188.               lv->cd[0] = rv->ci;
  189.           else    lv->cd[0] = rv->cd[0];
  190.           break;
  191.   
  192.  
  193. --- 2324,2333 -----
  194.       case TYDREAL:
  195.           if( ISINT(rt) )
  196.               lv->cd[0] = rv->ci;
  197. + #ifdef GFLOAT
  198. +         else if (rt==TYREAL || rt==TYCOMPLEX) 
  199. +             lv->cd[0] = rv->cr[0];
  200. + #endif GFLOAT
  201.           else    lv->cd[0] = rv->cd[0];
  202.           break;
  203.   
  204. ***************
  205. *** 2300,2306
  206.           p->const.ci = - p->const.ci;
  207.           break;
  208.   
  209. !     case TYCOMPLEX:
  210.       case TYDCOMPLEX:
  211.           p->const.cd[1] = - p->const.cd[1];
  212.           /* fall through and do the real parts */
  213.  
  214. --- 2349,2362 -----
  215.           p->const.ci = - p->const.ci;
  216.           break;
  217.   
  218. !     case TYCOMPLEX: 
  219. ! #ifdef GFLOAT
  220. !         p->const.cr[1] = - p->const.cr[1];
  221. !         /* fall through and do the real parts */
  222. !     case TYREAL:
  223. !         p->const.cr[0] = - p->const.cr[0];
  224. !         break;
  225. ! #endif GFLOAT
  226.       case TYDCOMPLEX:
  227.           p->const.cd[1] = - p->const.cd[1];
  228.           /* fall through and do the real parts */
  229. ***************
  230. *** 2304,2309
  231.       case TYDCOMPLEX:
  232.           p->const.cd[1] = - p->const.cd[1];
  233.           /* fall through and do the real parts */
  234.       case TYREAL:
  235.       case TYDREAL:
  236.           p->const.cd[0] = - p->const.cd[0];
  237.  
  238. --- 2360,2366 -----
  239.       case TYDCOMPLEX:
  240.           p->const.cd[1] = - p->const.cd[1];
  241.           /* fall through and do the real parts */
  242. + #ifndef GFLOAT
  243.       case TYREAL:
  244.   #endif GFLOAT
  245.       case TYDREAL:
  246. ***************
  247. *** 2305,2310
  248.           p->const.cd[1] = - p->const.cd[1];
  249.           /* fall through and do the real parts */
  250.       case TYREAL:
  251.       case TYDREAL:
  252.           p->const.cd[0] = - p->const.cd[0];
  253.           break;
  254.  
  255. --- 2362,2368 -----
  256.           /* fall through and do the real parts */
  257.   #ifndef GFLOAT
  258.       case TYREAL:
  259. + #endif GFLOAT
  260.       case TYDREAL:
  261.           p->const.cd[0] = - p->const.cd[0];
  262.           break;
  263. ***************
  264. *** 2329,2335
  265.       case TYLONG:
  266.           powp->ci = 1;
  267.           break;
  268. !     case TYCOMPLEX:
  269.       case TYDCOMPLEX:
  270.           powp->cd[1] = 0;
  271.       case TYREAL:
  272.  
  273. --- 2387,2399 -----
  274.       case TYLONG:
  275.           powp->ci = 1;
  276.           break;
  277. !     case TYCOMPLEX: 
  278. ! #ifdef GFLOAT
  279. !         powp->cr[1] = 0;
  280. !     case TYREAL:
  281. !         powp->cr[0] = 1;
  282. !         break;
  283. ! #endif GFLOAT
  284.       case TYDCOMPLEX:
  285.           powp->cd[1] = 0;
  286.   #ifndef GFLOAT
  287. ***************
  288. *** 2332,2337
  289.       case TYCOMPLEX:
  290.       case TYDCOMPLEX:
  291.           powp->cd[1] = 0;
  292.       case TYREAL:
  293.       case TYDREAL:
  294.           powp->cd[0] = 1;
  295.  
  296. --- 2396,2402 -----
  297.   #endif GFLOAT
  298.       case TYDCOMPLEX:
  299.           powp->cd[1] = 0;
  300. + #ifndef GFLOAT
  301.       case TYREAL:
  302.   #endif GFLOAT
  303.       case TYDREAL:
  304. ***************
  305. *** 2333,2338
  306.       case TYDCOMPLEX:
  307.           powp->cd[1] = 0;
  308.       case TYREAL:
  309.       case TYDREAL:
  310.           powp->cd[0] = 1;
  311.           break;
  312.  
  313. --- 2398,2404 -----
  314.           powp->cd[1] = 0;
  315.   #ifndef GFLOAT
  316.       case TYREAL:
  317. + #endif GFLOAT
  318.       case TYDREAL:
  319.           powp->cd[0] = 1;
  320.           break;
  321. ***************
  322. *** 2383,2388
  323.   
  324.   /* do constant operation cp = a op b */
  325.   
  326.   
  327.   LOCAL consbinop(opcode, type, cp, ap, bp)
  328.   int opcode, type;
  329.  
  330. --- 2449,2457 -----
  331.   
  332.   /* do constant operation cp = a op b */
  333.   
  334. + #ifdef GFLOAT
  335. + struct rcomplex { double real, imag; };
  336. + #endif GFLOAT
  337.   
  338.   LOCAL consbinop(opcode, type, cp, ap, bp)
  339.   int opcode, type;
  340. ***************
  341. *** 2390,2395
  342.   {
  343.   int k;
  344.   double temp;
  345.   
  346.   switch(opcode)
  347.       {
  348.  
  349. --- 2459,2467 -----
  350.   {
  351.   int k;
  352.   double temp;
  353. + #ifdef GFLOAT
  354. + struct rcomplex fr, ar, br;
  355. + #endif GFLOAT
  356.   
  357.   switch(opcode)
  358.       {
  359. ***************
  360. *** 2401,2406
  361.                   cp->ci = ap->ci + bp->ci;
  362.                   break;
  363.               case TYCOMPLEX:
  364.               case TYDCOMPLEX:
  365.                   cp->cd[1] = ap->cd[1] + bp->cd[1];
  366.               case TYREAL:
  367.  
  368. --- 2473,2484 -----
  369.                   cp->ci = ap->ci + bp->ci;
  370.                   break;
  371.               case TYCOMPLEX:
  372. + #ifdef GFLOAT
  373. +                 cp->cr[1] = ap->cr[1] + bp->cr[1];
  374. +             case TYREAL:
  375. +                 cp->cr[0] = ap->cr[0] + bp->cr[0];
  376. +                 break;
  377. + #endif GFLOAT
  378.               case TYDCOMPLEX:
  379.                   cp->cd[1] = ap->cd[1] + bp->cd[1];
  380.   #ifndef GFLOAT
  381. ***************
  382. *** 2403,2408
  383.               case TYCOMPLEX:
  384.               case TYDCOMPLEX:
  385.                   cp->cd[1] = ap->cd[1] + bp->cd[1];
  386.               case TYREAL:
  387.               case TYDREAL:
  388.                   cp->cd[0] = ap->cd[0] + bp->cd[0];
  389.  
  390. --- 2481,2487 -----
  391.   #endif GFLOAT
  392.               case TYDCOMPLEX:
  393.                   cp->cd[1] = ap->cd[1] + bp->cd[1];
  394. + #ifndef GFLOAT
  395.               case TYREAL:
  396.   #endif GFLOAT
  397.               case TYDREAL:
  398. ***************
  399. *** 2404,2409
  400.               case TYDCOMPLEX:
  401.                   cp->cd[1] = ap->cd[1] + bp->cd[1];
  402.               case TYREAL:
  403.               case TYDREAL:
  404.                   cp->cd[0] = ap->cd[0] + bp->cd[0];
  405.                   break;
  406.  
  407. --- 2483,2489 -----
  408.                   cp->cd[1] = ap->cd[1] + bp->cd[1];
  409.   #ifndef GFLOAT
  410.               case TYREAL:
  411. + #endif GFLOAT
  412.               case TYDREAL:
  413.                   cp->cd[0] = ap->cd[0] + bp->cd[0];
  414.                   break;
  415. ***************
  416. *** 2417,2423
  417.               case TYLONG:
  418.                   cp->ci = ap->ci - bp->ci;
  419.                   break;
  420. !             case TYCOMPLEX:
  421.               case TYDCOMPLEX:
  422.                   cp->cd[1] = ap->cd[1] - bp->cd[1];
  423.               case TYREAL:
  424.  
  425. --- 2497,2509 -----
  426.               case TYLONG:
  427.                   cp->ci = ap->ci - bp->ci;
  428.                   break;
  429. !             case TYCOMPLEX: 
  430. ! #ifdef GFLOAT
  431. !                 cp->cr[1] = ap->cr[1] - bp->cr[1];
  432. !             case TYREAL:
  433. !                 cp->cr[0] = ap->cr[0] - bp->cr[0];
  434. !                 break;
  435. ! #endif GFLOAT
  436.               case TYDCOMPLEX:
  437.                   cp->cd[1] = ap->cd[1] - bp->cd[1];
  438.   #ifndef GFLOAT
  439. ***************
  440. *** 2420,2425
  441.               case TYCOMPLEX:
  442.               case TYDCOMPLEX:
  443.                   cp->cd[1] = ap->cd[1] - bp->cd[1];
  444.               case TYREAL:
  445.               case TYDREAL:
  446.                   cp->cd[0] = ap->cd[0] - bp->cd[0];
  447.  
  448. --- 2506,2512 -----
  449.   #endif GFLOAT
  450.               case TYDCOMPLEX:
  451.                   cp->cd[1] = ap->cd[1] - bp->cd[1];
  452. + #ifndef GFLOAT
  453.               case TYREAL:
  454.   #endif GFLOAT
  455.               case TYDREAL:
  456. ***************
  457. *** 2421,2426
  458.               case TYDCOMPLEX:
  459.                   cp->cd[1] = ap->cd[1] - bp->cd[1];
  460.               case TYREAL:
  461.               case TYDREAL:
  462.                   cp->cd[0] = ap->cd[0] - bp->cd[0];
  463.                   break;
  464.  
  465. --- 2508,2514 -----
  466.                   cp->cd[1] = ap->cd[1] - bp->cd[1];
  467.   #ifndef GFLOAT
  468.               case TYREAL:
  469. + #endif GFLOAT
  470.               case TYDREAL:
  471.                   cp->cd[0] = ap->cd[0] - bp->cd[0];
  472.                   break;
  473. ***************
  474. *** 2434,2440
  475.               case TYLONG:
  476.                   cp->ci = ap->ci * bp->ci;
  477.                   break;
  478. !             case TYREAL:
  479.               case TYDREAL:
  480.                   cp->cd[0] = ap->cd[0] * bp->cd[0];
  481.                   break;
  482.  
  483. --- 2522,2532 -----
  484.               case TYLONG:
  485.                   cp->ci = ap->ci * bp->ci;
  486.                   break;
  487. !             case TYREAL: 
  488. ! #ifdef GFLOAT
  489. !                 cp->cr[0] = ap->cr[0] * bp->cr[0];
  490. !                 break;
  491. ! #endif GFLOAT
  492.               case TYDREAL:
  493.                   cp->cd[0] = ap->cd[0] * bp->cd[0];
  494.                   break;
  495. ***************
  496. *** 2439,2444
  497.                   cp->cd[0] = ap->cd[0] * bp->cd[0];
  498.                   break;
  499.               case TYCOMPLEX:
  500.               case TYDCOMPLEX:
  501.                   temp = ap->cd[0] * bp->cd[0] -
  502.                           ap->cd[1] * bp->cd[1] ;
  503.  
  504. --- 2531,2544 -----
  505.                   cp->cd[0] = ap->cd[0] * bp->cd[0];
  506.                   break;
  507.               case TYCOMPLEX:
  508. + #ifdef GFLOAT
  509. +                 temp = ap->cr[0] * bp->cr[0] -
  510. +                         ap->cr[1] * bp->cr[1] ;
  511. +                 cp->cr[1] = ap->cr[0] * bp->cr[1] +
  512. +                         ap->cr[1] * bp->cr[0] ;
  513. +                 cp->cr[0] = temp;
  514. +                 break;
  515. + #endif GFLOAT
  516.               case TYDCOMPLEX:
  517.                   temp = ap->cd[0] * bp->cd[0] -
  518.                           ap->cd[1] * bp->cd[1] ;
  519. ***************
  520. *** 2455,2461
  521.               case TYLONG:
  522.                   cp->ci = ap->ci / bp->ci;
  523.                   break;
  524. !             case TYREAL:
  525.               case TYDREAL:
  526.                   cp->cd[0] = ap->cd[0] / bp->cd[0];
  527.                   break;
  528.  
  529. --- 2555,2565 -----
  530.               case TYLONG:
  531.                   cp->ci = ap->ci / bp->ci;
  532.                   break;
  533. !             case TYREAL: 
  534. ! #ifdef GFLOAT
  535. !                 cp->cr[0] = ap->cr[0] / bp->cr[0];
  536. !                 break;
  537. ! #endif GFLOAT
  538.               case TYDREAL:
  539.                   cp->cd[0] = ap->cd[0] / bp->cd[0];
  540.                   break;
  541. ***************
  542. *** 2460,2465
  543.                   cp->cd[0] = ap->cd[0] / bp->cd[0];
  544.                   break;
  545.               case TYCOMPLEX:
  546.               case TYDCOMPLEX:
  547.                   zdiv(cp,ap,bp);
  548.                   break;
  549.  
  550. --- 2564,2579 -----
  551.                   cp->cd[0] = ap->cd[0] / bp->cd[0];
  552.                   break;
  553.               case TYCOMPLEX:
  554. + #ifdef GFLOAT
  555. +                 ar.real = ap->cr[0];
  556. +                  ar.imag = ap->cr[1];
  557. +                 br.real = bp->cr[0];
  558. +                 br.imag = bp->cr[1];
  559. +                 zdiv(fr,ar,br);
  560. +                 cp->cr[0] = fr.real; /* should test */
  561. +                 cp->cr[1] = fr.imag;
  562. +                 break;
  563. + #endif GFLOAT
  564.               case TYDCOMPLEX:
  565.                   zdiv(cp,ap,bp);
  566.                   break;
  567. ***************
  568. *** 2486,2492
  569.                       k = 0;
  570.                   else    k = 1;
  571.                   break;
  572. !             case TYREAL:
  573.               case TYDREAL:
  574.                   if(ap->cd[0] < bp->cd[0])
  575.                       k = -1;
  576.  
  577. --- 2600,2606 -----
  578.                       k = 0;
  579.                   else    k = 1;
  580.                   break;
  581. !             case TYREAL: /*assume this works for G format floats */
  582.               case TYDREAL:
  583.                   if(ap->cd[0] < bp->cd[0])
  584.                       k = -1;
  585. ***************
  586. *** 2494,2500
  587.                       k = 0;
  588.                   else    k = 1;
  589.                   break;
  590. !             case TYCOMPLEX:
  591.               case TYDCOMPLEX:
  592.                   if(ap->cd[0] == bp->cd[0] &&
  593.                      ap->cd[1] == bp->cd[1] )
  594.  
  595. --- 2608,2621 -----
  596.                       k = 0;
  597.                   else    k = 1;
  598.                   break;
  599. !             case TYCOMPLEX: 
  600. ! #ifdef GFLOAT
  601. !                 if(ap->cr[0] == bp->cr[0] &&
  602. !                    ap->cr[1] == bp->cr[1] )
  603. !                     k = 0;
  604. !                 else    k = 1;
  605. !                 break;
  606. ! #endif GFLOAT
  607.               case TYDCOMPLEX:
  608.                   if(ap->cd[0] == bp->cd[0] &&
  609.                      ap->cd[1] == bp->cd[1] )
  610. ***************
  611. *** 2547,2553
  612.           if(p->constblock.const.ci < 0) return(-1);
  613.           return(0);
  614.   
  615. !     case TYREAL:
  616.       case TYDREAL:
  617.           if(p->constblock.const.cd[0] > 0) return(1);
  618.           if(p->constblock.const.cd[0] < 0) return(-1);
  619.  
  620. --- 2668,2679 -----
  621.           if(p->constblock.const.ci < 0) return(-1);
  622.           return(0);
  623.   
  624. !     case TYREAL: 
  625. ! #ifdef GFLOAT
  626. !         if(p->constblock.const.cr[0] > 0) return(1);
  627. !         if(p->constblock.const.cr[0] < 0) return(-1);
  628. !         return(0);
  629. ! #endif GFLOAT
  630.       case TYDREAL:
  631.           if(p->constblock.const.cd[0] > 0) return(1);
  632.           if(p->constblock.const.cd[0] < 0) return(-1);
  633. ***************
  634. *** 2553,2559
  635.           if(p->constblock.const.cd[0] < 0) return(-1);
  636.           return(0);
  637.   
  638. !     case TYCOMPLEX:
  639.       case TYDCOMPLEX:
  640.           return(p->constblock.const.cd[0]!=0 || p->constblock.const.cd[1]!=0);
  641.   
  642.  
  643. --- 2679,2687 -----
  644.           if(p->constblock.const.cd[0] < 0) return(-1);
  645.           return(0);
  646.   
  647. !     case TYCOMPLEX: 
  648. ! #ifdef GFLOAT
  649. !     return(p->constblock.const.cr[0]!=0 || p->constblock.const.cr[1]!=0);
  650.       case TYDCOMPLEX:
  651.       return(p->constblock.const.cd[0]!=0 || p->constblock.const.cd[1]!=0);
  652.   #else GFLOAT
  653. ***************
  654. *** 2555,2561
  655.   
  656.       case TYCOMPLEX:
  657.       case TYDCOMPLEX:
  658. !         return(p->constblock.const.cd[0]!=0 || p->constblock.const.cd[1]!=0);
  659.   
  660.       default:
  661.           badtype( "conssgn", p->constblock.vtype);
  662.  
  663. --- 2683,2693 -----
  664.   #ifdef GFLOAT
  665.       return(p->constblock.const.cr[0]!=0 || p->constblock.const.cr[1]!=0);
  666.       case TYDCOMPLEX:
  667. !     return(p->constblock.const.cd[0]!=0 || p->constblock.const.cd[1]!=0);
  668. ! #else GFLOAT
  669. !     case TYDCOMPLEX:
  670. !     return(p->constblock.const.cd[0]!=0 || p->constblock.const.cd[1]!=0);
  671. ! #endif GFLOAT
  672.   
  673.       default:
  674.           badtype( "conssgn", p->constblock.vtype);
  675.