241 | | ///Integer specialization of Tolerance. |
242 | | |
243 | | ///Integer specialization of Tolerance. |
244 | | ///\sa Tolerance |
245 | | template<> |
246 | | class Tolerance<int> |
247 | | { |
248 | | public: |
249 | | ///\e |
250 | | typedef int Value; |
251 | | |
252 | | ///\name Comparisons |
253 | | ///See \ref lemon::Tolerance "Tolerance" for more details. |
254 | | |
255 | | ///@{ |
256 | | |
257 | | ///Returns \c true if \c a is \e surely strictly less than \c b |
258 | | static bool less(Value a,Value b) { return a<b;} |
259 | | ///Returns \c true if \c a is \e surely different from \c b |
260 | | static bool different(Value a,Value b) { return a!=b; } |
261 | | ///Returns \c true if \c a is \e surely positive |
262 | | static bool positive(Value a) { return 0<a; } |
263 | | ///Returns \c true if \c a is \e surely negative |
264 | | static bool negative(Value a) { return 0>a; } |
265 | | ///Returns \c true if \c a is \e surely non-zero |
266 | | static bool nonZero(Value a) { return a!=0; } |
267 | | |
268 | | ///@} |
269 | | |
270 | | ///Returns zero |
271 | | static Value zero() {return 0;} |
272 | | }; |
273 | | |
274 | | ///Unsigned integer specialization of Tolerance. |
275 | | |
276 | | ///Unsigned integer specialization of Tolerance. |
277 | | ///\sa Tolerance |
278 | | template<> |
279 | | class Tolerance<unsigned int> |
280 | | { |
281 | | public: |
282 | | ///\e |
283 | | typedef unsigned int Value; |
284 | | |
285 | | ///\name Comparisons |
286 | | ///See \ref lemon::Tolerance "Tolerance" for more details. |
287 | | |
288 | | ///@{ |
289 | | |
290 | | ///Returns \c true if \c a is \e surely strictly less than \c b |
291 | | static bool less(Value a,Value b) { return a<b;} |
292 | | ///Returns \c true if \c a is \e surely different from \c b |
293 | | static bool different(Value a,Value b) { return a!=b; } |
294 | | ///Returns \c true if \c a is \e surely positive |
295 | | static bool positive(Value a) { return 0<a; } |
296 | | ///Returns \c true if \c a is \e surely negative |
297 | | static bool negative(Value) { return false; } |
298 | | ///Returns \c true if \c a is \e surely non-zero |
299 | | static bool nonZero(Value a) { return a!=0; } |
300 | | |
301 | | ///@} |
302 | | |
303 | | ///Returns zero |
304 | | static Value zero() {return 0;} |
305 | | }; |
306 | | |
307 | | |
308 | | ///Long integer specialization of Tolerance. |
309 | | |
310 | | ///Long integer specialization of Tolerance. |
311 | | ///\sa Tolerance |
312 | | template<> |
313 | | class Tolerance<long int> |
314 | | { |
315 | | public: |
316 | | ///\e |
317 | | typedef long int Value; |
318 | | |
319 | | ///\name Comparisons |
320 | | ///See \ref lemon::Tolerance "Tolerance" for more details. |
321 | | |
322 | | ///@{ |
323 | | |
324 | | ///Returns \c true if \c a is \e surely strictly less than \c b |
325 | | static bool less(Value a,Value b) { return a<b;} |
326 | | ///Returns \c true if \c a is \e surely different from \c b |
327 | | static bool different(Value a,Value b) { return a!=b; } |
328 | | ///Returns \c true if \c a is \e surely positive |
329 | | static bool positive(Value a) { return 0<a; } |
330 | | ///Returns \c true if \c a is \e surely negative |
331 | | static bool negative(Value a) { return 0>a; } |
332 | | ///Returns \c true if \c a is \e surely non-zero |
333 | | static bool nonZero(Value a) { return a!=0;} |
334 | | |
335 | | ///@} |
336 | | |
337 | | ///Returns zero |
338 | | static Value zero() {return 0;} |
339 | | }; |
340 | | |
341 | | ///Unsigned long integer specialization of Tolerance. |
342 | | |
343 | | ///Unsigned long integer specialization of Tolerance. |
344 | | ///\sa Tolerance |
345 | | template<> |
346 | | class Tolerance<unsigned long int> |
347 | | { |
348 | | public: |
349 | | ///\e |
350 | | typedef unsigned long int Value; |
351 | | |
352 | | ///\name Comparisons |
353 | | ///See \ref lemon::Tolerance "Tolerance" for more details. |
354 | | |
355 | | ///@{ |
356 | | |
357 | | ///Returns \c true if \c a is \e surely strictly less than \c b |
358 | | static bool less(Value a,Value b) { return a<b;} |
359 | | ///Returns \c true if \c a is \e surely different from \c b |
360 | | static bool different(Value a,Value b) { return a!=b; } |
361 | | ///Returns \c true if \c a is \e surely positive |
362 | | static bool positive(Value a) { return 0<a; } |
363 | | ///Returns \c true if \c a is \e surely negative |
364 | | static bool negative(Value) { return false; } |
365 | | ///Returns \c true if \c a is \e surely non-zero |
366 | | static bool nonZero(Value a) { return a!=0;} |
367 | | |
368 | | ///@} |
369 | | |
370 | | ///Returns zero |
371 | | static Value zero() {return 0;} |
372 | | }; |
373 | | |
374 | | #if HAVE_LONG_LONG |
375 | | |
376 | | ///Long long integer specialization of Tolerance. |
377 | | |
378 | | ///Long long integer specialization of Tolerance. |
379 | | ///\warning This class (more exactly, type <tt>long long</tt>) |
380 | | ///is not ansi compatible. |
381 | | ///\sa Tolerance |
382 | | template<> |
383 | | class Tolerance<long long int> |
384 | | { |
385 | | public: |
386 | | ///\e |
387 | | typedef long long int Value; |
388 | | |
389 | | ///\name Comparisons |
390 | | ///See \ref lemon::Tolerance "Tolerance" for more details. |
391 | | |
392 | | ///@{ |
393 | | |
394 | | ///Returns \c true if \c a is \e surely strictly less than \c b |
395 | | static bool less(Value a,Value b) { return a<b;} |
396 | | ///Returns \c true if \c a is \e surely different from \c b |
397 | | static bool different(Value a,Value b) { return a!=b; } |
398 | | ///Returns \c true if \c a is \e surely positive |
399 | | static bool positive(Value a) { return 0<a; } |
400 | | ///Returns \c true if \c a is \e surely negative |
401 | | static bool negative(Value a) { return 0>a; } |
402 | | ///Returns \c true if \c a is \e surely non-zero |
403 | | static bool nonZero(Value a) { return a!=0;} |
404 | | |
405 | | ///@} |
406 | | |
407 | | ///Returns zero |
408 | | static Value zero() {return 0;} |
409 | | }; |
410 | | |
411 | | ///Unsigned long long integer specialization of Tolerance. |
412 | | |
413 | | ///Unsigned long long integer specialization of Tolerance. |
414 | | ///\warning This class (more exactly, type <tt>unsigned long long</tt>) |
415 | | ///is not ansi compatible. |
416 | | ///\sa Tolerance |
417 | | template<> |
418 | | class Tolerance<unsigned long long int> |
419 | | { |
420 | | public: |
421 | | ///\e |
422 | | typedef unsigned long long int Value; |
423 | | |
424 | | ///\name Comparisons |
425 | | ///See \ref lemon::Tolerance "Tolerance" for more details. |
426 | | |
427 | | ///@{ |
428 | | |
429 | | ///Returns \c true if \c a is \e surely strictly less than \c b |
430 | | static bool less(Value a,Value b) { return a<b;} |
431 | | ///Returns \c true if \c a is \e surely different from \c b |
432 | | static bool different(Value a,Value b) { return a!=b; } |
433 | | ///Returns \c true if \c a is \e surely positive |
434 | | static bool positive(Value a) { return 0<a; } |
435 | | ///Returns \c true if \c a is \e surely negative |
436 | | static bool negative(Value) { return false; } |
437 | | ///Returns \c true if \c a is \e surely non-zero |
438 | | static bool nonZero(Value a) { return a!=0;} |
439 | | |
440 | | ///@} |
441 | | |
442 | | ///Returns zero |
443 | | static Value zero() {return 0;} |
444 | | }; |
445 | | |
446 | | #endif |
447 | | |