basix_doc 0.1
/Users/mourrain/Devel/mmx/basix/glue/glue_int.cpp
Go to the documentation of this file.
00001 
00002 #include <basix/int.hpp>
00003 #include <basix/literal.hpp>
00004 #include <basix/glue.hpp>
00005 
00006 #define int_literal(x) as_int (as_string (x))
00007 
00008 namespace mmx {
00009   static int
00010   GLUE_1 (const literal &arg_1) {
00011     return int_literal (arg_1);
00012   }
00013   
00014   static int
00015   GLUE_2 (const string &arg_1) {
00016     return as_int (arg_1);
00017   }
00018   
00019   static string
00020   GLUE_3 (const int &arg_1) {
00021     return as_string (arg_1);
00022   }
00023   
00024   static string
00025   GLUE_4 (const int &arg_1) {
00026     return as_string_hexa (arg_1);
00027   }
00028   
00029   static int
00030   GLUE_5 (const int &arg_1) {
00031     return -arg_1;
00032   }
00033   
00034   static int
00035   GLUE_6 (const int &arg_1) {
00036     return square (arg_1);
00037   }
00038   
00039   static int
00040   GLUE_7 (const int &arg_1, const int &arg_2) {
00041     return arg_1 + arg_2;
00042   }
00043   
00044   static int
00045   GLUE_8 (const int &arg_1, const int &arg_2) {
00046     return arg_1 - arg_2;
00047   }
00048   
00049   static int
00050   GLUE_9 (const int &arg_1, const int &arg_2) {
00051     return arg_1 * arg_2;
00052   }
00053   
00054   static int
00055   GLUE_10 (const int &arg_1, const int &arg_2) {
00056     return arg_1 / arg_2;
00057   }
00058   
00059   static int
00060   GLUE_11 (const int &arg_1, const int &arg_2) {
00061     return quo (arg_1, arg_2);
00062   }
00063   
00064   static int
00065   GLUE_12 (const int &arg_1, const int &arg_2) {
00066     return rem (arg_1, arg_2);
00067   }
00068   
00069   static bool
00070   GLUE_13 (const int &arg_1, const int &arg_2) {
00071     return divides (arg_1, arg_2);
00072   }
00073   
00074   static bool
00075   GLUE_14 (const int &arg_1, const int &arg_2) {
00076     return arg_1 < arg_2;
00077   }
00078   
00079   static bool
00080   GLUE_15 (const int &arg_1, const int &arg_2) {
00081     return arg_1 <= arg_2;
00082   }
00083   
00084   static bool
00085   GLUE_16 (const int &arg_1, const int &arg_2) {
00086     return arg_1 > arg_2;
00087   }
00088   
00089   static bool
00090   GLUE_17 (const int &arg_1, const int &arg_2) {
00091     return arg_1 >= arg_2;
00092   }
00093   
00094   static int
00095   GLUE_18 (const int &arg_1) {
00096     return abs (arg_1);
00097   }
00098   
00099   static int
00100   GLUE_19 (const int &arg_1, const int &arg_2) {
00101     return min (arg_1, arg_2);
00102   }
00103   
00104   static int
00105   GLUE_20 (const int &arg_1, const int &arg_2) {
00106     return max (arg_1, arg_2);
00107   }
00108   
00109   static int
00110   GLUE_21 () {
00111     return rand ();
00112   }
00113   
00114   void
00115   glue_int () {
00116     static bool done = false;
00117     if (done) return;
00118     done = true;
00119     define_type<int > (lit ("Int"));
00120     define ("literal_integer", GLUE_1);
00121     define ("as_int", GLUE_2);
00122     define ("as_string", GLUE_3);
00123     define ("as_string_hexa", GLUE_4);
00124     define ("-", GLUE_5);
00125     define ("square", GLUE_6);
00126     define ("+", GLUE_7);
00127     define ("-", GLUE_8);
00128     define ("*", GLUE_9);
00129     define ("div", GLUE_10);
00130     define ("quo", GLUE_11);
00131     define ("rem", GLUE_12);
00132     define ("divides?", GLUE_13);
00133     define ("<", GLUE_14);
00134     define ("<=", GLUE_15);
00135     define (">", GLUE_16);
00136     define (">=", GLUE_17);
00137     define ("abs", GLUE_18);
00138     define ("min", GLUE_19);
00139     define ("max", GLUE_20);
00140     define ("random", GLUE_21);
00141   }
00142 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines