FORM 4.3
variable.h
Go to the documentation of this file.
1#ifndef __VARIABLE__
2
3#define __VARIABLE__
4
13/* #[ License : */
14/*
15 * Copyright (C) 1984-2022 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
43extern int (*writeBufToExtChannel)(char *buf, size_t n);
44extern int (*getcFromExtChannel)();
45extern int (*setTerminatorForExternalChannel)(char *newterminator);
46#endif
47extern WRITEBUFTOEXTCHANNEL writeBufToExtChannel;
48extern GETCFROMEXTCHANNEL getcFromExtChannel;
49extern SETTERMINATORFOREXTERNALCHANNEL setTerminatorForExternalChannel;
50extern SETKILLMODEFOREXTERNALCHANNEL setKillModeForExternalChannel;
51
52/*
53extern LONG (*WriteFile)(int handle, UBYTE *buffer, LONG number);
54*/
55extern WRITEFILE WriteFile;
56/*:[17nov2005 mt]*/
57
58extern ALLGLOBALS A;
59#ifdef WITHPTHREADS
60extern ALLPRIVATES **AB;
61#endif
62
63extern FIXEDGLOBALS FG;
64extern FIXEDSET fixedsets[];
65
66extern char *setupfilename;
67
68EXTERNLOCK(ErrorMessageLock)
69EXTERNLOCK(FileReadLock)
70EXTERNLOCK(dummylock)
71
72#ifdef VMS
73#include <stdio.h>
74extern 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:445