9 #ifndef _snl_fei_Utils_hpp_ 
   10 #define _snl_fei_Utils_hpp_ 
   12 #include <fei_fwd.hpp> 
   14 #include <fei_SharedPtr.hpp> 
   41   const char* getParam(
const char* key,
 
   43            const char* 
const* paramStrings);
 
   61   const char* getParamValue(
const char* key,
 
   63           const char* 
const* paramStrings,
 
   79   const char* getParamValue(
const char* key,
 
   80           std::vector<std::string>& params,
 
  101   const char* getParamValue(
const char* key,
 
  103           const char* 
const* paramStrings,
 
  109   int getIntParamValue(
const char* key,
 
  111            const char*
const* params,
 
  117   int getDoubleParamValue(
const char* key,
 
  119         const char*
const* params,
 
  125   int getDoubleParamValue(
const char* key,
 
  126         std::vector<std::string>& params,
 
  147   const char* getParam(
const char* key,
 
  149            const char* 
const* paramStrings,
 
  169   const char* getParam(
const char* key,
 
  170            std::vector<std::string>& paramStrings,
 
  174   int storeNamedAttribute(
const char* name,
 
  176         std::vector<char*>& attributeNames,
 
  177         std::vector<void*>& attributes);
 
  180   void* retrieveNamedAttribute(
const char* name,
 
  181              std::vector<char*>& attributeNames,
 
  182              std::vector<void*>& attributes);
 
  185   void separate_string(
const char* input_string,
 
  186            const char* substring,
 
  187            const char*& before_substring,
 
  188            int& len_before_substring,
 
  189            const char*& after_substring,
 
  190            int& len_after_substring);
 
  195   unsigned leading_substring_length(
const char* 
string);
 
  208   const char* skipSeparator(
const char* paramString,
 
  214   int mergeStringLists(
char**& strings, 
int& numStrings,
 
  215            const char*
const* stringsToMerge, 
int numStringsToMerge);
 
  222                             const std::vector<int>& bcEqnNumbers);
 
  238   void copy2DBlockDiagToColumnContig(
int numBlocks,
 
  239              const int* blockSizes,
 
  240              const double*
const* values2d,
 
  242              double* colcontigvalues);
 
  247   void copy2DToColumnContig(
int numrows,
 
  249           const double*
const* values2d,
 
  251           double* colcontigvalues);
 
  254 #endif // _snl_fei_Utils_hpp_