1 /** @file fsizes.h
2  *
3  *  The definition the default values for certain buffer sizes etc.
4  */
5 
6 /* #[ License : */
7 /*
8  *   Copyright (C) 1984-2017 J.A.M. Vermaseren
9  *   When using this file you are requested to refer to the publication
10  *   J.A.M.Vermaseren "New features of FORM" math-ph/0010025
11  *   This is considered a matter of courtesy as the development was paid
12  *   for by FOM the Dutch physics granting agency and we would like to
13  *   be able to track its scientific use to convince FOM of its value
14  *   for the community.
15  *
16  *   This file is part of FORM.
17  *
18  *   FORM is free software: you can redistribute it and/or modify it under the
19  *   terms of the GNU General Public License as published by the Free Software
20  *   Foundation, either version 3 of the License, or (at your option) any later
21  *   version.
22  *
23  *   FORM is distributed in the hope that it will be useful, but WITHOUT ANY
24  *   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
25  *   FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
26  *   details.
27  *
28  *   You should have received a copy of the GNU General Public License along
29  *   with FORM.  If not, see <http://www.gnu.org/licenses/>.
30  */
31 /* #] License : */
32 
33 /*
34 	First the fixed variables
35 */
36 #define MAXPRENAMESIZE 128
37 /*
38 	The following variables are default sizes. They can be changed
39 	into values read from the setup file
40 
41     Remark (21-dec-2008 JV): WILDOFFSET*3 should be larger than WILDMASK!!!!
42 		old value was WILDOFFSET 200000100
43 		be careful with old .sav files!!!
44 */
45 #ifdef WORDSIZE32
46 #define MAXPOWER 500000000
47 #define MAXVARIABLES 200000050
48 #define MAXDOLLARVARIABLES 1000000000L
49 #define WILDOFFSET 400000100
50 #define MAXINNAMETREE 2000000000
51 #define MAXDUMMIES 100000000
52 #define WORKBUFFER 40000000
53 #define MAXTER 40000
54 #define HALFMAX 0x10000
55 #define MAXSUBEXPRESSIONS 0x1FFFFFF
56 #define MAXFILESTREAMSIZE 1024
57 #else
58 #define MAXPOWER 10000
59 #define MAXVARIABLES 8050
60 #define MAXDOLLARVARIABLES 32000
61 #define WILDOFFSET 6100
62 #define MAXINNAMETREE 32768
63 #define MAXDUMMIES 1000
64 #define WORKBUFFER 10000000
65 #define MAXTER 10000
66 #define HALFMAX 0x100
67 #define MAXSUBEXPRESSIONS 0x3FFF
68 #define MAXFILESTREAMSIZE 1048576
69 #endif
70 #define MAXENAME 16
71 #define MAXSAVEFUNCTION 16384
72 
73 #define MAXPARLEVEL 100
74 #define MAXNUMBERSIZE 200
75 
76 #define MAXREPEAT 100
77 #define NORMSIZE 1000
78 
79 #define INITNODESIZE 10
80 #define INITNAMESIZE 100
81 
82 #define NUMFIXED 128
83 #define MAXNEST 100
84 #define MAXMATCH 30
85 #define MAXIF 20
86 #define SIZEFACS 640L
87 #define NUMFACS 50
88 #define MAXLOOPS 30
89 #define MAXLABELS 20
90 #define COMMERCIALSIZE 24
91 #define MAXFLAGS 16
92 /*
93 	The next quantities should still be eliminated from the program
94 	This should be together with changes in setfile!
95 */
96 #define COMPRESSBUFFER 90000
97 #define FORTRANCONTINUATIONLINES 15
98 #define MAXLEVELS 2000
99 #define MAXLHS 400
100 #define MAXWILDC 100
101 #define NUMTABLEENTRIES 1000
102 #define COMPILERBUFFER 20000
103 
104 #ifdef WORDSIZE32
105 #ifdef WITHPTHREADS
106 #define SMALLBUFFER   300000000L
107 #define SMALLOVERFLOW 600000000L
108 #define TERMSSMALL      3000000L
109 #define LARGEBUFFER  1500000000L
110 #define SCRATCHSIZE   500000000L
111 #else
112 #define SMALLBUFFER   150000000L
113 #define SMALLOVERFLOW 300000000L
114 #define TERMSSMALL      2000000L
115 #define LARGEBUFFER   800000000L
116 #define SCRATCHSIZE   500000000L
117 #endif
118 #else
119 #define SMALLBUFFER   10000000L
120 #define SMALLOVERFLOW 20000000L
121 #define TERMSSMALL      100000L
122 #define LARGEBUFFER   50000000L
123 #define SCRATCHSIZE   50000000L
124 #endif
125 #define MAXPATCHES 256
126 #define MAXFPATCHES 256
127 #define SORTIOSIZE 200000L
128 
129 #define SSMALLBUFFER 500000L
130 #define SSMALLOVERFLOW 800000L
131 #define STERMSSMALL 10000L
132 #define SLARGEBUFFER 4000000L
133 #define SMAXPATCHES 64
134 #define SMAXFPATCHES 64
135 #define SSORTIOSIZE 32768L
136 
137 #define SPECTATORSIZE 1048576L
138 
139 #define MAXFLEVELS 30
140 
141 #define COMPINC 2
142 
143 #define MAXNUMSIZE 10
144 
145 #define MAXBRACKETBUFFERSIZE 200000
146 
147 #define SFHSIZE 40
148 
149 #define DEFAULTPROCESSBUCKETSIZE 1000
150 #define SHMWINSIZE     65536L
151 
152 #define TABLEEXTENSION 6
153 
154 #define GZIPDEFAULT 6
155 #define DEFAULTTHREADS 0
156 #define DEFAULTTHREADBUCKETSIZE 500
157 #define DEFAULTTHREADLOADBALANCING 1
158 #define THREADSCRATCHSIZE 100000L
159 #define THREADSCRATCHOUTSIZE 2500000L
160 
161 #ifdef WORDSIZE32
162 #define MAXTABLECOMBUF 100000000000L
163 #define MAXCOMBUFRHS 1000000000L
164 #else
165 #define MAXTABLECOMBUF 1000000L
166 #define MAXCOMBUFRHS 32500L
167 #endif
168 
169 #define NUMSTORECACHES 4
170 #define SIZESTORECACHE 32768
171 
172 #define INDENTSPACE 3
173 
174 #define MULTIINDENTSPACE 1
175 #define MAXMULTIBRACKETLEVELS 25
176 
177 #define FBUFFERSIZE 1026
178 /*
179 	For the random number generator (see commentary there)
180 */
181 #define NPAIR1 38
182 #define NPAIR2 89
183 
184 #define MAXLINELENGTH 256
185 #define MINALLOC 32
186 
187 #define JUMPRATIO 4
188