Qucs-core  0.0.19
evaluate.h
Go to the documentation of this file.
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__ */