\hypertarget{structs_8h}{}\doxysection{structs.\+h File Reference}
\label{structs_8h}\index{structs.h@{structs.h}}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structPoSiTiOn}{Po\+Si\+Ti\+On}}
\item 
struct \mbox{\hyperlink{structSTOREHEADER}{S\+T\+O\+R\+E\+H\+E\+A\+D\+ER}}
\item 
struct \mbox{\hyperlink{structInDeXeNtRy}{In\+De\+Xe\+Nt\+Ry}}
\item 
struct \mbox{\hyperlink{structFiLeInDeX}{Fi\+Le\+In\+DeX}}
\item 
struct \mbox{\hyperlink{structFiLeDaTa}{Fi\+Le\+Da\+Ta}}
\item 
struct \mbox{\hyperlink{structVaRrEnUm}{Va\+Rr\+En\+Um}}
\item 
struct \mbox{\hyperlink{structReNuMbEr}{Re\+Nu\+Mb\+Er}}
\item 
struct \mbox{\hyperlink{structLIST}{L\+I\+ST}}
\item 
struct \mbox{\hyperlink{structKEYWORD}{K\+E\+Y\+W\+O\+RD}}
\item 
struct \mbox{\hyperlink{structKEYWORDV}{K\+E\+Y\+W\+O\+R\+DV}}
\item 
struct \mbox{\hyperlink{structNaMeNode}{Na\+Me\+Node}}
\item 
struct \mbox{\hyperlink{structNaMeTree}{Na\+Me\+Tree}}
\item 
struct \mbox{\hyperlink{structtree}{tree}}
\item 
struct \mbox{\hyperlink{structMiNmAx}{Mi\+Nm\+Ax}}
\item 
struct \mbox{\hyperlink{structBrAcKeTiNdEx}{Br\+Ac\+Ke\+Ti\+Nd\+Ex}}
\item 
struct \mbox{\hyperlink{structBrAcKeTiNfO}{Br\+Ac\+Ke\+Ti\+NfO}}
\item 
struct \mbox{\hyperlink{structTaBlEs}{Ta\+Bl\+Es}}
\item 
struct \mbox{\hyperlink{structExPrEsSiOn}{Ex\+Pr\+Es\+Si\+On}}
\item 
struct \mbox{\hyperlink{structSyMbOl}{Sy\+Mb\+Ol}}
\item 
struct \mbox{\hyperlink{structInDeX}{In\+DeX}}
\item 
struct \mbox{\hyperlink{structVeCtOr}{Ve\+Ct\+Or}}
\item 
struct \mbox{\hyperlink{structFuNcTiOn}{Fu\+Nc\+Ti\+On}}
\item 
struct \mbox{\hyperlink{structSeTs}{Se\+Ts}}
\item 
struct \mbox{\hyperlink{structDuBiOuS}{Du\+Bi\+OuS}}
\item 
struct \mbox{\hyperlink{structFaCdOlLaR}{Fa\+Cd\+Ol\+LaR}}
\item 
struct \mbox{\hyperlink{structDoLlArS}{Do\+Ll\+ArS}}
\item 
struct \mbox{\hyperlink{structMoDoPtDoLlArS}{Mo\+Do\+Pt\+Do\+Ll\+ArS}}
\item 
struct \mbox{\hyperlink{structfixedset}{fixedset}}
\item 
struct \mbox{\hyperlink{structTaBlEbAsEsUbInDeX}{Ta\+Bl\+Eb\+As\+Es\+Ub\+In\+DeX}}
\item 
struct \mbox{\hyperlink{structTaBlEbAsE}{Ta\+Bl\+Eb\+AsE}}
\item 
struct \mbox{\hyperlink{structFUN__INFO}{F\+U\+N\+\_\+\+I\+N\+FO}}
\item 
struct \mbox{\hyperlink{structFiLe}{Fi\+Le}}
\item 
struct \mbox{\hyperlink{structStreaM}{StreaM}}
\item 
struct \mbox{\hyperlink{structSpecTatoR}{Spec\+TatoR}}
\item 
struct \mbox{\hyperlink{structTrAcEs}{Tr\+Ac\+Es}}
\item 
struct \mbox{\hyperlink{structTrAcEn}{Tr\+Ac\+En}}
\item 
struct \mbox{\hyperlink{structpReVaR}{p\+Re\+VaR}}
\item 
struct \mbox{\hyperlink{structINSIDEINFO}{I\+N\+S\+I\+D\+E\+I\+N\+FO}}
\item 
struct \mbox{\hyperlink{structPRELOAD}{P\+R\+E\+L\+O\+AD}}
\item 
struct \mbox{\hyperlink{structPROCEDURE}{P\+R\+O\+C\+E\+D\+U\+RE}}
\item 
struct \mbox{\hyperlink{structDoLoOp}{Do\+Lo\+Op}}
\item 
struct \mbox{\hyperlink{structbit__field}{bit\+\_\+field}}
\item 
struct \mbox{\hyperlink{structHANDLERS}{H\+A\+N\+D\+L\+E\+RS}}
\item 
struct \mbox{\hyperlink{structCbUf}{Cb\+Uf}}
\item 
struct \mbox{\hyperlink{structChAnNeL}{Ch\+An\+NeL}}
\item 
struct \mbox{\hyperlink{structSETUPPARAMETERS}{S\+E\+T\+U\+P\+P\+A\+R\+A\+M\+E\+T\+E\+RS}}
\item 
struct \mbox{\hyperlink{structNeStInG}{Ne\+St\+InG}}
\item 
struct \mbox{\hyperlink{structStOrEcAcHe}{St\+Or\+Ec\+Ac\+He}}
\item 
struct \mbox{\hyperlink{structPeRmUtE}{Pe\+Rm\+UtE}}
\item 
struct \mbox{\hyperlink{structPeRmUtEp}{Pe\+Rm\+Ut\+Ep}}
\item 
struct \mbox{\hyperlink{structDiStRiBuTe}{Di\+St\+Ri\+Bu\+Te}}
\item 
struct \mbox{\hyperlink{structPaRtI}{Pa\+RtI}}
\item 
struct \mbox{\hyperlink{structsOrT}{s\+OrT}}
\item 
struct \mbox{\hyperlink{structPOLYMOD}{P\+O\+L\+Y\+M\+OD}}
\item 
struct \mbox{\hyperlink{structSHvariables}{S\+Hvariables}}
\item 
struct \mbox{\hyperlink{structCOST}{C\+O\+ST}}
\item 
struct \mbox{\hyperlink{structMODNUM}{M\+O\+D\+N\+UM}}
\item 
struct \mbox{\hyperlink{structOPTIMIZE}{O\+P\+T\+I\+M\+I\+ZE}}
\item 
struct \mbox{\hyperlink{structOPTIMIZERESULT}{O\+P\+T\+I\+M\+I\+Z\+E\+R\+E\+S\+U\+LT}}
\item 
struct \mbox{\hyperlink{structDICTIONARY__ELEMENT}{D\+I\+C\+T\+I\+O\+N\+A\+R\+Y\+\_\+\+E\+L\+E\+M\+E\+NT}}
\item 
struct \mbox{\hyperlink{structDICTIONARY}{D\+I\+C\+T\+I\+O\+N\+A\+RY}}
\item 
struct \mbox{\hyperlink{structSWITCHTABLE}{S\+W\+I\+T\+C\+H\+T\+A\+B\+LE}}
\item 
struct \mbox{\hyperlink{structSWITCH}{S\+W\+I\+T\+CH}}
\item 
struct \mbox{\hyperlink{structM__const}{M\+\_\+const}}
\item 
struct \mbox{\hyperlink{structP__const}{P\+\_\+const}}
\item 
struct \mbox{\hyperlink{structC__const}{C\+\_\+const}}
\item 
struct \mbox{\hyperlink{structS__const}{S\+\_\+const}}
\item 
struct \mbox{\hyperlink{structR__const}{R\+\_\+const}}
\item 
struct \mbox{\hyperlink{structT__const}{T\+\_\+const}}
\item 
struct \mbox{\hyperlink{structN__const}{N\+\_\+const}}
\item 
struct \mbox{\hyperlink{structO__const}{O\+\_\+const}}
\item 
struct \mbox{\hyperlink{structX__const}{X\+\_\+const}}
\item 
struct \mbox{\hyperlink{structAllGlobals}{All\+Globals}}
\item 
struct \mbox{\hyperlink{structFixedGlobals}{Fixed\+Globals}}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{structs_8h_a25ecf43391bcf74ab8ea04b3065175d1}{I\+N\+F\+I\+L\+E\+I\+N\+D\+EX}}~((512-\/2$\ast$sizeof(\mbox{\hyperlink{structPoSiTiOn}{P\+O\+S\+I\+T\+I\+ON}}))/sizeof(\mbox{\hyperlink{structs_8h_af54bed6ca0db2b4fb77654708b0bc25d}{I\+N\+D\+E\+X\+E\+N\+T\+RY}}))
\item 
\#define \mbox{\hyperlink{structs_8h_a8bd344323fba37123910ad8c1cb81cff}{E\+M\+P\+T\+Y\+I\+N\+I\+N\+D\+EX}}~(512-\/2$\ast$sizeof(\mbox{\hyperlink{structPoSiTiOn}{P\+O\+S\+I\+T\+I\+ON}})-\/\mbox{\hyperlink{structs_8h_a25ecf43391bcf74ab8ea04b3065175d1}{I\+N\+F\+I\+L\+E\+I\+N\+D\+EX}}$\ast$sizeof(\mbox{\hyperlink{structs_8h_af54bed6ca0db2b4fb77654708b0bc25d}{I\+N\+D\+E\+X\+E\+N\+T\+RY}}))
\item 
\mbox{\Hypertarget{structs_8h_abda55cc49f9e60d6034e3774417be713}\label{structs_8h_abda55cc49f9e60d6034e3774417be713}} 
\#define {\bfseries P\+H\+E\+AD}
\item 
\mbox{\Hypertarget{structs_8h_a73a4253fdfb549345b34051f05774bb5}\label{structs_8h_a73a4253fdfb549345b34051f05774bb5}} 
\#define {\bfseries P\+H\+E\+A\+D0}~V\+O\+ID
\item 
\mbox{\Hypertarget{structs_8h_ab76c76cbed663af310a2118893c549a3}\label{structs_8h_ab76c76cbed663af310a2118893c549a3}} 
\#define {\bfseries B\+H\+E\+AD}
\item 
\mbox{\Hypertarget{structs_8h_a5895b7ffa173a9ba7f43ff8ecc6e4b15}\label{structs_8h_a5895b7ffa173a9ba7f43ff8ecc6e4b15}} 
\#define {\bfseries B\+H\+E\+A\+D0}
\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{structs_8h_a460af1d057fa975123c46fb7b6966ef8}\label{structs_8h_a460af1d057fa975123c46fb7b6966ef8}} 
typedef struct \mbox{\hyperlink{structPoSiTiOn}{Po\+Si\+Ti\+On}} {\bfseries P\+O\+S\+I\+T\+I\+ON}
\item 
typedef struct \mbox{\hyperlink{structInDeXeNtRy}{In\+De\+Xe\+Nt\+Ry}} \mbox{\hyperlink{structs_8h_af54bed6ca0db2b4fb77654708b0bc25d}{I\+N\+D\+E\+X\+E\+N\+T\+RY}}
\item 
typedef struct \mbox{\hyperlink{structFiLeInDeX}{Fi\+Le\+In\+DeX}} \mbox{\hyperlink{structs_8h_a985717703c4c4af3f23ea19dad7e498d}{F\+I\+L\+E\+I\+N\+D\+EX}}
\item 
\mbox{\Hypertarget{structs_8h_ae8d23cdfcbbbeff0d66847593fe961bd}\label{structs_8h_ae8d23cdfcbbbeff0d66847593fe961bd}} 
typedef struct \mbox{\hyperlink{structFiLeDaTa}{Fi\+Le\+Da\+Ta}} {\bfseries F\+I\+L\+E\+D\+A\+TA}
\item 
typedef struct \mbox{\hyperlink{structVaRrEnUm}{Va\+Rr\+En\+Um}} \mbox{\hyperlink{structs_8h_ab333f878f8e260d6a7d053134c318d85}{V\+A\+R\+R\+E\+N\+UM}}
\item 
typedef struct \mbox{\hyperlink{structReNuMbEr}{Re\+Nu\+Mb\+Er}} $\ast$ \mbox{\hyperlink{structs_8h_a323639d869c15fed1226a3b508bbb1f1}{R\+E\+N\+U\+M\+B\+ER}}
\item 
typedef struct \mbox{\hyperlink{structNaMeNode}{Na\+Me\+Node}} \mbox{\hyperlink{structs_8h_abf23554c85632bc9bffd53a16f1b7b42}{N\+A\+M\+E\+N\+O\+DE}}
\item 
typedef struct \mbox{\hyperlink{structNaMeTree}{Na\+Me\+Tree}} \mbox{\hyperlink{structs_8h_a843f418b358bd058a1b49543f774ae02}{N\+A\+M\+E\+T\+R\+EE}}
\item 
typedef struct \mbox{\hyperlink{structtree}{tree}} \mbox{\hyperlink{structs_8h_ac87cfdb6a6e215fb4461de112adc0cf8}{C\+O\+M\+P\+T\+R\+EE}}
\item 
\mbox{\Hypertarget{structs_8h_ac850398652bba675ae8a102371c5f0ea}\label{structs_8h_ac850398652bba675ae8a102371c5f0ea}} 
typedef struct \mbox{\hyperlink{structMiNmAx}{Mi\+Nm\+Ax}} {\bfseries M\+I\+N\+M\+AX}
\item 
\mbox{\Hypertarget{structs_8h_ae5aeba6dc50a20cc1a2097e1a7f4f9d6}\label{structs_8h_ae5aeba6dc50a20cc1a2097e1a7f4f9d6}} 
typedef struct \mbox{\hyperlink{structBrAcKeTiNdEx}{Br\+Ac\+Ke\+Ti\+Nd\+Ex}} {\bfseries B\+R\+A\+C\+K\+E\+T\+I\+N\+D\+EX}
\item 
\mbox{\Hypertarget{structs_8h_ad75c9c1c829f9c8fcafb6a63cca6e902}\label{structs_8h_ad75c9c1c829f9c8fcafb6a63cca6e902}} 
typedef struct \mbox{\hyperlink{structBrAcKeTiNfO}{Br\+Ac\+Ke\+Ti\+NfO}} {\bfseries B\+R\+A\+C\+K\+E\+T\+I\+N\+FO}
\item 
typedef struct \mbox{\hyperlink{structTaBlEs}{Ta\+Bl\+Es}} $\ast$ \mbox{\hyperlink{structs_8h_a527a7f40a66c2b2bb735329fac3557ff}{T\+A\+B\+L\+ES}}
\item 
\mbox{\Hypertarget{structs_8h_ad3f88470211e73c8977cf7c9fc46f966}\label{structs_8h_ad3f88470211e73c8977cf7c9fc46f966}} 
typedef struct \mbox{\hyperlink{structExPrEsSiOn}{Ex\+Pr\+Es\+Si\+On}} $\ast$ {\bfseries E\+X\+P\+R\+E\+S\+S\+I\+O\+NS}
\item 
\mbox{\Hypertarget{structs_8h_accdb0642af2386b771496713b177dd4e}\label{structs_8h_accdb0642af2386b771496713b177dd4e}} 
typedef struct \mbox{\hyperlink{structSyMbOl}{Sy\+Mb\+Ol}} $\ast$ {\bfseries S\+Y\+M\+B\+O\+LS}
\item 
\mbox{\Hypertarget{structs_8h_aee2bbbef0029e7384fe0750843f17c9b}\label{structs_8h_aee2bbbef0029e7384fe0750843f17c9b}} 
typedef struct \mbox{\hyperlink{structInDeX}{In\+DeX}} $\ast$ {\bfseries I\+N\+D\+I\+C\+ES}
\item 
\mbox{\Hypertarget{structs_8h_ac5d36352e476e4b725aca88a68cac331}\label{structs_8h_ac5d36352e476e4b725aca88a68cac331}} 
typedef struct \mbox{\hyperlink{structVeCtOr}{Ve\+Ct\+Or}} $\ast$ {\bfseries V\+E\+C\+T\+O\+RS}
\item 
typedef struct \mbox{\hyperlink{structFuNcTiOn}{Fu\+Nc\+Ti\+On}} $\ast$ \mbox{\hyperlink{structs_8h_a0e8f940d2594616bc57da547e82b0406}{F\+U\+N\+C\+T\+I\+O\+NS}}
\item 
\mbox{\Hypertarget{structs_8h_aa8b94731f4750afc140fd35c6cac909e}\label{structs_8h_aa8b94731f4750afc140fd35c6cac909e}} 
typedef struct \mbox{\hyperlink{structSeTs}{Se\+Ts}} $\ast$ {\bfseries S\+E\+TS}
\item 
\mbox{\Hypertarget{structs_8h_a0fdb0bfc3d39f1452778508d8c7ed121}\label{structs_8h_a0fdb0bfc3d39f1452778508d8c7ed121}} 
typedef struct \mbox{\hyperlink{structDuBiOuS}{Du\+Bi\+OuS}} $\ast$ {\bfseries D\+U\+B\+I\+O\+U\+SV}
\item 
\mbox{\Hypertarget{structs_8h_a5cfc19d73a7a951219c1f519aee2b4e6}\label{structs_8h_a5cfc19d73a7a951219c1f519aee2b4e6}} 
typedef struct \mbox{\hyperlink{structFaCdOlLaR}{Fa\+Cd\+Ol\+LaR}} {\bfseries F\+A\+C\+D\+O\+L\+L\+AR}
\item 
\mbox{\Hypertarget{structs_8h_ac7620662508e50f0bd64ef77f4e43e1f}\label{structs_8h_ac7620662508e50f0bd64ef77f4e43e1f}} 
typedef struct \mbox{\hyperlink{structDoLlArS}{Do\+Ll\+ArS}} $\ast$ {\bfseries D\+O\+L\+L\+A\+RS}
\item 
\mbox{\Hypertarget{structs_8h_aee2651d63dc662d07f3bdc07dfc94d6c}\label{structs_8h_aee2651d63dc662d07f3bdc07dfc94d6c}} 
typedef struct \mbox{\hyperlink{structMoDoPtDoLlArS}{Mo\+Do\+Pt\+Do\+Ll\+ArS}} {\bfseries M\+O\+D\+O\+P\+T\+D\+O\+L\+L\+AR}
\item 
\mbox{\Hypertarget{structs_8h_a88c5ee2be1f55d2a02a88f006232ac11}\label{structs_8h_a88c5ee2be1f55d2a02a88f006232ac11}} 
typedef struct \mbox{\hyperlink{structfixedset}{fixedset}} {\bfseries F\+I\+X\+E\+D\+S\+ET}
\item 
\mbox{\Hypertarget{structs_8h_ad8c5d52db01fc49641d5b8ac2d5e644b}\label{structs_8h_ad8c5d52db01fc49641d5b8ac2d5e644b}} 
typedef struct \mbox{\hyperlink{structTaBlEbAsEsUbInDeX}{Ta\+Bl\+Eb\+As\+Es\+Ub\+In\+DeX}} {\bfseries T\+A\+B\+L\+E\+B\+A\+S\+E\+S\+U\+B\+I\+N\+D\+EX}
\item 
\mbox{\Hypertarget{structs_8h_a1fea13764f5fd5bfc14ba9e15d3c7216}\label{structs_8h_a1fea13764f5fd5bfc14ba9e15d3c7216}} 
typedef struct \mbox{\hyperlink{structTaBlEbAsE}{Ta\+Bl\+Eb\+AsE}} {\bfseries T\+A\+B\+L\+E\+B\+A\+SE}
\item 
typedef struct \mbox{\hyperlink{structFiLe}{Fi\+Le}} \mbox{\hyperlink{structs_8h_acfdc9b730744e2cd3cdff195b7f98166}{F\+I\+L\+E\+H\+A\+N\+D\+LE}}
\item 
typedef struct \mbox{\hyperlink{structStreaM}{StreaM}} \mbox{\hyperlink{structs_8h_a9a75d5763510e8c919d334b43c39a312}{S\+T\+R\+E\+AM}}
\item 
\mbox{\Hypertarget{structs_8h_ac71da04139f17045a42ab7451e359c84}\label{structs_8h_ac71da04139f17045a42ab7451e359c84}} 
typedef struct \mbox{\hyperlink{structSpecTatoR}{Spec\+TatoR}} {\bfseries S\+P\+E\+C\+T\+A\+T\+OR}
\item 
typedef struct \mbox{\hyperlink{structTrAcEs}{Tr\+Ac\+Es}} \mbox{\hyperlink{structs_8h_ae4cbe33f3540adf2a70eac32182dc7e6}{T\+R\+A\+C\+ES}}
\item 
typedef struct \mbox{\hyperlink{structTrAcEn}{Tr\+Ac\+En}} $\ast$ \mbox{\hyperlink{structs_8h_a243448e5620f54e38083a98ca096c228}{T\+R\+A\+C\+EN}}
\item 
typedef struct \mbox{\hyperlink{structpReVaR}{p\+Re\+VaR}} \mbox{\hyperlink{structs_8h_a13a28f67a343e781d8538569638cad42}{P\+R\+E\+V\+AR}}
\item 
typedef struct \mbox{\hyperlink{structDoLoOp}{Do\+Lo\+Op}} \mbox{\hyperlink{structs_8h_aea085ca6310a8f1645b5052adaba2f94}{D\+O\+L\+O\+OP}}
\item 
typedef struct \mbox{\hyperlink{structbit__field}{bit\+\_\+field}} \mbox{\hyperlink{structs_8h_ab253838fc15bd734919f61e55ecb6286}{set\+\_\+of\+\_\+char}}\mbox{[}32\mbox{]}
\item 
typedef struct \mbox{\hyperlink{structbit__field}{bit\+\_\+field}} $\ast$ \mbox{\hyperlink{structs_8h_a6b798dec56b5da4c217fbc8c263b35d8}{one\+\_\+byte}}
\item 
\mbox{\Hypertarget{structs_8h_a8a898cdae5f4eeda6fc0596637f7f4ad}\label{structs_8h_a8a898cdae5f4eeda6fc0596637f7f4ad}} 
typedef W\+O\+RD($\ast$ {\bfseries F\+I\+N\+I\+S\+H\+U\+F\+F\+LE}) (W\+O\+RD $\ast$)
\item 
\mbox{\Hypertarget{structs_8h_af9187941963cc2bd1c03e80986b4ff14}\label{structs_8h_af9187941963cc2bd1c03e80986b4ff14}} 
typedef W\+O\+RD($\ast$ {\bfseries D\+O\+\_\+\+U\+F\+F\+LE}) (W\+O\+RD $\ast$, W\+O\+RD, W\+O\+RD, W\+O\+RD)
\item 
\mbox{\Hypertarget{structs_8h_a0e21d376451db1d6ee4298941e8ddbe0}\label{structs_8h_a0e21d376451db1d6ee4298941e8ddbe0}} 
typedef W\+O\+RD($\ast$ {\bfseries C\+O\+M\+P\+A\+RE}) (W\+O\+RD $\ast$, W\+O\+RD $\ast$, W\+O\+RD)
\item 
typedef struct \mbox{\hyperlink{structCbUf}{Cb\+Uf}} \mbox{\hyperlink{structs_8h_adc74e87ce7231cb4c32e28f3498e740a}{C\+B\+UF}}
\item 
typedef struct \mbox{\hyperlink{structChAnNeL}{Ch\+An\+NeL}} \mbox{\hyperlink{structs_8h_a781b1f86328382e2cc29e82356e945c9}{C\+H\+A\+N\+N\+EL}}
\item 
typedef struct \mbox{\hyperlink{structNeStInG}{Ne\+St\+InG}} $\ast$ \mbox{\hyperlink{structs_8h_a00a92bf8a4555d05e3746c270e42bd8e}{N\+E\+S\+T\+I\+NG}}
\item 
typedef struct \mbox{\hyperlink{structStOrEcAcHe}{St\+Or\+Ec\+Ac\+He}} $\ast$ \mbox{\hyperlink{structs_8h_aaf8ed89c248fc4b78575952539f7f63c}{S\+T\+O\+R\+E\+C\+A\+C\+HE}}
\item 
typedef struct \mbox{\hyperlink{structPeRmUtE}{Pe\+Rm\+UtE}} \mbox{\hyperlink{structs_8h_a358915f133ad95e4e503920a46eec636}{P\+E\+RM}}
\item 
typedef struct \mbox{\hyperlink{structPeRmUtEp}{Pe\+Rm\+Ut\+Ep}} \mbox{\hyperlink{structs_8h_a4a3534d400abbca64f9291607f14b95c}{P\+E\+R\+MP}}
\item 
typedef struct \mbox{\hyperlink{structDiStRiBuTe}{Di\+St\+Ri\+Bu\+Te}} \mbox{\hyperlink{structs_8h_a2f42f74998ebc862f85eb7aa64f6d15d}{D\+I\+S\+T\+R\+I\+B\+U\+TE}}
\item 
typedef struct \mbox{\hyperlink{structPaRtI}{Pa\+RtI}} \mbox{\hyperlink{structs_8h_a1658056418f484bb1cb6d751714691ef}{P\+A\+R\+TI}}
\item 
typedef struct \mbox{\hyperlink{structsOrT}{s\+OrT}} \mbox{\hyperlink{structs_8h_a4c4f4c2e1a16fc3fcc527899a5438a3e}{S\+O\+R\+T\+I\+NG}}
\item 
typedef struct \mbox{\hyperlink{structAllGlobals}{All\+Globals}} \mbox{\hyperlink{structs_8h_a6f652daef84b3d0141666fbeb13633e8}{A\+L\+L\+G\+L\+O\+B\+A\+LS}}
\item 
\mbox{\Hypertarget{structs_8h_a1fa74e0c51c1633251f0431f4786ca25}\label{structs_8h_a1fa74e0c51c1633251f0431f4786ca25}} 
typedef W\+O\+RD($\ast$ {\bfseries W\+CN}) ()
\item 
\mbox{\Hypertarget{structs_8h_af73bb8d1212bf7a9334d0383451ebcab}\label{structs_8h_af73bb8d1212bf7a9334d0383451ebcab}} 
typedef W\+O\+RD($\ast$ {\bfseries W\+C\+N2}) ()
\item 
typedef struct \mbox{\hyperlink{structFixedGlobals}{Fixed\+Globals}} \mbox{\hyperlink{structs_8h_a5c4ff4aa05519ba679b5c3d77f4a99e7}{F\+I\+X\+E\+D\+G\+L\+O\+B\+A\+LS}}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{structs_8h_a1d5b59ee218c215851f42f32ed792df7}\label{structs_8h_a1d5b59ee218c215851f42f32ed792df7}} 
{\bfseries S\+T\+A\+T\+I\+C\+\_\+\+A\+S\+S\+E\+RT} (sizeof(\mbox{\hyperlink{structSTOREHEADER}{S\+T\+O\+R\+E\+H\+E\+A\+D\+ER}})==512)
\item 
\mbox{\Hypertarget{structs_8h_a7f570885a04ac59f70aee2e9ba1450e9}\label{structs_8h_a7f570885a04ac59f70aee2e9ba1450e9}} 
{\bfseries S\+T\+A\+T\+I\+C\+\_\+\+A\+S\+S\+E\+RT} (sizeof(\mbox{\hyperlink{structs_8h_a985717703c4c4af3f23ea19dad7e498d}{F\+I\+L\+E\+I\+N\+D\+EX}})==512)
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Contains definitions for global structs.

!!!\+C\+A\+U\+T\+I\+O\+N!!! Changes in this file will most likely have consequences for the recovery mechanism (see \mbox{\hyperlink{checkpoint_8c}{checkpoint.\+c}}). You need to care for the code in \mbox{\hyperlink{checkpoint_8c}{checkpoint.\+c}} as well and modify the code there accordingly!

The marker \mbox{[}D\mbox{]} is used in comments in this file to mark pointers to which dynamically allocated memory is assigned by a call to malloc() during runtime (in contrast to pointers that point into already allocated memory). This information is especially helpful if one needs to know which pointers need to be freed (cf. \mbox{\hyperlink{checkpoint_8c}{checkpoint.\+c}}). 

\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{structs_8h_a25ecf43391bcf74ab8ea04b3065175d1}\label{structs_8h_a25ecf43391bcf74ab8ea04b3065175d1}} 
\index{structs.h@{structs.h}!INFILEINDEX@{INFILEINDEX}}
\index{INFILEINDEX@{INFILEINDEX}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{INFILEINDEX}{INFILEINDEX}}
{\footnotesize\ttfamily \#define I\+N\+F\+I\+L\+E\+I\+N\+D\+EX~((512-\/2$\ast$sizeof(\mbox{\hyperlink{structPoSiTiOn}{P\+O\+S\+I\+T\+I\+ON}}))/sizeof(\mbox{\hyperlink{structs_8h_af54bed6ca0db2b4fb77654708b0bc25d}{I\+N\+D\+E\+X\+E\+N\+T\+RY}}))}

Maximum number of entries (struct \mbox{\hyperlink{structInDeXeNtRy}{In\+De\+Xe\+Nt\+Ry}}) in a file index (struct \mbox{\hyperlink{structFiLeInDeX}{Fi\+Le\+In\+DeX}}). Number is calculated such that the size of a file index is no more than 512 bytes. 

Definition at line 118 of file structs.\+h.

\mbox{\Hypertarget{structs_8h_a8bd344323fba37123910ad8c1cb81cff}\label{structs_8h_a8bd344323fba37123910ad8c1cb81cff}} 
\index{structs.h@{structs.h}!EMPTYININDEX@{EMPTYININDEX}}
\index{EMPTYININDEX@{EMPTYININDEX}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{EMPTYININDEX}{EMPTYININDEX}}
{\footnotesize\ttfamily \#define E\+M\+P\+T\+Y\+I\+N\+I\+N\+D\+EX~(512-\/2$\ast$sizeof(\mbox{\hyperlink{structPoSiTiOn}{P\+O\+S\+I\+T\+I\+ON}})-\/\mbox{\hyperlink{structs_8h_a25ecf43391bcf74ab8ea04b3065175d1}{I\+N\+F\+I\+L\+E\+I\+N\+D\+EX}}$\ast$sizeof(\mbox{\hyperlink{structs_8h_af54bed6ca0db2b4fb77654708b0bc25d}{I\+N\+D\+E\+X\+E\+N\+T\+RY}}))}

Number of empty filling bytes for a file index (struct \mbox{\hyperlink{structFiLeInDeX}{Fi\+Le\+In\+DeX}}). It is calculated such that the size of a file index is always 512 bytes. 

Definition at line 123 of file structs.\+h.



\doxysubsection{Typedef Documentation}
\mbox{\Hypertarget{structs_8h_af54bed6ca0db2b4fb77654708b0bc25d}\label{structs_8h_af54bed6ca0db2b4fb77654708b0bc25d}} 
\index{structs.h@{structs.h}!INDEXENTRY@{INDEXENTRY}}
\index{INDEXENTRY@{INDEXENTRY}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{INDEXENTRY}{INDEXENTRY}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structInDeXeNtRy}{In\+De\+Xe\+Nt\+Ry}}  \mbox{\hyperlink{structs_8h_af54bed6ca0db2b4fb77654708b0bc25d}{I\+N\+D\+E\+X\+E\+N\+T\+RY}}}

Defines the structure of an entry in a file index (see struct \mbox{\hyperlink{structFiLeInDeX}{Fi\+Le\+In\+DeX}}).

It represents one expression in the file. \mbox{\Hypertarget{structs_8h_a985717703c4c4af3f23ea19dad7e498d}\label{structs_8h_a985717703c4c4af3f23ea19dad7e498d}} 
\index{structs.h@{structs.h}!FILEINDEX@{FILEINDEX}}
\index{FILEINDEX@{FILEINDEX}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{FILEINDEX}{FILEINDEX}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structFiLeInDeX}{Fi\+Le\+In\+DeX}}  \mbox{\hyperlink{structs_8h_a985717703c4c4af3f23ea19dad7e498d}{F\+I\+L\+E\+I\+N\+D\+EX}}}

Defines the structure of a file index in store-\/files and save-\/files.

It contains several entries (see struct \mbox{\hyperlink{structInDeXeNtRy}{In\+De\+Xe\+Nt\+Ry}}) up to a maximum of \mbox{\hyperlink{structs_8h_a25ecf43391bcf74ab8ea04b3065175d1}{I\+N\+F\+I\+L\+E\+I\+N\+D\+EX}}.

The variable number has been made of type P\+O\+S\+I\+T\+I\+ON to avoid padding problems with some types of computers/\+OS and keep system independence of the .sav files.

This struct is always 512 bytes long. \mbox{\Hypertarget{structs_8h_ab333f878f8e260d6a7d053134c318d85}\label{structs_8h_ab333f878f8e260d6a7d053134c318d85}} 
\index{structs.h@{structs.h}!VARRENUM@{VARRENUM}}
\index{VARRENUM@{VARRENUM}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{VARRENUM}{VARRENUM}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structVaRrEnUm}{Va\+Rr\+En\+Um}}  \mbox{\hyperlink{structs_8h_ab333f878f8e260d6a7d053134c318d85}{V\+A\+R\+R\+E\+N\+UM}}}

Contains the pointers to an array in which a binary search will be performed. \mbox{\Hypertarget{structs_8h_a323639d869c15fed1226a3b508bbb1f1}\label{structs_8h_a323639d869c15fed1226a3b508bbb1f1}} 
\index{structs.h@{structs.h}!RENUMBER@{RENUMBER}}
\index{RENUMBER@{RENUMBER}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{RENUMBER}{RENUMBER}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structReNuMbEr}{Re\+Nu\+Mb\+Er}} $\ast$ \mbox{\hyperlink{structs_8h_a323639d869c15fed1226a3b508bbb1f1}{R\+E\+N\+U\+M\+B\+ER}}}

Only symb.\+lo gets dynamically allocated. All other pointers points into this memory. \mbox{\Hypertarget{structs_8h_abf23554c85632bc9bffd53a16f1b7b42}\label{structs_8h_abf23554c85632bc9bffd53a16f1b7b42}} 
\index{structs.h@{structs.h}!NAMENODE@{NAMENODE}}
\index{NAMENODE@{NAMENODE}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{NAMENODE}{NAMENODE}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structNaMeNode}{Na\+Me\+Node}}  \mbox{\hyperlink{structs_8h_abf23554c85632bc9bffd53a16f1b7b42}{N\+A\+M\+E\+N\+O\+DE}}}

The names of variables are kept in an array. Elements of type \mbox{\hyperlink{structs_8h_abf23554c85632bc9bffd53a16f1b7b42}{N\+A\+M\+E\+N\+O\+DE}} define a tree (that is kept balanced) that make it easy and fast to look for variables. See also \mbox{\hyperlink{structs_8h_a843f418b358bd058a1b49543f774ae02}{N\+A\+M\+E\+T\+R\+EE}}. \mbox{\Hypertarget{structs_8h_a843f418b358bd058a1b49543f774ae02}\label{structs_8h_a843f418b358bd058a1b49543f774ae02}} 
\index{structs.h@{structs.h}!NAMETREE@{NAMETREE}}
\index{NAMETREE@{NAMETREE}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{NAMETREE}{NAMETREE}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structNaMeTree}{Na\+Me\+Tree}}  \mbox{\hyperlink{structs_8h_a843f418b358bd058a1b49543f774ae02}{N\+A\+M\+E\+T\+R\+EE}}}

A struct of type \mbox{\hyperlink{structs_8h_a843f418b358bd058a1b49543f774ae02}{N\+A\+M\+E\+T\+R\+EE}} controls a complete (balanced) tree of names for the compiler. The compiler maintains several of such trees and the system has been set up in such a way that one could define more of them if we ever want to work with local name spaces. \mbox{\Hypertarget{structs_8h_ac87cfdb6a6e215fb4461de112adc0cf8}\label{structs_8h_ac87cfdb6a6e215fb4461de112adc0cf8}} 
\index{structs.h@{structs.h}!COMPTREE@{COMPTREE}}
\index{COMPTREE@{COMPTREE}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{COMPTREE}{COMPTREE}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structtree}{tree}}  \mbox{\hyperlink{structs_8h_ac87cfdb6a6e215fb4461de112adc0cf8}{C\+O\+M\+P\+T\+R\+EE}}}

The subexpressions in the compiler are kept track of in a (balanced) tree to reduce the need for subexpressions and hence save much space in large rhs expressions (like when we have xxxxxxx occurrences of objects like f(x+1,x+1) in which each x+1 becomes a subexpression. The struct that controls this tree is C\+O\+M\+P\+T\+R\+EE. \mbox{\Hypertarget{structs_8h_a527a7f40a66c2b2bb735329fac3557ff}\label{structs_8h_a527a7f40a66c2b2bb735329fac3557ff}} 
\index{structs.h@{structs.h}!TABLES@{TABLES}}
\index{TABLES@{TABLES}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{TABLES}{TABLES}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structTaBlEs}{Ta\+Bl\+Es}} $\ast$ \mbox{\hyperlink{structs_8h_a527a7f40a66c2b2bb735329fac3557ff}{T\+A\+B\+L\+ES}}}

buffers, mm, flags, and prototype are always dynamically allocated, tablepointers only if needed (=0 if unallocated), boomlijst and argtail only for sparse tables.

Allocation is done for both the normal and the stub instance (spare), except for prototype and argtail which share memory. \mbox{\Hypertarget{structs_8h_a0e8f940d2594616bc57da547e82b0406}\label{structs_8h_a0e8f940d2594616bc57da547e82b0406}} 
\index{structs.h@{structs.h}!FUNCTIONS@{FUNCTIONS}}
\index{FUNCTIONS@{FUNCTIONS}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{FUNCTIONS}{FUNCTIONS}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structFuNcTiOn}{Fu\+Nc\+Ti\+On}} $\ast$ \mbox{\hyperlink{structs_8h_a0e8f940d2594616bc57da547e82b0406}{F\+U\+N\+C\+T\+I\+O\+NS}}}

Contains all information about a function. Also used for tables. It is used in the \mbox{\hyperlink{structLIST}{L\+I\+ST}} elements of \#\+AC. \mbox{\Hypertarget{structs_8h_acfdc9b730744e2cd3cdff195b7f98166}\label{structs_8h_acfdc9b730744e2cd3cdff195b7f98166}} 
\index{structs.h@{structs.h}!FILEHANDLE@{FILEHANDLE}}
\index{FILEHANDLE@{FILEHANDLE}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{FILEHANDLE}{FILEHANDLE}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structFiLe}{Fi\+Le}}  \mbox{\hyperlink{structs_8h_acfdc9b730744e2cd3cdff195b7f98166}{F\+I\+L\+E\+H\+A\+N\+D\+LE}}}

The type F\+I\+L\+E\+H\+A\+N\+D\+LE is the struct that controls all relevant information of a file, whether it is open or not. The file may even not yet exist. There is a system of caches (P\+Obuffer) and as long as the information to be written still fits inside the cache the file may never be created. There are variables that can store information about different types of files, like scratch files or sort files. Depending on what is available in the system we may also have information about gzip compression (currently sort file only) or locks (T\+F\+O\+RM). \mbox{\Hypertarget{structs_8h_a9a75d5763510e8c919d334b43c39a312}\label{structs_8h_a9a75d5763510e8c919d334b43c39a312}} 
\index{structs.h@{structs.h}!STREAM@{STREAM}}
\index{STREAM@{STREAM}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{STREAM}{STREAM}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structStreaM}{StreaM}}  \mbox{\hyperlink{structs_8h_a9a75d5763510e8c919d334b43c39a312}{S\+T\+R\+E\+AM}}}

Input is read from \textquotesingle{}streams\textquotesingle{} which are represented by objects of type S\+T\+R\+E\+AM. A stream can be a file, a do-\/loop, a procedure, the string value of a preprocessor variable ..... When a new stream is opened we have to keep information about where to fall back in the parent stream to allow this to happen even in the middle of reading names etc as would be the case with a\`{}i\textquotesingle{}b \mbox{\Hypertarget{structs_8h_ae4cbe33f3540adf2a70eac32182dc7e6}\label{structs_8h_ae4cbe33f3540adf2a70eac32182dc7e6}} 
\index{structs.h@{structs.h}!TRACES@{TRACES}}
\index{TRACES@{TRACES}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{TRACES}{TRACES}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structTrAcEs}{Tr\+Ac\+Es}}  \mbox{\hyperlink{structs_8h_ae4cbe33f3540adf2a70eac32182dc7e6}{T\+R\+A\+C\+ES}}}

The struct T\+R\+A\+C\+ES keeps track of the progress during the expansion of a 4-\/dimensional trace. Each time a term gets generated the expansion tree continues in the next statement. When it returns it has to know where to continue. The 4-\/dimensional traces are more complicated than the n-\/dimensional traces (see T\+R\+A\+C\+EN) because of the extra tricks that can be used. They are responsible for the shorter final expressions. \mbox{\Hypertarget{structs_8h_a243448e5620f54e38083a98ca096c228}\label{structs_8h_a243448e5620f54e38083a98ca096c228}} 
\index{structs.h@{structs.h}!TRACEN@{TRACEN}}
\index{TRACEN@{TRACEN}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{TRACEN}{TRACEN}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structTrAcEn}{Tr\+Ac\+En}} $\ast$ \mbox{\hyperlink{structs_8h_a243448e5620f54e38083a98ca096c228}{T\+R\+A\+C\+EN}}}

The struct T\+R\+A\+C\+EN keeps track of the progress during the expansion of a 4-\/dimensional trace. Each time a term gets generated the expansion tree continues in the next statement. When it returns it has to know where to continue. \mbox{\Hypertarget{structs_8h_a13a28f67a343e781d8538569638cad42}\label{structs_8h_a13a28f67a343e781d8538569638cad42}} 
\index{structs.h@{structs.h}!PREVAR@{PREVAR}}
\index{PREVAR@{PREVAR}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{PREVAR}{PREVAR}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structpReVaR}{p\+Re\+VaR}}  \mbox{\hyperlink{structs_8h_a13a28f67a343e781d8538569638cad42}{P\+R\+E\+V\+AR}}}

An element of the type P\+R\+E\+V\+AR is needed for each preprocessor variable. \mbox{\Hypertarget{structs_8h_aea085ca6310a8f1645b5052adaba2f94}\label{structs_8h_aea085ca6310a8f1645b5052adaba2f94}} 
\index{structs.h@{structs.h}!DOLOOP@{DOLOOP}}
\index{DOLOOP@{DOLOOP}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{DOLOOP}{DOLOOP}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structDoLoOp}{Do\+Lo\+Op}}  \mbox{\hyperlink{structs_8h_aea085ca6310a8f1645b5052adaba2f94}{D\+O\+L\+O\+OP}}}

Each preprocessor do loop has a struct of type D\+O\+L\+O\+OP to keep track of all relevant parameters like where the beginning of the loop is, what the boundaries, increment and value of the loop parameter are, etc. Also we keep the whole loop inside a buffer of type \mbox{\hyperlink{structPRELOAD}{P\+R\+E\+L\+O\+AD}} \mbox{\Hypertarget{structs_8h_ab253838fc15bd734919f61e55ecb6286}\label{structs_8h_ab253838fc15bd734919f61e55ecb6286}} 
\index{structs.h@{structs.h}!set\_of\_char@{set\_of\_char}}
\index{set\_of\_char@{set\_of\_char}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{set\_of\_char}{set\_of\_char}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structbit__field}{bit\+\_\+field}} set\+\_\+of\+\_\+char\mbox{[}32\mbox{]}}

Used in set\+\_\+in, set\+\_\+set, set\+\_\+del and set\+\_\+sub. 

Definition at line 903 of file structs.\+h.

\mbox{\Hypertarget{structs_8h_a6b798dec56b5da4c217fbc8c263b35d8}\label{structs_8h_a6b798dec56b5da4c217fbc8c263b35d8}} 
\index{structs.h@{structs.h}!one\_byte@{one\_byte}}
\index{one\_byte@{one\_byte}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{one\_byte}{one\_byte}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structbit__field}{bit\+\_\+field}}$\ast$ \mbox{\hyperlink{structs_8h_a6b798dec56b5da4c217fbc8c263b35d8}{one\+\_\+byte}}}

Used in set\+\_\+in, set\+\_\+set, set\+\_\+del and set\+\_\+sub. 

Definition at line 909 of file structs.\+h.

\mbox{\Hypertarget{structs_8h_adc74e87ce7231cb4c32e28f3498e740a}\label{structs_8h_adc74e87ce7231cb4c32e28f3498e740a}} 
\index{structs.h@{structs.h}!CBUF@{CBUF}}
\index{CBUF@{CBUF}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{CBUF}{CBUF}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structCbUf}{Cb\+Uf}}  \mbox{\hyperlink{structs_8h_adc74e87ce7231cb4c32e28f3498e740a}{C\+B\+UF}}}

The C\+B\+UF struct is used by the compiler. It is a compiler buffer of which since version 3.\+0 there can be many. \mbox{\Hypertarget{structs_8h_a781b1f86328382e2cc29e82356e945c9}\label{structs_8h_a781b1f86328382e2cc29e82356e945c9}} 
\index{structs.h@{structs.h}!CHANNEL@{CHANNEL}}
\index{CHANNEL@{CHANNEL}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{CHANNEL}{CHANNEL}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structChAnNeL}{Ch\+An\+NeL}}  \mbox{\hyperlink{structs_8h_a781b1f86328382e2cc29e82356e945c9}{C\+H\+A\+N\+N\+EL}}}

When we read input from text files we have to remember not only their handle but also their name. This is needed for error messages. Hence we call such a file a channel and reserve a struct of type \mbox{\hyperlink{structs_8h_a781b1f86328382e2cc29e82356e945c9}{C\+H\+A\+N\+N\+EL}} to allow to lay this link. \mbox{\Hypertarget{structs_8h_a00a92bf8a4555d05e3746c270e42bd8e}\label{structs_8h_a00a92bf8a4555d05e3746c270e42bd8e}} 
\index{structs.h@{structs.h}!NESTING@{NESTING}}
\index{NESTING@{NESTING}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{NESTING}{NESTING}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structNeStInG}{Ne\+St\+InG}} $\ast$ \mbox{\hyperlink{structs_8h_a00a92bf8a4555d05e3746c270e42bd8e}{N\+E\+S\+T\+I\+NG}}}

The N\+E\+S\+T\+I\+NG struct is used when we enter the argument of functions and there is the possibility that we have to change something there. Because functions can be nested we have to keep track of all levels of functions in case we have to move the outer layers to make room for a larger function argument. \mbox{\Hypertarget{structs_8h_aaf8ed89c248fc4b78575952539f7f63c}\label{structs_8h_aaf8ed89c248fc4b78575952539f7f63c}} 
\index{structs.h@{structs.h}!STORECACHE@{STORECACHE}}
\index{STORECACHE@{STORECACHE}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{STORECACHE}{STORECACHE}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structStOrEcAcHe}{St\+Or\+Ec\+Ac\+He}} $\ast$ \mbox{\hyperlink{structs_8h_aaf8ed89c248fc4b78575952539f7f63c}{S\+T\+O\+R\+E\+C\+A\+C\+HE}}}

The struct of type S\+T\+O\+R\+E\+C\+A\+C\+HE is used by a caching system for reading terms from stored expressions. Each thread should have its own system of caches. \mbox{\Hypertarget{structs_8h_a358915f133ad95e4e503920a46eec636}\label{structs_8h_a358915f133ad95e4e503920a46eec636}} 
\index{structs.h@{structs.h}!PERM@{PERM}}
\index{PERM@{PERM}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{PERM}{PERM}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structPeRmUtE}{Pe\+Rm\+UtE}}  \mbox{\hyperlink{structs_8h_a358915f133ad95e4e503920a46eec636}{P\+E\+RM}}}

The struct P\+E\+RM is used to generate all permutations when the pattern matcher has to try to match (anti)symmetric functions. \mbox{\Hypertarget{structs_8h_a4a3534d400abbca64f9291607f14b95c}\label{structs_8h_a4a3534d400abbca64f9291607f14b95c}} 
\index{structs.h@{structs.h}!PERMP@{PERMP}}
\index{PERMP@{PERMP}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{PERMP}{PERMP}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structPeRmUtEp}{Pe\+Rm\+Ut\+Ep}}  \mbox{\hyperlink{structs_8h_a4a3534d400abbca64f9291607f14b95c}{P\+E\+R\+MP}}}

Like struct P\+E\+RM but works with pointers. \mbox{\Hypertarget{structs_8h_a2f42f74998ebc862f85eb7aa64f6d15d}\label{structs_8h_a2f42f74998ebc862f85eb7aa64f6d15d}} 
\index{structs.h@{structs.h}!DISTRIBUTE@{DISTRIBUTE}}
\index{DISTRIBUTE@{DISTRIBUTE}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{DISTRIBUTE}{DISTRIBUTE}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structDiStRiBuTe}{Di\+St\+Ri\+Bu\+Te}}  \mbox{\hyperlink{structs_8h_a2f42f74998ebc862f85eb7aa64f6d15d}{D\+I\+S\+T\+R\+I\+B\+U\+TE}}}

The struct D\+I\+S\+T\+R\+I\+B\+U\+TE is used to help the pattern matcher when matching antisymmetric tensors. \mbox{\Hypertarget{structs_8h_a1658056418f484bb1cb6d751714691ef}\label{structs_8h_a1658056418f484bb1cb6d751714691ef}} 
\index{structs.h@{structs.h}!PARTI@{PARTI}}
\index{PARTI@{PARTI}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{PARTI}{PARTI}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structPaRtI}{Pa\+RtI}}  \mbox{\hyperlink{structs_8h_a1658056418f484bb1cb6d751714691ef}{P\+A\+R\+TI}}}

The struct P\+A\+R\+TI is used to help determining whether a partition\+\_\+ function can be replaced. \mbox{\Hypertarget{structs_8h_a4c4f4c2e1a16fc3fcc527899a5438a3e}\label{structs_8h_a4c4f4c2e1a16fc3fcc527899a5438a3e}} 
\index{structs.h@{structs.h}!SORTING@{SORTING}}
\index{SORTING@{SORTING}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{SORTING}{SORTING}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structsOrT}{s\+OrT}}  \mbox{\hyperlink{structs_8h_a4c4f4c2e1a16fc3fcc527899a5438a3e}{S\+O\+R\+T\+I\+NG}}}

The struct S\+O\+R\+T\+I\+NG is used to control a sort operation. It includes a small and a large buffer and arrays for keeping track of various stages of the (merge) sorts. Each sort level has its own struct and different levels can have different sizes for its arrays. Also different threads have their own set of S\+O\+R\+T\+I\+NG structs. \mbox{\Hypertarget{structs_8h_a6f652daef84b3d0141666fbeb13633e8}\label{structs_8h_a6f652daef84b3d0141666fbeb13633e8}} 
\index{structs.h@{structs.h}!ALLGLOBALS@{ALLGLOBALS}}
\index{ALLGLOBALS@{ALLGLOBALS}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{ALLGLOBALS}{ALLGLOBALS}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structAllGlobals}{All\+Globals}}  \mbox{\hyperlink{structs_8h_a6f652daef84b3d0141666fbeb13633e8}{A\+L\+L\+G\+L\+O\+B\+A\+LS}}}

Without pthreads (F\+O\+RM) the A\+L\+L\+G\+L\+O\+B\+A\+LS struct has all the global variables \mbox{\Hypertarget{structs_8h_a5c4ff4aa05519ba679b5c3d77f4a99e7}\label{structs_8h_a5c4ff4aa05519ba679b5c3d77f4a99e7}} 
\index{structs.h@{structs.h}!FIXEDGLOBALS@{FIXEDGLOBALS}}
\index{FIXEDGLOBALS@{FIXEDGLOBALS}!structs.h@{structs.h}}
\doxysubsubsection{\texorpdfstring{FIXEDGLOBALS}{FIXEDGLOBALS}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structFixedGlobals}{Fixed\+Globals}}  \mbox{\hyperlink{structs_8h_a5c4ff4aa05519ba679b5c3d77f4a99e7}{F\+I\+X\+E\+D\+G\+L\+O\+B\+A\+LS}}}

The F\+I\+X\+E\+D\+G\+L\+O\+B\+A\+LS struct is an anachronism. It started as the struct with global variables that needed initialization. It contains the elements Operation and Opera\+Find which define a very early way of automatically jumping to the proper operation. We find the results of it in parts of the file \mbox{\hyperlink{opera_8c}{opera.\+c}} Later operations were treated differently in a more transparent way. We never changed the existing code. The most important part is currently the c\+Table which is used intensively in the compiler. 