Mercurial > hg > octave-nkf
annotate src/OPERATORS/op-ui64-ui64.cc @ 7789:82be108cc558
First attempt at single precision tyeps
* * *
corrections to qrupdate single precision routines
* * *
prefer demotion to single over promotion to double
* * *
Add single precision support to log2 function
* * *
Trivial PROJECT file update
* * *
Cache optimized hermitian/transpose methods
* * *
Add tests for tranpose/hermitian and ChangeLog entry for new transpose code
author | David Bateman <dbateman@free.fr> |
---|---|
date | Sun, 27 Apr 2008 22:34:17 +0200 |
parents | a1dbe9d80eee |
children | 283989f2da9b |
rev | line source |
---|---|
4901 | 1 /* |
2 | |
7017 | 3 Copyright (C) 1996, 1997, 2004, 2005, 2007 John W. Eaton |
4901 | 4 |
5 This file is part of Octave. | |
6 | |
7 Octave is free software; you can redistribute it and/or modify it | |
8 under the terms of the GNU General Public License as published by the | |
7016 | 9 Free Software Foundation; either version 3 of the License, or (at your |
10 option) any later version. | |
4901 | 11 |
12 Octave is distributed in the hope that it will be useful, but WITHOUT | |
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
7016 | 18 along with Octave; see the file COPYING. If not, see |
19 <http://www.gnu.org/licenses/>. | |
4901 | 20 |
21 */ | |
22 | |
23 #ifdef HAVE_CONFIG_H | |
24 #include <config.h> | |
25 #endif | |
26 | |
4964 | 27 #include "mx-ui64nda-i8.h" |
28 #include "mx-ui64nda-ui8.h" | |
29 #include "mx-ui64nda-i16.h" | |
30 #include "mx-ui64nda-ui16.h" | |
31 #include "mx-ui64nda-i32.h" | |
32 #include "mx-ui64nda-ui32.h" | |
33 #include "mx-ui64nda-i64.h" | |
34 | |
35 #include "mx-ui64nda-i8nda.h" | |
36 #include "mx-ui64nda-ui8nda.h" | |
37 #include "mx-ui64nda-i16nda.h" | |
38 #include "mx-ui64nda-ui16nda.h" | |
39 #include "mx-ui64nda-i32nda.h" | |
40 #include "mx-ui64nda-ui32nda.h" | |
41 #include "mx-ui64nda-i64nda.h" | |
42 | |
43 #include "mx-ui64-i8nda.h" | |
44 #include "mx-ui64-ui8nda.h" | |
45 #include "mx-ui64-i16nda.h" | |
46 #include "mx-ui64-ui16nda.h" | |
47 #include "mx-ui64-i32nda.h" | |
48 #include "mx-ui64-ui32nda.h" | |
49 #include "mx-ui64-i64nda.h" | |
50 | |
51 #include "mx-ui64nda-s.h" | |
52 #include "mx-s-ui64nda.h" | |
53 | |
54 #include "mx-ui64nda-nda.h" | |
55 #include "mx-nda-ui64nda.h" | |
56 | |
57 #include "mx-ui64-nda.h" | |
58 #include "mx-nda-ui64.h" | |
59 | |
4901 | 60 #include "gripes.h" |
61 #include "oct-obj.h" | |
62 #include "ov.h" | |
4953 | 63 #include "ov-int16.h" |
64 #include "ov-int32.h" | |
65 #include "ov-int64.h" | |
66 #include "ov-int8.h" | |
67 #include "ov-uint16.h" | |
68 #include "ov-uint32.h" | |
4901 | 69 #include "ov-uint64.h" |
4953 | 70 #include "ov-uint8.h" |
71 #include "ov-scalar.h" | |
7789
82be108cc558
First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents:
7017
diff
changeset
|
72 #include "ov-float.h" |
4953 | 73 #include "ov-complex.h" |
7789
82be108cc558
First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents:
7017
diff
changeset
|
74 #include "ov-flt-complex.h" |
4953 | 75 #include "ov-re-mat.h" |
7789
82be108cc558
First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents:
7017
diff
changeset
|
76 #include "ov-flt-re-mat.h" |
4953 | 77 #include "ov-cx-mat.h" |
7789
82be108cc558
First attempt at single precision tyeps
David Bateman <dbateman@free.fr>
parents:
7017
diff
changeset
|
78 #include "ov-flt-cx-mat.h" |
4901 | 79 #include "ov-typeinfo.h" |
80 #include "ops.h" | |
81 #include "xdiv.h" | |
82 #include "xpow.h" | |
83 | |
4905 | 84 #include "op-int.h" |
4901 | 85 |
4905 | 86 OCTAVE_S_INT_UNOPS (uint64) |
4953 | 87 OCTAVE_SS_INT_CMP_OPS (ss, uint64_, uint64_) |
5038 | 88 OCTAVE_SS_INT_CMP_OPS (sx, uint64_, ) |
89 OCTAVE_SS_INT_CMP_OPS (xs, , uint64_) | |
5030 | 90 OCTAVE_SS_INT_BOOL_OPS (ss, uint64_, uint64_, octave_uint64 (0), octave_uint64 (0)) |
5038 | 91 OCTAVE_SS_INT_BOOL_OPS (sx, uint64_, , octave_uint64 (0), 0) |
92 OCTAVE_SS_INT_BOOL_OPS (xs, , uint64_, 0, octave_uint64 (0)) | |
4953 | 93 |
94 OCTAVE_SM_INT_CMP_OPS (sm, uint64_, uint64_) | |
5038 | 95 OCTAVE_SM_INT_CMP_OPS (xm, , uint64_) |
96 OCTAVE_SM_INT_CMP_OPS (smx, uint64_, ) | |
4953 | 97 OCTAVE_SM_INT_BOOL_OPS (sm, uint64_, uint64_) |
5038 | 98 OCTAVE_SM_INT_BOOL_OPS (xm, , uint64_) |
99 OCTAVE_SM_INT_BOOL_OPS (smx, uint64_, ) | |
4901 | 100 |
4953 | 101 OCTAVE_MS_INT_CMP_OPS (ms, uint64_, uint64_) |
5038 | 102 OCTAVE_MS_INT_CMP_OPS (mx, uint64_, ) |
103 OCTAVE_MS_INT_CMP_OPS (mxs, , uint64_) | |
4953 | 104 OCTAVE_MS_INT_BOOL_OPS (ms, uint64_, uint64_) |
5038 | 105 OCTAVE_MS_INT_BOOL_OPS (mx, uint64_, ) |
106 OCTAVE_MS_INT_BOOL_OPS (mxs, , uint64_) | |
4953 | 107 OCTAVE_MS_INT_ASSIGN_OPS (ms, uint64_, uint64_, uint64_) |
108 OCTAVE_MS_INT_ASSIGN_OPS (mx, uint64_, , ) | |
109 OCTAVE_MS_INT_ASSIGN_OPS (mc, uint64_, complex_, ) | |
4901 | 110 |
4905 | 111 OCTAVE_M_INT_UNOPS (uint64) |
4964 | 112 OCTAVE_MM_INT_CMP_OPS (mm, uint64_, uint64_) |
5038 | 113 OCTAVE_MM_INT_CMP_OPS (mmx, uint64_, ) |
114 OCTAVE_MM_INT_CMP_OPS (mxm, , uint64_) | |
4964 | 115 OCTAVE_MM_INT_BOOL_OPS (mm, uint64_, uint64_) |
5038 | 116 OCTAVE_MM_INT_BOOL_OPS (mmx, uint64_, ) |
117 OCTAVE_MM_INT_BOOL_OPS (mxm, , uint64_) | |
4953 | 118 OCTAVE_MM_INT_ASSIGN_OPS (mm, uint64_, uint64_, uint64_) |
119 OCTAVE_MM_INT_ASSIGN_OPS (mmx, uint64_, , ) | |
120 OCTAVE_MM_INT_ASSIGN_OPS (mmc, uint64_, complex_, ) | |
121 | |
122 OCTAVE_MS_INT_ASSIGN_OPS (mi8, uint64_, int8_, int8_) | |
123 OCTAVE_MS_INT_ASSIGN_OPS (mui8, uint64_, uint8_, uint8_) | |
124 OCTAVE_MS_INT_ASSIGN_OPS (mi16, uint64_, int16_, int16_) | |
125 OCTAVE_MS_INT_ASSIGN_OPS (mui16, uint64_, uint16_, uint16_) | |
126 OCTAVE_MS_INT_ASSIGN_OPS (mi32, uint64_, int32_, int32_) | |
127 OCTAVE_MS_INT_ASSIGN_OPS (mui32, uint64_, uint32_, uint32_) | |
128 OCTAVE_MS_INT_ASSIGN_OPS (mi64, uint64_, int64_, int64_) | |
129 | |
130 OCTAVE_MM_INT_ASSIGN_OPS (mmi8, uint64_, int8_, int8_) | |
131 OCTAVE_MM_INT_ASSIGN_OPS (mmui8, uint64_, uint8_, uint8_) | |
132 OCTAVE_MM_INT_ASSIGN_OPS (mmi16, uint64_, int16_, int16_) | |
133 OCTAVE_MM_INT_ASSIGN_OPS (mmui16, uint64_, uint16_, uint16_) | |
134 OCTAVE_MM_INT_ASSIGN_OPS (mmi32, uint64_, int32_, int32_) | |
135 OCTAVE_MM_INT_ASSIGN_OPS (mmui32, uint64_, uint32_, uint32_) | |
136 OCTAVE_MM_INT_ASSIGN_OPS (mmi64, uint64_, int64_, int64_) | |
4901 | 137 |
4964 | 138 OCTAVE_MIXED_INT_CMP_OPS (uint64, int8) |
139 OCTAVE_MIXED_INT_CMP_OPS (uint64, uint8) | |
140 OCTAVE_MIXED_INT_CMP_OPS (uint64, int16) | |
141 OCTAVE_MIXED_INT_CMP_OPS (uint64, uint16) | |
142 OCTAVE_MIXED_INT_CMP_OPS (uint64, int32) | |
143 OCTAVE_MIXED_INT_CMP_OPS (uint64, uint32) | |
144 OCTAVE_MIXED_INT_CMP_OPS (uint64, int64) | |
145 | |
5038 | 146 OCTAVE_CONCAT_FN (uint64) |
147 | |
4901 | 148 void |
149 install_ui64_ui64_ops (void) | |
150 { | |
4905 | 151 OCTAVE_INSTALL_S_INT_UNOPS (uint64); |
4953 | 152 OCTAVE_INSTALL_SS_INT_CMP_OPS (ss, uint64_, uint64_); |
5038 | 153 OCTAVE_INSTALL_SS_INT_CMP_OPS (sx, uint64_, ); |
154 OCTAVE_INSTALL_SS_INT_CMP_OPS (xs, , uint64_); | |
4953 | 155 OCTAVE_INSTALL_SS_INT_BOOL_OPS (ss, uint64_, uint64_); |
5038 | 156 OCTAVE_INSTALL_SS_INT_BOOL_OPS (sx, uint64_, ); |
157 OCTAVE_INSTALL_SS_INT_BOOL_OPS (xs, , uint64_); | |
4953 | 158 |
159 OCTAVE_INSTALL_SM_INT_CMP_OPS (sm, uint64_, uint64_); | |
5038 | 160 OCTAVE_INSTALL_SM_INT_CMP_OPS (xm, , uint64_); |
161 OCTAVE_INSTALL_SM_INT_CMP_OPS (smx, uint64_, ); | |
4953 | 162 OCTAVE_INSTALL_SM_INT_BOOL_OPS (sm, uint64_, uint64_); |
5038 | 163 OCTAVE_INSTALL_SM_INT_BOOL_OPS (xm, , uint64_); |
164 OCTAVE_INSTALL_SM_INT_BOOL_OPS (smx, uint64_, ); | |
4901 | 165 |
4953 | 166 OCTAVE_INSTALL_MS_INT_CMP_OPS (ms, uint64_, uint64_); |
5038 | 167 OCTAVE_INSTALL_MS_INT_CMP_OPS (mx, uint64_, ); |
168 OCTAVE_INSTALL_MS_INT_CMP_OPS (mxs, , uint64_); | |
4953 | 169 OCTAVE_INSTALL_MS_INT_BOOL_OPS (ms, uint64_, uint64_); |
5038 | 170 OCTAVE_INSTALL_MS_INT_BOOL_OPS (mx, uint64_, ); |
171 OCTAVE_INSTALL_MS_INT_BOOL_OPS (mxs, , uint64_); | |
4953 | 172 OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (ms, uint64_, uint64_); |
173 OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mx, uint64_, ); | |
174 OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mc, uint64_, complex_); | |
4901 | 175 |
4905 | 176 OCTAVE_INSTALL_M_INT_UNOPS (uint64); |
4964 | 177 OCTAVE_INSTALL_MM_INT_CMP_OPS (mm, uint64_, uint64_); |
5038 | 178 OCTAVE_INSTALL_MM_INT_CMP_OPS (mmx, uint64_, ); |
179 OCTAVE_INSTALL_MM_INT_CMP_OPS (mxm, , uint64_); | |
4964 | 180 OCTAVE_INSTALL_MM_INT_BOOL_OPS (mm, uint64_, uint64_); |
5038 | 181 OCTAVE_INSTALL_MM_INT_BOOL_OPS (mmx, uint64_, ); |
182 OCTAVE_INSTALL_MM_INT_BOOL_OPS (mxm, , uint64_); | |
4953 | 183 OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mm, uint64_, uint64_); |
184 OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmx, uint64_, ); | |
185 OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmc, uint64_, complex_); | |
186 | |
187 OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mi8, uint64_, int8_); | |
188 OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mui8, uint64_, uint8_); | |
189 OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mi16, uint64_, int16_); | |
190 OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mui16, uint64_, uint16_); | |
191 OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mi32, uint64_, int32_); | |
192 OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mui32, uint64_, uint32_); | |
193 OCTAVE_INSTALL_MS_INT_ASSIGN_OPS (mi64, uint64_, int64_); | |
194 | |
195 OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmi8, uint64_, int8_); | |
196 OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmui8, uint64_, uint8_); | |
197 OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmi16, uint64_, int16_); | |
198 OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmui16, uint64_, uint16_); | |
199 OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmi32, uint64_, int32_); | |
200 OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmui32, uint64_, uint32_); | |
201 OCTAVE_INSTALL_MM_INT_ASSIGN_OPS (mmi64, uint64_, int64_); | |
4963 | 202 |
203 OCTAVE_INSTALL_SM_INT_ASSIGNCONV (uint64, int8); | |
204 OCTAVE_INSTALL_SM_INT_ASSIGNCONV (uint64, uint8); | |
205 OCTAVE_INSTALL_SM_INT_ASSIGNCONV (uint64, int16); | |
206 OCTAVE_INSTALL_SM_INT_ASSIGNCONV (uint64, uint16); | |
207 OCTAVE_INSTALL_SM_INT_ASSIGNCONV (uint64, int32); | |
208 OCTAVE_INSTALL_SM_INT_ASSIGNCONV (uint64, uint32); | |
209 OCTAVE_INSTALL_SM_INT_ASSIGNCONV (uint64, int64); | |
4964 | 210 |
211 OCTAVE_INSTALL_MIXED_INT_CMP_OPS (uint64, int8); | |
212 OCTAVE_INSTALL_MIXED_INT_CMP_OPS (uint64, uint8); | |
213 OCTAVE_INSTALL_MIXED_INT_CMP_OPS (uint64, int16); | |
214 OCTAVE_INSTALL_MIXED_INT_CMP_OPS (uint64, uint16); | |
215 OCTAVE_INSTALL_MIXED_INT_CMP_OPS (uint64, int32); | |
216 OCTAVE_INSTALL_MIXED_INT_CMP_OPS (uint64, uint32); | |
217 OCTAVE_INSTALL_MIXED_INT_CMP_OPS (uint64, int64); | |
5038 | 218 |
219 OCTAVE_INSTALL_CONCAT_FN (uint64); | |
4901 | 220 } |
221 | |
222 /* | |
223 ;;; Local Variables: *** | |
224 ;;; mode: C++ *** | |
225 ;;; End: *** | |
226 */ |