merged with Michael Felts latest version
authorceriel <none@none>
Mon, 25 Jul 1988 10:46:15 +0000 (10:46 +0000)
committerceriel <none@none>
Mon, 25 Jul 1988 10:46:15 +0000 (10:46 +0000)
40 files changed:
mach/proto/fp/.distr
mach/proto/fp/FP_types.h
mach/proto/fp/Makefile
mach/proto/fp/add_ext.c
mach/proto/fp/adder.c
mach/proto/fp/adf4.c
mach/proto/fp/adf8.c
mach/proto/fp/cff4.c
mach/proto/fp/cff8.c
mach/proto/fp/cfi.c
mach/proto/fp/cfu.c
mach/proto/fp/cif4.c
mach/proto/fp/cif8.c
mach/proto/fp/cmf4.c
mach/proto/fp/cmf8.c
mach/proto/fp/compact.c
mach/proto/fp/cuf4.c
mach/proto/fp/cuf8.c
mach/proto/fp/div_ext.c
mach/proto/fp/dvf4.c
mach/proto/fp/dvf8.c
mach/proto/fp/extend.c
mach/proto/fp/fef4.c
mach/proto/fp/fef8.c
mach/proto/fp/fif4.c
mach/proto/fp/fif8.c
mach/proto/fp/mlf4.c
mach/proto/fp/mlf8.c
mach/proto/fp/mul_ext.c
mach/proto/fp/ngf4.c
mach/proto/fp/ngf8.c
mach/proto/fp/nrm_ext.c
mach/proto/fp/sbf4.c
mach/proto/fp/sbf8.c
mach/proto/fp/sft_ext.c
mach/proto/fp/shifter.c
mach/proto/fp/sub_ext.c
mach/proto/fp/zrf4.c
mach/proto/fp/zrf8.c
mach/proto/fp/zrf_ext.c

index d2e6d4b..8ef73c9 100644 (file)
@@ -36,8 +36,6 @@ mul_ext.c
 ngf4.c
 ngf8.c
 nrm_ext.c
-prt_dbl.c
-prt_ext.c
 sbf4.c
 sbf8.c
 sft_ext.c
index ea47ff5..a2478ab 100644 (file)
@@ -7,6 +7,7 @@
 
 /********************************************************/
 /*
+       Type definitions for C Floating Point Package
        include file for floating point package
 */
 /********************************************************/
                EXTEND: double precision extended format
 */
 /********************************************************/
+
+#ifdef EXT_DEBUG
+#ifndef __FPSTDIO
+#define __FPSTDIO
+#include <stdio.h>
+#endif
+#endif
+
+#ifndef __FPTYPES
+#define __FPTYPES
 typedef        unsigned long   _float;
 
 typedef        union   {
@@ -55,6 +66,4 @@ typedef       struct  {       /* expanded float format        */
        unsigned long   m1;
        unsigned long   m2;     /* includes guard byte  */
 } EXTEND;
-#ifdef PRT_EXT
-#include <stdio.h>
 #endif
index 6489695..6c9062f 100644 (file)
@@ -41,9 +41,7 @@ LIST =                cff4.$(SUF) cff8.$(SUF) cfu.$(SUF) cmf4.$(SUF) cmf8.$(SUF)\
                extend.$(SUF) compact.$(SUF)\
                add_ext.$(SUF) div_ext.$(SUF) mul_ext.$(SUF) nrm_ext.$(SUF)\
                sft_ext.$(SUF) sub_ext.$(SUF) zrf_ext.$(SUF)\
-               adder.$(SUF) shifter.$(SUF)\
-               prt_dbl.$(SUF)\
-               fptrp.$(SUF) prt_ext.$(SUF)     # debugging
+               adder.$(SUF) shifter.$(SUF) fptrp.$(SUF)
 SLIST =                cff4.s cff8.s cfu.s cmf4.s cmf8.s\
                cuf4.s cuf8.s\
                dvf4.s dvf8.s fef4.s fef8.s\
@@ -55,9 +53,7 @@ SLIST =               cff4.s cff8.s cfu.s cmf4.s cmf8.s\
                extend.s compact.s\
                add_ext.s div_ext.s mul_ext.s nrm_ext.s\
                sft_ext.s sub_ext.s zrf_ext.s\
-               adder.s shifter.s\
-               prt_dbl.s\
-               fptrp.s prt_ext.s       # debugging
+               adder.s shifter.s fptrp.s
 
 SRC =          FP_bias.h FP_shift.h FP_trap.h FP_types.h adder.h get_put.h\
                cff4.c cff8.c cfu.c cmf4.c cmf8.c\
@@ -71,9 +67,7 @@ SRC =         FP_bias.h FP_shift.h FP_trap.h FP_types.h adder.h get_put.h\
                extend.c compact.c\
                add_ext.c div_ext.c mul_ext.c nrm_ext.c\
                sft_ext.c sub_ext.c zrf_ext.c\
-               adder.c shifter.c\
-               prt_dbl.c\
-               fptrp.e prt_ext.c
+               adder.c shifter.c fptrp.e
 
 all:           FP_$(MACH).a
 
@@ -284,13 +278,3 @@ shifter.$(SUF):    $(CDIR)/shifter.c
        ack -c.s -m$(MACH) $(EMFLAGS) $(CDIR)/shifter.c
        ed - shifter.s <$(CDIR)/FP.script 
        ack -c -m$(MACH) $(EMFLAGS) shifter.s
-
-prt_dbl.$(SUF):        $(CDIR)/prt_dbl.c
-       ack -c.s -m$(MACH) $(EMFLAGS) $(CDIR)/prt_dbl.c
-       ed - prt_dbl.s <$(CDIR)/FP.script 
-       ack -c -m$(MACH) $(EMFLAGS) prt_dbl.s
-
-prt_ext.$(SUF):        $(CDIR)/prt_ext.c
-       ack -c.s -m$(MACH) $(EMFLAGS) $(CDIR)/prt_ext.c
-       ed - prt_ext.s <$(CDIR)/FP.script 
-       ack -c -m$(MACH) $(EMFLAGS) prt_ext.s
index 2ffa862..9671da3 100644 (file)
@@ -6,7 +6,6 @@
 /* $Header$ */
 
 /*
-#define        PRT_EXT
        ADD TWO EXTENDED FORMAT NUMBERS
 */
 
 add_ext(e1,e2)
 register EXTEND        *e1,*e2;
 {
-#ifdef PRT_EXT
-       prt_ext("before ADD #1:",e1);
-       prt_ext("before ADD #2:",e2);
-#endif PRT_EXT
        if (b64_add(&e1->m1,&e2->m1)) { /* addition carry */
                b64_sft(&e1->m1,1);     /* shift mantissa one bit RIGHT */
                e1->m1 |= 0x80000000L;  /* set max bit  */
                e1->exp++;              /* increase the exponent */
        }
-#ifdef PRT_EXT
-       prt_ext("AFTER  ADD   :",e1);
-#endif
        nrm_ext(e1);
-#ifdef PRT_EXT
-       prt_ext("AFTER  NRM   :",e1);
-#endif
 }
index 773be2d..d116d7d 100644 (file)
@@ -9,7 +9,7 @@
  *     these are the routines the routines to do 32 and  64-bit addition
  */
 
-# ifdef        DEBUG
+# ifdef        EXT_DEBUG
 # include <stdio.h>
 # endif
 
@@ -28,15 +28,15 @@ b64_add(e1,e2)
                 */
 register       B64     *e1,*e2;
 {
-               register        short   overflow;
-                               short   carry;
+               register        int     overflow;
+                               int     carry;
 
                        /* add higher pair of 32 bits */
        overflow = b32_add(&e1->h_32,&e2->h_32);
 
                        /* add lower pair of 32 bits */
        carry =    b32_add(&e1->l_32,&e2->l_32);
-# ifdef        DEBUG
+# ifdef        EXT_DEBUG
        printf("\t\t\t\t\tb64_add: overflow (%d); internal carry(%d)\n",
                                        overflow,carry);
        fflush(stdout);
@@ -55,7 +55,7 @@ register      B64     *e1,*e2;
 b32_add(e1,e2)
 register       unsigned long   *e1,*e2;
 {
-       register        short   carry;
+       register        int     carry;
 
        if (*e1 & *e2 & MAXBIT) /* both max_bits are set */
                carry = TRUE;    /* so there is a carry */
@@ -65,7 +65,7 @@ register      unsigned long   *e1,*e2;
                        ? UNKNOWN
                                /* both are clear - no carry */
                        : FALSE;
-# ifdef DEBUG
+# ifdef EXT_DEBUG
        fflush(stdout);
        printf("\t\t\t\t\tb32_add: overflow before add(%d) test(%d)\n",
                                carry,(*e1&MAXBIT)?FALSE:TRUE);
@@ -73,7 +73,7 @@ register      unsigned long   *e1,*e2;
 # endif
 
        *e1 += *e2;
-# ifdef DEBUG
+# ifdef EXT_DEBUG
        printf("%08X\n",*e1);
        fflush(stdout);
 # endif
index 61591a6..a056f5b 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-       ADD TWO FLOATS - SINGLE
+       ADD TWO FLOATS - SINGLE (ADF 4)
 */
 
 #include       "FP_types.h"
@@ -30,9 +30,6 @@ _float        s1,s2;
                        /* if signs differ do subtraction       */
                        /* result in e1 */
        if (e1.sign ^ e2.sign)  {
-#ifdef DEBUG
-               printf("\t\t\tADF calls SUBTRACT\n");
-#endif DEBUG
                        /* set sign of e1 to sign of largest    */
                swap = (e2.exp >  e1.exp) ? 1 : (e2.exp < e1.exp) ? 0 :
                       (e2.m1  >  e1.m1 ) ? 1 : 0;
@@ -40,9 +37,6 @@ _float        s1,s2;
                sft_ext(&e1,&e2);
                        /* subtract the extended formats        */
                if (swap)       {
-#ifdef DEBUG
-                       printf("\t\t\t\tSWAP\n");
-#endif DEBUG
                        sub_ext(&e2,&e1);
                        e1 = e2;
                }
@@ -50,9 +44,6 @@ _float        s1,s2;
                        sub_ext(&e1,&e2);
        }
        else    {
-#ifdef DEBUG
-               printf("\t\t\tADF calls ADDITION\n");
-#endif DEBUG
                        /* adjust mantissas to equal powers */
                sft_ext(&e1,&e2);
                add_ext(&e1,&e2);
index 61c6c6a..2c136cd 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-       ADD TWO FLOATS - DOUBLE
+       ADD TWO FLOATS - DOUBLE (ADF 8)
 */
 
 #include       "FP_types.h"
@@ -16,7 +16,7 @@ adf8(s2,s1)
 _double        s1,s2;
 {
        EXTEND  e1,e2;
-       short   swap;
+       int     swap;
 
        if (s1.__double[0] == 0 && s1.__double[1] == 0) {
                s1 = s2;
@@ -28,10 +28,6 @@ _double      s1,s2;
 
        extend(&s1,&e1,sizeof(_double));
        extend(&s2,&e2,sizeof(_double));
-#ifdef PRT_EXT
-       prt_ext("ADF8: e1",&e1);
-       prt_ext("ADF8: e2",&e2);
-#endif
                        /* adjust mantissas to equal powers */
        if (e1.sign ^ e2.sign)  { /* signs are different */
                        /* determine which is largest number    */
@@ -42,9 +38,6 @@ _double       s1,s2;
                sft_ext(&e1,&e2);
                        /* subtract the extended formats        */
                if (swap)       {       /* &e2 is the largest number */
-#ifdef PRT_EXT
-       fprintf(stderr,"ADF8: swaps and subtracts extended\n");
-#endif
                        sub_ext(&e2,&e1);
                        e1 = e2;
                }
@@ -57,9 +50,6 @@ _double       s1,s2;
                sft_ext(&e1,&e2);
                add_ext(&e1,&e2);
        }
-#ifdef PRT_EXT
-       prt_ext("ADF8: e1 result",&e1);
-#endif
        compact(&e1,&s1,sizeof(_double));
        return(s1);
 }
index 45b92aa..d30a105 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-               CONVERT DOUBLE TO FLOAT
+               CONVERT DOUBLE TO FLOAT (CFF 8 4)
 
        This routine works quite simply. A floating point
        of size 08 is converted to extended format.
@@ -23,13 +23,5 @@ _double      src;    /* the source itself -  THIS TIME it's DOUBLE */
        EXTEND  buf;
 
        extend(&src,&buf,8);    /* no matter what */
-#ifdef PRT_EXT
-       prt_ext("CFF4() entry:",&buf);
-       fprintf(stderr,"ds(%d),ss(%d),src(%08X%08X)\n",8,4,src.__double[0],
-                                                          src.__double[1]);
-#endif PRT_EXT
        compact(&buf,(_double *) &(src.__double[1]),4);
-#ifdef PRT_EXT
-       fprintf(stderr,"CFF4() exit : %08X\n",src.__double[1]);
-#endif PRT_EXT
 }
index e7ca387..737d034 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-               CONVERT FLOAT TO DOUBLE
+               CONVERT FLOAT TO DOUBLE (CFF 4 8)
 
        This routine works quite simply. A floating point
        of size 04 is converted to extended format.
@@ -23,13 +23,5 @@ _float       src;    /* the space on the stack is for a double - see cg/table */
        EXTEND  buf;
 
        extend((_double *) &src,&buf,4);        /* no matter what */
-#ifdef PRT_EXT
-       prt_ext("CFF8() entry:",&buf);
-       fprintf(stderr,"ds(%d),ss(%d),src(%08X)\n",4,8,src);
-#endif
        compact(&buf,&src,8);
-#ifdef DEBUG
-       fprintf(stderr,"CFF8() exit : %08X",src.__double[0]);
-       fprintf(stderr,"%08X\n",src.__double[1]);
-#endif DEBUG
 }
index a9bc1ef..18a9c46 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-               CONVERT FLOAT TO UNSIGNED
+               CONVERT FLOAT TO SIGNED (CFI m n)
 
                N.B. The caller must know what it is getting.
                     A LONG is always returned. If it is an
@@ -27,9 +27,6 @@ _double       src;    /* assume worst case */
        short   newint, max_exp;
 
        extend(&src,&buf,ss);   /* get extended format */
-#ifdef PRT_EXT
-       prt_ext("CFI() entry:",&buf);
-#endif PRT_EXT
        buf.exp--;              /* additional bias correction */
        if (buf.exp < 1) {      /* no conversion needed */
                src.__double[ss == 8] = 0L;
@@ -38,9 +35,6 @@ _double       src;    /* assume worst case */
        max_exp = (ds << 3) - 1;        /* signed numbers */
                                /* have more limited max_exp */
        if (buf.exp > max_exp) {
-#ifdef PRT_EXT
-               prt_ext("CFI() INT OVERFLOW", &buf);
-#endif PRT_EXT
                trap(EIOVFL);   /* integer overflow     */
                buf.exp %= max_exp; /* truncate */
        }
index 02e91b1..8cb2bc8 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-               CONVERT FLOAT TO UNSIGNED
+               CONVERT FLOAT TO UNSIGNED (CFU m n)
 
                N.B. The caller must know what it is getting.
                     A LONG is always returned. If it is an
@@ -27,9 +27,6 @@ _double       src;    /* assume worst case */
        short   newint, max_exp;
 
        extend(&src,&buf,ss);   /* get extended format  */
-#ifdef PRT_EXT
-       prt_ext("CFU() entry:",&buf);
-#endif PRT_EXT
        buf.exp--;              /* additional bias correction */
        if (buf.exp < 1) {      /* no conversion needed */
                src.__double[ss == 8] = 0L;
@@ -37,9 +34,6 @@ _double       src;    /* assume worst case */
        }
        max_exp = (ds << 3);
        if (buf.exp > max_exp) {
-#ifdef PRT_EXT
-               prt_ext("CFU() INT OVERFLOW",&buf);
-#endif PRT_EXT
                trap(EIOVFL);   /* integer overflow     */
                buf.exp %= max_exp;
        }
index 92d6a73..cec5c9c 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-       CONVERT INTEGER TO FLOAT
+       CONVERT INTEGER TO FLOAT (CIF n 4)
 
        THIS ROUTINE WORKS BY FILLING AN EXTENDED
        WITH THE INTEGER VALUE IN EXTENDED FORMAT
@@ -38,9 +38,6 @@ long  src;    /* largest possible integer to convert */
                buf.exp = 17;
                result = (_float *) &ss;
        }
-#ifdef PRT_STDERR
-       fprintf(stderr,"CIF4(ds(%d),ss(%d),src(%D))\n\n",4,ss,i_src);
-#endif
        if (i_src == 0) {
                *result = (_float) 0L;
                return(0L);
@@ -55,9 +52,6 @@ long  src;    /* largest possible integer to convert */
        if (ss != sizeof(long))
                buf.m1 <<= 16;
        nrm_ext(&buf);          /* adjust mantissa field        */
-#ifdef PRT_STDERR
-       fprintf(stderr,"CIF() buf.exp after nrm_ext() == %d\n\n",buf.exp);
-#endif
        compact(&buf,(_double *) result,4);     /* put on stack */
        return(*result);
 }
index da78ef7..374ae82 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-       CONVERT INTEGER TO FLOAT
+       CONVERT INTEGER TO FLOAT (CIF n 8)
 
        THIS ROUTINE WORKS BY FILLING AN EXTENDED
        WITH THE INTEGER VALUE IN EXTENDED FORMAT
@@ -37,9 +37,6 @@ long  src;    /* largest possible integer to convert */
                i_src = (long) *ipt;
                buf.exp = 17;
        }
-#ifdef PRT_STDERR
-       fprintf(stderr,"CIF8(ds(%d),ss(%d),src(%D))\n\n",8,ss,i_src);
-#endif
        if (i_src == 0) {
                zrf8(result);
                return(*result);
@@ -54,9 +51,6 @@ long  src;    /* largest possible integer to convert */
        if (ss != sizeof(long))
                buf.m1 <<= 16;
        nrm_ext(&buf);
-#ifdef PRT_STDERR
-       fprintf(stderr,"CIF() buf.exp after nrm_ext() == %d\n\n",buf.exp);
-#endif
        compact(&buf,result,8);
        return(*result);
 }
index cf6a5d4..b04ca6b 100644 (file)
@@ -6,13 +6,12 @@
 /* $Header$ */
 
 /*
-       COMPARE DOUBLES
+       COMPARE SINGLES (CMF 4)
 */
 
 #include       "FP_types.h"
 #include       "get_put.h"
 
-short
 cmf4(f1,f2)
 _float f1,f2;
 {
index ca2dca5..85b5639 100644 (file)
@@ -6,13 +6,12 @@
 /* $Header$ */
 
 /*
-       COMPARE DOUBLES
+       COMPARE DOUBLES (CMF 8)
 */
 
 #include       "FP_types.h"
 #include       "get_put.h"
 
-short
 cmf8(d1,d2)
 _double        d1,d2;
 {
index ee0c390..2ffbfcf 100644 (file)
@@ -6,9 +6,6 @@
 /* $Header$ */
 
 /*
-#define        PRT_EXIT
-#define        PRT_TRAP
-#define        PRT_ENTRY
        COMPACT EXTEND FORMAT INTO FLOAT OF PROPER SIZE
 */
 
@@ -28,35 +25,23 @@ int size;
        SINGLE  *SGL;
        int     exact;
 
-#ifdef PRT_ENTRY
-       prt_ext("enter compact:",f);
-#endif PRT_ENTRY
-       if (size == sizeof(_double))
-/********************************************************/
-/*
-       COMPACT EXTENDED INTO DOUBLE
-*/
-/********************************************************/
-       {
+       if (size == sizeof(_double)) {
+       /*
+        * COMPACT EXTENDED INTO DOUBLE
+        */
                if ((f->m1|(f->m2 & DBL_ZERO)) == 0L)   {
                        zrf8(to);
-                       goto leave;
+                       return;
                }
                f->exp += DBL_BIAS;     /* restore proper bias  */
                if (f->exp > DBL_MAX)   {
 dbl_over:                      trap(EFOVFL);
-#ifdef PRT_TRAP
-                               prt_ext("FCOMPACT DBL OVERFLOW",f);
-#endif PRT_TRAP
                        f->exp = DBL_MAX;
                        f->m1 = f->m2 = 0L;
                        if (error++)
                                return;
                }
                else if (f->exp < DBL_MIN)      {
-#ifdef PRT_TRAP
-                       prt_ext("FCOMPACT DBL UNDERFLOW",f);
-#endif PRT_TRAP
                        trap(EFUNFL);
                        f->exp = DBL_MIN;
                        f->m1 = f->m2 = 0L;
@@ -87,14 +72,8 @@ dbl_over:                    trap(EFOVFL);
                    if (f->m2 & DBL_ROUNDUP)    {
                        DBL->_s.p2++;   /* rounding up  */
                        if (DBL->_s.p2 == 0L) { /* carry out    */
-#ifdef PRT_RNDMSG
-                           write(2,"rounding up lsb\n",16);
-#endif PRT_RNDMSG
                            DBL->_s.p1.fract++;
                            if (DBL->_s.p1.fract & DBL_CARRYOUT) { /* carry out */
-#ifdef PRT_RNDMSG
-                               write(2,"shift due to rounding\n",22);
-#endif PRT_RNDMSG
                                if (DBL->_s.p1.fract & 01)
                                    DBL->_s.p2 = CARRYBIT;
                                DBL->_s.p1.fract >>= 1;
@@ -107,43 +86,36 @@ dbl_over:                  trap(EFOVFL);
                if (f->exp > DBL_MAX)
                    goto dbl_over;
 
-               /* STORE EXPONENT:                      */
+               /*
+                * STORE EXPONENT:
+                *
+                * 1) clear leading bits (B4-B15)
+                * 2) shift and store exponent
+                */
 
-               /* 1) clear leading bits (B4-B15)       */
                DBL->_s.p1.fract &= DBL_MASK;
-
-               /* 2) shift and store exponent          */
                f->exp <<= DBL_EXPSHIFT;
                DBL->_s.p1.fract |= ((long) f->exp << EXP_STORE);
        }
-       else
-/********************************************************/
-/*
-       COMPACT EXTENDED INTO FLOAT
-*/
-/********************************************************/
-       {
+       else {
+               /*
+                * COMPACT EXTENDED INTO FLOAT
+                */
                /* local CAST conversion                */
                SGL = (SINGLE *) to;
                if ((f->m1 & SGL_ZERO) == 0L)   {
                        SGL->fract = 0L;
-                       goto leave;
+                       return;
                }
                f->exp += SGL_BIAS;     /* restore bias */
                if (f->exp > SGL_MAX)   {
 sgl_over:                      trap(EFOVFL);
-#ifdef PRT_TRAP
-                               prt_ext("FCOMPACT FLOAT OVERFLOW",f);
-#endif PRT_TRAP
                        f->exp = SGL_MAX;
                        f->m1 = f->m2 = 0L;
                        if (error++)
                                return;
                }
                else if (f->exp < SGL_MIN)      {
-#ifdef PRT_TRAP
-                       prt_ext("FCOMPACT FLOAT UNDERFLOW",f);
-#endif PRT_TRAP
                        trap(EFUNFL);
                        f->exp = SGL_MIN;
                        f->m1 = f->m2 = 0L;
@@ -167,9 +139,6 @@ sgl_over:                   trap(EFOVFL);
                        /* INEXACT(); */
                        if (f->m1 & SGL_ROUNDUP) {
                                SGL->fract++;
-#ifdef PRT_RNDMSG
-                               write(2,"rounding up lsb\n",16);
-#endif PRT_RNDMSG
                        /* check normal */
                                if (SGL->fract & SGL_CARRYOUT)  {
                                        SGL->fract >>= 1;
@@ -180,41 +149,34 @@ sgl_over:                 trap(EFOVFL);
                if (f->exp > SGL_MAX)
                        goto sgl_over;
 
-               /* STORE EXPONENT                       */
-               /* 1) clear leading bit of fraction     */
-               SGL->fract &= SGL_MASK; /* B23-B31 are 0 */
+               /*
+                * STORE EXPONENT:
+                *
+                * 1) clear leading bit of fraction
+                * 2) shift and store exponent
+                */
 
-               /* 2) shift and store exponent          */
+               SGL->fract &= SGL_MASK; /* B23-B31 are 0 */
                f->exp <<= SGL_EXPSHIFT;
                SGL->fract |= ((long) f->exp << EXP_STORE);
        }
 
-/********************************************************/
-/*
-       STORE SIGN BIT
-*/
-/********************************************************/
+       /*
+        * STORE SIGN BIT
+        */
        if (f->sign)    {
                SGL = (SINGLE *) to;    /* make sure    */
                SGL->fract |= CARRYBIT;
        }
-/********************************************************/
-/*
-       STORE MANTISSA
-/*
-/********************************************************/
+               
+       /*
+        * STORE MANTISSA
+        */
 
        if (size == sizeof(_double)) {
                put4(DBL->_s.p1.fract, (char *) &DBL->_s.p1.fract);
                put4(DBL->_s.p2, (char *) &DBL->_s.p2);
        }
-               else
+       else
                put4(SGL->fract, (char *) &SGL->fract);
-
-leave:
-#ifdef PRT_EXIT
-       prt_ext("exit  compact:",f);
-       prt_dbl((DOUBLE *) to,size); getchar();
-#endif PRT_EXIT
-       ;       /* end of print statement or null statement */
 }
index 546b36f..891ac16 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-       CONVERT INTEGER TO FLOAT
+       CONVERT INTEGER TO FLOAT (CUF n 4)
 
        THIS ROUTINE WORKS BY FILLING AN EXTENDED
        WITH THE INTEGER VALUE IN EXTENDED FORMAT
@@ -38,9 +38,6 @@ long  src;    /* largest possible integer to convert */
                buf.exp = 17;
                result = (_float *) &ss;
        }
-#ifdef PRT_STDERR
-       fprintf(stderr,"CUF4(ds(%d),ss(%d),src(%D))\n\n",4,ss,i_src);
-#endif
        if (i_src == 0) {
                *result = (_float) 0L;
                return (_float) 0L;
@@ -56,9 +53,6 @@ long  src;    /* largest possible integer to convert */
 
                        /* adjust mantissa field        */
        nrm_ext(&buf);
-#ifdef PRT_STDERR
-       fprintf(stderr,"CUF() buf.exp after nrm_ext() == %d\n\n",buf.exp);
-#endif
        compact(&buf,(_double *) result,4);
        return *result;
 }
index 70ee14c..619ab5e 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-       CONVERT INTEGER TO FLOAT
+       CONVERT INTEGER TO FLOAT (CUF n 8)
 
        THIS ROUTINE WORKS BY FILLING AN EXTENDED
        WITH THE INTEGER VALUE IN EXTENDED FORMAT
@@ -34,9 +34,6 @@ long  src;    /* largest possible integer to convert */
                i_src = (long) *ipt;
                buf.exp = 17;
        }
-#ifdef PRT_STDERR
-       fprintf(stderr,"CUF8(ds(%d),ss(%d),src(%D))\n\n",8,ss,i_src);
-#endif
        if (i_src == 0) {
                zrf8(&ss);
                return;
@@ -52,8 +49,5 @@ long  src;    /* largest possible integer to convert */
 
                        /* adjust mantissa field        */
        nrm_ext(&buf);
-#ifdef PRT_STDERR
-       fprintf(stderr,"CUF() buf.exp after nrm_ext() == %d\n\n",buf.exp);
-#endif
        compact(&buf,(_double *) &ss,8);
 }
index 70807b9..b75599d 100644 (file)
@@ -6,8 +6,6 @@
 /* $Header$ */
 
 /*
-#define        PRT_EXT
-#define        PRT_ALL
        DIVIDE EXTENDED FORMAT
 */
 
        This is a routine to do the work.
        It is based on the partial products method
        and makes no use possible machine instructions
-       to divide (hardware dividers).  It is intended
-       that it be rewritten to do so, but expedieancy
-       requires that something be written NOW - and
-       this is it.
+       to divide (hardware dividers).
 */
 /********************************************************/
 
@@ -36,11 +31,6 @@ EXTEND       *e1,*e2;
                        unsigned long   result[2];
        register        unsigned long   *lp;
 
-#ifdef PRT_EXT
-       fprintf("stderr:start div_ext:\n");
-       prt_ext("dividend:",e1);
-       prt_ext("divisor :",e2);
-#endif
        if ((e1->m1 | e1->m2) == 0) {   /* 0 / anything == 0 */
                e1->exp = 0;    /* make sure */
                return;
@@ -59,25 +49,32 @@ EXTEND      *e1,*e2;
        e1->exp -= e2->exp;
        e1->exp += 2;           /* bias correction      */
        if (e1->exp < EXT_MIN)  {
-               error++;
-#ifdef PRT_EXT
-               prt_ext("DIV_EXT UNDERFLOW",e1);
-#endif PRT_EXT
+               /*
+                * Exception 8.4 - Underflow
+                */
                trap(EFUNFL);   /* underflow */
                e1->exp = EXT_MIN;
                e1->m1 = e1->m2 = 0L;
+               return;
        }
        if ((e2->m1 | e2->m2) == 0) {
-               error++;
-#ifdef PRT_EXT
-               prt_ext("DIV_EXT DIV 0.0",e2);
-#endif PRT_EXT
+                /*
+                 * Exception 8.2 - Divide by zero
+                 */
                trap(EFDIVZ);
                e1->m1 = e1->m2 = 0L;
                e1->exp = EXT_MAX;
-       }
-       if (error)
                return;
+       }
+       if (e1->exp >= EXT_MAX) {
+                /*
+                 * Exception 8.3 - Overflow
+                 */
+                trap(EFOVFL);   /* overflow */
+                e1->exp = EXT_MAX;
+                e1->m1 = e1->m2 = 0L;
+                return;
+        }
 
                /* do division of mantissas     */
                /* uses partial product method  */
@@ -100,10 +97,6 @@ EXTEND      *e1,*e2;
                /* compare dividend and divisor         */
                /* if dividend >= divisor add a bit     */
                /* and subtract divisior from dividend  */
-#ifdef PRT_ALL
-       prt_ext("dividend:",e1);
-       prt_ext("divisor :",e2);
-#endif
 
                if ( (e1->m1 < e2->m1) ||
                        ((e1->m1 == e2->m1) && (e1->m2 < e2->m2) ))
@@ -115,15 +108,7 @@ EXTEND     *e1,*e2;
                                e1->m1 -= 1;    /* carry in */
                        e1->m1 -= e2->m1;       /* do SUBTRACTION */
                        e1->m2 -= e2->m2;       /*    SUBTRACTION */
-#ifdef PRT_ALL
-       prt_ext("result  :",e1);
-#endif
                }
-#ifdef PRT_ALL
-       fprintf(stderr,"div_ext %d %08X%08X\n\n",64-count,
-               result[0],result[1]);
-       fflush(stderr);
-#endif
 
                /*      shift dividend left one bit OR  */
                /*      IF it equals ZERO we can break out      */
@@ -146,14 +131,6 @@ EXTEND     *e1,*e2;
                        break;  /* leave loop   */
        }       /* end of divide by subtraction loop    */
 
-       /*      DISPLAY RESULTS FOR DEBUGGING           */
-#ifdef PRT_ALL
-       prt_ext("dividend:",e1);
-       prt_ext("divisor :",e2);
-       fprintf(stderr,"div_ext %d %08X%08X\n",64-count,
-               result[0],result[1]);
-#endif
-
        if (count > 0)  {
                lp = result;
                if (count > 31) {       /* move to higher word */
@@ -169,18 +146,20 @@ EXTEND    *e1,*e2;
                        *lp <<= count;
                }
        }
-       /*
-       if (error)
-               INEXACT();
-       */
+#ifdef  EXCEPTION_INEXACT
+        if (error)      {
+                /*
+                 * report here exception 8.5 - Inexact
+                 * from Draft 8.0 of IEEE P754:
+                 * In the absence of an invalid operation exception,
+                 * if the rounded result of an operation is not exact or if
+                 * it overflows without a trap, then the inexact exception
+                 * shall be assigned. The rounded or overflowed result
+                 * shall be delivered to the destination.
+                 */
+                INEXACT();
+#endif
        e1->m1 = result[0];
        e1->m2 = result[1];
-#ifdef PRT_EXT
-       prt_ext("result  :",e1);
-#endif
        nrm_ext(e1);
-#ifdef PRT_EXT
-       prt_ext("after nrm:",e1);
-       /*sleep(4);*/
-#endif
 }
index 971ee6c..0c11e61 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-       DIVIDE TWO FLOATS - SINGLE Precision
+       DIVIDE TWO FLOATS - SINGLE Precision (dvf 4)
 */
 
 #include       "FP_types.h"
index 9ec5991..0a40c07 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-       DIVIDE TWO FLOATS - DOUBLE Precision
+       DIVIDE TWO FLOATS - DOUBLE Precision (DVF 8)
 */
 
 #include       "FP_types.h"
index c06e87d..f1c3847 100644 (file)
@@ -6,9 +6,6 @@
 /* $Header$ */
 
 /*
-#define        PRT_EXIT
-#define        PRT_ENTRY
-#define        PRT_DBL
        CONVERTS FLOATING POINT TO EXTENDED FORMAT
 
        Two sizes of FLOATING Point are known:
@@ -45,19 +42,11 @@ int size;
        unsigned long   tmp;
        int     leadbit = 0;
 
-#ifdef PRT_ENTRY
-       write(2,"entry extend: ",14);
-#ifdef PRT_DBL
-       prt_dbl(from,size);
-#else
-       write(2,"\n",1);
-#endif PRT_DBL
-#endif PRT_ENTRY
        f = (DOUBLE *) from;    /* local cast conversion */
        if (f->_s.p1.fract == 0L)       {
                if (size == sizeof(SINGLE))     {
 zero:                  zrf_ext(to);
-                       goto ready;
+                       return;
                }
                else if (f->_s.p2 == 0L)
                        goto zero;
@@ -95,9 +84,4 @@ zero:                 zrf_ext(to);
        to->m1 |= NORMBIT;                              /* set bit L    */
        if (leadbit == 0)               /* set or clear Leading Bit     */
                to->m1 &= ~NORMBIT;                     /* clear bit L  */
-ready:
-#ifdef PRT_EXIT
-       prt_ext("exit extend:",to)
-#endif PRT_EXIT
-       ;       /* end of print statement or null statement */
 }
index 449504c..6552ed5 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-       SEPERATE INTO EXPONENT AND FRACTION
+       SEPERATE INTO EXPONENT AND FRACTION (FEF 4)
 */
 
 #include       "FP_types.h"
index bc95ef7..f4d7da8 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-       SEPERATE DOUBLE INTO EXPONENT AND FRACTION
+       SEPERATE DOUBLE INTO EXPONENT AND FRACTION (FEF 8)
 */
 
 #include       "FP_types.h"
@@ -22,16 +22,8 @@ _double      s1;
        EXTEND  buf;
        struct fef8_returns *r = (struct fef8_returns *) &s1;
 
-#ifdef DEBUG
-       printf("FEF8(): ");
-#endif DEBUG
        extend(&s1,&buf,sizeof(_double));
        r->e = buf.exp - 1;
        buf.exp = 1;
        compact(&buf,&r->f,sizeof(_double));
-#ifdef DEBUG
-       printf("exponent = %3d fraction = 0x%08X%08X: ",
-               r->f.__double[0],r->f.__double[1]);
-       printf("FEF8()\n");
-#endif DEBUG
 }
index 1a9d120..c1093dc 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-       MULTIPLY AND DISMEMBER PARTS
+       MULTIPLY AND DISMEMBER PARTS (FIF 4)
 */
 
 #include "FP_types.h"
index b0c686b..9fe7680 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-       MULTIPLY AND DISMEMBER PARTS
+       MULTIPLY AND DISMEMBER PARTS (FIF 8)
 */
 
 #include "FP_types.h"
index 0fab2a4..532170c 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
- * Multiply Single Precesion Float
+ * Multiply Single Precesion Float (MLF 4)
  */
 
 #include       "FP_types.h"
index ed5700e..8aa5c90 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
- * Multiply Single Precesion Float
+ * Multiply Single Precision Float (MLF 8)
  */
 
 #include       "FP_types.h"
index 6e033c1..a04a9b3 100644 (file)
 mul_ext(e1,e2)
 EXTEND *e1,*e2;
 {
-       register short  k,i,j;          /* loop control */
+       register int    k,i,j;          /* loop control */
        long  unsigned  *reg[7];
        long  unsigned  tmp[4];
        short unsigned  mp[4];  /* multiplier */
        short unsigned  mc[4];  /* multipcand */
        B64     low64,tmp64;    /* 64 bit storage       */
 
-#ifdef PRT_EXT
-       prt_ext("before MUL_EXT() e1:",e1);
-       prt_ext("before MUL_EXT() e2:",e2);
-#endif
        /* first save the sign (XOR)                    */
 
        e1->sign ^= e2->sign;
@@ -66,24 +62,15 @@ EXTEND      *e1,*e2;
 
                                        /* check for overflow   */
        if (e1->exp >= EXT_MAX) {
-#ifdef PRT_EXT
-               prt_ext("EXT_MUL OVERFLOW",e1);
-#endif
                trap(EFOVFL);
                        /* if caught                    */
                        /* return signed infinity       */
                e1->exp = EXT_MAX;
 infinity:      e1->m1 = e1->m2 =0L;
-#ifdef PRT_EXT
-               prt_ext("after  MUL_EXT() e1:",e1);
-#endif
                return;
        }
                                /* check for underflow  */
        if (e1->exp < EXT_MIN)  {
-#ifdef PRT_EXT
-               prt_ext("EXT_MUL UNDERFLOW",e1);
-#endif
                trap(EFUNFL);
                e1->exp = EXT_MIN;
                goto infinity;
@@ -101,16 +88,6 @@ infinity:   e1->m1 = e1->m2 =0L;
        mc[1] = (unsigned short) e2->m1;
        mc[2] = e2->m2 >> 16;
        mc[3] = (unsigned short) e2->m2;
-# ifdef        DEBUG
-       for(i=0;i<4;i++)
-               printf("%04x",mp[i]);
-       putchar('\r');
-       putchar('\n');
-       for(i=0;i<4;i++)
-               printf("%04x",mc[i]);
-       putchar('\r');
-       putchar('\n');
-# endif
        /*
         *      assign pointers
         */
@@ -135,72 +112,24 @@ infinity: e1->m1 = e1->m2 =0L;
                for(j=4;j--;) if (mc[j]) {
                        k = i+j;
                        tmp[0] = (long)mp[i] * (long)mc[j];
-# ifdef        PRT_EXT2
-                       printf("%04x * %04x == %08X ",mp[i],mc[j],tmp[0]);
-                       printf("index == %d ",k);
-                       printf("register before add == %08X\n",*reg[k]);
-                       fflush(stdout);
-# endif
-#ifdef PRT_ADD
-       printf("REGISTERS-----\n");
-       printf("%08X %08X %08X %08X\n0000%04x %04x%04x %04x%04x %04x0000\n",
-               *reg[0],*reg[2],*reg[4],*reg[6],
-               (short)(*reg[1]>>16),(short)(*reg[1]),(short)(*reg[3]>>16),
-               (short)(*reg[3]),(short)(*reg[5]>>16),(short)(*reg[5]));
-# endif
                        if (b32_add(reg[k],tmp))        {
                                for(tmp[0] = 0x10000L;k>0;)
                                        if (b32_add(reg[--k],tmp) == 0)
                                                break;
-#ifdef PRT_ADD
-       printf("CARRY---------\n");
-       printf("%08X %08X %08X %08X\n0000%04x %04x%04x %04x%04x %04x0000\n",
-               *reg[0],*reg[2],*reg[4],*reg[6],
-               (short)(*reg[1]>>16),(short)(*reg[1]),(short)(*reg[3]>>16),
-               (short)(*reg[3]),(short)(*reg[5]>>16),(short)(*reg[5]));
-#endif
                        }
                }
        
        /*
         *      combine the registers to a total
         */
-#ifdef PRT_ADD
-       printf("%08X %08X %08X %08X\n0000%04x %04x%04x %04x%04x %04x0000\n",
-               *reg[0],*reg[2],*reg[4],*reg[6],
-               (short)(*reg[1]>>16),(short)(*reg[1]),(short)(*reg[3]>>16),
-               (short)(*reg[3]),(short)(*reg[5]>>16),(short)(*reg[5]));
-# endif
        tmp64.h_32 = (*reg[1]>>16);
        tmp64.l_32 = (*reg[1]<<16) + (*reg[3]>>16);
-# ifdef PRT_ALL
-       printf("%08X%08X tmp64\n",tmp64.h_32,tmp64.l_32);
-       fflush(stdout);
-       printf("%08X%08X e1->m1\n",e1->m1,e1->m2);
-       fflush(stdout);
-# endif
        b64_add((B64 *)&e1->m1,&tmp64);
-# ifdef PRT_ALL
-       printf("b64_add:\n");
-       printf("%08X%08X e1->m1\n",e1->m1,e1->m2);
-       fflush(stdout);
-# endif
        tmp64.l_32 = *reg[5]<<16;
        tmp64.h_32 = (*reg[5]>>16) + (*reg[3]<<16);
        if (b64_add(&low64,&tmp64))
                if (++e1->m2 == 0)
                        e1->m1++;
 
-# ifdef PRT_ADD
-       printf("%08X %08X %08X %08X\n",e1->m1,e1->m2,low64.h_32,low64.l_32);
-       fflush(stdout);
-#endif
-#ifdef PRT_EXT
-       prt_ext("after  MUL_EXT() e1:",e1);
-#endif PRT_EXT
        nrm_ext(e1);
-#ifdef PRT_EXT
-       prt_ext("after  NRM_EXT() e1:",e1);
-       sleep(4);
-#endif PRT_EXT
 }
index 540b1f1..2ef0aba 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-               NEGATE A FLOATING POINT
+               NEGATE A FLOATING POINT (NGF 4)
 */
 /********************************************************/
 /*
@@ -26,4 +26,3 @@ _float        f;
                *p ^= 0x80;
        }
 }
-
index f270310..d014d39 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-               NEGATE A FLOATING POINT
+               NEGATE A FLOATING POINT (NGF 8)
 */
 /********************************************************/
 /*
index e868d45..b5c4f05 100644 (file)
@@ -21,17 +21,8 @@ EXTEND       *e1;
        register unsigned long  *mant_2;
 
        /* local CAST conversion        */
-#ifdef PRT_EXT
-       prt_ext("before NRM_EXT() e1:",e1);
-#endif PRT_EXT
        mant_1 = (unsigned long *) &e1->m1;
-       /*
-       THIS RESULTS IN A BAD CODE !!!!
-       ANOTHER BUG IN EM CODE MAYBE????
        mant_2 = (unsigned long *) &e1->m2;
-       */
-       /* statement that works */
-       mant_2 = mant_1 + 1;
 
                /* we assume that the mantissa != 0     */
                /* if it is then just return            */
@@ -51,18 +42,6 @@ EXTEND       *e1;
                *mant_1-- = 0L;
                e1->exp -= 32;
        }
-#ifdef OLD
-               /* check that e1->m1 is not too large           */
-       if (*mant_1 & CARRYBIT) {       /* carry occured        */
-               e1->exp++;              /* increase exponent    */
-               *mant_2 >>= 1;          /* right shift mantissa */
-               if ((short) *mant_1 & 01)
-                       *mant_2 |= CARRYBIT;
-               *mant_1 >>= 1;
-       }
-#endif
-
-
        while ((*mant_1 & NORMBIT) == 0) {
                e1->exp--;
                *mant_1 <<= 1;
@@ -73,7 +52,4 @@ EXTEND        *e1;
                }
                *mant_2 <<= 1;
        }
-#ifdef PRT_EXT
-       prt_ext("after  NRM_EXT() e1:",e1);
-#endif PRT_EXT
 }
index 1885dc7..03e8d72 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-       SUBTRACT TWO FLOATS - SINGLE Precision
+       SUBTRACT TWO FLOATS - SINGLE Precision (SBF 4)
 */
 
 #include       "FP_types.h"
index 60e42c6..b04a82d 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-       SUBTRACT TWO FLOATS - DOUBLE Precision
+       SUBTRACT TWO FLOATS - DOUBLE Precision (SBF 8)
 */
 
 #include       "FP_types.h"
@@ -22,9 +22,6 @@ _double       s1,s2;
                                /*      s2 = -s2;               */
        char unsigned *p;               /* sufficient to access sign bit */
 
-#ifdef PRT_EXT
-       fprintf(stderr,"SBF8 ():\n");
-#endif
        if (s2.__double[0] == 0 && s2.__double[1] == 0) {
                return s1;
        }
@@ -33,4 +30,3 @@ _double       s1,s2;
        s1 = adf8(s2,s1);       /* add and return result */
        return(s1);
 }
-
index c9104aa..8ef0a6e 100644 (file)
@@ -6,7 +6,6 @@
 /* $Header$ */
 
 /*
-#define        PRT_EXT
        SHIFT TWO EXTENDED NUMBERS INTO PROPER
        ALIGNMENT FOR ADDITION (exponents are equal)
 */
@@ -17,13 +16,9 @@ sft_ext(e1,e2)
 EXTEND *e1,*e2;
 {
        register        EXTEND  *s;
-       register        short   diff;
+       register        int     diff;
                        long    tmp;
 
-#ifdef PRT_EXT
-       prt_ext("enter sft_ext e1:",e1);
-       prt_ext("enter sft_ext e2:",e2);
-#endif PRT_EXT
        diff = e1->exp - e2->exp;
 
        if (!diff)
@@ -62,8 +57,4 @@ EXTEND        *e1,*e2;
                s->m2 >>= diff;
                s->m2 |= tmp;
        }
-#ifdef PRT_EXT
-       prt_ext("exit  sft_ext e1:",e1);
-       prt_ext("exit  sft_ext e2:",e2);
-#endif PRT_EXT
 }
index c006358..5f47f8c 100644 (file)
@@ -9,7 +9,7 @@
 
 b64_sft(e1,n)
 B64    *e1;
-short  n;
+int    n;
 {
        if (n>0) do     {       /* RIGHT shift n bits */
                e1->l_32 >>= 1;         /* shift 64 bits        */
index a2d2b71..de56302 100644 (file)
@@ -6,30 +6,23 @@
 /* $Header$ */
 
 /*
-#define        PRT_EXT
-       SUBTRACT EXTENDED FORMAT
+       SUBTRACT 2 EXTENDED FORMAT NUMBERS
 */
-       /*      assumes that e1 >= e2 on entry  */
-       /*      no test is made to check this   */
-       /*      so make sure yourself           */
+        /*
+         * adf (addition routines) use this rather than
+         * add_ext when the signs of the numbers are different.
+         * sub_ext requires that e1 >= e2 on entry
+         * otherwise nonsense results. If you use this routine
+         * make certain this requirement is met.
+         */
 
 #include "FP_types.h"
 sub_ext(e1,e2)
 EXTEND *e1,*e2;
 {
-#ifdef PRT_EXT
-       prt_ext("before SUB_EXT() e1:",e1);
-       prt_ext("before SUB_EXT() e2:",e2);
-#endif PRT_EXT
        if (e2->m2 > e1->m2)
                e1->m1 -= 1;    /* carry in */
        e1->m1 -= e2->m1;
        e1->m2 -= e2->m2;
-#ifdef PRT_EXT
-       prt_ext("after  SUB_EXT() e1:",e1);
-#endif PRT_EXT
        nrm_ext(e1);
-#ifdef PRT_EXT
-       prt_ext("after  NRM_EXT() e1:",e1);
-#endif PRT_EXT
 }
index 10779bd..dd78c7a 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-       return a zero float
+       return a zero float (ZRF 4)
 */
 
 #include "FP_types.h"
index 9368306..baeebc5 100644 (file)
@@ -6,7 +6,7 @@
 /* $Header$ */
 
 /*
-       return a zero double
+       return a zero double (ZRF 8)
 */
 
 #include "FP_types.h"
index 1162940..77059de 100644 (file)
@@ -15,13 +15,12 @@ zrf_ext(e)
 EXTEND *e;
 {
        register short *ipt;
-       register short  i;
-       register short zero = 0;
+       register int  i;
 
        /*      local CAST conversion   */
        ipt = (short *) e;
 
        i = sizeof(EXTEND)/sizeof(short);
        while (i--)
-               *ipt++ = zero;
+               *ipt++ = 0;
 }