Aleph-w  1.5a.2
Biblioteca general de algoritmos y estructuras de datos
 Todo Clases Archivos Funciones Variables 'typedefs' Enumeraciones Amigas Grupos Páginas
ahFunction.H
1 // Functor implementations -*- C++ -*-
2 
3 /*
4  *
5  * Copyright (c) 1994
6  * Hewlett-Packard Company
7  *
8  * Permission to use, copy, modify, distribute and sell this software
9  * and its documentation for any purpose is hereby granted without fee,
10  * provided that the above copyright notice appear in all copies and
11  * that both that copyright notice and this permission notice appear
12  * in supporting documentation. Hewlett-Packard Company makes no
13  * representations about the suitability of this software for any
14  * purpose. It is provided "as is" without express or implied warranty.
15  *
16  *
17  * Copyright (c) 1996-1998
18  * Silicon Graphics Computer Systems, Inc.
19  *
20  * Permission to use, copy, modify, distribute and sell this software
21  * and its documentation for any purpose is hereby granted without fee,
22  * provided that the above copyright notice appear in all copies and
23  * that both that copyright notice and this permission notice appear
24  * in supporting documentation. Silicon Graphics makes no
25  * representations about the suitability of this software for any
26  * purpose. It is provided "as is" without express or implied warranty.
27  */
28 
29 # ifndef AHFUNCTION_H
30 # define AHFUNCTION_H
31 
32 # include <utility>
33 
34 namespace Aleph
35 {
36 
37  template <class _Arg, class _Result>
39  {
40  typedef _Arg argument_type;
41  typedef _Result result_type;
42  };
43 
44  template <class _Arg1, class _Arg2, class _Result>
46  {
47  typedef _Arg1 first_argument_type; // the type of the first argument
48  typedef _Arg2 second_argument_type; // the type of the second argument
49  typedef _Result result_type; // type of the return type
50  };
51 
52 
53  template <class _Tp>
54  struct plus : public binary_function<_Tp, _Tp, _Tp>
55  {
56  _Tp operator () (const _Tp& __x, const _Tp& __y) const
57  {
58  return __x + __y;
59  }
60  };
61 
62 
63  template <class _Tp>
64  struct minus : public binary_function<_Tp, _Tp, _Tp>
65  {
66  _Tp
67  operator () (const _Tp& __x, const _Tp& __y) const
68  {
69  return __x - __y;
70  }
71  };
72 
73 
74  template <class _Tp>
75  struct multiplies : public binary_function<_Tp, _Tp, _Tp>
76  {
77  _Tp operator () (const _Tp& __x, const _Tp& __y) const
78  {
79  return __x * __y;
80  }
81  };
82 
83 
84  template <class _Tp>
85  struct divides : public binary_function<_Tp, _Tp, _Tp>
86  {
87  _Tp operator () (const _Tp& __x, const _Tp& __y) const
88  {
89  return __x / __y;
90  }
91  };
92 
93 
94  template <class _Tp>
95  struct modulus : public binary_function<_Tp, _Tp, _Tp>
96  {
97  _Tp operator () (const _Tp& __x, const _Tp& __y) const
98  {
99  return __x % __y;
100  }
101  };
102 
103 
104  template <class _Tp>
105  struct negate : public unary_function<_Tp, _Tp>
106  {
107  _Tp operator () (const _Tp& __x) const
108  {
109  return -__x;
110  }
111  };
112 
113 
114  template <class _Tp>
115  struct equal_to : public binary_function<_Tp, _Tp, bool>
116  {
117  bool operator () (const _Tp& __x, const _Tp& __y) const
118  {
119  return __x == __y;
120  }
121  };
122 
123 
124  template <class _Tp>
125  struct not_equal_to : public binary_function<_Tp, _Tp, bool>
126  {
127  bool operator()(const _Tp& __x, const _Tp& __y) const
128  {
129  return __x != __y;
130  }
131  };
132 
133 
134  template <class _Tp>
135  struct greater : public binary_function<_Tp, _Tp, bool>
136  {
137  bool operator () (const _Tp& __x, const _Tp& __y) const
138  {
139  return __x > __y;
140  }
141  };
142 
143 
144  template <class _Tp>
145  struct less : public binary_function<_Tp, _Tp, bool>
146  {
147  bool operator () (const _Tp& __x, const _Tp& __y) const
148  {
149  return __x < __y;
150  }
151  };
152 
153 
154  template <class _Tp>
155  struct greater_equal : public binary_function<_Tp, _Tp, bool>
156  {
157  bool operator () (const _Tp& __x, const _Tp& __y) const
158  {
159  return __x >= __y;
160  }
161  };
162 
163 
164  template <class _Tp>
165  struct less_equal : public binary_function<_Tp, _Tp, bool>
166  {
167  bool operator () (const _Tp& __x, const _Tp& __y) const
168  {
169  return __x <= __y;
170  }
171  };
172 
173 
174  template <class _Tp>
175  struct logical_and : public binary_function<_Tp, _Tp, bool>
176  {
177  bool operator () (const _Tp& __x, const _Tp& __y) const
178  {
179  return __x and __y;
180  }
181  };
182 
183 
184  template <class _Tp>
185  struct logical_or : public binary_function<_Tp, _Tp, bool>
186  {
187  bool operator () (const _Tp& __x, const _Tp& __y) const
188  {
189  return __x or __y;
190  }
191  };
192 
193 
194  template <class _Tp>
195  struct logical_not : public unary_function<_Tp, bool>
196  {
197  bool operator () (const _Tp& __x) const
198  {
199  return not __x;
200  }
201  };
202 
203 
204  template <class _Predicate>
206  : public unary_function <typename _Predicate::argument_type, bool>
207  {
208  protected:
209 
210  _Predicate _M_pred;
211 
212  public:
213 
214  explicit unary_negate (const _Predicate& __x) : _M_pred(__x) {}
215 
216  bool operator () (const typename _Predicate::argument_type& __x) const
217  {
218  return not _M_pred(__x);
219  }
220  };
221 
222 
223  template <class _Predicate> inline
224  unary_negate<_Predicate> not1 (const _Predicate& __pred)
225  {
226  return unary_negate<_Predicate>(__pred);
227  }
228 
229 
230  template <class _Predicate>
232  : public binary_function<typename _Predicate::first_argument_type,
233  typename _Predicate::second_argument_type,
234  bool>
235  {
236  protected:
237 
238  _Predicate _M_pred;
239 
240  public:
241 
242  explicit binary_negate (const _Predicate& __x) : _M_pred(__x) { }
243 
244  bool
245  operator () (const typename _Predicate::first_argument_type& __x,
246  const typename _Predicate::second_argument_type& __y) const
247  {
248  return not _M_pred(__x, __y);
249  }
250  };
251 
252 
253  template <class _Predicate> inline
254  binary_negate<_Predicate> not2 (const _Predicate& __pred)
255  {
256  return binary_negate<_Predicate>(__pred);
257  }
258 
259 
260  template <class _Operation>
261  class binder1st
262  : public unary_function<typename _Operation::second_argument_type,
263  typename _Operation::result_type>
264  {
265  protected:
266 
267  _Operation op;
268 
269  typename _Operation::first_argument_type value;
270 
271  public:
272 
273  binder1st(const _Operation& __x,
274  const typename _Operation::first_argument_type& __y)
275  : op(__x), value(__y) {}
276 
277  typename _Operation::result_type
278  operator () (const typename _Operation::second_argument_type& __x) const
279  {
280  return op (value, __x);
281  }
282 
283  typename _Operation::result_type
284  operator () (typename _Operation::second_argument_type& __x) const
285  {
286  return op(value, __x);
287  }
288  };
289 
290 
291  template <class _Operation, class _Tp> inline
292  binder1st<_Operation> bind1st(const _Operation& __fn, const _Tp& __x)
293  {
294  typedef typename _Operation::first_argument_type _Arg1_type;
295 
296  return binder1st<_Operation> (__fn, _Arg1_type(__x));
297  }
298 
299  template <class _Operation>
300  class binder2nd
301  : public unary_function<typename _Operation::first_argument_type,
302  typename _Operation::result_type>
303  {
304  protected:
305 
306  _Operation op;
307 
308  typename _Operation::second_argument_type value;
309 
310  public:
311 
312  binder2nd(const _Operation& __x,
313  const typename _Operation::second_argument_type& __y)
314  : op(__x), value (__y) {}
315 
316  typename _Operation::result_type
317  operator () (const typename _Operation::first_argument_type& __x) const
318  {
319  return op (__x, value);
320  }
321 
322  typename _Operation::result_type
323  operator () (typename _Operation::first_argument_type& __x) const
324  {
325  return op (__x, value);
326  }
327  };
328 
329 
330  template <class _Operation, class _Tp> inline
331  binder2nd<_Operation> bind2nd (const _Operation& __fn, const _Tp& __x)
332  {
333  typedef typename _Operation::second_argument_type _Arg2_type;
334 
335  return binder2nd<_Operation>(__fn, _Arg2_type(__x));
336  }
337 
338 
339  template <class _Arg, class _Result>
340  class pointer_to_unary_function : public unary_function<_Arg, _Result>
341  {
342  protected:
343 
344  _Result (*_M_ptr) (_Arg);
345 
346  public:
347 
349 
350  explicit pointer_to_unary_function(_Result (*__x) (_Arg))
351  : _M_ptr (__x) {}
352 
353  _Result operator () (_Arg __x) const
354  {
355  return _M_ptr (__x);
356  }
357  };
358 
359 
360  template <class _Arg, class _Result> inline
361  pointer_to_unary_function<_Arg, _Result> ptr_fun(_Result (*__x)(_Arg))
362  {
364  }
365 
366 
367  template <class _Arg1, class _Arg2, class _Result>
369  : public binary_function<_Arg1, _Arg2, _Result>
370  {
371  protected:
372 
373  _Result (*_M_ptr) (_Arg1, _Arg2);
374 
375  public:
376 
378 
379  explicit pointer_to_binary_function(_Result (*__x) (_Arg1, _Arg2))
380  : _M_ptr(__x) {}
381 
382  _Result operator () (_Arg1 __x, _Arg2 __y) const
383  {
384  return _M_ptr(__x, __y);
385  }
386  };
387 
388 
389  template <class _Arg1, class _Arg2, class _Result> inline
391  ptr_fun (_Result (*__x) (_Arg1, _Arg2) )
392  {
394  }
395 
396  template <class _Tp>
397  struct _Identity : public unary_function<_Tp,_Tp>
398  {
399  _Tp & operator () (_Tp& __x) const
400  {
401  return __x;
402  }
403 
404  const _Tp& operator () (const _Tp& __x) const
405  {
406  return __x;
407  }
408  };
409 
410  template <class _Pair>
411  struct _Select1st : public unary_function<_Pair, typename _Pair::first_type>
412  {
413  typename _Pair::first_type& operator () (_Pair& __x) const
414  {
415  return __x.first;
416  }
417 
418  const typename _Pair::first_type& operator () (const _Pair& __x) const
419  {
420  return __x.first;
421  }
422  };
423 
424  template <class _Pair>
425  struct _Select2nd : public unary_function<_Pair, typename _Pair::second_type>
426  {
427  typename _Pair::second_type& operator () (_Pair& __x) const
428  {
429  return __x.second;
430  }
431 
432  const typename _Pair::second_type& operator () (const _Pair& __x) const
433  {
434  return __x.second;
435  }
436  };
437 
438 
439  template <class _Ret, class _Tp>
440  class mem_fun_t : public unary_function<_Tp*, _Ret>
441  {
442  public:
443 
444  explicit mem_fun_t (_Ret (_Tp::*__pf) () )
445  : _M_f(__pf) {}
446 
447  _Ret operator ()(_Tp* __p) const
448  {
449  return (__p->*_M_f)();
450  }
451 
452  private:
453 
454  _Ret (_Tp::*_M_f) ();
455  };
456 
457 
458  template <class _Ret, class _Tp>
459  class const_mem_fun_t : public unary_function<const _Tp*, _Ret>
460  {
461  public:
462 
463  explicit const_mem_fun_t (_Ret (_Tp::*__pf) () const)
464  : _M_f (__pf) {}
465 
466  _Ret operator () (const _Tp* __p) const
467  {
468  return (__p->*_M_f) ();
469  }
470 
471  private:
472 
473  _Ret (_Tp::*_M_f) () const;
474  };
475 
476 
477  template <class _Ret, class _Tp>
478  class mem_fun_ref_t : public unary_function<_Tp, _Ret>
479  {
480  public:
481 
482  explicit mem_fun_ref_t (_Ret (_Tp::*__pf)())
483  : _M_f (__pf) {}
484 
485  _Ret operator () (_Tp& __r) const
486  {
487  return (__r.*_M_f)();
488  }
489 
490  private:
491 
492  _Ret (_Tp::*_M_f) ();
493  };
494 
495 
496  template <class _Ret, class _Tp>
497  class const_mem_fun_ref_t : public unary_function<_Tp, _Ret>
498  {
499  public:
500 
501  explicit const_mem_fun_ref_t (_Ret (_Tp::*__pf)() const)
502  : _M_f (__pf) {}
503 
504  _Ret operator () (const _Tp& __r) const
505  {
506  return (__r.*_M_f)();
507  }
508 
509  private:
510 
511  _Ret (_Tp::*_M_f) () const;
512  };
513 
514 
515  template <class _Ret, class _Tp, class _Arg>
516  class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret>
517  {
518  public:
519 
520  explicit mem_fun1_t (_Ret (_Tp::*__pf) (_Arg))
521  : _M_f(__pf) {}
522 
523  _Ret operator () (_Tp* __p, _Arg __x) const
524  {
525  return (__p->*_M_f) (__x);
526  }
527 
528  private:
529 
530  _Ret (_Tp::*_M_f) (_Arg);
531  };
532 
533 
534  template <class _Ret, class _Tp, class _Arg>
535  class const_mem_fun1_t : public binary_function<const _Tp*, _Arg, _Ret>
536  {
537  public:
538 
539  explicit const_mem_fun1_t (_Ret (_Tp::*__pf) (_Arg) const)
540  : _M_f (__pf) {}
541 
542  _Ret operator () (const _Tp* __p, _Arg __x) const
543  {
544  return (__p->*_M_f)(__x);
545  }
546 
547  private:
548 
549  _Ret (_Tp::*_M_f) (_Arg) const;
550  };
551 
552 
553  template <class _Ret, class _Tp, class _Arg>
554  class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
555  {
556  public:
557 
558  explicit mem_fun1_ref_t (_Ret (_Tp::*__pf) (_Arg))
559  : _M_f (__pf) {}
560 
561  _Ret operator () (_Tp& __r, _Arg __x) const
562  {
563  return (__r.*_M_f)(__x);
564  }
565 
566  private:
567 
568  _Ret (_Tp::*_M_f) (_Arg);
569  };
570 
571 
572  template <class _Ret, class _Tp, class _Arg>
573  class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>
574  {
575  public:
576 
577  explicit const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const)
578  : _M_f(__pf) {}
579 
580  _Ret operator () (const _Tp& __r, _Arg __x) const
581  {
582  return (__r.*_M_f)(__x);
583  }
584 
585  private:
586 
587  _Ret (_Tp::*_M_f) (_Arg) const;
588  };
589 
590 
591  template <class _Tp>
592  class mem_fun_t<void, _Tp> : public unary_function<_Tp*, void>
593  {
594  public:
595 
596  explicit mem_fun_t (void (_Tp::*__pf)())
597  : _M_f (__pf) {}
598 
599  void operator () (_Tp* __p) const
600  {
601  (__p->*_M_f)();
602  }
603 
604  private:
605 
606  void (_Tp::*_M_f)();
607  };
608 
609 
610  template <class _Tp>
611  class const_mem_fun_t<void, _Tp> : public unary_function<const _Tp*, void>
612  {
613  public:
614 
615  explicit const_mem_fun_t (void (_Tp::*__pf)() const)
616  : _M_f (__pf) {}
617 
618  void operator () (const _Tp* __p) const
619  {
620  (__p->*_M_f)();
621  }
622 
623  private:
624 
625  void (_Tp::*_M_f)() const;
626  };
627 
628 
629  template <class _Tp>
630  class mem_fun_ref_t<void, _Tp> : public unary_function<_Tp, void>
631  {
632  public:
633 
634  explicit mem_fun_ref_t (void (_Tp::*__pf)()) : _M_f (__pf) {}
635 
636  void operator () (_Tp& __r) const
637  {
638  (__r.*_M_f)();
639  }
640 
641  private:
642 
643  void (_Tp::*_M_f)();
644  };
645 
646 
647  template <class _Tp>
648  class const_mem_fun_ref_t<void, _Tp> : public unary_function<_Tp, void>
649  {
650  public:
651 
652  explicit const_mem_fun_ref_t (void (_Tp::*__pf) () const)
653  : _M_f (__pf) {}
654 
655  void operator () (const _Tp& __r) const
656  {
657  (__r.*_M_f) ();
658  }
659 
660  private:
661 
662  void (_Tp::*_M_f) () const;
663  };
664 
665 
666  template <class _Tp, class _Arg>
667  class mem_fun1_t<void, _Tp, _Arg> : public binary_function<_Tp*, _Arg, void>
668  {
669  public:
670 
671  explicit mem_fun1_t(void (_Tp::*__pf) (_Arg)) : _M_f (__pf) {}
672 
673  void operator () (_Tp* __p, _Arg __x) const
674  {
675  (__p->*_M_f)(__x);
676  }
677 
678  private:
679 
680  void (_Tp::*_M_f) (_Arg);
681  };
682 
683 
684  template <class _Tp, class _Arg>
685  class const_mem_fun1_t<void, _Tp, _Arg>
686  : public binary_function<const _Tp*, _Arg, void>
687  {
688  public:
689 
690  explicit const_mem_fun1_t (void (_Tp::*__pf) (_Arg) const) : _M_f (__pf) {}
691 
692  void operator () (const _Tp* __p, _Arg __x) const
693  {
694  (__p->*_M_f)(__x);
695  }
696 
697  private:
698 
699  void (_Tp::*_M_f)(_Arg) const;
700  };
701 
702 
703  template <class _Tp, class _Arg>
704  class mem_fun1_ref_t<void, _Tp, _Arg>
705  : public binary_function<_Tp, _Arg, void>
706  {
707  public:
708 
709  explicit mem_fun1_ref_t (void (_Tp::*__pf) (_Arg)) : _M_f (__pf) {}
710 
711  void operator () (_Tp& __r, _Arg __x) const
712  {
713  (__r.*_M_f)(__x);
714  }
715 
716  private:
717 
718  void (_Tp::*_M_f) (_Arg);
719  };
720 
721 
722  template <class _Tp, class _Arg>
723  class const_mem_fun1_ref_t<void, _Tp, _Arg>
724  : public binary_function<_Tp, _Arg, void>
725  {
726  public:
727 
728  explicit const_mem_fun1_ref_t (void (_Tp::*__pf) (_Arg) const)
729  : _M_f (__pf) {}
730 
731  void operator () (const _Tp& __r, _Arg __x) const
732  {
733  (__r.*_M_f) (__x);
734  }
735 
736  private:
737 
738  void (_Tp::*_M_f)(_Arg) const;
739  };
740 
741 
742  template <class _Ret, class _Tp> inline
743  mem_fun_t<_Ret, _Tp> mem_fun (_Ret (_Tp::*__f) () )
744  {
745  return mem_fun_t<_Ret, _Tp> (__f);
746  }
747 
748  template <class _Ret, class _Tp> inline
749  const_mem_fun_t<_Ret, _Tp> mem_fun (_Ret (_Tp::*__f) () const)
750  {
751  return const_mem_fun_t<_Ret, _Tp> (__f);
752  }
753 
754  template <class _Ret, class _Tp> inline
755  mem_fun_ref_t<_Ret, _Tp> mem_fun_ref (_Ret (_Tp::*__f) ())
756  {
757  return mem_fun_ref_t<_Ret, _Tp> (__f);
758  }
759 
760  template <class _Ret, class _Tp> inline
761  const_mem_fun_ref_t<_Ret, _Tp> mem_fun_ref (_Ret (_Tp::*__f) () const)
762  {
763  return const_mem_fun_ref_t<_Ret, _Tp> (__f);
764  }
765 
766  template <class _Ret, class _Tp, class _Arg> inline
767  mem_fun1_t<_Ret, _Tp, _Arg> mem_fun (_Ret (_Tp::*__f) (_Arg))
768  {
769  return mem_fun1_t<_Ret, _Tp, _Arg> (__f);
770  }
771 
772  template <class _Ret, class _Tp, class _Arg> inline
773  const_mem_fun1_t<_Ret, _Tp, _Arg> mem_fun (_Ret (_Tp::*__f) (_Arg) const)
774  {
775  return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f);
776  }
777 
778  template <class _Ret, class _Tp, class _Arg> inline
779  mem_fun1_ref_t<_Ret, _Tp, _Arg> mem_fun_ref (_Ret (_Tp::*__f) (_Arg))
780  {
781  return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f);
782  }
783 
784  template <class _Ret, class _Tp, class _Arg> inline
785  const_mem_fun1_ref_t<_Ret, _Tp, _Arg>
786  mem_fun_ref (_Ret (_Tp::*__f) (_Arg) const)
787  {
788  return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f);
789  }
790 
791 
798  template <class T, class Compare> inline
799 bool less_than(const T & op1, const T & op2, Compare & cmp)
800 {
801  return cmp (op1, op2);
802 }
803 
804 
809  template <class T, class Compare> inline
810 bool less_than(const T & op1, const T & op2, Compare && cmp = Compare())
811 {
812  return less_than <T, Compare> (op1, op2, cmp);
813 }
814 
815 
822  template <class T, class Compare> inline
823 bool less_or_equal_than(const T& op1, const T& op2, Compare & cmp)
824 {
825  if (cmp(op1, op2))
826  return true;
827 
828  if (cmp(op2, op1))
829  return false;
830 
831  return true;
832 }
833 
834 
839  template <class T, class Compare> inline
840 bool less_or_equal_than(const T& op1, const T& op2, Compare && cmp = Compare())
841 {
842  return less_or_equal_than<T, Compare>(op1, op2, cmp);
843 }
844 
845 
852  template <class T, class Compare> inline
853 bool greater_than(const T& op1, const T& op2, Compare && cmp = Compare())
854 {
855  return not less_or_equal_than<T, Compare> (op1, op2, std::move(cmp));
856 }
857 
862  template <class T, class Compare> inline
863 bool greater_than(const T& op1, const T& op2, Compare & cmp)
864 {
865  return not less_or_equal_than<T, Compare> (op1, op2, cmp);
866 }
867 
874  template <class T, class Compare> inline
875 bool greater_or_equal_than(const T& op1, const T & op2,
876  Compare && cmp = Compare())
877 {
878  return not less_than<T, Compare> (op1, op2, std::move(cmp));
879 }
880 
885  template <class T, class Compare> inline
886 bool greater_or_equal_than(const T& op1, const T& op2, Compare & cmp)
887 {
888  return not less_than<T, Compare> (op1, op2, cmp);
889 }
890 
897  template <class T, class Compare> inline
898 bool no_equals(const T & op1, const T & op2, Compare && cmp = Compare())
899 {
900  return cmp(op1, op2) or cmp(op2, op1);
901 }
902 
907  template <class T, class Compare> inline
908 bool no_equals(const T & op1, const T & op2, Compare & cmp)
909 {
910  return cmp(op1, op2) or cmp(op2, op1);
911 }
912 
919  template <class T, class Compare> inline
920 bool are_equals(const T & op1, const T & op2, Compare && cmp = Compare())
921 {
922  return not no_equals <T, Compare> (op1, op2, std::move(cmp));
923 }
924 
929  template <class T, class Compare> inline
930 bool are_equals(const T & op1, const T & op2, Compare & cmp)
931 {
932  return not no_equals <T, Compare> (op1, op2, cmp);
933 }
934 
941  template <class T, class Compare>
943 {
944  bool operator () (const T & op1, const T & op2) const
945  {
946  return Compare () (op2, op1);
947  }
948 };
949 
954  template <class T, class Compare>
955 struct Compare_Dup
956 {
957  bool operator () (const T & op1, const T & op2) const
958  {
959  if (Compare () (op1, op2))
960  return true;
961 
962  if (Compare () (op2, op1))
963  return false;
964 
965  return true;
966  }
967 };
968 
969 } // namespace Aleph
970 
971 #endif /* AHFUNCTION_H */
972 
973 
Definition: ahFunction.H:300
Definition: ahFunction.H:38
Definition: ahFunction.H:516
Definition: ahFunction.H:942
Definition: ahFunction.H:165
Definition: ahFunction.H:340
Definition: ahFunction.H:45
Definition: ahFunction.H:440
Definition: ahFunction.H:397
Definition: ahFunction.H:145
Definition: ahFunction.H:105
Definition: ahFunction.H:573
Definition: ahFunction.H:554
Definition: ahFunction.H:125
Definition: ahFunction.H:425
Definition: ahFunction.H:135
bool less_or_equal_than(const T &op1, const T &op2, Compare &cmp)
Definition: ahFunction.H:823
Definition: ahFunction.H:368
Definition: ahFunction.H:195
Definition: ahFunction.H:411
bool greater_than(const T &op1, const T &op2, Compare &&cmp=Compare())
Definition: ahFunction.H:853
Definition: ahFunction.H:497
Definition: ahFunction.H:261
Definition: ahFunction.H:478
Definition: ahFunction.H:175
Definition: ahFunction.H:185
Definition: ahFunction.H:459
Definition: ahFunction.H:85
Definition: ahFunction.H:231
Definition: ahFunction.H:64
Definition: ahFunction.H:75
Definition: ahFunction.H:535
Definition: ahFunction.H:155
Definition: ahFunction.H:54
bool greater_or_equal_than(const T &op1, const T &op2, Compare &&cmp=Compare())
Definition: ahFunction.H:875
Definition: ahFunction.H:955
Definition: ahFunction.H:95
Definition: ahFunction.H:205
bool no_equals(const T &op1, const T &op2, Compare &&cmp=Compare())
Definition: ahFunction.H:898
Definition: ahFunction.H:115
bool are_equals(const T &op1, const T &op2, Compare &&cmp=Compare())
Definition: ahFunction.H:920
bool less_than(const T &op1, const T &op2, Compare &cmp)
Definition: ahFunction.H:799

Leandro Rabindranath León