comparison DEPENDENCIES/generic/include/boost/multiprecision/detail/number_compare.hpp @ 101:c530137014c0

Update Boost headers (1.58.0)
author Chris Cannam
date Mon, 07 Sep 2015 11:12:49 +0100
parents 2665513ce2d3
children
comparison
equal deleted inserted replaced
100:793467b5e61c 101:c530137014c0
91 struct is_valid_mixed_compare<expression<tag, Arg1, Arg2, Arg3, Arg4>, number<B, ET> > 91 struct is_valid_mixed_compare<expression<tag, Arg1, Arg2, Arg3, Arg4>, number<B, ET> >
92 : public mpl::bool_<is_convertible<expression<tag, Arg1, Arg2, Arg3, Arg4>, number<B, ET> >::value> {}; 92 : public mpl::bool_<is_convertible<expression<tag, Arg1, Arg2, Arg3, Arg4>, number<B, ET> >::value> {};
93 93
94 } 94 }
95 95
96 template <class Backend, expression_template_option ExpressionTemplates> 96 template <class Backend, expression_template_option ExpressionTemplates, class Backend2, expression_template_option ExpressionTemplates2>
97 inline bool operator == (const number<Backend, ExpressionTemplates>& a, const number<Backend, ExpressionTemplates>& b) 97 inline bool operator == (const number<Backend, ExpressionTemplates>& a, const number<Backend2, ExpressionTemplates2>& b)
98 { 98 {
99 using default_ops::eval_eq; 99 using default_ops::eval_eq;
100 return eval_eq(a.backend(), b.backend()); 100 return eval_eq(a.backend(), b.backend());
101 } 101 }
102 template <class Backend, expression_template_option ExpressionTemplates, class Arithmetic> 102 template <class Backend, expression_template_option ExpressionTemplates, class Arithmetic>
139 typename detail::expression<Tag, A1, A2, A3, A4>::result_type t(a); 139 typename detail::expression<Tag, A1, A2, A3, A4>::result_type t(a);
140 typename detail::expression<Tagb, A1b, A2b, A3b, A4b>::result_type t2(b); 140 typename detail::expression<Tagb, A1b, A2b, A3b, A4b>::result_type t2(b);
141 return eval_eq(t.backend(), t2.backend()); 141 return eval_eq(t.backend(), t2.backend());
142 } 142 }
143 143
144 template <class Backend, expression_template_option ExpressionTemplates> 144 template <class Backend, expression_template_option ExpressionTemplates, class Backend2, expression_template_option ExpressionTemplates2>
145 inline bool operator != (const number<Backend, ExpressionTemplates>& a, const number<Backend, ExpressionTemplates>& b) 145 inline bool operator != (const number<Backend, ExpressionTemplates>& a, const number<Backend2, ExpressionTemplates2>& b)
146 { 146 {
147 using default_ops::eval_eq; 147 using default_ops::eval_eq;
148 return !eval_eq(a.backend(), b.backend()); 148 return !eval_eq(a.backend(), b.backend());
149 } 149 }
150 template <class Backend, expression_template_option ExpressionTemplates, class Arithmetic> 150 template <class Backend, expression_template_option ExpressionTemplates, class Arithmetic>
187 typename detail::expression<Tag, A1, A2, A3, A4>::result_type t(a); 187 typename detail::expression<Tag, A1, A2, A3, A4>::result_type t(a);
188 typename detail::expression<Tagb, A1b, A2b, A3b, A4b>::result_type t2(b); 188 typename detail::expression<Tagb, A1b, A2b, A3b, A4b>::result_type t2(b);
189 return !eval_eq(t.backend(), t2.backend()); 189 return !eval_eq(t.backend(), t2.backend());
190 } 190 }
191 191
192 template <class Backend, expression_template_option ExpressionTemplates> 192 template <class Backend, expression_template_option ExpressionTemplates, class Backend2, expression_template_option ExpressionTemplates2>
193 inline bool operator < (const number<Backend, ExpressionTemplates>& a, const number<Backend, ExpressionTemplates>& b) 193 inline bool operator < (const number<Backend, ExpressionTemplates>& a, const number<Backend2, ExpressionTemplates2>& b)
194 { 194 {
195 using default_ops::eval_lt; 195 using default_ops::eval_lt;
196 return eval_lt(a.backend(), b.backend()); 196 return eval_lt(a.backend(), b.backend());
197 } 197 }
198 template <class Backend, expression_template_option ExpressionTemplates, class Arithmetic> 198 template <class Backend, expression_template_option ExpressionTemplates, class Arithmetic>
235 typename detail::expression<Tag, A1, A2, A3, A4>::result_type t(a); 235 typename detail::expression<Tag, A1, A2, A3, A4>::result_type t(a);
236 typename detail::expression<Tagb, A1b, A2b, A3b, A4b>::result_type t2(b); 236 typename detail::expression<Tagb, A1b, A2b, A3b, A4b>::result_type t2(b);
237 return eval_lt(t.backend(), t2.backend()); 237 return eval_lt(t.backend(), t2.backend());
238 } 238 }
239 239
240 template <class Backend, expression_template_option ExpressionTemplates> 240 template <class Backend, expression_template_option ExpressionTemplates, class Backend2, expression_template_option ExpressionTemplates2>
241 inline bool operator > (const number<Backend, ExpressionTemplates>& a, const number<Backend, ExpressionTemplates>& b) 241 inline bool operator > (const number<Backend, ExpressionTemplates>& a, const number<Backend2, ExpressionTemplates2>& b)
242 { 242 {
243 using default_ops::eval_gt; 243 using default_ops::eval_gt;
244 return eval_gt(a.backend(), b.backend()); 244 return eval_gt(a.backend(), b.backend());
245 } 245 }
246 template <class Backend, expression_template_option ExpressionTemplates, class Arithmetic> 246 template <class Backend, expression_template_option ExpressionTemplates, class Arithmetic>
283 typename detail::expression<Tag, A1, A2, A3, A4>::result_type t(a); 283 typename detail::expression<Tag, A1, A2, A3, A4>::result_type t(a);
284 typename detail::expression<Tagb, A1b, A2b, A3b, A4b>::result_type t2(b); 284 typename detail::expression<Tagb, A1b, A2b, A3b, A4b>::result_type t2(b);
285 return eval_gt(t.backend(), t2.backend()); 285 return eval_gt(t.backend(), t2.backend());
286 } 286 }
287 287
288 template <class Backend, expression_template_option ExpressionTemplates> 288 template <class Backend, expression_template_option ExpressionTemplates, class Backend2, expression_template_option ExpressionTemplates2>
289 inline bool operator <= (const number<Backend, ExpressionTemplates>& a, const number<Backend, ExpressionTemplates>& b) 289 inline bool operator <= (const number<Backend, ExpressionTemplates>& a, const number<Backend2, ExpressionTemplates2>& b)
290 { 290 {
291 using default_ops::eval_gt; 291 using default_ops::eval_gt;
292 return !eval_gt(a.backend(), b.backend()); 292 return !eval_gt(a.backend(), b.backend());
293 } 293 }
294 template <class Backend, expression_template_option ExpressionTemplates, class Arithmetic> 294 template <class Backend, expression_template_option ExpressionTemplates, class Arithmetic>
331 typename detail::expression<Tag, A1, A2, A3, A4>::result_type t(a); 331 typename detail::expression<Tag, A1, A2, A3, A4>::result_type t(a);
332 typename detail::expression<Tagb, A1b, A2b, A3b, A4b>::result_type t2(b); 332 typename detail::expression<Tagb, A1b, A2b, A3b, A4b>::result_type t2(b);
333 return !eval_gt(t.backend(), t2.backend()); 333 return !eval_gt(t.backend(), t2.backend());
334 } 334 }
335 335
336 template <class Backend, expression_template_option ExpressionTemplates> 336 template <class Backend, expression_template_option ExpressionTemplates, class Backend2, expression_template_option ExpressionTemplates2>
337 inline bool operator >= (const number<Backend, ExpressionTemplates>& a, const number<Backend, ExpressionTemplates>& b) 337 inline bool operator >= (const number<Backend, ExpressionTemplates>& a, const number<Backend2, ExpressionTemplates2>& b)
338 { 338 {
339 using default_ops::eval_lt; 339 using default_ops::eval_lt;
340 return !eval_lt(a.backend(), b.backend()); 340 return !eval_lt(a.backend(), b.backend());
341 } 341 }
342 template <class Backend, expression_template_option ExpressionTemplates, class Arithmetic> 342 template <class Backend, expression_template_option ExpressionTemplates, class Arithmetic>