annotate armadillo-3.900.4/include/armadillo_bits/operator_relational.hpp @ 84:55a047986812 tip

Update library URI so as not to be document-local
author Chris Cannam
date Wed, 22 Apr 2020 14:21:57 +0100
parents 1ec0e2823891
children
rev   line source
Chris@49 1 // Copyright (C) 2009-2012 NICTA (www.nicta.com.au)
Chris@49 2 // Copyright (C) 2009-2012 Conrad Sanderson
Chris@49 3 //
Chris@49 4 // This Source Code Form is subject to the terms of the Mozilla Public
Chris@49 5 // License, v. 2.0. If a copy of the MPL was not distributed with this
Chris@49 6 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
Chris@49 7
Chris@49 8
Chris@49 9 //! \addtogroup operator_relational
Chris@49 10 //! @{
Chris@49 11
Chris@49 12
Chris@49 13 // < : lt
Chris@49 14 // > : gt
Chris@49 15 // <= : lteq
Chris@49 16 // >= : gteq
Chris@49 17 // == : eq
Chris@49 18 // != : noteq
Chris@49 19
Chris@49 20
Chris@49 21
Chris@49 22 template<typename T1, typename T2>
Chris@49 23 inline
Chris@49 24 typename
Chris@49 25 enable_if2
Chris@49 26 <
Chris@49 27 (is_arma_type<T1>::value && is_arma_type<T2>::value && (is_complex<typename T1::elem_type>::value == false) && (is_complex<typename T2::elem_type>::value == false)),
Chris@49 28 const mtGlue<uword, T1, T2, glue_rel_lt>
Chris@49 29 >::result
Chris@49 30 operator<
Chris@49 31 (const T1& X, const T2& Y)
Chris@49 32 {
Chris@49 33 arma_extra_debug_sigprint();
Chris@49 34
Chris@49 35 return mtGlue<uword, T1, T2, glue_rel_lt>( X, Y );
Chris@49 36 }
Chris@49 37
Chris@49 38
Chris@49 39
Chris@49 40 template<typename T1, typename T2>
Chris@49 41 inline
Chris@49 42 typename
Chris@49 43 enable_if2
Chris@49 44 <
Chris@49 45 (is_arma_type<T1>::value && is_arma_type<T2>::value && (is_complex<typename T1::elem_type>::value == false) && (is_complex<typename T2::elem_type>::value == false)),
Chris@49 46 const mtGlue<uword, T1, T2, glue_rel_gt>
Chris@49 47 >::result
Chris@49 48 operator>
Chris@49 49 (const T1& X, const T2& Y)
Chris@49 50 {
Chris@49 51 arma_extra_debug_sigprint();
Chris@49 52
Chris@49 53 return mtGlue<uword, T1, T2, glue_rel_gt>( X, Y );
Chris@49 54 }
Chris@49 55
Chris@49 56
Chris@49 57
Chris@49 58 template<typename T1, typename T2>
Chris@49 59 inline
Chris@49 60 typename
Chris@49 61 enable_if2
Chris@49 62 <
Chris@49 63 (is_arma_type<T1>::value && is_arma_type<T2>::value && (is_complex<typename T1::elem_type>::value == false) && (is_complex<typename T2::elem_type>::value == false)),
Chris@49 64 const mtGlue<uword, T1, T2, glue_rel_lteq>
Chris@49 65 >::result
Chris@49 66 operator<=
Chris@49 67 (const T1& X, const T2& Y)
Chris@49 68 {
Chris@49 69 arma_extra_debug_sigprint();
Chris@49 70
Chris@49 71 return mtGlue<uword, T1, T2, glue_rel_lteq>( X, Y );
Chris@49 72 }
Chris@49 73
Chris@49 74
Chris@49 75
Chris@49 76 template<typename T1, typename T2>
Chris@49 77 inline
Chris@49 78 typename
Chris@49 79 enable_if2
Chris@49 80 <
Chris@49 81 (is_arma_type<T1>::value && is_arma_type<T2>::value && (is_complex<typename T1::elem_type>::value == false) && (is_complex<typename T2::elem_type>::value == false)),
Chris@49 82 const mtGlue<uword, T1, T2, glue_rel_gteq>
Chris@49 83 >::result
Chris@49 84 operator>=
Chris@49 85 (const T1& X, const T2& Y)
Chris@49 86 {
Chris@49 87 arma_extra_debug_sigprint();
Chris@49 88
Chris@49 89 return mtGlue<uword, T1, T2, glue_rel_gteq>( X, Y );
Chris@49 90 }
Chris@49 91
Chris@49 92
Chris@49 93
Chris@49 94 template<typename T1, typename T2>
Chris@49 95 inline
Chris@49 96 typename
Chris@49 97 enable_if2
Chris@49 98 <
Chris@49 99 (is_arma_type<T1>::value && is_arma_type<T2>::value),
Chris@49 100 const mtGlue<uword, T1, T2, glue_rel_eq>
Chris@49 101 >::result
Chris@49 102 operator==
Chris@49 103 (const T1& X, const T2& Y)
Chris@49 104 {
Chris@49 105 arma_extra_debug_sigprint();
Chris@49 106
Chris@49 107 return mtGlue<uword, T1, T2, glue_rel_eq>( X, Y );
Chris@49 108 }
Chris@49 109
Chris@49 110
Chris@49 111
Chris@49 112 template<typename T1, typename T2>
Chris@49 113 inline
Chris@49 114 typename
Chris@49 115 enable_if2
Chris@49 116 <
Chris@49 117 (is_arma_type<T1>::value && is_arma_type<T2>::value),
Chris@49 118 const mtGlue<uword, T1, T2, glue_rel_noteq>
Chris@49 119 >::result
Chris@49 120 operator!=
Chris@49 121 (const T1& X, const T2& Y)
Chris@49 122 {
Chris@49 123 arma_extra_debug_sigprint();
Chris@49 124
Chris@49 125 return mtGlue<uword, T1, T2, glue_rel_noteq>( X, Y );
Chris@49 126 }
Chris@49 127
Chris@49 128
Chris@49 129
Chris@49 130 //
Chris@49 131 //
Chris@49 132 //
Chris@49 133
Chris@49 134
Chris@49 135
Chris@49 136 template<typename T1>
Chris@49 137 inline
Chris@49 138 typename
Chris@49 139 enable_if2
Chris@49 140 <
Chris@49 141 (is_arma_type<T1>::value && (is_complex<typename T1::elem_type>::value == false)),
Chris@49 142 const mtOp<uword, T1, op_rel_lt_pre>
Chris@49 143 >::result
Chris@49 144 operator<
Chris@49 145 (const typename T1::elem_type val, const T1& X)
Chris@49 146 {
Chris@49 147 arma_extra_debug_sigprint();
Chris@49 148
Chris@49 149 return mtOp<uword, T1, op_rel_lt_pre>(X, val);
Chris@49 150 }
Chris@49 151
Chris@49 152
Chris@49 153
Chris@49 154 template<typename T1>
Chris@49 155 inline
Chris@49 156 typename
Chris@49 157 enable_if2
Chris@49 158 <
Chris@49 159 (is_arma_type<T1>::value && (is_complex<typename T1::elem_type>::value == false)),
Chris@49 160 const mtOp<uword, T1, op_rel_lt_post>
Chris@49 161 >::result
Chris@49 162 operator<
Chris@49 163 (const T1& X, const typename T1::elem_type val)
Chris@49 164 {
Chris@49 165 arma_extra_debug_sigprint();
Chris@49 166
Chris@49 167 return mtOp<uword, T1, op_rel_lt_post>(X, val);
Chris@49 168 }
Chris@49 169
Chris@49 170
Chris@49 171
Chris@49 172 template<typename T1>
Chris@49 173 inline
Chris@49 174 typename
Chris@49 175 enable_if2
Chris@49 176 <
Chris@49 177 (is_arma_type<T1>::value && (is_complex<typename T1::elem_type>::value == false)),
Chris@49 178 const mtOp<uword, T1, op_rel_gt_pre>
Chris@49 179 >::result
Chris@49 180 operator>
Chris@49 181 (const typename T1::elem_type val, const T1& X)
Chris@49 182 {
Chris@49 183 arma_extra_debug_sigprint();
Chris@49 184
Chris@49 185 return mtOp<uword, T1, op_rel_gt_pre>(X, val);
Chris@49 186 }
Chris@49 187
Chris@49 188
Chris@49 189
Chris@49 190 template<typename T1>
Chris@49 191 inline
Chris@49 192 typename
Chris@49 193 enable_if2
Chris@49 194 <
Chris@49 195 (is_arma_type<T1>::value && (is_complex<typename T1::elem_type>::value == false)),
Chris@49 196 const mtOp<uword, T1, op_rel_gt_post>
Chris@49 197 >::result
Chris@49 198 operator>
Chris@49 199 (const T1& X, const typename T1::elem_type val)
Chris@49 200 {
Chris@49 201 arma_extra_debug_sigprint();
Chris@49 202
Chris@49 203 return mtOp<uword, T1, op_rel_gt_post>(X, val);
Chris@49 204 }
Chris@49 205
Chris@49 206
Chris@49 207
Chris@49 208 template<typename T1>
Chris@49 209 inline
Chris@49 210 typename
Chris@49 211 enable_if2
Chris@49 212 <
Chris@49 213 (is_arma_type<T1>::value && (is_complex<typename T1::elem_type>::value == false)),
Chris@49 214 const mtOp<uword, T1, op_rel_lteq_pre>
Chris@49 215 >::result
Chris@49 216 operator<=
Chris@49 217 (const typename T1::elem_type val, const T1& X)
Chris@49 218 {
Chris@49 219 arma_extra_debug_sigprint();
Chris@49 220
Chris@49 221 return mtOp<uword, T1, op_rel_lteq_pre>(X, val);
Chris@49 222 }
Chris@49 223
Chris@49 224
Chris@49 225
Chris@49 226 template<typename T1>
Chris@49 227 inline
Chris@49 228 typename
Chris@49 229 enable_if2
Chris@49 230 <
Chris@49 231 (is_arma_type<T1>::value && (is_complex<typename T1::elem_type>::value == false)),
Chris@49 232 const mtOp<uword, T1, op_rel_lteq_post>
Chris@49 233 >::result
Chris@49 234 operator<=
Chris@49 235 (const T1& X, const typename T1::elem_type val)
Chris@49 236 {
Chris@49 237 arma_extra_debug_sigprint();
Chris@49 238
Chris@49 239 return mtOp<uword, T1, op_rel_lteq_post>(X, val);
Chris@49 240 }
Chris@49 241
Chris@49 242
Chris@49 243
Chris@49 244 template<typename T1>
Chris@49 245 inline
Chris@49 246 typename
Chris@49 247 enable_if2
Chris@49 248 <
Chris@49 249 (is_arma_type<T1>::value && (is_complex<typename T1::elem_type>::value == false)),
Chris@49 250 const mtOp<uword, T1, op_rel_gteq_pre>
Chris@49 251 >::result
Chris@49 252 operator>=
Chris@49 253 (const typename T1::elem_type val, const T1& X)
Chris@49 254 {
Chris@49 255 arma_extra_debug_sigprint();
Chris@49 256
Chris@49 257 return mtOp<uword, T1, op_rel_gteq_pre>(X, val);
Chris@49 258 }
Chris@49 259
Chris@49 260
Chris@49 261
Chris@49 262 template<typename T1>
Chris@49 263 inline
Chris@49 264 typename
Chris@49 265 enable_if2
Chris@49 266 <
Chris@49 267 (is_arma_type<T1>::value && (is_complex<typename T1::elem_type>::value == false)),
Chris@49 268 const mtOp<uword, T1, op_rel_gteq_post>
Chris@49 269 >::result
Chris@49 270 operator>=
Chris@49 271 (const T1& X, const typename T1::elem_type val)
Chris@49 272 {
Chris@49 273 arma_extra_debug_sigprint();
Chris@49 274
Chris@49 275 return mtOp<uword, T1, op_rel_gteq_post>(X, val);
Chris@49 276 }
Chris@49 277
Chris@49 278
Chris@49 279
Chris@49 280 template<typename T1>
Chris@49 281 inline
Chris@49 282 typename
Chris@49 283 enable_if2
Chris@49 284 <
Chris@49 285 is_arma_type<T1>::value,
Chris@49 286 const mtOp<uword, T1, op_rel_eq>
Chris@49 287 >::result
Chris@49 288 operator==
Chris@49 289 (const typename T1::elem_type val, const T1& X)
Chris@49 290 {
Chris@49 291 arma_extra_debug_sigprint();
Chris@49 292
Chris@49 293 return mtOp<uword, T1, op_rel_eq>(X, val);
Chris@49 294 }
Chris@49 295
Chris@49 296
Chris@49 297
Chris@49 298 template<typename T1>
Chris@49 299 inline
Chris@49 300 typename
Chris@49 301 enable_if2
Chris@49 302 <
Chris@49 303 is_arma_type<T1>::value,
Chris@49 304 const mtOp<uword, T1, op_rel_eq>
Chris@49 305 >::result
Chris@49 306 operator==
Chris@49 307 (const T1& X, const typename T1::elem_type val)
Chris@49 308 {
Chris@49 309 arma_extra_debug_sigprint();
Chris@49 310
Chris@49 311 return mtOp<uword, T1, op_rel_eq>(X, val);
Chris@49 312 }
Chris@49 313
Chris@49 314
Chris@49 315
Chris@49 316 template<typename T1>
Chris@49 317 inline
Chris@49 318 typename
Chris@49 319 enable_if2
Chris@49 320 <
Chris@49 321 is_arma_type<T1>::value,
Chris@49 322 const mtOp<uword, T1, op_rel_noteq>
Chris@49 323 >::result
Chris@49 324 operator!=
Chris@49 325 (const typename T1::elem_type val, const T1& X)
Chris@49 326 {
Chris@49 327 arma_extra_debug_sigprint();
Chris@49 328
Chris@49 329 return mtOp<uword, T1, op_rel_noteq>(X, val);
Chris@49 330 }
Chris@49 331
Chris@49 332
Chris@49 333
Chris@49 334 template<typename T1>
Chris@49 335 inline
Chris@49 336 typename
Chris@49 337 enable_if2
Chris@49 338 <
Chris@49 339 is_arma_type<T1>::value,
Chris@49 340 const mtOp<uword, T1, op_rel_noteq>
Chris@49 341 >::result
Chris@49 342 operator!=
Chris@49 343 (const T1& X, const typename T1::elem_type val)
Chris@49 344 {
Chris@49 345 arma_extra_debug_sigprint();
Chris@49 346
Chris@49 347 return mtOp<uword, T1, op_rel_noteq>(X, val);
Chris@49 348 }
Chris@49 349
Chris@49 350
Chris@49 351
Chris@49 352 //! @}