GNU Octave  8.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
op-int-concat.cc
Go to the documentation of this file.
1 ////////////////////////////////////////////////////////////////////////
2 //
3 // Copyright (C) 2004-2023 The Octave Project Developers
4 //
5 // See the file COPYRIGHT.md in the top-level directory of this
6 // distribution or <https://octave.org/copyright/>.
7 //
8 // This file is part of Octave.
9 //
10 // Octave is free software: you can redistribute it and/or modify it
11 // under the terms of the GNU General Public License as published by
12 // the Free Software Foundation, either version 3 of the License, or
13 // (at your option) any later version.
14 //
15 // Octave is distributed in the hope that it will be useful, but
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 // GNU General Public License for more details.
19 //
20 // You should have received a copy of the GNU General Public License
21 // along with Octave; see the file COPYING. If not, see
22 // <https://www.gnu.org/licenses/>.
23 //
24 ////////////////////////////////////////////////////////////////////////
25 
26 #if defined (HAVE_CONFIG_H)
27 # include "config.h"
28 #endif
29 
30 #include "errwarn.h"
31 #include "ovl.h"
32 #include "ov.h"
33 #include "ov-int8.h"
34 #include "ov-int16.h"
35 #include "ov-int32.h"
36 #include "ov-int64.h"
37 #include "ov-uint8.h"
38 #include "ov-uint16.h"
39 #include "ov-uint32.h"
40 #include "ov-uint64.h"
41 #include "ov-range.h"
42 #include "ov-bool.h"
43 #include "ov-bool-mat.h"
44 #include "ov-scalar.h"
45 #include "ov-float.h"
46 #include "ov-re-mat.h"
47 #include "ov-flt-re-mat.h"
48 #include "ov-str-mat.h"
49 #include "ov-typeinfo.h"
50 #include "op-int.h"
51 #include "ops.h"
52 
54 
55 // Concatenation of mixed integer types:
56 
57 OCTAVE_CONCAT_FN2 (int8, int16)
58 OCTAVE_CONCAT_FN2 (int8, int32)
59 OCTAVE_CONCAT_FN2 (int8, int64)
60 
61 OCTAVE_CONCAT_FN2 (int8, uint8)
62 OCTAVE_CONCAT_FN2 (int8, uint16)
63 OCTAVE_CONCAT_FN2 (int8, uint32)
64 OCTAVE_CONCAT_FN2 (int8, uint64)
65 
66 OCTAVE_CONCAT_FN2 (int16, int8)
67 OCTAVE_CONCAT_FN2 (int16, int32)
68 OCTAVE_CONCAT_FN2 (int16, int64)
69 
70 OCTAVE_CONCAT_FN2 (int16, uint8)
71 OCTAVE_CONCAT_FN2 (int16, uint16)
72 OCTAVE_CONCAT_FN2 (int16, uint32)
73 OCTAVE_CONCAT_FN2 (int16, uint64)
74 
75 OCTAVE_CONCAT_FN2 (int32, int8)
76 OCTAVE_CONCAT_FN2 (int32, int16)
77 OCTAVE_CONCAT_FN2 (int32, int64)
78 
79 OCTAVE_CONCAT_FN2 (int32, uint8)
80 OCTAVE_CONCAT_FN2 (int32, uint16)
81 OCTAVE_CONCAT_FN2 (int32, uint32)
82 OCTAVE_CONCAT_FN2 (int32, uint64)
83 
84 OCTAVE_CONCAT_FN2 (int64, int8)
85 OCTAVE_CONCAT_FN2 (int64, int16)
86 OCTAVE_CONCAT_FN2 (int64, int32)
87 
88 OCTAVE_CONCAT_FN2 (int64, uint8)
89 OCTAVE_CONCAT_FN2 (int64, uint16)
90 OCTAVE_CONCAT_FN2 (int64, uint32)
91 OCTAVE_CONCAT_FN2 (int64, uint64)
92 
93 OCTAVE_CONCAT_FN2 (uint8, int8)
94 OCTAVE_CONCAT_FN2 (uint8, int16)
95 OCTAVE_CONCAT_FN2 (uint8, int32)
96 OCTAVE_CONCAT_FN2 (uint8, int64)
97 
98 OCTAVE_CONCAT_FN2 (uint8, uint16)
99 OCTAVE_CONCAT_FN2 (uint8, uint32)
100 OCTAVE_CONCAT_FN2 (uint8, uint64)
101 
102 OCTAVE_CONCAT_FN2 (uint16, int8)
103 OCTAVE_CONCAT_FN2 (uint16, int16)
104 OCTAVE_CONCAT_FN2 (uint16, int32)
105 OCTAVE_CONCAT_FN2 (uint16, int64)
106 
107 OCTAVE_CONCAT_FN2 (uint16, uint8)
108 OCTAVE_CONCAT_FN2 (uint16, uint32)
109 OCTAVE_CONCAT_FN2 (uint16, uint64)
110 
111 OCTAVE_CONCAT_FN2 (uint32, int8)
112 OCTAVE_CONCAT_FN2 (uint32, int16)
113 OCTAVE_CONCAT_FN2 (uint32, int32)
114 OCTAVE_CONCAT_FN2 (uint32, int64)
115 
116 OCTAVE_CONCAT_FN2 (uint32, uint8)
117 OCTAVE_CONCAT_FN2 (uint32, uint16)
118 OCTAVE_CONCAT_FN2 (uint32, uint64)
119 
120 OCTAVE_CONCAT_FN2 (uint64, int8)
121 OCTAVE_CONCAT_FN2 (uint64, int16)
122 OCTAVE_CONCAT_FN2 (uint64, int32)
123 OCTAVE_CONCAT_FN2 (uint64, int64)
124 
125 OCTAVE_CONCAT_FN2 (uint64, uint8)
126 OCTAVE_CONCAT_FN2 (uint64, uint16)
127 OCTAVE_CONCAT_FN2 (uint64, uint32)
128 
133 
138 
143 
148 
153 
158 
163 
168 
173 
178 
183 
188 
189 void
190 install_int_concat_ops (octave::type_info& ti)
191 {
192  OCTAVE_INSTALL_CONCAT_FN2 (int8, int16);
193  OCTAVE_INSTALL_CONCAT_FN2 (int8, int32);
194  OCTAVE_INSTALL_CONCAT_FN2 (int8, int64);
195 
196  OCTAVE_INSTALL_CONCAT_FN2 (int8, uint8);
197  OCTAVE_INSTALL_CONCAT_FN2 (int8, uint16);
198  OCTAVE_INSTALL_CONCAT_FN2 (int8, uint32);
199  OCTAVE_INSTALL_CONCAT_FN2 (int8, uint64);
200 
201  OCTAVE_INSTALL_CONCAT_FN2 (int16, int8);
202  OCTAVE_INSTALL_CONCAT_FN2 (int16, int32);
203  OCTAVE_INSTALL_CONCAT_FN2 (int16, int64);
204 
205  OCTAVE_INSTALL_CONCAT_FN2 (int16, uint8);
206  OCTAVE_INSTALL_CONCAT_FN2 (int16, uint16);
207  OCTAVE_INSTALL_CONCAT_FN2 (int16, uint32);
208  OCTAVE_INSTALL_CONCAT_FN2 (int16, uint64);
209 
210  OCTAVE_INSTALL_CONCAT_FN2 (int32, int8);
211  OCTAVE_INSTALL_CONCAT_FN2 (int32, int16);
212  OCTAVE_INSTALL_CONCAT_FN2 (int32, int64);
213 
214  OCTAVE_INSTALL_CONCAT_FN2 (int32, uint8);
215  OCTAVE_INSTALL_CONCAT_FN2 (int32, uint16);
216  OCTAVE_INSTALL_CONCAT_FN2 (int32, uint32);
217  OCTAVE_INSTALL_CONCAT_FN2 (int32, uint64);
218 
219  OCTAVE_INSTALL_CONCAT_FN2 (int64, int8);
220  OCTAVE_INSTALL_CONCAT_FN2 (int64, int16);
221  OCTAVE_INSTALL_CONCAT_FN2 (int64, int32);
222 
223  OCTAVE_INSTALL_CONCAT_FN2 (int64, uint8);
224  OCTAVE_INSTALL_CONCAT_FN2 (int64, uint16);
225  OCTAVE_INSTALL_CONCAT_FN2 (int64, uint32);
226  OCTAVE_INSTALL_CONCAT_FN2 (int64, uint64);
227 
228  OCTAVE_INSTALL_CONCAT_FN2 (uint8, int8);
229  OCTAVE_INSTALL_CONCAT_FN2 (uint8, int16);
230  OCTAVE_INSTALL_CONCAT_FN2 (uint8, int32);
231  OCTAVE_INSTALL_CONCAT_FN2 (uint8, int64);
232 
233  OCTAVE_INSTALL_CONCAT_FN2 (uint8, uint16);
234  OCTAVE_INSTALL_CONCAT_FN2 (uint8, uint32);
235  OCTAVE_INSTALL_CONCAT_FN2 (uint8, uint64);
236 
237  OCTAVE_INSTALL_CONCAT_FN2 (uint16, int8);
238  OCTAVE_INSTALL_CONCAT_FN2 (uint16, int16);
239  OCTAVE_INSTALL_CONCAT_FN2 (uint16, int32);
240  OCTAVE_INSTALL_CONCAT_FN2 (uint16, int64);
241 
242  OCTAVE_INSTALL_CONCAT_FN2 (uint16, uint8);
243  OCTAVE_INSTALL_CONCAT_FN2 (uint16, uint32);
244  OCTAVE_INSTALL_CONCAT_FN2 (uint16, uint64);
245 
246  OCTAVE_INSTALL_CONCAT_FN2 (uint32, int8);
247  OCTAVE_INSTALL_CONCAT_FN2 (uint32, int16);
248  OCTAVE_INSTALL_CONCAT_FN2 (uint32, int32);
249  OCTAVE_INSTALL_CONCAT_FN2 (uint32, int64);
250 
251  OCTAVE_INSTALL_CONCAT_FN2 (uint32, uint8);
252  OCTAVE_INSTALL_CONCAT_FN2 (uint32, uint16);
253  OCTAVE_INSTALL_CONCAT_FN2 (uint32, uint64);
254 
255  OCTAVE_INSTALL_CONCAT_FN2 (uint64, int8);
256  OCTAVE_INSTALL_CONCAT_FN2 (uint64, int16);
257  OCTAVE_INSTALL_CONCAT_FN2 (uint64, int32);
258  OCTAVE_INSTALL_CONCAT_FN2 (uint64, int64);
259 
260  OCTAVE_INSTALL_CONCAT_FN2 (uint64, uint8);
261  OCTAVE_INSTALL_CONCAT_FN2 (uint64, uint16);
262  OCTAVE_INSTALL_CONCAT_FN2 (uint64, uint32);
263 
268 
273 
278 
283 
288 
293 
298 
303 
308 
313 
318 
323 }
324 
OCTAVE_END_NAMESPACE(octave)
OCTAVE_BEGIN_NAMESPACE(octave) static octave_value daspk_fcn
#define OCTAVE_DOUBLE_INT_CONCAT_FN(TYPE)
Definition: op-int.h:92
#define OCTAVE_INSTALL_INT_DOUBLE_CONCAT_FN(TYPE)
Definition: op-int.h:110
#define OCTAVE_INT_CHAR_CONCAT_FN(TYPE)
Definition: op-int.h:153
#define OCTAVE_INSTALL_DOUBLE_INT_CONCAT_FN(TYPE)
Definition: op-int.h:98
#define OCTAVE_INT_DOUBLE_CONCAT_FN(TYPE)
Definition: op-int.h:104
#define OCTAVE_CHAR_INT_CONCAT_FN(TYPE)
Definition: op-int.h:143
#define OCTAVE_CONCAT_FN2(T1, T2)
Definition: op-int.h:80
#define OCTAVE_INT_FLOAT_CONCAT_FN(TYPE)
Definition: op-int.h:128
#define OCTAVE_INSTALL_INT_CHAR_CONCAT_FN(TYPE)
Definition: op-int.h:157
#define OCTAVE_INSTALL_CONCAT_FN2(T1, T2)
Definition: op-int.h:86
#define OCTAVE_FLOAT_INT_CONCAT_FN(TYPE)
Definition: op-int.h:116
#define OCTAVE_INSTALL_FLOAT_INT_CONCAT_FN(TYPE)
Definition: op-int.h:122
#define OCTAVE_INSTALL_INT_FLOAT_CONCAT_FN(TYPE)
Definition: op-int.h:134
#define OCTAVE_INSTALL_CHAR_INT_CONCAT_FN(TYPE)
Definition: op-int.h:147