basix_doc 0.1
/Users/mourrain/Devel/mmx/basix/glue/glue_vector_generic.cpp
Go to the documentation of this file.
00001 
00002 #include <basix/vector.hpp>
00003 #include <basix/tuple.hpp>
00004 #include <basix/alias.hpp>
00005 #include <basix/glue.hpp>
00006 
00007 namespace mmx {
00008   static bool
00009   GLUE_1 (const generic &arg_1) {
00010     return is_vector (arg_1);
00011   }
00012   
00013   static vector<generic>
00014   GLUE_2 (const tuple<generic> &arg_1) {
00015     return vector<generic > (as_vector (arg_1));
00016   }
00017   
00018   static vector<generic>
00019   GLUE_3 (const tuple<generic> &arg_1) {
00020     return vector<generic > (as_vector (arg_1));
00021   }
00022   
00023   static iterator<generic>
00024   GLUE_4 (const vector<generic> &arg_1) {
00025     return iterate (arg_1);
00026   }
00027   
00028   static int
00029   GLUE_5 (const vector<generic> &arg_1) {
00030     return N (arg_1);
00031   }
00032   
00033   static generic
00034   GLUE_6 (const vector<generic> &arg_1, const int &arg_2) {
00035     return arg_1[arg_2];
00036   }
00037   
00038   static alias<generic>
00039   GLUE_7 (const alias<vector<generic> > &arg_1, const int &arg_2) {
00040     return alias_access<generic > (arg_1, arg_2);
00041   }
00042   
00043   static vector<generic>
00044   GLUE_8 (const vector<generic> &arg_1, const int &arg_2, const int &arg_3) {
00045     return range (arg_1, arg_2, arg_3);
00046   }
00047   
00048   static vector<generic>
00049   GLUE_9 (const vector<generic> &arg_1) {
00050     return reverse (arg_1);
00051   }
00052   
00053   static vector<generic>
00054   GLUE_10 (const vector<generic> &arg_1, const vector<generic> &arg_2) {
00055     return append (arg_1, arg_2);
00056   }
00057   
00058   static alias<vector<generic> >
00059   GLUE_11 (const alias<vector<generic> > &arg_1, const vector<generic> &arg_2) {
00060     return alias_write (arg_1, arg_2);
00061   }
00062   
00063   static vector<generic>
00064   GLUE_12 (const generic &arg_1, const vector<generic> &arg_2) {
00065     return cons (arg_1, arg_2);
00066   }
00067   
00068   static generic
00069   GLUE_13 (const vector<generic> &arg_1) {
00070     return car (arg_1);
00071   }
00072   
00073   static vector<generic>
00074   GLUE_14 (const vector<generic> &arg_1) {
00075     return cdr (arg_1);
00076   }
00077   
00078   static bool
00079   GLUE_15 (const vector<generic> &arg_1) {
00080     return is_nil (arg_1);
00081   }
00082   
00083   static bool
00084   GLUE_16 (const vector<generic> &arg_1) {
00085     return is_atom (arg_1);
00086   }
00087   
00088   static vector<generic>
00089   GLUE_17 (const vector<generic> &arg_1, const generic &arg_2) {
00090     return insert (arg_1, arg_2);
00091   }
00092   
00093   static int
00094   GLUE_18 (const vector<generic> &arg_1, const generic &arg_2) {
00095     return find (arg_1, arg_2);
00096   }
00097   
00098   static bool
00099   GLUE_19 (const vector<generic> &arg_1, const generic &arg_2) {
00100     return contains (arg_1, arg_2);
00101   }
00102   
00103   static vector<generic>
00104   GLUE_20 (const vector<generic> &arg_1) {
00105     return -arg_1;
00106   }
00107   
00108   static vector<generic>
00109   GLUE_21 (const vector<generic> &arg_1) {
00110     return square (arg_1);
00111   }
00112   
00113   static vector<generic>
00114   GLUE_22 (const vector<generic> &arg_1, const vector<generic> &arg_2) {
00115     return arg_1 + arg_2;
00116   }
00117   
00118   static vector<generic>
00119   GLUE_23 (const vector<generic> &arg_1, const vector<generic> &arg_2) {
00120     return arg_1 - arg_2;
00121   }
00122   
00123   static vector<generic>
00124   GLUE_24 (const vector<generic> &arg_1, const vector<generic> &arg_2) {
00125     return arg_1 * arg_2;
00126   }
00127   
00128   static generic
00129   GLUE_25 (const vector<generic> &arg_1, const vector<generic> &arg_2) {
00130     return dot (arg_1, arg_2);
00131   }
00132   
00133   static generic
00134   GLUE_26 (const vector<generic> &arg_1) {
00135     return big_mul (arg_1);
00136   }
00137   
00138   static generic
00139   GLUE_27 (const vector<generic> &arg_1) {
00140     return big_add (arg_1);
00141   }
00142   
00143   static vector<generic>
00144   GLUE_28 (const vector<generic> &arg_1, const vector<generic> &arg_2) {
00145     return arg_1 / arg_2;
00146   }
00147   
00148   static bool
00149   GLUE_29 (const vector<generic> &arg_1, const vector<generic> &arg_2) {
00150     return arg_1 <= arg_2;
00151   }
00152   
00153   static bool
00154   GLUE_30 (const vector<generic> &arg_1, const vector<generic> &arg_2) {
00155     return arg_1 >= arg_2;
00156   }
00157   
00158   static bool
00159   GLUE_31 (const vector<generic> &arg_1, const vector<generic> &arg_2) {
00160     return arg_1 < arg_2;
00161   }
00162   
00163   static bool
00164   GLUE_32 (const vector<generic> &arg_1, const vector<generic> &arg_2) {
00165     return arg_1 > arg_2;
00166   }
00167   
00168   static vector<generic>
00169   GLUE_33 (const vector<generic> &arg_1) {
00170     return sqrt (arg_1);
00171   }
00172   
00173   static vector<generic>
00174   GLUE_34 (const vector<generic> &arg_1) {
00175     return exp (arg_1);
00176   }
00177   
00178   static vector<generic>
00179   GLUE_35 (const vector<generic> &arg_1) {
00180     return log (arg_1);
00181   }
00182   
00183   static vector<generic>
00184   GLUE_36 (const vector<generic> &arg_1, const vector<generic> &arg_2) {
00185     return pow (arg_1, arg_2);
00186   }
00187   
00188   static vector<generic>
00189   GLUE_37 (const vector<generic> &arg_1) {
00190     return cos (arg_1);
00191   }
00192   
00193   static vector<generic>
00194   GLUE_38 (const vector<generic> &arg_1) {
00195     return sin (arg_1);
00196   }
00197   
00198   static vector<generic>
00199   GLUE_39 (const vector<generic> &arg_1) {
00200     return tan (arg_1);
00201   }
00202   
00203   static vector<generic>
00204   GLUE_40 (const vector<generic> &arg_1) {
00205     return acos (arg_1);
00206   }
00207   
00208   static vector<generic>
00209   GLUE_41 (const vector<generic> &arg_1) {
00210     return asin (arg_1);
00211   }
00212   
00213   static vector<generic>
00214   GLUE_42 (const vector<generic> &arg_1) {
00215     return atan (arg_1);
00216   }
00217   
00218   static vector<generic>
00219   GLUE_43 (const vector<generic> &arg_1) {
00220     return derive (arg_1);
00221   }
00222   
00223   static vector<generic>
00224   GLUE_44 (const vector<generic> &arg_1) {
00225     return integrate (arg_1);
00226   }
00227   
00228   void
00229   glue_vector_generic () {
00230     static bool done = false;
00231     if (done) return;
00232     done = true;
00233     call_glue (string ("glue_generic"));
00234     define_type<vector<generic> > (gen (lit ("Vector"), lit ("Generic")));
00235     define ("vector?", GLUE_1);
00236     define ("vector", GLUE_2);
00237     define ("[]", GLUE_3);
00238     define_converter (":>", GLUE_4, PENALTY_PROMOTE_GENERIC);
00239     define ("#", GLUE_5);
00240     define (".[]", GLUE_6);
00241     define (".[]", GLUE_7);
00242     define (".[]", GLUE_8);
00243     define ("reverse", GLUE_9);
00244     define ("><", GLUE_10);
00245     define ("<<", GLUE_11);
00246     define ("cons", GLUE_12);
00247     define ("car", GLUE_13);
00248     define ("cdr", GLUE_14);
00249     define ("nil?", GLUE_15);
00250     define ("atom?", GLUE_16);
00251     define ("insert", GLUE_17);
00252     define ("find", GLUE_18);
00253     define ("contains?", GLUE_19);
00254     define ("-", GLUE_20);
00255     define ("square", GLUE_21);
00256     define ("+", GLUE_22);
00257     define ("-", GLUE_23);
00258     define ("*", GLUE_24);
00259     define ("dot", GLUE_25);
00260     define ("big_mul", GLUE_26);
00261     define ("big_add", GLUE_27);
00262     define ("/", GLUE_28);
00263     define ("<=", GLUE_29);
00264     define (">=", GLUE_30);
00265     define ("<", GLUE_31);
00266     define (">", GLUE_32);
00267     define ("sqrt", GLUE_33);
00268     define ("exp", GLUE_34);
00269     define ("log", GLUE_35);
00270     define ("^", GLUE_36);
00271     define ("cos", GLUE_37);
00272     define ("sin", GLUE_38);
00273     define ("tan", GLUE_39);
00274     define ("arccos", GLUE_40);
00275     define ("arcsin", GLUE_41);
00276     define ("arctan", GLUE_42);
00277     define ("derive", GLUE_43);
00278     define ("integrate", GLUE_44);
00279   }
00280 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines