numerix_doc 0.4
|
00001 00002 #include <numerix/tangent.hpp> 00003 #include <basix/glue.hpp> 00004 00005 namespace mmx { 00006 static tangent<generic, generic> 00007 GLUE_1 (const generic &arg_1) { 00008 return tangent<generic, generic > (arg_1); 00009 } 00010 00011 static tangent<generic, generic> 00012 GLUE_2 (const generic &arg_1, const generic &arg_2) { 00013 return tangent<generic, generic > (arg_1, arg_2); 00014 } 00015 00016 static generic 00017 GLUE_3 (const tangent<generic, generic> &arg_1) { 00018 return base (arg_1); 00019 } 00020 00021 static generic 00022 GLUE_4 (const tangent<generic, generic> &arg_1) { 00023 return slope (arg_1); 00024 } 00025 00026 static tangent<generic, generic> 00027 GLUE_5 (const tangent<generic, generic> &arg_1) { 00028 return -arg_1; 00029 } 00030 00031 static tangent<generic, generic> 00032 GLUE_6 (const tangent<generic, generic> &arg_1) { 00033 return square (arg_1); 00034 } 00035 00036 static tangent<generic, generic> 00037 GLUE_7 (const tangent<generic, generic> &arg_1, const tangent<generic, generic> &arg_2) { 00038 return arg_1 + arg_2; 00039 } 00040 00041 static tangent<generic, generic> 00042 GLUE_8 (const tangent<generic, generic> &arg_1, const tangent<generic, generic> &arg_2) { 00043 return arg_1 - arg_2; 00044 } 00045 00046 static tangent<generic, generic> 00047 GLUE_9 (const tangent<generic, generic> &arg_1, const tangent<generic, generic> &arg_2) { 00048 return arg_1 * arg_2; 00049 } 00050 00051 static tangent<generic, generic> 00052 GLUE_10 (const tangent<generic, generic> &arg_1, const tangent<generic, generic> &arg_2) { 00053 return arg_1 / arg_2; 00054 } 00055 00056 static tangent<generic, generic> 00057 GLUE_11 (const tangent<generic, generic> &arg_1) { 00058 return sqrt (arg_1); 00059 } 00060 00061 static tangent<generic, generic> 00062 GLUE_12 (const tangent<generic, generic> &arg_1) { 00063 return exp (arg_1); 00064 } 00065 00066 static tangent<generic, generic> 00067 GLUE_13 (const tangent<generic, generic> &arg_1) { 00068 return log (arg_1); 00069 } 00070 00071 static tangent<generic, generic> 00072 GLUE_14 (const tangent<generic, generic> &arg_1, const tangent<generic, generic> &arg_2) { 00073 return pow (arg_1, arg_2); 00074 } 00075 00076 static tangent<generic, generic> 00077 GLUE_15 (const tangent<generic, generic> &arg_1) { 00078 return cos (arg_1); 00079 } 00080 00081 static tangent<generic, generic> 00082 GLUE_16 (const tangent<generic, generic> &arg_1) { 00083 return sin (arg_1); 00084 } 00085 00086 static tangent<generic, generic> 00087 GLUE_17 (const tangent<generic, generic> &arg_1) { 00088 return tan (arg_1); 00089 } 00090 00091 static tangent<generic, generic> 00092 GLUE_18 (const tangent<generic, generic> &arg_1) { 00093 return acos (arg_1); 00094 } 00095 00096 static tangent<generic, generic> 00097 GLUE_19 (const tangent<generic, generic> &arg_1) { 00098 return asin (arg_1); 00099 } 00100 00101 static tangent<generic, generic> 00102 GLUE_20 (const tangent<generic, generic> &arg_1) { 00103 return atan (arg_1); 00104 } 00105 00106 void 00107 glue_tangent_generic () { 00108 static bool done = false; 00109 if (done) return; 00110 done = true; 00111 call_glue (string ("glue_generic")); 00112 define_type<tangent<generic, generic> > (gen (lit ("Tangent"), lit ("Generic"), lit ("Generic"))); 00113 define ("tangent", GLUE_1); 00114 define ("tangent", GLUE_2); 00115 define ("base", GLUE_3); 00116 define ("slope", GLUE_4); 00117 define ("-", GLUE_5); 00118 define ("square", GLUE_6); 00119 define ("+", GLUE_7); 00120 define ("-", GLUE_8); 00121 define ("*", GLUE_9); 00122 define ("/", GLUE_10); 00123 define ("sqrt", GLUE_11); 00124 define ("exp", GLUE_12); 00125 define ("log", GLUE_13); 00126 define ("^", GLUE_14); 00127 define ("cos", GLUE_15); 00128 define ("sin", GLUE_16); 00129 define ("tan", GLUE_17); 00130 define ("arccos", GLUE_18); 00131 define ("arcsin", GLUE_19); 00132 define ("arctan", GLUE_20); 00133 } 00134 }