Branch data Line data Source code
1 : : /*
2 : : * applications.h - the Qucs application list
3 : : *
4 : : * Copyright (C) 2005-2011 Stefan Jahn <stefan@lkcc.org>
5 : : * Copyright (C) 2006 Gunther Kraut <gn.kraut@t-online.de>
6 : : *
7 : : * This is free software; you can redistribute it and/or modify
8 : : * it under the terms of the GNU General Public License as published by
9 : : * the Free Software Foundation; either version 2, or (at your option)
10 : : * any later version.
11 : : *
12 : : * This software is distributed in the hope that it will be useful,
13 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 : : * GNU General Public License for more details.
16 : : *
17 : : * You should have received a copy of the GNU General Public License
18 : : * along with this package; see the file COPYING. If not, write to
19 : : * the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
20 : : * Boston, MA 02110-1301, USA.
21 : : *
22 : : * $Id$
23 : : *
24 : : */
25 : :
26 : : #ifndef __APPLICATIONS_H__
27 : : #define __APPLICATIONS_H__
28 : :
29 : : // Array containing all kinds of applications.
30 : : struct application_t qucs::eqn::applications[] = {
31 : : { "+", TAG_DOUBLE, evaluate::plus_d, 1, { TAG_DOUBLE } },
32 : : { "+", TAG_COMPLEX, evaluate::plus_c, 1, { TAG_COMPLEX } },
33 : : { "+", TAG_VECTOR, evaluate::plus_v, 1, { TAG_VECTOR } },
34 : : { "+", TAG_MATRIX, evaluate::plus_m, 1, { TAG_MATRIX } },
35 : : { "+", TAG_MATVEC, evaluate::plus_mv, 1, { TAG_MATVEC } },
36 : :
37 : : { "+", TAG_DOUBLE, evaluate::plus_d_d, 2, { TAG_DOUBLE, TAG_DOUBLE } },
38 : : { "+", TAG_COMPLEX, evaluate::plus_c_c, 2, { TAG_COMPLEX, TAG_COMPLEX } },
39 : : { "+", TAG_COMPLEX, evaluate::plus_c_d, 2, { TAG_COMPLEX, TAG_DOUBLE } },
40 : : { "+", TAG_COMPLEX, evaluate::plus_d_c, 2, { TAG_DOUBLE, TAG_COMPLEX } },
41 : : { "+", TAG_VECTOR, evaluate::plus_v_d, 2, { TAG_VECTOR, TAG_DOUBLE } },
42 : : { "+", TAG_VECTOR, evaluate::plus_d_v, 2, { TAG_DOUBLE, TAG_VECTOR } },
43 : : { "+", TAG_VECTOR, evaluate::plus_v_c, 2, { TAG_VECTOR, TAG_COMPLEX } },
44 : : { "+", TAG_VECTOR, evaluate::plus_c_v, 2, { TAG_COMPLEX, TAG_VECTOR } },
45 : : { "+", TAG_VECTOR, evaluate::plus_v_v, 2, { TAG_VECTOR, TAG_VECTOR } },
46 : : { "+", TAG_MATRIX, evaluate::plus_m_m, 2, { TAG_MATRIX, TAG_MATRIX } },
47 : : { "+", TAG_MATRIX, evaluate::plus_m_d, 2, { TAG_MATRIX, TAG_DOUBLE } },
48 : : { "+", TAG_MATRIX, evaluate::plus_d_m, 2, { TAG_DOUBLE, TAG_MATRIX } },
49 : : { "+", TAG_MATRIX, evaluate::plus_m_c, 2, { TAG_MATRIX, TAG_COMPLEX } },
50 : : { "+", TAG_MATRIX, evaluate::plus_c_m, 2, { TAG_COMPLEX, TAG_MATRIX } },
51 : : { "+", TAG_STRING, evaluate::plus_s_s, 2, { TAG_STRING, TAG_STRING } },
52 : : { "+", TAG_STRING, evaluate::plus_c_s, 2, { TAG_CHAR, TAG_STRING } },
53 : : { "+", TAG_STRING, evaluate::plus_s_c, 2, { TAG_STRING, TAG_CHAR } },
54 : : { "+", TAG_MATVEC, evaluate::plus_mv_mv, 2, { TAG_MATVEC,TAG_MATVEC } },
55 : : { "+", TAG_MATVEC, evaluate::plus_mv_m, 2, { TAG_MATVEC, TAG_MATRIX } },
56 : : { "+", TAG_MATVEC, evaluate::plus_m_mv, 2, { TAG_MATRIX, TAG_MATVEC } },
57 : : { "+", TAG_MATVEC, evaluate::plus_mv_d, 2, { TAG_MATVEC, TAG_DOUBLE } },
58 : : { "+", TAG_MATVEC, evaluate::plus_d_mv, 2, { TAG_DOUBLE, TAG_MATVEC } },
59 : : { "+", TAG_MATVEC, evaluate::plus_mv_c, 2, { TAG_MATVEC, TAG_COMPLEX } },
60 : : { "+", TAG_MATVEC, evaluate::plus_c_mv, 2, { TAG_COMPLEX,TAG_MATVEC } },
61 : : { "+", TAG_MATVEC, evaluate::plus_mv_v, 2, { TAG_MATVEC, TAG_VECTOR } },
62 : : { "+", TAG_MATVEC, evaluate::plus_v_mv, 2, { TAG_VECTOR, TAG_MATVEC } },
63 : :
64 : : { "-", TAG_DOUBLE, evaluate::minus_d, 1, { TAG_DOUBLE } },
65 : : { "-", TAG_COMPLEX, evaluate::minus_c, 1, { TAG_COMPLEX } },
66 : : { "-", TAG_VECTOR, evaluate::minus_v, 1, { TAG_VECTOR } },
67 : : { "-", TAG_MATRIX, evaluate::minus_m, 1, { TAG_MATRIX } },
68 : : { "-", TAG_MATVEC, evaluate::minus_mv, 1, { TAG_MATVEC } },
69 : :
70 : : { "-", TAG_DOUBLE, evaluate::minus_d_d, 2, { TAG_DOUBLE, TAG_DOUBLE } },
71 : : { "-", TAG_COMPLEX, evaluate::minus_c_c, 2, { TAG_COMPLEX, TAG_COMPLEX } },
72 : : { "-", TAG_COMPLEX, evaluate::minus_c_d, 2, { TAG_COMPLEX, TAG_DOUBLE } },
73 : : { "-", TAG_COMPLEX, evaluate::minus_d_c, 2, { TAG_DOUBLE, TAG_COMPLEX } },
74 : : { "-", TAG_VECTOR, evaluate::minus_v_d, 2, { TAG_VECTOR, TAG_DOUBLE } },
75 : : { "-", TAG_VECTOR, evaluate::minus_d_v, 2, { TAG_DOUBLE, TAG_VECTOR } },
76 : : { "-", TAG_VECTOR, evaluate::minus_v_c, 2, { TAG_VECTOR, TAG_COMPLEX } },
77 : : { "-", TAG_VECTOR, evaluate::minus_c_v, 2, { TAG_COMPLEX, TAG_VECTOR } },
78 : : { "-", TAG_VECTOR, evaluate::minus_v_v, 2, { TAG_VECTOR, TAG_VECTOR } },
79 : : { "-", TAG_MATRIX, evaluate::minus_m_m, 2, { TAG_MATRIX, TAG_MATRIX } },
80 : : { "-", TAG_MATRIX, evaluate::minus_m_d, 2, { TAG_MATRIX, TAG_DOUBLE } },
81 : : { "-", TAG_MATRIX, evaluate::minus_d_m, 2, { TAG_DOUBLE, TAG_MATRIX } },
82 : : { "-", TAG_MATRIX, evaluate::minus_m_c, 2, { TAG_MATRIX, TAG_COMPLEX } },
83 : : { "-", TAG_MATRIX, evaluate::minus_c_m, 2, { TAG_COMPLEX, TAG_MATRIX } },
84 : : { "-", TAG_MATVEC, evaluate::minus_mv_mv, 2, { TAG_MATVEC,TAG_MATVEC } },
85 : : { "-", TAG_MATVEC, evaluate::minus_mv_m, 2, { TAG_MATVEC, TAG_MATRIX } },
86 : : { "-", TAG_MATVEC, evaluate::minus_m_mv, 2, { TAG_MATRIX, TAG_MATVEC } },
87 : : { "-", TAG_MATVEC, evaluate::minus_mv_d, 2, { TAG_MATVEC, TAG_DOUBLE } },
88 : : { "-", TAG_MATVEC, evaluate::minus_d_mv, 2, { TAG_DOUBLE, TAG_MATVEC } },
89 : : { "-", TAG_MATVEC, evaluate::minus_mv_c, 2, { TAG_MATVEC, TAG_COMPLEX } },
90 : : { "-", TAG_MATVEC, evaluate::minus_c_mv, 2, { TAG_COMPLEX,TAG_MATVEC } },
91 : : { "-", TAG_MATVEC, evaluate::minus_mv_v, 2, { TAG_MATVEC, TAG_VECTOR } },
92 : : { "-", TAG_MATVEC, evaluate::minus_v_mv, 2, { TAG_VECTOR, TAG_MATVEC } },
93 : :
94 : : { "*", TAG_DOUBLE, evaluate::times_d_d, 2, { TAG_DOUBLE, TAG_DOUBLE } },
95 : : { "*", TAG_COMPLEX, evaluate::times_c_c, 2, { TAG_COMPLEX, TAG_COMPLEX } },
96 : : { "*", TAG_COMPLEX, evaluate::times_c_d, 2, { TAG_COMPLEX, TAG_DOUBLE } },
97 : : { "*", TAG_COMPLEX, evaluate::times_d_c, 2, { TAG_DOUBLE, TAG_COMPLEX } },
98 : : { "*", TAG_VECTOR, evaluate::times_v_d, 2, { TAG_VECTOR, TAG_DOUBLE } },
99 : : { "*", TAG_VECTOR, evaluate::times_d_v, 2, { TAG_DOUBLE, TAG_VECTOR } },
100 : : { "*", TAG_VECTOR, evaluate::times_v_c, 2, { TAG_VECTOR, TAG_COMPLEX } },
101 : : { "*", TAG_VECTOR, evaluate::times_c_v, 2, { TAG_COMPLEX, TAG_VECTOR } },
102 : : { "*", TAG_VECTOR, evaluate::times_v_v, 2, { TAG_VECTOR, TAG_VECTOR } },
103 : : { "*", TAG_MATRIX, evaluate::times_m_m, 2, { TAG_MATRIX, TAG_MATRIX } },
104 : : { "*", TAG_MATRIX, evaluate::times_m_c, 2, { TAG_MATRIX, TAG_COMPLEX } },
105 : : { "*", TAG_MATRIX, evaluate::times_c_m, 2, { TAG_COMPLEX, TAG_MATRIX } },
106 : : { "*", TAG_MATRIX, evaluate::times_m_d, 2, { TAG_MATRIX, TAG_DOUBLE } },
107 : : { "*", TAG_MATRIX, evaluate::times_d_m, 2, { TAG_DOUBLE, TAG_MATRIX } },
108 : : { "*", TAG_MATVEC, evaluate::times_mv_mv, 2, { TAG_MATVEC,TAG_MATVEC } },
109 : : { "*", TAG_MATVEC, evaluate::times_mv_m, 2, { TAG_MATVEC, TAG_MATRIX } },
110 : : { "*", TAG_MATVEC, evaluate::times_m_mv, 2, { TAG_MATRIX, TAG_MATVEC } },
111 : : { "*", TAG_MATVEC, evaluate::times_mv_c, 2, { TAG_MATVEC, TAG_COMPLEX } },
112 : : { "*", TAG_MATVEC, evaluate::times_c_mv, 2, { TAG_COMPLEX,TAG_MATVEC } },
113 : : { "*", TAG_MATVEC, evaluate::times_mv_d, 2, { TAG_MATVEC, TAG_DOUBLE } },
114 : : { "*", TAG_MATVEC, evaluate::times_d_mv, 2, { TAG_DOUBLE, TAG_MATVEC } },
115 : : { "*", TAG_MATVEC, evaluate::times_mv_v, 2, { TAG_MATVEC, TAG_VECTOR } },
116 : : { "*", TAG_MATVEC, evaluate::times_v_mv, 2, { TAG_VECTOR, TAG_MATVEC } },
117 : :
118 : : { "/", TAG_DOUBLE, evaluate::over_d_d, 2, { TAG_DOUBLE, TAG_DOUBLE } },
119 : : { "/", TAG_COMPLEX, evaluate::over_c_c, 2, { TAG_COMPLEX, TAG_COMPLEX } },
120 : : { "/", TAG_COMPLEX, evaluate::over_c_d, 2, { TAG_COMPLEX, TAG_DOUBLE } },
121 : : { "/", TAG_COMPLEX, evaluate::over_d_c, 2, { TAG_DOUBLE, TAG_COMPLEX } },
122 : : { "/", TAG_VECTOR, evaluate::over_v_d, 2, { TAG_VECTOR, TAG_DOUBLE } },
123 : : { "/", TAG_VECTOR, evaluate::over_d_v, 2, { TAG_DOUBLE, TAG_VECTOR } },
124 : : { "/", TAG_VECTOR, evaluate::over_v_c, 2, { TAG_VECTOR, TAG_COMPLEX } },
125 : : { "/", TAG_VECTOR, evaluate::over_c_v, 2, { TAG_COMPLEX, TAG_VECTOR } },
126 : : { "/", TAG_VECTOR, evaluate::over_v_v, 2, { TAG_VECTOR, TAG_VECTOR } },
127 : : { "/", TAG_MATRIX, evaluate::over_m_c, 2, { TAG_MATRIX, TAG_COMPLEX } },
128 : : { "/", TAG_MATRIX, evaluate::over_m_d, 2, { TAG_MATRIX, TAG_DOUBLE } },
129 : : { "/", TAG_MATVEC, evaluate::over_mv_c, 2, { TAG_MATVEC, TAG_COMPLEX } },
130 : : { "/", TAG_MATVEC, evaluate::over_mv_d, 2, { TAG_MATVEC, TAG_DOUBLE } },
131 : : { "/", TAG_MATVEC, evaluate::over_mv_v, 2, { TAG_MATVEC, TAG_VECTOR } },
132 : :
133 : : { "%", TAG_DOUBLE, evaluate::modulo_d_d, 2, { TAG_DOUBLE, TAG_DOUBLE } },
134 : : { "%", TAG_COMPLEX, evaluate::modulo_c_c, 2, { TAG_COMPLEX, TAG_COMPLEX } },
135 : : { "%", TAG_COMPLEX, evaluate::modulo_c_d, 2, { TAG_COMPLEX, TAG_DOUBLE } },
136 : : { "%", TAG_COMPLEX, evaluate::modulo_d_c, 2, { TAG_DOUBLE, TAG_COMPLEX } },
137 : : { "%", TAG_VECTOR, evaluate::modulo_v_d, 2, { TAG_VECTOR, TAG_DOUBLE } },
138 : : { "%", TAG_VECTOR, evaluate::modulo_d_v, 2, { TAG_DOUBLE, TAG_VECTOR } },
139 : : { "%", TAG_VECTOR, evaluate::modulo_v_c, 2, { TAG_VECTOR, TAG_COMPLEX } },
140 : : { "%", TAG_VECTOR, evaluate::modulo_c_v, 2, { TAG_COMPLEX, TAG_VECTOR } },
141 : : { "%", TAG_VECTOR, evaluate::modulo_v_v, 2, { TAG_VECTOR, TAG_VECTOR } },
142 : :
143 : : { "^", TAG_DOUBLE, evaluate::power_d_d, 2, { TAG_DOUBLE, TAG_DOUBLE } },
144 : : { "^", TAG_COMPLEX, evaluate::power_c_c, 2, { TAG_COMPLEX, TAG_COMPLEX } },
145 : : { "^", TAG_COMPLEX, evaluate::power_c_d, 2, { TAG_COMPLEX, TAG_DOUBLE } },
146 : : { "^", TAG_COMPLEX, evaluate::power_d_c, 2, { TAG_DOUBLE, TAG_COMPLEX } },
147 : : { "^", TAG_VECTOR, evaluate::power_v_d, 2, { TAG_VECTOR, TAG_DOUBLE } },
148 : : { "^", TAG_VECTOR, evaluate::power_d_v, 2, { TAG_DOUBLE, TAG_VECTOR } },
149 : : { "^", TAG_VECTOR, evaluate::power_v_c, 2, { TAG_VECTOR, TAG_COMPLEX } },
150 : : { "^", TAG_VECTOR, evaluate::power_c_v, 2, { TAG_COMPLEX, TAG_VECTOR } },
151 : : { "^", TAG_VECTOR, evaluate::power_v_v, 2, { TAG_VECTOR, TAG_VECTOR } },
152 : : { "^", TAG_MATRIX, evaluate::power_m_d, 2, { TAG_MATRIX, TAG_DOUBLE } },
153 : : { "^", TAG_MATRIX, evaluate::power_m_c, 2, { TAG_MATRIX, TAG_COMPLEX } },
154 : : { "^", TAG_MATVEC, evaluate::power_mv_d, 2, { TAG_MATVEC, TAG_DOUBLE } },
155 : : { "^", TAG_MATVEC, evaluate::power_mv_c, 2, { TAG_MATVEC, TAG_COMPLEX } },
156 : : { "^", TAG_MATVEC, evaluate::power_mv_v, 2, { TAG_MATVEC, TAG_VECTOR } },
157 : :
158 : : { "hypot", TAG_DOUBLE, evaluate::xhypot_d_d, 2,
159 : : { TAG_DOUBLE, TAG_DOUBLE } },
160 : : { "hypot", TAG_DOUBLE, evaluate::xhypot_c_c, 2,
161 : : { TAG_COMPLEX, TAG_COMPLEX } },
162 : : { "hypot", TAG_DOUBLE, evaluate::xhypot_c_d, 2,
163 : : { TAG_COMPLEX, TAG_DOUBLE } },
164 : : { "hypot", TAG_DOUBLE, evaluate::xhypot_d_c, 2,
165 : : { TAG_DOUBLE, TAG_COMPLEX } },
166 : : { "hypot", TAG_VECTOR, evaluate::xhypot_v_d, 2,
167 : : { TAG_VECTOR, TAG_DOUBLE } },
168 : : { "hypot", TAG_VECTOR, evaluate::xhypot_d_v, 2,
169 : : { TAG_DOUBLE, TAG_VECTOR } },
170 : : { "hypot", TAG_VECTOR, evaluate::xhypot_v_c, 2,
171 : : { TAG_VECTOR, TAG_COMPLEX } },
172 : : { "hypot", TAG_VECTOR, evaluate::xhypot_c_v, 2,
173 : : { TAG_COMPLEX, TAG_VECTOR } },
174 : : { "hypot", TAG_VECTOR, evaluate::xhypot_v_v, 2,
175 : : { TAG_VECTOR, TAG_VECTOR } },
176 : :
177 : : { "real", TAG_DOUBLE, evaluate::real_d, 1, { TAG_DOUBLE } },
178 : : { "real", TAG_DOUBLE, evaluate::real_c, 1, { TAG_COMPLEX } },
179 : : { "real", TAG_VECTOR, evaluate::real_v, 1, { TAG_VECTOR } },
180 : : { "real", TAG_MATRIX, evaluate::real_m, 1, { TAG_MATRIX } },
181 : : { "real", TAG_MATVEC, evaluate::real_mv, 1, { TAG_MATVEC } },
182 : :
183 : : { "imag", TAG_DOUBLE, evaluate::imag_d, 1, { TAG_DOUBLE } },
184 : : { "imag", TAG_DOUBLE, evaluate::imag_c, 1, { TAG_COMPLEX } },
185 : : { "imag", TAG_VECTOR, evaluate::imag_v, 1, { TAG_VECTOR } },
186 : : { "imag", TAG_MATRIX, evaluate::imag_m, 1, { TAG_MATRIX } },
187 : : { "imag", TAG_MATVEC, evaluate::imag_mv, 1, { TAG_MATVEC } },
188 : :
189 : : { "abs", TAG_DOUBLE, evaluate::abs_d, 1, { TAG_DOUBLE } },
190 : : { "abs", TAG_DOUBLE, evaluate::abs_c, 1, { TAG_COMPLEX } },
191 : : { "abs", TAG_VECTOR, evaluate::abs_v, 1, { TAG_VECTOR } },
192 : : { "abs", TAG_MATRIX, evaluate::abs_m, 1, { TAG_MATRIX } },
193 : : { "abs", TAG_MATVEC, evaluate::abs_mv, 1, { TAG_MATVEC } },
194 : :
195 : : { "mag", TAG_DOUBLE, evaluate::abs_d, 1, { TAG_DOUBLE } },
196 : : { "mag", TAG_DOUBLE, evaluate::abs_c, 1, { TAG_COMPLEX } },
197 : : { "mag", TAG_VECTOR, evaluate::abs_v, 1, { TAG_VECTOR } },
198 : : { "mag", TAG_MATRIX, evaluate::abs_m, 1, { TAG_MATRIX } },
199 : : { "mag", TAG_MATVEC, evaluate::abs_mv, 1, { TAG_MATVEC } },
200 : :
201 : : { "conj", TAG_DOUBLE, evaluate::conj_d, 1, { TAG_DOUBLE } },
202 : : { "conj", TAG_COMPLEX, evaluate::conj_c, 1, { TAG_COMPLEX } },
203 : : { "conj", TAG_VECTOR, evaluate::conj_v, 1, { TAG_VECTOR } },
204 : : { "conj", TAG_MATRIX, evaluate::conj_m, 1, { TAG_MATRIX } },
205 : : { "conj", TAG_MATVEC, evaluate::conj_mv, 1, { TAG_MATVEC } },
206 : :
207 : : { "norm", TAG_DOUBLE, evaluate::norm_d, 1, { TAG_DOUBLE } },
208 : : { "norm", TAG_DOUBLE, evaluate::norm_c, 1, { TAG_COMPLEX } },
209 : : { "norm", TAG_VECTOR, evaluate::norm_v, 1, { TAG_VECTOR } },
210 : :
211 : : { "phase", TAG_DOUBLE, evaluate::phase_d, 1, { TAG_DOUBLE } },
212 : : { "phase", TAG_DOUBLE, evaluate::phase_c, 1, { TAG_COMPLEX } },
213 : : { "phase", TAG_VECTOR, evaluate::phase_v, 1, { TAG_VECTOR } },
214 : : { "phase", TAG_MATRIX, evaluate::phase_m, 1, { TAG_MATRIX } },
215 : : { "phase", TAG_MATVEC, evaluate::phase_mv, 1, { TAG_MATVEC } },
216 : :
217 : : { "angle", TAG_DOUBLE, evaluate::arg_d, 1, { TAG_DOUBLE } },
218 : : { "angle", TAG_DOUBLE, evaluate::arg_c, 1, { TAG_COMPLEX } },
219 : : { "angle", TAG_VECTOR, evaluate::arg_v, 1, { TAG_VECTOR } },
220 : : { "angle", TAG_MATRIX, evaluate::arg_m, 1, { TAG_MATRIX } },
221 : : { "angle", TAG_MATVEC, evaluate::arg_mv, 1, { TAG_MATVEC } },
222 : :
223 : : { "arg", TAG_DOUBLE, evaluate::arg_d, 1, { TAG_DOUBLE } },
224 : : { "arg", TAG_DOUBLE, evaluate::arg_c, 1, { TAG_COMPLEX } },
225 : : { "arg", TAG_VECTOR, evaluate::arg_v, 1, { TAG_VECTOR } },
226 : : { "arg", TAG_MATRIX, evaluate::arg_m, 1, { TAG_MATRIX } },
227 : : { "arg", TAG_MATVEC, evaluate::arg_mv, 1, { TAG_MATVEC } },
228 : :
229 : : { "unwrap", TAG_VECTOR, evaluate::unwrap_v_1, 1,
230 : : { TAG_VECTOR } },
231 : : { "unwrap", TAG_VECTOR, evaluate::unwrap_v_2, 2,
232 : : { TAG_VECTOR, TAG_DOUBLE } },
233 : : { "unwrap", TAG_VECTOR, evaluate::unwrap_v_3, 3,
234 : : { TAG_VECTOR, TAG_DOUBLE, TAG_DOUBLE } },
235 : :
236 : : { "deg2rad", TAG_DOUBLE, evaluate::deg2rad_d, 1, { TAG_DOUBLE } },
237 : : { "deg2rad", TAG_DOUBLE, evaluate::deg2rad_c, 1, { TAG_COMPLEX } },
238 : : { "deg2rad", TAG_VECTOR, evaluate::deg2rad_v, 1, { TAG_VECTOR } },
239 : : { "rad2deg", TAG_DOUBLE, evaluate::rad2deg_d, 1, { TAG_DOUBLE } },
240 : : { "rad2deg", TAG_DOUBLE, evaluate::rad2deg_c, 1, { TAG_COMPLEX } },
241 : : { "rad2deg", TAG_VECTOR, evaluate::rad2deg_v, 1, { TAG_VECTOR } },
242 : :
243 : : { "dB", TAG_DOUBLE, evaluate::dB_d, 1, { TAG_DOUBLE } },
244 : : { "dB", TAG_DOUBLE, evaluate::dB_c, 1, { TAG_COMPLEX } },
245 : : { "dB", TAG_VECTOR, evaluate::dB_v, 1, { TAG_VECTOR } },
246 : : { "dB", TAG_MATRIX, evaluate::dB_m, 1, { TAG_MATRIX } },
247 : : { "dB", TAG_MATVEC, evaluate::dB_mv, 1, { TAG_MATVEC } },
248 : :
249 : : { "sqrt", TAG_COMPLEX, evaluate::sqrt_d, 1, { TAG_DOUBLE } },
250 : : { "sqrt", TAG_COMPLEX, evaluate::sqrt_c, 1, { TAG_COMPLEX } },
251 : : { "sqrt", TAG_VECTOR, evaluate::sqrt_v, 1, { TAG_VECTOR } },
252 : :
253 : : { "exp", TAG_DOUBLE, evaluate::exp_d, 1, { TAG_DOUBLE } },
254 : : { "exp", TAG_COMPLEX, evaluate::exp_c, 1, { TAG_COMPLEX } },
255 : : { "exp", TAG_VECTOR, evaluate::exp_v, 1, { TAG_VECTOR } },
256 : :
257 : : { "limexp", TAG_DOUBLE, evaluate::limexp_d, 1, { TAG_DOUBLE } },
258 : : { "limexp", TAG_COMPLEX, evaluate::limexp_c, 1, { TAG_COMPLEX } },
259 : : { "limexp", TAG_VECTOR, evaluate::limexp_v, 1, { TAG_VECTOR } },
260 : :
261 : : { "ln", TAG_COMPLEX, evaluate::ln_d, 1, { TAG_DOUBLE } },
262 : : { "ln", TAG_COMPLEX, evaluate::ln_c, 1, { TAG_COMPLEX } },
263 : : { "ln", TAG_VECTOR, evaluate::ln_v, 1, { TAG_VECTOR } },
264 : :
265 : : { "log10", TAG_COMPLEX, evaluate::log10_d, 1, { TAG_DOUBLE } },
266 : : { "log10", TAG_COMPLEX, evaluate::log10_c, 1, { TAG_COMPLEX } },
267 : : { "log10", TAG_VECTOR, evaluate::log10_v, 1, { TAG_VECTOR } },
268 : :
269 : : { "log2", TAG_COMPLEX, evaluate::log2_d, 1, { TAG_DOUBLE } },
270 : : { "log2", TAG_COMPLEX, evaluate::log2_c, 1, { TAG_COMPLEX } },
271 : : { "log2", TAG_VECTOR, evaluate::log2_v, 1, { TAG_VECTOR } },
272 : :
273 : : { "sin", TAG_DOUBLE, evaluate::sin_d, 1, { TAG_DOUBLE } },
274 : : { "sin", TAG_COMPLEX, evaluate::sin_c, 1, { TAG_COMPLEX } },
275 : : { "sin", TAG_VECTOR, evaluate::sin_v, 1, { TAG_VECTOR } },
276 : :
277 : : { "arcsin", TAG_DOUBLE, evaluate::arcsin_d, 1, { TAG_DOUBLE } },
278 : : { "arcsin", TAG_COMPLEX, evaluate::arcsin_c, 1, { TAG_COMPLEX } },
279 : : { "arcsin", TAG_VECTOR, evaluate::arcsin_v, 1, { TAG_VECTOR } },
280 : :
281 : : { "cos", TAG_DOUBLE, evaluate::cos_d, 1, { TAG_DOUBLE } },
282 : : { "cos", TAG_COMPLEX, evaluate::cos_c, 1, { TAG_COMPLEX } },
283 : : { "cos", TAG_VECTOR, evaluate::cos_v, 1, { TAG_VECTOR } },
284 : :
285 : : { "arccos", TAG_DOUBLE, evaluate::arccos_d, 1, { TAG_DOUBLE } },
286 : : { "arccos", TAG_COMPLEX, evaluate::arccos_c, 1, { TAG_COMPLEX } },
287 : : { "arccos", TAG_VECTOR, evaluate::arccos_v, 1, { TAG_VECTOR } },
288 : :
289 : : { "tan", TAG_DOUBLE, evaluate::tan_d, 1, { TAG_DOUBLE } },
290 : : { "tan", TAG_COMPLEX, evaluate::tan_c, 1, { TAG_COMPLEX } },
291 : : { "tan", TAG_VECTOR, evaluate::tan_v, 1, { TAG_VECTOR } },
292 : :
293 : : { "arctan", TAG_DOUBLE, evaluate::arctan_d, 1, { TAG_DOUBLE } },
294 : : { "arctan", TAG_COMPLEX, evaluate::arctan_c, 1, { TAG_COMPLEX } },
295 : : { "arctan", TAG_VECTOR, evaluate::arctan_v, 1, { TAG_VECTOR } },
296 : :
297 : : { "cot", TAG_DOUBLE, evaluate::cot_d, 1, { TAG_DOUBLE } },
298 : : { "cot", TAG_COMPLEX, evaluate::cot_c, 1, { TAG_COMPLEX } },
299 : : { "cot", TAG_VECTOR, evaluate::cot_v, 1, { TAG_VECTOR } },
300 : :
301 : : { "arccot", TAG_DOUBLE, evaluate::arccot_d, 1, { TAG_DOUBLE } },
302 : : { "arccot", TAG_COMPLEX, evaluate::arccot_c, 1, { TAG_COMPLEX } },
303 : : { "arccot", TAG_VECTOR, evaluate::arccot_v, 1, { TAG_VECTOR } },
304 : :
305 : : { "sec", TAG_DOUBLE, evaluate::sec_d, 1, { TAG_DOUBLE } },
306 : : { "sec", TAG_COMPLEX, evaluate::sec_c, 1, { TAG_COMPLEX } },
307 : : { "sec", TAG_VECTOR, evaluate::sec_v, 1, { TAG_VECTOR } },
308 : :
309 : : { "arcsec", TAG_DOUBLE, evaluate::arcsec_d, 1, { TAG_DOUBLE } },
310 : : { "arcsec", TAG_COMPLEX, evaluate::arcsec_c, 1, { TAG_COMPLEX } },
311 : : { "arcsec", TAG_VECTOR, evaluate::arcsec_v, 1, { TAG_VECTOR } },
312 : :
313 : : { "cosec", TAG_DOUBLE, evaluate::cosec_d, 1, { TAG_DOUBLE } },
314 : : { "cosec", TAG_COMPLEX, evaluate::cosec_c, 1, { TAG_COMPLEX } },
315 : : { "cosec", TAG_VECTOR, evaluate::cosec_v, 1, { TAG_VECTOR } },
316 : :
317 : : { "arccosec", TAG_DOUBLE, evaluate::arccosec_d, 1, { TAG_DOUBLE } },
318 : : { "arccosec", TAG_COMPLEX, evaluate::arccosec_c, 1, { TAG_COMPLEX } },
319 : : { "arccosec", TAG_VECTOR, evaluate::arccosec_v, 1, { TAG_VECTOR } },
320 : :
321 : : { "sinh", TAG_DOUBLE, evaluate::sinh_d, 1, { TAG_DOUBLE } },
322 : : { "sinh", TAG_COMPLEX, evaluate::sinh_c, 1, { TAG_COMPLEX } },
323 : : { "sinh", TAG_VECTOR, evaluate::sinh_v, 1, { TAG_VECTOR } },
324 : :
325 : : { "arsinh", TAG_DOUBLE, evaluate::arsinh_d, 1, { TAG_DOUBLE } },
326 : : { "arsinh", TAG_COMPLEX, evaluate::arsinh_c, 1, { TAG_COMPLEX } },
327 : : { "arsinh", TAG_VECTOR, evaluate::arsinh_v, 1, { TAG_VECTOR } },
328 : :
329 : : { "cosh", TAG_DOUBLE, evaluate::cosh_d, 1, { TAG_DOUBLE } },
330 : : { "cosh", TAG_COMPLEX, evaluate::cosh_c, 1, { TAG_COMPLEX } },
331 : : { "cosh", TAG_VECTOR, evaluate::cosh_v, 1, { TAG_VECTOR } },
332 : :
333 : : { "arcosh", TAG_COMPLEX, evaluate::arcosh_d, 1, { TAG_DOUBLE } },
334 : : { "arcosh", TAG_COMPLEX, evaluate::arcosh_c, 1, { TAG_COMPLEX } },
335 : : { "arcosh", TAG_VECTOR, evaluate::arcosh_v, 1, { TAG_VECTOR } },
336 : :
337 : : { "tanh", TAG_DOUBLE, evaluate::tanh_d, 1, { TAG_DOUBLE } },
338 : : { "tanh", TAG_COMPLEX, evaluate::tanh_c, 1, { TAG_COMPLEX } },
339 : : { "tanh", TAG_VECTOR, evaluate::tanh_v, 1, { TAG_VECTOR } },
340 : :
341 : : { "artanh", TAG_DOUBLE, evaluate::artanh_d, 1, { TAG_DOUBLE } },
342 : : { "artanh", TAG_COMPLEX, evaluate::artanh_c, 1, { TAG_COMPLEX } },
343 : : { "artanh", TAG_VECTOR, evaluate::artanh_v, 1, { TAG_VECTOR } },
344 : :
345 : : { "coth", TAG_DOUBLE, evaluate::coth_d, 1, { TAG_DOUBLE } },
346 : : { "coth", TAG_COMPLEX, evaluate::coth_c, 1, { TAG_COMPLEX } },
347 : : { "coth", TAG_VECTOR, evaluate::coth_v, 1, { TAG_VECTOR } },
348 : :
349 : : { "arcoth", TAG_DOUBLE, evaluate::arcoth_d, 1, { TAG_DOUBLE } },
350 : : { "arcoth", TAG_COMPLEX, evaluate::arcoth_c, 1, { TAG_COMPLEX } },
351 : : { "arcoth", TAG_VECTOR, evaluate::arcoth_v, 1, { TAG_VECTOR } },
352 : :
353 : : { "sech", TAG_DOUBLE, evaluate::sech_d, 1, { TAG_DOUBLE } },
354 : : { "sech", TAG_COMPLEX, evaluate::sech_c, 1, { TAG_COMPLEX } },
355 : : { "sech", TAG_VECTOR, evaluate::sech_v, 1, { TAG_VECTOR } },
356 : :
357 : : { "arsech", TAG_COMPLEX, evaluate::arsech_d, 1, { TAG_DOUBLE } },
358 : : { "arsech", TAG_COMPLEX, evaluate::arsech_c, 1, { TAG_COMPLEX } },
359 : : { "arsech", TAG_VECTOR, evaluate::arsech_v, 1, { TAG_VECTOR } },
360 : :
361 : : { "cosech", TAG_DOUBLE, evaluate::cosech_d, 1, { TAG_DOUBLE } },
362 : : { "cosech", TAG_COMPLEX, evaluate::cosech_c, 1, { TAG_COMPLEX } },
363 : : { "cosech", TAG_VECTOR, evaluate::cosech_v, 1, { TAG_VECTOR } },
364 : :
365 : : { "arcosech", TAG_DOUBLE, evaluate::arcosech_d, 1, { TAG_DOUBLE } },
366 : : { "arcosech", TAG_COMPLEX, evaluate::arcosech_c, 1, { TAG_COMPLEX } },
367 : : { "arcosech", TAG_VECTOR, evaluate::arcosech_v, 1, { TAG_VECTOR } },
368 : :
369 : : { "ztor", TAG_DOUBLE, evaluate::ztor_d, 1, { TAG_DOUBLE } },
370 : : { "ztor", TAG_DOUBLE, evaluate::ztor_d_d, 2, { TAG_DOUBLE, TAG_DOUBLE } },
371 : : { "ztor", TAG_COMPLEX, evaluate::ztor_d_c, 2, { TAG_DOUBLE, TAG_COMPLEX } },
372 : : { "ztor", TAG_COMPLEX, evaluate::ztor_c, 1, { TAG_COMPLEX } },
373 : : { "ztor", TAG_COMPLEX, evaluate::ztor_c_d, 2, { TAG_COMPLEX, TAG_DOUBLE } },
374 : : { "ztor", TAG_COMPLEX, evaluate::ztor_c_c, 2, { TAG_COMPLEX, TAG_COMPLEX } },
375 : : { "ztor", TAG_VECTOR, evaluate::ztor_v, 1, { TAG_VECTOR } },
376 : : { "ztor", TAG_VECTOR, evaluate::ztor_v_d, 2, { TAG_VECTOR, TAG_DOUBLE } },
377 : : { "ztor", TAG_VECTOR, evaluate::ztor_v_c, 2, { TAG_VECTOR, TAG_COMPLEX } },
378 : :
379 : : { "rtoz", TAG_DOUBLE, evaluate::rtoz_d, 1, { TAG_DOUBLE } },
380 : : { "rtoz", TAG_DOUBLE, evaluate::rtoz_d_d, 2, { TAG_DOUBLE, TAG_DOUBLE } },
381 : : { "rtoz", TAG_COMPLEX, evaluate::rtoz_d_c, 2, { TAG_DOUBLE, TAG_COMPLEX } },
382 : : { "rtoz", TAG_COMPLEX, evaluate::rtoz_c, 1, { TAG_COMPLEX } },
383 : : { "rtoz", TAG_COMPLEX, evaluate::rtoz_c_d, 2, { TAG_COMPLEX, TAG_DOUBLE } },
384 : : { "rtoz", TAG_COMPLEX, evaluate::rtoz_c_c, 2, { TAG_COMPLEX, TAG_COMPLEX } },
385 : : { "rtoz", TAG_VECTOR, evaluate::rtoz_v, 1, { TAG_VECTOR } },
386 : : { "rtoz", TAG_VECTOR, evaluate::rtoz_v_d, 2, { TAG_VECTOR, TAG_DOUBLE } },
387 : : { "rtoz", TAG_VECTOR, evaluate::rtoz_v_c, 2, { TAG_VECTOR, TAG_COMPLEX } },
388 : :
389 : : { "ytor", TAG_DOUBLE, evaluate::ytor_d, 1, { TAG_DOUBLE } },
390 : : { "ytor", TAG_DOUBLE, evaluate::ytor_d_d, 2, { TAG_DOUBLE, TAG_DOUBLE } },
391 : : { "ytor", TAG_COMPLEX, evaluate::ytor_d_c, 2, { TAG_DOUBLE, TAG_COMPLEX } },
392 : : { "ytor", TAG_COMPLEX, evaluate::ytor_c, 1, { TAG_COMPLEX } },
393 : : { "ytor", TAG_COMPLEX, evaluate::ytor_c_d, 2, { TAG_COMPLEX, TAG_DOUBLE } },
394 : : { "ytor", TAG_COMPLEX, evaluate::ytor_c_c, 2, { TAG_COMPLEX, TAG_COMPLEX } },
395 : : { "ytor", TAG_VECTOR, evaluate::ytor_v, 1, { TAG_VECTOR } },
396 : : { "ytor", TAG_VECTOR, evaluate::ytor_v_d, 2, { TAG_VECTOR, TAG_DOUBLE } },
397 : : { "ytor", TAG_VECTOR, evaluate::ytor_v_c, 2, { TAG_VECTOR, TAG_COMPLEX } },
398 : :
399 : : { "rtoy", TAG_DOUBLE, evaluate::rtoy_d, 1, { TAG_DOUBLE } },
400 : : { "rtoy", TAG_DOUBLE, evaluate::rtoy_d_d, 2, { TAG_DOUBLE, TAG_DOUBLE } },
401 : : { "rtoy", TAG_COMPLEX, evaluate::rtoy_d_c, 2, { TAG_DOUBLE, TAG_COMPLEX } },
402 : : { "rtoy", TAG_COMPLEX, evaluate::rtoy_c, 1, { TAG_COMPLEX } },
403 : : { "rtoy", TAG_COMPLEX, evaluate::rtoy_c_d, 2, { TAG_COMPLEX, TAG_DOUBLE } },
404 : : { "rtoy", TAG_COMPLEX, evaluate::rtoy_c_c, 2, { TAG_COMPLEX, TAG_COMPLEX } },
405 : : { "rtoy", TAG_VECTOR, evaluate::rtoy_v, 1, { TAG_VECTOR } },
406 : : { "rtoy", TAG_VECTOR, evaluate::rtoy_v_d, 2, { TAG_VECTOR, TAG_DOUBLE } },
407 : : { "rtoy", TAG_VECTOR, evaluate::rtoy_v_c, 2, { TAG_VECTOR, TAG_COMPLEX } },
408 : :
409 : : { "rtoswr", TAG_DOUBLE, evaluate::rtoswr_d, 1, { TAG_DOUBLE } },
410 : : { "rtoswr", TAG_DOUBLE, evaluate::rtoswr_c, 1, { TAG_COMPLEX } },
411 : : { "rtoswr", TAG_VECTOR, evaluate::rtoswr_v, 1, { TAG_VECTOR } },
412 : :
413 : : { "diff", TAG_VECTOR, evaluate::diff_v_2, 2, { TAG_VECTOR, TAG_VECTOR } },
414 : : { "diff", TAG_VECTOR, evaluate::diff_v_3, 3, { TAG_VECTOR, TAG_VECTOR,
415 : : TAG_DOUBLE } },
416 : :
417 : : { "max", TAG_DOUBLE, evaluate::max_d, 1, { TAG_DOUBLE } },
418 : : { "max", TAG_DOUBLE, evaluate::max_c, 1, { TAG_COMPLEX } },
419 : : { "max", TAG_DOUBLE, evaluate::max_v, 1, { TAG_VECTOR } },
420 : : { "max", TAG_DOUBLE, evaluate::max_r, 2, { TAG_VECTOR, TAG_RANGE } },
421 : :
422 : : { "max", TAG_DOUBLE, evaluate::max_d_d, 2, { TAG_DOUBLE, TAG_DOUBLE } },
423 : : { "max", TAG_COMPLEX, evaluate::max_c_d, 2, { TAG_COMPLEX, TAG_DOUBLE } },
424 : : { "max", TAG_COMPLEX, evaluate::max_d_c, 2, { TAG_DOUBLE, TAG_COMPLEX } },
425 : : { "max", TAG_COMPLEX, evaluate::max_c_c, 2, { TAG_COMPLEX, TAG_COMPLEX } },
426 : :
427 : : { "min", TAG_DOUBLE, evaluate::min_d, 1, { TAG_DOUBLE } },
428 : : { "min", TAG_DOUBLE, evaluate::min_c, 1, { TAG_COMPLEX } },
429 : : { "min", TAG_DOUBLE, evaluate::min_v, 1, { TAG_VECTOR } },
430 : : { "min", TAG_DOUBLE, evaluate::min_r, 2, { TAG_VECTOR, TAG_RANGE } },
431 : :
432 : : { "min", TAG_DOUBLE, evaluate::min_d_d, 2, { TAG_DOUBLE, TAG_DOUBLE } },
433 : : { "min", TAG_COMPLEX, evaluate::min_c_d, 2, { TAG_COMPLEX, TAG_DOUBLE } },
434 : : { "min", TAG_COMPLEX, evaluate::min_d_c, 2, { TAG_DOUBLE, TAG_COMPLEX } },
435 : : { "min", TAG_COMPLEX, evaluate::min_c_c, 2, { TAG_COMPLEX, TAG_COMPLEX } },
436 : :
437 : : { "sum", TAG_DOUBLE, evaluate::sum_d, 1, { TAG_DOUBLE } },
438 : : { "sum", TAG_COMPLEX, evaluate::sum_c, 1, { TAG_COMPLEX } },
439 : : { "sum", TAG_COMPLEX, evaluate::sum_v, 1, { TAG_VECTOR } },
440 : :
441 : : { "prod", TAG_DOUBLE, evaluate::prod_d, 1, { TAG_DOUBLE } },
442 : : { "prod", TAG_COMPLEX, evaluate::prod_c, 1, { TAG_COMPLEX } },
443 : : { "prod", TAG_COMPLEX, evaluate::prod_v, 1, { TAG_VECTOR } },
444 : :
445 : : { "avg", TAG_DOUBLE, evaluate::avg_d, 1, { TAG_DOUBLE } },
446 : : { "avg", TAG_COMPLEX, evaluate::avg_c, 1, { TAG_COMPLEX } },
447 : : { "avg", TAG_COMPLEX, evaluate::avg_v, 1, { TAG_VECTOR } },
448 : : { "avg", TAG_COMPLEX, evaluate::avg_r, 2, { TAG_VECTOR, TAG_RANGE } },
449 : :
450 : : { "length", TAG_DOUBLE, evaluate::length_d, 1, { TAG_DOUBLE } },
451 : : { "length", TAG_DOUBLE, evaluate::length_c, 1, { TAG_COMPLEX } },
452 : : { "length", TAG_DOUBLE, evaluate::length_v, 1, { TAG_VECTOR } },
453 : : { "length", TAG_DOUBLE, evaluate::length_m, 1, { TAG_MATRIX } },
454 : : { "length", TAG_DOUBLE, evaluate::length_mv, 1, { TAG_MATVEC } },
455 : :
456 : : { "array", TAG_VECTOR, evaluate::index_mv_2, 3,
457 : : { TAG_MATVEC, TAG_DOUBLE, TAG_DOUBLE } },
458 : : { "array", TAG_MATRIX, evaluate::index_mv_1, 2,
459 : : { TAG_MATVEC, TAG_DOUBLE } },
460 : : { "array", TAG_VECTOR, evaluate::index_v_1, 2,
461 : : { TAG_VECTOR, TAG_DOUBLE | TAG_RANGE } },
462 : : { "array", TAG_VECTOR, evaluate::index_v_2, 3,
463 : : { TAG_VECTOR, TAG_DOUBLE | TAG_RANGE, TAG_DOUBLE | TAG_RANGE } },
464 : : { "array", TAG_COMPLEX, evaluate::index_m_2, 3,
465 : : { TAG_MATRIX, TAG_DOUBLE, TAG_DOUBLE } },
466 : : { "array", TAG_CHAR, evaluate::index_s_1, 2, { TAG_STRING, TAG_DOUBLE } },
467 : :
468 : : { "stos", TAG_MATRIX, evaluate::stos_m_d, 2, { TAG_MATRIX, TAG_DOUBLE } },
469 : : { "stos", TAG_MATRIX, evaluate::stos_m_d_d, 3, { TAG_MATRIX, TAG_DOUBLE,
470 : : TAG_DOUBLE } },
471 : : { "stos", TAG_MATRIX, evaluate::stos_m_d_c, 3, { TAG_MATRIX, TAG_DOUBLE,
472 : : TAG_COMPLEX } },
473 : : { "stos", TAG_MATRIX, evaluate::stos_m_d_v, 3, { TAG_MATRIX, TAG_DOUBLE,
474 : : TAG_VECTOR } },
475 : : { "stos", TAG_MATRIX, evaluate::stos_m_c, 2, { TAG_MATRIX, TAG_COMPLEX } },
476 : : { "stos", TAG_MATRIX, evaluate::stos_m_c_d, 3, { TAG_MATRIX, TAG_COMPLEX,
477 : : TAG_DOUBLE } },
478 : : { "stos", TAG_MATRIX, evaluate::stos_m_c_c, 3, { TAG_MATRIX, TAG_COMPLEX,
479 : : TAG_COMPLEX } },
480 : : { "stos", TAG_MATRIX, evaluate::stos_m_c_v, 3, { TAG_MATRIX, TAG_COMPLEX,
481 : : TAG_VECTOR } },
482 : : { "stos", TAG_MATRIX, evaluate::stos_m_v, 2, { TAG_MATRIX, TAG_VECTOR } },
483 : : { "stos", TAG_MATRIX, evaluate::stos_m_v_d, 3, { TAG_MATRIX, TAG_VECTOR,
484 : : TAG_DOUBLE } },
485 : : { "stos", TAG_MATRIX, evaluate::stos_m_v_c, 3, { TAG_MATRIX, TAG_VECTOR,
486 : : TAG_COMPLEX } },
487 : : { "stos", TAG_MATRIX, evaluate::stos_m_v_v, 3, { TAG_MATRIX, TAG_VECTOR,
488 : : TAG_VECTOR } },
489 : :
490 : : { "stos", TAG_MATVEC, evaluate::stos_mv_d, 2, { TAG_MATVEC, TAG_DOUBLE } },
491 : : { "stos", TAG_MATVEC, evaluate::stos_mv_d_d, 3, { TAG_MATVEC, TAG_DOUBLE,
492 : : TAG_DOUBLE } },
493 : : { "stos", TAG_MATVEC, evaluate::stos_mv_d_c, 3, { TAG_MATVEC, TAG_DOUBLE,
494 : : TAG_COMPLEX } },
495 : : { "stos", TAG_MATVEC, evaluate::stos_mv_d_v, 3, { TAG_MATVEC, TAG_DOUBLE,
496 : : TAG_VECTOR } },
497 : : { "stos", TAG_MATVEC, evaluate::stos_mv_c, 2, { TAG_MATVEC,
498 : : TAG_COMPLEX } },
499 : : { "stos", TAG_MATVEC, evaluate::stos_mv_c_d, 3, { TAG_MATVEC, TAG_COMPLEX,
500 : : TAG_DOUBLE } },
501 : : { "stos", TAG_MATVEC, evaluate::stos_mv_c_c, 3, { TAG_MATVEC, TAG_COMPLEX,
502 : : TAG_COMPLEX } },
503 : : { "stos", TAG_MATVEC, evaluate::stos_mv_c_v, 3, { TAG_MATVEC, TAG_COMPLEX,
504 : : TAG_VECTOR } },
505 : : { "stos", TAG_MATVEC, evaluate::stos_mv_v, 2, { TAG_MATVEC, TAG_VECTOR } },
506 : : { "stos", TAG_MATVEC, evaluate::stos_mv_v_d, 3, { TAG_MATVEC, TAG_VECTOR,
507 : : TAG_DOUBLE } },
508 : : { "stos", TAG_MATVEC, evaluate::stos_mv_v_c, 3, { TAG_MATVEC, TAG_VECTOR,
509 : : TAG_COMPLEX } },
510 : : { "stos", TAG_MATVEC, evaluate::stos_mv_v_v, 3, { TAG_MATVEC, TAG_VECTOR,
511 : : TAG_VECTOR } },
512 : :
513 : : { "stoy", TAG_MATRIX, evaluate::stoy_m, 1, { TAG_MATRIX } },
514 : : { "stoy", TAG_MATRIX, evaluate::stoy_m_d, 2, { TAG_MATRIX, TAG_DOUBLE } },
515 : : { "stoy", TAG_MATRIX, evaluate::stoy_m_c, 2, { TAG_MATRIX, TAG_COMPLEX } },
516 : : { "stoy", TAG_MATRIX, evaluate::stoy_m_v, 2, { TAG_MATRIX, TAG_VECTOR } },
517 : : { "stoy", TAG_MATVEC, evaluate::stoy_mv, 1, { TAG_MATVEC } },
518 : : { "stoy", TAG_MATVEC, evaluate::stoy_mv_d, 2, { TAG_MATVEC, TAG_DOUBLE } },
519 : : { "stoy", TAG_MATVEC, evaluate::stoy_mv_c, 2, { TAG_MATVEC, TAG_COMPLEX } },
520 : : { "stoy", TAG_MATVEC, evaluate::stoy_mv_v, 2, { TAG_MATVEC, TAG_VECTOR } },
521 : :
522 : : { "stoz", TAG_MATRIX, evaluate::stoz_m, 1, { TAG_MATRIX } },
523 : : { "stoz", TAG_MATRIX, evaluate::stoz_m_d, 2, { TAG_MATRIX, TAG_DOUBLE } },
524 : : { "stoz", TAG_MATRIX, evaluate::stoz_m_c, 2, { TAG_MATRIX, TAG_COMPLEX } },
525 : : { "stoz", TAG_MATRIX, evaluate::stoz_m_v, 2, { TAG_MATRIX, TAG_VECTOR } },
526 : : { "stoz", TAG_MATVEC, evaluate::stoz_mv, 1, { TAG_MATVEC } },
527 : : { "stoz", TAG_MATVEC, evaluate::stoz_mv_d, 2, { TAG_MATVEC, TAG_DOUBLE } },
528 : : { "stoz", TAG_MATVEC, evaluate::stoz_mv_c, 2, { TAG_MATVEC, TAG_COMPLEX } },
529 : : { "stoz", TAG_MATVEC, evaluate::stoz_mv_v, 2, { TAG_MATVEC, TAG_VECTOR } },
530 : :
531 : : { "ytos", TAG_MATRIX, evaluate::ytos_m, 1, { TAG_MATRIX } },
532 : : { "ytos", TAG_MATRIX, evaluate::ytos_m_d, 2, { TAG_MATRIX, TAG_DOUBLE } },
533 : : { "ytos", TAG_MATRIX, evaluate::ytos_m_c, 2, { TAG_MATRIX, TAG_COMPLEX } },
534 : : { "ytos", TAG_MATRIX, evaluate::ytos_m_v, 2, { TAG_MATRIX, TAG_VECTOR } },
535 : : { "ytos", TAG_MATVEC, evaluate::ytos_mv, 1, { TAG_MATVEC } },
536 : : { "ytos", TAG_MATVEC, evaluate::ytos_mv_d, 2, { TAG_MATVEC, TAG_DOUBLE } },
537 : : { "ytos", TAG_MATVEC, evaluate::ytos_mv_c, 2, { TAG_MATVEC, TAG_COMPLEX } },
538 : : { "ytos", TAG_MATVEC, evaluate::ytos_mv_v, 2, { TAG_MATVEC, TAG_VECTOR } },
539 : :
540 : : { "ztos", TAG_MATRIX, evaluate::ztos_m, 1, { TAG_MATRIX } },
541 : : { "ztos", TAG_MATRIX, evaluate::ztos_m_d, 2, { TAG_MATRIX, TAG_DOUBLE } },
542 : : { "ztos", TAG_MATRIX, evaluate::ztos_m_c, 2, { TAG_MATRIX, TAG_COMPLEX } },
543 : : { "ztos", TAG_MATRIX, evaluate::ztos_m_v, 2, { TAG_MATRIX, TAG_VECTOR } },
544 : : { "ztos", TAG_MATVEC, evaluate::ztos_mv, 1, { TAG_MATVEC } },
545 : : { "ztos", TAG_MATVEC, evaluate::ztos_mv_d, 2, { TAG_MATVEC, TAG_DOUBLE } },
546 : : { "ztos", TAG_MATVEC, evaluate::ztos_mv_c, 2, { TAG_MATVEC, TAG_COMPLEX } },
547 : : { "ztos", TAG_MATVEC, evaluate::ztos_mv_v, 2, { TAG_MATVEC, TAG_VECTOR } },
548 : :
549 : : { "ytoz", TAG_MATRIX, evaluate::ytoz_m, 1, { TAG_MATRIX } },
550 : : { "ytoz", TAG_MATVEC, evaluate::ytoz_mv, 1, { TAG_MATVEC } },
551 : : { "ztoy", TAG_MATRIX, evaluate::ztoy_m, 1, { TAG_MATRIX } },
552 : : { "ztoy", TAG_MATVEC, evaluate::ztoy_mv, 1, { TAG_MATVEC } },
553 : :
554 : : { "twoport", TAG_MATRIX, evaluate::twoport_m, 3,
555 : : { TAG_MATRIX, TAG_CHAR, TAG_CHAR } },
556 : : { "twoport", TAG_MATVEC, evaluate::twoport_mv, 3,
557 : : { TAG_MATVEC, TAG_CHAR, TAG_CHAR } },
558 : :
559 : : { "inverse", TAG_MATRIX, evaluate::inverse_m, 1, { TAG_MATRIX } },
560 : : { "inverse", TAG_MATVEC, evaluate::inverse_mv, 1, { TAG_MATVEC } },
561 : : { "transpose", TAG_MATRIX, evaluate::transpose_m, 1, { TAG_MATRIX } },
562 : : { "transpose", TAG_MATVEC, evaluate::transpose_mv, 1, { TAG_MATVEC } },
563 : : { "det", TAG_COMPLEX, evaluate::det_m, 1, { TAG_MATRIX } },
564 : : { "det", TAG_VECTOR, evaluate::det_mv, 1, { TAG_MATVEC } },
565 : : { "eye", TAG_MATRIX, evaluate::eye_m, 1, { TAG_DOUBLE } },
566 : : { "adjoint", TAG_MATRIX, evaluate::adjoint_m, 1, { TAG_MATRIX } },
567 : : { "adjoint", TAG_MATVEC, evaluate::adjoint_mv, 1, { TAG_MATVEC } },
568 : :
569 : : { "signum", TAG_DOUBLE, evaluate::signum_d, 1, { TAG_DOUBLE } },
570 : : { "signum", TAG_COMPLEX, evaluate::signum_c, 1, { TAG_COMPLEX } },
571 : : { "signum", TAG_VECTOR, evaluate::signum_v, 1, { TAG_VECTOR } },
572 : :
573 : : { "sign", TAG_DOUBLE, evaluate::sign_d, 1, { TAG_DOUBLE } },
574 : : { "sign", TAG_COMPLEX, evaluate::sign_c, 1, { TAG_COMPLEX } },
575 : : { "sign", TAG_VECTOR, evaluate::sign_v, 1, { TAG_VECTOR } },
576 : :
577 : : { "sinc", TAG_DOUBLE, evaluate::sinc_d, 1, { TAG_DOUBLE } },
578 : : { "sinc", TAG_COMPLEX, evaluate::sinc_c, 1, { TAG_COMPLEX } },
579 : : { "sinc", TAG_VECTOR, evaluate::sinc_v, 1, { TAG_VECTOR } },
580 : :
581 : : { "Rollet", TAG_DOUBLE, evaluate::rollet_m, 1, { TAG_MATRIX } },
582 : : { "Rollet", TAG_VECTOR, evaluate::rollet_mv, 1, { TAG_MATVEC } },
583 : : { "Mu", TAG_DOUBLE, evaluate::mu1_m, 1, { TAG_MATRIX } },
584 : : { "Mu", TAG_VECTOR, evaluate::mu1_mv, 1, { TAG_MATVEC } },
585 : : { "Mu2", TAG_DOUBLE, evaluate::mu2_m, 1, { TAG_MATRIX } },
586 : : { "Mu2", TAG_VECTOR, evaluate::mu2_mv, 1, { TAG_MATVEC } },
587 : : { "StabFactor", TAG_DOUBLE, evaluate::rollet_m, 1, { TAG_MATRIX } },
588 : : { "StabFactor", TAG_VECTOR, evaluate::rollet_mv, 1, { TAG_MATVEC } },
589 : : { "StabMeasure", TAG_DOUBLE, evaluate::b1_m, 1, { TAG_MATRIX } },
590 : : { "StabMeasure", TAG_VECTOR, evaluate::b1_mv, 1, { TAG_MATVEC } },
591 : :
592 : : { "linspace", TAG_VECTOR, evaluate::linspace, 3,
593 : : { TAG_DOUBLE, TAG_DOUBLE, TAG_DOUBLE } },
594 : : { "logspace", TAG_VECTOR, evaluate::logspace, 3,
595 : : { TAG_DOUBLE, TAG_DOUBLE, TAG_DOUBLE } },
596 : : { "NoiseCircle", TAG_VECTOR, evaluate::noise_circle_d_v, 5,
597 : : { TAG_VECTOR, TAG_VECTOR, TAG_VECTOR, TAG_DOUBLE, TAG_VECTOR } },
598 : : { "NoiseCircle", TAG_VECTOR, evaluate::noise_circle_d_d, 5,
599 : : { TAG_VECTOR, TAG_VECTOR, TAG_VECTOR, TAG_DOUBLE, TAG_DOUBLE } },
600 : : { "NoiseCircle", TAG_VECTOR, evaluate::noise_circle_d, 4,
601 : : { TAG_VECTOR, TAG_VECTOR, TAG_VECTOR, TAG_DOUBLE } },
602 : : { "NoiseCircle", TAG_VECTOR, evaluate::noise_circle_v_v, 5,
603 : : { TAG_VECTOR, TAG_VECTOR, TAG_VECTOR, TAG_VECTOR, TAG_VECTOR } },
604 : : { "NoiseCircle", TAG_VECTOR, evaluate::noise_circle_v_d, 5,
605 : : { TAG_VECTOR, TAG_VECTOR, TAG_VECTOR, TAG_VECTOR, TAG_DOUBLE } },
606 : : { "NoiseCircle", TAG_VECTOR, evaluate::noise_circle_v, 4,
607 : : { TAG_VECTOR, TAG_VECTOR, TAG_VECTOR, TAG_VECTOR } },
608 : : { "StabCircleL", TAG_VECTOR, evaluate::stab_circle_l_v, 2,
609 : : { TAG_MATVEC, TAG_VECTOR } },
610 : : { "StabCircleL", TAG_VECTOR, evaluate::stab_circle_l_d, 2,
611 : : { TAG_MATVEC, TAG_DOUBLE } },
612 : : { "StabCircleL", TAG_VECTOR, evaluate::stab_circle_l, 1, { TAG_MATVEC } },
613 : : { "StabCircleS", TAG_VECTOR, evaluate::stab_circle_s_v, 2,
614 : : { TAG_MATVEC, TAG_VECTOR } },
615 : : { "StabCircleS", TAG_VECTOR, evaluate::stab_circle_s_d, 2,
616 : : { TAG_MATVEC, TAG_DOUBLE } },
617 : : { "StabCircleS", TAG_VECTOR, evaluate::stab_circle_s, 1, { TAG_MATVEC } },
618 : : { "GaCircle", TAG_VECTOR, evaluate::ga_circle_d_v, 3,
619 : : { TAG_MATVEC, TAG_DOUBLE, TAG_VECTOR } },
620 : : { "GaCircle", TAG_VECTOR, evaluate::ga_circle_d_d, 3,
621 : : { TAG_MATVEC, TAG_DOUBLE, TAG_DOUBLE } },
622 : : { "GaCircle", TAG_VECTOR, evaluate::ga_circle_d, 2,
623 : : { TAG_MATVEC, TAG_DOUBLE } },
624 : : { "GaCircle", TAG_VECTOR, evaluate::ga_circle_v_v, 3,
625 : : { TAG_MATVEC, TAG_VECTOR, TAG_VECTOR } },
626 : : { "GaCircle", TAG_VECTOR, evaluate::ga_circle_v_d, 3,
627 : : { TAG_MATVEC, TAG_VECTOR, TAG_DOUBLE } },
628 : : { "GaCircle", TAG_VECTOR, evaluate::ga_circle_v, 2,
629 : : { TAG_MATVEC, TAG_VECTOR } },
630 : : { "GpCircle", TAG_VECTOR, evaluate::gp_circle_d_v, 3,
631 : : { TAG_MATVEC, TAG_DOUBLE, TAG_VECTOR } },
632 : : { "GpCircle", TAG_VECTOR, evaluate::gp_circle_d_d, 3,
633 : : { TAG_MATVEC, TAG_DOUBLE, TAG_DOUBLE } },
634 : : { "GpCircle", TAG_VECTOR, evaluate::gp_circle_d, 2,
635 : : { TAG_MATVEC, TAG_DOUBLE } },
636 : : { "GpCircle", TAG_VECTOR, evaluate::gp_circle_v_v, 3,
637 : : { TAG_MATVEC, TAG_VECTOR, TAG_VECTOR } },
638 : : { "GpCircle", TAG_VECTOR, evaluate::gp_circle_v_d, 3,
639 : : { TAG_MATVEC, TAG_VECTOR, TAG_DOUBLE } },
640 : : { "GpCircle", TAG_VECTOR, evaluate::gp_circle_v, 2,
641 : : { TAG_MATVEC, TAG_VECTOR } },
642 : : { "PlotVs", TAG_VECTOR, evaluate::plot_vs_v, 2,
643 : : { TAG_VECTOR, TAG_VECTOR } },
644 : : { "PlotVs", TAG_VECTOR, evaluate::plot_vs_v, 3,
645 : : { TAG_VECTOR, TAG_VECTOR, TAG_VECTOR } },
646 : : { "PlotVs", TAG_VECTOR, evaluate::plot_vs_v, 4,
647 : : { TAG_VECTOR, TAG_VECTOR, TAG_VECTOR, TAG_VECTOR } },
648 : : { "PlotVs", TAG_VECTOR, evaluate::plot_vs_v, 5,
649 : : { TAG_VECTOR, TAG_VECTOR, TAG_VECTOR, TAG_VECTOR, TAG_VECTOR } },
650 : : { "PlotVs", TAG_MATVEC, evaluate::plot_vs_mv, 2,
651 : : { TAG_MATVEC, TAG_VECTOR } },
652 : : { "PlotVs", TAG_MATVEC, evaluate::plot_vs_mv, 3,
653 : : { TAG_MATVEC, TAG_VECTOR, TAG_VECTOR } },
654 : : { "PlotVs", TAG_MATVEC, evaluate::plot_vs_mv, 4,
655 : : { TAG_MATVEC, TAG_VECTOR, TAG_VECTOR, TAG_VECTOR } },
656 : : { "PlotVs", TAG_MATVEC, evaluate::plot_vs_mv, 5,
657 : : { TAG_MATVEC, TAG_VECTOR, TAG_VECTOR, TAG_VECTOR, TAG_VECTOR } },
658 : :
659 : : { "interpolate", TAG_VECTOR, evaluate::interpolate_v_v_d, 3,
660 : : { TAG_VECTOR, TAG_VECTOR, TAG_DOUBLE } },
661 : : { "interpolate", TAG_VECTOR, evaluate::interpolate_v_v, 2,
662 : : { TAG_VECTOR, TAG_VECTOR } },
663 : :
664 : : { "fft", TAG_VECTOR, evaluate::fft_v, 1, { TAG_VECTOR } },
665 : : { "ifft", TAG_VECTOR, evaluate::ifft_v, 1, { TAG_VECTOR } },
666 : : { "dft", TAG_VECTOR, evaluate::dft_v, 1, { TAG_VECTOR } },
667 : : { "idft", TAG_VECTOR, evaluate::idft_v, 1, { TAG_VECTOR } },
668 : :
669 : : { "Time2Freq", TAG_VECTOR, evaluate::time2freq_v_v, 2,
670 : : { TAG_VECTOR, TAG_VECTOR } },
671 : : { "Freq2Time", TAG_VECTOR, evaluate::freq2time_v_v, 2,
672 : : { TAG_VECTOR, TAG_VECTOR } },
673 : : { "receiver", TAG_VECTOR, evaluate::receiver_v_v, 2,
674 : : { TAG_VECTOR, TAG_VECTOR } },
675 : : { "receiver", TAG_VECTOR, evaluate::receiver_v_v, 3,
676 : : { TAG_VECTOR, TAG_VECTOR, TAG_DOUBLE } },
677 : : { "fftshift", TAG_VECTOR, evaluate::fftshift_v, 1, { TAG_VECTOR } },
678 : :
679 : : { "xvalue", TAG_COMPLEX, evaluate::xvalue_d, 2,
680 : : { TAG_VECTOR, TAG_DOUBLE } },
681 : : { "xvalue", TAG_COMPLEX, evaluate::xvalue_c, 2,
682 : : { TAG_VECTOR, TAG_COMPLEX } },
683 : : { "yvalue", TAG_COMPLEX, evaluate::yvalue_d, 2,
684 : : { TAG_VECTOR, TAG_DOUBLE } },
685 : : { "yvalue", TAG_COMPLEX, evaluate::yvalue_c, 2,
686 : : { TAG_VECTOR, TAG_COMPLEX } },
687 : :
688 : : { "range", TAG_RANGE, evaluate::range_d_d, 2, { TAG_DOUBLE, TAG_DOUBLE } },
689 : : { "range", TAG_RANGE, evaluate::range_c_d, 2, { TAG_CHAR, TAG_DOUBLE } },
690 : : { "range", TAG_RANGE, evaluate::range_d_c, 2, { TAG_DOUBLE, TAG_CHAR } },
691 : : { "range", TAG_RANGE, evaluate::range_c_c, 2, { TAG_CHAR, TAG_CHAR } },
692 : :
693 : : { "ceil", TAG_DOUBLE, evaluate::ceil_d, 1, { TAG_DOUBLE } },
694 : : { "ceil", TAG_COMPLEX, evaluate::ceil_c, 1, { TAG_COMPLEX } },
695 : : { "ceil", TAG_VECTOR, evaluate::ceil_v, 1, { TAG_VECTOR } },
696 : :
697 : : { "fix", TAG_DOUBLE, evaluate::fix_d, 1, { TAG_DOUBLE } },
698 : : { "fix", TAG_COMPLEX, evaluate::fix_c, 1, { TAG_COMPLEX } },
699 : : { "fix", TAG_VECTOR, evaluate::fix_v, 1, { TAG_VECTOR } },
700 : :
701 : : { "step", TAG_DOUBLE, evaluate::step_d, 1, { TAG_DOUBLE } },
702 : : { "step", TAG_COMPLEX, evaluate::step_c, 1, { TAG_COMPLEX } },
703 : : { "step", TAG_VECTOR, evaluate::step_v, 1, { TAG_VECTOR } },
704 : :
705 : : { "floor", TAG_DOUBLE, evaluate::floor_d, 1, { TAG_DOUBLE } },
706 : : { "floor", TAG_COMPLEX, evaluate::floor_c, 1, { TAG_COMPLEX } },
707 : : { "floor", TAG_VECTOR, evaluate::floor_v, 1, { TAG_VECTOR } },
708 : :
709 : : { "round", TAG_DOUBLE, evaluate::round_d, 1, { TAG_DOUBLE } },
710 : : { "round", TAG_COMPLEX, evaluate::round_c, 1, { TAG_COMPLEX } },
711 : : { "round", TAG_VECTOR, evaluate::round_v, 1, { TAG_VECTOR } },
712 : :
713 : : { "erf", TAG_DOUBLE, evaluate::erf_d, 1, { TAG_DOUBLE } },
714 : : { "erf", TAG_COMPLEX, evaluate::erf_c, 1, { TAG_COMPLEX } },
715 : : { "erf", TAG_VECTOR, evaluate::erf_v, 1, { TAG_VECTOR } },
716 : :
717 : : { "erfc", TAG_DOUBLE, evaluate::erfc_d, 1, { TAG_DOUBLE } },
718 : : { "erfc", TAG_COMPLEX, evaluate::erfc_c, 1, { TAG_COMPLEX } },
719 : : { "erfc", TAG_VECTOR, evaluate::erfc_v, 1, { TAG_VECTOR } },
720 : :
721 : : { "erfinv", TAG_DOUBLE, evaluate::erfinv_d, 1, { TAG_DOUBLE } },
722 : : { "erfinv", TAG_COMPLEX, evaluate::erfinv_c, 1, { TAG_COMPLEX } },
723 : : { "erfinv", TAG_VECTOR, evaluate::erfinv_v, 1, { TAG_VECTOR } },
724 : :
725 : : { "erfcinv", TAG_DOUBLE, evaluate::erfcinv_d, 1, { TAG_DOUBLE } },
726 : : { "erfcinv", TAG_COMPLEX, evaluate::erfcinv_c, 1, { TAG_COMPLEX } },
727 : : { "erfcinv", TAG_VECTOR, evaluate::erfcinv_v, 1, { TAG_VECTOR } },
728 : :
729 : : { "cumsum", TAG_DOUBLE, evaluate::cumsum_d, 1, { TAG_DOUBLE } },
730 : : { "cumsum", TAG_COMPLEX, evaluate::cumsum_c, 1, { TAG_COMPLEX } },
731 : : { "cumsum", TAG_VECTOR, evaluate::cumsum_v, 1, { TAG_VECTOR } },
732 : :
733 : : { "cumavg", TAG_DOUBLE, evaluate::cumavg_d, 1, { TAG_DOUBLE } },
734 : : { "cumavg", TAG_COMPLEX, evaluate::cumavg_c, 1, { TAG_COMPLEX } },
735 : : { "cumavg", TAG_VECTOR, evaluate::cumavg_v, 1, { TAG_VECTOR } },
736 : :
737 : : { "cumprod", TAG_DOUBLE, evaluate::cumprod_d, 1, { TAG_DOUBLE } },
738 : : { "cumprod", TAG_COMPLEX, evaluate::cumprod_c, 1, { TAG_COMPLEX } },
739 : : { "cumprod", TAG_VECTOR, evaluate::cumprod_v, 1, { TAG_VECTOR } },
740 : :
741 : : { "rms", TAG_DOUBLE, evaluate::rms_d, 1, { TAG_DOUBLE } },
742 : : { "rms", TAG_DOUBLE, evaluate::rms_c, 1, { TAG_COMPLEX } },
743 : : { "rms", TAG_DOUBLE, evaluate::rms_v, 1, { TAG_VECTOR } },
744 : :
745 : : { "variance", TAG_DOUBLE, evaluate::variance_d, 1, { TAG_DOUBLE } },
746 : : { "variance", TAG_DOUBLE, evaluate::variance_c, 1, { TAG_COMPLEX } },
747 : : { "variance", TAG_DOUBLE, evaluate::variance_v, 1, { TAG_VECTOR } },
748 : :
749 : : { "stddev", TAG_DOUBLE, evaluate::stddev_d, 1, { TAG_DOUBLE } },
750 : : { "stddev", TAG_DOUBLE, evaluate::stddev_c, 1, { TAG_COMPLEX } },
751 : : { "stddev", TAG_DOUBLE, evaluate::stddev_v, 1, { TAG_VECTOR } },
752 : :
753 : : { "besseli0", TAG_DOUBLE, evaluate::i0_d, 1, { TAG_DOUBLE } },
754 : : { "besseli0", TAG_COMPLEX, evaluate::i0_c, 1, { TAG_COMPLEX } },
755 : : { "besseli0", TAG_VECTOR, evaluate::i0_v, 1, { TAG_VECTOR } },
756 : :
757 : : { "besselj", TAG_DOUBLE, evaluate::jn_d_d, 2, { TAG_DOUBLE, TAG_DOUBLE } },
758 : : { "besselj", TAG_COMPLEX, evaluate::jn_d_c, 2, { TAG_DOUBLE, TAG_COMPLEX } },
759 : : { "besselj", TAG_VECTOR, evaluate::jn_d_v, 2, { TAG_DOUBLE, TAG_VECTOR } },
760 : : { "bessely", TAG_DOUBLE, evaluate::yn_d_d, 2, { TAG_DOUBLE, TAG_DOUBLE } },
761 : : { "bessely", TAG_COMPLEX, evaluate::yn_d_c, 2, { TAG_DOUBLE, TAG_COMPLEX } },
762 : : { "bessely", TAG_VECTOR, evaluate::yn_d_v, 2, { TAG_DOUBLE, TAG_VECTOR } },
763 : :
764 : : { "sqr", TAG_DOUBLE, evaluate::sqr_d, 1, { TAG_DOUBLE } },
765 : : { "sqr", TAG_COMPLEX, evaluate::sqr_c, 1, { TAG_COMPLEX } },
766 : : { "sqr", TAG_VECTOR, evaluate::sqr_v, 1, { TAG_VECTOR } },
767 : : { "sqr", TAG_MATRIX, evaluate::sqr_m, 1, { TAG_MATRIX } },
768 : : { "sqr", TAG_MATVEC, evaluate::sqr_mv, 1, { TAG_MATVEC } },
769 : :
770 : : { "polar", TAG_COMPLEX, evaluate::polar_d_d, 2,
771 : : { TAG_DOUBLE, TAG_DOUBLE } },
772 : : { "polar", TAG_COMPLEX, evaluate::polar_d_c, 2,
773 : : { TAG_DOUBLE, TAG_COMPLEX } },
774 : : { "polar", TAG_COMPLEX, evaluate::polar_c_d, 2,
775 : : { TAG_COMPLEX, TAG_DOUBLE } },
776 : : { "polar", TAG_COMPLEX, evaluate::polar_c_c, 2,
777 : : { TAG_COMPLEX, TAG_COMPLEX } },
778 : : { "polar", TAG_VECTOR, evaluate::polar_d_v, 2,
779 : : { TAG_DOUBLE, TAG_VECTOR } },
780 : : { "polar", TAG_VECTOR, evaluate::polar_c_v, 2,
781 : : { TAG_COMPLEX, TAG_VECTOR } },
782 : : { "polar", TAG_VECTOR, evaluate::polar_v_d, 2,
783 : : { TAG_VECTOR, TAG_DOUBLE } },
784 : : { "polar", TAG_VECTOR, evaluate::polar_v_c, 2,
785 : : { TAG_VECTOR, TAG_COMPLEX } },
786 : : { "polar", TAG_VECTOR, evaluate::polar_v_v, 2,
787 : : { TAG_VECTOR, TAG_VECTOR } },
788 : :
789 : : { "arctan", TAG_COMPLEX, evaluate::arctan2_d_d, 2,
790 : : { TAG_DOUBLE, TAG_DOUBLE } },
791 : : { "arctan", TAG_VECTOR, evaluate::arctan2_d_v, 2,
792 : : { TAG_DOUBLE, TAG_VECTOR } },
793 : : { "arctan", TAG_VECTOR, evaluate::arctan2_v_d, 2,
794 : : { TAG_VECTOR, TAG_DOUBLE } },
795 : : { "arctan", TAG_VECTOR, evaluate::arctan2_v_v, 2,
796 : : { TAG_VECTOR, TAG_VECTOR } },
797 : :
798 : : { "dbm2w", TAG_DOUBLE, evaluate::dbm2w_d, 1, { TAG_DOUBLE } },
799 : : { "dbm2w", TAG_COMPLEX, evaluate::dbm2w_c, 1, { TAG_COMPLEX } },
800 : : { "dbm2w", TAG_VECTOR, evaluate::dbm2w_v, 1, { TAG_VECTOR } },
801 : :
802 : : { "w2dbm", TAG_DOUBLE, evaluate::w2dbm_d, 1, { TAG_DOUBLE } },
803 : : { "w2dbm", TAG_COMPLEX, evaluate::w2dbm_c, 1, { TAG_COMPLEX } },
804 : : { "w2dbm", TAG_VECTOR, evaluate::w2dbm_v, 1, { TAG_VECTOR } },
805 : :
806 : : { "integrate", TAG_DOUBLE, evaluate::integrate_d_d, 2,
807 : : { TAG_DOUBLE, TAG_DOUBLE } },
808 : : { "integrate", TAG_COMPLEX, evaluate::integrate_c_c, 2,
809 : : { TAG_COMPLEX, TAG_COMPLEX } },
810 : : { "integrate", TAG_DOUBLE, evaluate::integrate_v_d, 2,
811 : : { TAG_VECTOR, TAG_DOUBLE } },
812 : : { "integrate", TAG_COMPLEX, evaluate::integrate_v_c, 2,
813 : : { TAG_VECTOR, TAG_COMPLEX } },
814 : :
815 : : { "dbm", TAG_DOUBLE, evaluate::dbm_d, 1, { TAG_DOUBLE } },
816 : : { "dbm", TAG_DOUBLE, evaluate::dbm_d_d, 2, { TAG_DOUBLE, TAG_DOUBLE } },
817 : : { "dbm", TAG_COMPLEX, evaluate::dbm_c, 1, { TAG_COMPLEX } },
818 : : { "dbm", TAG_DOUBLE, evaluate::dbm_c_d, 2, { TAG_COMPLEX, TAG_DOUBLE } },
819 : : { "dbm", TAG_VECTOR, evaluate::dbm_v, 1, { TAG_VECTOR } },
820 : : { "dbm", TAG_VECTOR, evaluate::dbm_v_d, 2, { TAG_VECTOR, TAG_DOUBLE } },
821 : : { "dbm", TAG_COMPLEX, evaluate::dbm_d_c, 2, { TAG_DOUBLE, TAG_COMPLEX } },
822 : : { "dbm", TAG_COMPLEX, evaluate::dbm_c_c, 2, { TAG_COMPLEX, TAG_COMPLEX } },
823 : : { "dbm", TAG_VECTOR, evaluate::dbm_v_c, 2, { TAG_VECTOR, TAG_COMPLEX } },
824 : :
825 : : { "runavg", TAG_VECTOR, evaluate::runavg_d_d, 2,
826 : : { TAG_DOUBLE, TAG_DOUBLE } },
827 : : { "runavg", TAG_VECTOR, evaluate::runavg_c_d, 2,
828 : : { TAG_COMPLEX, TAG_DOUBLE } },
829 : : { "runavg", TAG_VECTOR, evaluate::runavg_v_d, 2,
830 : : { TAG_VECTOR, TAG_DOUBLE } },
831 : :
832 : : { "vt", TAG_DOUBLE, evaluate::vt_d, 1, { TAG_DOUBLE } },
833 : : { "vt", TAG_COMPLEX, evaluate::vt_c, 1, { TAG_COMPLEX } },
834 : : { "vt", TAG_VECTOR, evaluate::vt_v, 1, { TAG_VECTOR } },
835 : :
836 : : { "kbd", TAG_VECTOR, evaluate::kbd_d_d, 2, { TAG_DOUBLE, TAG_DOUBLE } },
837 : : { "kbd", TAG_VECTOR, evaluate::kbd_d, 1, { TAG_DOUBLE } },
838 : :
839 : : { "?:", TAG_BOOLEAN, evaluate::ifthenelse_b_b, 3,
840 : : { TAG_BOOLEAN, TAG_BOOLEAN, TAG_BOOLEAN } },
841 : : { "?:", TAG_DOUBLE, evaluate::ifthenelse_d_d, 3,
842 : : { TAG_BOOLEAN, TAG_DOUBLE, TAG_DOUBLE } },
843 : : { "?:", TAG_DOUBLE, evaluate::ifthenelse_d_b, 3,
844 : : { TAG_BOOLEAN, TAG_DOUBLE, TAG_BOOLEAN } },
845 : : { "?:", TAG_DOUBLE, evaluate::ifthenelse_b_d, 3,
846 : : { TAG_BOOLEAN, TAG_BOOLEAN, TAG_DOUBLE } },
847 : : { "?:", TAG_COMPLEX, evaluate::ifthenelse_c_c, 3,
848 : : { TAG_BOOLEAN, TAG_DOUBLE, TAG_COMPLEX } },
849 : : { "?:", TAG_COMPLEX, evaluate::ifthenelse_c_c, 3,
850 : : { TAG_BOOLEAN, TAG_BOOLEAN, TAG_COMPLEX } },
851 : : { "?:", TAG_COMPLEX, evaluate::ifthenelse_c_c, 3,
852 : : { TAG_BOOLEAN, TAG_COMPLEX, TAG_DOUBLE } },
853 : : { "?:", TAG_COMPLEX, evaluate::ifthenelse_c_c, 3,
854 : : { TAG_BOOLEAN, TAG_COMPLEX, TAG_BOOLEAN } },
855 : : { "?:", TAG_COMPLEX, evaluate::ifthenelse_c_c, 3,
856 : : { TAG_BOOLEAN, TAG_COMPLEX, TAG_COMPLEX } },
857 : : { "?:", TAG_MATRIX, evaluate::ifthenelse_m_m, 3,
858 : : { TAG_BOOLEAN, TAG_MATRIX, TAG_MATRIX } },
859 : : { "?:", TAG_MATRIX, evaluate::ifthenelse_m_m, 3,
860 : : { TAG_BOOLEAN, TAG_BOOLEAN, TAG_MATRIX } },
861 : : { "?:", TAG_MATRIX, evaluate::ifthenelse_m_m, 3,
862 : : { TAG_BOOLEAN, TAG_DOUBLE, TAG_MATRIX } },
863 : : { "?:", TAG_MATRIX, evaluate::ifthenelse_m_m, 3,
864 : : { TAG_BOOLEAN, TAG_COMPLEX, TAG_MATRIX } },
865 : : { "?:", TAG_MATRIX, evaluate::ifthenelse_m_m, 3,
866 : : { TAG_BOOLEAN, TAG_MATRIX, TAG_BOOLEAN } },
867 : : { "?:", TAG_MATRIX, evaluate::ifthenelse_m_m, 3,
868 : : { TAG_BOOLEAN, TAG_MATRIX, TAG_DOUBLE } },
869 : : { "?:", TAG_MATRIX, evaluate::ifthenelse_m_m, 3,
870 : : { TAG_BOOLEAN, TAG_MATRIX, TAG_COMPLEX } },
871 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v, 3,
872 : : { TAG_BOOLEAN, TAG_VECTOR, TAG_VECTOR } },
873 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v, 3,
874 : : { TAG_BOOLEAN, TAG_BOOLEAN, TAG_VECTOR } },
875 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v, 3,
876 : : { TAG_BOOLEAN, TAG_DOUBLE, TAG_VECTOR } },
877 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v, 3,
878 : : { TAG_BOOLEAN, TAG_COMPLEX, TAG_VECTOR } },
879 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v, 3,
880 : : { TAG_BOOLEAN, TAG_VECTOR, TAG_BOOLEAN } },
881 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v, 3,
882 : : { TAG_BOOLEAN, TAG_VECTOR, TAG_DOUBLE } },
883 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v, 3,
884 : : { TAG_BOOLEAN, TAG_VECTOR, TAG_COMPLEX } },
885 : :
886 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v_v, 3,
887 : : { TAG_VECTOR, TAG_VECTOR, TAG_VECTOR } },
888 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v_v, 3,
889 : : { TAG_VECTOR, TAG_BOOLEAN, TAG_VECTOR } },
890 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v_v, 3,
891 : : { TAG_VECTOR, TAG_DOUBLE, TAG_VECTOR } },
892 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v_v, 3,
893 : : { TAG_VECTOR, TAG_COMPLEX, TAG_VECTOR } },
894 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v_v, 3,
895 : : { TAG_VECTOR, TAG_BOOLEAN, TAG_BOOLEAN } },
896 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v_v, 3,
897 : : { TAG_VECTOR, TAG_DOUBLE, TAG_BOOLEAN } },
898 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v_v, 3,
899 : : { TAG_VECTOR, TAG_COMPLEX, TAG_BOOLEAN } },
900 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v_v, 3,
901 : : { TAG_VECTOR, TAG_VECTOR, TAG_BOOLEAN } },
902 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v_v, 3,
903 : : { TAG_VECTOR, TAG_BOOLEAN, TAG_DOUBLE } },
904 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v_v, 3,
905 : : { TAG_VECTOR, TAG_DOUBLE, TAG_DOUBLE } },
906 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v_v, 3,
907 : : { TAG_VECTOR, TAG_COMPLEX, TAG_DOUBLE } },
908 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v_v, 3,
909 : : { TAG_VECTOR, TAG_VECTOR, TAG_DOUBLE } },
910 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v_v, 3,
911 : : { TAG_VECTOR, TAG_BOOLEAN, TAG_COMPLEX } },
912 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v_v, 3,
913 : : { TAG_VECTOR, TAG_DOUBLE, TAG_COMPLEX } },
914 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v_v, 3,
915 : : { TAG_VECTOR, TAG_COMPLEX, TAG_COMPLEX } },
916 : : { "?:", TAG_VECTOR, evaluate::ifthenelse_v_v_v, 3,
917 : : { TAG_VECTOR, TAG_VECTOR, TAG_COMPLEX } },
918 : :
919 : : { "<=", TAG_BOOLEAN, evaluate::lessorequal_d_d, 2,
920 : : { TAG_DOUBLE, TAG_DOUBLE } },
921 : : { "<=", TAG_BOOLEAN, evaluate::lessorequal_d_c, 2,
922 : : { TAG_DOUBLE, TAG_COMPLEX } },
923 : : { "<=", TAG_VECTOR, evaluate::lessorequal_d_v, 2,
924 : : { TAG_DOUBLE, TAG_VECTOR } },
925 : : { "<=", TAG_BOOLEAN, evaluate::lessorequal_c_d, 2,
926 : : { TAG_COMPLEX, TAG_DOUBLE } },
927 : : { "<=", TAG_BOOLEAN, evaluate::lessorequal_c_c, 2,
928 : : { TAG_COMPLEX, TAG_COMPLEX } },
929 : : { "<=", TAG_VECTOR, evaluate::lessorequal_c_v, 2,
930 : : { TAG_COMPLEX, TAG_VECTOR } },
931 : : { "<=", TAG_VECTOR, evaluate::lessorequal_v_d, 2,
932 : : { TAG_VECTOR, TAG_DOUBLE } },
933 : : { "<=", TAG_VECTOR, evaluate::lessorequal_v_c, 2,
934 : : { TAG_VECTOR, TAG_COMPLEX } },
935 : : { "<=", TAG_VECTOR, evaluate::lessorequal_v_v, 2,
936 : : { TAG_VECTOR, TAG_VECTOR } },
937 : :
938 : : { ">=", TAG_BOOLEAN, evaluate::greaterorequal_d_d, 2,
939 : : { TAG_DOUBLE, TAG_DOUBLE } },
940 : : { ">=", TAG_BOOLEAN, evaluate::greaterorequal_d_c, 2,
941 : : { TAG_DOUBLE, TAG_COMPLEX } },
942 : : { ">=", TAG_VECTOR, evaluate::greaterorequal_d_v, 2,
943 : : { TAG_DOUBLE, TAG_VECTOR } },
944 : : { ">=", TAG_BOOLEAN, evaluate::greaterorequal_c_d, 2,
945 : : { TAG_COMPLEX, TAG_DOUBLE } },
946 : : { ">=", TAG_BOOLEAN, evaluate::greaterorequal_c_c, 2,
947 : : { TAG_COMPLEX, TAG_COMPLEX } },
948 : : { ">=", TAG_VECTOR, evaluate::greaterorequal_c_v, 2,
949 : : { TAG_COMPLEX, TAG_VECTOR } },
950 : : { ">=", TAG_VECTOR, evaluate::greaterorequal_v_d, 2,
951 : : { TAG_VECTOR, TAG_DOUBLE } },
952 : : { ">=", TAG_VECTOR, evaluate::greaterorequal_v_c, 2,
953 : : { TAG_VECTOR, TAG_COMPLEX } },
954 : : { ">=", TAG_VECTOR, evaluate::greaterorequal_v_v, 2,
955 : : { TAG_VECTOR, TAG_VECTOR } },
956 : :
957 : : { "<", TAG_BOOLEAN, evaluate::less_d_d, 2, { TAG_DOUBLE, TAG_DOUBLE } },
958 : : { "<", TAG_BOOLEAN, evaluate::less_d_c, 2, { TAG_DOUBLE, TAG_COMPLEX } },
959 : : { "<", TAG_VECTOR, evaluate::less_d_v, 2, { TAG_DOUBLE, TAG_VECTOR } },
960 : : { "<", TAG_BOOLEAN, evaluate::less_c_d, 2, { TAG_COMPLEX, TAG_DOUBLE } },
961 : : { "<", TAG_BOOLEAN, evaluate::less_c_c, 2, { TAG_COMPLEX, TAG_COMPLEX } },
962 : : { "<", TAG_VECTOR, evaluate::less_c_v, 2, { TAG_COMPLEX, TAG_VECTOR } },
963 : : { "<", TAG_VECTOR, evaluate::less_v_d, 2, { TAG_VECTOR, TAG_DOUBLE } },
964 : : { "<", TAG_VECTOR, evaluate::less_v_c, 2, { TAG_VECTOR, TAG_COMPLEX } },
965 : : { "<", TAG_VECTOR, evaluate::less_v_v, 2, { TAG_VECTOR, TAG_VECTOR } },
966 : :
967 : : { ">", TAG_BOOLEAN, evaluate::greater_d_d, 2,
968 : : { TAG_DOUBLE, TAG_DOUBLE } },
969 : : { ">", TAG_BOOLEAN, evaluate::greater_d_c, 2,
970 : : { TAG_DOUBLE, TAG_COMPLEX } },
971 : : { ">", TAG_VECTOR, evaluate::greater_d_v, 2,
972 : : { TAG_DOUBLE, TAG_VECTOR } },
973 : : { ">", TAG_BOOLEAN, evaluate::greater_c_d, 2,
974 : : { TAG_COMPLEX, TAG_DOUBLE } },
975 : : { ">", TAG_BOOLEAN, evaluate::greater_c_c, 2,
976 : : { TAG_COMPLEX, TAG_COMPLEX } },
977 : : { ">", TAG_VECTOR, evaluate::greater_c_v, 2,
978 : : { TAG_COMPLEX, TAG_VECTOR } },
979 : : { ">", TAG_VECTOR, evaluate::greater_v_d, 2,
980 : : { TAG_VECTOR, TAG_DOUBLE } },
981 : : { ">", TAG_VECTOR, evaluate::greater_v_c, 2,
982 : : { TAG_VECTOR, TAG_COMPLEX } },
983 : : { ">", TAG_VECTOR, evaluate::greater_v_v, 2,
984 : : { TAG_VECTOR, TAG_VECTOR } },
985 : :
986 : : { "==", TAG_BOOLEAN, evaluate::equal_d_d, 2,
987 : : { TAG_DOUBLE, TAG_DOUBLE } },
988 : : { "==", TAG_BOOLEAN, evaluate::equal_d_c, 2,
989 : : { TAG_DOUBLE, TAG_COMPLEX } },
990 : : { "==", TAG_BOOLEAN, evaluate::equal_d_v, 2,
991 : : { TAG_DOUBLE, TAG_VECTOR } },
992 : : { "==", TAG_BOOLEAN, evaluate::equal_c_d, 2,
993 : : { TAG_COMPLEX, TAG_DOUBLE } },
994 : : { "==", TAG_BOOLEAN, evaluate::equal_c_c, 2,
995 : : { TAG_COMPLEX, TAG_COMPLEX } },
996 : : { "==", TAG_VECTOR, evaluate::equal_c_v, 2,
997 : : { TAG_COMPLEX, TAG_VECTOR } },
998 : : { "==", TAG_VECTOR, evaluate::equal_v_d, 2,
999 : : { TAG_VECTOR, TAG_DOUBLE } },
1000 : : { "==", TAG_VECTOR, evaluate::equal_v_c, 2,
1001 : : { TAG_VECTOR, TAG_COMPLEX } },
1002 : : { "==", TAG_VECTOR, evaluate::equal_v_v, 2,
1003 : : { TAG_VECTOR, TAG_VECTOR } },
1004 : :
1005 : : { "!=", TAG_BOOLEAN, evaluate::notequal_d_d, 2,
1006 : : { TAG_DOUBLE, TAG_DOUBLE } },
1007 : : { "!=", TAG_BOOLEAN, evaluate::notequal_d_c, 2,
1008 : : { TAG_DOUBLE, TAG_COMPLEX } },
1009 : : { "!=", TAG_BOOLEAN, evaluate::notequal_d_v, 2,
1010 : : { TAG_DOUBLE, TAG_VECTOR } },
1011 : : { "!=", TAG_BOOLEAN, evaluate::notequal_c_d, 2,
1012 : : { TAG_COMPLEX, TAG_DOUBLE } },
1013 : : { "!=", TAG_BOOLEAN, evaluate::notequal_c_c, 2,
1014 : : { TAG_COMPLEX, TAG_COMPLEX } },
1015 : : { "!=", TAG_VECTOR, evaluate::notequal_c_v, 2,
1016 : : { TAG_COMPLEX, TAG_VECTOR } },
1017 : : { "!=", TAG_VECTOR, evaluate::notequal_v_d, 2,
1018 : : { TAG_VECTOR, TAG_DOUBLE } },
1019 : : { "!=", TAG_VECTOR, evaluate::notequal_v_c, 2,
1020 : : { TAG_VECTOR, TAG_COMPLEX } },
1021 : : { "!=", TAG_VECTOR, evaluate::notequal_v_v, 2,
1022 : : { TAG_VECTOR, TAG_VECTOR } },
1023 : :
1024 : : { "!", TAG_BOOLEAN, evaluate::not_b, 1, { TAG_BOOLEAN } },
1025 : : { "||", TAG_BOOLEAN, evaluate::or_b_b, 2, { TAG_BOOLEAN, TAG_BOOLEAN } },
1026 : : { "&&", TAG_BOOLEAN, evaluate::and_b_b, 2, { TAG_BOOLEAN, TAG_BOOLEAN } },
1027 : : { "==", TAG_BOOLEAN, evaluate::equal_b_b, 2,
1028 : : { TAG_BOOLEAN, TAG_BOOLEAN } },
1029 : : { "!=", TAG_BOOLEAN, evaluate::notequal_b_b, 2,
1030 : : { TAG_BOOLEAN, TAG_BOOLEAN } },
1031 : :
1032 : : { "random", TAG_DOUBLE, evaluate::rand, 0, { TAG_UNKNOWN } },
1033 : : { "srandom", TAG_DOUBLE, evaluate::srand_d, 1, { TAG_DOUBLE } },
1034 : :
1035 : : { "vector", TAG_VECTOR, evaluate::vector_x, -1, { TAG_UNKNOWN } },
1036 : : { "matrix", TAG_MATRIX, evaluate::matrix_x, -1, { TAG_UNKNOWN } },
1037 : :
1038 : : { "assert", TAG_BOOLEAN, evaluate::assert_b, 1, { TAG_BOOLEAN } },
1039 : : { "assert", TAG_BOOLEAN, evaluate::assert_d, 1, { TAG_DOUBLE } },
1040 : : { "assert", TAG_BOOLEAN, evaluate::assert_v, 1, { TAG_VECTOR } },
1041 : :
1042 : : { "bugon", TAG_BOOLEAN, evaluate::bugon_b, 1, { TAG_BOOLEAN } },
1043 : : { "bugon", TAG_BOOLEAN, evaluate::bugon_d, 1, { TAG_DOUBLE } },
1044 : : { "bugon", TAG_BOOLEAN, evaluate::bugon_v, 1, { TAG_VECTOR } },
1045 : :
1046 : : { NULL, 0, NULL, 0, { 0 } /* end of list */ }
1047 : : };
1048 : :
1049 : : // Converts a TAG_XXX value into a unique string.
1050 : 1680 : const char * checker::tag2key (int tag) {
1051 : 1680 : const char * key = "";
1052 [ - + ]: 1680 : if (tag == TAG_RANGE)
1053 : 0 : key = "R";
1054 [ - + - - : 1680 : else switch (tag & ~TAG_RANGE) {
+ + - + -
- - ]
1055 : : case TAG_UNKNOWN:
1056 : 0 : key = "U"; break;
1057 : : case TAG_DOUBLE:
1058 : 1271 : key = "D"; break;
1059 : : case TAG_DOUBLE|TAG_COMPLEX:
1060 : 0 : key = "D"; break;
1061 : : case TAG_BOOLEAN:
1062 : 0 : key = "B"; break;
1063 : : case TAG_COMPLEX:
1064 : 32 : key = "C"; break;
1065 : : case TAG_VECTOR:
1066 : 350 : key = "V"; break;
1067 : : case TAG_MATRIX:
1068 : 0 : key = "M"; break;
1069 : : case TAG_MATVEC:
1070 : 27 : key = "MV"; break;
1071 : : case TAG_CHAR:
1072 : 0 : key = "CHR"; break;
1073 : : case TAG_STRING:
1074 : 0 : key = "STR"; break;
1075 : : }
1076 : 1680 : return key;
1077 : : }
1078 : :
1079 : : #endif /* __APPLICATIONS_H__ */
|