$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 00019 // < : lt 00020 // > : gt 00021 // <= : lteq 00022 // >= : gteq 00023 // == : eq 00024 // != : noteq 00025 00026 00027 00028 template<typename T1, typename T2> 00029 inline 00030 const mtGlueCube<uword, T1, T2, glue_rel_lt> 00031 operator< 00032 (const BaseCube<typename arma_not_cx<typename T1::elem_type>::result,T1>& X, const BaseCube<typename arma_not_cx<typename T1::elem_type>::result,T2>& Y) 00033 { 00034 arma_extra_debug_sigprint(); 00035 00036 return mtGlueCube<uword, T1, T2, glue_rel_lt>( X.get_ref(), Y.get_ref() ); 00037 } 00038 00039 00040 00041 template<typename T1, typename T2> 00042 inline 00043 const mtGlueCube<uword, T1, T2, glue_rel_gt> 00044 operator> 00045 (const BaseCube<typename arma_not_cx<typename T1::elem_type>::result,T1>& X, const BaseCube<typename arma_not_cx<typename T1::elem_type>::result,T2>& Y) 00046 { 00047 arma_extra_debug_sigprint(); 00048 00049 return mtGlueCube<uword, T1, T2, glue_rel_gt>( X.get_ref(), Y.get_ref() ); 00050 } 00051 00052 00053 00054 template<typename T1, typename T2> 00055 inline 00056 const mtGlueCube<uword, T1, T2, glue_rel_lteq> 00057 operator<= 00058 (const BaseCube<typename arma_not_cx<typename T1::elem_type>::result,T1>& X, const BaseCube<typename arma_not_cx<typename T1::elem_type>::result,T2>& Y) 00059 { 00060 arma_extra_debug_sigprint(); 00061 00062 return mtGlueCube<uword, T1, T2, glue_rel_lteq>( X.get_ref(), Y.get_ref() ); 00063 } 00064 00065 00066 00067 template<typename T1, typename T2> 00068 inline 00069 const mtGlueCube<uword, T1, T2, glue_rel_gteq> 00070 operator>= 00071 (const BaseCube<typename arma_not_cx<typename T1::elem_type>::result,T1>& X, const BaseCube<typename arma_not_cx<typename T1::elem_type>::result,T2>& Y) 00072 { 00073 arma_extra_debug_sigprint(); 00074 00075 return mtGlueCube<uword, T1, T2, glue_rel_gteq>( X.get_ref(), Y.get_ref() ); 00076 } 00077 00078 00079 00080 template<typename T1, typename T2> 00081 inline 00082 const mtGlueCube<uword, T1, T2, glue_rel_eq> 00083 operator== 00084 (const BaseCube<typename T1::elem_type,T1>& X, const BaseCube<typename T1::elem_type,T2>& Y) 00085 { 00086 arma_extra_debug_sigprint(); 00087 00088 return mtGlueCube<uword, T1, T2, glue_rel_eq>( X.get_ref(), Y.get_ref() ); 00089 } 00090 00091 00092 00093 template<typename T1, typename T2> 00094 inline 00095 const mtGlueCube<uword, T1, T2, glue_rel_noteq> 00096 operator!= 00097 (const BaseCube<typename T1::elem_type,T1>& X, const BaseCube<typename T1::elem_type,T2>& Y) 00098 { 00099 arma_extra_debug_sigprint(); 00100 00101 return mtGlueCube<uword, T1, T2, glue_rel_noteq>( X.get_ref(), Y.get_ref() ); 00102 } 00103 00104 00105 00106 // 00107 // 00108 // 00109 00110 00111 00112 template<typename T1> 00113 inline 00114 const mtOpCube<uword, T1, op_rel_lt_pre> 00115 operator< 00116 (const typename arma_not_cx<typename T1::elem_type>::result val, const BaseCube<typename arma_not_cx<typename T1::elem_type>::result,T1>& X) 00117 { 00118 arma_extra_debug_sigprint(); 00119 00120 return mtOpCube<uword, T1, op_rel_lt_pre>(X.get_ref(), val); 00121 } 00122 00123 00124 00125 template<typename T1> 00126 inline 00127 const mtOpCube<uword, T1, op_rel_lt_post> 00128 operator< 00129 (const BaseCube<typename arma_not_cx<typename T1::elem_type>::result,T1>& X, const typename arma_not_cx<typename T1::elem_type>::result val) 00130 { 00131 arma_extra_debug_sigprint(); 00132 00133 return mtOpCube<uword, T1, op_rel_lt_post>(X.get_ref(), val); 00134 } 00135 00136 00137 00138 template<typename T1> 00139 inline 00140 const mtOpCube<uword, T1, op_rel_gt_pre> 00141 operator> 00142 (const typename arma_not_cx<typename T1::elem_type>::result val, const BaseCube<typename arma_not_cx<typename T1::elem_type>::result,T1>& X) 00143 { 00144 arma_extra_debug_sigprint(); 00145 00146 return mtOpCube<uword, T1, op_rel_gt_pre>(X.get_ref(), val); 00147 } 00148 00149 00150 00151 template<typename T1> 00152 inline 00153 const mtOpCube<uword, T1, op_rel_gt_post> 00154 operator> 00155 (const BaseCube<typename arma_not_cx<typename T1::elem_type>::result,T1>& X, const typename arma_not_cx<typename T1::elem_type>::result val) 00156 { 00157 arma_extra_debug_sigprint(); 00158 00159 return mtOpCube<uword, T1, op_rel_gt_post>(X.get_ref(), val); 00160 } 00161 00162 00163 00164 template<typename T1> 00165 inline 00166 const mtOpCube<uword, T1, op_rel_lteq_pre> 00167 operator<= 00168 (const typename arma_not_cx<typename T1::elem_type>::result val, const BaseCube<typename arma_not_cx<typename T1::elem_type>::result,T1>& X) 00169 { 00170 arma_extra_debug_sigprint(); 00171 00172 return mtOpCube<uword, T1, op_rel_lteq_pre>(X.get_ref(), val); 00173 } 00174 00175 00176 00177 template<typename T1> 00178 inline 00179 const mtOpCube<uword, T1, op_rel_lteq_post> 00180 operator<= 00181 (const BaseCube<typename arma_not_cx<typename T1::elem_type>::result,T1>& X, const typename arma_not_cx<typename T1::elem_type>::result val) 00182 { 00183 arma_extra_debug_sigprint(); 00184 00185 return mtOpCube<uword, T1, op_rel_lteq_post>(X.get_ref(), val); 00186 } 00187 00188 00189 00190 template<typename T1> 00191 inline 00192 const mtOpCube<uword, T1, op_rel_gteq_pre> 00193 operator>= 00194 (const typename arma_not_cx<typename T1::elem_type>::result val, const BaseCube<typename arma_not_cx<typename T1::elem_type>::result,T1>& X) 00195 { 00196 arma_extra_debug_sigprint(); 00197 00198 return mtOpCube<uword, T1, op_rel_gteq_pre>(X.get_ref(), val); 00199 } 00200 00201 00202 00203 template<typename T1> 00204 inline 00205 const mtOpCube<uword, T1, op_rel_gteq_post> 00206 operator>= 00207 (const BaseCube<typename arma_not_cx<typename T1::elem_type>::result,T1>& X, const typename arma_not_cx<typename T1::elem_type>::result val) 00208 { 00209 arma_extra_debug_sigprint(); 00210 00211 return mtOpCube<uword, T1, op_rel_gteq_post>(X.get_ref(), val); 00212 } 00213 00214 00215 00216 template<typename T1> 00217 inline 00218 const mtOpCube<uword, T1, op_rel_eq> 00219 operator== 00220 (const typename T1::elem_type val, const BaseCube<typename T1::elem_type,T1>& X) 00221 { 00222 arma_extra_debug_sigprint(); 00223 00224 return mtOpCube<uword, T1, op_rel_eq>(X.get_ref(), val); 00225 } 00226 00227 00228 00229 template<typename T1> 00230 inline 00231 const mtOpCube<uword, T1, op_rel_eq> 00232 operator== 00233 (const BaseCube<typename T1::elem_type,T1>& X, const typename T1::elem_type val) 00234 { 00235 arma_extra_debug_sigprint(); 00236 00237 return mtOpCube<uword, T1, op_rel_eq>(X.get_ref(), val); 00238 } 00239 00240 00241 00242 template<typename T1> 00243 inline 00244 const mtOpCube<uword, T1, op_rel_noteq> 00245 operator!= 00246 (const typename T1::elem_type val, const BaseCube<typename T1::elem_type,T1>& X) 00247 { 00248 arma_extra_debug_sigprint(); 00249 00250 return mtOpCube<uword, T1, op_rel_noteq>(X.get_ref(), val); 00251 } 00252 00253 00254 00255 template<typename T1> 00256 inline 00257 const mtOpCube<uword, T1, op_rel_noteq> 00258 operator!= 00259 (const BaseCube<typename T1::elem_type,T1>& X, const typename T1::elem_type val) 00260 { 00261 arma_extra_debug_sigprint(); 00262 00263 return mtOpCube<uword, T1, op_rel_noteq>(X.get_ref(), val); 00264 } 00265 00266 00267