numerix_doc 0.4
/Users/mourrain/Devel/mmx/numerix/glue/glue_tangent_rational.cpp
Go to the documentation of this file.
00001 
00002 #include <numerix/integer.hpp>
00003 #include <numerix/rational.hpp>
00004 #include <numerix/complex.hpp>
00005 #include <numerix/tangent.hpp>
00006 #include <basix/glue.hpp>
00007 
00008 namespace mmx {
00009   static tangent<rational, rational>
00010   GLUE_1 (const rational &arg_1) {
00011     return tangent<rational, rational > (arg_1);
00012   }
00013   
00014   static tangent<rational, rational>
00015   GLUE_2 (const rational &arg_1) {
00016     return tangent<rational, rational > (arg_1);
00017   }
00018   
00019   static tangent<rational, rational>
00020   GLUE_3 (const rational &arg_1, const rational &arg_2) {
00021     return tangent<rational, rational > (arg_1, arg_2);
00022   }
00023   
00024   static rational
00025   GLUE_4 (const tangent<rational, rational> &arg_1) {
00026     return base (arg_1);
00027   }
00028   
00029   static rational
00030   GLUE_5 (const tangent<rational, rational> &arg_1) {
00031     return slope (arg_1);
00032   }
00033   
00034   static tangent<rational, rational>
00035   GLUE_6 (const tangent<rational, rational> &arg_1) {
00036     return -arg_1;
00037   }
00038   
00039   static tangent<rational, rational>
00040   GLUE_7 (const tangent<rational, rational> &arg_1) {
00041     return square (arg_1);
00042   }
00043   
00044   static tangent<rational, rational>
00045   GLUE_8 (const tangent<rational, rational> &arg_1, const tangent<rational, rational> &arg_2) {
00046     return arg_1 + arg_2;
00047   }
00048   
00049   static tangent<rational, rational>
00050   GLUE_9 (const tangent<rational, rational> &arg_1, const tangent<rational, rational> &arg_2) {
00051     return arg_1 - arg_2;
00052   }
00053   
00054   static tangent<rational, rational>
00055   GLUE_10 (const tangent<rational, rational> &arg_1, const tangent<rational, rational> &arg_2) {
00056     return arg_1 * arg_2;
00057   }
00058   
00059   static tangent<rational, rational>
00060   GLUE_11 (const tangent<rational, rational> &arg_1, const tangent<rational, rational> &arg_2) {
00061     return arg_1 / arg_2;
00062   }
00063   
00064   static tangent<generic, generic>
00065   GLUE_12 (const tangent<rational, rational> &arg_1) {
00066     return as<tangent<generic, generic> > (arg_1);
00067   }
00068   
00069   static tangent<complex<rational> , complex<rational> >
00070   GLUE_13 (const complex<rational> &arg_1) {
00071     return tangent<complex<rational>, complex<rational> > (arg_1);
00072   }
00073   
00074   static tangent<complex<rational> , complex<rational> >
00075   GLUE_14 (const complex<rational> &arg_1) {
00076     return tangent<complex<rational>, complex<rational> > (arg_1);
00077   }
00078   
00079   static tangent<complex<rational> , complex<rational> >
00080   GLUE_15 (const complex<rational> &arg_1, const complex<rational> &arg_2) {
00081     return tangent<complex<rational>, complex<rational> > (arg_1, arg_2);
00082   }
00083   
00084   static complex<rational>
00085   GLUE_16 (const tangent<complex<rational> , complex<rational> > &arg_1) {
00086     return base (arg_1);
00087   }
00088   
00089   static complex<rational>
00090   GLUE_17 (const tangent<complex<rational> , complex<rational> > &arg_1) {
00091     return slope (arg_1);
00092   }
00093   
00094   static tangent<complex<rational> , complex<rational> >
00095   GLUE_18 (const tangent<complex<rational> , complex<rational> > &arg_1) {
00096     return -arg_1;
00097   }
00098   
00099   static tangent<complex<rational> , complex<rational> >
00100   GLUE_19 (const tangent<complex<rational> , complex<rational> > &arg_1) {
00101     return square (arg_1);
00102   }
00103   
00104   static tangent<complex<rational> , complex<rational> >
00105   GLUE_20 (const tangent<complex<rational> , complex<rational> > &arg_1, const tangent<complex<rational> , complex<rational> > &arg_2) {
00106     return arg_1 + arg_2;
00107   }
00108   
00109   static tangent<complex<rational> , complex<rational> >
00110   GLUE_21 (const tangent<complex<rational> , complex<rational> > &arg_1, const tangent<complex<rational> , complex<rational> > &arg_2) {
00111     return arg_1 - arg_2;
00112   }
00113   
00114   static tangent<complex<rational> , complex<rational> >
00115   GLUE_22 (const tangent<complex<rational> , complex<rational> > &arg_1, const tangent<complex<rational> , complex<rational> > &arg_2) {
00116     return arg_1 * arg_2;
00117   }
00118   
00119   static tangent<complex<rational> , complex<rational> >
00120   GLUE_23 (const tangent<complex<rational> , complex<rational> > &arg_1, const tangent<complex<rational> , complex<rational> > &arg_2) {
00121     return arg_1 / arg_2;
00122   }
00123   
00124   static tangent<complex<rational> , complex<rational> >
00125   GLUE_24 (const tangent<rational, rational> &arg_1) {
00126     return as<tangent<complex<rational> , complex<rational> > > (arg_1);
00127   }
00128   
00129   static tangent<generic, generic>
00130   GLUE_25 (const tangent<complex<rational> , complex<rational> > &arg_1) {
00131     return as<tangent<generic, generic> > (arg_1);
00132   }
00133   
00134   void
00135   glue_tangent_rational () {
00136     static bool done = false;
00137     if (done) return;
00138     done = true;
00139     call_glue (string ("glue_complex_rational"));
00140     call_glue (string ("glue_tangent_generic"));
00141     define_type<tangent<rational, rational> > (gen (lit ("Tangent"), lit ("Rational"), lit ("Rational")));
00142     define ("tangent", GLUE_1);
00143     define_converter ("upgrade", GLUE_2, PENALTY_HOMOMORPHISM);
00144     define ("tangent", GLUE_3);
00145     define ("base", GLUE_4);
00146     define ("slope", GLUE_5);
00147     define ("-", GLUE_6);
00148     define ("square", GLUE_7);
00149     define ("+", GLUE_8);
00150     define ("-", GLUE_9);
00151     define ("*", GLUE_10);
00152     define ("/", GLUE_11);
00153     define_converter (":>", GLUE_12, PENALTY_PROMOTE_GENERIC);
00154     define_type<tangent<complex<rational> , complex<rational> > > (gen (lit ("Tangent"), gen (lit ("Complex"), lit ("Rational")), gen (lit ("Complex"), lit ("Rational"))));
00155     define ("tangent", GLUE_13);
00156     define_converter ("upgrade", GLUE_14, PENALTY_HOMOMORPHISM);
00157     define ("tangent", GLUE_15);
00158     define ("base", GLUE_16);
00159     define ("slope", GLUE_17);
00160     define ("-", GLUE_18);
00161     define ("square", GLUE_19);
00162     define ("+", GLUE_20);
00163     define ("-", GLUE_21);
00164     define ("*", GLUE_22);
00165     define ("/", GLUE_23);
00166     define_converter (":>", GLUE_24, PENALTY_HOMOMORPHISM);
00167     define_converter (":>", GLUE_25, PENALTY_PROMOTE_GENERIC);
00168   }
00169 }
 All Classes Namespaces Files Functions Variables Typedefs Friends Defines