certain.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::certain /*Boostinterval/compare/certain.hpptemplateimplementationfile * *Copyright2003GuillaumeMelquiond * *DistributedundertheBoostSoftwareLicense,Version1.0. *(SeeaccompanyingfileLICENSE_1_0.txtor *copyathttp://www.boost.org/LICENSE_1_0.txt) */ #ifndefBOOST_NUMERIC_INTERVAL_COMPARE_CERTAIN_HPP #defineBOOST_NUMERIC_INTERVAL_COMPARE_CERTAIN_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{ namespacecertain{ 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(); } 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()&&x.lower()==y.upper(); } template<classT,classPolicies>inline booloperator==(constinterval<T,Policies>&x,constT&y) { if(detail::test_input(x,y))throwcomparison_error(); returnx.upper()==y&&x.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()||x.lower()>y.upper(); } template<classT,classPolicies>inline booloperator!=(constinterval<T,Policies>&x,constT&y) { if(detail::test_input(x,y))throwcomparison_error(); returnx.upper()<y||x.lower()>y; } }//namespacecertain }//namespacecompare }//namespaceinterval_lib }//namespacenumeric }//namespaceboost #endif//BOOST_NUMERIC_INTERVAL_COMPARE_CERTAIN_HPP