Annotation of researchv10no/cmd/lfactor/mout.c, revision 1.1.1.1

1.1       root        1: #include <stdio.h>
                      2: #include "mp.h"
                      3: double modf();
                      4: char obuf[200];
                      5: 
                      6: 
                      7: void
                      8: mout(a)
                      9: mint a;
                     10: {
                     11:        m_out(a, 10, stdout);
                     12:        printf("\n");
                     13: }
                     14: void
                     15: mout1(a)
                     16: mint a;
                     17: {
                     18:        m_out(a,10,stdout);
                     19: }
                     20: 
                     21: m_out(a,b,f)
                     22: mint a;
                     23: int b;
                     24: FILE *f;
                     25: {
                     26:        int sign;
                     27:        double carry, temp2;
                     28:        mint x;
                     29:        char *bp;
                     30: 
                     31:        x = a;
                     32:        sign = 1;
                     33:        bp = &obuf[199];
                     34:        if((x.high==0) && (x.low==0)){
                     35:                printf("0");
                     36:                return;
                     37:        }
                     38:        *bp-- = 0;
                     39:        if(x.high<0){
                     40:                x.high = -x.high;
                     41:                sign = -1;
                     42:        }
                     43:        if(x.low<0){
                     44:                x.low = -x.low;
                     45:                sign = -1;
                     46:        }
                     47: 
                     48:        while((x.high!=0) || (x.low!=0)){
                     49:                carry = 0;
                     50:                if(x.high != 0){
                     51:                        carry = modf(x.high/10. , &x.high);
                     52:                }
                     53:                temp2 = modf(x.low/10. , &x.low);
                     54:                x.low += (int)(10.*carry+0.5) * e15;
                     55:                *bp-- = (int)(10.*temp2+0.5) + '0';
                     56:        }
                     57:        if(sign<0)
                     58:                *bp-- = '-';
                     59:        bp++;
                     60:        fprintf(f,"%s",bp);
                     61: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.