Annotation of 43BSD/contrib/B/src/bsmall/B1num.h, revision 1.1.1.1

1.1       root        1: /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1984. */
                      2: /* $Header: B1num.h,v 1.1 84/06/28 00:48:38 timo Exp $ */
                      3: 
                      4: /* Definitions for number internals */
                      5: 
                      6: typedef struct{double p, q;} number;
                      7: typedef double integer;
                      8: #define Zero ((integer) 0)
                      9: #define One ((integer) 1)
                     10: #define Two ((integer) 2)
                     11: 
                     12: #define Checknum(v) if ((v)->type != Num) error("value not a number")
                     13: #define Numerator(v) ((integer) ((number *)Ats(v))->p)
                     14: #define Denominator(v) ((integer) ((number *)Ats(v))->q)
                     15: #define Exact(v) (((number *)Ats(v))->q != Zero)
                     16: #define Integral(v) (Exact(v) && (Denominator(v)==One))
                     17: #define Approxval(v) (((number *)Ats(v))->p)
                     18: #define Numval(v) (Exact(v) ? Numerator(v)/Denominator(v) : Approxval(v))
                     19: 
                     20: value mk_int();
                     21: value mk_approx();
                     22: value mk_exact();
                     23: 

unix.superglobalmegacorp.com

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