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