\hypertarget{parallel_8h}{}\doxysection{parallel.\+h File Reference}
\label{parallel_8h}\index{parallel.h@{parallel.h}}
{\ttfamily \#include $<$mpi.\+h$>$}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{structPF__BUFFER}{P\+F\+\_\+\+B\+U\+F\+F\+ER}}
\item 
struct \mbox{\hyperlink{structParallelVars}{Parallel\+Vars}}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{parallel_8h_a3fa2d3bf1901157f734a584d47b25d8b}\label{parallel_8h_a3fa2d3bf1901157f734a584d47b25d8b}} 
\#define {\bfseries M\+A\+S\+T\+ER}~0
\item 
\mbox{\Hypertarget{parallel_8h_a1d0c1e47a548af8f355d5ce0b3e9b93e}\label{parallel_8h_a1d0c1e47a548af8f355d5ce0b3e9b93e}} 
\#define {\bfseries P\+F\+\_\+\+R\+E\+S\+ET}~0
\item 
\mbox{\Hypertarget{parallel_8h_ae567978574d03d267ac7f958e7c04bc4}\label{parallel_8h_ae567978574d03d267ac7f958e7c04bc4}} 
\#define {\bfseries P\+F\+\_\+\+T\+I\+ME}~1
\item 
\mbox{\Hypertarget{parallel_8h_a5f34ed2898301d1700a0d065c31ae7ba}\label{parallel_8h_a5f34ed2898301d1700a0d065c31ae7ba}} 
\#define {\bfseries P\+F\+\_\+\+T\+E\+R\+M\+\_\+\+M\+S\+G\+T\+AG}~10  /$\ast$ master -\/$>$ slave\+: sending terms $\ast$/
\item 
\mbox{\Hypertarget{parallel_8h_a51b11cb2c9054f1d5f2eda7e6cf89899}\label{parallel_8h_a51b11cb2c9054f1d5f2eda7e6cf89899}} 
\#define {\bfseries P\+F\+\_\+\+E\+N\+D\+S\+O\+R\+T\+\_\+\+M\+S\+G\+T\+AG}~11  /$\ast$ master -\/$>$ slave\+: no more terms to be distributed, slave -\/$>$ master\+: after \mbox{\hyperlink{sort_8c_a2e9216c6a29ab7719f0d37cb2b51d361}{End\+Sort}}() $\ast$/
\item 
\mbox{\Hypertarget{parallel_8h_a1c6e78853b0d2ba57270c00072a4f497}\label{parallel_8h_a1c6e78853b0d2ba57270c00072a4f497}} 
\#define {\bfseries P\+F\+\_\+\+D\+O\+L\+L\+A\+R\+\_\+\+M\+S\+G\+T\+AG}~12  /$\ast$ slave -\/$>$ master\+: sending \$-\/variables $\ast$/
\item 
\mbox{\Hypertarget{parallel_8h_a594e985a7af11db920e7cc635b022c7d}\label{parallel_8h_a594e985a7af11db920e7cc635b022c7d}} 
\#define {\bfseries P\+F\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+M\+S\+G\+T\+AG}~20  /$\ast$ slave -\/$>$ master\+: sending sorted terms, or in \mbox{\hyperlink{parallel_8h_ad446f03e95a7832b57ee69d5d4f7e079}{P\+F\+\_\+\+Send\+File}}()/\mbox{\hyperlink{parallel_8h_a9431f495c0a0264e23c118bd7c9c815a}{P\+F\+\_\+\+Recv\+File}}() $\ast$/
\item 
\mbox{\Hypertarget{parallel_8h_ae952edee5c80f76b5a0570151f7cf62a}\label{parallel_8h_ae952edee5c80f76b5a0570151f7cf62a}} 
\#define {\bfseries P\+F\+\_\+\+E\+N\+D\+B\+U\+F\+F\+E\+R\+\_\+\+M\+S\+G\+T\+AG}~21  /$\ast$ same as P\+F\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+M\+S\+G\+T\+AG, but indicates the end of operation $\ast$/
\item 
\mbox{\Hypertarget{parallel_8h_a77386b18c12c9eb5fc9777b8dd1782bb}\label{parallel_8h_a77386b18c12c9eb5fc9777b8dd1782bb}} 
\#define {\bfseries P\+F\+\_\+\+R\+E\+A\+D\+Y\+\_\+\+M\+S\+G\+T\+AG}~30  /$\ast$ slave -\/$>$ master\+: slave is idle and can accept terms $\ast$/
\item 
\mbox{\Hypertarget{parallel_8h_abfd67d26a0e4c6d8fae9088840238f8c}\label{parallel_8h_abfd67d26a0e4c6d8fae9088840238f8c}} 
\#define {\bfseries P\+F\+\_\+\+D\+A\+T\+A\+\_\+\+M\+S\+G\+T\+AG}~50  /$\ast$ In\+Parallel, \mbox{\hyperlink{declare_8h_a5a37a6e871ae47348a63f8409c4b5c66}{Do\+Checkpoint}}() $\ast$/
\item 
\mbox{\Hypertarget{parallel_8h_a77033845d09abfbcba463601a2ae7aad}\label{parallel_8h_a77033845d09abfbcba463601a2ae7aad}} 
\#define {\bfseries P\+F\+\_\+\+E\+M\+P\+T\+Y\+\_\+\+M\+S\+G\+T\+AG}~52  /$\ast$ In\+Parallel, \mbox{\hyperlink{declare_8h_a5a37a6e871ae47348a63f8409c4b5c66}{Do\+Checkpoint}}(), \mbox{\hyperlink{parallel_8h_ad446f03e95a7832b57ee69d5d4f7e079}{P\+F\+\_\+\+Send\+File}}(), \mbox{\hyperlink{parallel_8h_a9431f495c0a0264e23c118bd7c9c815a}{P\+F\+\_\+\+Recv\+File}}() $\ast$/
\item 
\mbox{\Hypertarget{parallel_8h_abc23dd90601d3a02d2f222d8bf1cc472}\label{parallel_8h_abc23dd90601d3a02d2f222d8bf1cc472}} 
\#define {\bfseries P\+F\+\_\+\+S\+T\+D\+O\+U\+T\+\_\+\+M\+S\+G\+T\+AG}~60  /$\ast$ slave -\/$>$ master\+: sending text to the stdout $\ast$/
\item 
\mbox{\Hypertarget{parallel_8h_aa752c15d342a98b65a7edc7a553758e0}\label{parallel_8h_aa752c15d342a98b65a7edc7a553758e0}} 
\#define {\bfseries P\+F\+\_\+\+L\+O\+G\+\_\+\+M\+S\+G\+T\+AG}~61  /$\ast$ slave -\/$>$ master\+: sending text to the log file $\ast$/
\item 
\mbox{\Hypertarget{parallel_8h_a39fbfcc79bd0796de939ea8129e0289c}\label{parallel_8h_a39fbfcc79bd0796de939ea8129e0289c}} 
\#define {\bfseries P\+F\+\_\+\+O\+P\+T\+\_\+\+M\+C\+T\+S\+\_\+\+M\+S\+G\+T\+AG}~70  /$\ast$ master $<$-\/$>$ slave\+: \mbox{\hyperlink{classoptimization}{optimization}} $\ast$/
\item 
\mbox{\Hypertarget{parallel_8h_ab0710cc38aff55d1279bb64af2d19006}\label{parallel_8h_ab0710cc38aff55d1279bb64af2d19006}} 
\#define {\bfseries P\+F\+\_\+\+O\+P\+T\+\_\+\+H\+O\+R\+N\+E\+R\+\_\+\+M\+S\+G\+T\+AG}~71  /$\ast$ master $<$-\/$>$ slave\+: \mbox{\hyperlink{classoptimization}{optimization}} $\ast$/
\item 
\mbox{\Hypertarget{parallel_8h_a3099a49cb6ced69299a6b8a085d9e2f0}\label{parallel_8h_a3099a49cb6ced69299a6b8a085d9e2f0}} 
\#define {\bfseries P\+F\+\_\+\+O\+P\+T\+\_\+\+C\+O\+L\+L\+E\+C\+T\+\_\+\+M\+S\+G\+T\+AG}~72  /$\ast$ slave -\/$>$ master\+: \mbox{\hyperlink{classoptimization}{optimization}} $\ast$/
\item 
\mbox{\Hypertarget{parallel_8h_a77b808aa255972cefb9ebd141b6e545b}\label{parallel_8h_a77b808aa255972cefb9ebd141b6e545b}} 
\#define {\bfseries P\+F\+\_\+\+M\+I\+S\+C\+\_\+\+M\+S\+G\+T\+AG}~100
\item 
\mbox{\Hypertarget{parallel_8h_a28462ce0cb794da24c54bb63b3fdeb49}\label{parallel_8h_a28462ce0cb794da24c54bb63b3fdeb49}} 
\#define {\bfseries G\+N\+U\+C\+\_\+\+P\+R\+E\+R\+EQ}(major,  minor,  patchlevel)~0
\item 
\mbox{\Hypertarget{parallel_8h_aee306e2386708f10beec617db872c9f2}\label{parallel_8h_aee306e2386708f10beec617db872c9f2}} 
\#define {\bfseries indices}~((\mbox{\hyperlink{structInDeX}{I\+N\+D\+I\+C\+ES}})(A\+C.\+Index\+List.\+lijst))
\item 
\mbox{\Hypertarget{parallel_8h_a90fe1e913c78279bfecd0b5b73b7ead3}\label{parallel_8h_a90fe1e913c78279bfecd0b5b73b7ead3}} 
\#define {\bfseries P\+F\+\_\+\+A\+N\+Y\+\_\+\+S\+O\+U\+R\+CE}~M\+P\+I\+\_\+\+A\+N\+Y\+\_\+\+S\+O\+U\+R\+CE
\item 
\mbox{\Hypertarget{parallel_8h_a6217c5b1feb73d0770a6954c16d10aa4}\label{parallel_8h_a6217c5b1feb73d0770a6954c16d10aa4}} 
\#define {\bfseries P\+F\+\_\+\+A\+N\+Y\+\_\+\+M\+S\+G\+T\+AG}~M\+P\+I\+\_\+\+A\+N\+Y\+\_\+\+T\+AG
\item 
\mbox{\Hypertarget{parallel_8h_a64c50830e1d8098d28ce38192095842b}\label{parallel_8h_a64c50830e1d8098d28ce38192095842b}} 
\#define {\bfseries P\+F\+\_\+\+C\+O\+MM}~M\+P\+I\+\_\+\+C\+O\+M\+M\+\_\+\+W\+O\+R\+LD
\item 
\mbox{\Hypertarget{parallel_8h_a651091d438f0b562339c82e716b299f6}\label{parallel_8h_a651091d438f0b562339c82e716b299f6}} 
\#define {\bfseries P\+F\+\_\+\+B\+Y\+TE}~M\+P\+I\+\_\+\+B\+Y\+TE
\item 
\mbox{\Hypertarget{parallel_8h_a95f3a2adac8ac5b1217efac56c60cfa2}\label{parallel_8h_a95f3a2adac8ac5b1217efac56c60cfa2}} 
\#define {\bfseries P\+F\+\_\+\+I\+NT}~M\+P\+I\+\_\+\+I\+NT
\item 
\mbox{\Hypertarget{parallel_8h_aa382c777ade8f4d7cb5a54ca00c97d34}\label{parallel_8h_aa382c777ade8f4d7cb5a54ca00c97d34}} 
\#define {\bfseries P\+F\+\_\+\+Long\+Multi\+Pack}(buffer,  count,  type)~\mbox{\hyperlink{parallel_8h_a89a6ccb9f441cf57eaefd8b4e5f69786}{P\+F\+\_\+\+Long\+Multi\+Pack\+Impl}}(buffer, count, sizeof\+\_\+datatype(type), type)
\item 
\mbox{\Hypertarget{parallel_8h_ab646f7555fa3948a1613bdaa807c4878}\label{parallel_8h_ab646f7555fa3948a1613bdaa807c4878}} 
\#define {\bfseries P\+F\+\_\+\+Long\+Multi\+Unpack}(buffer,  count,  type)~\mbox{\hyperlink{parallel_8h_ab69157e9edff8d3285d5c23115af7a52}{P\+F\+\_\+\+Long\+Multi\+Unpack\+Impl}}(buffer, count, sizeof\+\_\+datatype(type), type)
\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{parallel_8h_ae8a0ba322457800b0a4879cc9b38c806}\label{parallel_8h_ae8a0ba322457800b0a4879cc9b38c806}} 
typedef struct \mbox{\hyperlink{structParallelVars}{Parallel\+Vars}} {\bfseries P\+A\+R\+A\+L\+L\+E\+L\+V\+A\+RS}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \mbox{\hyperlink{parallel_8h_a68d8269c1d7ee8856385d0cc4b54dd3f}{P\+F\+\_\+\+I\+Send\+Sbuf}} (int, int)
\item 
int \mbox{\hyperlink{parallel_8h_ad01fcdd6248040453a990e8a8fd21a15}{P\+F\+\_\+\+Bcast}} (void $\ast$buffer, int count)
\item 
int \mbox{\hyperlink{parallel_8h_a23323b394b7097f4de2abbf1240d3bc5}{P\+F\+\_\+\+Raw\+Send}} (int, void $\ast$, L\+O\+NG, int)
\item 
L\+O\+NG \mbox{\hyperlink{parallel_8h_ab45276845b82ca136779ff7133b5c6cf}{P\+F\+\_\+\+Raw\+Recv}} (int $\ast$, void $\ast$, L\+O\+NG, int $\ast$)
\item 
int \mbox{\hyperlink{parallel_8h_a62e43295488ff786e126b87aaf4ed26b}{P\+F\+\_\+\+Prepare\+Pack}} (void)
\item 
int \mbox{\hyperlink{parallel_8h_a7619a182c005b27cfe949e4ebbeaa6d2}{P\+F\+\_\+\+Pack}} (const void $\ast$buffer, size\+\_\+t count, M\+P\+I\+\_\+\+Datatype type)
\item 
int \mbox{\hyperlink{parallel_8h_a34605b9383c62068bbbcc99316c41b62}{P\+F\+\_\+\+Unpack}} (void $\ast$buffer, size\+\_\+t count, M\+P\+I\+\_\+\+Datatype type)
\item 
int \mbox{\hyperlink{parallel_8h_a09df0aab01cd342b5c8ca3a65b1a081d}{P\+F\+\_\+\+Pack\+String}} (const U\+B\+Y\+TE $\ast$str)
\item 
int \mbox{\hyperlink{parallel_8h_a9f23d69486afc2fa06b33ee8169842b1}{P\+F\+\_\+\+Unpack\+String}} (U\+B\+Y\+TE $\ast$str)
\item 
int \mbox{\hyperlink{parallel_8h_a5d09f4ef20ba9e56d2b0c0c80f4080e7}{P\+F\+\_\+\+Send}} (int to, int tag)
\item 
int \mbox{\hyperlink{parallel_8h_a4a592eba09170cf9927f52c753d43449}{P\+F\+\_\+\+Receive}} (int src, int tag, int $\ast$psrc, int $\ast$ptag)
\item 
int \mbox{\hyperlink{parallel_8h_a8c5fa9d6247c3759294cfde8beed2a79}{P\+F\+\_\+\+Broadcast}} (void)
\item 
int \mbox{\hyperlink{parallel_8h_a32c244c9bd896e618696ad0d8af00b77}{P\+F\+\_\+\+Prepare\+Long\+Single\+Pack}} (void)
\item 
int \mbox{\hyperlink{parallel_8h_acfd012f95caa0919c94f5146de803851}{P\+F\+\_\+\+Long\+Single\+Pack}} (const void $\ast$buffer, size\+\_\+t count, M\+P\+I\+\_\+\+Datatype type)
\item 
int \mbox{\hyperlink{parallel_8h_a74be2fd9c9585f01338bee40938a14d6}{P\+F\+\_\+\+Long\+Single\+Unpack}} (void $\ast$buffer, size\+\_\+t count, M\+P\+I\+\_\+\+Datatype type)
\item 
int \mbox{\hyperlink{parallel_8h_a24e76d4fe06bb15261926c81d4848819}{P\+F\+\_\+\+Long\+Single\+Send}} (int to, int tag)
\item 
int \mbox{\hyperlink{parallel_8h_a08e9722074691c45c8f228674e672c87}{P\+F\+\_\+\+Long\+Single\+Receive}} (int src, int tag, int $\ast$psrc, int $\ast$ptag)
\item 
int \mbox{\hyperlink{parallel_8h_a76f621497e4fb642ac140fce31a11662}{P\+F\+\_\+\+Prepare\+Long\+Multi\+Pack}} (void)
\item 
int \mbox{\hyperlink{parallel_8h_a89a6ccb9f441cf57eaefd8b4e5f69786}{P\+F\+\_\+\+Long\+Multi\+Pack\+Impl}} (const void $\ast$buffer, size\+\_\+t count, size\+\_\+t e\+Size, M\+P\+I\+\_\+\+Datatype type)
\item 
int \mbox{\hyperlink{parallel_8h_ab69157e9edff8d3285d5c23115af7a52}{P\+F\+\_\+\+Long\+Multi\+Unpack\+Impl}} (void $\ast$buffer, size\+\_\+t count, size\+\_\+t e\+Size, M\+P\+I\+\_\+\+Datatype type)
\item 
int \mbox{\hyperlink{parallel_8h_a9b9cf07c7f8d8e4c954bcac06b716398}{P\+F\+\_\+\+Long\+Multi\+Broadcast}} (void)
\item 
int \mbox{\hyperlink{parallel_8h_abc56c3ae41cd94a0ee0e1c900c2ee4d3}{P\+F\+\_\+\+End\+Sort}} (void)
\item 
W\+O\+RD \mbox{\hyperlink{parallel_8h_a251429c8d75d8bf51da5c435c5a21599}{P\+F\+\_\+\+Deferred}} (W\+O\+RD $\ast$, W\+O\+RD)
\item 
int \mbox{\hyperlink{parallel_8h_a259893ecbbbc561d509750c7b778eb8d}{P\+F\+\_\+\+Processor}} (\mbox{\hyperlink{structExPrEsSiOn}{E\+X\+P\+R\+E\+S\+S\+I\+O\+NS}}, W\+O\+RD, W\+O\+RD)
\item 
int \mbox{\hyperlink{parallel_8h_a6143fc9b7bb91f2516875dab935f5420}{P\+F\+\_\+\+Init}} (int $\ast$, char $\ast$$\ast$$\ast$)
\item 
int \mbox{\hyperlink{parallel_8h_ad46dc1302f44a7c9f08bcd7f88ec3f42}{P\+F\+\_\+\+Terminate}} (int)
\item 
L\+O\+NG \mbox{\hyperlink{parallel_8h_a4acf9c6814b057fdc96bd1e9efdd3910}{P\+F\+\_\+\+Get\+Slave\+Times}} (void)
\item 
L\+O\+NG \mbox{\hyperlink{parallel_8h_ab3ad9794f97bba7e6d0c7517ee4d8fe5}{P\+F\+\_\+\+Broadcast\+Number}} (L\+O\+NG)
\item 
void \mbox{\hyperlink{parallel_8h_a706428ee6daa7eb20ffb427c50e76927}{P\+F\+\_\+\+Broadcast\+Buffer}} (W\+O\+RD $\ast$$\ast$buffer, L\+O\+NG $\ast$length)
\item 
int \mbox{\hyperlink{parallel_8h_a40dce95d4b6cc3f99f2909d3e66f05ff}{P\+F\+\_\+\+Broadcast\+String}} (U\+B\+Y\+TE $\ast$)
\item 
int \mbox{\hyperlink{parallel_8h_a0d811cf4cdcebd127f6410d486e06859}{P\+F\+\_\+\+Broadcast\+Pre\+Dollar}} (W\+O\+RD $\ast$$\ast$, L\+O\+NG $\ast$, int $\ast$)
\item 
int \mbox{\hyperlink{parallel_8h_a7bb2cc34f85ec08289eb6be4a16d29d1}{P\+F\+\_\+\+Collect\+Modified\+Dollars}} (void)
\item 
int \mbox{\hyperlink{parallel_8h_a5efb548dd947c719005be2da0d79e114}{P\+F\+\_\+\+Broadcast\+Modified\+Dollars}} (void)
\item 
int \mbox{\hyperlink{parallel_8h_a27b88f27e555759116cf5bf20931ae2a}{P\+F\+\_\+\+Broadcast\+Redefined\+Pre\+Vars}} (void)
\item 
int \mbox{\hyperlink{parallel_8h_a6eca5eb317338d7f924c1b30efa3bb04}{P\+F\+\_\+\+Broadcast\+C\+Buf}} (int bufnum)
\item 
int \mbox{\hyperlink{parallel_8h_a4e4d2578b246a72a2b5ae83264e0c1eb}{P\+F\+\_\+\+Broadcast\+Exp\+Flags}} (void)
\item 
\mbox{\Hypertarget{parallel_8h_acf1b6528ea25051874af050b50164343}\label{parallel_8h_acf1b6528ea25051874af050b50164343}} 
int {\bfseries P\+F\+\_\+\+Store\+Inside\+Info} (void)
\item 
\mbox{\Hypertarget{parallel_8h_aede29ec9b6e2a4fe3adbab043c1030f6}\label{parallel_8h_aede29ec9b6e2a4fe3adbab043c1030f6}} 
int {\bfseries P\+F\+\_\+\+Restore\+Inside\+Info} (void)
\item 
int \mbox{\hyperlink{parallel_8h_aef563d0e7aceb926dc0c91cc38267b79}{P\+F\+\_\+\+Broadcast\+Expr}} (\mbox{\hyperlink{structExPrEsSiOn}{E\+X\+P\+R\+E\+S\+S\+I\+O\+NS}} e, \mbox{\hyperlink{structs_8h_acfdc9b730744e2cd3cdff195b7f98166}{F\+I\+L\+E\+H\+A\+N\+D\+LE}} $\ast$file)
\item 
int \mbox{\hyperlink{parallel_8h_a32ed894955022778e534493c98a0fc60}{P\+F\+\_\+\+Broadcast\+R\+HS}} (void)
\item 
int \mbox{\hyperlink{parallel_8h_afd64e52f1ac32149986935def83fcd41}{P\+F\+\_\+\+In\+Parallel\+Processor}} (void)
\item 
int \mbox{\hyperlink{parallel_8h_ad446f03e95a7832b57ee69d5d4f7e079}{P\+F\+\_\+\+Send\+File}} (int to, F\+I\+LE $\ast$fd)
\item 
int \mbox{\hyperlink{parallel_8h_a9431f495c0a0264e23c118bd7c9c815a}{P\+F\+\_\+\+Recv\+File}} (int from, F\+I\+LE $\ast$fd)
\item 
void \mbox{\hyperlink{parallel_8h_ad3e04b83427086402644920543c2859e}{P\+F\+\_\+\+M\+Lock}} (void)
\item 
void \mbox{\hyperlink{parallel_8h_a14f85f4f370b1b4aa22c7b959af56de5}{P\+F\+\_\+\+M\+Unlock}} (void)
\item 
L\+O\+NG \mbox{\hyperlink{parallel_8h_aaad35376d5d5390f7b019ba1c3c4e48f}{P\+F\+\_\+\+Write\+File\+To\+File}} (int, U\+B\+Y\+TE $\ast$, L\+O\+NG)
\item 
void \mbox{\hyperlink{parallel_8h_aaa6f2290ae527132b557e572636a7a20}{P\+F\+\_\+\+Flush\+Std\+Out\+Buffer}} (void)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{parallel_8h_a86370d8d37efe88a80a1c006501a8c3f}\label{parallel_8h_a86370d8d37efe88a80a1c006501a8c3f}} 
\mbox{\hyperlink{structParallelVars}{P\+A\+R\+A\+L\+L\+E\+L\+V\+A\+RS}} {\bfseries PF}
\item 
\mbox{\Hypertarget{parallel_8h_af3c2184ac593030bf5f35d1f2f8702d1}\label{parallel_8h_af3c2184ac593030bf5f35d1f2f8702d1}} 
L\+O\+NG {\bfseries P\+F\+\_\+max\+Dollar\+Chunk\+Size}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Header file with things relevant to Par\+Form. 

\doxysubsection{Function Documentation}
\mbox{\Hypertarget{parallel_8h_a68d8269c1d7ee8856385d0cc4b54dd3f}\label{parallel_8h_a68d8269c1d7ee8856385d0cc4b54dd3f}} 
\index{parallel.h@{parallel.h}!PF\_ISendSbuf@{PF\_ISendSbuf}}
\index{PF\_ISendSbuf@{PF\_ISendSbuf}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_ISendSbuf()}{PF\_ISendSbuf()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+I\+Send\+Sbuf (\begin{DoxyParamCaption}\item[{int}]{to,  }\item[{int}]{tag }\end{DoxyParamCaption})}

Nonblocking send operation. It sends everything from {\ttfamily buff} to {\ttfamily fill} of the active buffer. Depending on {\itshape tag} it also can do waiting for other sends to finish or set the active buffer to the next one.


\begin{DoxyParams}{Parameters}
{\em to} & the destination process number. \\
\hline
{\em tag} & the message tag. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 261 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_ad01fcdd6248040453a990e8a8fd21a15}\label{parallel_8h_ad01fcdd6248040453a990e8a8fd21a15}} 
\index{parallel.h@{parallel.h}!PF\_Bcast@{PF\_Bcast}}
\index{PF\_Bcast@{PF\_Bcast}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_Bcast()}{PF\_Bcast()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Bcast (\begin{DoxyParamCaption}\item[{void $\ast$}]{buffer,  }\item[{int}]{count }\end{DoxyParamCaption})}

Broadcasts a message from the master to slaves.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em buffer} & the starting address of buffer. The contents in this buffer on the master will be transferred to those on the slaves. \\
\hline
 & {\em count} & the length of the buffer in bytes. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 440 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_a23323b394b7097f4de2abbf1240d3bc5}\label{parallel_8h_a23323b394b7097f4de2abbf1240d3bc5}} 
\index{parallel.h@{parallel.h}!PF\_RawSend@{PF\_RawSend}}
\index{PF\_RawSend@{PF\_RawSend}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_RawSend()}{PF\_RawSend()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Raw\+Send (\begin{DoxyParamCaption}\item[{int}]{dest,  }\item[{void $\ast$}]{buf,  }\item[{L\+O\+NG}]{l,  }\item[{int}]{tag }\end{DoxyParamCaption})}

Sends {\itshape l} bytes from {\itshape buf} to {\itshape dest}. Returns 0 on success, or -\/1.


\begin{DoxyParams}{Parameters}
{\em dest} & the destination process number. \\
\hline
{\em buf} & the send buffer. \\
\hline
{\em l} & the size of data in the send buffer in bytes. \\
\hline
{\em tag} & the message tag. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 463 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_ab45276845b82ca136779ff7133b5c6cf}\label{parallel_8h_ab45276845b82ca136779ff7133b5c6cf}} 
\index{parallel.h@{parallel.h}!PF\_RawRecv@{PF\_RawRecv}}
\index{PF\_RawRecv@{PF\_RawRecv}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_RawRecv()}{PF\_RawRecv()}}
{\footnotesize\ttfamily L\+O\+NG P\+F\+\_\+\+Raw\+Recv (\begin{DoxyParamCaption}\item[{int $\ast$}]{src,  }\item[{void $\ast$}]{buf,  }\item[{L\+O\+NG}]{thesize,  }\item[{int $\ast$}]{tag }\end{DoxyParamCaption})}

Receives not more than {\itshape thesize} bytes from {\itshape src}, returns the actual number of received bytes, or -\/1 on failure.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em src} & the source process number. In output, that of the actual received message. \\
\hline
\mbox{\texttt{ out}}  & {\em buf} & the receive buffer. \\
\hline
 & {\em thesize} & the size of the receive buffer in bytes. \\
\hline
\mbox{\texttt{ out}}  & {\em tag} & the message tag of the actual received message. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the actual sizeof received data in bytes, or -\/1 on failure. 
\end{DoxyReturn}


Definition at line 484 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_a62e43295488ff786e126b87aaf4ed26b}\label{parallel_8h_a62e43295488ff786e126b87aaf4ed26b}} 
\index{parallel.h@{parallel.h}!PF\_PreparePack@{PF\_PreparePack}}
\index{PF\_PreparePack@{PF\_PreparePack}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_PreparePack()}{PF\_PreparePack()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Prepare\+Pack (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Prepares for the next pack operations on the sender.

\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 624 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_a7619a182c005b27cfe949e4ebbeaa6d2}\label{parallel_8h_a7619a182c005b27cfe949e4ebbeaa6d2}} 
\index{parallel.h@{parallel.h}!PF\_Pack@{PF\_Pack}}
\index{PF\_Pack@{PF\_Pack}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_Pack()}{PF\_Pack()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Pack (\begin{DoxyParamCaption}\item[{const void $\ast$}]{buffer,  }\item[{size\+\_\+t}]{count,  }\item[{M\+P\+I\+\_\+\+Datatype}]{type }\end{DoxyParamCaption})}

Adds data into the pack buffer.


\begin{DoxyParams}{Parameters}
{\em buffer} & the pointer to the buffer storing the data to be packed. \\
\hline
{\em count} & the number of elements in the buffer. \\
\hline
{\em type} & the data type of elements in the buffer. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 642 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_a34605b9383c62068bbbcc99316c41b62}\label{parallel_8h_a34605b9383c62068bbbcc99316c41b62}} 
\index{parallel.h@{parallel.h}!PF\_Unpack@{PF\_Unpack}}
\index{PF\_Unpack@{PF\_Unpack}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_Unpack()}{PF\_Unpack()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Unpack (\begin{DoxyParamCaption}\item[{void $\ast$}]{buffer,  }\item[{size\+\_\+t}]{count,  }\item[{M\+P\+I\+\_\+\+Datatype}]{type }\end{DoxyParamCaption})}

Retrieves the next data in the pack buffer.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em buffer} & the pointer to the buffer to store the unpacked data. \\
\hline
 & {\em count} & the number of elements of data to be received. \\
\hline
 & {\em type} & the data type of elements of data to be received. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 671 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_a09df0aab01cd342b5c8ca3a65b1a081d}\label{parallel_8h_a09df0aab01cd342b5c8ca3a65b1a081d}} 
\index{parallel.h@{parallel.h}!PF\_PackString@{PF\_PackString}}
\index{PF\_PackString@{PF\_PackString}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_PackString()}{PF\_PackString()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Pack\+String (\begin{DoxyParamCaption}\item[{const U\+B\+Y\+TE $\ast$}]{str }\end{DoxyParamCaption})}

Packs a string {\itshape str} into the packed buffer P\+F\+\_\+packbuf, including the trailing zero.

The first element (P\+F\+\_\+\+I\+NT) is the length of the packed portion of the string. If the string does not fit to the buffer P\+F\+\_\+packbuf, the function packs only the initial portion. It returns the number of packed bytes, so if (str\mbox{[}length-\/1\mbox{]}==\textquotesingle{}\textbackslash{}0\textquotesingle{}) then the whole string fits to the buffer, if not, then the rest (str+length) bust be packed and send again. On error, the function returns the negative error code.

One exception\+: the string \char`\"{}\textbackslash{}0!\textbackslash{}0\char`\"{} is used as an image of the N\+U\+LL, so all 3 characters will be packed.


\begin{DoxyParams}{Parameters}
{\em str} & a string to be packed. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the number of packed bytes, or a negative value on failure. 
\end{DoxyReturn}


Definition at line 706 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_a9f23d69486afc2fa06b33ee8169842b1}\label{parallel_8h_a9f23d69486afc2fa06b33ee8169842b1}} 
\index{parallel.h@{parallel.h}!PF\_UnpackString@{PF\_UnpackString}}
\index{PF\_UnpackString@{PF\_UnpackString}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_UnpackString()}{PF\_UnpackString()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Unpack\+String (\begin{DoxyParamCaption}\item[{U\+B\+Y\+TE $\ast$}]{str }\end{DoxyParamCaption})}

Unpacks a string to {\itshape str} from the packed buffer P\+F\+\_\+packbuf, including the trailing zero.

It returns the number of unpacked bytes, so if (str\mbox{[}length-\/1\mbox{]}==\textquotesingle{}\textbackslash{}0\textquotesingle{}) then the whole string was unpacked, if not, then the rest must be appended to (str+length). On error, the function returns the negative error code.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em str} & the buffer to store the unpacked string \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the number of unpacked bytes, or a negative value on failure. 
\end{DoxyReturn}


Definition at line 774 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_a5d09f4ef20ba9e56d2b0c0c80f4080e7}\label{parallel_8h_a5d09f4ef20ba9e56d2b0c0c80f4080e7}} 
\index{parallel.h@{parallel.h}!PF\_Send@{PF\_Send}}
\index{PF\_Send@{PF\_Send}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_Send()}{PF\_Send()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Send (\begin{DoxyParamCaption}\item[{int}]{to,  }\item[{int}]{tag }\end{DoxyParamCaption})}

Sends the contents in the pack buffer to the process specified by {\itshape to}.

Example\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordflow}{if} ( PF.me == SRC ) \{}
\DoxyCodeLine{  \mbox{\hyperlink{mpi_8c_a62e43295488ff786e126b87aaf4ed26b}{PF\_PreparePack}}();}
\DoxyCodeLine{  \textcolor{comment}{// Packing operations here...}}
\DoxyCodeLine{  \mbox{\hyperlink{mpi_8c_a5d09f4ef20ba9e56d2b0c0c80f4080e7}{PF\_Send}}(DEST, TAG);}
\DoxyCodeLine{\}}
\DoxyCodeLine{\textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( PF.me == DEST ) \{}
\DoxyCodeLine{  \mbox{\hyperlink{mpi_8c_a4a592eba09170cf9927f52c753d43449}{PF\_Receive}}(SRC, TAG, \&actual\_src, \&actual\_tag);}
\DoxyCodeLine{  \textcolor{comment}{// Unpacking operations here...}}
\DoxyCodeLine{\}}
\end{DoxyCode}



\begin{DoxyParams}{Parameters}
{\em to} & the destination process number. \\
\hline
{\em tag} & the message tag. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 822 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_a4a592eba09170cf9927f52c753d43449}\label{parallel_8h_a4a592eba09170cf9927f52c753d43449}} 
\index{parallel.h@{parallel.h}!PF\_Receive@{PF\_Receive}}
\index{PF\_Receive@{PF\_Receive}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_Receive()}{PF\_Receive()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Receive (\begin{DoxyParamCaption}\item[{int}]{src,  }\item[{int}]{tag,  }\item[{int $\ast$}]{psrc,  }\item[{int $\ast$}]{ptag }\end{DoxyParamCaption})}

Receives data into the pack buffer from the process specified by {\itshape src}. This function allows \&src == psrc or \&tag == ptag. Either {\itshape psrc} or {\itshape ptag} can be N\+U\+LL.

See the example of \mbox{\hyperlink{mpi_8c_a5d09f4ef20ba9e56d2b0c0c80f4080e7}{P\+F\+\_\+\+Send()}}.


\begin{DoxyParams}[1]{Parameters}
 & {\em src} & the source process number (can be P\+F\+\_\+\+A\+N\+Y\+\_\+\+S\+O\+U\+R\+CE). \\
\hline
 & {\em tag} & the source message tag (can be P\+F\+\_\+\+A\+N\+Y\+\_\+\+T\+AG). \\
\hline
\mbox{\texttt{ out}}  & {\em psrc} & the actual source process number of received message. \\
\hline
\mbox{\texttt{ out}}  & {\em ptag} & the received message tag. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 848 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_a8c5fa9d6247c3759294cfde8beed2a79}\label{parallel_8h_a8c5fa9d6247c3759294cfde8beed2a79}} 
\index{parallel.h@{parallel.h}!PF\_Broadcast@{PF\_Broadcast}}
\index{PF\_Broadcast@{PF\_Broadcast}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_Broadcast()}{PF\_Broadcast()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Broadcast (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Broadcasts the contents in the pack buffer on the master to those on the slaves.

Example\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordflow}{if} ( PF.me == MASTER ) \{}
\DoxyCodeLine{  \mbox{\hyperlink{mpi_8c_a62e43295488ff786e126b87aaf4ed26b}{PF\_PreparePack}}();}
\DoxyCodeLine{  \textcolor{comment}{// Packing operations here...}}
\DoxyCodeLine{\}}
\DoxyCodeLine{\mbox{\hyperlink{mpi_8c_a8c5fa9d6247c3759294cfde8beed2a79}{PF\_Broadcast}}();}
\DoxyCodeLine{\textcolor{keywordflow}{if} ( PF.me != MASTER ) \{}
\DoxyCodeLine{  \textcolor{comment}{// Unpacking operations here...}}
\DoxyCodeLine{\}}
\end{DoxyCode}


\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 883 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_a32c244c9bd896e618696ad0d8af00b77}\label{parallel_8h_a32c244c9bd896e618696ad0d8af00b77}} 
\index{parallel.h@{parallel.h}!PF\_PrepareLongSinglePack@{PF\_PrepareLongSinglePack}}
\index{PF\_PrepareLongSinglePack@{PF\_PrepareLongSinglePack}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_PrepareLongSinglePack()}{PF\_PrepareLongSinglePack()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Prepare\+Long\+Single\+Pack (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Prepares for the next long-\/single-\/pack operations on the sender.

\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 1451 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_acfd012f95caa0919c94f5146de803851}\label{parallel_8h_acfd012f95caa0919c94f5146de803851}} 
\index{parallel.h@{parallel.h}!PF\_LongSinglePack@{PF\_LongSinglePack}}
\index{PF\_LongSinglePack@{PF\_LongSinglePack}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_LongSinglePack()}{PF\_LongSinglePack()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Long\+Single\+Pack (\begin{DoxyParamCaption}\item[{const void $\ast$}]{buffer,  }\item[{size\+\_\+t}]{count,  }\item[{M\+P\+I\+\_\+\+Datatype}]{type }\end{DoxyParamCaption})}

Adds data into the \char`\"{}long single\char`\"{} pack buffer.


\begin{DoxyParams}{Parameters}
{\em buffer} & the pointer to the buffer storing the data to be packed. \\
\hline
{\em count} & the number of elements in the buffer. \\
\hline
{\em type} & the data type of elements in the buffer. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 1469 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_a74be2fd9c9585f01338bee40938a14d6}\label{parallel_8h_a74be2fd9c9585f01338bee40938a14d6}} 
\index{parallel.h@{parallel.h}!PF\_LongSingleUnpack@{PF\_LongSingleUnpack}}
\index{PF\_LongSingleUnpack@{PF\_LongSingleUnpack}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_LongSingleUnpack()}{PF\_LongSingleUnpack()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Long\+Single\+Unpack (\begin{DoxyParamCaption}\item[{void $\ast$}]{buffer,  }\item[{size\+\_\+t}]{count,  }\item[{M\+P\+I\+\_\+\+Datatype}]{type }\end{DoxyParamCaption})}

Retrieves the next data in the \char`\"{}long single\char`\"{} pack buffer.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em buffer} & the pointer to the buffer to store the unpacked data. \\
\hline
 & {\em count} & the number of elements of data to be received. \\
\hline
 & {\em type} & the data type of elements of data to be received. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 1503 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_a24e76d4fe06bb15261926c81d4848819}\label{parallel_8h_a24e76d4fe06bb15261926c81d4848819}} 
\index{parallel.h@{parallel.h}!PF\_LongSingleSend@{PF\_LongSingleSend}}
\index{PF\_LongSingleSend@{PF\_LongSingleSend}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_LongSingleSend()}{PF\_LongSingleSend()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Long\+Single\+Send (\begin{DoxyParamCaption}\item[{int}]{to,  }\item[{int}]{tag }\end{DoxyParamCaption})}

Sends the contents in the \char`\"{}long single\char`\"{} pack buffer to the process specified by {\itshape to}.

Example\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordflow}{if} ( PF.me == SRC ) \{}
\DoxyCodeLine{  \mbox{\hyperlink{mpi_8c_a32c244c9bd896e618696ad0d8af00b77}{PF\_PrepareLongSinglePack}}();}
\DoxyCodeLine{  \textcolor{comment}{// Packing operations here...}}
\DoxyCodeLine{  \mbox{\hyperlink{mpi_8c_a24e76d4fe06bb15261926c81d4848819}{PF\_LongSingleSend}}(DEST, TAG);}
\DoxyCodeLine{\}}
\DoxyCodeLine{\textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ( PF.me == DEST ) \{}
\DoxyCodeLine{  \mbox{\hyperlink{mpi_8c_a08e9722074691c45c8f228674e672c87}{PF\_LongSingleReceive}}(SRC, TAG, \&actual\_src, \&actual\_tag);}
\DoxyCodeLine{  \textcolor{comment}{// Unpacking operations here...}}
\DoxyCodeLine{\}}
\end{DoxyCode}



\begin{DoxyParams}{Parameters}
{\em to} & the destination process number. \\
\hline
{\em tag} & the message tag. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 1540 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_a08e9722074691c45c8f228674e672c87}\label{parallel_8h_a08e9722074691c45c8f228674e672c87}} 
\index{parallel.h@{parallel.h}!PF\_LongSingleReceive@{PF\_LongSingleReceive}}
\index{PF\_LongSingleReceive@{PF\_LongSingleReceive}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_LongSingleReceive()}{PF\_LongSingleReceive()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Long\+Single\+Receive (\begin{DoxyParamCaption}\item[{int}]{src,  }\item[{int}]{tag,  }\item[{int $\ast$}]{psrc,  }\item[{int $\ast$}]{ptag }\end{DoxyParamCaption})}

Receives data into the \char`\"{}long single\char`\"{} pack buffer from the process specified by {\itshape src}. This function allows \&src == psrc or \&tag == ptag. Either {\itshape psrc} or {\itshape ptag} can be N\+U\+LL.

See the example of \mbox{\hyperlink{mpi_8c_a24e76d4fe06bb15261926c81d4848819}{P\+F\+\_\+\+Long\+Single\+Send()}}.


\begin{DoxyParams}[1]{Parameters}
 & {\em src} & the source process number (can be P\+F\+\_\+\+A\+N\+Y\+\_\+\+S\+O\+U\+R\+CE). \\
\hline
 & {\em tag} & the source message tag (can be P\+F\+\_\+\+A\+N\+Y\+\_\+\+T\+AG). \\
\hline
\mbox{\texttt{ out}}  & {\em psrc} & the actual source process number of received message. \\
\hline
\mbox{\texttt{ out}}  & {\em ptag} & the received message tag. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 1583 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_a76f621497e4fb642ac140fce31a11662}\label{parallel_8h_a76f621497e4fb642ac140fce31a11662}} 
\index{parallel.h@{parallel.h}!PF\_PrepareLongMultiPack@{PF\_PrepareLongMultiPack}}
\index{PF\_PrepareLongMultiPack@{PF\_PrepareLongMultiPack}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_PrepareLongMultiPack()}{PF\_PrepareLongMultiPack()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Prepare\+Long\+Multi\+Pack (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Prepares for the next long-\/multi-\/pack operations on the sender.

\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 1643 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_a89a6ccb9f441cf57eaefd8b4e5f69786}\label{parallel_8h_a89a6ccb9f441cf57eaefd8b4e5f69786}} 
\index{parallel.h@{parallel.h}!PF\_LongMultiPackImpl@{PF\_LongMultiPackImpl}}
\index{PF\_LongMultiPackImpl@{PF\_LongMultiPackImpl}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_LongMultiPackImpl()}{PF\_LongMultiPackImpl()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Long\+Multi\+Pack\+Impl (\begin{DoxyParamCaption}\item[{const void $\ast$}]{buffer,  }\item[{size\+\_\+t}]{count,  }\item[{size\+\_\+t}]{e\+Size,  }\item[{M\+P\+I\+\_\+\+Datatype}]{type }\end{DoxyParamCaption})}

Adds data into the \char`\"{}long multi\char`\"{} pack buffer.


\begin{DoxyParams}{Parameters}
{\em buffer} & the pointer to the buffer storing the data to be packed. \\
\hline
{\em count} & the number of elements in the buffer. \\
\hline
{\em e\+Size} & the byte size of each element of data. \\
\hline
{\em type} & the data type of elements in the buffer. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 1662 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_ab69157e9edff8d3285d5c23115af7a52}\label{parallel_8h_ab69157e9edff8d3285d5c23115af7a52}} 
\index{parallel.h@{parallel.h}!PF\_LongMultiUnpackImpl@{PF\_LongMultiUnpackImpl}}
\index{PF\_LongMultiUnpackImpl@{PF\_LongMultiUnpackImpl}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_LongMultiUnpackImpl()}{PF\_LongMultiUnpackImpl()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Long\+Multi\+Unpack\+Impl (\begin{DoxyParamCaption}\item[{void $\ast$}]{buffer,  }\item[{size\+\_\+t}]{count,  }\item[{size\+\_\+t}]{e\+Size,  }\item[{M\+P\+I\+\_\+\+Datatype}]{type }\end{DoxyParamCaption})}

Retrieves the next data in the \char`\"{}long multi\char`\"{} pack buffer.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em buffer} & the pointer to the buffer to store the unpacked data. \\
\hline
 & {\em count} & the number of elements of data to be received. \\
\hline
 & {\em e\+Size} & the byte size of each element of data. \\
\hline
 & {\em type} & the data type of elements of data to be received. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 1721 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_a9b9cf07c7f8d8e4c954bcac06b716398}\label{parallel_8h_a9b9cf07c7f8d8e4c954bcac06b716398}} 
\index{parallel.h@{parallel.h}!PF\_LongMultiBroadcast@{PF\_LongMultiBroadcast}}
\index{PF\_LongMultiBroadcast@{PF\_LongMultiBroadcast}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_LongMultiBroadcast()}{PF\_LongMultiBroadcast()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Long\+Multi\+Broadcast (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Broadcasts the contents in the \char`\"{}long multi\char`\"{} pack buffer on the master to those on the slaves.

Example\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordflow}{if} ( PF.me == MASTER ) \{}
\DoxyCodeLine{  \mbox{\hyperlink{mpi_8c_a76f621497e4fb642ac140fce31a11662}{PF\_PrepareLongMultiPack}}();}
\DoxyCodeLine{  \textcolor{comment}{// Packing operations here...}}
\DoxyCodeLine{\}}
\DoxyCodeLine{\mbox{\hyperlink{mpi_8c_a9b9cf07c7f8d8e4c954bcac06b716398}{PF\_LongMultiBroadcast}}();}
\DoxyCodeLine{\textcolor{keywordflow}{if} ( PF.me != MASTER ) \{}
\DoxyCodeLine{  \textcolor{comment}{// Unpacking operations here...}}
\DoxyCodeLine{\}}
\end{DoxyCode}


\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 1807 of file mpi.\+c.

\mbox{\Hypertarget{parallel_8h_abc56c3ae41cd94a0ee0e1c900c2ee4d3}\label{parallel_8h_abc56c3ae41cd94a0ee0e1c900c2ee4d3}} 
\index{parallel.h@{parallel.h}!PF\_EndSort@{PF\_EndSort}}
\index{PF\_EndSort@{PF\_EndSort}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_EndSort()}{PF\_EndSort()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+End\+Sort (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Finishes a master sorting with collecting terms from slaves. Called by \mbox{\hyperlink{declare_8h_a541b2f6087dafa3f4c964d1a7dc055f0}{End\+Sort()}}.

If this is not the masterprocess, just initialize the sendbuffers and return 0, else \mbox{\hyperlink{parallel_8c_abc56c3ae41cd94a0ee0e1c900c2ee4d3}{P\+F\+\_\+\+End\+Sort()}} sends the rest of the terms in the sendbuffer to the next slave and a dummy message to all slaves with tag P\+F\+\_\+\+E\+N\+D\+S\+O\+R\+T\+\_\+\+M\+S\+G\+T\+AG. Then it receives the sorted terms, sorts them using a recursive \textquotesingle{}tree of losers\textquotesingle{} (P\+F\+\_\+\+Get\+Loser()) and writes them to the outputfile.

\begin{DoxyReturn}{Returns}
1 if the sorting on the master was done. 0 if \mbox{\hyperlink{declare_8h_a541b2f6087dafa3f4c964d1a7dc055f0}{End\+Sort()}} still must perform a regular sorting becuase it is not at the ground level or not on the master or in the sequential mode or in the In\+Parallel mode. -\/1 if an error occured.
\end{DoxyReturn}
\begin{DoxyRemark}{Remarks}
The slaves will send the sorted terms back to the master in the regular sorting (after the initialization of the send buffer in \mbox{\hyperlink{parallel_8c_abc56c3ae41cd94a0ee0e1c900c2ee4d3}{P\+F\+\_\+\+End\+Sort()}}). See \mbox{\hyperlink{declare_8h_a44770ed698bf9bf084656622978cccf7}{Put\+Out()}} and \mbox{\hyperlink{declare_8h_aceb7b03b4b4e8ec7c2e0f943545b5000}{Flush\+Out()}}.

This function has been changed such that when it returns 1, A\+M.\+S0-\/$>$Terms\+Left is set correctly. But A\+M.\+S0-\/$>$Gen\+Terms is not set\+: it will be set after collecting the statistics from the slaves at the end of \mbox{\hyperlink{parallel_8c_adc0832dd4fa1cb53dd551672884bcec4}{P\+F\+\_\+\+Processor()}}. (TU 30 Jun 2011) 
\end{DoxyRemark}


Definition at line 864 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_a251429c8d75d8bf51da5c435c5a21599}\label{parallel_8h_a251429c8d75d8bf51da5c435c5a21599}} 
\index{parallel.h@{parallel.h}!PF\_Deferred@{PF\_Deferred}}
\index{PF\_Deferred@{PF\_Deferred}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_Deferred()}{PF\_Deferred()}}
{\footnotesize\ttfamily W\+O\+RD P\+F\+\_\+\+Deferred (\begin{DoxyParamCaption}\item[{W\+O\+RD $\ast$}]{term,  }\item[{W\+O\+RD}]{level }\end{DoxyParamCaption})}

Replaces \mbox{\hyperlink{declare_8h_aff571680b6ebbaed4fcd87b1bcf8c983}{Deferred()}} on the slaves.


\begin{DoxyParams}{Parameters}
{\em term} & the term that must be multiplied by the contents of the current bracket. \\
\hline
{\em level} & the compiler level. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 1208 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_a259893ecbbbc561d509750c7b778eb8d}\label{parallel_8h_a259893ecbbbc561d509750c7b778eb8d}} 
\index{parallel.h@{parallel.h}!PF\_Processor@{PF\_Processor}}
\index{PF\_Processor@{PF\_Processor}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_Processor()}{PF\_Processor()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Processor (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structExPrEsSiOn}{E\+X\+P\+R\+E\+S\+S\+I\+O\+NS}}}]{e,  }\item[{W\+O\+RD}]{i,  }\item[{W\+O\+RD}]{Last\+Expression }\end{DoxyParamCaption})}

Replaces parts of \mbox{\hyperlink{proces_8c_a338d382ea9b88287382c9cfb22707735}{Processor()}} on the masters and slaves. On the master \mbox{\hyperlink{parallel_8c_adc0832dd4fa1cb53dd551672884bcec4}{P\+F\+\_\+\+Processor()}} is responsible for proper distribution of terms from the input file to the slaves. On the slaves it calls \mbox{\hyperlink{declare_8h_a7852613b76ed504381c6dab10c47714b}{Generator()}} for all the terms that this process gets, but P\+F\+\_\+\+Get\+Term() gets terms from the master (not directly from infile).


\begin{DoxyParams}{Parameters}
{\em e} & The pointer to the current expression. \\
\hline
{\em i} & The index for the current expression. \\
\hline
{\em Last\+Expression} & The flag indicating whether it is the last expression. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 1540 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_a6143fc9b7bb91f2516875dab935f5420}\label{parallel_8h_a6143fc9b7bb91f2516875dab935f5420}} 
\index{parallel.h@{parallel.h}!PF\_Init@{PF\_Init}}
\index{PF\_Init@{PF\_Init}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_Init()}{PF\_Init()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Init (\begin{DoxyParamCaption}\item[{int $\ast$}]{argc,  }\item[{char $\ast$$\ast$$\ast$}]{argv }\end{DoxyParamCaption})}

All the library independent stuff. \mbox{\hyperlink{parallel_8c_aca525e88c2b245234727eb51fad506be}{P\+F\+\_\+\+Lib\+Init()}} should do all library dependent initializations.


\begin{DoxyParams}{Parameters}
{\em argc} & pointer to the number of arguments. \\
\hline
{\em argv} & pointer to the arguments. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 1953 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_ad46dc1302f44a7c9f08bcd7f88ec3f42}\label{parallel_8h_ad46dc1302f44a7c9f08bcd7f88ec3f42}} 
\index{parallel.h@{parallel.h}!PF\_Terminate@{PF\_Terminate}}
\index{PF\_Terminate@{PF\_Terminate}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_Terminate()}{PF\_Terminate()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Terminate (\begin{DoxyParamCaption}\item[{int}]{errorcode }\end{DoxyParamCaption})}

Performs the finalization of Par\+F\+O\+RM. To be called by Terminate().


\begin{DoxyParams}{Parameters}
{\em error} & an error code. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 2047 of file parallel.\+c.



References P\+F\+\_\+\+Lib\+Terminate().

\mbox{\Hypertarget{parallel_8h_a4acf9c6814b057fdc96bd1e9efdd3910}\label{parallel_8h_a4acf9c6814b057fdc96bd1e9efdd3910}} 
\index{parallel.h@{parallel.h}!PF\_GetSlaveTimes@{PF\_GetSlaveTimes}}
\index{PF\_GetSlaveTimes@{PF\_GetSlaveTimes}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_GetSlaveTimes()}{PF\_GetSlaveTimes()}}
{\footnotesize\ttfamily L\+O\+NG P\+F\+\_\+\+Get\+Slave\+Times (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Returns the total C\+PU time of all slaves together. This function must be called on the master and all slaves.

\begin{DoxyReturn}{Returns}
on the master, the sum of C\+PU times on all slaves. 
\end{DoxyReturn}


Definition at line 2063 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_ab3ad9794f97bba7e6d0c7517ee4d8fe5}\label{parallel_8h_ab3ad9794f97bba7e6d0c7517ee4d8fe5}} 
\index{parallel.h@{parallel.h}!PF\_BroadcastNumber@{PF\_BroadcastNumber}}
\index{PF\_BroadcastNumber@{PF\_BroadcastNumber}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_BroadcastNumber()}{PF\_BroadcastNumber()}}
{\footnotesize\ttfamily L\+O\+NG P\+F\+\_\+\+Broadcast\+Number (\begin{DoxyParamCaption}\item[{L\+O\+NG}]{x }\end{DoxyParamCaption})}

Broadcasts a L\+O\+NG value from the master to the all slaves.


\begin{DoxyParams}{Parameters}
{\em x} & the number to be broadcast (set on the master). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the synchronised result. 
\end{DoxyReturn}


Definition at line 2083 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_a706428ee6daa7eb20ffb427c50e76927}\label{parallel_8h_a706428ee6daa7eb20ffb427c50e76927}} 
\index{parallel.h@{parallel.h}!PF\_BroadcastBuffer@{PF\_BroadcastBuffer}}
\index{PF\_BroadcastBuffer@{PF\_BroadcastBuffer}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_BroadcastBuffer()}{PF\_BroadcastBuffer()}}
{\footnotesize\ttfamily void P\+F\+\_\+\+Broadcast\+Buffer (\begin{DoxyParamCaption}\item[{W\+O\+RD $\ast$$\ast$}]{buffer,  }\item[{L\+O\+NG $\ast$}]{length }\end{DoxyParamCaption})}

Broadcasts a buffer from the master to all the slaves.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em buffer} & on the master, the buffer to be broadcast. On the slaves, the buffer will be allocated if the length is greater than 0. The caller must free it.\\
\hline
\mbox{\texttt{ in,out}}  & {\em length} & on the master, the length of the buffer to be broadcast. On the slaves, it receives the length of transfered buffer. The actual transfer occurs only if the length is greater than 0. \\
\hline
\end{DoxyParams}


Definition at line 2110 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_a40dce95d4b6cc3f99f2909d3e66f05ff}\label{parallel_8h_a40dce95d4b6cc3f99f2909d3e66f05ff}} 
\index{parallel.h@{parallel.h}!PF\_BroadcastString@{PF\_BroadcastString}}
\index{PF\_BroadcastString@{PF\_BroadcastString}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_BroadcastString()}{PF\_BroadcastString()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Broadcast\+String (\begin{DoxyParamCaption}\item[{U\+B\+Y\+TE $\ast$}]{str }\end{DoxyParamCaption})}

Broadcasts a string from the master to all slaves.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em str} & The pointer to a null-\/terminated string. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 2152 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_a0d811cf4cdcebd127f6410d486e06859}\label{parallel_8h_a0d811cf4cdcebd127f6410d486e06859}} 
\index{parallel.h@{parallel.h}!PF\_BroadcastPreDollar@{PF\_BroadcastPreDollar}}
\index{PF\_BroadcastPreDollar@{PF\_BroadcastPreDollar}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_BroadcastPreDollar()}{PF\_BroadcastPreDollar()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Broadcast\+Pre\+Dollar (\begin{DoxyParamCaption}\item[{W\+O\+RD $\ast$$\ast$}]{dbuffer,  }\item[{L\+O\+NG $\ast$}]{newsize,  }\item[{int $\ast$}]{numterms }\end{DoxyParamCaption})}

Broadcasts dollar variables set as a preprocessor variables. Only the master is able to make an assignment like \#\$a=g; where g is an expression\+: only the master has an access to the expression. So, the master broadcasts the result to slaves.

The result is in $\ast$dbuffer of the size is $\ast$newsize (in number of W\+O\+R\+Ds), +1 for trailing zero. For slave newsize and numterms are output parameters.


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in,out}}  & {\em dbuffer} & the buffer for a dollar variable. \\
\hline
\mbox{\texttt{ in,out}}  & {\em newsize} & the size of the dollar variable in W\+O\+R\+Ds. \\
\hline
\mbox{\texttt{ in,out}}  & {\em numterms} & the number of terms in the dollar variable. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 2207 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_a7bb2cc34f85ec08289eb6be4a16d29d1}\label{parallel_8h_a7bb2cc34f85ec08289eb6be4a16d29d1}} 
\index{parallel.h@{parallel.h}!PF\_CollectModifiedDollars@{PF\_CollectModifiedDollars}}
\index{PF\_CollectModifiedDollars@{PF\_CollectModifiedDollars}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_CollectModifiedDollars()}{PF\_CollectModifiedDollars()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Collect\+Modified\+Dollars (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Combines modified dollar variables on the all slaves, and store them into those on the master.

The potentially modified dollar variables are given in Pot\+Moddollars, and the number of them is given by Num\+Pot\+Moddollars.

The current module could be executed in parallel only if all potentially modified variables are listed in Mod\+Optdollars, otherwise the module was switched to the sequential mode.

\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 2495 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_a5efb548dd947c719005be2da0d79e114}\label{parallel_8h_a5efb548dd947c719005be2da0d79e114}} 
\index{parallel.h@{parallel.h}!PF\_BroadcastModifiedDollars@{PF\_BroadcastModifiedDollars}}
\index{PF\_BroadcastModifiedDollars@{PF\_BroadcastModifiedDollars}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_BroadcastModifiedDollars()}{PF\_BroadcastModifiedDollars()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Broadcast\+Modified\+Dollars (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Broadcasts modified dollar variables on the master to the all slaves.

The potentially modified dollar variables are given in Pot\+Moddollars, and the number of them is given by Num\+Pot\+Moddollars.

The current module could be executed in parallel only if all potentially modified variables are listed in Mod\+Optdollars, otherwise the module was switched to the sequential mode. In either cases, we need to broadcast them.

\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 2774 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_a27b88f27e555759116cf5bf20931ae2a}\label{parallel_8h_a27b88f27e555759116cf5bf20931ae2a}} 
\index{parallel.h@{parallel.h}!PF\_BroadcastRedefinedPreVars@{PF\_BroadcastRedefinedPreVars}}
\index{PF\_BroadcastRedefinedPreVars@{PF\_BroadcastRedefinedPreVars}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_BroadcastRedefinedPreVars()}{PF\_BroadcastRedefinedPreVars()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Broadcast\+Redefined\+Pre\+Vars (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Broadcasts preprocessor variables, which were changed by the Redefine statements in the current module, from the master to the all slaves.

The potentially redefined preprocessor variables are given in A\+C.\+pfirstnum, and the number of them is given by A\+C.\+numpfirstnum. For an actually redefined variable, the corresponding value in A\+C.\+inputnumbers is non-\/negative.

\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 2991 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_a6eca5eb317338d7f924c1b30efa3bb04}\label{parallel_8h_a6eca5eb317338d7f924c1b30efa3bb04}} 
\index{parallel.h@{parallel.h}!PF\_BroadcastCBuf@{PF\_BroadcastCBuf}}
\index{PF\_BroadcastCBuf@{PF\_BroadcastCBuf}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_BroadcastCBuf()}{PF\_BroadcastCBuf()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Broadcast\+C\+Buf (\begin{DoxyParamCaption}\item[{int}]{bufnum }\end{DoxyParamCaption})}

Broadcasts a compiler buffer specified by {\itshape bufnum} from the master to the all slaves.


\begin{DoxyParams}{Parameters}
{\em bufnum} & The index of the compiler buffer to be broadcast. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 3133 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_a4e4d2578b246a72a2b5ae83264e0c1eb}\label{parallel_8h_a4e4d2578b246a72a2b5ae83264e0c1eb}} 
\index{parallel.h@{parallel.h}!PF\_BroadcastExpFlags@{PF\_BroadcastExpFlags}}
\index{PF\_BroadcastExpFlags@{PF\_BroadcastExpFlags}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_BroadcastExpFlags()}{PF\_BroadcastExpFlags()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Broadcast\+Exp\+Flags (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Broadcasts A\+R.\+expflags and several properties of each expression, e.\+g., e-\/$>$vflags, from the master to all slaves.

\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 3244 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_aef563d0e7aceb926dc0c91cc38267b79}\label{parallel_8h_aef563d0e7aceb926dc0c91cc38267b79}} 
\index{parallel.h@{parallel.h}!PF\_BroadcastExpr@{PF\_BroadcastExpr}}
\index{PF\_BroadcastExpr@{PF\_BroadcastExpr}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_BroadcastExpr()}{PF\_BroadcastExpr()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Broadcast\+Expr (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structExPrEsSiOn}{E\+X\+P\+R\+E\+S\+S\+I\+O\+NS}}}]{e,  }\item[{\mbox{\hyperlink{structs_8h_acfdc9b730744e2cd3cdff195b7f98166}{F\+I\+L\+E\+H\+A\+N\+D\+LE}} $\ast$}]{file }\end{DoxyParamCaption})}

Broadcasts an expression from the master to the all slaves.


\begin{DoxyParams}{Parameters}
{\em e} & The expression to be broadcast. \\
\hline
{\em file} & The file in which the expression is sitting. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 3536 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_a32ed894955022778e534493c98a0fc60}\label{parallel_8h_a32ed894955022778e534493c98a0fc60}} 
\index{parallel.h@{parallel.h}!PF\_BroadcastRHS@{PF\_BroadcastRHS}}
\index{PF\_BroadcastRHS@{PF\_BroadcastRHS}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_BroadcastRHS()}{PF\_BroadcastRHS()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Broadcast\+R\+HS (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Broadcasts expressions appearing in the right-\/hand side from the master to the all slaves.

\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 3564 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_afd64e52f1ac32149986935def83fcd41}\label{parallel_8h_afd64e52f1ac32149986935def83fcd41}} 
\index{parallel.h@{parallel.h}!PF\_InParallelProcessor@{PF\_InParallelProcessor}}
\index{PF\_InParallelProcessor@{PF\_InParallelProcessor}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_InParallelProcessor()}{PF\_InParallelProcessor()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+In\+Parallel\+Processor (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Processes expressions in the In\+Parallel mode, i.\+e., dividing expressions marked by partodo over the slaves.

\begin{DoxyReturn}{Returns}
0 if OK, nonzero on error. 
\end{DoxyReturn}


Definition at line 3611 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_ad446f03e95a7832b57ee69d5d4f7e079}\label{parallel_8h_ad446f03e95a7832b57ee69d5d4f7e079}} 
\index{parallel.h@{parallel.h}!PF\_SendFile@{PF\_SendFile}}
\index{PF\_SendFile@{PF\_SendFile}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_SendFile()}{PF\_SendFile()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Send\+File (\begin{DoxyParamCaption}\item[{int}]{to,  }\item[{F\+I\+LE $\ast$}]{fd }\end{DoxyParamCaption})}

Sends a file to the process specified by {\itshape to}.


\begin{DoxyParams}{Parameters}
{\em to} & the destination process number. \\
\hline
{\em fd} & the file to be sent. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the size of sent data in bytes, or -\/1 on error. 
\end{DoxyReturn}


Definition at line 4207 of file parallel.\+c.



References P\+F\+\_\+\+Raw\+Send().

\mbox{\Hypertarget{parallel_8h_a9431f495c0a0264e23c118bd7c9c815a}\label{parallel_8h_a9431f495c0a0264e23c118bd7c9c815a}} 
\index{parallel.h@{parallel.h}!PF\_RecvFile@{PF\_RecvFile}}
\index{PF\_RecvFile@{PF\_RecvFile}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_RecvFile()}{PF\_RecvFile()}}
{\footnotesize\ttfamily int P\+F\+\_\+\+Recv\+File (\begin{DoxyParamCaption}\item[{int}]{from,  }\item[{F\+I\+LE $\ast$}]{fd }\end{DoxyParamCaption})}

Receives a file from the process specified by {\itshape from}.


\begin{DoxyParams}{Parameters}
{\em from} & the source process number. \\
\hline
{\em fd} & the file to save the received data. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the size of received data in bytes, or -\/1 on error. 
\end{DoxyReturn}


Definition at line 4245 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_ad3e04b83427086402644920543c2859e}\label{parallel_8h_ad3e04b83427086402644920543c2859e}} 
\index{parallel.h@{parallel.h}!PF\_MLock@{PF\_MLock}}
\index{PF\_MLock@{PF\_MLock}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_MLock()}{PF\_MLock()}}
{\footnotesize\ttfamily void P\+F\+\_\+\+M\+Lock (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

A function called by M\+L\+O\+C\+K(\+Error\+Message\+Lock) for slaves. 

Definition at line 4326 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_a14f85f4f370b1b4aa22c7b959af56de5}\label{parallel_8h_a14f85f4f370b1b4aa22c7b959af56de5}} 
\index{parallel.h@{parallel.h}!PF\_MUnlock@{PF\_MUnlock}}
\index{PF\_MUnlock@{PF\_MUnlock}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_MUnlock()}{PF\_MUnlock()}}
{\footnotesize\ttfamily void P\+F\+\_\+\+M\+Unlock (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

A function called by M\+U\+N\+L\+O\+C\+K(\+Error\+Message\+Lock) for slaves. 

Definition at line 4342 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_aaad35376d5d5390f7b019ba1c3c4e48f}\label{parallel_8h_aaad35376d5d5390f7b019ba1c3c4e48f}} 
\index{parallel.h@{parallel.h}!PF\_WriteFileToFile@{PF\_WriteFileToFile}}
\index{PF\_WriteFileToFile@{PF\_WriteFileToFile}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_WriteFileToFile()}{PF\_WriteFileToFile()}}
{\footnotesize\ttfamily L\+O\+NG P\+F\+\_\+\+Write\+File\+To\+File (\begin{DoxyParamCaption}\item[{int}]{handle,  }\item[{U\+B\+Y\+TE $\ast$}]{buffer,  }\item[{L\+O\+NG}]{size }\end{DoxyParamCaption})}

Replaces Write\+File\+To\+File() on the master and slaves.

It copies the given buffer into internal buffers if called between M\+L\+O\+C\+K(\+Error\+Message\+Lock) and M\+U\+N\+L\+O\+C\+K(\+Error\+Message\+Lock) for slaves and handle is Std\+Out or Log\+Handle, otherwise calls Write\+File\+To\+File().


\begin{DoxyParams}{Parameters}
{\em handle} & a file handle that specifies the output. \\
\hline
{\em buffer} & a pointer to the source buffer containing the data to be written. \\
\hline
{\em size} & the size of data to be written in bytes. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the actual size of data written to the output in bytes. 
\end{DoxyReturn}


Definition at line 4371 of file parallel.\+c.

\mbox{\Hypertarget{parallel_8h_aaa6f2290ae527132b557e572636a7a20}\label{parallel_8h_aaa6f2290ae527132b557e572636a7a20}} 
\index{parallel.h@{parallel.h}!PF\_FlushStdOutBuffer@{PF\_FlushStdOutBuffer}}
\index{PF\_FlushStdOutBuffer@{PF\_FlushStdOutBuffer}!parallel.h@{parallel.h}}
\doxysubsubsection{\texorpdfstring{PF\_FlushStdOutBuffer()}{PF\_FlushStdOutBuffer()}}
{\footnotesize\ttfamily void P\+F\+\_\+\+Flush\+Std\+Out\+Buffer (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}

Explicitly Flushes the buffer for the standard output on the master, which is used if P\+F\+\_\+\+E\+N\+A\+B\+L\+E\+\_\+\+S\+T\+D\+O\+U\+T\+\_\+\+B\+U\+F\+F\+E\+R\+I\+NG is defined. 

Definition at line 4465 of file parallel.\+c.

