test_input.hpp gecode/third-party/boost/numeric/interval/detail/interval_prototype.hpp /usr/include/gecode/third-party/boost/numeric/interval/arith.hpp /usr/include/gecode/third-party/boost/numeric/interval/arith2.hpp /usr/include/gecode/third-party/boost/numeric/interval/arith3.hpp /usr/include/gecode/third-party/boost/numeric/interval/compare/certain.hpp /usr/include/gecode/third-party/boost/numeric/interval/compare/lexicographic.hpp /usr/include/gecode/third-party/boost/numeric/interval/compare/possible.hpp /usr/include/gecode/third-party/boost/numeric/interval/compare/set.hpp /usr/include/gecode/third-party/boost/numeric/interval/detail/division.hpp /usr/include/gecode/third-party/boost/numeric/interval/transc.hpp /usr/include/gecode/third-party/boost/numeric/interval/utility.hpp boost boost::numeric boost::numeric::interval_lib boost::numeric::interval_lib::user boost::numeric::interval_lib::detail /*Boostinterval/detail/test_input.hppfile * *Copyright2002HervéBrönnimann,GuillaumeMelquiond,SylvainPion * *DistributedundertheBoostSoftwareLicense,Version1.0. *(SeeaccompanyingfileLICENSE_1_0.txtor *copyathttp://www.boost.org/LICENSE_1_0.txt) */ #ifndefBOOST_NUMERIC_INTERVAL_DETAIL_TEST_INPUT_HPP #defineBOOST_NUMERIC_INTERVAL_DETAIL_TEST_INPUT_HPP #include<gecode/third-party/boost/numeric/interval/detail/interval_prototype.hpp> namespaceboost{ namespacenumeric{ namespaceinterval_lib{ namespaceuser{ template<classT>inline boolis_zero(Tconst&v){returnv==static_cast<T>(0);} template<classT>inline boolis_neg(Tconst&v){returnv<static_cast<T>(0);} template<classT>inline boolis_pos(Tconst&v){returnv>static_cast<T>(0);} }//namespaceuser namespacedetail{ template<classT,classPolicies>inline booltest_input(constinterval<T,Policies>&x){ typedeftypenamePolicies::checkingchecking; returnchecking::is_empty(x.lower(),x.upper()); } template<classT,classPolicies1,classPolicies2>inline booltest_input(constinterval<T,Policies1>&x,constinterval<T,Policies2>&y){ typedeftypenamePolicies1::checkingchecking1; typedeftypenamePolicies2::checkingchecking2; returnchecking1::is_empty(x.lower(),x.upper())|| checking2::is_empty(y.lower(),y.upper()); } template<classT,classPolicies>inline booltest_input(constT&x,constinterval<T,Policies>&y){ typedeftypenamePolicies::checkingchecking; returnchecking::is_nan(x)||checking::is_empty(y.lower(),y.upper()); } template<classT,classPolicies>inline booltest_input(constinterval<T,Policies>&x,constT&y){ typedeftypenamePolicies::checkingchecking; returnchecking::is_empty(x.lower(),x.upper())||checking::is_nan(y); } template<classT,classPolicies>inline booltest_input(constT&x){ typedeftypenamePolicies::checkingchecking; returnchecking::is_nan(x); } template<classT,classPolicies>inline booltest_input(constT&x,constT&y){ typedeftypenamePolicies::checkingchecking; returnchecking::is_nan(x)||checking::is_nan(y); } }//namespacedetail }//namespaceinterval_lib }//namespacenumeric }//namespaceboost #endif//BOOST_NUMERIC_INTERVAL_DETAIL_TEST_INPUT_HPP