algebramix_doc 0.3
/Users/mourrain/Devel/mmx/algebramix/glue/glue_series_rational.cpp
Go to the documentation of this file.
00001 
00002 #include <numerix/integer.hpp>
00003 #include <numerix/rational.hpp>
00004 #include <numerix/complex.hpp>
00005 #include <basix/vector.hpp>
00006 #include <algebramix/polynomial.hpp>
00007 #include <algebramix/polynomial_polynomial.hpp>
00008 #include <algebramix/polynomial_integer.hpp>
00009 #include <algebramix/polynomial_rational.hpp>
00010 #include <algebramix/polynomial_complex.hpp>
00011 #include <algebramix/polynomial_schonhage.hpp>
00012 #include <algebramix/series.hpp>
00013 #include <algebramix/series_elementary.hpp>
00014 #include <algebramix/series_integer.hpp>
00015 #include <algebramix/series_rational.hpp>
00016 #include <algebramix/series_complex.hpp>
00017 #include <algebramix/series_sugar.hpp>
00018 #include <basix/tuple.hpp>
00019 #include <basix/routine.hpp>
00020 #include <basix/glue.hpp>
00021 
00022 namespace mmx {
00023     template<typename C> polynomial<C>
00024     polynomial_reverse (const vector<C>& v) {
00025       return polynomial<C> (reverse (v)); }
00026 
00027     template<typename C> polynomial<modular<modulus<C>, modular_local> >
00028     as_polynomial_modular (const polynomial<C>& f, const modulus<C>& p) {
00029       modular<modulus<C>, modular_local>::set_modulus (p);
00030       return as<polynomial<modular<modulus<C>, modular_local> > > (f); }
00031 
00032     template<typename C> vector<generic>
00033     wrap_subresultants (const polynomial<C>& f, const polynomial<C>& g) {
00034       return as<vector<generic> > (subresultants (f, g)); }
00035 
00036   }
00037 namespace mmx { POLYNOMIAL_GENERIC_USES_SCHONHAGE }
00038 #define series_shift_default(s,sh) shift (s, sh, mmx_bit_precision)
00039 
00040 namespace mmx {
00041   static void
00042   GLUE_1 (const series<rational> &arg_1, const generic &arg_2) {
00043     set_variable_name (arg_1, arg_2);
00044   }
00045   
00046   static void
00047   GLUE_2 (const series<rational> &arg_1, const int &arg_2) {
00048     set_output_order (arg_1, arg_2);
00049   }
00050   
00051   static void
00052   GLUE_3 (const series<rational> &arg_1, const int &arg_2) {
00053     set_cancel_order (arg_1, arg_2);
00054   }
00055   
00056   static void
00057   GLUE_4 (const series<rational> &arg_1, const bool &arg_2) {
00058     set_formula_output (arg_1, arg_2);
00059   }
00060   
00061   static series<rational>
00062   GLUE_5 (const tuple<rational> &arg_1) {
00063     return series<rational > (as_vector (arg_1));
00064   }
00065   
00066   static series<rational>
00067   GLUE_6 (const rational &arg_1) {
00068     return series<rational > (arg_1);
00069   }
00070   
00071   static series<rational>
00072   GLUE_7 (const polynomial<rational> &arg_1) {
00073     return series<rational > (arg_1);
00074   }
00075   
00076   static iterator<generic>
00077   GLUE_8 (const series<rational> &arg_1) {
00078     return as<iterator<generic> > (iterate (arg_1));
00079   }
00080   
00081   static rational
00082   GLUE_9 (const series<rational> &arg_1, const int &arg_2) {
00083     return arg_1[arg_2];
00084   }
00085   
00086   static polynomial<rational>
00087   GLUE_10 (const series<rational> &arg_1, const int &arg_2, const int &arg_3) {
00088     return range (arg_1, arg_2, arg_3);
00089   }
00090   
00091   static series<rational>
00092   GLUE_11 (const series<rational> &arg_1) {
00093     return -arg_1;
00094   }
00095   
00096   static series<rational>
00097   GLUE_12 (const series<rational> &arg_1) {
00098     return square (arg_1);
00099   }
00100   
00101   static series<rational>
00102   GLUE_13 (const series<rational> &arg_1, const series<rational> &arg_2) {
00103     return arg_1 + arg_2;
00104   }
00105   
00106   static series<rational>
00107   GLUE_14 (const series<rational> &arg_1, const series<rational> &arg_2) {
00108     return arg_1 - arg_2;
00109   }
00110   
00111   static series<rational>
00112   GLUE_15 (const series<rational> &arg_1, const series<rational> &arg_2) {
00113     return arg_1 * arg_2;
00114   }
00115   
00116   static series<rational>
00117   GLUE_16 (const rational &arg_1, const series<rational> &arg_2) {
00118     return arg_1 + arg_2;
00119   }
00120   
00121   static series<rational>
00122   GLUE_17 (const series<rational> &arg_1, const rational &arg_2) {
00123     return arg_1 + arg_2;
00124   }
00125   
00126   static series<rational>
00127   GLUE_18 (const rational &arg_1, const series<rational> &arg_2) {
00128     return arg_1 - arg_2;
00129   }
00130   
00131   static series<rational>
00132   GLUE_19 (const series<rational> &arg_1, const rational &arg_2) {
00133     return arg_1 - arg_2;
00134   }
00135   
00136   static series<rational>
00137   GLUE_20 (const rational &arg_1, const series<rational> &arg_2) {
00138     return arg_1 * arg_2;
00139   }
00140   
00141   static series<rational>
00142   GLUE_21 (const series<rational> &arg_1, const rational &arg_2) {
00143     return arg_1 * arg_2;
00144   }
00145   
00146   static series<rational>
00147   GLUE_22 (const series<rational> &arg_1, const int &arg_2) {
00148     return binpow (arg_1, arg_2);
00149   }
00150   
00151   static series<rational>
00152   GLUE_23 (const series<rational> &arg_1, const integer &arg_2) {
00153     return binpow (arg_1, arg_2);
00154   }
00155   
00156   static series<rational>
00157   GLUE_24 (const series<rational> &arg_1) {
00158     return derive (arg_1);
00159   }
00160   
00161   static series<rational>
00162   GLUE_25 (const series<rational> &arg_1) {
00163     return xderive (arg_1);
00164   }
00165   
00166   static series<rational>
00167   GLUE_26 (const series<rational> &arg_1, const int &arg_2) {
00168     return dilate (arg_1, arg_2);
00169   }
00170   
00171   static series<rational>
00172   GLUE_27 (const series<rational> &arg_1, const int &arg_2) {
00173     return lshiftz (arg_1, arg_2);
00174   }
00175   
00176   static series<rational>
00177   GLUE_28 (const series<rational> &arg_1, const int &arg_2) {
00178     return rshiftz (arg_1, arg_2);
00179   }
00180   
00181   static series<rational>
00182   GLUE_29 (const series<rational> &arg_1, const series<rational> &arg_2) {
00183     return arg_1 / arg_2;
00184   }
00185   
00186   static series<rational>
00187   GLUE_30 (const rational &arg_1, const series<rational> &arg_2) {
00188     return arg_1 / arg_2;
00189   }
00190   
00191   static series<rational>
00192   GLUE_31 (const series<rational> &arg_1, const rational &arg_2) {
00193     return arg_1 / arg_2;
00194   }
00195   
00196   static series<rational>
00197   GLUE_32 (const series<rational> &arg_1, const series<rational> &arg_2) {
00198     return arg_1 / arg_2;
00199   }
00200   
00201   static bool
00202   GLUE_33 (const series<rational> &arg_1, const series<rational> &arg_2) {
00203     return divides (arg_1, arg_2);
00204   }
00205   
00206   static series<rational>
00207   GLUE_34 (const series<rational> &arg_1, const series<rational> &arg_2) {
00208     return gcd (arg_1, arg_2);
00209   }
00210   
00211   static series<rational>
00212   GLUE_35 (const series<rational> &arg_1, const series<rational> &arg_2) {
00213     return lcm (arg_1, arg_2);
00214   }
00215   
00216   static series<rational>
00217   GLUE_36 (const series<rational> &arg_1) {
00218     return integrate (arg_1);
00219   }
00220   
00221   static series<rational>
00222   GLUE_37 (const series<rational> &arg_1, const series<rational> &arg_2) {
00223     return compose (arg_1, arg_2);
00224   }
00225   
00226   static series<rational>
00227   GLUE_38 (const series<rational> &arg_1) {
00228     return reverse (arg_1);
00229   }
00230   
00231   static series<rational>
00232   GLUE_39 (const series<rational> &arg_1, const rational &arg_2) {
00233     return q_difference (arg_1, arg_2);
00234   }
00235   
00236   static series<rational>
00237   GLUE_40 (const series<rational> &arg_1, const rational &arg_2) {
00238     return series_shift_default (arg_1, arg_2);
00239   }
00240   
00241   static series<rational>
00242   GLUE_41 (const series<rational> &arg_1, const rational &arg_2, const int &arg_3) {
00243     return shift (arg_1, arg_2, arg_3);
00244   }
00245   
00246   static bool
00247   GLUE_42 (const series<rational> &arg_1, const series<rational> &arg_2) {
00248     return arg_1 <= arg_2;
00249   }
00250   
00251   static bool
00252   GLUE_43 (const series<rational> &arg_1, const series<rational> &arg_2) {
00253     return arg_1 >= arg_2;
00254   }
00255   
00256   static bool
00257   GLUE_44 (const series<rational> &arg_1, const series<rational> &arg_2) {
00258     return arg_1 < arg_2;
00259   }
00260   
00261   static bool
00262   GLUE_45 (const series<rational> &arg_1, const series<rational> &arg_2) {
00263     return arg_1 > arg_2;
00264   }
00265   
00266   static series<rational>
00267   GLUE_46 (const series<integer> &arg_1) {
00268     return as<series<rational> > (arg_1);
00269   }
00270   
00271   static series<generic>
00272   GLUE_47 (const series<rational> &arg_1) {
00273     return as<series<generic> > (arg_1);
00274   }
00275   
00276   static series<rational>
00277   GLUE_48 (const series<rational> &arg_1, const series<rational> &arg_2) {
00278     return pow (arg_1, arg_2);
00279   }
00280   
00281   static series<rational>
00282   GLUE_49 (const series<rational> &arg_1) {
00283     return sqrt (arg_1);
00284   }
00285   
00286   static series<rational>
00287   GLUE_50 (const series<rational> &arg_1) {
00288     return exp (arg_1);
00289   }
00290   
00291   static series<rational>
00292   GLUE_51 (const series<rational> &arg_1) {
00293     return log (arg_1);
00294   }
00295   
00296   static series<rational>
00297   GLUE_52 (const series<rational> &arg_1) {
00298     return cos (arg_1);
00299   }
00300   
00301   static series<rational>
00302   GLUE_53 (const series<rational> &arg_1) {
00303     return sin (arg_1);
00304   }
00305   
00306   static series<rational>
00307   GLUE_54 (const series<rational> &arg_1) {
00308     return tan (arg_1);
00309   }
00310   
00311   static series<rational>
00312   GLUE_55 (const series<rational> &arg_1) {
00313     return acos (arg_1);
00314   }
00315   
00316   static series<rational>
00317   GLUE_56 (const series<rational> &arg_1) {
00318     return asin (arg_1);
00319   }
00320   
00321   static series<rational>
00322   GLUE_57 (const series<rational> &arg_1) {
00323     return atan (arg_1);
00324   }
00325   
00326   static unknown<rational>
00327   GLUE_58 (const rational &arg_1) {
00328     return unknown<rational > (arg_1);
00329   }
00330   
00331   static unknown<rational>
00332   GLUE_59 (const unknown<rational> &arg_1) {
00333     return -arg_1;
00334   }
00335   
00336   static unknown<rational>
00337   GLUE_60 (const unknown<rational> &arg_1) {
00338     return square (arg_1);
00339   }
00340   
00341   static unknown<rational>
00342   GLUE_61 (const unknown<rational> &arg_1, const unknown<rational> &arg_2) {
00343     return arg_1 + arg_2;
00344   }
00345   
00346   static unknown<rational>
00347   GLUE_62 (const unknown<rational> &arg_1, const unknown<rational> &arg_2) {
00348     return arg_1 - arg_2;
00349   }
00350   
00351   static unknown<rational>
00352   GLUE_63 (const rational &arg_1, const unknown<rational> &arg_2) {
00353     return arg_1 * arg_2;
00354   }
00355   
00356   static unknown<rational>
00357   GLUE_64 (const unknown<rational> &arg_1, const rational &arg_2) {
00358     return arg_1 * arg_2;
00359   }
00360   
00361   static unknown<rational>
00362   GLUE_65 (const unknown<rational> &arg_1, const unknown<rational> &arg_2) {
00363     return arg_1 * arg_2;
00364   }
00365   
00366   static series<rational>
00367   GLUE_66 (const routine &arg_1, const rational &arg_2) {
00368     return fixed_point_series (arg_1, arg_2);
00369   }
00370   
00371   static vector<generic>
00372   GLUE_67 (const routine &arg_1, const vector<rational> &arg_2) {
00373     return gen_fixed_point_vector_series (arg_1, arg_2);
00374   }
00375   
00376   static series<rational>
00377   GLUE_68 (const routine &arg_1, const rational &arg_2) {
00378     return integrate_series (arg_1, arg_2);
00379   }
00380   
00381   static vector<generic>
00382   GLUE_69 (const routine &arg_1, const vector<rational> &arg_2) {
00383     return gen_integrate_vector_series (arg_1, arg_2);
00384   }
00385   
00386   static series<rational>
00387   GLUE_70 (const routine &arg_1, const rational &arg_2) {
00388     return implicit_series (arg_1, arg_2);
00389   }
00390   
00391   static vector<generic>
00392   GLUE_71 (const routine &arg_1, const vector<rational> &arg_2) {
00393     return gen_implicit_vector_series (arg_1, arg_2);
00394   }
00395   
00396   static void
00397   GLUE_72 (const series<complex<rational> > &arg_1, const generic &arg_2) {
00398     set_variable_name (arg_1, arg_2);
00399   }
00400   
00401   static void
00402   GLUE_73 (const series<complex<rational> > &arg_1, const int &arg_2) {
00403     set_output_order (arg_1, arg_2);
00404   }
00405   
00406   static void
00407   GLUE_74 (const series<complex<rational> > &arg_1, const int &arg_2) {
00408     set_cancel_order (arg_1, arg_2);
00409   }
00410   
00411   static void
00412   GLUE_75 (const series<complex<rational> > &arg_1, const bool &arg_2) {
00413     set_formula_output (arg_1, arg_2);
00414   }
00415   
00416   static series<complex<rational> >
00417   GLUE_76 (const tuple<complex<rational> > &arg_1) {
00418     return series<complex<rational> > (as_vector (arg_1));
00419   }
00420   
00421   static series<complex<rational> >
00422   GLUE_77 (const complex<rational> &arg_1) {
00423     return series<complex<rational> > (arg_1);
00424   }
00425   
00426   static series<complex<rational> >
00427   GLUE_78 (const polynomial<complex<rational> > &arg_1) {
00428     return series<complex<rational> > (arg_1);
00429   }
00430   
00431   static iterator<generic>
00432   GLUE_79 (const series<complex<rational> > &arg_1) {
00433     return as<iterator<generic> > (iterate (arg_1));
00434   }
00435   
00436   static complex<rational>
00437   GLUE_80 (const series<complex<rational> > &arg_1, const int &arg_2) {
00438     return arg_1[arg_2];
00439   }
00440   
00441   static polynomial<complex<rational> >
00442   GLUE_81 (const series<complex<rational> > &arg_1, const int &arg_2, const int &arg_3) {
00443     return range (arg_1, arg_2, arg_3);
00444   }
00445   
00446   static series<complex<rational> >
00447   GLUE_82 (const series<complex<rational> > &arg_1) {
00448     return -arg_1;
00449   }
00450   
00451   static series<complex<rational> >
00452   GLUE_83 (const series<complex<rational> > &arg_1) {
00453     return square (arg_1);
00454   }
00455   
00456   static series<complex<rational> >
00457   GLUE_84 (const series<complex<rational> > &arg_1, const series<complex<rational> > &arg_2) {
00458     return arg_1 + arg_2;
00459   }
00460   
00461   static series<complex<rational> >
00462   GLUE_85 (const series<complex<rational> > &arg_1, const series<complex<rational> > &arg_2) {
00463     return arg_1 - arg_2;
00464   }
00465   
00466   static series<complex<rational> >
00467   GLUE_86 (const series<complex<rational> > &arg_1, const series<complex<rational> > &arg_2) {
00468     return arg_1 * arg_2;
00469   }
00470   
00471   static series<complex<rational> >
00472   GLUE_87 (const complex<rational> &arg_1, const series<complex<rational> > &arg_2) {
00473     return arg_1 + arg_2;
00474   }
00475   
00476   static series<complex<rational> >
00477   GLUE_88 (const series<complex<rational> > &arg_1, const complex<rational> &arg_2) {
00478     return arg_1 + arg_2;
00479   }
00480   
00481   static series<complex<rational> >
00482   GLUE_89 (const complex<rational> &arg_1, const series<complex<rational> > &arg_2) {
00483     return arg_1 - arg_2;
00484   }
00485   
00486   static series<complex<rational> >
00487   GLUE_90 (const series<complex<rational> > &arg_1, const complex<rational> &arg_2) {
00488     return arg_1 - arg_2;
00489   }
00490   
00491   static series<complex<rational> >
00492   GLUE_91 (const complex<rational> &arg_1, const series<complex<rational> > &arg_2) {
00493     return arg_1 * arg_2;
00494   }
00495   
00496   static series<complex<rational> >
00497   GLUE_92 (const series<complex<rational> > &arg_1, const complex<rational> &arg_2) {
00498     return arg_1 * arg_2;
00499   }
00500   
00501   static series<complex<rational> >
00502   GLUE_93 (const series<complex<rational> > &arg_1, const int &arg_2) {
00503     return binpow (arg_1, arg_2);
00504   }
00505   
00506   static series<complex<rational> >
00507   GLUE_94 (const series<complex<rational> > &arg_1, const integer &arg_2) {
00508     return binpow (arg_1, arg_2);
00509   }
00510   
00511   static series<complex<rational> >
00512   GLUE_95 (const series<complex<rational> > &arg_1) {
00513     return derive (arg_1);
00514   }
00515   
00516   static series<complex<rational> >
00517   GLUE_96 (const series<complex<rational> > &arg_1) {
00518     return xderive (arg_1);
00519   }
00520   
00521   static series<complex<rational> >
00522   GLUE_97 (const series<complex<rational> > &arg_1, const int &arg_2) {
00523     return dilate (arg_1, arg_2);
00524   }
00525   
00526   static series<complex<rational> >
00527   GLUE_98 (const series<complex<rational> > &arg_1, const int &arg_2) {
00528     return lshiftz (arg_1, arg_2);
00529   }
00530   
00531   static series<complex<rational> >
00532   GLUE_99 (const series<complex<rational> > &arg_1, const int &arg_2) {
00533     return rshiftz (arg_1, arg_2);
00534   }
00535   
00536   static void
00537   GLUE_100 (const series<unknown<rational> > &arg_1, const generic &arg_2) {
00538     set_variable_name (arg_1, arg_2);
00539   }
00540   
00541   static void
00542   GLUE_101 (const series<unknown<rational> > &arg_1, const int &arg_2) {
00543     set_output_order (arg_1, arg_2);
00544   }
00545   
00546   static void
00547   GLUE_102 (const series<unknown<rational> > &arg_1, const int &arg_2) {
00548     set_cancel_order (arg_1, arg_2);
00549   }
00550   
00551   static void
00552   GLUE_103 (const series<unknown<rational> > &arg_1, const bool &arg_2) {
00553     set_formula_output (arg_1, arg_2);
00554   }
00555   
00556   static series<unknown<rational> >
00557   GLUE_104 (const tuple<unknown<rational> > &arg_1) {
00558     return series<unknown<rational> > (as_vector (arg_1));
00559   }
00560   
00561   static series<unknown<rational> >
00562   GLUE_105 (const unknown<rational> &arg_1) {
00563     return series<unknown<rational> > (arg_1);
00564   }
00565   
00566   static iterator<generic>
00567   GLUE_106 (const series<unknown<rational> > &arg_1) {
00568     return as<iterator<generic> > (iterate (arg_1));
00569   }
00570   
00571   static unknown<rational>
00572   GLUE_107 (const series<unknown<rational> > &arg_1, const int &arg_2) {
00573     return arg_1[arg_2];
00574   }
00575   
00576   static series<unknown<rational> >
00577   GLUE_108 (const series<unknown<rational> > &arg_1) {
00578     return -arg_1;
00579   }
00580   
00581   static series<unknown<rational> >
00582   GLUE_109 (const series<unknown<rational> > &arg_1) {
00583     return square (arg_1);
00584   }
00585   
00586   static series<unknown<rational> >
00587   GLUE_110 (const series<unknown<rational> > &arg_1, const series<unknown<rational> > &arg_2) {
00588     return arg_1 + arg_2;
00589   }
00590   
00591   static series<unknown<rational> >
00592   GLUE_111 (const series<unknown<rational> > &arg_1, const series<unknown<rational> > &arg_2) {
00593     return arg_1 - arg_2;
00594   }
00595   
00596   static series<unknown<rational> >
00597   GLUE_112 (const series<unknown<rational> > &arg_1, const series<unknown<rational> > &arg_2) {
00598     return arg_1 * arg_2;
00599   }
00600   
00601   static series<unknown<rational> >
00602   GLUE_113 (const unknown<rational> &arg_1, const series<unknown<rational> > &arg_2) {
00603     return arg_1 + arg_2;
00604   }
00605   
00606   static series<unknown<rational> >
00607   GLUE_114 (const series<unknown<rational> > &arg_1, const unknown<rational> &arg_2) {
00608     return arg_1 + arg_2;
00609   }
00610   
00611   static series<unknown<rational> >
00612   GLUE_115 (const unknown<rational> &arg_1, const series<unknown<rational> > &arg_2) {
00613     return arg_1 - arg_2;
00614   }
00615   
00616   static series<unknown<rational> >
00617   GLUE_116 (const series<unknown<rational> > &arg_1, const unknown<rational> &arg_2) {
00618     return arg_1 - arg_2;
00619   }
00620   
00621   static series<unknown<rational> >
00622   GLUE_117 (const unknown<rational> &arg_1, const series<unknown<rational> > &arg_2) {
00623     return arg_1 * arg_2;
00624   }
00625   
00626   static series<unknown<rational> >
00627   GLUE_118 (const series<unknown<rational> > &arg_1, const unknown<rational> &arg_2) {
00628     return arg_1 * arg_2;
00629   }
00630   
00631   static series<unknown<rational> >
00632   GLUE_119 (const series<unknown<rational> > &arg_1, const int &arg_2) {
00633     return binpow (arg_1, arg_2);
00634   }
00635   
00636   static series<unknown<rational> >
00637   GLUE_120 (const series<unknown<rational> > &arg_1, const integer &arg_2) {
00638     return binpow (arg_1, arg_2);
00639   }
00640   
00641   static series<unknown<rational> >
00642   GLUE_121 (const series<unknown<rational> > &arg_1) {
00643     return derive (arg_1);
00644   }
00645   
00646   static series<unknown<rational> >
00647   GLUE_122 (const series<unknown<rational> > &arg_1) {
00648     return xderive (arg_1);
00649   }
00650   
00651   static series<unknown<rational> >
00652   GLUE_123 (const series<unknown<rational> > &arg_1, const int &arg_2) {
00653     return dilate (arg_1, arg_2);
00654   }
00655   
00656   static series<unknown<rational> >
00657   GLUE_124 (const series<unknown<rational> > &arg_1, const int &arg_2) {
00658     return lshiftz (arg_1, arg_2);
00659   }
00660   
00661   static series<unknown<rational> >
00662   GLUE_125 (const series<unknown<rational> > &arg_1, const int &arg_2) {
00663     return rshiftz (arg_1, arg_2);
00664   }
00665   
00666   static series<complex<rational> >
00667   GLUE_126 (const series<complex<rational> > &arg_1, const series<complex<rational> > &arg_2) {
00668     return arg_1 / arg_2;
00669   }
00670   
00671   static series<complex<rational> >
00672   GLUE_127 (const complex<rational> &arg_1, const series<complex<rational> > &arg_2) {
00673     return arg_1 / arg_2;
00674   }
00675   
00676   static series<complex<rational> >
00677   GLUE_128 (const series<complex<rational> > &arg_1, const complex<rational> &arg_2) {
00678     return arg_1 / arg_2;
00679   }
00680   
00681   static series<complex<rational> >
00682   GLUE_129 (const series<complex<rational> > &arg_1, const series<complex<rational> > &arg_2) {
00683     return arg_1 / arg_2;
00684   }
00685   
00686   static bool
00687   GLUE_130 (const series<complex<rational> > &arg_1, const series<complex<rational> > &arg_2) {
00688     return divides (arg_1, arg_2);
00689   }
00690   
00691   static series<complex<rational> >
00692   GLUE_131 (const series<complex<rational> > &arg_1, const series<complex<rational> > &arg_2) {
00693     return gcd (arg_1, arg_2);
00694   }
00695   
00696   static series<complex<rational> >
00697   GLUE_132 (const series<complex<rational> > &arg_1, const series<complex<rational> > &arg_2) {
00698     return lcm (arg_1, arg_2);
00699   }
00700   
00701   static series<complex<rational> >
00702   GLUE_133 (const series<complex<rational> > &arg_1) {
00703     return integrate (arg_1);
00704   }
00705   
00706   static series<complex<rational> >
00707   GLUE_134 (const series<complex<rational> > &arg_1, const series<complex<rational> > &arg_2) {
00708     return compose (arg_1, arg_2);
00709   }
00710   
00711   static series<complex<rational> >
00712   GLUE_135 (const series<complex<rational> > &arg_1) {
00713     return reverse (arg_1);
00714   }
00715   
00716   static series<complex<rational> >
00717   GLUE_136 (const series<complex<rational> > &arg_1, const complex<rational> &arg_2) {
00718     return q_difference (arg_1, arg_2);
00719   }
00720   
00721   static series<complex<rational> >
00722   GLUE_137 (const series<complex<rational> > &arg_1, const complex<rational> &arg_2) {
00723     return series_shift_default (arg_1, arg_2);
00724   }
00725   
00726   static series<complex<rational> >
00727   GLUE_138 (const series<complex<rational> > &arg_1, const complex<rational> &arg_2, const int &arg_3) {
00728     return shift (arg_1, arg_2, arg_3);
00729   }
00730   
00731   static series<complex<rational> >
00732   GLUE_139 (const series<integer> &arg_1) {
00733     return as<series<complex<rational> > > (arg_1);
00734   }
00735   
00736   static series<unknown<rational> >
00737   GLUE_140 (const series<integer> &arg_1) {
00738     return as<series<unknown<rational> > > (arg_1);
00739   }
00740   
00741   static series<complex<rational> >
00742   GLUE_141 (const series<rational> &arg_1) {
00743     return as<series<complex<rational> > > (arg_1);
00744   }
00745   
00746   static series<unknown<rational> >
00747   GLUE_142 (const series<rational> &arg_1) {
00748     return as<series<unknown<rational> > > (arg_1);
00749   }
00750   
00751   static series<generic>
00752   GLUE_143 (const series<complex<rational> > &arg_1) {
00753     return as<series<generic> > (arg_1);
00754   }
00755   
00756   static series<generic>
00757   GLUE_144 (const series<unknown<rational> > &arg_1) {
00758     return as<series<generic> > (arg_1);
00759   }
00760   
00761   static series<complex<rational> >
00762   GLUE_145 (const routine &arg_1, const complex<rational> &arg_2) {
00763     return fixed_point_series (arg_1, arg_2);
00764   }
00765   
00766   static vector<generic>
00767   GLUE_146 (const routine &arg_1, const vector<complex<rational> > &arg_2) {
00768     return gen_fixed_point_vector_series (arg_1, arg_2);
00769   }
00770   
00771   static series<complex<rational> >
00772   GLUE_147 (const routine &arg_1, const complex<rational> &arg_2) {
00773     return integrate_series (arg_1, arg_2);
00774   }
00775   
00776   static vector<generic>
00777   GLUE_148 (const routine &arg_1, const vector<complex<rational> > &arg_2) {
00778     return gen_integrate_vector_series (arg_1, arg_2);
00779   }
00780   
00781   static series<complex<rational> >
00782   GLUE_149 (const routine &arg_1, const complex<rational> &arg_2) {
00783     return implicit_series (arg_1, arg_2);
00784   }
00785   
00786   static vector<generic>
00787   GLUE_150 (const routine &arg_1, const vector<complex<rational> > &arg_2) {
00788     return gen_implicit_vector_series (arg_1, arg_2);
00789   }
00790   
00791   void
00792   glue_series_rational () {
00793     static bool done = false;
00794     if (done) return;
00795     done = true;
00796     call_glue (string ("glue_polynomial_rational"));
00797     call_glue (string ("glue_series_integer"));
00798     define_type<series<rational> > (gen (lit ("Series"), lit ("Rational")));
00799     define ("set_variable_name", GLUE_1);
00800     define ("set_output_order", GLUE_2);
00801     define ("set_cancel_order", GLUE_3);
00802     define ("set_formula_output", GLUE_4);
00803     define ("series", GLUE_5);
00804     define_converter ("upgrade", GLUE_6, PENALTY_INCLUSION);
00805     define_converter ("upgrade", GLUE_7, PENALTY_INCLUSION);
00806     define_converter (":>", GLUE_8, PENALTY_CAST);
00807     define (".[]", GLUE_9);
00808     define (".[]", GLUE_10);
00809     define ("-", GLUE_11);
00810     define ("square", GLUE_12);
00811     define ("+", GLUE_13);
00812     define ("-", GLUE_14);
00813     define ("*", GLUE_15);
00814     define ("+", GLUE_16);
00815     define ("+", GLUE_17);
00816     define ("-", GLUE_18);
00817     define ("-", GLUE_19);
00818     define ("*", GLUE_20);
00819     define ("*", GLUE_21);
00820     define ("^", GLUE_22);
00821     define ("^", GLUE_23);
00822     define ("derive", GLUE_24);
00823     define ("xderive", GLUE_25);
00824     define ("dilate", GLUE_26);
00825     define ("<<", GLUE_27);
00826     define (">>", GLUE_28);
00827     define ("/", GLUE_29);
00828     define ("/", GLUE_30);
00829     define ("/", GLUE_31);
00830     define ("div", GLUE_32);
00831     define ("divides?", GLUE_33);
00832     define ("gcd", GLUE_34);
00833     define ("lcm", GLUE_35);
00834     define ("integrate", GLUE_36);
00835     define ("@", GLUE_37);
00836     define ("reverse", GLUE_38);
00837     define ("q_difference", GLUE_39);
00838     define ("shift", GLUE_40);
00839     define ("shift", GLUE_41);
00840     define ("<=", GLUE_42);
00841     define (">=", GLUE_43);
00842     define ("<", GLUE_44);
00843     define (">", GLUE_45);
00844     define_converter (":>", GLUE_46, PENALTY_INCLUSION);
00845     define_converter (":>", GLUE_47, PENALTY_PROMOTE_GENERIC);
00846     define ("^", GLUE_48);
00847     define ("sqrt", GLUE_49);
00848     define ("exp", GLUE_50);
00849     define ("log", GLUE_51);
00850     define ("cos", GLUE_52);
00851     define ("sin", GLUE_53);
00852     define ("tan", GLUE_54);
00853     define ("arccos", GLUE_55);
00854     define ("arcsin", GLUE_56);
00855     define ("arctan", GLUE_57);
00856     define_type<unknown<rational> > (gen (lit ("Unknown"), lit ("Rational")));
00857     define_converter ("upgrade", GLUE_58, PENALTY_INCLUSION);
00858     define ("-", GLUE_59);
00859     define ("square", GLUE_60);
00860     define ("+", GLUE_61);
00861     define ("-", GLUE_62);
00862     define ("*", GLUE_63);
00863     define ("*", GLUE_64);
00864     define ("*", GLUE_65);
00865     define ("fixed_point_series", GLUE_66);
00866     define ("fixed_point_series", GLUE_67);
00867     define ("integrate_series", GLUE_68);
00868     define ("integrate_series", GLUE_69);
00869     define ("implicit_series", GLUE_70);
00870     define ("implicit_series", GLUE_71);
00871     define_type<series<complex<rational> > > (gen (lit ("Series"), gen (lit ("Complex"), lit ("Rational"))));
00872     define_type<series<unknown<rational> > > (gen (lit ("Series"), gen (lit ("Unknown"), lit ("Rational"))));
00873     define ("set_variable_name", GLUE_72);
00874     define ("set_output_order", GLUE_73);
00875     define ("set_cancel_order", GLUE_74);
00876     define ("set_formula_output", GLUE_75);
00877     define ("series", GLUE_76);
00878     define_converter ("upgrade", GLUE_77, PENALTY_INCLUSION);
00879     define_converter ("upgrade", GLUE_78, PENALTY_INCLUSION);
00880     define_converter (":>", GLUE_79, PENALTY_CAST);
00881     define (".[]", GLUE_80);
00882     define (".[]", GLUE_81);
00883     define ("-", GLUE_82);
00884     define ("square", GLUE_83);
00885     define ("+", GLUE_84);
00886     define ("-", GLUE_85);
00887     define ("*", GLUE_86);
00888     define ("+", GLUE_87);
00889     define ("+", GLUE_88);
00890     define ("-", GLUE_89);
00891     define ("-", GLUE_90);
00892     define ("*", GLUE_91);
00893     define ("*", GLUE_92);
00894     define ("^", GLUE_93);
00895     define ("^", GLUE_94);
00896     define ("derive", GLUE_95);
00897     define ("xderive", GLUE_96);
00898     define ("dilate", GLUE_97);
00899     define ("<<", GLUE_98);
00900     define (">>", GLUE_99);
00901     define ("set_variable_name", GLUE_100);
00902     define ("set_output_order", GLUE_101);
00903     define ("set_cancel_order", GLUE_102);
00904     define ("set_formula_output", GLUE_103);
00905     define ("series", GLUE_104);
00906     define_converter ("upgrade", GLUE_105, PENALTY_INCLUSION);
00907     define_converter (":>", GLUE_106, PENALTY_CAST);
00908     define (".[]", GLUE_107);
00909     define ("-", GLUE_108);
00910     define ("square", GLUE_109);
00911     define ("+", GLUE_110);
00912     define ("-", GLUE_111);
00913     define ("*", GLUE_112);
00914     define ("+", GLUE_113);
00915     define ("+", GLUE_114);
00916     define ("-", GLUE_115);
00917     define ("-", GLUE_116);
00918     define ("*", GLUE_117);
00919     define ("*", GLUE_118);
00920     define ("^", GLUE_119);
00921     define ("^", GLUE_120);
00922     define ("derive", GLUE_121);
00923     define ("xderive", GLUE_122);
00924     define ("dilate", GLUE_123);
00925     define ("<<", GLUE_124);
00926     define (">>", GLUE_125);
00927     define ("/", GLUE_126);
00928     define ("/", GLUE_127);
00929     define ("/", GLUE_128);
00930     define ("div", GLUE_129);
00931     define ("divides?", GLUE_130);
00932     define ("gcd", GLUE_131);
00933     define ("lcm", GLUE_132);
00934     define ("integrate", GLUE_133);
00935     define ("@", GLUE_134);
00936     define ("reverse", GLUE_135);
00937     define ("q_difference", GLUE_136);
00938     define ("shift", GLUE_137);
00939     define ("shift", GLUE_138);
00940     define_converter (":>", GLUE_139, PENALTY_INCLUSION);
00941     define_converter (":>", GLUE_140, PENALTY_INCLUSION);
00942     define_converter (":>", GLUE_141, PENALTY_INCLUSION);
00943     define_converter (":>", GLUE_142, PENALTY_INCLUSION);
00944     define_converter (":>", GLUE_143, PENALTY_PROMOTE_GENERIC);
00945     define_converter (":>", GLUE_144, PENALTY_PROMOTE_GENERIC);
00946     define ("fixed_point_series", GLUE_145);
00947     define ("fixed_point_series", GLUE_146);
00948     define ("integrate_series", GLUE_147);
00949     define ("integrate_series", GLUE_148);
00950     define ("implicit_series", GLUE_149);
00951     define ("implicit_series", GLUE_150);
00952   }
00953 }
 All Classes Namespaces Files Functions Variables Typedefs Friends Defines