possible.hpp gecode/third-party/boost/numeric/interval/detail/interval_prototype.hpp gecode/third-party/boost/numeric/interval/detail/test_input.hpp /usr/include/gecode/third-party/boost/numeric/interval/compare.hpp boost boost::numeric boost::numeric::interval_lib boost::numeric::interval_lib::compare boost::numeric::interval_lib::compare::possible /*Boostinterval/compare/possible.hpptemplateimplementationfile * *Copyright2003GuillaumeMelquiond * *DistributedundertheBoostSoftwareLicense,Version1.0. *(SeeaccompanyingfileLICENSE_1_0.txtor *copyathttp://www.boost.org/LICENSE_1_0.txt) */ #ifndefBOOST_NUMERIC_INTERVAL_COMPARE_POSSIBLE_HPP #defineBOOST_NUMERIC_INTERVAL_COMPARE_POSSIBLE_HPP #include<gecode/third-party/boost/numeric/interval/detail/interval_prototype.hpp> #include<gecode/third-party/boost/numeric/interval/detail/test_input.hpp> namespaceboost{ namespacenumeric{ namespaceinterval_lib{ namespacecompare{ namespacepossible{ template<classT,classPolicies1,classPolicies2>inline booloperator<(constinterval<T,Policies1>&x,constinterval<T,Policies2>&y) { if(detail::test_input(x,y))throwcomparison_error(); returnx.lower()<y.upper(); } template<classT,classPolicies>inline booloperator<(constinterval<T,Policies>&x,constT&y) { if(detail::test_input(x,y))throwcomparison_error(); returnx.lower()<y; } template<classT,classPolicies1,classPolicies2>inline booloperator<=(constinterval<T,Policies1>&x,constinterval<T,Policies2>&y) { if(detail::test_input(x,y))throwcomparison_error(); returnx.lower()<=y.upper(); } template<classT,classPolicies>inline booloperator<=(constinterval<T,Policies>&x,constT&y) { if(detail::test_input(x,y))throwcomparison_error(); returnx.lower()<=y; } template<classT,classPolicies1,classPolicies2>inline booloperator>(constinterval<T,Policies1>&x,constinterval<T,Policies2>&y) { if(detail::test_input(x,y))throwcomparison_error(); returnx.upper()>y.lower(); } template<classT,classPolicies>inline booloperator>(constinterval<T,Policies>&x,constT&y) { if(detail::test_input(x,y))throwcomparison_error(); returnx.upper()>y; } template<classT,classPolicies1,classPolicies2>inline booloperator>=(constinterval<T,Policies1>&x,constinterval<T,Policies2>&y) { if(detail::test_input(x,y))throwcomparison_error(); returnx.upper()>=y.lower(); } template<classT,classPolicies>inline booloperator>=(constinterval<T,Policies>&x,constT&y) { if(detail::test_input(x,y))throwcomparison_error(); returnx.upper()>=y; } template<classT,classPolicies1,classPolicies2>inline booloperator==(constinterval<T,Policies1>&x,constinterval<T,Policies2>&y) { if(detail::test_input(x,y))throwcomparison_error(); returnx.lower()<=y.upper()&&x.upper()>=y.lower(); } template<classT,classPolicies>inline booloperator==(constinterval<T,Policies>&x,constT&y) { if(detail::test_input(x,y))throwcomparison_error(); returnx.lower()<=y&&x.upper()>=y; } template<classT,classPolicies1,classPolicies2>inline booloperator!=(constinterval<T,Policies1>&x,constinterval<T,Policies2>&y) { if(detail::test_input(x,y))throwcomparison_error(); returnx.lower()!=y.upper()||x.upper()!=y.lower(); } template<classT,classPolicies>inline booloperator!=(constinterval<T,Policies>&x,constT&y) { if(detail::test_input(x,y))throwcomparison_error(); returnx.lower()!=y||x.upper()!=y; } }//namespacepossible }//namespacecompare }//namespaceinterval_lib }//namespacenumeric }//namespaceboost #endif//BOOST_NUMERIC_INTERVAL_COMPARE_POSSIBLE_HPP