Annotation of OpenXM_contrib2/asir2000/lib/defs.h, Revision 1.1.1.1
1.1 noro 1: /* $OpenXM: OpenXM/src/asir99/lib/defs.h,v 1.1.1.1 1999/11/10 08:12:30 noro Exp $ */
2: /* some useful macros */
3:
4: #define ZERO 0
5: #define NUM 1
6: #define POLY 2
7: #define RAT 3
8: #define LIST 4
9: #define VECT 5
10: #define MAT 6
11: #define STR 7
12:
13: #define N_Q 0
14: #define N_R 1
15: #define N_A 2
16: #define N_B 3
17: #define N_C 4
18:
19: #define V_IND 0
20: #define V_UC 1
21: #define V_PF 2
22: #define V_SR 3
23:
24: #define isnum(a) (type(a)==NUM)
25: #define ispoly(a) (type(a)==POLY)
26: #define israt(a) (type(a)==RAT)
27: #define islist(a) (type(a)==LIST)
28: #define isvect(a) (type(a)==VECT)
29: #define ismat(a) (type(a)==MAT)
30: #define isstr(a) (type(a)==STR)
31:
32: #define FIRST(L) (car(L))
33: #define SECOND(L) (car(cdr(L)))
34: #define THIRD(L) (car(cdr(cdr(L))))
35: #define FOURTH(L) (car(cdr(cdr(cdr(L)))))
36:
37: #define DEG(a) deg(a,var(a))
38: #define LCOEF(a) coef(a,deg(a,var(a)))
39: #define LTERM(a) coef(a,deg(a,var(a)))*var(a)^deg(a,var(a))
40: #define TT(a) car(car(a))
41: #define TS(a) car(cdr(car(a)))
42:
43: #define MAX(a,b) ((a)>(b)?(a):(b))
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>