numerix_doc 0.4
/Users/mourrain/Devel/mmx/numerix/glue/glue_tangent_floating.cpp
Go to the documentation of this file.
00001 
00002 #include <basix/double.hpp>
00003 #include <numerix/integer.hpp>
00004 #include <numerix/rational.hpp>
00005 #include <numerix/complex.hpp>
00006 #include <numerix/complex_double.hpp>
00007 #include <numerix/floating.hpp>
00008 #include <numerix/tangent.hpp>
00009 #include <basix/glue.hpp>
00010 
00011 #define double_literal(x) as_double (as_string (x))
00012 
00013 namespace mmx {
00014   static tangent<mmx_floating, mmx_floating>
00015   GLUE_1 (const mmx_floating &arg_1) {
00016     return tangent<mmx_floating, mmx_floating > (arg_1);
00017   }
00018   
00019   static tangent<mmx_floating, mmx_floating>
00020   GLUE_2 (const mmx_floating &arg_1) {
00021     return tangent<mmx_floating, mmx_floating > (arg_1);
00022   }
00023   
00024   static tangent<mmx_floating, mmx_floating>
00025   GLUE_3 (const mmx_floating &arg_1, const mmx_floating &arg_2) {
00026     return tangent<mmx_floating, mmx_floating > (arg_1, arg_2);
00027   }
00028   
00029   static mmx_floating
00030   GLUE_4 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00031     return base (arg_1);
00032   }
00033   
00034   static mmx_floating
00035   GLUE_5 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00036     return slope (arg_1);
00037   }
00038   
00039   static tangent<mmx_floating, mmx_floating>
00040   GLUE_6 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00041     return -arg_1;
00042   }
00043   
00044   static tangent<mmx_floating, mmx_floating>
00045   GLUE_7 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00046     return square (arg_1);
00047   }
00048   
00049   static tangent<mmx_floating, mmx_floating>
00050   GLUE_8 (const tangent<mmx_floating, mmx_floating> &arg_1, const tangent<mmx_floating, mmx_floating> &arg_2) {
00051     return arg_1 + arg_2;
00052   }
00053   
00054   static tangent<mmx_floating, mmx_floating>
00055   GLUE_9 (const tangent<mmx_floating, mmx_floating> &arg_1, const tangent<mmx_floating, mmx_floating> &arg_2) {
00056     return arg_1 - arg_2;
00057   }
00058   
00059   static tangent<mmx_floating, mmx_floating>
00060   GLUE_10 (const tangent<mmx_floating, mmx_floating> &arg_1, const tangent<mmx_floating, mmx_floating> &arg_2) {
00061     return arg_1 * arg_2;
00062   }
00063   
00064   static tangent<mmx_floating, mmx_floating>
00065   GLUE_11 (const tangent<mmx_floating, mmx_floating> &arg_1, const tangent<mmx_floating, mmx_floating> &arg_2) {
00066     return arg_1 / arg_2;
00067   }
00068   
00069   static tangent<mmx_floating, mmx_floating>
00070   GLUE_12 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00071     return sqrt (arg_1);
00072   }
00073   
00074   static tangent<mmx_floating, mmx_floating>
00075   GLUE_13 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00076     return exp (arg_1);
00077   }
00078   
00079   static tangent<mmx_floating, mmx_floating>
00080   GLUE_14 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00081     return log (arg_1);
00082   }
00083   
00084   static tangent<mmx_floating, mmx_floating>
00085   GLUE_15 (const tangent<mmx_floating, mmx_floating> &arg_1, const tangent<mmx_floating, mmx_floating> &arg_2) {
00086     return pow (arg_1, arg_2);
00087   }
00088   
00089   static tangent<mmx_floating, mmx_floating>
00090   GLUE_16 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00091     return cos (arg_1);
00092   }
00093   
00094   static tangent<mmx_floating, mmx_floating>
00095   GLUE_17 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00096     return sin (arg_1);
00097   }
00098   
00099   static tangent<mmx_floating, mmx_floating>
00100   GLUE_18 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00101     return tan (arg_1);
00102   }
00103   
00104   static tangent<mmx_floating, mmx_floating>
00105   GLUE_19 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00106     return acos (arg_1);
00107   }
00108   
00109   static tangent<mmx_floating, mmx_floating>
00110   GLUE_20 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00111     return asin (arg_1);
00112   }
00113   
00114   static tangent<mmx_floating, mmx_floating>
00115   GLUE_21 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00116     return atan (arg_1);
00117   }
00118   
00119   static bool
00120   GLUE_22 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00121     return is_finite (arg_1);
00122   }
00123   
00124   static bool
00125   GLUE_23 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00126     return is_infinite (arg_1);
00127   }
00128   
00129   static bool
00130   GLUE_24 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00131     return is_nan (arg_1);
00132   }
00133   
00134   static tangent<mmx_floating, mmx_floating>
00135   GLUE_25 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00136     return times_infinity (arg_1);
00137   }
00138   
00139   static int
00140   GLUE_26 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00141     return precision (arg_1);
00142   }
00143   
00144   static int
00145   GLUE_27 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00146     return exponent (arg_1);
00147   }
00148   
00149   static double
00150   GLUE_28 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00151     return magnitude (arg_1);
00152   }
00153   
00154   static tangent<mmx_floating, mmx_floating>
00155   GLUE_29 (const tangent<mmx_floating, mmx_floating> &arg_1, const int &arg_2) {
00156     return incexp2 (arg_1, arg_2);
00157   }
00158   
00159   static tangent<mmx_floating, mmx_floating>
00160   GLUE_30 (const tangent<mmx_floating, mmx_floating> &arg_1, const int &arg_2) {
00161     return decexp2 (arg_1, arg_2);
00162   }
00163   
00164   static tangent<mmx_floating, mmx_floating>
00165   GLUE_31 (const tangent<rational, rational> &arg_1) {
00166     return as<tangent<mmx_floating, mmx_floating> > (arg_1);
00167   }
00168   
00169   static tangent<generic, generic>
00170   GLUE_32 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00171     return as<tangent<generic, generic> > (arg_1);
00172   }
00173   
00174   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00175   GLUE_33 (const complex<mmx_floating> &arg_1) {
00176     return tangent<complex<mmx_floating>, complex<mmx_floating> > (arg_1);
00177   }
00178   
00179   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00180   GLUE_34 (const complex<mmx_floating> &arg_1) {
00181     return tangent<complex<mmx_floating>, complex<mmx_floating> > (arg_1);
00182   }
00183   
00184   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00185   GLUE_35 (const complex<mmx_floating> &arg_1, const complex<mmx_floating> &arg_2) {
00186     return tangent<complex<mmx_floating>, complex<mmx_floating> > (arg_1, arg_2);
00187   }
00188   
00189   static complex<mmx_floating>
00190   GLUE_36 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00191     return base (arg_1);
00192   }
00193   
00194   static complex<mmx_floating>
00195   GLUE_37 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00196     return slope (arg_1);
00197   }
00198   
00199   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00200   GLUE_38 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00201     return -arg_1;
00202   }
00203   
00204   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00205   GLUE_39 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00206     return square (arg_1);
00207   }
00208   
00209   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00210   GLUE_40 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1, const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_2) {
00211     return arg_1 + arg_2;
00212   }
00213   
00214   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00215   GLUE_41 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1, const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_2) {
00216     return arg_1 - arg_2;
00217   }
00218   
00219   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00220   GLUE_42 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1, const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_2) {
00221     return arg_1 * arg_2;
00222   }
00223   
00224   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00225   GLUE_43 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1, const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_2) {
00226     return arg_1 / arg_2;
00227   }
00228   
00229   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00230   GLUE_44 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00231     return sqrt (arg_1);
00232   }
00233   
00234   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00235   GLUE_45 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00236     return exp (arg_1);
00237   }
00238   
00239   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00240   GLUE_46 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00241     return log (arg_1);
00242   }
00243   
00244   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00245   GLUE_47 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1, const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_2) {
00246     return pow (arg_1, arg_2);
00247   }
00248   
00249   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00250   GLUE_48 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00251     return cos (arg_1);
00252   }
00253   
00254   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00255   GLUE_49 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00256     return sin (arg_1);
00257   }
00258   
00259   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00260   GLUE_50 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00261     return tan (arg_1);
00262   }
00263   
00264   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00265   GLUE_51 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00266     return acos (arg_1);
00267   }
00268   
00269   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00270   GLUE_52 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00271     return asin (arg_1);
00272   }
00273   
00274   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00275   GLUE_53 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00276     return atan (arg_1);
00277   }
00278   
00279   static bool
00280   GLUE_54 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00281     return is_finite (arg_1);
00282   }
00283   
00284   static bool
00285   GLUE_55 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00286     return is_infinite (arg_1);
00287   }
00288   
00289   static bool
00290   GLUE_56 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00291     return is_nan (arg_1);
00292   }
00293   
00294   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00295   GLUE_57 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00296     return times_infinity (arg_1);
00297   }
00298   
00299   static int
00300   GLUE_58 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00301     return precision (arg_1);
00302   }
00303   
00304   static int
00305   GLUE_59 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00306     return exponent (arg_1);
00307   }
00308   
00309   static double
00310   GLUE_60 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00311     return magnitude (arg_1);
00312   }
00313   
00314   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00315   GLUE_61 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1, const int &arg_2) {
00316     return incexp2 (arg_1, arg_2);
00317   }
00318   
00319   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00320   GLUE_62 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1, const int &arg_2) {
00321     return decexp2 (arg_1, arg_2);
00322   }
00323   
00324   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00325   GLUE_63 (const tangent<rational, rational> &arg_1) {
00326     return as<tangent<complex<mmx_floating> , complex<mmx_floating> > > (arg_1);
00327   }
00328   
00329   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00330   GLUE_64 (const tangent<complex<rational> , complex<rational> > &arg_1) {
00331     return as<tangent<complex<mmx_floating> , complex<mmx_floating> > > (arg_1);
00332   }
00333   
00334   static tangent<complex<mmx_floating> , complex<mmx_floating> >
00335   GLUE_65 (const tangent<mmx_floating, mmx_floating> &arg_1) {
00336     return as<tangent<complex<mmx_floating> , complex<mmx_floating> > > (arg_1);
00337   }
00338   
00339   static tangent<generic, generic>
00340   GLUE_66 (const tangent<complex<mmx_floating> , complex<mmx_floating> > &arg_1) {
00341     return as<tangent<generic, generic> > (arg_1);
00342   }
00343   
00344   void
00345   glue_tangent_floating () {
00346     static bool done = false;
00347     if (done) return;
00348     done = true;
00349     call_glue (string ("glue_complex_double"));
00350     call_glue (string ("glue_complex_floating"));
00351     call_glue (string ("glue_tangent_double"));
00352     define_type<tangent<mmx_floating, mmx_floating> > (gen (lit ("Tangent"), lit ("Floating"), lit ("Floating")));
00353     define ("tangent", GLUE_1);
00354     define_converter ("upgrade", GLUE_2, PENALTY_HOMOMORPHISM);
00355     define ("tangent", GLUE_3);
00356     define ("base", GLUE_4);
00357     define ("slope", GLUE_5);
00358     define ("-", GLUE_6);
00359     define ("square", GLUE_7);
00360     define ("+", GLUE_8);
00361     define ("-", GLUE_9);
00362     define ("*", GLUE_10);
00363     define ("/", GLUE_11);
00364     define ("sqrt", GLUE_12);
00365     define ("exp", GLUE_13);
00366     define ("log", GLUE_14);
00367     define ("^", GLUE_15);
00368     define ("cos", GLUE_16);
00369     define ("sin", GLUE_17);
00370     define ("tan", GLUE_18);
00371     define ("arccos", GLUE_19);
00372     define ("arcsin", GLUE_20);
00373     define ("arctan", GLUE_21);
00374     define ("finite?", GLUE_22);
00375     define ("infinite?", GLUE_23);
00376     define ("nan?", GLUE_24);
00377     define ("times_infinity", GLUE_25);
00378     define ("precision", GLUE_26);
00379     define ("exponent", GLUE_27);
00380     define ("magnitude", GLUE_28);
00381     define ("increase_exponent", GLUE_29);
00382     define ("decrease_exponent", GLUE_30);
00383     define_converter (":>", GLUE_31, PENALTY_INCLUSION);
00384     define_converter (":>", GLUE_32, PENALTY_PROMOTE_GENERIC);
00385     define_type<tangent<complex<mmx_floating> , complex<mmx_floating> > > (gen (lit ("Tangent"), gen (lit ("Complex"), lit ("Floating")), gen (lit ("Complex"), lit ("Floating"))));
00386     define ("tangent", GLUE_33);
00387     define_converter ("upgrade", GLUE_34, PENALTY_HOMOMORPHISM);
00388     define ("tangent", GLUE_35);
00389     define ("base", GLUE_36);
00390     define ("slope", GLUE_37);
00391     define ("-", GLUE_38);
00392     define ("square", GLUE_39);
00393     define ("+", GLUE_40);
00394     define ("-", GLUE_41);
00395     define ("*", GLUE_42);
00396     define ("/", GLUE_43);
00397     define ("sqrt", GLUE_44);
00398     define ("exp", GLUE_45);
00399     define ("log", GLUE_46);
00400     define ("^", GLUE_47);
00401     define ("cos", GLUE_48);
00402     define ("sin", GLUE_49);
00403     define ("tan", GLUE_50);
00404     define ("arccos", GLUE_51);
00405     define ("arcsin", GLUE_52);
00406     define ("arctan", GLUE_53);
00407     define ("finite?", GLUE_54);
00408     define ("infinite?", GLUE_55);
00409     define ("nan?", GLUE_56);
00410     define ("times_infinity", GLUE_57);
00411     define ("precision", GLUE_58);
00412     define ("exponent", GLUE_59);
00413     define ("magnitude", GLUE_60);
00414     define ("increase_exponent", GLUE_61);
00415     define ("decrease_exponent", GLUE_62);
00416     define_converter (":>", GLUE_63, PENALTY_HOMOMORPHISM);
00417     define_converter (":>", GLUE_64, PENALTY_INCLUSION);
00418     define_converter (":>", GLUE_65, PENALTY_HOMOMORPHISM);
00419     define_converter (":>", GLUE_66, PENALTY_PROMOTE_GENERIC);
00420   }
00421 }
 All Classes Namespaces Files Functions Variables Typedefs Friends Defines