FORM  4.1
variable.h
Go to the documentation of this file.
1 #ifndef __VARIABLE__
2 
3 #define __VARIABLE__
4 
13 /* #[ License : */
14 /*
15  * Copyright (C) 1984-2013 J.A.M. Vermaseren
16  * When using this file you are requested to refer to the publication
17  * J.A.M.Vermaseren "New features of FORM" math-ph/0010025
18  * This is considered a matter of courtesy as the development was paid
19  * for by FOM the Dutch physics granting agency and we would like to
20  * be able to track its scientific use to convince FOM of its value
21  * for the community.
22  *
23  * This file is part of FORM.
24  *
25  * FORM is free software: you can redistribute it and/or modify it under the
26  * terms of the GNU General Public License as published by the Free Software
27  * Foundation, either version 3 of the License, or (at your option) any later
28  * version.
29  *
30  * FORM is distributed in the hope that it will be useful, but WITHOUT ANY
31  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
32  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
33  * details.
34  *
35  * You should have received a copy of the GNU General Public License along
36  * with FORM. If not, see <http://www.gnu.org/licenses/>.
37  */
38 /* #] License : */
39 
40 /*See the file extcmd.c*/
41 
42 #ifdef REMOVEDBY_MT
43 extern int (*writeBufToExtChannel)(char *buf, size_t n);
44 extern int (*getcFromExtChannel)();
45 extern int (*setTerminatorForExternalChannel)(char *newterminator);
46 #endif
47 extern WRITEBUFTOEXTCHANNEL writeBufToExtChannel;
48 extern GETCFROMEXTCHANNEL getcFromExtChannel;
49 extern SETTERMINATORFOREXTERNALCHANNEL setTerminatorForExternalChannel;
50 extern SETKILLMODEFOREXTERNALCHANNEL setKillModeForExternalChannel;
51 
52 /*
53 extern LONG (*WriteFile)(int handle, UBYTE *buffer, LONG number);
54 */
55 extern WRITEFILE WriteFile;
56 /*:[17nov2005 mt]*/
57 
58 extern ALLGLOBALS A;
59 #ifdef WITHPTHREADS
60 extern ALLPRIVATES **AB;
61 #endif
62 
63 extern FIXEDGLOBALS FG;
64 extern FIXEDSET fixedsets[];
65 
66 extern char *setupfilename;
67 
68 EXTERNLOCK(ErrorMessageLock)
69 EXTERNLOCK(FileReadLock)
70 EXTERNLOCK(dummylock)
71 
72 #ifdef VMS
73 #include <stdio.h>
74 extern FILE **FileStructs;
75 #endif
76 
77 #define chartype FG.cTable
78 
79 #define Procedures ((PROCEDURE *)(AP.ProcList.lijst))
80 #define NumProcedures AP.ProcList.num
81 #define MaxProcedures AP.ProcList.maxnum
82 #define DoLoops ((DOLOOP *)(AP.LoopList.lijst))
83 #define NumDoLoops AP.LoopList.num
84 #define MaxDoLoops AP.LoopList.maxnum
85 #define PreVar ((PREVAR *)(AP.PreVarList.lijst))
86 #define NumPre AP.PreVarList.num
87 #define MaxNumPre AP.PreVarList.maxnum
88 #define SetElements ((WORD *)(AC.SetElementList.lijst))
89 #define Sets ((SETS)(AC.SetList.lijst))
90 #define functions ((FUNCTIONS)(AC.FunctionList.lijst))
91 #define indices ((INDICES)(AC.IndexList.lijst))
92 #define symbols ((SYMBOLS)(AC.SymbolList.lijst))
93 #define vectors ((VECTORS)(AC.VectorList.lijst))
94 #define tablebases ((DBASE *)(AC.TableBaseList.lijst))
95 #define NumFunctions AC.FunctionList.num
96 #define NumIndices AC.IndexList.num
97 #define NumSymbols AC.SymbolList.num
98 #define NumVectors AC.VectorList.num
99 #define NumSets AC.SetList.num
100 #define NumSetElements AC.SetElementList.num
101 #define NumTableBases AC.TableBaseList.num
102 #define GlobalFunctions AC.FunctionList.numglobal
103 #define GlobalIndices AC.IndexList.numglobal
104 #define GlobalSymbols AC.SymbolList.numglobal
105 #define GlobalVectors AC.VectorList.numglobal
106 #define GlobalSets AC.SetList.numglobal
107 #define GlobalSetElements AC.SetElementList.numglobal
108 #define cbuf ((CBUF *)(AC.cbufList.lijst))
109 #define channels ((CHANNEL *)(AC.ChannelList.lijst))
110 #define NumOutputChannels AC.ChannelList.num
111 #define Dollars ((DOLLARS)(AP.DollarList.lijst))
112 #define NumDollars AP.DollarList.num
113 #define Dubious ((DUBIOUSV)(AC.DubiousList.lijst))
114 #define NumDubious AC.DubiousList.num
115 #define Expressions ((EXPRESSIONS)(AC.ExpressionList.lijst))
116 #define NumExpressions AC.ExpressionList.num
117 #define autofunctions ((FUNCTIONS)(AC.AutoFunctionList.lijst))
118 #define autoindices ((INDICES)(AC.AutoIndexList.lijst))
119 #define autosymbols ((SYMBOLS)(AC.AutoSymbolList.lijst))
120 #define autovectors ((VECTORS)(AC.AutoVectorList.lijst))
121 #define xsymbol (cbuf[AM.sbufnum].rhs)
122 #define numxsymbol (cbuf[AM.sbufnum].numrhs)
123 
124 #define PotModdollars ((WORD *)(AC.PotModDolList.lijst))
125 #define NumPotModdollars AC.PotModDolList.num
126 #define ModOptdollars ((MODOPTDOLLAR *)(AC.ModOptDolList.lijst))
127 #define NumModOptdollars AC.ModOptDolList.num
128 
129 #define BUG A.bug;
130 
131 #ifdef WITHPTHREADS
132 #define AC A.C
133 #define AM A.M
134 #define AO A.O
135 #define AP A.P
136 #define AS A.S
137 #define AX A.X
138 #define AN B->N
139 #define AR B->R
140 #define AT B->T
141 #define AN0 B0->N
142 #define AR0 B0->R
143 #define AT0 B0->T
144 #else
145 #define AC A.C
146 #define AM A.M
147 #define AN A.N
148 #define AO A.O
149 #define AP A.P
150 #define AR A.R
151 #define AS A.S
152 #define AT A.T
153 #define AX A.X
154 #endif
155 
156 #endif
#define EXTERNLOCK(x)
Definition: declare.h:329