basix_doc 0.1
/Users/mourrain/Devel/mmx/basix/glue/glue_double.cpp
Go to the documentation of this file.
00001 
00002 #include <basix/double.hpp>
00003 #include <basix/literal.hpp>
00004 #include <basix/glue.hpp>
00005 
00006 #define double_literal(x) as_double (as_string (x))
00007 
00008 namespace mmx {
00009   static double
00010   GLUE_1 (const literal &arg_1) {
00011     return double_literal (arg_1);
00012   }
00013   
00014   static double
00015   GLUE_2 (const int &arg_1) {
00016     return double (arg_1);
00017   }
00018   
00019   static int
00020   GLUE_3 (const double &arg_1) {
00021     return as_int (arg_1);
00022   }
00023   
00024   static double
00025   GLUE_4 (const string &arg_1) {
00026     return as_double (arg_1);
00027   }
00028   
00029   static string
00030   GLUE_5 (const double &arg_1) {
00031     return as_string (arg_1);
00032   }
00033   
00034   static double
00035   GLUE_6 (const double &arg_1, const double &arg_2) {
00036     return uniform_deviate (arg_1, arg_2);
00037   }
00038   
00039   static double
00040   GLUE_7 (const double &arg_1) {
00041     return -arg_1;
00042   }
00043   
00044   static double
00045   GLUE_8 (const double &arg_1) {
00046     return square (arg_1);
00047   }
00048   
00049   static double
00050   GLUE_9 (const double &arg_1, const double &arg_2) {
00051     return arg_1 + arg_2;
00052   }
00053   
00054   static double
00055   GLUE_10 (const double &arg_1, const double &arg_2) {
00056     return arg_1 - arg_2;
00057   }
00058   
00059   static double
00060   GLUE_11 (const double &arg_1, const double &arg_2) {
00061     return arg_1 * arg_2;
00062   }
00063   
00064   static double
00065   GLUE_12 (const double &arg_1, const double &arg_2) {
00066     return arg_1 / arg_2;
00067   }
00068   
00069   static double
00070   GLUE_13 (const double &arg_1) {
00071     return mmx_sqrt (arg_1);
00072   }
00073   
00074   static double
00075   GLUE_14 (const double &arg_1, const double &arg_2) {
00076     return mmx_pow (arg_1, arg_2);
00077   }
00078   
00079   static double
00080   GLUE_15 (const double &arg_1) {
00081     return mmx_exp (arg_1);
00082   }
00083   
00084   static double
00085   GLUE_16 (const double &arg_1) {
00086     return mmx_log (arg_1);
00087   }
00088   
00089   static double
00090   GLUE_17 (const double &arg_1) {
00091     return mmx_cos (arg_1);
00092   }
00093   
00094   static double
00095   GLUE_18 (const double &arg_1) {
00096     return mmx_sin (arg_1);
00097   }
00098   
00099   static double
00100   GLUE_19 (const double &arg_1) {
00101     return mmx_tan (arg_1);
00102   }
00103   
00104   static double
00105   GLUE_20 (const double &arg_1) {
00106     return mmx_acos (arg_1);
00107   }
00108   
00109   static double
00110   GLUE_21 (const double &arg_1) {
00111     return mmx_asin (arg_1);
00112   }
00113   
00114   static double
00115   GLUE_22 (const double &arg_1) {
00116     return mmx_atan (arg_1);
00117   }
00118   
00119   static bool
00120   GLUE_23 (const double &arg_1, const double &arg_2) {
00121     return arg_1 < arg_2;
00122   }
00123   
00124   static bool
00125   GLUE_24 (const double &arg_1, const double &arg_2) {
00126     return arg_1 <= arg_2;
00127   }
00128   
00129   static bool
00130   GLUE_25 (const double &arg_1, const double &arg_2) {
00131     return arg_1 > arg_2;
00132   }
00133   
00134   static bool
00135   GLUE_26 (const double &arg_1, const double &arg_2) {
00136     return arg_1 >= arg_2;
00137   }
00138   
00139   static double
00140   GLUE_27 (const double &arg_1) {
00141     return abs (arg_1);
00142   }
00143   
00144   static double
00145   GLUE_28 (const double &arg_1, const double &arg_2) {
00146     return min (arg_1, arg_2);
00147   }
00148   
00149   static double
00150   GLUE_29 (const double &arg_1, const double &arg_2) {
00151     return max (arg_1, arg_2);
00152   }
00153   
00154   static double
00155   GLUE_30 (const double &arg_1) {
00156     return mmx_floor (arg_1);
00157   }
00158   
00159   static double
00160   GLUE_31 (const double &arg_1) {
00161     return mmx_ceil (arg_1);
00162   }
00163   
00164   static double
00165   GLUE_32 (const double &arg_1) {
00166     return mmx_trunc (arg_1);
00167   }
00168   
00169   static double
00170   GLUE_33 (const double &arg_1) {
00171     return mmx_round (arg_1);
00172   }
00173   
00174   static bool
00175   GLUE_34 (const double &arg_1) {
00176     return is_finite (arg_1);
00177   }
00178   
00179   static bool
00180   GLUE_35 (const double &arg_1) {
00181     return is_infinite (arg_1);
00182   }
00183   
00184   static bool
00185   GLUE_36 (const double &arg_1) {
00186     return is_nan (arg_1);
00187   }
00188   
00189   static double
00190   GLUE_37 (const double &arg_1) {
00191     return times_infinity (arg_1);
00192   }
00193   
00194   static int
00195   GLUE_38 (const double &arg_1) {
00196     return precision (arg_1);
00197   }
00198   
00199   static double
00200   GLUE_39 (const double &arg_1) {
00201     return next_above (arg_1);
00202   }
00203   
00204   static double
00205   GLUE_40 (const double &arg_1) {
00206     return next_below (arg_1);
00207   }
00208   
00209   static int
00210   GLUE_41 (const double &arg_1) {
00211     return exponent (arg_1);
00212   }
00213   
00214   static double
00215   GLUE_42 (const double &arg_1) {
00216     return magnitude (arg_1);
00217   }
00218   
00219   static double
00220   GLUE_43 (const double &arg_1, const int &arg_2) {
00221     return incexp2 (arg_1, arg_2);
00222   }
00223   
00224   static double
00225   GLUE_44 (const double &arg_1, const int &arg_2) {
00226     return decexp2 (arg_1, arg_2);
00227   }
00228   
00229   static double
00230   GLUE_45 (const double &arg_1) {
00231     return rounding_error (arg_1);
00232   }
00233   
00234   static double
00235   GLUE_46 (const double &arg_1) {
00236     return additive_error (arg_1);
00237   }
00238   
00239   static double
00240   GLUE_47 (const double &arg_1) {
00241     return multiplicative_error (arg_1);
00242   }
00243   
00244   static double
00245   GLUE_48 (const double &arg_1) {
00246     return elementary_error (arg_1);
00247   }
00248   
00249   void
00250   glue_double () {
00251     static bool done = false;
00252     if (done) return;
00253     done = true;
00254     define_type<double > (lit ("Double"));
00255     define ("literal_floating", GLUE_1);
00256     define_converter ("upgrade", GLUE_2, PENALTY_INCLUSION);
00257     define ("as_int", GLUE_3);
00258     define ("as_double", GLUE_4);
00259     define ("as_string", GLUE_5);
00260     define ("uniform_deviate", GLUE_6);
00261     define ("-", GLUE_7);
00262     define ("square", GLUE_8);
00263     define ("+", GLUE_9);
00264     define ("-", GLUE_10);
00265     define ("*", GLUE_11);
00266     define ("/", GLUE_12);
00267     define ("sqrt", GLUE_13);
00268     define ("^", GLUE_14);
00269     define ("exp", GLUE_15);
00270     define ("log", GLUE_16);
00271     define ("cos", GLUE_17);
00272     define ("sin", GLUE_18);
00273     define ("tan", GLUE_19);
00274     define ("arccos", GLUE_20);
00275     define ("arcsin", GLUE_21);
00276     define ("arctan", GLUE_22);
00277     define ("<", GLUE_23);
00278     define ("<=", GLUE_24);
00279     define (">", GLUE_25);
00280     define (">=", GLUE_26);
00281     define ("abs", GLUE_27);
00282     define ("min", GLUE_28);
00283     define ("max", GLUE_29);
00284     define ("floor", GLUE_30);
00285     define ("ceil", GLUE_31);
00286     define ("trunc", GLUE_32);
00287     define ("round", GLUE_33);
00288     define ("finite?", GLUE_34);
00289     define ("infinite?", GLUE_35);
00290     define ("nan?", GLUE_36);
00291     define ("times_infinity", GLUE_37);
00292     define ("precision", GLUE_38);
00293     define ("next_above", GLUE_39);
00294     define ("next_below", GLUE_40);
00295     define ("exponent", GLUE_41);
00296     define ("magnitude", GLUE_42);
00297     define ("increase_exponent", GLUE_43);
00298     define ("decrease_exponent", GLUE_44);
00299     define ("rounding_error", GLUE_45);
00300     define ("additive_error", GLUE_46);
00301     define ("multiplicative_error", GLUE_47);
00302     define ("elementary_error", GLUE_48);
00303   }
00304 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines