00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef OLENA_LEVEL_COMPARE_HH
00029 # define OLENA_LEVEL_COMPARE_HH
00030
00031 # include <oln/basics.hh>
00032
00033 namespace oln {
00034
00035 namespace level {
00036
00041 template<class I1, class I2> inline
00042 bool
00043 is_greater_or_equal(const abstract::image<I1>& input1,
00044 const abstract::image<I2>& input2)
00045 {
00046 precondition(input1.size() == input2.size());
00047 oln_iter_type(I1) p(input1);
00048 for_all (p)
00049 if (!(input1[p] >= input2[p]))
00050 return false;
00051 return true;
00052 }
00053
00058 template<class I1, class I2> inline
00059 bool
00060 is_greater(const abstract::image<I1>& input1,
00061 const abstract::image<I2>& input2)
00062 {
00063 precondition(input1.size() == input2.size());
00064 oln_iter_type(I1) p(input1);
00065 for_all (p)
00066 if (!(input1[p] > input2[p]))
00067 return false;
00068 return true;
00069 }
00070
00075 template<class I1, class I2> inline
00076 bool
00077 is_lower_or_equal(const abstract::image<I1>& input1,
00078 const abstract::image<I2>& input2)
00079 {
00080 precondition(input1.size() == input2.size());
00081 oln_iter_type(I1) p(input1);
00082 for_all (p)
00083 if (!(input1[p] <= input2[p]))
00084 return false;
00085 return true;
00086 }
00087
00092 template<class I1, class I2> inline
00093 bool
00094 is_lower(const abstract::image<I1>& input1,
00095 const abstract::image<I2>& input2)
00096 {
00097 precondition(input1.size() == input2.size());
00098 oln_iter_type(I1) p(input1);
00099 for_all (p)
00100 if (!(input1[p] < input2[p]))
00101 return false;
00102 return true;
00103 }
00104
00105
00110 template<class I1, class I2> inline
00111 bool
00112 is_equal(const abstract::image<I1>& input1,
00113 const abstract::image<I2>& input2)
00114 {
00115 precondition(input1.size() == input2.size());
00116 oln_iter_type(I1) p(input1);
00117 for_all (p)
00118 if (!(input1[p] == input2[p]))
00119 return false;
00120 return true;
00121 }
00122
00123 }
00124
00125 }
00126
00127 #endif // ! OLENA_LEVEL_COMPARE_HH