numerix_doc 0.4
|
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 }