Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 09:49:08

0001 /* Boost interval/utility.hpp template interface file
0002  *
0003  * Copyright 2013 Cromwell D. Enage
0004  *
0005  * Distributed under the Boost Software License, Version 1.0.
0006  * (See accompanying file LICENSE_1_0.txt or copy at
0007  * http://www.boost.org/LICENSE_1_0.txt)
0008  */
0009 
0010 #ifndef BOOST_NUMERIC_INTERVAL_UTILITY_FWD_HPP
0011 #define BOOST_NUMERIC_INTERVAL_UTILITY_FWD_HPP
0012 
0013 #include <boost/config.hpp>
0014 #include <boost/numeric/interval/detail/interval_prototype.hpp>
0015 #include <utility>
0016 
0017 /*
0018  * Interface of simple functions
0019  */
0020 
0021 namespace boost { namespace numeric {
0022 
0023     /*
0024      * Utility Functions
0025      */
0026 
0027     template<class T, class Policies>
0028     const T& lower(const interval<T,Policies>& x);
0029 
0030     template<class T, class Policies>
0031     const T& upper(const interval<T,Policies>& x);
0032 
0033     template<class T, class Policies>
0034     T checked_lower(const interval<T,Policies>& x);
0035 
0036     template<class T, class Policies>
0037     T width(const interval<T,Policies>& x);
0038 
0039     template<class T, class Policies>
0040     T median(const interval<T,Policies>& x);
0041 
0042     template<class T, class Policies>
0043     interval<T,Policies> widen(const interval<T,Policies>& x, const T& v);
0044 
0045     /*
0046      * Set-like operations
0047      */
0048 
0049     template <class T, class Policies>
0050     bool empty(const interval<T,Policies>& x);
0051 
0052     template <class T, class Policies>
0053     bool zero_in(const interval<T,Policies>& x);
0054 
0055     template <class T, class Policies>
0056     bool in_zero(const interval<T,Policies>& x);  // DEPRECATED
0057 
0058     template <class T, class Policies>
0059     bool in(const T& x, const interval<T,Policies>& y);
0060 
0061     template <class T, class Policies>
0062     bool
0063         subset(
0064             const interval<T,Policies>& x
0065           , const interval<T,Policies>& y
0066         );
0067 
0068     template <class T, class Policies1, class Policies2>
0069     bool
0070         proper_subset(
0071             const interval<T,Policies1>& x
0072           , const interval<T,Policies2>& y
0073         );
0074 
0075     template <class T, class Policies1, class Policies2>
0076     bool
0077         overlap(
0078             const interval<T,Policies1>& x
0079           , const interval<T,Policies2>& y
0080         );
0081 
0082     template <class T, class Policies>
0083     bool singleton(const interval<T, Policies>& x);
0084 
0085     template <class T, class Policies1, class Policies2>
0086     bool
0087         equal(
0088             const interval<T,Policies1>& x
0089           , const interval<T,Policies2>& y
0090         );
0091 
0092     template <class T, class Policies>
0093     interval<T, Policies>
0094         intersect(
0095             const interval<T,Policies>& x
0096           , const interval<T,Policies>& y
0097         );
0098 
0099     template <class T, class Policies>
0100     interval<T, Policies>
0101         hull(const interval<T,Policies>& x, const interval<T,Policies>& y);
0102 
0103     template <class T, class Policies>
0104     interval<T, Policies>
0105         hull(const interval<T,Policies>& x, const T& y);
0106 
0107     template <class T, class Policies>
0108     interval<T, Policies>
0109         hull(const T& x, const interval<T,Policies>& y);
0110 
0111     template <class T>
0112     interval<T> hull(const T& x, const T& y);
0113 
0114     template <class T, class Policies>
0115     std::pair<interval<T,Policies>,interval<T,Policies> >
0116         bisect(const interval<T,Policies>& x);
0117 
0118     /*
0119      * Elementary functions
0120      */
0121 
0122     template <class T, class Policies>
0123     T norm(const interval<T,Policies>& x);
0124 
0125     template <class T, class Policies>
0126     interval<T,Policies> abs(const interval<T,Policies>& x);
0127 
0128     template <class T, class Policies>
0129     interval<T,Policies>
0130         max BOOST_PREVENT_MACRO_SUBSTITUTION (
0131             const interval<T,Policies>& x
0132           , const interval<T,Policies>& y
0133         );
0134 
0135     template <class T, class Policies>
0136     interval<T,Policies>
0137         max BOOST_PREVENT_MACRO_SUBSTITUTION (
0138             const interval<T,Policies>& x
0139           , const T& y
0140         );
0141 
0142     template <class T, class Policies>
0143     interval<T,Policies>
0144         max BOOST_PREVENT_MACRO_SUBSTITUTION (
0145             const T& x
0146           , const interval<T,Policies>& y
0147         );
0148 
0149     template <class T, class Policies>
0150     interval<T,Policies>
0151         min BOOST_PREVENT_MACRO_SUBSTITUTION (
0152             const interval<T,Policies>& x
0153           , const interval<T,Policies>& y
0154         );
0155 
0156     template <class T, class Policies>
0157     interval<T,Policies>
0158         min BOOST_PREVENT_MACRO_SUBSTITUTION (
0159             const interval<T,Policies>& x
0160           , const T& y
0161         );
0162 
0163     template <class T, class Policies>
0164     interval<T,Policies>
0165         min BOOST_PREVENT_MACRO_SUBSTITUTION (
0166             const T& x
0167           , const interval<T,Policies>& y
0168         );
0169 }} // namespace boost::numeric
0170 
0171 #endif  // include guard
0172