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