annotate liboctave/oct-inttypes.cc @ 5301:9302581b820d ss-2-9-2

[project @ 2005-04-22 17:08:07 by jwe]
author jwe
date Fri, 22 Apr 2005 17:09:11 +0000
parents 97b62f0c1bee
children 4c8a2e4e0717
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
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
19 Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
20
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 #ifdef HAVE_CONFIG_H
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
24 #include <config.h>
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
25 #endif
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
26
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
27 #include "oct-inttypes.h"
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
28
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
29 #define INSTANTIATE_INT_DOUBLE_BIN_OP(T, OP) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
30 template octave_int<T> operator OP (const octave_int<T>&, double)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
31
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
32 #define INSTANTIATE_INT_DOUBLE_BIN_OPS(T) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
33 INSTANTIATE_INT_DOUBLE_BIN_OP (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
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
38 #define INSTANTIATE_DOUBLE_INT_BIN_OP(T, OP) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
39 template octave_int<T> operator OP (double, const octave_int<T>&)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
40
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
41 #define INSTANTIATE_DOUBLE_INT_BIN_OPS(T) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
42 INSTANTIATE_DOUBLE_INT_BIN_OP (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
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
47 #define INSTANTIATE_INT_DOUBLE_CMP_OP(T, OP) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
48 template bool operator OP (const octave_int<T>&, const double&)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
49
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
50 #define INSTANTIATE_INT_DOUBLE_CMP_OPS(T) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
51 INSTANTIATE_INT_DOUBLE_CMP_OP (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
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
58 #define INSTANTIATE_DOUBLE_INT_CMP_OP(T, OP) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
59 template bool operator OP (const double&, const octave_int<T>&)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
60
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
61 #define INSTANTIATE_DOUBLE_INT_CMP_OPS(T) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
62 INSTANTIATE_DOUBLE_INT_CMP_OP (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
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
69 #define INSTANTIATE_INT_BITCMP_OP(T, OP) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
70 template octave_int<T> \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
71 operator OP (const octave_int<T>&, const octave_int<T>&)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
72
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
73 #define INSTANTIATE_INT_BITCMP_OPS(T) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
74 INSTANTIATE_INT_BITCMP_OP (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
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
78 #define INSTANTIATE_INTTYPE(T) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
79 template class octave_int<T>; \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
80 template octave_int<T> pow (const octave_int<T>&, const octave_int<T>&); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
81 template octave_int<T> pow (double, const octave_int<T>&); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
82 template octave_int<T> pow (const octave_int<T>&, double b); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
83 template std::ostream& operator << (std::ostream&, const octave_int<T>&); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
84 template std::istream& operator >> (std::istream&, octave_int<T>&); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
85 template octave_int<T> \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
86 bitshift (const octave_int<T>&, int, const octave_int<T>&); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
87 INSTANTIATE_INT_DOUBLE_BIN_OPS (T); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
88 INSTANTIATE_DOUBLE_INT_BIN_OPS (T); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
89 INSTANTIATE_INT_DOUBLE_CMP_OPS (T); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
90 INSTANTIATE_DOUBLE_INT_CMP_OPS (T); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
91 INSTANTIATE_INT_BITCMP_OPS (T)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
92
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
93 INSTANTIATE_INTTYPE (octave_int8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
94 INSTANTIATE_INTTYPE (octave_int16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
95 INSTANTIATE_INTTYPE (octave_int32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
96 INSTANTIATE_INTTYPE (octave_int64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
97
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
98 INSTANTIATE_INTTYPE (octave_uint8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
99 INSTANTIATE_INTTYPE (octave_uint16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
100 INSTANTIATE_INTTYPE (octave_uint32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
101 INSTANTIATE_INTTYPE (octave_uint64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
102
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
103 #define INSTANTIATE_INTTYPE_BIN_OP(T1, T2, OP) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
104 template octave_int<octave_int_binop_traits<T1, T2>::TR> \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
105 operator OP (const octave_int<T1>&, const octave_int<T2>&)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
106
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
107 #define INSTANTIATE_INTTYPE_BIN_OPS(T1, T2) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
108 INSTANTIATE_INTTYPE_BIN_OP (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
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
113 INSTANTIATE_INTTYPE_BIN_OPS (octave_int8_t, octave_int8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
114 INSTANTIATE_INTTYPE_BIN_OPS (octave_int8_t, octave_int16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
115 INSTANTIATE_INTTYPE_BIN_OPS (octave_int8_t, octave_int32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
116 INSTANTIATE_INTTYPE_BIN_OPS (octave_int8_t, octave_int64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
117 INSTANTIATE_INTTYPE_BIN_OPS (octave_int8_t, octave_uint8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
118 INSTANTIATE_INTTYPE_BIN_OPS (octave_int8_t, octave_uint16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
119 INSTANTIATE_INTTYPE_BIN_OPS (octave_int8_t, octave_uint32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
120 INSTANTIATE_INTTYPE_BIN_OPS (octave_int8_t, octave_uint64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
121
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
122 INSTANTIATE_INTTYPE_BIN_OPS (octave_int16_t, octave_int8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
123 INSTANTIATE_INTTYPE_BIN_OPS (octave_int16_t, octave_int16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
124 INSTANTIATE_INTTYPE_BIN_OPS (octave_int16_t, octave_int32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
125 INSTANTIATE_INTTYPE_BIN_OPS (octave_int16_t, octave_int64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
126 INSTANTIATE_INTTYPE_BIN_OPS (octave_int16_t, octave_uint8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
127 INSTANTIATE_INTTYPE_BIN_OPS (octave_int16_t, octave_uint16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
128 INSTANTIATE_INTTYPE_BIN_OPS (octave_int16_t, octave_uint32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
129 INSTANTIATE_INTTYPE_BIN_OPS (octave_int16_t, octave_uint64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
130
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
131 INSTANTIATE_INTTYPE_BIN_OPS (octave_int32_t, octave_int8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
132 INSTANTIATE_INTTYPE_BIN_OPS (octave_int32_t, octave_int16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
133 INSTANTIATE_INTTYPE_BIN_OPS (octave_int32_t, octave_int32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
134 INSTANTIATE_INTTYPE_BIN_OPS (octave_int32_t, octave_int64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
135 INSTANTIATE_INTTYPE_BIN_OPS (octave_int32_t, octave_uint8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
136 INSTANTIATE_INTTYPE_BIN_OPS (octave_int32_t, octave_uint16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
137 INSTANTIATE_INTTYPE_BIN_OPS (octave_int32_t, octave_uint32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
138 INSTANTIATE_INTTYPE_BIN_OPS (octave_int32_t, octave_uint64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
139
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
140 INSTANTIATE_INTTYPE_BIN_OPS (octave_int64_t, octave_int8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
141 INSTANTIATE_INTTYPE_BIN_OPS (octave_int64_t, octave_int16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
142 INSTANTIATE_INTTYPE_BIN_OPS (octave_int64_t, octave_int32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
143 INSTANTIATE_INTTYPE_BIN_OPS (octave_int64_t, octave_int64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
144 INSTANTIATE_INTTYPE_BIN_OPS (octave_int64_t, octave_uint8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
145 INSTANTIATE_INTTYPE_BIN_OPS (octave_int64_t, octave_uint16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
146 INSTANTIATE_INTTYPE_BIN_OPS (octave_int64_t, octave_uint32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
147 INSTANTIATE_INTTYPE_BIN_OPS (octave_int64_t, octave_uint64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
148
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
149 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint8_t, octave_int8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
150 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint8_t, octave_int16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
151 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint8_t, octave_int32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
152 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint8_t, octave_int64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
153 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint8_t, octave_uint8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
154 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint8_t, octave_uint16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
155 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint8_t, octave_uint32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
156 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint8_t, octave_uint64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
157
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
158 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint16_t, octave_int8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
159 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint16_t, octave_int16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
160 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint16_t, octave_int32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
161 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint16_t, octave_int64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
162 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint16_t, octave_uint8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
163 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint16_t, octave_uint16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
164 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint16_t, octave_uint32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
165 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint16_t, octave_uint64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
166
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
167 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint32_t, octave_int8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
168 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint32_t, octave_int16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
169 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint32_t, octave_int32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
170 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint32_t, octave_int64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
171 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint32_t, octave_uint8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
172 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint32_t, octave_uint16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
173 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint32_t, octave_uint32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
174 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint32_t, octave_uint64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
175
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
176 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint64_t, octave_int8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
177 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint64_t, octave_int16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
178 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint64_t, octave_int32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
179 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint64_t, octave_int64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
180 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint64_t, octave_uint8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
181 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint64_t, octave_uint16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
182 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint64_t, octave_uint32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
183 INSTANTIATE_INTTYPE_BIN_OPS (octave_uint64_t, octave_uint64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
184
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
185 #define INSTANTIATE_INTTYPE_SHIFT_OP(T, OP) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
186 template octave_int<T> operator OP (const octave_int<T>&, const int&)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
187
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
188 #define INSTANTIATE_INTTYPE_SHIFT_OPS(T) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
189 INSTANTIATE_INTTYPE_SHIFT_OP (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
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
192 INSTANTIATE_INTTYPE_SHIFT_OPS (octave_int8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
193 INSTANTIATE_INTTYPE_SHIFT_OPS (octave_int16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
194 INSTANTIATE_INTTYPE_SHIFT_OPS (octave_int32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
195 INSTANTIATE_INTTYPE_SHIFT_OPS (octave_int64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
196 INSTANTIATE_INTTYPE_SHIFT_OPS (octave_uint8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
197 INSTANTIATE_INTTYPE_SHIFT_OPS (octave_uint16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
198 INSTANTIATE_INTTYPE_SHIFT_OPS (octave_uint32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
199 INSTANTIATE_INTTYPE_SHIFT_OPS (octave_uint64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
200
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
201 #define INSTANTIATE_OCTAVE_INT_CMP_OP(OP, T1, T2) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
202 template bool operator OP (const octave_int<T1>&, const octave_int<T2>&)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
203
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
204 #define INSTANTIATE_OCTAVE_INT_CMP_OPS(T1, T2) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
205 INSTANTIATE_OCTAVE_INT_CMP_OP (<, 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
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
212 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int8_t, octave_int8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
213 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int8_t, octave_int16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
214 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int8_t, octave_int32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
215 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int8_t, octave_int64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
216 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int8_t, octave_uint8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
217 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int8_t, octave_uint16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
218 // INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int8_t, octave_uint32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
219 // INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int8_t, octave_uint64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
220
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
221 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int16_t, octave_int8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
222 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int16_t, octave_int16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
223 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int16_t, octave_int32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
224 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int16_t, octave_int64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
225 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int16_t, octave_uint8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
226 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int16_t, octave_uint16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
227 // INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int16_t, octave_uint32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
228 // INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int16_t, octave_uint64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
229
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
230 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int32_t, octave_int8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
231 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int32_t, octave_int16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
232 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int32_t, octave_int32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
233 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int32_t, octave_int64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
234 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int32_t, octave_uint8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
235 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int32_t, octave_uint16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
236 // INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int32_t, octave_uint32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
237 // INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int32_t, octave_uint64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
238
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
239 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int64_t, octave_int8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
240 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int64_t, octave_int16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
241 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int64_t, octave_int32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
242 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int64_t, octave_int64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
243 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int64_t, octave_uint8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
244 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int64_t, octave_uint16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
245 // INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int64_t, octave_uint32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
246 // INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_int64_t, octave_uint64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
247
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
248 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint8_t, octave_int8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
249 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint8_t, octave_int16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
250 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint8_t, octave_int32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
251 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint8_t, octave_int64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
252 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint8_t, octave_uint8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
253 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint8_t, octave_uint16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
254 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint8_t, octave_uint32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
255 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint8_t, octave_uint64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
256
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
257 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint16_t, octave_int8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
258 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint16_t, octave_int16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
259 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint16_t, octave_int32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
260 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint16_t, octave_int64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
261 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint16_t, octave_uint8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
262 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint16_t, octave_uint16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
263 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint16_t, octave_uint32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
264 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint16_t, octave_uint64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
265
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
266 // INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint32_t, octave_int8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
267 // INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint32_t, octave_int16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
268 // INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint32_t, octave_int32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
269 // INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint32_t, octave_int64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
270 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint32_t, octave_uint8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
271 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint32_t, octave_uint16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
272 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint32_t, octave_uint32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
273 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint32_t, octave_uint64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
274
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
275 // INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint64_t, octave_int8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
276 // INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint64_t, octave_int16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
277 // INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint64_t, octave_int32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
278 // INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint64_t, octave_int64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
279 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint64_t, octave_uint8_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
280 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint64_t, octave_uint16_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
281 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint64_t, octave_uint32_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
282 INSTANTIATE_OCTAVE_INT_CMP_OPS (octave_uint64_t, octave_uint64_t);
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
283
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
284 // 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
285 // 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
286 // type and compare).
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
287
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
288 #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
289 bool \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
290 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
291 { \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
292 return rhs.value () < 0 ? LTZ_VAL \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
293 : lhs.value () OP static_cast<UT> (rhs.value ()); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
294 }
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 #define OCTAVE_US_TYPE1_CMP_OPS(UT, ST) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
297 OCTAVE_US_TYPE1_CMP_OP (<, false, 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 (>=, true, 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 (==, false, UT, ST) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
302 OCTAVE_US_TYPE1_CMP_OP (!=, true, UT, ST)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
303
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
304 #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
305 bool \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
306 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
307 { \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
308 return lhs.value () < 0 ? LTZ_VAL \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
309 : static_cast<UT> (lhs.value ()) OP rhs.value (); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
310 }
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 #define OCTAVE_SU_TYPE1_CMP_OPS(ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
313 OCTAVE_SU_TYPE1_CMP_OP (<, true, 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 (>=, false, 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 (!=, true, ST, UT)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
319
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
320 #define OCTAVE_TYPE1_CMP_OPS(UT, ST) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
321 OCTAVE_US_TYPE1_CMP_OPS (UT, ST) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
322 OCTAVE_SU_TYPE1_CMP_OPS (ST, UT)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
323
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
324 OCTAVE_TYPE1_CMP_OPS (octave_uint32_t, octave_int8_t)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
325 OCTAVE_TYPE1_CMP_OPS (octave_uint32_t, octave_int16_t)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
326 OCTAVE_TYPE1_CMP_OPS (octave_uint32_t, octave_int32_t)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
327
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
328 OCTAVE_TYPE1_CMP_OPS (octave_uint64_t, octave_int8_t)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
329 OCTAVE_TYPE1_CMP_OPS (octave_uint64_t, octave_int16_t)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
330 OCTAVE_TYPE1_CMP_OPS (octave_uint64_t, octave_int32_t)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
331 OCTAVE_TYPE1_CMP_OPS (octave_uint64_t, octave_int64_t)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
332
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
333 // 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
334 // 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
335 // compare if the signed value is positive).
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
336
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
337 #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
338 bool \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
339 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
340 { \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
341 return rhs.value () < 0 ? LTZ_VAL \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
342 : static_cast<ST> (lhs.value ()) OP rhs.value (); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
343 }
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 #define OCTAVE_US_TYPE2_CMP_OPS(ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
346 OCTAVE_US_TYPE2_CMP_OP (<, false, 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 (>=, true, 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 (==, false, ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
351 OCTAVE_US_TYPE2_CMP_OP (!=, true, ST, UT)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
352
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
353 #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
354 bool \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
355 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
356 { \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
357 return lhs.value () < 0 ? LTZ_VAL \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
358 : lhs.value () OP static_cast<ST> (rhs.value ()); \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
359 }
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 #define OCTAVE_SU_TYPE2_CMP_OPS(ST, UT) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
362 OCTAVE_SU_TYPE2_CMP_OP (<, true, 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 (>=, false, 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 (!=, true, ST, UT)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
368
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
369 #define OCTAVE_TYPE2_CMP_OPS(UT, ST) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
370 OCTAVE_US_TYPE2_CMP_OPS (UT, ST) \
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
371 OCTAVE_SU_TYPE2_CMP_OPS (ST, UT)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
372
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
373 OCTAVE_TYPE2_CMP_OPS (octave_uint32_t, octave_int64_t)
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
374
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 ;;; Local Variables: ***
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
379 ;;; mode: C++ ***
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
380 ;;; End: ***
97b62f0c1bee [project @ 2004-11-09 05:51:30 by jwe]
jwe
parents:
diff changeset
381 */