\hypertarget{_algorithm_preconditions_8h}{\section{Core/\-Algorithms/\-Base/\-Algorithm\-Preconditions.h File Reference}
\label{_algorithm_preconditions_8h}\index{Core/\-Algorithms/\-Base/\-Algorithm\-Preconditions.\-h@{Core/\-Algorithms/\-Base/\-Algorithm\-Preconditions.\-h}}
}
{\ttfamily \#include $<$string$>$}\\*
{\ttfamily \#include $<$stdexcept$>$}\\*
{\ttfamily \#include $<$Core/\-Utils/\-Exception.\-h$>$}\\*
{\ttfamily \#include $<$Core/\-Algorithms/\-Base/share.\-h$>$}\\*
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{struct_s_c_i_run_1_1_core_1_1_algorithms_1_1_algorithm_input_exception}{Algorithm\-Input\-Exception}
\item 
struct \hyperlink{struct_s_c_i_run_1_1_core_1_1_algorithms_1_1_algorithm_processing_exception}{Algorithm\-Processing\-Exception}
\item 
struct \hyperlink{struct_s_c_i_run_1_1_core_1_1_algorithms_1_1_algorithm_parameter_not_found}{Algorithm\-Parameter\-Not\-Found}
\end{DoxyCompactItemize}
\subsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
\hyperlink{namespace_s_c_i_run}{S\-C\-I\-Run}
\begin{DoxyCompactList}\small\item\em S\-T\-L datatypes needed. \end{DoxyCompactList}\item 
\hyperlink{namespace_s_c_i_run_1_1_core}{S\-C\-I\-Run\-::\-Core}
\item 
\hyperlink{namespace_s_c_i_run_1_1_core_1_1_algorithms}{S\-C\-I\-Run\-::\-Core\-::\-Algorithms}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{_algorithm_preconditions_8h_a6ed3a0da30abb306e724aeef42be538e}{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E\-\_\-\-A\-N\-D\-\_\-\-M\-E\-S\-S\-A\-G\-E}(type, message\-To\-Print, message\-For\-Error\-Object)~\{ error(message\-To\-Print); B\-O\-O\-S\-T\-\_\-\-T\-H\-R\-O\-W\-\_\-\-E\-X\-C\-E\-P\-T\-I\-O\-N(\hyperlink{struct_s_c_i_run_1_1_core_1_1_algorithms_1_1_algorithm_input_exception}{S\-C\-I\-Run\-::\-Core\-::\-Algorithms\-::\-Algorithm\-Input\-Exception}() $<$$<$ type((message\-For\-Error\-Object))); \}
\item 
\#define \hyperlink{_algorithm_preconditions_8h_add3d0da1d48d186b99a14beb808935cf}{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E}(type, message)~\hyperlink{_algorithm_preconditions_8h_a6ed3a0da30abb306e724aeef42be538e}{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E\-\_\-\-A\-N\-D\-\_\-\-M\-E\-S\-S\-A\-G\-E}(type, message, message)
\item 
\#define \hyperlink{_algorithm_preconditions_8h_a16689040392ee8cc182349ac91170982}{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R}(message)~\hyperlink{_algorithm_preconditions_8h_add3d0da1d48d186b99a14beb808935cf}{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E}(\hyperlink{namespace_s_c_i_run_1_1_core_aaf2933a5689a1039d3fe100409b8e28f}{S\-C\-I\-Run\-::\-Core\-::\-Error\-Message}, message)
\item 
\#define \hyperlink{_algorithm_preconditions_8h_a0a831cd0ed5e1a2a3006b718e739975d}{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-S\-I\-M\-P\-L\-E}(message)~B\-O\-O\-S\-T\-\_\-\-T\-H\-R\-O\-W\-\_\-\-E\-X\-C\-E\-P\-T\-I\-O\-N(\hyperlink{struct_s_c_i_run_1_1_core_1_1_algorithms_1_1_algorithm_input_exception}{S\-C\-I\-Run\-::\-Core\-::\-Algorithms\-::\-Algorithm\-Input\-Exception}() $<$$<$ \hyperlink{namespace_s_c_i_run_1_1_core_aaf2933a5689a1039d3fe100409b8e28f}{S\-C\-I\-Run\-::\-Core\-::\-Error\-Message}((message)));
\item 
\#define \hyperlink{_algorithm_preconditions_8h_a77703a12d1d46895772825e72f7f59f5}{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-R\-O\-C\-E\-S\-S\-I\-N\-G\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E}(type, message)~\{ error(message); B\-O\-O\-S\-T\-\_\-\-T\-H\-R\-O\-W\-\_\-\-E\-X\-C\-E\-P\-T\-I\-O\-N(\hyperlink{struct_s_c_i_run_1_1_core_1_1_algorithms_1_1_algorithm_processing_exception}{S\-C\-I\-Run\-::\-Core\-::\-Algorithms\-::\-Algorithm\-Processing\-Exception}() $<$$<$ type((message))); \}
\item 
\#define \hyperlink{_algorithm_preconditions_8h_ab6e869e82f70bc0a7638914ac1311dc5}{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-R\-O\-C\-E\-S\-S\-I\-N\-G\-\_\-\-E\-R\-R\-O\-R}(message)~\hyperlink{_algorithm_preconditions_8h_a77703a12d1d46895772825e72f7f59f5}{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-R\-O\-C\-E\-S\-S\-I\-N\-G\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E}(\hyperlink{namespace_s_c_i_run_1_1_core_aaf2933a5689a1039d3fe100409b8e28f}{S\-C\-I\-Run\-::\-Core\-::\-Error\-Message}, message)
\item 
\#define \hyperlink{_algorithm_preconditions_8h_acbf659f9fc4151c7ae715da83b9b00bc}{E\-N\-S\-U\-R\-E\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-T\-\_\-\-N\-U\-L\-L}(var, message)~if (!(var)) \hyperlink{_algorithm_preconditions_8h_add3d0da1d48d186b99a14beb808935cf}{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E}(\hyperlink{namespace_s_c_i_run_1_1_core_ae4157118aad4ac6429b5a86009b2199a}{S\-C\-I\-Run\-::\-Core\-::\-Null\-Object\-Info}, message) else (void)0
\item 
\#define \hyperlink{_algorithm_preconditions_8h_a8f3da5126953b6265ad701ebdd0c7587}{E\-N\-S\-U\-R\-E\-\_\-\-P\-O\-S\-I\-T\-I\-V\-E\-\_\-\-D\-O\-U\-B\-L\-E}(var, message)
\item 
\#define \hyperlink{_algorithm_preconditions_8h_a7f19ec56fe9a4abe690fbf25ddfce8e3}{E\-N\-S\-U\-R\-E\-\_\-\-P\-O\-S\-I\-T\-I\-V\-E\-\_\-\-I\-N\-T}(var, message)
\item 
\#define \hyperlink{_algorithm_preconditions_8h_a5f9d8547727905d9ad1e9f7cd0400043}{E\-N\-S\-U\-R\-E\-\_\-\-F\-I\-L\-E\-\_\-\-E\-X\-I\-S\-T\-S}(filename)
\end{DoxyCompactItemize}


\subsection{Macro Definition Documentation}
\hypertarget{_algorithm_preconditions_8h_acbf659f9fc4151c7ae715da83b9b00bc}{\index{Algorithm\-Preconditions.\-h@{Algorithm\-Preconditions.\-h}!E\-N\-S\-U\-R\-E\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-T\-\_\-\-N\-U\-L\-L@{E\-N\-S\-U\-R\-E\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-T\-\_\-\-N\-U\-L\-L}}
\index{E\-N\-S\-U\-R\-E\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-T\-\_\-\-N\-U\-L\-L@{E\-N\-S\-U\-R\-E\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-T\-\_\-\-N\-U\-L\-L}!AlgorithmPreconditions.h@{Algorithm\-Preconditions.\-h}}
\subsubsection[{E\-N\-S\-U\-R\-E\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-T\-\_\-\-N\-U\-L\-L}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\-N\-S\-U\-R\-E\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-N\-O\-T\-\_\-\-N\-U\-L\-L(
\begin{DoxyParamCaption}
\item[{}]{var, }
\item[{}]{message}
\end{DoxyParamCaption}
)~if (!(var)) {\bf T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E}({\bf S\-C\-I\-Run\-::\-Core\-::\-Null\-Object\-Info}, message) else (void)0}}\label{_algorithm_preconditions_8h_acbf659f9fc4151c7ae715da83b9b00bc}
\hypertarget{_algorithm_preconditions_8h_a5f9d8547727905d9ad1e9f7cd0400043}{\index{Algorithm\-Preconditions.\-h@{Algorithm\-Preconditions.\-h}!E\-N\-S\-U\-R\-E\-\_\-\-F\-I\-L\-E\-\_\-\-E\-X\-I\-S\-T\-S@{E\-N\-S\-U\-R\-E\-\_\-\-F\-I\-L\-E\-\_\-\-E\-X\-I\-S\-T\-S}}
\index{E\-N\-S\-U\-R\-E\-\_\-\-F\-I\-L\-E\-\_\-\-E\-X\-I\-S\-T\-S@{E\-N\-S\-U\-R\-E\-\_\-\-F\-I\-L\-E\-\_\-\-E\-X\-I\-S\-T\-S}!AlgorithmPreconditions.h@{Algorithm\-Preconditions.\-h}}
\subsubsection[{E\-N\-S\-U\-R\-E\-\_\-\-F\-I\-L\-E\-\_\-\-E\-X\-I\-S\-T\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\-N\-S\-U\-R\-E\-\_\-\-F\-I\-L\-E\-\_\-\-E\-X\-I\-S\-T\-S(
\begin{DoxyParamCaption}
\item[{}]{filename}
\end{DoxyParamCaption}
)}}\label{_algorithm_preconditions_8h_a5f9d8547727905d9ad1e9f7cd0400043}
{\bfseries Value\-:}
\begin{DoxyCode}
\textcolor{keywordflow}{if} (!boost::filesystem::exists(filename))\hyperlink{_algorithm_preconditions_8h_add3d0da1d48d186b99a14beb808935cf}{\(\backslash\)}
\hyperlink{_algorithm_preconditions_8h_add3d0da1d48d186b99a14beb808935cf}{  THROW\_ALGORITHM\_INPUT\_ERROR\_WITH\_TYPE}(
      \hyperlink{namespace_s_c_i_run_1_1_core_a65262e274fccd245f15b67432a742b1f}{FileNotFound}, std::string(\textcolor{stringliteral}{"File not found: ("}) + (filename.size() != 0 ? filename : \textcolor{stringliteral}{"<no file
       set>"}) + \textcolor{stringliteral}{")"}) \(\backslash\)
  else (\textcolor{keywordtype}{void})0
\end{DoxyCode}
\hypertarget{_algorithm_preconditions_8h_a8f3da5126953b6265ad701ebdd0c7587}{\index{Algorithm\-Preconditions.\-h@{Algorithm\-Preconditions.\-h}!E\-N\-S\-U\-R\-E\-\_\-\-P\-O\-S\-I\-T\-I\-V\-E\-\_\-\-D\-O\-U\-B\-L\-E@{E\-N\-S\-U\-R\-E\-\_\-\-P\-O\-S\-I\-T\-I\-V\-E\-\_\-\-D\-O\-U\-B\-L\-E}}
\index{E\-N\-S\-U\-R\-E\-\_\-\-P\-O\-S\-I\-T\-I\-V\-E\-\_\-\-D\-O\-U\-B\-L\-E@{E\-N\-S\-U\-R\-E\-\_\-\-P\-O\-S\-I\-T\-I\-V\-E\-\_\-\-D\-O\-U\-B\-L\-E}!AlgorithmPreconditions.h@{Algorithm\-Preconditions.\-h}}
\subsubsection[{E\-N\-S\-U\-R\-E\-\_\-\-P\-O\-S\-I\-T\-I\-V\-E\-\_\-\-D\-O\-U\-B\-L\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\-N\-S\-U\-R\-E\-\_\-\-P\-O\-S\-I\-T\-I\-V\-E\-\_\-\-D\-O\-U\-B\-L\-E(
\begin{DoxyParamCaption}
\item[{}]{var, }
\item[{}]{message}
\end{DoxyParamCaption}
)}}\label{_algorithm_preconditions_8h_a8f3da5126953b6265ad701ebdd0c7587}
{\bfseries Value\-:}
\begin{DoxyCode}
\textcolor{keywordflow}{if} ((var) <= 0) \hyperlink{_algorithm_preconditions_8h_a6ed3a0da30abb306e724aeef42be538e}{\(\backslash\)}
\hyperlink{_algorithm_preconditions_8h_a6ed3a0da30abb306e724aeef42be538e}{  THROW\_ALGORITHM\_INPUT\_ERROR\_WITH\_TYPE\_AND\_MESSAGE}(
      \hyperlink{namespace_s_c_i_run_1_1_core_a035fabf854d9ce03fdb946bdbeb4a012}{DoubleOutOfRangeInfo}, message, \(\backslash\)
    DoubleOutOfRangeInfo::value\_type( \(\backslash\)
    std::string(message), \(\backslash\)
    var, \(\backslash\)
    boost::numeric::interval<double>(0, std::numeric\_limits<double>::infinity()))) \(\backslash\)
    else (\textcolor{keywordtype}{void})0
\end{DoxyCode}
\hypertarget{_algorithm_preconditions_8h_a7f19ec56fe9a4abe690fbf25ddfce8e3}{\index{Algorithm\-Preconditions.\-h@{Algorithm\-Preconditions.\-h}!E\-N\-S\-U\-R\-E\-\_\-\-P\-O\-S\-I\-T\-I\-V\-E\-\_\-\-I\-N\-T@{E\-N\-S\-U\-R\-E\-\_\-\-P\-O\-S\-I\-T\-I\-V\-E\-\_\-\-I\-N\-T}}
\index{E\-N\-S\-U\-R\-E\-\_\-\-P\-O\-S\-I\-T\-I\-V\-E\-\_\-\-I\-N\-T@{E\-N\-S\-U\-R\-E\-\_\-\-P\-O\-S\-I\-T\-I\-V\-E\-\_\-\-I\-N\-T}!AlgorithmPreconditions.h@{Algorithm\-Preconditions.\-h}}
\subsubsection[{E\-N\-S\-U\-R\-E\-\_\-\-P\-O\-S\-I\-T\-I\-V\-E\-\_\-\-I\-N\-T}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\-N\-S\-U\-R\-E\-\_\-\-P\-O\-S\-I\-T\-I\-V\-E\-\_\-\-I\-N\-T(
\begin{DoxyParamCaption}
\item[{}]{var, }
\item[{}]{message}
\end{DoxyParamCaption}
)}}\label{_algorithm_preconditions_8h_a7f19ec56fe9a4abe690fbf25ddfce8e3}
{\bfseries Value\-:}
\begin{DoxyCode}
\textcolor{keywordflow}{if} ((var) <= 0) \hyperlink{_algorithm_preconditions_8h_a6ed3a0da30abb306e724aeef42be538e}{\(\backslash\)}
\hyperlink{_algorithm_preconditions_8h_a6ed3a0da30abb306e724aeef42be538e}{    THROW\_ALGORITHM\_INPUT\_ERROR\_WITH\_TYPE\_AND\_MESSAGE}(
      \hyperlink{namespace_s_c_i_run_1_1_core_a5fda86ab36a790e050e09b751de4443f}{IntOutOfRangeInfo}, message, \(\backslash\)
    IntOutOfRangeInfo::value\_type( \(\backslash\)
    std::string(message), \(\backslash\)
    var, \(\backslash\)
    boost::numeric::interval<int>(0, std::numeric\_limits<int>::infinity()))) \(\backslash\)
    else (\textcolor{keywordtype}{void})0
\end{DoxyCode}
\hypertarget{_algorithm_preconditions_8h_a16689040392ee8cc182349ac91170982}{\index{Algorithm\-Preconditions.\-h@{Algorithm\-Preconditions.\-h}!T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R@{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R}}
\index{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R@{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R}!AlgorithmPreconditions.h@{Algorithm\-Preconditions.\-h}}
\subsubsection[{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R(
\begin{DoxyParamCaption}
\item[{}]{message}
\end{DoxyParamCaption}
)~{\bf T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E}({\bf S\-C\-I\-Run\-::\-Core\-::\-Error\-Message}, message)}}\label{_algorithm_preconditions_8h_a16689040392ee8cc182349ac91170982}
\hypertarget{_algorithm_preconditions_8h_a0a831cd0ed5e1a2a3006b718e739975d}{\index{Algorithm\-Preconditions.\-h@{Algorithm\-Preconditions.\-h}!T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-S\-I\-M\-P\-L\-E@{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-S\-I\-M\-P\-L\-E}}
\index{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-S\-I\-M\-P\-L\-E@{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-S\-I\-M\-P\-L\-E}!AlgorithmPreconditions.h@{Algorithm\-Preconditions.\-h}}
\subsubsection[{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-S\-I\-M\-P\-L\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-S\-I\-M\-P\-L\-E(
\begin{DoxyParamCaption}
\item[{}]{message}
\end{DoxyParamCaption}
)~B\-O\-O\-S\-T\-\_\-\-T\-H\-R\-O\-W\-\_\-\-E\-X\-C\-E\-P\-T\-I\-O\-N({\bf S\-C\-I\-Run\-::\-Core\-::\-Algorithms\-::\-Algorithm\-Input\-Exception}() $<$$<$ {\bf S\-C\-I\-Run\-::\-Core\-::\-Error\-Message}((message)));}}\label{_algorithm_preconditions_8h_a0a831cd0ed5e1a2a3006b718e739975d}
\hypertarget{_algorithm_preconditions_8h_add3d0da1d48d186b99a14beb808935cf}{\index{Algorithm\-Preconditions.\-h@{Algorithm\-Preconditions.\-h}!T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E@{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E}}
\index{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E@{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E}!AlgorithmPreconditions.h@{Algorithm\-Preconditions.\-h}}
\subsubsection[{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E(
\begin{DoxyParamCaption}
\item[{}]{type, }
\item[{}]{message}
\end{DoxyParamCaption}
)~{\bf T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E\-\_\-\-A\-N\-D\-\_\-\-M\-E\-S\-S\-A\-G\-E}(type, message, message)}}\label{_algorithm_preconditions_8h_add3d0da1d48d186b99a14beb808935cf}
\hypertarget{_algorithm_preconditions_8h_a6ed3a0da30abb306e724aeef42be538e}{\index{Algorithm\-Preconditions.\-h@{Algorithm\-Preconditions.\-h}!T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E\-\_\-\-A\-N\-D\-\_\-\-M\-E\-S\-S\-A\-G\-E@{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E\-\_\-\-A\-N\-D\-\_\-\-M\-E\-S\-S\-A\-G\-E}}
\index{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E\-\_\-\-A\-N\-D\-\_\-\-M\-E\-S\-S\-A\-G\-E@{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E\-\_\-\-A\-N\-D\-\_\-\-M\-E\-S\-S\-A\-G\-E}!AlgorithmPreconditions.h@{Algorithm\-Preconditions.\-h}}
\subsubsection[{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E\-\_\-\-A\-N\-D\-\_\-\-M\-E\-S\-S\-A\-G\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-I\-N\-P\-U\-T\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E\-\_\-\-A\-N\-D\-\_\-\-M\-E\-S\-S\-A\-G\-E(
\begin{DoxyParamCaption}
\item[{}]{type, }
\item[{}]{message\-To\-Print, }
\item[{}]{message\-For\-Error\-Object}
\end{DoxyParamCaption}
)~\{ error(message\-To\-Print); B\-O\-O\-S\-T\-\_\-\-T\-H\-R\-O\-W\-\_\-\-E\-X\-C\-E\-P\-T\-I\-O\-N({\bf S\-C\-I\-Run\-::\-Core\-::\-Algorithms\-::\-Algorithm\-Input\-Exception}() $<$$<$ type((message\-For\-Error\-Object))); \}}}\label{_algorithm_preconditions_8h_a6ed3a0da30abb306e724aeef42be538e}
\hypertarget{_algorithm_preconditions_8h_ab6e869e82f70bc0a7638914ac1311dc5}{\index{Algorithm\-Preconditions.\-h@{Algorithm\-Preconditions.\-h}!T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-R\-O\-C\-E\-S\-S\-I\-N\-G\-\_\-\-E\-R\-R\-O\-R@{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-R\-O\-C\-E\-S\-S\-I\-N\-G\-\_\-\-E\-R\-R\-O\-R}}
\index{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-R\-O\-C\-E\-S\-S\-I\-N\-G\-\_\-\-E\-R\-R\-O\-R@{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-R\-O\-C\-E\-S\-S\-I\-N\-G\-\_\-\-E\-R\-R\-O\-R}!AlgorithmPreconditions.h@{Algorithm\-Preconditions.\-h}}
\subsubsection[{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-R\-O\-C\-E\-S\-S\-I\-N\-G\-\_\-\-E\-R\-R\-O\-R}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-R\-O\-C\-E\-S\-S\-I\-N\-G\-\_\-\-E\-R\-R\-O\-R(
\begin{DoxyParamCaption}
\item[{}]{message}
\end{DoxyParamCaption}
)~{\bf T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-R\-O\-C\-E\-S\-S\-I\-N\-G\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E}({\bf S\-C\-I\-Run\-::\-Core\-::\-Error\-Message}, message)}}\label{_algorithm_preconditions_8h_ab6e869e82f70bc0a7638914ac1311dc5}
\hypertarget{_algorithm_preconditions_8h_a77703a12d1d46895772825e72f7f59f5}{\index{Algorithm\-Preconditions.\-h@{Algorithm\-Preconditions.\-h}!T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-R\-O\-C\-E\-S\-S\-I\-N\-G\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E@{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-R\-O\-C\-E\-S\-S\-I\-N\-G\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E}}
\index{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-R\-O\-C\-E\-S\-S\-I\-N\-G\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E@{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-R\-O\-C\-E\-S\-S\-I\-N\-G\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E}!AlgorithmPreconditions.h@{Algorithm\-Preconditions.\-h}}
\subsubsection[{T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-R\-O\-C\-E\-S\-S\-I\-N\-G\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E}]{\setlength{\rightskip}{0pt plus 5cm}\#define T\-H\-R\-O\-W\-\_\-\-A\-L\-G\-O\-R\-I\-T\-H\-M\-\_\-\-P\-R\-O\-C\-E\-S\-S\-I\-N\-G\-\_\-\-E\-R\-R\-O\-R\-\_\-\-W\-I\-T\-H\-\_\-\-T\-Y\-P\-E(
\begin{DoxyParamCaption}
\item[{}]{type, }
\item[{}]{message}
\end{DoxyParamCaption}
)~\{ error(message); B\-O\-O\-S\-T\-\_\-\-T\-H\-R\-O\-W\-\_\-\-E\-X\-C\-E\-P\-T\-I\-O\-N({\bf S\-C\-I\-Run\-::\-Core\-::\-Algorithms\-::\-Algorithm\-Processing\-Exception}() $<$$<$ type((message))); \}}}\label{_algorithm_preconditions_8h_a77703a12d1d46895772825e72f7f59f5}
