Chris@16
|
1 /* Boost interval/ext/integer.hpp template implementation file
|
Chris@16
|
2 *
|
Chris@16
|
3 * Copyright 2003 Guillaume Melquiond
|
Chris@16
|
4 *
|
Chris@16
|
5 * Distributed under the Boost Software License, Version 1.0.
|
Chris@16
|
6 * (See accompanying file LICENSE_1_0.txt or
|
Chris@16
|
7 * copy at http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
8 */
|
Chris@16
|
9
|
Chris@16
|
10 #ifndef BOOST_NUMERIC_INTERVAL_EXT_INTEGER_HPP
|
Chris@16
|
11 #define BOOST_NUMERIC_INTERVAL_EXT_INTEGER_HPP
|
Chris@16
|
12
|
Chris@16
|
13 #include <boost/numeric/interval/detail/interval_prototype.hpp>
|
Chris@16
|
14 #include <boost/numeric/interval/detail/test_input.hpp>
|
Chris@16
|
15
|
Chris@16
|
16 namespace boost {
|
Chris@16
|
17 namespace numeric {
|
Chris@16
|
18
|
Chris@16
|
19 template<class T, class Policies> inline
|
Chris@16
|
20 interval<T, Policies> operator+ (const interval<T, Policies>& x, int y)
|
Chris@16
|
21 {
|
Chris@16
|
22 return x + static_cast<T>(y);
|
Chris@16
|
23 }
|
Chris@16
|
24
|
Chris@16
|
25 template<class T, class Policies> inline
|
Chris@16
|
26 interval<T, Policies> operator+ (int x, const interval<T, Policies>& y)
|
Chris@16
|
27 {
|
Chris@16
|
28 return static_cast<T>(x) + y;
|
Chris@16
|
29 }
|
Chris@16
|
30
|
Chris@16
|
31 template<class T, class Policies> inline
|
Chris@16
|
32 interval<T, Policies> operator- (const interval<T, Policies>& x, int y)
|
Chris@16
|
33 {
|
Chris@16
|
34 return x - static_cast<T>(y);
|
Chris@16
|
35 }
|
Chris@16
|
36
|
Chris@16
|
37 template<class T, class Policies> inline
|
Chris@16
|
38 interval<T, Policies> operator- (int x, const interval<T, Policies>& y)
|
Chris@16
|
39 {
|
Chris@16
|
40 return static_cast<T>(x) - y;
|
Chris@16
|
41 }
|
Chris@16
|
42
|
Chris@16
|
43 template<class T, class Policies> inline
|
Chris@16
|
44 interval<T, Policies> operator* (const interval<T, Policies>& x, int y)
|
Chris@16
|
45 {
|
Chris@16
|
46 return x * static_cast<T>(y);
|
Chris@16
|
47 }
|
Chris@16
|
48
|
Chris@16
|
49 template<class T, class Policies> inline
|
Chris@16
|
50 interval<T, Policies> operator* (int x, const interval<T, Policies>& y)
|
Chris@16
|
51 {
|
Chris@16
|
52 return static_cast<T>(x) * y;
|
Chris@16
|
53 }
|
Chris@16
|
54
|
Chris@16
|
55 template<class T, class Policies> inline
|
Chris@16
|
56 interval<T, Policies> operator/ (const interval<T, Policies>& x, int y)
|
Chris@16
|
57 {
|
Chris@16
|
58 return x / static_cast<T>(y);
|
Chris@16
|
59 }
|
Chris@16
|
60
|
Chris@16
|
61 template<class T, class Policies> inline
|
Chris@16
|
62 interval<T, Policies> operator/ (int x, const interval<T, Policies>& y)
|
Chris@16
|
63 {
|
Chris@16
|
64 return static_cast<T>(x) / y;
|
Chris@16
|
65 }
|
Chris@16
|
66
|
Chris@16
|
67 } // namespace numeric
|
Chris@16
|
68 } // namespace boost
|
Chris@16
|
69
|
Chris@16
|
70 #endif // BOOST_NUMERIC_INTERVAL_EXT_INTEGER_HPP
|