annotate liboctave/oct-inttypes.cc @ 6469:a848b846cb3a ss-2-9-10

[project @ 2007-03-27 18:42:11 by jwe]
author jwe
date Tue, 27 Mar 2007 18:42:11 +0000
parents 143b556ce725
children 93c65f2a5668
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
1 /*
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
2
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
3 Copyright (C) 2004 John W. Eaton
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
4
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
5 This file is part of Octave.
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
6
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
7 Octave is free software; you can redistribute it and/or modify it
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
8 under the terms of the GNU General Public License as published by the
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
9 Free Software Foundation; either version 2, or (at your option) any
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
10 later version.
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
11
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
12 Octave is distributed in the hope that it will be useful, but WITHOUT
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
15 for more details.
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
16
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
18 along with Octave; see the file COPYING. If not, write to the Free
5307
4c8a2e4e0717 [project @ 2005-04-26 19:24:27 by jwe]
jwe
parents: 5072
diff changeset
19 Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
4c8a2e4e0717 [project @ 2005-04-26 19:24:27 by jwe]
jwe
parents: 5072
diff changeset
20 02110-1301, USA.
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
21
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
22 */
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
23
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
24 #ifdef HAVE_CONFIG_H
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
25 #include <config.h>
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
26 #endif
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
27
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
28 #include "oct-inttypes.h"
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
29
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
30 #define INSTANTIATE_INT_DOUBLE_BIN_OP(T, OP) \
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 6105
diff changeset
31 template OCTAVE_API octave_int<T> operator OP (const octave_int<T>&, double)
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
32
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
33 #define INSTANTIATE_INT_DOUBLE_BIN_OPS(T) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
34 INSTANTIATE_INT_DOUBLE_BIN_OP (T, +); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
35 INSTANTIATE_INT_DOUBLE_BIN_OP (T, -); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
36 INSTANTIATE_INT_DOUBLE_BIN_OP (T, *); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
37 INSTANTIATE_INT_DOUBLE_BIN_OP (T, /)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
38
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
39 #define INSTANTIATE_DOUBLE_INT_BIN_OP(T, OP) \
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 6105
diff changeset
40 template OCTAVE_API octave_int<T> operator OP (double, const octave_int<T>&)
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
41
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
42 #define INSTANTIATE_DOUBLE_INT_BIN_OPS(T) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
43 INSTANTIATE_DOUBLE_INT_BIN_OP (T, +); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
44 INSTANTIATE_DOUBLE_INT_BIN_OP (T, -); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
45 INSTANTIATE_DOUBLE_INT_BIN_OP (T, *); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
46 INSTANTIATE_DOUBLE_INT_BIN_OP (T, /)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
47
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
48 #define INSTANTIATE_INT_DOUBLE_CMP_OP(T, OP) \
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 6105
diff changeset
49 template OCTAVE_API bool operator OP (const octave_int<T>&, const double&)
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
50
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
51 #define INSTANTIATE_INT_DOUBLE_CMP_OPS(T) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
52 INSTANTIATE_INT_DOUBLE_CMP_OP (T, <); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
53 INSTANTIATE_INT_DOUBLE_CMP_OP (T, <=); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
54 INSTANTIATE_INT_DOUBLE_CMP_OP (T, >=); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
55 INSTANTIATE_INT_DOUBLE_CMP_OP (T, >); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
56 INSTANTIATE_INT_DOUBLE_CMP_OP (T, ==); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
57 INSTANTIATE_INT_DOUBLE_CMP_OP (T, !=)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
58
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
59 #define INSTANTIATE_DOUBLE_INT_CMP_OP(T, OP) \
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 6105
diff changeset
60 template OCTAVE_API bool operator OP (const double&, const octave_int<T>&)
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
61
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
62 #define INSTANTIATE_DOUBLE_INT_CMP_OPS(T) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
63 INSTANTIATE_DOUBLE_INT_CMP_OP (T, <); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
64 INSTANTIATE_DOUBLE_INT_CMP_OP (T, <=); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
65 INSTANTIATE_DOUBLE_INT_CMP_OP (T, >=); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
66 INSTANTIATE_DOUBLE_INT_CMP_OP (T, >); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
67 INSTANTIATE_DOUBLE_INT_CMP_OP (T, ==); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
68 INSTANTIATE_DOUBLE_INT_CMP_OP (T, !=)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
69
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
70 #define INSTANTIATE_INT_BITCMP_OP(T, OP) \
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 6105
diff changeset
71 template OCTAVE_API octave_int<T> \
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
72 operator OP (const octave_int<T>&, const octave_int<T>&)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
73
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
74 #define INSTANTIATE_INT_BITCMP_OPS(T) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
75 INSTANTIATE_INT_BITCMP_OP (T, &); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
76 INSTANTIATE_INT_BITCMP_OP (T, |); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
77 INSTANTIATE_INT_BITCMP_OP (T, ^)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
78
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
79 #define INSTANTIATE_INTTYPE(T) \
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 6105
diff changeset
80 template class OCTAVE_API octave_int<T>; \
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 6105
diff changeset
81 template OCTAVE_API octave_int<T> pow (const octave_int<T>&, const octave_int<T>&); \
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 6105
diff changeset
82 template OCTAVE_API octave_int<T> pow (double, const octave_int<T>&); \
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 6105
diff changeset
83 template OCTAVE_API octave_int<T> pow (const octave_int<T>&, double b); \
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 6105
diff changeset
84 template OCTAVE_API std::ostream& operator << (std::ostream&, const octave_int<T>&); \
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 6105
diff changeset
85 template OCTAVE_API std::istream& operator >> (std::istream&, octave_int<T>&); \
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 6105
diff changeset
86 template OCTAVE_API octave_int<T> \
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
87 bitshift (const octave_int<T>&, int, const octave_int<T>&); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
88 INSTANTIATE_INT_DOUBLE_BIN_OPS (T); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
89 INSTANTIATE_DOUBLE_INT_BIN_OPS (T); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
90 INSTANTIATE_INT_DOUBLE_CMP_OPS (T); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
91 INSTANTIATE_DOUBLE_INT_CMP_OPS (T); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
92 INSTANTIATE_INT_BITCMP_OPS (T)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
93
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
94 INSTANTIATE_INTTYPE (int8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
95 INSTANTIATE_INTTYPE (int16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
96 INSTANTIATE_INTTYPE (int32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
97 INSTANTIATE_INTTYPE (int64_t);
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
98
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
99 INSTANTIATE_INTTYPE (uint8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
100 INSTANTIATE_INTTYPE (uint16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
101 INSTANTIATE_INTTYPE (uint32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
102 INSTANTIATE_INTTYPE (uint64_t);
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
103
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
104 #define INSTANTIATE_INTTYPE_BIN_OP(T1, T2, OP) \
6105
bf8366f93881 [project @ 2006-10-26 21:46:29 by jwe]
jwe
parents: 5828
diff changeset
105 template OCTAVE_API octave_int<octave_int_binop_traits<T1, T2>::TR> \
bf8366f93881 [project @ 2006-10-26 21:46:29 by jwe]
jwe
parents: 5828
diff changeset
106 operator OP<T1, T2> (const octave_int<T1>&, const octave_int<T2>&)
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
107
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
108 #define INSTANTIATE_INTTYPE_BIN_OPS(T1, T2) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
109 INSTANTIATE_INTTYPE_BIN_OP (T1, T2, +); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
110 INSTANTIATE_INTTYPE_BIN_OP (T1, T2, -); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
111 INSTANTIATE_INTTYPE_BIN_OP (T1, T2, *); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
112 INSTANTIATE_INTTYPE_BIN_OP (T1, T2, /)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
113
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
114 INSTANTIATE_INTTYPE_BIN_OPS (int8_t, int8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
115 INSTANTIATE_INTTYPE_BIN_OPS (int8_t, int16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
116 INSTANTIATE_INTTYPE_BIN_OPS (int8_t, int32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
117 INSTANTIATE_INTTYPE_BIN_OPS (int8_t, int64_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
118 INSTANTIATE_INTTYPE_BIN_OPS (int8_t, uint8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
119 INSTANTIATE_INTTYPE_BIN_OPS (int8_t, uint16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
120 INSTANTIATE_INTTYPE_BIN_OPS (int8_t, uint32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
121 INSTANTIATE_INTTYPE_BIN_OPS (int8_t, uint64_t);
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
122
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
123 INSTANTIATE_INTTYPE_BIN_OPS (int16_t, int8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
124 INSTANTIATE_INTTYPE_BIN_OPS (int16_t, int16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
125 INSTANTIATE_INTTYPE_BIN_OPS (int16_t, int32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
126 INSTANTIATE_INTTYPE_BIN_OPS (int16_t, int64_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
127 INSTANTIATE_INTTYPE_BIN_OPS (int16_t, uint8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
128 INSTANTIATE_INTTYPE_BIN_OPS (int16_t, uint16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
129 INSTANTIATE_INTTYPE_BIN_OPS (int16_t, uint32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
130 INSTANTIATE_INTTYPE_BIN_OPS (int16_t, uint64_t);
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
131
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
132 INSTANTIATE_INTTYPE_BIN_OPS (int32_t, int8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
133 INSTANTIATE_INTTYPE_BIN_OPS (int32_t, int16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
134 INSTANTIATE_INTTYPE_BIN_OPS (int32_t, int32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
135 INSTANTIATE_INTTYPE_BIN_OPS (int32_t, int64_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
136 INSTANTIATE_INTTYPE_BIN_OPS (int32_t, uint8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
137 INSTANTIATE_INTTYPE_BIN_OPS (int32_t, uint16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
138 INSTANTIATE_INTTYPE_BIN_OPS (int32_t, uint32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
139 INSTANTIATE_INTTYPE_BIN_OPS (int32_t, uint64_t);
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
140
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
141 INSTANTIATE_INTTYPE_BIN_OPS (int64_t, int8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
142 INSTANTIATE_INTTYPE_BIN_OPS (int64_t, int16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
143 INSTANTIATE_INTTYPE_BIN_OPS (int64_t, int32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
144 INSTANTIATE_INTTYPE_BIN_OPS (int64_t, int64_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
145 INSTANTIATE_INTTYPE_BIN_OPS (int64_t, uint8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
146 INSTANTIATE_INTTYPE_BIN_OPS (int64_t, uint16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
147 INSTANTIATE_INTTYPE_BIN_OPS (int64_t, uint32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
148 INSTANTIATE_INTTYPE_BIN_OPS (int64_t, uint64_t);
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
149
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
150 INSTANTIATE_INTTYPE_BIN_OPS (uint8_t, int8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
151 INSTANTIATE_INTTYPE_BIN_OPS (uint8_t, int16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
152 INSTANTIATE_INTTYPE_BIN_OPS (uint8_t, int32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
153 INSTANTIATE_INTTYPE_BIN_OPS (uint8_t, int64_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
154 INSTANTIATE_INTTYPE_BIN_OPS (uint8_t, uint8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
155 INSTANTIATE_INTTYPE_BIN_OPS (uint8_t, uint16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
156 INSTANTIATE_INTTYPE_BIN_OPS (uint8_t, uint32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
157 INSTANTIATE_INTTYPE_BIN_OPS (uint8_t, uint64_t);
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
158
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
159 INSTANTIATE_INTTYPE_BIN_OPS (uint16_t, int8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
160 INSTANTIATE_INTTYPE_BIN_OPS (uint16_t, int16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
161 INSTANTIATE_INTTYPE_BIN_OPS (uint16_t, int32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
162 INSTANTIATE_INTTYPE_BIN_OPS (uint16_t, int64_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
163 INSTANTIATE_INTTYPE_BIN_OPS (uint16_t, uint8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
164 INSTANTIATE_INTTYPE_BIN_OPS (uint16_t, uint16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
165 INSTANTIATE_INTTYPE_BIN_OPS (uint16_t, uint32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
166 INSTANTIATE_INTTYPE_BIN_OPS (uint16_t, uint64_t);
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
167
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
168 INSTANTIATE_INTTYPE_BIN_OPS (uint32_t, int8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
169 INSTANTIATE_INTTYPE_BIN_OPS (uint32_t, int16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
170 INSTANTIATE_INTTYPE_BIN_OPS (uint32_t, int32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
171 INSTANTIATE_INTTYPE_BIN_OPS (uint32_t, int64_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
172 INSTANTIATE_INTTYPE_BIN_OPS (uint32_t, uint8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
173 INSTANTIATE_INTTYPE_BIN_OPS (uint32_t, uint16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
174 INSTANTIATE_INTTYPE_BIN_OPS (uint32_t, uint32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
175 INSTANTIATE_INTTYPE_BIN_OPS (uint32_t, uint64_t);
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
176
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
177 INSTANTIATE_INTTYPE_BIN_OPS (uint64_t, int8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
178 INSTANTIATE_INTTYPE_BIN_OPS (uint64_t, int16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
179 INSTANTIATE_INTTYPE_BIN_OPS (uint64_t, int32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
180 INSTANTIATE_INTTYPE_BIN_OPS (uint64_t, int64_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
181 INSTANTIATE_INTTYPE_BIN_OPS (uint64_t, uint8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
182 INSTANTIATE_INTTYPE_BIN_OPS (uint64_t, uint16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
183 INSTANTIATE_INTTYPE_BIN_OPS (uint64_t, uint32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
184 INSTANTIATE_INTTYPE_BIN_OPS (uint64_t, uint64_t);
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
185
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
186 #define INSTANTIATE_INTTYPE_SHIFT_OP(T, OP) \
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 6105
diff changeset
187 template OCTAVE_API octave_int<T> operator OP (const octave_int<T>&, const int&)
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
188
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
189 #define INSTANTIATE_INTTYPE_SHIFT_OPS(T) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
190 INSTANTIATE_INTTYPE_SHIFT_OP (T, <<); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
191 INSTANTIATE_INTTYPE_SHIFT_OP (T, >>)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
192
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
193 INSTANTIATE_INTTYPE_SHIFT_OPS (int8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
194 INSTANTIATE_INTTYPE_SHIFT_OPS (int16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
195 INSTANTIATE_INTTYPE_SHIFT_OPS (int32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
196 INSTANTIATE_INTTYPE_SHIFT_OPS (int64_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
197 INSTANTIATE_INTTYPE_SHIFT_OPS (uint8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
198 INSTANTIATE_INTTYPE_SHIFT_OPS (uint16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
199 INSTANTIATE_INTTYPE_SHIFT_OPS (uint32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
200 INSTANTIATE_INTTYPE_SHIFT_OPS (uint64_t);
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
201
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
202 #define INSTANTIATE_OCTAVE_INT_CMP_OP(OP, T1, T2) \
6108
143b556ce725 [project @ 2006-10-27 01:45:54 by jwe]
jwe
parents: 6105
diff changeset
203 template OCTAVE_API bool operator OP (const octave_int<T1>&, const octave_int<T2>&)
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
204
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
205 #define INSTANTIATE_OCTAVE_INT_CMP_OPS(T1, T2) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
206 INSTANTIATE_OCTAVE_INT_CMP_OP (<, T1, T2); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
207 INSTANTIATE_OCTAVE_INT_CMP_OP (<=, T1, T2); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
208 INSTANTIATE_OCTAVE_INT_CMP_OP (>=, T1, T2); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
209 INSTANTIATE_OCTAVE_INT_CMP_OP (>, T1, T2); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
210 INSTANTIATE_OCTAVE_INT_CMP_OP (==, T1, T2); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
211 INSTANTIATE_OCTAVE_INT_CMP_OP (!=, T1, T2)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
212
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
213 INSTANTIATE_OCTAVE_INT_CMP_OPS (int8_t, int8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
214 INSTANTIATE_OCTAVE_INT_CMP_OPS (int8_t, int16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
215 INSTANTIATE_OCTAVE_INT_CMP_OPS (int8_t, int32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
216 INSTANTIATE_OCTAVE_INT_CMP_OPS (int8_t, int64_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
217 INSTANTIATE_OCTAVE_INT_CMP_OPS (int8_t, uint8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
218 INSTANTIATE_OCTAVE_INT_CMP_OPS (int8_t, uint16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
219 // INSTANTIATE_OCTAVE_INT_CMP_OPS (int8_t, uint32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
220 // INSTANTIATE_OCTAVE_INT_CMP_OPS (int8_t, uint64_t);
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
221
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
222 INSTANTIATE_OCTAVE_INT_CMP_OPS (int16_t, int8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
223 INSTANTIATE_OCTAVE_INT_CMP_OPS (int16_t, int16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
224 INSTANTIATE_OCTAVE_INT_CMP_OPS (int16_t, int32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
225 INSTANTIATE_OCTAVE_INT_CMP_OPS (int16_t, int64_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
226 INSTANTIATE_OCTAVE_INT_CMP_OPS (int16_t, uint8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
227 INSTANTIATE_OCTAVE_INT_CMP_OPS (int16_t, uint16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
228 // INSTANTIATE_OCTAVE_INT_CMP_OPS (int16_t, uint32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
229 // INSTANTIATE_OCTAVE_INT_CMP_OPS (int16_t, uint64_t);
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
230
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
231 INSTANTIATE_OCTAVE_INT_CMP_OPS (int32_t, int8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
232 INSTANTIATE_OCTAVE_INT_CMP_OPS (int32_t, int16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
233 INSTANTIATE_OCTAVE_INT_CMP_OPS (int32_t, int32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
234 INSTANTIATE_OCTAVE_INT_CMP_OPS (int32_t, int64_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
235 INSTANTIATE_OCTAVE_INT_CMP_OPS (int32_t, uint8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
236 INSTANTIATE_OCTAVE_INT_CMP_OPS (int32_t, uint16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
237 // INSTANTIATE_OCTAVE_INT_CMP_OPS (int32_t, uint32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
238 // INSTANTIATE_OCTAVE_INT_CMP_OPS (int32_t, uint64_t);
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
239
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
240 INSTANTIATE_OCTAVE_INT_CMP_OPS (int64_t, int8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
241 INSTANTIATE_OCTAVE_INT_CMP_OPS (int64_t, int16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
242 INSTANTIATE_OCTAVE_INT_CMP_OPS (int64_t, int32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
243 INSTANTIATE_OCTAVE_INT_CMP_OPS (int64_t, int64_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
244 INSTANTIATE_OCTAVE_INT_CMP_OPS (int64_t, uint8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
245 INSTANTIATE_OCTAVE_INT_CMP_OPS (int64_t, uint16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
246 // INSTANTIATE_OCTAVE_INT_CMP_OPS (int64_t, uint32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
247 // INSTANTIATE_OCTAVE_INT_CMP_OPS (int64_t, uint64_t);
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
248
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
249 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint8_t, int8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
250 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint8_t, int16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
251 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint8_t, int32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
252 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint8_t, int64_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
253 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint8_t, uint8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
254 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint8_t, uint16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
255 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint8_t, uint32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
256 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint8_t, uint64_t);
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
257
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
258 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint16_t, int8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
259 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint16_t, int16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
260 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint16_t, int32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
261 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint16_t, int64_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
262 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint16_t, uint8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
263 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint16_t, uint16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
264 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint16_t, uint32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
265 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint16_t, uint64_t);
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
266
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
267 // INSTANTIATE_OCTAVE_INT_CMP_OPS (uint32_t, int8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
268 // INSTANTIATE_OCTAVE_INT_CMP_OPS (uint32_t, int16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
269 // INSTANTIATE_OCTAVE_INT_CMP_OPS (uint32_t, int32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
270 // INSTANTIATE_OCTAVE_INT_CMP_OPS (uint32_t, int64_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
271 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint32_t, uint8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
272 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint32_t, uint16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
273 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint32_t, uint32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
274 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint32_t, uint64_t);
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
275
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
276 // INSTANTIATE_OCTAVE_INT_CMP_OPS (uint64_t, int8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
277 // INSTANTIATE_OCTAVE_INT_CMP_OPS (uint64_t, int16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
278 // INSTANTIATE_OCTAVE_INT_CMP_OPS (uint64_t, int32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
279 // INSTANTIATE_OCTAVE_INT_CMP_OPS (uint64_t, int64_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
280 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint64_t, uint8_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
281 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint64_t, uint16_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
282 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint64_t, uint32_t);
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
283 INSTANTIATE_OCTAVE_INT_CMP_OPS (uint64_t, uint64_t);
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
284
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
285 // The following apply if the unsigned type is at least as wide as the
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
286 // signed type (then we can cast postive signed values to the unsigned
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
287 // type and compare).
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
288
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
289 #define OCTAVE_US_TYPE1_CMP_OP(OP, LTZ_VAL, UT, ST) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
290 bool \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
291 operator OP (const octave_int<UT>& lhs, const octave_int<ST>& rhs) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
292 { \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
293 return rhs.value () < 0 ? LTZ_VAL \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
294 : lhs.value () OP static_cast<UT> (rhs.value ()); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
295 }
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
296
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
297 #define OCTAVE_US_TYPE1_CMP_OPS(UT, ST) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
298 OCTAVE_US_TYPE1_CMP_OP (<, false, UT, ST) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
299 OCTAVE_US_TYPE1_CMP_OP (<=, false, UT, ST) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
300 OCTAVE_US_TYPE1_CMP_OP (>=, true, UT, ST) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
301 OCTAVE_US_TYPE1_CMP_OP (>, true, UT, ST) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
302 OCTAVE_US_TYPE1_CMP_OP (==, false, UT, ST) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
303 OCTAVE_US_TYPE1_CMP_OP (!=, true, UT, ST)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
304
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
305 #define OCTAVE_SU_TYPE1_CMP_OP(OP, LTZ_VAL, ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
306 bool \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
307 operator OP (const octave_int<ST>& lhs, const octave_int<UT>& rhs) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
308 { \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
309 return lhs.value () < 0 ? LTZ_VAL \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
310 : static_cast<UT> (lhs.value ()) OP rhs.value (); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
311 }
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
312
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
313 #define OCTAVE_SU_TYPE1_CMP_OPS(ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
314 OCTAVE_SU_TYPE1_CMP_OP (<, true, ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
315 OCTAVE_SU_TYPE1_CMP_OP (<=, true, ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
316 OCTAVE_SU_TYPE1_CMP_OP (>=, false, ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
317 OCTAVE_SU_TYPE1_CMP_OP (>, false, ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
318 OCTAVE_SU_TYPE1_CMP_OP (==, false, ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
319 OCTAVE_SU_TYPE1_CMP_OP (!=, true, ST, UT)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
320
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
321 #define OCTAVE_TYPE1_CMP_OPS(UT, ST) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
322 OCTAVE_US_TYPE1_CMP_OPS (UT, ST) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
323 OCTAVE_SU_TYPE1_CMP_OPS (ST, UT)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
324
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
325 OCTAVE_TYPE1_CMP_OPS (uint32_t, int8_t)
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
326 OCTAVE_TYPE1_CMP_OPS (uint32_t, int16_t)
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
327 OCTAVE_TYPE1_CMP_OPS (uint32_t, int32_t)
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
328
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
329 OCTAVE_TYPE1_CMP_OPS (uint64_t, int8_t)
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
330 OCTAVE_TYPE1_CMP_OPS (uint64_t, int16_t)
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
331 OCTAVE_TYPE1_CMP_OPS (uint64_t, int32_t)
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
332 OCTAVE_TYPE1_CMP_OPS (uint64_t, int64_t)
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
333
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
334 // The following apply if the signed type is wider than the unsigned
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
335 // type (then we can cast unsigned values to the signed type and
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
336 // compare if the signed value is positive).
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
337
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
338 #define OCTAVE_US_TYPE2_CMP_OP(OP, LTZ_VAL, UT, ST) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
339 bool \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
340 operator OP (const octave_int<UT>& lhs, const octave_int<ST>& rhs) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
341 { \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
342 return rhs.value () < 0 ? LTZ_VAL \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
343 : static_cast<ST> (lhs.value ()) OP rhs.value (); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
344 }
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
345
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
346 #define OCTAVE_US_TYPE2_CMP_OPS(ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
347 OCTAVE_US_TYPE2_CMP_OP (<, false, ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
348 OCTAVE_US_TYPE2_CMP_OP (<=, false, ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
349 OCTAVE_US_TYPE2_CMP_OP (>=, true, ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
350 OCTAVE_US_TYPE2_CMP_OP (>, true, ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
351 OCTAVE_US_TYPE2_CMP_OP (==, false, ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
352 OCTAVE_US_TYPE2_CMP_OP (!=, true, ST, UT)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
353
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
354 #define OCTAVE_SU_TYPE2_CMP_OP(OP, LTZ_VAL, ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
355 bool \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
356 operator OP (const octave_int<ST>& lhs, const octave_int<UT>& rhs) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
357 { \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
358 return lhs.value () < 0 ? LTZ_VAL \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
359 : lhs.value () OP static_cast<ST> (rhs.value ()); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
360 }
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
361
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
362 #define OCTAVE_SU_TYPE2_CMP_OPS(ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
363 OCTAVE_SU_TYPE2_CMP_OP (<, true, ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
364 OCTAVE_SU_TYPE2_CMP_OP (<=, true, ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
365 OCTAVE_SU_TYPE2_CMP_OP (>=, false, ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
366 OCTAVE_SU_TYPE2_CMP_OP (>, false, ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
367 OCTAVE_SU_TYPE2_CMP_OP (==, false, ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
368 OCTAVE_SU_TYPE2_CMP_OP (!=, true, ST, UT)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
369
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
370 #define OCTAVE_TYPE2_CMP_OPS(UT, ST) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
371 OCTAVE_US_TYPE2_CMP_OPS (UT, ST) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
372 OCTAVE_SU_TYPE2_CMP_OPS (ST, UT)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
373
5828
22e23bee74c8 [project @ 2006-05-23 06:05:14 by jwe]
jwe
parents: 5307
diff changeset
374 OCTAVE_TYPE2_CMP_OPS (uint32_t, int64_t)
5072
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
375
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
376
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
377
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
378 /*
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
379 ;;; Local Variables: ***
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
380 ;;; mode: C++ ***
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
381 ;;; End: ***
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
382 */