$search
00001 // Copyright (C) 2009-2010 NICTA (www.nicta.com.au) 00002 // Copyright (C) 2009-2010 Conrad Sanderson 00003 // 00004 // This file is part of the Armadillo C++ library. 00005 // It is provided without any warranty of fitness 00006 // for any purpose. You can redistribute this file 00007 // and/or modify it under the terms of the GNU 00008 // Lesser General Public License (LGPL) as published 00009 // by the Free Software Foundation, either version 3 00010 // of the License or (at your option) any later version. 00011 // (see http://www.opensource.org/licenses for more info) 00012 00013 00016 00017 00018 // < : lt 00019 // > : gt 00020 // <= : lteq 00021 // >= : gteq 00022 // == : eq 00023 // != : noteq 00024 00025 00026 00027 template<typename T1, typename T2> 00028 inline 00029 const mtGlue<uword, T1, T2, glue_rel_lt> 00030 operator< 00031 (const Base<typename arma_not_cx<typename T1::elem_type>::result,T1>& X, const Base<typename arma_not_cx<typename T1::elem_type>::result,T2>& Y) 00032 { 00033 arma_extra_debug_sigprint(); 00034 00035 return mtGlue<uword, T1, T2, glue_rel_lt>( X.get_ref(), Y.get_ref() ); 00036 } 00037 00038 00039 00040 template<typename T1, typename T2> 00041 inline 00042 const mtGlue<uword, T1, T2, glue_rel_gt> 00043 operator> 00044 (const Base<typename arma_not_cx<typename T1::elem_type>::result,T1>& X, const Base<typename arma_not_cx<typename T1::elem_type>::result,T2>& Y) 00045 { 00046 arma_extra_debug_sigprint(); 00047 00048 return mtGlue<uword, T1, T2, glue_rel_gt>( X.get_ref(), Y.get_ref() ); 00049 } 00050 00051 00052 00053 template<typename T1, typename T2> 00054 inline 00055 const mtGlue<uword, T1, T2, glue_rel_lteq> 00056 operator<= 00057 (const Base<typename arma_not_cx<typename T1::elem_type>::result,T1>& X, const Base<typename arma_not_cx<typename T1::elem_type>::result,T2>& Y) 00058 { 00059 arma_extra_debug_sigprint(); 00060 00061 return mtGlue<uword, T1, T2, glue_rel_lteq>( X.get_ref(), Y.get_ref() ); 00062 } 00063 00064 00065 00066 template<typename T1, typename T2> 00067 inline 00068 const mtGlue<uword, T1, T2, glue_rel_gteq> 00069 operator>= 00070 (const Base<typename arma_not_cx<typename T1::elem_type>::result,T1>& X, const Base<typename arma_not_cx<typename T1::elem_type>::result,T2>& Y) 00071 { 00072 arma_extra_debug_sigprint(); 00073 00074 return mtGlue<uword, T1, T2, glue_rel_gteq>( X.get_ref(), Y.get_ref() ); 00075 } 00076 00077 00078 00079 template<typename T1, typename T2> 00080 inline 00081 const mtGlue<uword, T1, T2, glue_rel_eq> 00082 operator== 00083 (const Base<typename T1::elem_type,T1>& X, const Base<typename T1::elem_type,T2>& Y) 00084 { 00085 arma_extra_debug_sigprint(); 00086 00087 return mtGlue<uword, T1, T2, glue_rel_eq>( X.get_ref(), Y.get_ref() ); 00088 } 00089 00090 00091 00092 template<typename T1, typename T2> 00093 inline 00094 const mtGlue<uword, T1, T2, glue_rel_noteq> 00095 operator!= 00096 (const Base<typename T1::elem_type,T1>& X, const Base<typename T1::elem_type,T2>& Y) 00097 { 00098 arma_extra_debug_sigprint(); 00099 00100 return mtGlue<uword, T1, T2, glue_rel_noteq>( X.get_ref(), Y.get_ref() ); 00101 } 00102 00103 00104 00105 // 00106 // 00107 // 00108 00109 00110 00111 template<typename T1> 00112 inline 00113 const mtOp<uword, T1, op_rel_lt_pre> 00114 operator< 00115 (const typename arma_not_cx<typename T1::elem_type>::result val, const Base<typename arma_not_cx<typename T1::elem_type>::result,T1>& X) 00116 { 00117 arma_extra_debug_sigprint(); 00118 00119 return mtOp<uword, T1, op_rel_lt_pre>(X.get_ref(), val); 00120 } 00121 00122 00123 00124 template<typename T1> 00125 inline 00126 const mtOp<uword, T1, op_rel_lt_post> 00127 operator< 00128 (const Base<typename arma_not_cx<typename T1::elem_type>::result,T1>& X, const typename arma_not_cx<typename T1::elem_type>::result val) 00129 { 00130 arma_extra_debug_sigprint(); 00131 00132 return mtOp<uword, T1, op_rel_lt_post>(X.get_ref(), val); 00133 } 00134 00135 00136 00137 template<typename T1> 00138 inline 00139 const mtOp<uword, T1, op_rel_gt_pre> 00140 operator> 00141 (const typename arma_not_cx<typename T1::elem_type>::result val, const Base<typename arma_not_cx<typename T1::elem_type>::result,T1>& X) 00142 { 00143 arma_extra_debug_sigprint(); 00144 00145 return mtOp<uword, T1, op_rel_gt_pre>(X.get_ref(), val); 00146 } 00147 00148 00149 00150 template<typename T1> 00151 inline 00152 const mtOp<uword, T1, op_rel_gt_post> 00153 operator> 00154 (const Base<typename arma_not_cx<typename T1::elem_type>::result,T1>& X, const typename arma_not_cx<typename T1::elem_type>::result val) 00155 { 00156 arma_extra_debug_sigprint(); 00157 00158 return mtOp<uword, T1, op_rel_gt_post>(X.get_ref(), val); 00159 } 00160 00161 00162 00163 template<typename T1> 00164 inline 00165 const mtOp<uword, T1, op_rel_lteq_pre> 00166 operator<= 00167 (const typename arma_not_cx<typename T1::elem_type>::result val, const Base<typename arma_not_cx<typename T1::elem_type>::result,T1>& X) 00168 { 00169 arma_extra_debug_sigprint(); 00170 00171 return mtOp<uword, T1, op_rel_lteq_pre>(X.get_ref(), val); 00172 } 00173 00174 00175 00176 template<typename T1> 00177 inline 00178 const mtOp<uword, T1, op_rel_lteq_post> 00179 operator<= 00180 (const Base<typename arma_not_cx<typename T1::elem_type>::result,T1>& X, const typename arma_not_cx<typename T1::elem_type>::result val) 00181 { 00182 arma_extra_debug_sigprint(); 00183 00184 return mtOp<uword, T1, op_rel_lteq_post>(X.get_ref(), val); 00185 } 00186 00187 00188 00189 template<typename T1> 00190 inline 00191 const mtOp<uword, T1, op_rel_gteq_pre> 00192 operator>= 00193 (const typename arma_not_cx<typename T1::elem_type>::result val, const Base<typename arma_not_cx<typename T1::elem_type>::result,T1>& X) 00194 { 00195 arma_extra_debug_sigprint(); 00196 00197 return mtOp<uword, T1, op_rel_gteq_pre>(X.get_ref(), val); 00198 } 00199 00200 00201 00202 template<typename T1> 00203 inline 00204 const mtOp<uword, T1, op_rel_gteq_post> 00205 operator>= 00206 (const Base<typename arma_not_cx<typename T1::elem_type>::result,T1>& X, const typename arma_not_cx<typename T1::elem_type>::result val) 00207 { 00208 arma_extra_debug_sigprint(); 00209 00210 return mtOp<uword, T1, op_rel_gteq_post>(X.get_ref(), val); 00211 } 00212 00213 00214 00215 template<typename T1> 00216 inline 00217 const mtOp<uword, T1, op_rel_eq> 00218 operator== 00219 (const typename T1::elem_type val, const Base<typename T1::elem_type,T1>& X) 00220 { 00221 arma_extra_debug_sigprint(); 00222 00223 return mtOp<uword, T1, op_rel_eq>(X.get_ref(), val); 00224 } 00225 00226 00227 00228 template<typename T1> 00229 inline 00230 const mtOp<uword, T1, op_rel_eq> 00231 operator== 00232 (const Base<typename T1::elem_type,T1>& X, const typename T1::elem_type val) 00233 { 00234 arma_extra_debug_sigprint(); 00235 00236 return mtOp<uword, T1, op_rel_eq>(X.get_ref(), val); 00237 } 00238 00239 00240 00241 template<typename T1> 00242 inline 00243 const mtOp<uword, T1, op_rel_noteq> 00244 operator!= 00245 (const typename T1::elem_type val, const Base<typename T1::elem_type,T1>& X) 00246 { 00247 arma_extra_debug_sigprint(); 00248 00249 return mtOp<uword, T1, op_rel_noteq>(X.get_ref(), val); 00250 } 00251 00252 00253 00254 template<typename T1> 00255 inline 00256 const mtOp<uword, T1, op_rel_noteq> 00257 operator!= 00258 (const Base<typename T1::elem_type,T1>& X, const typename T1::elem_type val) 00259 { 00260 arma_extra_debug_sigprint(); 00261 00262 return mtOp<uword, T1, op_rel_noteq>(X.get_ref(), val); 00263 } 00264 00265 00266