コード例 #1
0
 inline bool check_triangular(
   const char* function,
   RealType lower,
   RealType mode,
   RealType upper,
   RealType* result, const Policy& pol)
 {
   if ((check_triangular_lower(function, lower, result, pol) == false)
     || (check_triangular_mode(function, mode, result, pol) == false)
     || (check_triangular_upper(function, upper, result, pol) == false))
   { // Some parameter not finite.
     return false;
   }
   else if (lower >= upper) // lower == upper NOT useful.
   { // lower >= upper.
     *result = policies::raise_domain_error<RealType>(
       function,
       "lower parameter is %1%, but must be less than upper!", lower, pol);
     return false;
   }
   else
   { // Check lower <= mode <= upper.
     if (mode < lower)
     {
       *result = policies::raise_domain_error<RealType>(
         function,
         "mode parameter is %1%, but must be >= than lower!", lower, pol);
       return false;
     }
     if (mode > upper)
     {
       *result = policies::raise_domain_error<RealType>(
         function,
         "mode parameter is %1%, but must be <= than upper!", upper, pol);
       return false;
     }
     return true; // All OK.
   }
 } // bool check_triangular
コード例 #2
0
ファイル: triangular.hpp プロジェクト: GDXN/fitsliberator
 inline bool check_triangular(
   const char* function,
   RealType lower,
   RealType mode,
   RealType upper,
   RealType* result, const Policy& pol)
 {
   if(check_triangular_lower(function, lower, result, pol)
     && check_triangular_mode(function, mode, result, pol)
     && check_triangular_upper(function, upper, result, pol)
     && (lower < upper) // lower == upper NOT useful.
     )
   {
     if (mode < lower)
     {
       *result = policies::raise_domain_error<RealType>(
         function,
         "mode parameter is %1%, but must be >= than lower!", lower, pol);
       return false;
     }
     if (mode > upper )
     {
       *result = policies::raise_domain_error<RealType>(
         function,
         "mode parameter is %1%, but must be <= than upper!", upper, pol);
       return false;
     }
     return true;
   }
   else
   { // upper and lower have each been checked before, so must be lower >= upper.
     *result = policies::raise_domain_error<RealType>(
       function,
       "lower parameter is %1%, but must be less than upper!", lower, pol);
     return false;
   }
 } // bool check_triangular