|
|
1.1 root 1: /* quad precision input routine.
2: * reads and converts the next number on the
3: * standard input after skipping over white space.
4: */
5: #include <stdio.h>
6: #include "mp.h"
7:
8: min(a)
9: mint *a;
10: {
11: return(m_in(a, 10, stdin));
12: }
13:
14: m_in(a,b,f)
15: mint *a;
16: int b;
17: FILE *f;
18: {
19:
20: mint x;
21: mint base;
22: int sign, c;
23:
24: base = itom(b);
25: sign = 1;
26: x.high = 0.;
27: x.low = 0;
28: while((c = getc(f)) != EOF)
29: switch(c)
30: {
31: case '\\':
32: getc(f);
33: continue;
34: case '\t':
35: case '\n':
36: x.high *= sign;
37: x.low *= sign;
38: *a = x;
39: return(0);
40: case ' ':
41: continue;
42: case '-':
43: sign = -sign;
44: continue;
45: default:
46: if(c>='0' && c<='9'){
47: c -= '0';
48: x = mult(x, base);
49: x = madd(x, itom(c));
50: continue;
51: }else{
52: printf("min: bad number format\n");
53: exit();
54: }
55: }
56: *a = x;
57: return(EOF);
58: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.