Annotation of OpenXM_contrib2/asir2000/lib/defs.h, Revision 1.9
1.2 noro 1: /*
2: * Copyright (c) 1994-2000 FUJITSU LABORATORIES LIMITED
3: * All rights reserved.
4: *
5: * FUJITSU LABORATORIES LIMITED ("FLL") hereby grants you a limited,
6: * non-exclusive and royalty-free license to use, copy, modify and
7: * redistribute, solely for non-commercial and non-profit purposes, the
8: * computer program, "Risa/Asir" ("SOFTWARE"), subject to the terms and
9: * conditions of this Agreement. For the avoidance of doubt, you acquire
10: * only a limited right to use the SOFTWARE hereunder, and FLL or any
11: * third party developer retains all rights, including but not limited to
12: * copyrights, in and to the SOFTWARE.
13: *
14: * (1) FLL does not grant you a license in any way for commercial
15: * purposes. You may use the SOFTWARE only for non-commercial and
16: * non-profit purposes only, such as academic, research and internal
17: * business use.
18: * (2) The SOFTWARE is protected by the Copyright Law of Japan and
19: * international copyright treaties. If you make copies of the SOFTWARE,
20: * with or without modification, as permitted hereunder, you shall affix
21: * to all such copies of the SOFTWARE the above copyright notice.
22: * (3) An explicit reference to this SOFTWARE and its copyright owner
23: * shall be made on your publication or presentation in any form of the
24: * results obtained by use of the SOFTWARE.
25: * (4) In the event that you modify the SOFTWARE, you shall notify FLL by
1.3 noro 26: * e-mail at risa-admin@sec.flab.fujitsu.co.jp of the detailed specification
1.2 noro 27: * for such modification or the source code of the modified part of the
28: * SOFTWARE.
29: *
30: * THE SOFTWARE IS PROVIDED AS IS WITHOUT ANY WARRANTY OF ANY KIND. FLL
31: * MAKES ABSOLUTELY NO WARRANTIES, EXPRESSED, IMPLIED OR STATUTORY, AND
32: * EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS
33: * FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT OF THIRD PARTIES'
34: * RIGHTS. NO FLL DEALER, AGENT, EMPLOYEES IS AUTHORIZED TO MAKE ANY
35: * MODIFICATIONS, EXTENSIONS, OR ADDITIONS TO THIS WARRANTY.
36: * UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, TORT, CONTRACT,
37: * OR OTHERWISE, SHALL FLL BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY
38: * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL
39: * DAMAGES OF ANY CHARACTER, INCLUDING, WITHOUT LIMITATION, DAMAGES
40: * ARISING OUT OF OR RELATING TO THE SOFTWARE OR THIS AGREEMENT, DAMAGES
41: * FOR LOSS OF GOODWILL, WORK STOPPAGE, OR LOSS OF DATA, OR FOR ANY
42: * DAMAGES, EVEN IF FLL SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF
43: * SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. EVEN IF A PART
44: * OF THE SOFTWARE HAS BEEN DEVELOPED BY A THIRD PARTY, THE THIRD PARTY
45: * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
46: * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
47: *
1.9 ! ohara 48: * $OpenXM: OpenXM_contrib2/asir2000/lib/defs.h,v 1.8 2004/06/30 08:36:06 ohara Exp $
1.2 noro 49: */
1.1 noro 50: /* some useful macros */
51:
1.8 ohara 52: #define VOID -1
1.1 noro 53: #define ZERO 0
54: #define NUM 1
55: #define POLY 2
56: #define RAT 3
57: #define LIST 4
58: #define VECT 5
59: #define MAT 6
60: #define STR 7
1.5 ohara 61: #define STRUCT 8
62: #define DPOLY 9
1.1 noro 63:
64: #define N_Q 0
65: #define N_R 1
66: #define N_A 2
67: #define N_B 3
68: #define N_C 4
69:
70: #define V_IND 0
71: #define V_UC 1
72: #define V_PF 2
73: #define V_SR 3
74:
1.8 ohara 75: #define isvoid(a) (type(a)==VOID)
1.1 noro 76: #define isnum(a) (type(a)==NUM)
77: #define ispoly(a) (type(a)==POLY)
78: #define israt(a) (type(a)==RAT)
79: #define islist(a) (type(a)==LIST)
80: #define isvect(a) (type(a)==VECT)
81: #define ismat(a) (type(a)==MAT)
82: #define isstr(a) (type(a)==STR)
1.5 ohara 83: #define isstruct(A) (type(A)==STRUCT)
84: #define isdpoly(a) (type(a)==DPOLY)
1.6 ohara 85:
1.9 ! ohara 86: #define isnum_int(a) ((a)==0 || (type((a))==NUM && ntype((a))==N_Q && dn((a))==1))
1.1 noro 87:
88: #define FIRST(L) (car(L))
89: #define SECOND(L) (car(cdr(L)))
90: #define THIRD(L) (car(cdr(cdr(L))))
91: #define FOURTH(L) (car(cdr(cdr(cdr(L)))))
92:
93: #define DEG(a) deg(a,var(a))
94: #define LCOEF(a) coef(a,deg(a,var(a)))
95: #define LTERM(a) coef(a,deg(a,var(a)))*var(a)^deg(a,var(a))
96: #define TT(a) car(car(a))
97: #define TS(a) car(cdr(car(a)))
98:
99: #define MAX(a,b) ((a)>(b)?(a):(b))
1.4 noro 100: #define MIN(a,b) ((a)>(b)?(b):(a))
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>