Annotation of OpenXM_contrib/pari-2.2/src/headers/pariport.h, Revision 1.1.1.1
1.1 noro 1: /* $Id: pariport.h,v 1.2 2000/11/03 21:00:25 karim Exp $
2:
3: Copyright (C) 2000 The PARI group.
4:
5: This file is part of the PARI/GP package.
6:
7: PARI/GP is free software; you can redistribute it and/or modify it under the
8: terms of the GNU General Public License as published by the Free Software
9: Foundation. It is distributed in the hope that it will be useful, but WITHOUT
10: ANY WARRANTY WHATSOEVER.
11:
12: Check the License for details. You should have received a copy of it, along
13: with the package; see the file 'COPYING'. If not, write to the Free Software
14: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
15:
16: /*******************************************************************/
17: /* */
18: /* DECLARATIONS SPECIFIC TO THE PORTABLE VERSION */
19: /* */
20: /*******************************************************************/
21:
22: /* mp.c */
23:
24: #define affrs(x,s) (err(affer4))
25: #define affri(x,y) (err(affer5))
26: #define cmpis(x,y) (-cmpsi((y),(x)))
27: #define cmprs(x,y) (-cmpsr((y),(x)))
28: #define cmpri(x,y) (-cmpir((y),(x)))
29: #define subis(x,y) (addsi(-(y),(x)))
30: #define subrs(x,y) (addsr(-(y),(x)))
31:
32: #define divii(a,b) (dvmdii((a),(b),NULL))
33: #define resii(a,b) (dvmdii((a),(b),ONLY_REM))
34:
35: #define mpshift(x,s) ((typ(x)==t_INT)?shifti((x),(s)):shiftr((x),(s)))
36: #define affsz(s,x) ((typ(x)==t_INT)?affsi((s),(x)):affsr((s),(x)))
37: #define mptruncz(x,y) (gop1z(mptrunc,(x),(y)))
38: #define mpentz(x,y) (gop1z(mpent,(x),(y)))
39: #define mpaddz(x,y,z) (gop2z(mpadd,(x),(y),(z)))
40: #define addsiz(s,y,z) (gops2sgz(addsi,(s),(y),(z)))
41: #define addsrz(s,y,z) (gops2sgz(addsr,(s),(y),(z)))
42: #define addiiz(x,y,z) (gop2z(addii,(x),(y),(z)))
43: #define addirz(x,y,z) (gop2z(addir,(x),(y),(z)))
44: #define addriz(x,y,z) (gop2z(addir,(y),(x),(z)))
45: #define addrrz(x,y,z) (gop2z(addrr,(x),(y),(z)))
46: #define mpsubz(x,y,z) (gop2z(mpsub,(x),(y),(z)))
47: #define subss(x,y) (addss(-(y),(x)))
48: #define subssz(x,y,z) (addssz((x),-(y),(z)))
49: #define subsiz(s,y,z) (gops2sgz(subsi,(s),(y),(z)))
50: #define subsrz(x,y,z) {long av=avma; gaffect(subsr((x),(y)),(z)); avma=av; }
51: #define subisz(y,s,z) (gops2sgz(addsi,-(s),(y),(z)))
52: #define subrsz(y,s,z) (gops2sgz(addsr,-(s),(y),(z)))
53: #define subiiz(x,y,z) {long av=avma; gaffect(subii((x),(y)),(z)); avma=av; }
54: #define subirz(x,y,z) {long av=avma; gaffect(subir((x),(y)),(z)); avma=av; }
55: #define subriz(x,y,z) (gop2z(subri,(x),(y),(z)))
56: #define subrrz(x,y,z) {long av=avma; gaffect(subrr((x),(y)),(z)); avma=av; }
57: #define mpmulz(x,y,z) (gop2z(mpmul,(x),(y),(z)))
58: #define mulsiz(s,y,z) (gops2sgz(mulsi,(s),(y),(z)))
59: #define mulsrz(s,y,z) (gops2sgz(mulsr,(s),(y),)(z))
60: #define muliiz(x,y,z) (gop2z(mulii,(x),(y),(z)))
61: #define mulirz(x,y,z) (gop2z(mulir,(x),(y),(z)))
62: #define mulriz(x,y,z) (gop2z(mulir,(y),(x),(z)))
63: #define mulrrz(x,y,z) (gop2z(mulrr,(x),(y),(z)))
64: #define mpinvsr(s,y) (divssz(1,(s),(y)))
65: #define mpinvir(x,y) (divsiz(1,(x),(y)))
66: #define mpinvrr(x,y) (divsrz(1,(x),(y)))
67: #define mpdvmdz(x,y,z,t) (dvmdiiz((x),(y),(z),(t)))
68: #define modssz(s,y,z) (gops2ssz(modss,(s),(y),(z)))
69: #define modsiz(s,y,z) (gops2sgz(modsi,(s),(y),(z)))
70: #define modisz(y,s,z) (gops2gsz(modis,(y),(s),(z)))
71: #define ressiz(s,y,z) (gops2sgz(ressi,(s),(y),(z)))
72: #define resisz(y,s,z) (gops2gsz(resis,(y),(s),(z)))
73: #define resssz(s,y,z) (gops2ssz(resss,(s),(y),(z)))
74: #define divirz(x,y,z) (gop2z(divir,(x),(y),(z)))
75: #define divriz(x,y,z) (gop2z(divri,(x),(y),(z)))
76: #define divsrz(s,y,z) (gops2sgz(divsr,(s),(y),(z)))
77: #define divrsz(y,s,z) (gops2gsz(divrs,(y),(s),(z)))
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>