Qucs-core
0.0.19
|
00001 /* 00002 * evaluate.h - definitions for Qucs equation evaluations 00003 * 00004 * Copyright (C) 2004-2011 Stefan Jahn <stefan@lkcc.org> 00005 * Copyright (C) 2006 Gunther Kraut <gn.kraut@t-online.de> 00006 * 00007 * This is free software; you can redistribute it and/or modify 00008 * it under the terms of the GNU General Public License as published by 00009 * the Free Software Foundation; either version 2, or (at your option) 00010 * any later version. 00011 * 00012 * This software is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU General Public License 00018 * along with this package; see the file COPYING. If not, write to 00019 * the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, 00020 * Boston, MA 02110-1301, USA. 00021 * 00022 * $Id$ 00023 * 00024 */ 00025 00026 #ifndef __EVALUATE_H__ 00027 #define __EVALUATE_H__ 00028 00029 namespace qucs { 00030 00031 namespace eqn { 00032 00033 class constant; 00034 00035 /* This class is merely a container for the applications which can be 00036 applied to equation constants. */ 00037 class evaluate 00038 { 00039 public: 00040 static constant * plus_d (constant *); 00041 static constant * plus_c (constant *); 00042 static constant * plus_v (constant *); 00043 static constant * plus_m (constant *); 00044 static constant * plus_mv (constant *); 00045 00046 static constant * plus_d_d (constant *); 00047 static constant * plus_c_c (constant *); 00048 static constant * plus_c_d (constant *); 00049 static constant * plus_d_c (constant *); 00050 static constant * plus_v_d (constant *); 00051 static constant * plus_d_v (constant *); 00052 static constant * plus_v_c (constant *); 00053 static constant * plus_c_v (constant *); 00054 static constant * plus_v_v (constant *); 00055 static constant * plus_m_m (constant *); 00056 static constant * plus_m_d (constant *); 00057 static constant * plus_d_m (constant *); 00058 static constant * plus_m_c (constant *); 00059 static constant * plus_c_m (constant *); 00060 static constant * plus_s_s (constant *); 00061 static constant * plus_c_s (constant *); 00062 static constant * plus_s_c (constant *); 00063 static constant * plus_mv_mv (constant *); 00064 static constant * plus_mv_m (constant *); 00065 static constant * plus_m_mv (constant *); 00066 static constant * plus_mv_d (constant *); 00067 static constant * plus_d_mv (constant *); 00068 static constant * plus_mv_c (constant *); 00069 static constant * plus_c_mv (constant *); 00070 static constant * plus_mv_v (constant *); 00071 static constant * plus_v_mv (constant *); 00072 00073 static constant * minus_d (constant *); 00074 static constant * minus_c (constant *); 00075 static constant * minus_v (constant *); 00076 static constant * minus_m (constant *); 00077 static constant * minus_mv (constant *); 00078 00079 static constant * minus_d_d (constant *); 00080 static constant * minus_c_c (constant *); 00081 static constant * minus_c_d (constant *); 00082 static constant * minus_d_c (constant *); 00083 static constant * minus_v_d (constant *); 00084 static constant * minus_d_v (constant *); 00085 static constant * minus_v_c (constant *); 00086 static constant * minus_c_v (constant *); 00087 static constant * minus_v_v (constant *); 00088 static constant * minus_m_m (constant *); 00089 static constant * minus_m_d (constant *); 00090 static constant * minus_d_m (constant *); 00091 static constant * minus_m_c (constant *); 00092 static constant * minus_c_m (constant *); 00093 static constant * minus_mv_mv (constant *); 00094 static constant * minus_mv_m (constant *); 00095 static constant * minus_m_mv (constant *); 00096 static constant * minus_mv_d (constant *); 00097 static constant * minus_d_mv (constant *); 00098 static constant * minus_mv_c (constant *); 00099 static constant * minus_c_mv (constant *); 00100 static constant * minus_mv_v (constant *); 00101 static constant * minus_v_mv (constant *); 00102 00103 static constant * times_d_d (constant *); 00104 static constant * times_c_c (constant *); 00105 static constant * times_c_d (constant *); 00106 static constant * times_d_c (constant *); 00107 static constant * times_v_d (constant *); 00108 static constant * times_d_v (constant *); 00109 static constant * times_v_c (constant *); 00110 static constant * times_c_v (constant *); 00111 static constant * times_v_v (constant *); 00112 static constant * times_m_m (constant *); 00113 static constant * times_m_c (constant *); 00114 static constant * times_c_m (constant *); 00115 static constant * times_m_d (constant *); 00116 static constant * times_d_m (constant *); 00117 static constant * times_mv_mv (constant *); 00118 static constant * times_mv_c (constant *); 00119 static constant * times_c_mv (constant *); 00120 static constant * times_mv_d (constant *); 00121 static constant * times_d_mv (constant *); 00122 static constant * times_mv_m (constant *); 00123 static constant * times_m_mv (constant *); 00124 static constant * times_mv_v (constant *); 00125 static constant * times_v_mv (constant *); 00126 00127 static constant * over_d_d (constant *); 00128 static constant * over_c_c (constant *); 00129 static constant * over_c_d (constant *); 00130 static constant * over_d_c (constant *); 00131 static constant * over_v_d (constant *); 00132 static constant * over_d_v (constant *); 00133 static constant * over_v_c (constant *); 00134 static constant * over_c_v (constant *); 00135 static constant * over_v_v (constant *); 00136 static constant * over_m_c (constant *); 00137 static constant * over_m_d (constant *); 00138 static constant * over_mv_c (constant *); 00139 static constant * over_mv_d (constant *); 00140 static constant * over_mv_v (constant *); 00141 00142 static constant * modulo_d_d (constant *); 00143 static constant * modulo_c_c (constant *); 00144 static constant * modulo_c_d (constant *); 00145 static constant * modulo_d_c (constant *); 00146 static constant * modulo_v_d (constant *); 00147 static constant * modulo_d_v (constant *); 00148 static constant * modulo_v_c (constant *); 00149 static constant * modulo_c_v (constant *); 00150 static constant * modulo_v_v (constant *); 00151 00152 static constant * power_d_d (constant *); 00153 static constant * power_c_c (constant *); 00154 static constant * power_c_d (constant *); 00155 static constant * power_d_c (constant *); 00156 static constant * power_v_d (constant *); 00157 static constant * power_d_v (constant *); 00158 static constant * power_v_c (constant *); 00159 static constant * power_c_v (constant *); 00160 static constant * power_v_v (constant *); 00161 static constant * power_m_d (constant *); 00162 static constant * power_m_c (constant *); 00163 static constant * power_mv_d (constant *); 00164 static constant * power_mv_c (constant *); 00165 static constant * power_mv_v (constant *); 00166 00167 static constant * xhypot_d_d (constant *); 00168 static constant * xhypot_c_c (constant *); 00169 static constant * xhypot_c_d (constant *); 00170 static constant * xhypot_d_c (constant *); 00171 static constant * xhypot_v_d (constant *); 00172 static constant * xhypot_d_v (constant *); 00173 static constant * xhypot_v_c (constant *); 00174 static constant * xhypot_c_v (constant *); 00175 static constant * xhypot_v_v (constant *); 00176 00177 static constant * real_d (constant *); 00178 static constant * real_c (constant *); 00179 static constant * real_v (constant *); 00180 static constant * real_m (constant *); 00181 static constant * real_mv (constant *); 00182 00183 static constant * imag_d (constant *); 00184 static constant * imag_c (constant *); 00185 static constant * imag_v (constant *); 00186 static constant * imag_m (constant *); 00187 static constant * imag_mv (constant *); 00188 00189 static constant * abs_d (constant *); 00190 static constant * abs_c (constant *); 00191 static constant * abs_v (constant *); 00192 static constant * abs_m (constant *); 00193 static constant * abs_mv (constant *); 00194 00195 static constant * conj_d (constant *); 00196 static constant * conj_c (constant *); 00197 static constant * conj_v (constant *); 00198 static constant * conj_m (constant *); 00199 static constant * conj_mv (constant *); 00200 00201 static constant * norm_d (constant *); 00202 static constant * norm_c (constant *); 00203 static constant * norm_v (constant *); 00204 00205 static constant * phase_d (constant *); 00206 static constant * phase_c (constant *); 00207 static constant * phase_v (constant *); 00208 static constant * phase_m (constant *); 00209 static constant * phase_mv (constant *); 00210 00211 static constant * arg_d (constant *); 00212 static constant * arg_c (constant *); 00213 static constant * arg_v (constant *); 00214 static constant * arg_m (constant *); 00215 static constant * arg_mv (constant *); 00216 00217 static constant * unwrap_v_1 (constant *); 00218 static constant * unwrap_v_2 (constant *); 00219 static constant * unwrap_v_3 (constant *); 00220 00221 static constant * deg2rad_d (constant *); 00222 static constant * deg2rad_c (constant *); 00223 static constant * deg2rad_v (constant *); 00224 static constant * rad2deg_d (constant *); 00225 static constant * rad2deg_c (constant *); 00226 static constant * rad2deg_v (constant *); 00227 00228 static constant * dB_d (constant *); 00229 static constant * dB_c (constant *); 00230 static constant * dB_v (constant *); 00231 static constant * dB_m (constant *); 00232 static constant * dB_mv (constant *); 00233 00234 static constant * sqrt_d (constant *); 00235 static constant * sqrt_c (constant *); 00236 static constant * sqrt_v (constant *); 00237 00238 static constant * exp_d (constant *); 00239 static constant * exp_c (constant *); 00240 static constant * exp_v (constant *); 00241 00242 static constant * limexp_d (constant *); 00243 static constant * limexp_c (constant *); 00244 static constant * limexp_v (constant *); 00245 00246 static constant * ln_d (constant *); 00247 static constant * ln_c (constant *); 00248 static constant * ln_v (constant *); 00249 00250 static constant * log10_d (constant *); 00251 static constant * log10_c (constant *); 00252 static constant * log10_v (constant *); 00253 00254 static constant * log2_d (constant *); 00255 static constant * log2_c (constant *); 00256 static constant * log2_v (constant *); 00257 00258 static constant * sin_d (constant *); 00259 static constant * sin_c (constant *); 00260 static constant * sin_v (constant *); 00261 00262 static constant * arcsin_d (constant *); 00263 static constant * arcsin_c (constant *); 00264 static constant * arcsin_v (constant *); 00265 00266 static constant * cos_d (constant *); 00267 static constant * cos_c (constant *); 00268 static constant * cos_v (constant *); 00269 00270 static constant * arccos_d (constant *); 00271 static constant * arccos_c (constant *); 00272 static constant * arccos_v (constant *); 00273 00274 static constant * tan_d (constant *); 00275 static constant * tan_c (constant *); 00276 static constant * tan_v (constant *); 00277 00278 static constant * arctan_d (constant *); 00279 static constant * arctan_c (constant *); 00280 static constant * arctan_v (constant *); 00281 00282 static constant * cot_d (constant *); 00283 static constant * cot_c (constant *); 00284 static constant * cot_v (constant *); 00285 00286 static constant * arccot_d (constant *); 00287 static constant * arccot_c (constant *); 00288 static constant * arccot_v (constant *); 00289 00290 static constant * sec_d (constant *); 00291 static constant * sec_c (constant *); 00292 static constant * sec_v (constant *); 00293 00294 static constant * arcsec_d (constant *); 00295 static constant * arcsec_c (constant *); 00296 static constant * arcsec_v (constant *); 00297 00298 static constant * cosec_d (constant *); 00299 static constant * cosec_c (constant *); 00300 static constant * cosec_v (constant *); 00301 00302 static constant * arccosec_d (constant *); 00303 static constant * arccosec_c (constant *); 00304 static constant * arccosec_v (constant *); 00305 00306 static constant * sinh_d (constant *); 00307 static constant * sinh_c (constant *); 00308 static constant * sinh_v (constant *); 00309 00310 static constant * arsinh_d (constant *); 00311 static constant * arsinh_c (constant *); 00312 static constant * arsinh_v (constant *); 00313 00314 static constant * cosh_d (constant *); 00315 static constant * cosh_c (constant *); 00316 static constant * cosh_v (constant *); 00317 00318 static constant * arcosh_d (constant *); 00319 static constant * arcosh_c (constant *); 00320 static constant * arcosh_v (constant *); 00321 00322 static constant * tanh_d (constant *); 00323 static constant * tanh_c (constant *); 00324 static constant * tanh_v (constant *); 00325 00326 static constant * artanh_d (constant *); 00327 static constant * artanh_c (constant *); 00328 static constant * artanh_v (constant *); 00329 00330 static constant * coth_d (constant *); 00331 static constant * coth_c (constant *); 00332 static constant * coth_v (constant *); 00333 00334 static constant * arcoth_d (constant *); 00335 static constant * arcoth_c (constant *); 00336 static constant * arcoth_v (constant *); 00337 00338 static constant * sech_d (constant *); 00339 static constant * sech_c (constant *); 00340 static constant * sech_v (constant *); 00341 00342 static constant * arsech_d (constant *); 00343 static constant * arsech_c (constant *); 00344 static constant * arsech_v (constant *); 00345 00346 static constant * cosech_d (constant *); 00347 static constant * cosech_c (constant *); 00348 static constant * cosech_v (constant *); 00349 00350 static constant * arcosech_d (constant *); 00351 static constant * arcosech_c (constant *); 00352 static constant * arcosech_v (constant *); 00353 00354 static constant * ztor_d (constant *); 00355 static constant * ztor_d_d (constant *); 00356 static constant * ztor_d_c (constant *); 00357 static constant * ztor_c (constant *); 00358 static constant * ztor_c_d (constant *); 00359 static constant * ztor_c_c (constant *); 00360 static constant * ztor_v (constant *); 00361 static constant * ztor_v_d (constant *); 00362 static constant * ztor_v_c (constant *); 00363 00364 static constant * rtoz_d (constant *); 00365 static constant * rtoz_d_d (constant *); 00366 static constant * rtoz_d_c (constant *); 00367 static constant * rtoz_c (constant *); 00368 static constant * rtoz_c_d (constant *); 00369 static constant * rtoz_c_c (constant *); 00370 static constant * rtoz_v (constant *); 00371 static constant * rtoz_v_d (constant *); 00372 static constant * rtoz_v_c (constant *); 00373 00374 static constant * ytor_d (constant *); 00375 static constant * ytor_d_d (constant *); 00376 static constant * ytor_d_c (constant *); 00377 static constant * ytor_c (constant *); 00378 static constant * ytor_c_d (constant *); 00379 static constant * ytor_c_c (constant *); 00380 static constant * ytor_v (constant *); 00381 static constant * ytor_v_d (constant *); 00382 static constant * ytor_v_c (constant *); 00383 00384 static constant * rtoy_d (constant *); 00385 static constant * rtoy_d_d (constant *); 00386 static constant * rtoy_d_c (constant *); 00387 static constant * rtoy_c (constant *); 00388 static constant * rtoy_c_d (constant *); 00389 static constant * rtoy_c_c (constant *); 00390 static constant * rtoy_v (constant *); 00391 static constant * rtoy_v_d (constant *); 00392 static constant * rtoy_v_c (constant *); 00393 00394 static constant * rtoswr_d (constant *); 00395 static constant * rtoswr_c (constant *); 00396 static constant * rtoswr_v (constant *); 00397 00398 static constant * diff_v_2 (constant *); 00399 static constant * diff_v_3 (constant *); 00400 00401 static constant * max_d (constant *); 00402 static constant * max_c (constant *); 00403 static constant * max_v (constant *); 00404 static constant * max_r (constant *); 00405 00406 static constant * max_d_d (constant *); 00407 static constant * max_c_d (constant *); 00408 static constant * max_d_c (constant *); 00409 static constant * max_c_c (constant *); 00410 00411 static constant * min_d (constant *); 00412 static constant * min_c (constant *); 00413 static constant * min_v (constant *); 00414 static constant * min_r (constant *); 00415 00416 static constant * min_d_d (constant *); 00417 static constant * min_c_d (constant *); 00418 static constant * min_d_c (constant *); 00419 static constant * min_c_c (constant *); 00420 00421 static constant * sum_d (constant *); 00422 static constant * sum_c (constant *); 00423 static constant * sum_v (constant *); 00424 00425 static constant * prod_d (constant *); 00426 static constant * prod_c (constant *); 00427 static constant * prod_v (constant *); 00428 00429 static constant * avg_d (constant *); 00430 static constant * avg_c (constant *); 00431 static constant * avg_v (constant *); 00432 static constant * avg_r (constant *); 00433 00434 static constant * signum_d (constant *); 00435 static constant * signum_c (constant *); 00436 static constant * signum_v (constant *); 00437 00438 static constant * sign_d (constant *); 00439 static constant * sign_c (constant *); 00440 static constant * sign_v (constant *); 00441 00442 static constant * sinc_d (constant *); 00443 static constant * sinc_c (constant *); 00444 static constant * sinc_v (constant *); 00445 00446 static constant * length_d (constant *); 00447 static constant * length_c (constant *); 00448 static constant * length_v (constant *); 00449 static constant * length_m (constant *); 00450 static constant * length_mv (constant *); 00451 00452 static void extract_vector (constant *, int, int &, int &, constant *); 00453 static constant * index_mv_2 (constant *); 00454 static constant * index_mv_1 (constant *); 00455 static constant * index_v_1 (constant *); 00456 static constant * index_v_2 (constant *); 00457 static constant * index_m_2 (constant *); 00458 static constant * index_s_1 (constant *); 00459 00460 static constant * stos_m_d (constant *); 00461 static constant * stos_m_d_d (constant *); 00462 static constant * stos_m_d_c (constant *); 00463 static constant * stos_m_d_v (constant *); 00464 static constant * stos_m_c (constant *); 00465 static constant * stos_m_c_d (constant *); 00466 static constant * stos_m_c_c (constant *); 00467 static constant * stos_m_c_v (constant *); 00468 static constant * stos_m_v (constant *); 00469 static constant * stos_m_v_d (constant *); 00470 static constant * stos_m_v_c (constant *); 00471 static constant * stos_m_v_v (constant *); 00472 00473 static constant * stos_mv_d (constant *); 00474 static constant * stos_mv_d_d (constant *); 00475 static constant * stos_mv_d_c (constant *); 00476 static constant * stos_mv_d_v (constant *); 00477 static constant * stos_mv_c (constant *); 00478 static constant * stos_mv_c_d (constant *); 00479 static constant * stos_mv_c_c (constant *); 00480 static constant * stos_mv_c_v (constant *); 00481 static constant * stos_mv_v (constant *); 00482 static constant * stos_mv_v_d (constant *); 00483 static constant * stos_mv_v_c (constant *); 00484 static constant * stos_mv_v_v (constant *); 00485 00486 static constant * stoy_m (constant *); 00487 static constant * stoy_m_d (constant *); 00488 static constant * stoy_m_c (constant *); 00489 static constant * stoy_m_v (constant *); 00490 static constant * stoy_mv (constant *); 00491 static constant * stoy_mv_d (constant *); 00492 static constant * stoy_mv_c (constant *); 00493 static constant * stoy_mv_v (constant *); 00494 static constant * stoz_m (constant *); 00495 static constant * stoz_m_d (constant *); 00496 static constant * stoz_m_c (constant *); 00497 static constant * stoz_m_v (constant *); 00498 static constant * stoz_mv (constant *); 00499 static constant * stoz_mv_d (constant *); 00500 static constant * stoz_mv_c (constant *); 00501 static constant * stoz_mv_v (constant *); 00502 static constant * ytos_m (constant *); 00503 static constant * ytos_m_d (constant *); 00504 static constant * ytos_m_c (constant *); 00505 static constant * ytos_m_v (constant *); 00506 static constant * ytos_mv (constant *); 00507 static constant * ytos_mv_d (constant *); 00508 static constant * ytos_mv_c (constant *); 00509 static constant * ytos_mv_v (constant *); 00510 static constant * ztos_m (constant *); 00511 static constant * ztos_m_d (constant *); 00512 static constant * ztos_m_c (constant *); 00513 static constant * ztos_m_v (constant *); 00514 static constant * ztos_mv (constant *); 00515 static constant * ztos_mv_d (constant *); 00516 static constant * ztos_mv_c (constant *); 00517 static constant * ztos_mv_v (constant *); 00518 00519 static constant * ztoy_m (constant *); 00520 static constant * ztoy_mv (constant *); 00521 static constant * ytoz_m (constant *); 00522 static constant * ytoz_mv (constant *); 00523 00524 static constant * twoport_m (constant *); 00525 static constant * twoport_mv (constant *); 00526 static constant * inverse_m (constant *); 00527 static constant * inverse_mv (constant *); 00528 static constant * transpose_m (constant *); 00529 static constant * transpose_mv (constant *); 00530 static constant * det_m (constant *); 00531 static constant * det_mv (constant *); 00532 static constant * eye_m (constant *); 00533 static constant * adjoint_m (constant *); 00534 static constant * adjoint_mv (constant *); 00535 00536 static constant * rollet_m (constant *); 00537 static constant * rollet_mv (constant *); 00538 static constant * mu1_m (constant *); 00539 static constant * mu1_mv (constant *); 00540 static constant * mu2_m (constant *); 00541 static constant * mu2_mv (constant *); 00542 static constant * b1_m (constant *); 00543 static constant * b1_mv (constant *); 00544 00545 static constant * linspace (constant *); 00546 static constant * logspace (constant *); 00547 static constant * noise_circle_d (constant *); 00548 static constant * noise_circle_d_d (constant *); 00549 static constant * noise_circle_d_v (constant *); 00550 static constant * noise_circle_v (constant *); 00551 static constant * noise_circle_v_d (constant *); 00552 static constant * noise_circle_v_v (constant *); 00553 static constant * stab_circle_l (constant *); 00554 static constant * stab_circle_l_d (constant *); 00555 static constant * stab_circle_l_v (constant *); 00556 static constant * stab_circle_s (constant *); 00557 static constant * stab_circle_s_d (constant *); 00558 static constant * stab_circle_s_v (constant *); 00559 static constant * ga_circle_d (constant *); 00560 static constant * ga_circle_d_d (constant *); 00561 static constant * ga_circle_d_v (constant *); 00562 static constant * ga_circle_v (constant *); 00563 static constant * ga_circle_v_d (constant *); 00564 static constant * ga_circle_v_v (constant *); 00565 static constant * gp_circle_d (constant *); 00566 static constant * gp_circle_d_d (constant *); 00567 static constant * gp_circle_d_v (constant *); 00568 static constant * gp_circle_v (constant *); 00569 static constant * gp_circle_v_d (constant *); 00570 static constant * gp_circle_v_v (constant *); 00571 static constant * plot_vs_v (constant *); 00572 static constant * plot_vs_mv (constant *); 00573 00574 static constant * interpolate_v_v_d (constant *); 00575 static constant * interpolate_v_v (constant *); 00576 00577 static constant * fft_v (constant *); 00578 static constant * ifft_v (constant *); 00579 static constant * dft_v (constant *); 00580 static constant * idft_v (constant *); 00581 static constant * time2freq_v_v (constant *); 00582 static constant * freq2time_v_v (constant *); 00583 static constant * receiver_v_v (constant *); 00584 static constant * fftshift_v (constant *); 00585 00586 static constant * xvalue_d (constant *); 00587 static constant * xvalue_c (constant *); 00588 static constant * yvalue_d (constant *); 00589 static constant * yvalue_c (constant *); 00590 00591 static constant * range_d_d (constant *); 00592 static constant * range_d_c (constant *); 00593 static constant * range_c_d (constant *); 00594 static constant * range_c_c (constant *); 00595 00596 static constant * ceil_d (constant *); 00597 static constant * ceil_c (constant *); 00598 static constant * ceil_v (constant *); 00599 static constant * floor_d (constant *); 00600 static constant * floor_c (constant *); 00601 static constant * floor_v (constant *); 00602 static constant * fix_d (constant *); 00603 static constant * fix_c (constant *); 00604 static constant * fix_v (constant *); 00605 static constant * step_d (constant *); 00606 static constant * step_c (constant *); 00607 static constant * step_v (constant *); 00608 static constant * round_d (constant *); 00609 static constant * round_c (constant *); 00610 static constant * round_v (constant *); 00611 00612 static constant * erf_d (constant *); 00613 static constant * erf_c (constant *); 00614 static constant * erf_v (constant *); 00615 static constant * erfc_d (constant *); 00616 static constant * erfc_c (constant *); 00617 static constant * erfc_v (constant *); 00618 static constant * erfinv_d (constant *); 00619 static constant * erfinv_c (constant *); 00620 static constant * erfinv_v (constant *); 00621 static constant * erfcinv_d (constant *); 00622 static constant * erfcinv_c (constant *); 00623 static constant * erfcinv_v (constant *); 00624 00625 static constant * rms_d (constant *); 00626 static constant * rms_c (constant *); 00627 static constant * rms_v (constant *); 00628 static constant * variance_d (constant *); 00629 static constant * variance_c (constant *); 00630 static constant * variance_v (constant *); 00631 static constant * stddev_d (constant *); 00632 static constant * stddev_c (constant *); 00633 static constant * stddev_v (constant *); 00634 00635 static constant * cumsum_d (constant *); 00636 static constant * cumsum_c (constant *); 00637 static constant * cumsum_v (constant *); 00638 static constant * cumavg_d (constant *); 00639 static constant * cumavg_c (constant *); 00640 static constant * cumavg_v (constant *); 00641 static constant * cumprod_d (constant *); 00642 static constant * cumprod_c (constant *); 00643 static constant * cumprod_v (constant *); 00644 00645 static constant * i0_d (constant *); 00646 static constant * i0_c (constant *); 00647 static constant * i0_v (constant *); 00648 static constant * jn_d_d (constant *); 00649 static constant * jn_d_c (constant *); 00650 static constant * jn_d_v (constant *); 00651 static constant * yn_d_d (constant *); 00652 static constant * yn_d_c (constant *); 00653 static constant * yn_d_v (constant *); 00654 00655 static constant * sqr_d (constant *); 00656 static constant * sqr_c (constant *); 00657 static constant * sqr_v (constant *); 00658 static constant * sqr_m (constant *); 00659 static constant * sqr_mv (constant *); 00660 00661 static constant * polar_d_d (constant *); 00662 static constant * polar_d_c (constant *); 00663 static constant * polar_c_d (constant *); 00664 static constant * polar_c_c (constant *); 00665 static constant * polar_d_v (constant *); 00666 static constant * polar_c_v (constant *); 00667 static constant * polar_v_d (constant *); 00668 static constant * polar_v_c (constant *); 00669 static constant * polar_v_v (constant *); 00670 00671 static constant * arctan2_d_d (constant *); 00672 static constant * arctan2_d_v (constant *); 00673 static constant * arctan2_v_d (constant *); 00674 static constant * arctan2_v_v (constant *); 00675 00676 static constant * w2dbm_d (constant *); 00677 static constant * w2dbm_c (constant *); 00678 static constant * w2dbm_v (constant *); 00679 static constant * dbm2w_d (constant *); 00680 static constant * dbm2w_c (constant *); 00681 static constant * dbm2w_v (constant *); 00682 00683 static constant * integrate_d_d (constant *); 00684 static constant * integrate_c_c (constant *); 00685 static constant * integrate_v_d (constant *); 00686 static constant * integrate_v_c (constant *); 00687 00688 static constant * dbm_d (constant *); 00689 static constant * dbm_d_d (constant *); 00690 static constant * dbm_c (constant *); 00691 static constant * dbm_c_d (constant *); 00692 static constant * dbm_v (constant *); 00693 static constant * dbm_v_d (constant *); 00694 static constant * dbm_d_c (constant *); 00695 static constant * dbm_c_c (constant *); 00696 static constant * dbm_v_c (constant *); 00697 00698 static constant * runavg_d_d (constant *); 00699 static constant * runavg_c_d (constant *); 00700 static constant * runavg_v_d (constant *); 00701 00702 static constant * vt_d (constant *); 00703 static constant * vt_c (constant *); 00704 static constant * vt_v (constant *); 00705 00706 static constant * kbd_d_d (constant *); 00707 static constant * kbd_d (constant *); 00708 00709 static constant * ifthenelse_b_b (constant *); 00710 static constant * ifthenelse_b_d (constant *); 00711 static constant * ifthenelse_d_b (constant *); 00712 static constant * ifthenelse_d_d (constant *); 00713 static constant * ifthenelse_c_c (constant *); 00714 static constant * ifthenelse_m_m (constant *); 00715 static constant * ifthenelse_v_v (constant *); 00716 static constant * ifthenelse_v_v_v (constant *); 00717 00718 static constant * less_d_d (constant *); 00719 static constant * less_d_c (constant *); 00720 static constant * less_d_v (constant *); 00721 static constant * less_c_d (constant *); 00722 static constant * less_c_c (constant *); 00723 static constant * less_c_v (constant *); 00724 static constant * less_v_d (constant *); 00725 static constant * less_v_c (constant *); 00726 static constant * less_v_v (constant *); 00727 static constant * greater_d_d (constant *); 00728 static constant * greater_d_c (constant *); 00729 static constant * greater_d_v (constant *); 00730 static constant * greater_c_d (constant *); 00731 static constant * greater_c_c (constant *); 00732 static constant * greater_c_v (constant *); 00733 static constant * greater_v_d (constant *); 00734 static constant * greater_v_c (constant *); 00735 static constant * greater_v_v (constant *); 00736 static constant * lessorequal_d_d (constant *); 00737 static constant * lessorequal_d_c (constant *); 00738 static constant * lessorequal_d_v (constant *); 00739 static constant * lessorequal_c_d (constant *); 00740 static constant * lessorequal_c_c (constant *); 00741 static constant * lessorequal_c_v (constant *); 00742 static constant * lessorequal_v_d (constant *); 00743 static constant * lessorequal_v_c (constant *); 00744 static constant * lessorequal_v_v (constant *); 00745 static constant * greaterorequal_d_d (constant *); 00746 static constant * greaterorequal_d_c (constant *); 00747 static constant * greaterorequal_d_v (constant *); 00748 static constant * greaterorequal_c_d (constant *); 00749 static constant * greaterorequal_c_c (constant *); 00750 static constant * greaterorequal_c_v (constant *); 00751 static constant * greaterorequal_v_d (constant *); 00752 static constant * greaterorequal_v_c (constant *); 00753 static constant * greaterorequal_v_v (constant *); 00754 static constant * equal_d_d (constant *); 00755 static constant * equal_d_c (constant *); 00756 static constant * equal_d_v (constant *); 00757 static constant * equal_c_d (constant *); 00758 static constant * equal_c_c (constant *); 00759 static constant * equal_c_v (constant *); 00760 static constant * equal_v_d (constant *); 00761 static constant * equal_v_c (constant *); 00762 static constant * equal_v_v (constant *); 00763 static constant * equal_b_b (constant *); 00764 static constant * notequal_d_d (constant *); 00765 static constant * notequal_d_c (constant *); 00766 static constant * notequal_d_v (constant *); 00767 static constant * notequal_c_d (constant *); 00768 static constant * notequal_c_c (constant *); 00769 static constant * notequal_c_v (constant *); 00770 static constant * notequal_v_d (constant *); 00771 static constant * notequal_v_c (constant *); 00772 static constant * notequal_v_v (constant *); 00773 static constant * notequal_b_b (constant *); 00774 static constant * not_b (constant *); 00775 static constant * or_b_b (constant *); 00776 static constant * and_b_b (constant *); 00777 00778 static constant * rand (constant *); 00779 static constant * srand_d (constant *); 00780 00781 static constant * vector_x (constant *); 00782 static constant * matrix_x (constant *); 00783 00784 static constant * assert_d (constant *); 00785 static constant * assert_v (constant *); 00786 static constant * assert_b (constant *); 00787 static constant * bugon_d (constant *); 00788 static constant * bugon_v (constant *); 00789 static constant * bugon_b (constant *); 00790 }; 00791 00792 // Type of application function. 00793 typedef constant * (* evaluator_t) (constant *); 00794 00795 // Structure defining an application. 00796 struct application_t 00797 { 00798 const char * application; /* the name of the application */ 00799 int retval; /* its return type */ 00800 evaluator_t eval; /* the actual application function */ 00801 int nargs; /* number of arguments */ 00802 int args[16]; /* the appropriate argument types */ 00803 }; 00804 00805 extern struct application_t applications[]; 00806 00807 } /* namespace eqn */ 00808 00809 } // namespace qucs 00810 00811 #endif /* __EVALUATE_H__ */