algebramix_doc 0.3
/Users/mourrain/Devel/mmx/algebramix/glue/glue_vector_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 <basix/tuple.hpp>
00007 #include <basix/alias.hpp>
00008 #include <basix/glue.hpp>
00009 
00010 namespace mmx {
00011   static vector<rational>
00012   GLUE_1 (const tuple<rational> &arg_1) {
00013     return vector<rational > (as_vector (arg_1));
00014   }
00015   
00016   static vector<rational>
00017   GLUE_2 (const tuple<rational> &arg_1) {
00018     return vector<rational > (as_vector (arg_1));
00019   }
00020   
00021   static iterator<generic>
00022   GLUE_3 (const vector<rational> &arg_1) {
00023     return as<iterator<generic> > (iterate (arg_1));
00024   }
00025   
00026   static int
00027   GLUE_4 (const vector<rational> &arg_1) {
00028     return N (arg_1);
00029   }
00030   
00031   static rational
00032   GLUE_5 (const vector<rational> &arg_1, const int &arg_2) {
00033     return arg_1[arg_2];
00034   }
00035   
00036   static alias<rational>
00037   GLUE_6 (const alias<vector<rational> > &arg_1, const int &arg_2) {
00038     return alias_access<rational > (arg_1, arg_2);
00039   }
00040   
00041   static vector<rational>
00042   GLUE_7 (const vector<rational> &arg_1, const int &arg_2, const int &arg_3) {
00043     return range (arg_1, arg_2, arg_3);
00044   }
00045   
00046   static vector<rational>
00047   GLUE_8 (const vector<rational> &arg_1) {
00048     return reverse (arg_1);
00049   }
00050   
00051   static vector<rational>
00052   GLUE_9 (const vector<rational> &arg_1, const vector<rational> &arg_2) {
00053     return append (arg_1, arg_2);
00054   }
00055   
00056   static alias<vector<rational> >
00057   GLUE_10 (const alias<vector<rational> > &arg_1, const vector<rational> &arg_2) {
00058     return alias_write (arg_1, arg_2);
00059   }
00060   
00061   static vector<rational>
00062   GLUE_11 (const rational &arg_1, const vector<rational> &arg_2) {
00063     return cons (arg_1, arg_2);
00064   }
00065   
00066   static rational
00067   GLUE_12 (const vector<rational> &arg_1) {
00068     return car (arg_1);
00069   }
00070   
00071   static vector<rational>
00072   GLUE_13 (const vector<rational> &arg_1) {
00073     return cdr (arg_1);
00074   }
00075   
00076   static bool
00077   GLUE_14 (const vector<rational> &arg_1) {
00078     return is_nil (arg_1);
00079   }
00080   
00081   static bool
00082   GLUE_15 (const vector<rational> &arg_1) {
00083     return is_atom (arg_1);
00084   }
00085   
00086   static vector<rational>
00087   GLUE_16 (const vector<rational> &arg_1, const rational &arg_2) {
00088     return insert (arg_1, arg_2);
00089   }
00090   
00091   static int
00092   GLUE_17 (const vector<rational> &arg_1, const rational &arg_2) {
00093     return find (arg_1, arg_2);
00094   }
00095   
00096   static bool
00097   GLUE_18 (const vector<rational> &arg_1, const rational &arg_2) {
00098     return contains (arg_1, arg_2);
00099   }
00100   
00101   static vector<complex<rational> >
00102   GLUE_19 (const tuple<complex<rational> > &arg_1) {
00103     return vector<complex<rational> > (as_vector (arg_1));
00104   }
00105   
00106   static vector<complex<rational> >
00107   GLUE_20 (const tuple<complex<rational> > &arg_1) {
00108     return vector<complex<rational> > (as_vector (arg_1));
00109   }
00110   
00111   static iterator<generic>
00112   GLUE_21 (const vector<complex<rational> > &arg_1) {
00113     return as<iterator<generic> > (iterate (arg_1));
00114   }
00115   
00116   static int
00117   GLUE_22 (const vector<complex<rational> > &arg_1) {
00118     return N (arg_1);
00119   }
00120   
00121   static complex<rational>
00122   GLUE_23 (const vector<complex<rational> > &arg_1, const int &arg_2) {
00123     return arg_1[arg_2];
00124   }
00125   
00126   static alias<complex<rational> >
00127   GLUE_24 (const alias<vector<complex<rational> > > &arg_1, const int &arg_2) {
00128     return alias_access<complex<rational> > (arg_1, arg_2);
00129   }
00130   
00131   static vector<complex<rational> >
00132   GLUE_25 (const vector<complex<rational> > &arg_1, const int &arg_2, const int &arg_3) {
00133     return range (arg_1, arg_2, arg_3);
00134   }
00135   
00136   static vector<complex<rational> >
00137   GLUE_26 (const vector<complex<rational> > &arg_1) {
00138     return reverse (arg_1);
00139   }
00140   
00141   static vector<complex<rational> >
00142   GLUE_27 (const vector<complex<rational> > &arg_1, const vector<complex<rational> > &arg_2) {
00143     return append (arg_1, arg_2);
00144   }
00145   
00146   static alias<vector<complex<rational> > >
00147   GLUE_28 (const alias<vector<complex<rational> > > &arg_1, const vector<complex<rational> > &arg_2) {
00148     return alias_write (arg_1, arg_2);
00149   }
00150   
00151   static vector<complex<rational> >
00152   GLUE_29 (const complex<rational> &arg_1, const vector<complex<rational> > &arg_2) {
00153     return cons (arg_1, arg_2);
00154   }
00155   
00156   static complex<rational>
00157   GLUE_30 (const vector<complex<rational> > &arg_1) {
00158     return car (arg_1);
00159   }
00160   
00161   static vector<complex<rational> >
00162   GLUE_31 (const vector<complex<rational> > &arg_1) {
00163     return cdr (arg_1);
00164   }
00165   
00166   static bool
00167   GLUE_32 (const vector<complex<rational> > &arg_1) {
00168     return is_nil (arg_1);
00169   }
00170   
00171   static bool
00172   GLUE_33 (const vector<complex<rational> > &arg_1) {
00173     return is_atom (arg_1);
00174   }
00175   
00176   static vector<complex<rational> >
00177   GLUE_34 (const vector<complex<rational> > &arg_1, const complex<rational> &arg_2) {
00178     return insert (arg_1, arg_2);
00179   }
00180   
00181   static int
00182   GLUE_35 (const vector<complex<rational> > &arg_1, const complex<rational> &arg_2) {
00183     return find (arg_1, arg_2);
00184   }
00185   
00186   static bool
00187   GLUE_36 (const vector<complex<rational> > &arg_1, const complex<rational> &arg_2) {
00188     return contains (arg_1, arg_2);
00189   }
00190   
00191   static vector<rational>
00192   GLUE_37 (const vector<rational> &arg_1) {
00193     return -arg_1;
00194   }
00195   
00196   static vector<rational>
00197   GLUE_38 (const vector<rational> &arg_1) {
00198     return square (arg_1);
00199   }
00200   
00201   static vector<rational>
00202   GLUE_39 (const vector<rational> &arg_1, const vector<rational> &arg_2) {
00203     return arg_1 + arg_2;
00204   }
00205   
00206   static vector<rational>
00207   GLUE_40 (const vector<rational> &arg_1, const vector<rational> &arg_2) {
00208     return arg_1 - arg_2;
00209   }
00210   
00211   static vector<rational>
00212   GLUE_41 (const vector<rational> &arg_1, const vector<rational> &arg_2) {
00213     return arg_1 * arg_2;
00214   }
00215   
00216   static vector<rational>
00217   GLUE_42 (const rational &arg_1, const vector<rational> &arg_2) {
00218     return arg_1 + arg_2;
00219   }
00220   
00221   static vector<rational>
00222   GLUE_43 (const vector<rational> &arg_1, const rational &arg_2) {
00223     return arg_1 + arg_2;
00224   }
00225   
00226   static vector<rational>
00227   GLUE_44 (const rational &arg_1, const vector<rational> &arg_2) {
00228     return arg_1 - arg_2;
00229   }
00230   
00231   static vector<rational>
00232   GLUE_45 (const vector<rational> &arg_1, const rational &arg_2) {
00233     return arg_1 - arg_2;
00234   }
00235   
00236   static vector<rational>
00237   GLUE_46 (const rational &arg_1, const vector<rational> &arg_2) {
00238     return arg_1 * arg_2;
00239   }
00240   
00241   static vector<rational>
00242   GLUE_47 (const vector<rational> &arg_1, const rational &arg_2) {
00243     return arg_1 * arg_2;
00244   }
00245   
00246   static rational
00247   GLUE_48 (const vector<rational> &arg_1, const vector<rational> &arg_2) {
00248     return dot (arg_1, arg_2);
00249   }
00250   
00251   static rational
00252   GLUE_49 (const vector<rational> &arg_1) {
00253     return big_mul (arg_1);
00254   }
00255   
00256   static rational
00257   GLUE_50 (const vector<rational> &arg_1) {
00258     return big_add (arg_1);
00259   }
00260   
00261   static vector<rational>
00262   GLUE_51 (const vector<rational> &arg_1, const vector<rational> &arg_2) {
00263     return arg_1 / arg_2;
00264   }
00265   
00266   static vector<rational>
00267   GLUE_52 (const rational &arg_1, const vector<rational> &arg_2) {
00268     return arg_1 / arg_2;
00269   }
00270   
00271   static vector<rational>
00272   GLUE_53 (const vector<rational> &arg_1, const rational &arg_2) {
00273     return arg_1 / arg_2;
00274   }
00275   
00276   static bool
00277   GLUE_54 (const vector<rational> &arg_1, const vector<rational> &arg_2) {
00278     return arg_1 <= arg_2;
00279   }
00280   
00281   static bool
00282   GLUE_55 (const vector<rational> &arg_1, const vector<rational> &arg_2) {
00283     return arg_1 >= arg_2;
00284   }
00285   
00286   static bool
00287   GLUE_56 (const vector<rational> &arg_1, const vector<rational> &arg_2) {
00288     return arg_1 < arg_2;
00289   }
00290   
00291   static bool
00292   GLUE_57 (const vector<rational> &arg_1, const vector<rational> &arg_2) {
00293     return arg_1 > arg_2;
00294   }
00295   
00296   static vector<rational>
00297   GLUE_58 (const vector<rational> &arg_1) {
00298     return abs (arg_1);
00299   }
00300   
00301   static vector<rational>
00302   GLUE_59 (const vector<integer> &arg_1) {
00303     return as<vector<rational> > (arg_1);
00304   }
00305   
00306   static vector<complex<rational> >
00307   GLUE_60 (const vector<integer> &arg_1) {
00308     return as<vector<complex<rational> > > (arg_1);
00309   }
00310   
00311   static vector<generic>
00312   GLUE_61 (const vector<rational> &arg_1) {
00313     return as<vector<generic> > (arg_1);
00314   }
00315   
00316   static vector<complex<rational> >
00317   GLUE_62 (const vector<rational> &arg_1) {
00318     return as<vector<complex<rational> > > (arg_1);
00319   }
00320   
00321   static vector<generic>
00322   GLUE_63 (const vector<complex<rational> > &arg_1) {
00323     return as<vector<generic> > (arg_1);
00324   }
00325   
00326   static vector<complex<rational> >
00327   GLUE_64 (const vector<complex<rational> > &arg_1) {
00328     return -arg_1;
00329   }
00330   
00331   static vector<complex<rational> >
00332   GLUE_65 (const vector<complex<rational> > &arg_1) {
00333     return square (arg_1);
00334   }
00335   
00336   static vector<complex<rational> >
00337   GLUE_66 (const vector<complex<rational> > &arg_1, const vector<complex<rational> > &arg_2) {
00338     return arg_1 + arg_2;
00339   }
00340   
00341   static vector<complex<rational> >
00342   GLUE_67 (const vector<complex<rational> > &arg_1, const vector<complex<rational> > &arg_2) {
00343     return arg_1 - arg_2;
00344   }
00345   
00346   static vector<complex<rational> >
00347   GLUE_68 (const vector<complex<rational> > &arg_1, const vector<complex<rational> > &arg_2) {
00348     return arg_1 * arg_2;
00349   }
00350   
00351   static vector<complex<rational> >
00352   GLUE_69 (const complex<rational> &arg_1, const vector<complex<rational> > &arg_2) {
00353     return arg_1 + arg_2;
00354   }
00355   
00356   static vector<complex<rational> >
00357   GLUE_70 (const vector<complex<rational> > &arg_1, const complex<rational> &arg_2) {
00358     return arg_1 + arg_2;
00359   }
00360   
00361   static vector<complex<rational> >
00362   GLUE_71 (const complex<rational> &arg_1, const vector<complex<rational> > &arg_2) {
00363     return arg_1 - arg_2;
00364   }
00365   
00366   static vector<complex<rational> >
00367   GLUE_72 (const vector<complex<rational> > &arg_1, const complex<rational> &arg_2) {
00368     return arg_1 - arg_2;
00369   }
00370   
00371   static vector<complex<rational> >
00372   GLUE_73 (const complex<rational> &arg_1, const vector<complex<rational> > &arg_2) {
00373     return arg_1 * arg_2;
00374   }
00375   
00376   static vector<complex<rational> >
00377   GLUE_74 (const vector<complex<rational> > &arg_1, const complex<rational> &arg_2) {
00378     return arg_1 * arg_2;
00379   }
00380   
00381   static complex<rational>
00382   GLUE_75 (const vector<complex<rational> > &arg_1, const vector<complex<rational> > &arg_2) {
00383     return dot (arg_1, arg_2);
00384   }
00385   
00386   static complex<rational>
00387   GLUE_76 (const vector<complex<rational> > &arg_1) {
00388     return big_mul (arg_1);
00389   }
00390   
00391   static complex<rational>
00392   GLUE_77 (const vector<complex<rational> > &arg_1) {
00393     return big_add (arg_1);
00394   }
00395   
00396   static vector<complex<rational> >
00397   GLUE_78 (const vector<complex<rational> > &arg_1, const vector<complex<rational> > &arg_2) {
00398     return arg_1 / arg_2;
00399   }
00400   
00401   static vector<complex<rational> >
00402   GLUE_79 (const complex<rational> &arg_1, const vector<complex<rational> > &arg_2) {
00403     return arg_1 / arg_2;
00404   }
00405   
00406   static vector<complex<rational> >
00407   GLUE_80 (const vector<complex<rational> > &arg_1, const complex<rational> &arg_2) {
00408     return arg_1 / arg_2;
00409   }
00410   
00411   void
00412   glue_vector_rational () {
00413     static bool done = false;
00414     if (done) return;
00415     done = true;
00416     call_glue (string ("glue_complex_rational"));
00417     call_glue (string ("glue_vector_integer"));
00418     define_type<vector<rational> > (gen (lit ("Vector"), lit ("Rational")));
00419     define_type<vector<complex<rational> > > (gen (lit ("Vector"), gen (lit ("Complex"), lit ("Rational"))));
00420     define ("vector", GLUE_1);
00421     define ("[]", GLUE_2);
00422     define_converter (":>", GLUE_3, PENALTY_CAST);
00423     define ("#", GLUE_4);
00424     define (".[]", GLUE_5);
00425     define (".[]", GLUE_6);
00426     define (".[]", GLUE_7);
00427     define ("reverse", GLUE_8);
00428     define ("><", GLUE_9);
00429     define ("<<", GLUE_10);
00430     define ("cons", GLUE_11);
00431     define ("car", GLUE_12);
00432     define ("cdr", GLUE_13);
00433     define ("nil?", GLUE_14);
00434     define ("atom?", GLUE_15);
00435     define ("insert", GLUE_16);
00436     define ("find", GLUE_17);
00437     define ("contains?", GLUE_18);
00438     define ("vector", GLUE_19);
00439     define ("[]", GLUE_20);
00440     define_converter (":>", GLUE_21, PENALTY_CAST);
00441     define ("#", GLUE_22);
00442     define (".[]", GLUE_23);
00443     define (".[]", GLUE_24);
00444     define (".[]", GLUE_25);
00445     define ("reverse", GLUE_26);
00446     define ("><", GLUE_27);
00447     define ("<<", GLUE_28);
00448     define ("cons", GLUE_29);
00449     define ("car", GLUE_30);
00450     define ("cdr", GLUE_31);
00451     define ("nil?", GLUE_32);
00452     define ("atom?", GLUE_33);
00453     define ("insert", GLUE_34);
00454     define ("find", GLUE_35);
00455     define ("contains?", GLUE_36);
00456     define ("-", GLUE_37);
00457     define ("square", GLUE_38);
00458     define ("+", GLUE_39);
00459     define ("-", GLUE_40);
00460     define ("*", GLUE_41);
00461     define ("+", GLUE_42);
00462     define ("+", GLUE_43);
00463     define ("-", GLUE_44);
00464     define ("-", GLUE_45);
00465     define ("*", GLUE_46);
00466     define ("*", GLUE_47);
00467     define ("dot", GLUE_48);
00468     define ("big_mul", GLUE_49);
00469     define ("big_add", GLUE_50);
00470     define ("/", GLUE_51);
00471     define ("/", GLUE_52);
00472     define ("/", GLUE_53);
00473     define ("<=", GLUE_54);
00474     define (">=", GLUE_55);
00475     define ("<", GLUE_56);
00476     define (">", GLUE_57);
00477     define ("abs", GLUE_58);
00478     define_converter (":>", GLUE_59, PENALTY_INCLUSION);
00479     define_converter (":>", GLUE_60, PENALTY_HOMOMORPHISM);
00480     define_converter (":>", GLUE_61, PENALTY_PROMOTE_GENERIC);
00481     define_converter (":>", GLUE_62, PENALTY_HOMOMORPHISM);
00482     define_converter (":>", GLUE_63, PENALTY_PROMOTE_GENERIC);
00483     define ("-", GLUE_64);
00484     define ("square", GLUE_65);
00485     define ("+", GLUE_66);
00486     define ("-", GLUE_67);
00487     define ("*", GLUE_68);
00488     define ("+", GLUE_69);
00489     define ("+", GLUE_70);
00490     define ("-", GLUE_71);
00491     define ("-", GLUE_72);
00492     define ("*", GLUE_73);
00493     define ("*", GLUE_74);
00494     define ("dot", GLUE_75);
00495     define ("big_mul", GLUE_76);
00496     define ("big_add", GLUE_77);
00497     define ("/", GLUE_78);
00498     define ("/", GLUE_79);
00499     define ("/", GLUE_80);
00500   }
00501 }
 All Classes Namespaces Files Functions Variables Typedefs Friends Defines