1 ////////////////////////////////////////////////////////////////////////
2 //
3 // Copyright (C) 1996-2021 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 "mx-i16nda-i8.h"
31 #include "mx-i16nda-ui8.h"
32 #include "mx-i16nda-ui16.h"
33 #include "mx-i16nda-i32.h"
34 #include "mx-i16nda-ui32.h"
35 #include "mx-i16nda-i64.h"
36 #include "mx-i16nda-ui64.h"
37 
38 #include "mx-i16nda-i8nda.h"
39 #include "mx-i16nda-ui8nda.h"
40 #include "mx-i16nda-ui16nda.h"
41 #include "mx-i16nda-i32nda.h"
42 #include "mx-i16nda-ui32nda.h"
43 #include "mx-i16nda-i64nda.h"
44 #include "mx-i16nda-ui64nda.h"
45 
46 #include "mx-i16-i8nda.h"
47 #include "mx-i16-ui8nda.h"
48 #include "mx-i16-ui16nda.h"
49 #include "mx-i16-i32nda.h"
50 #include "mx-i16-ui32nda.h"
51 #include "mx-i16-i64nda.h"
52 #include "mx-i16-ui64nda.h"
53 
54 #include "mx-i16nda-s.h"
55 #include "mx-s-i16nda.h"
56 
57 #include "mx-i16nda-nda.h"
58 #include "mx-nda-i16nda.h"
59 
60 #include "mx-i16-nda.h"
61 #include "mx-nda-i16.h"
62 
63 #include "mx-i16nda-fs.h"
64 #include "mx-fs-i16nda.h"
65 
66 #include "mx-i16nda-fnda.h"
67 #include "mx-fnda-i16nda.h"
68 
69 #include "mx-i16-fnda.h"
70 #include "mx-fnda-i16.h"
71 
72 #include "errwarn.h"
73 #include "ovl.h"
74 #include "ov.h"
75 #include "ov-int16.h"
76 #include "ov-int32.h"
77 #include "ov-int64.h"
78 #include "ov-int8.h"
79 #include "ov-uint16.h"
80 #include "ov-uint32.h"
81 #include "ov-uint64.h"
82 #include "ov-uint8.h"
83 #include "ov-scalar.h"
84 #include "ov-float.h"
85 #include "ov-complex.h"
86 #include "ov-flt-complex.h"
87 #include "ov-re-mat.h"
88 #include "ov-flt-re-mat.h"
89 #include "ov-cx-mat.h"
90 #include "ov-flt-cx-mat.h"
91 #include "ov-typeinfo.h"
92 #include "ov-null-mat.h"
93 #include "ops.h"
94 #include "xdiv.h"
95 #include "xpow.h"
96 
97 #include "op-int.h"
98 
99 OCTAVE_INT_OPS (int16)
100 
OCTAVE_MS_INT_ASSIGN_OPS(mi8,int16_,int8_,int8_)101 OCTAVE_MS_INT_ASSIGN_OPS (mi8, int16_, int8_, int8_)
102 OCTAVE_MS_INT_ASSIGN_OPS (mui8, int16_, uint8_, uint8_)
103 OCTAVE_MS_INT_ASSIGN_OPS (mui16, int16_, uint16_, uint16_)
104 OCTAVE_MS_INT_ASSIGN_OPS (mi32, int16_, int32_, int32_)
105 OCTAVE_MS_INT_ASSIGN_OPS (mui32, int16_, uint32_, uint32_)
106 OCTAVE_MS_INT_ASSIGN_OPS (mi64, int16_, int64_, int64_)
107 OCTAVE_MS_INT_ASSIGN_OPS (mui64, int16_, uint64_, uint64_)
108 
109 OCTAVE_MM_INT_ASSIGN_OPS (mmi8, int16_, int8_, int8_)
110 OCTAVE_MM_INT_ASSIGN_OPS (mmui8, int16_, uint8_, uint8_)
111 OCTAVE_MM_INT_ASSIGN_OPS (mmui16, int16_, uint16_, uint16_)
112 OCTAVE_MM_INT_ASSIGN_OPS (mmi32, int16_, int32_, int32_)
113 OCTAVE_MM_INT_ASSIGN_OPS (mmui32, int16_, uint32_, uint32_)
114 OCTAVE_MM_INT_ASSIGN_OPS (mmi64, int16_, int64_, int64_)
115 OCTAVE_MM_INT_ASSIGN_OPS (mmui64, int16_, uint64_, uint64_)
116 
117 OCTAVE_MIXED_INT_CMP_OPS (int16, int8)
118 OCTAVE_MIXED_INT_CMP_OPS (int16, uint8)
119 OCTAVE_MIXED_INT_CMP_OPS (int16, uint16)
120 OCTAVE_MIXED_INT_CMP_OPS (int16, int32)
121 OCTAVE_MIXED_INT_CMP_OPS (int16, uint32)
122 OCTAVE_MIXED_INT_CMP_OPS (int16, int64)
123 OCTAVE_MIXED_INT_CMP_OPS (int16, uint64)
124 
125 void
126 install_i16_i16_ops (octave::type_info& ti)
127 {
128   OCTAVE_INSTALL_INT_OPS (int16);
129 
130   OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mi8, int16_, int8_);
131   OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mui8, int16_, uint8_);
132   OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mui16, int16_, uint16_);
133   OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mi32, int16_, int32_);
134   OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mui32, int16_, uint32_);
135   OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mi64, int16_, int64_);
136   OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mui64, int16_, uint64_);
137 
138   OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmi8, int16_, int8_);
139   OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmui8, int16_, uint8_);
140   OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmui16, int16_, uint16_);
141   OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmi32, int16_, int32_);
142   OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmui32, int16_, uint32_);
143   OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmi64, int16_, int64_);
144   OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmui64, int16_, uint64_);
145 
146   OCTAVE_INSTALL_SM_INT_ASSIGNCONV (int16, int8);
147   OCTAVE_INSTALL_SM_INT_ASSIGNCONV (int16, uint8);
148   OCTAVE_INSTALL_SM_INT_ASSIGNCONV (int16, uint16);
149   OCTAVE_INSTALL_SM_INT_ASSIGNCONV (int16, int32);
150   OCTAVE_INSTALL_SM_INT_ASSIGNCONV (int16, uint32);
151   OCTAVE_INSTALL_SM_INT_ASSIGNCONV (int16, int64);
152   OCTAVE_INSTALL_SM_INT_ASSIGNCONV (int16, uint64);
153 
154   OCTAVE_INSTALL_MIXED_INT_CMP_OPS (int16, int8);
155   OCTAVE_INSTALL_MIXED_INT_CMP_OPS (int16, uint8);
156   OCTAVE_INSTALL_MIXED_INT_CMP_OPS (int16, uint16);
157   OCTAVE_INSTALL_MIXED_INT_CMP_OPS (int16, int32);
158   OCTAVE_INSTALL_MIXED_INT_CMP_OPS (int16, uint32);
159   OCTAVE_INSTALL_MIXED_INT_CMP_OPS (int16, int64);
160   OCTAVE_INSTALL_MIXED_INT_CMP_OPS (int16, uint64);
161 }
162