Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members

operators.h

00001 #ifndef _OPERATORS_H_
00002 #define _OPERATORS_H_
00003 
00004 // Copyright (C) 1999 Jean-Marc Valin
00005 
00006 #include "DoubleDispatch.h"
00007 #include "misc.h"
00008 
00009 namespace FD {
00010 
00011 DEFINE_DOUBLE_VTABLE(addVtable);
00012 
00013 inline ObjectRef operator+(ObjectRef x, ObjectRef y)
00014 {
00015    return addVtable::perform(x,y);
00016 }
00017 
00018 DEFINE_DOUBLE_VTABLE(subVtable);
00019 
00020 inline ObjectRef operator-(ObjectRef x, ObjectRef y)
00021 {
00022    return subVtable::perform(x,y);
00023 }
00024 
00025 DEFINE_DOUBLE_VTABLE(mulVtable);
00026 
00027 inline ObjectRef operator*(ObjectRef x, ObjectRef y)
00028 {
00029    return mulVtable::perform(x,y);
00030 }
00031 
00032 DEFINE_DOUBLE_VTABLE(divVtable);
00033 
00034 inline ObjectRef operator/(ObjectRef x, ObjectRef y)
00035 {
00036    return divVtable::perform(x,y);
00037 }
00038 
00039 DEFINE_DOUBLE_VTABLE(smallerVtable);
00040 
00041 inline ObjectRef operator<(ObjectRef x, ObjectRef y)
00042 {
00043   return smallerVtable::perform(x,y);
00044 }
00045 
00046 inline ObjectRef operator>(ObjectRef x, ObjectRef y)
00047 {
00048   return smallerVtable::perform(y,x);
00049 }
00050 
00051 
00052 DEFINE_DOUBLE_VTABLE(equalVtable);
00053 
00054 inline ObjectRef operator==(ObjectRef x, ObjectRef y)
00055 {
00056    return equalVtable::perform(x,y);
00057 }
00058 
00059 
00060 DEFINE_DOUBLE_VTABLE(maxVtable);
00061 inline ObjectRef max(ObjectRef x, ObjectRef y)
00062 {
00063    return maxVtable::perform(x,y);
00064 }
00065 
00066 
00067 DEFINE_DOUBLE_VTABLE(minVtable);
00068 inline ObjectRef min(ObjectRef x, ObjectRef y)
00069 {
00070    return minVtable::perform(x,y);
00071 }
00072 
00073 
00074 DEFINE_DOUBLE_VTABLE(concatVtable);
00075 inline ObjectRef concat(ObjectRef x, ObjectRef y)
00076 {
00077    return concatVtable::perform(x,y);
00078 }
00079 
00080 #define REGISTER_ALL_SCALAR_VTABLE(table, function)  \
00081 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Int,Int,0)     \
00082 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Float,Float,1)       \
00083 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Double,Double,2) \
00084 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Int,Float,3) \
00085 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Float,Float,4) \
00086 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Double,Double,5) \
00087 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Int,Double,6) \
00088 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Float,Double,7) \
00089 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Double,Double,8) \
00090 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Complex<float>,Complex<float>,9) \
00091 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Complex<double>,Complex<double>,10) \
00092 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Int,Complex<float>,11) \
00093 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<double>,Int,Complex<double>,12) \
00094 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Complex<float>,Complex<float>,13) \
00095 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Complex<double>,Complex<double>,14) \
00096 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Float,Complex<float>,15) \
00097 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<double>,Float,Complex<double>,16) \
00098 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Complex<float>,Complex<double>,17) \
00099 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Complex<double>,Complex<double>,18) \
00100 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Double,Complex<double>,19) \
00101 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Complex<float>,Complex<float>,20) \
00102 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Complex<double>,Complex<double>,21) \
00103 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<double>,Complex<float>,Complex<double>,22) \
00104 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<double>,Complex<double>,Complex<double>,23)
00105 
00106 #define REGISTER_ALL_SCALAR_NO_COMPLEX_VTABLE(table, function)  \
00107 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Int,Int,0)     \
00108 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Float,Float,1)       \
00109 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Double,Double,2) \
00110 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Int,Float,3) \
00111 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Float,Float,4) \
00112 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Double,Double,5) \
00113 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Int,Double,6) \
00114 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Float,Double,7) \
00115 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Double,Double,8) 
00116 
00117 #define REGISTER_ALL_SCALAR_TO_VECTOR_VTABLE(table, function)  \
00118 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Int,Vector<int>,0) \
00119 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Float,Vector<float>,1) \
00120 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Double,Vector<double>,2) \
00121 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Int,Vector<float>,3) \
00122 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Float,Vector<float>,4) \
00123 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Double,Vector<double>,5) \
00124 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Int,Vector<double>,6) \
00125 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Float,Vector<double>,7) \
00126 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Double,Vector<double>,8) \
00127 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Complex<float>,Vector<std::complex<float> >,9) \
00128 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Complex<double>,Vector<std::complex<double> >,10) \
00129 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Int,Vector<std::complex<float> >,11) \
00130 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<double>,Int,Vector<std::complex<double> >,12) \
00131 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Complex<float>,Vector<std::complex<float> >,13) \
00132 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Complex<double>,Vector<std::complex<double> >,14) \
00133 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Float,Vector<std::complex<float> >,15) \
00134 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<double>,Float,Vector<std::complex<double> >,16) \
00135 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Complex<float>,Vector<std::complex<double> >,17) \
00136 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Complex<double>,Vector<std::complex<double> >,18) \
00137 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Double,Vector<std::complex<double> >,19) \
00138 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Complex<float>,Vector<std::complex<float> >,20) \
00139 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Complex<double>,Vector<std::complex<double> >,21) \
00140 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<double>,Complex<float>,Vector<std::complex<double> >,22) \
00141 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<double>,Complex<double>,Vector<std::complex<double> >,23)
00142 
00143 
00144 #define REGISTER_ALL_VECTOR_VTABLE(table,function) \
00145 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<int>,Vector<int>,Vector<int>,0) \
00146 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<int>,Vector<float>,Vector<float>,1) \
00147 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<int>,Vector<double>,Vector<double>,2) \
00148 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<int>,Vector<std::complex<float> >,Vector<std::complex<float> >,3) \
00149 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<int>,Vector<std::complex<double> >,Vector<std::complex<double> >,4) \
00150 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<float>,Vector<int>,Vector<float>,5) \
00151 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<float>,Vector<float>,Vector<float>,6) \
00152 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<float>,Vector<double>,Vector<double>,7) \
00153 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<float>,Vector<std::complex<float> >,Vector<std::complex<float> >,8) \
00154 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<float>,Vector<std::complex<double> >,Vector<std::complex<double> >,9) \
00155 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<double>,Vector<int>,Vector<double>,10) \
00156 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<double>,Vector<float>,Vector<double>,11) \
00157 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<double>,Vector<double>,Vector<double>,12) \
00158 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<double>,Vector<std::complex<float> >,Vector<std::complex<double> >,13) \
00159 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<double>,Vector<std::complex<double> >,Vector<std::complex<double> >,14) \
00160 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<float> >,Vector<int>,Vector<std::complex<float> >,15) \
00161 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<float> >,Vector<float>,Vector<std::complex<float> >,16) \
00162 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<float> >,Vector<double>,Vector<std::complex<double> >,17) \
00163 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<double> >,Vector<int>,Vector<std::complex<double> >,18) \
00164 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<double> >,Vector<float>,Vector<std::complex<double> >,19) \
00165 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<double> >,Vector<double>,Vector<std::complex<double> >,20) \
00166 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<float> >,Vector<std::complex<float> >,Vector<std::complex<float> >,21) \
00167 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<float> >,Vector<std::complex<double> >,Vector<std::complex<double> >,22) \
00168 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<double> >,Vector<std::complex<float> >,Vector<std::complex<double> >,23) \
00169 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<double> >,Vector<std::complex<double> >,Vector<std::complex<double> >,24)
00170 
00171 
00172 #define REGISTER_ALL_VECTOR_NO_COMPLEX_VTABLE(table,function) \
00173 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<int>,Vector<int>,Vector<int>,0) \
00174 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<int>,Vector<float>,Vector<float>,1) \
00175 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<int>,Vector<double>,Vector<double>,2) \
00176 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<float>,Vector<int>,Vector<float>,3) \
00177 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<float>,Vector<float>,Vector<float>,4) \
00178 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<float>,Vector<double>,Vector<double>,5) \
00179 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<double>,Vector<int>,Vector<double>,6) \
00180 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<double>,Vector<float>,Vector<double>,7) \
00181 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<double>,Vector<double>,Vector<double>,8)
00182 
00183 
00184 #define REGISTER_ALL_SCALAR_VECTOR_VTABLE(table,function) \
00185 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Vector<int>,Vector<int>,0) \
00186 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Vector<float>,Vector<float>,1) \
00187 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Vector<double>,Vector<double>,2) \
00188 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Vector<std::complex<float> >,Vector<std::complex<float> >,3) \
00189 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Vector<std::complex<double> >,Vector<std::complex<double> >,4) \
00190 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Vector<int>,Vector<float>,5) \
00191 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Vector<float>,Vector<float>,6) \
00192 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Vector<double>,Vector<double>,7) \
00193 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Vector<std::complex<float> >,Vector<std::complex<float> >,8) \
00194 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Vector<std::complex<double> >,Vector<std::complex<double> >,9) \
00195 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Vector<int>,Vector<double>,10) \
00196 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Vector<float>,Vector<double>,11) \
00197 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Vector<double>,Vector<double>,12) \
00198 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Vector<std::complex<float> >,Vector<std::complex<double> >,13) \
00199 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Vector<std::complex<double> >,Vector<std::complex<double> >,14) \
00200 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Vector<int>,Vector<std::complex<float> >,15) \
00201 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Vector<float>,Vector<std::complex<float> >,16) \
00202 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Vector<double>,Vector<std::complex<double> >,17) \
00203 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Vector<std::complex<float> >,Vector<std::complex<float> >,18) \
00204 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Vector<std::complex<double> >,Vector<std::complex<double> >,19) \
00205 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<double>,Vector<int>,Vector<std::complex<double> >,20) \
00206 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<double>,Vector<float>,Vector<std::complex<double> >,21) \
00207 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<double>,Vector<double>,Vector<std::complex<double> >,22) \
00208 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<double>,Vector<std::complex<float> >,Vector<std::complex<double> >,23) \
00209 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<double>,Vector<std::complex<double> >,Vector<std::complex<double> >,24) 
00210 
00211 
00212 #define REGISTER_ALL_VECTOR_SCALAR_VTABLE(table,function) \
00213 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<int>,Int,Vector<int>,0) \
00214 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<float>,Int,Vector<float>,1) \
00215 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<double>,Int,Vector<double>,2) \
00216 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<float> >,Int,Vector<std::complex<float> >,3) \
00217 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<double> >,Int,Vector<std::complex<double> >,4) \
00218 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<int>,Float,Vector<float>,5) \
00219 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<float>,Float,Vector<float>,6) \
00220 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<double>,Float,Vector<double>,7) \
00221 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<float> >,Float,Vector<std::complex<float> >,8) \
00222 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<double> >,Float,Vector<std::complex<double> >,9) \
00223 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<int>,Double,Vector<double>,10) \
00224 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<float>,Double,Vector<double>,11) \
00225 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<double>,Double,Vector<double>,12) \
00226 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<float> >,Double,Vector<std::complex<double> >,13) \
00227 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<double> >,Double,Vector<std::complex<double> >,14) \
00228 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<int>,Complex<float>,Vector<std::complex<float> >,15) \
00229 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<float>,Complex<float>,Vector<std::complex<float> >,16) \
00230 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<double>,Complex<float>,Vector<std::complex<double> >,17) \
00231 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<float> >,Complex<float>,Vector<std::complex<float> >,18) \
00232 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<double> >,Complex<float>,Vector<std::complex<double> >,19) \
00233 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<int>,Complex<double>,Vector<std::complex<double> >,20) \
00234 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<float>,Complex<double>,Vector<std::complex<double> >,21) \
00235 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<double>,Complex<double>,Vector<std::complex<double> >,22) \
00236 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<float> >,Complex<double>,Vector<std::complex<double> >,23) \
00237 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Vector<std::complex<double> >,Complex<double>,Vector<std::complex<double> >,24) 
00238 
00239 
00240 #define REGISTER_ALL_MATRIX_VTABLE(table,function) \
00241 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<int>,Matrix<int>,Matrix<int>,0) \
00242 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<int>,Matrix<float>,Matrix<float>,1) \
00243 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<int>,Matrix<double>,Matrix<double>,2) \
00244 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<int>,Matrix<std::complex<float> >,Matrix<std::complex<float> >,3) \
00245 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<int>,Matrix<std::complex<double> >,Matrix<std::complex<double> >,4) \
00246 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<float>,Matrix<int>,Matrix<float>,5) \
00247 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<float>,Matrix<float>,Matrix<float>,6) \
00248 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<float>,Matrix<double>,Matrix<double>,7) \
00249 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<float>,Matrix<std::complex<float> >,Matrix<std::complex<float> >,8) \
00250 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<float>,Matrix<std::complex<double> >,Matrix<std::complex<double> >,9) \
00251 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<double>,Matrix<int>,Matrix<double>,10) \
00252 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<double>,Matrix<float>,Matrix<double>,11) \
00253 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<double>,Matrix<double>,Matrix<double>,12) \
00254 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<double>,Matrix<std::complex<float> >,Matrix<std::complex<double> >,13) \
00255 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<double>,Matrix<std::complex<double> >,Matrix<std::complex<double> >,14) \
00256 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<float> >,Matrix<int>,Matrix<std::complex<float> >,15) \
00257 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<float> >,Matrix<float>,Matrix<std::complex<float> >,16) \
00258 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<float> >,Matrix<double>,Matrix<std::complex<double> >,17) \
00259 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<double> >,Matrix<int>,Matrix<std::complex<double> >,18) \
00260 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<double> >,Matrix<float>,Matrix<std::complex<double> >,19) \
00261 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<double> >,Matrix<double>,Matrix<std::complex<double> >,20) \
00262 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<float> >,Matrix<std::complex<float> >,Matrix<std::complex<float> >,21) \
00263 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<float> >,Matrix<std::complex<double> >,Matrix<std::complex<double> >,22) \
00264 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<double> >,Matrix<std::complex<float> >,Matrix<std::complex<double> >,23) \
00265 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<double> >,Matrix<std::complex<double> >,Matrix<std::complex<double> >,24)
00266 
00267 
00268 #define REGISTER_ALL_MATRIX_NO_COMPLEX_VTABLE(table,function) \
00269 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<int>,Matrix<int>,Matrix<int>,0) \
00270 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<int>,Matrix<float>,Matrix<float>,1) \
00271 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<int>,Matrix<double>,Matrix<double>,2) \
00272 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<float>,Matrix<int>,Matrix<float>,3) \
00273 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<float>,Matrix<float>,Matrix<float>,4) \
00274 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<float>,Matrix<double>,Matrix<double>,5) \
00275 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<double>,Matrix<int>,Matrix<double>,6) \
00276 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<double>,Matrix<float>,Matrix<double>,7) \
00277 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<double>,Matrix<double>,Matrix<double>,8)
00278 
00279 #define REGISTER_ALL_SCALAR_MATRIX_VTABLE(table,function) \
00280 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Matrix<int>,Matrix<int>,0) \
00281 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Matrix<float>,Matrix<float>,1) \
00282 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Matrix<double>,Matrix<double>,2) \
00283 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Matrix<std::complex<float> >,Matrix<std::complex<float> >,3) \
00284 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Int,Matrix<std::complex<double> >,Matrix<std::complex<double> >,4) \
00285 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Matrix<int>,Matrix<float>,5) \
00286 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Matrix<float>,Matrix<float>,6) \
00287 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Matrix<double>,Matrix<double>,7) \
00288 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Matrix<std::complex<float> >,Matrix<std::complex<float> >,8) \
00289 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Float,Matrix<std::complex<double> >,Matrix<std::complex<double> >,9) \
00290 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Matrix<int>,Matrix<double>,10) \
00291 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Matrix<float>,Matrix<double>,11) \
00292 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Matrix<double>,Matrix<double>,12) \
00293 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Matrix<std::complex<float> >,Matrix<std::complex<double> >,13) \
00294 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Double,Matrix<std::complex<double> >,Matrix<std::complex<double> >,14) \
00295 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Matrix<int>,Matrix<std::complex<float> >,15) \
00296 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Matrix<float>,Matrix<std::complex<float> >,16) \
00297 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Matrix<double>,Matrix<std::complex<double> >,17) \
00298 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Matrix<std::complex<float> >,Matrix<std::complex<float> >,18) \
00299 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<float>,Matrix<std::complex<double> >,Matrix<std::complex<double> >,19) \
00300 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<double>,Matrix<int>,Matrix<std::complex<double> >,20) \
00301 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<double>,Matrix<float>,Matrix<std::complex<double> >,21) \
00302 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<double>,Matrix<double>,Matrix<std::complex<double> >,22) \
00303 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<double>,Matrix<std::complex<float> >,Matrix<std::complex<double> >,23) \
00304 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Complex<double>,Matrix<std::complex<double> >,Matrix<std::complex<double> >,24) 
00305 
00306 
00307 #define REGISTER_ALL_MATRIX_SCALAR_VTABLE(table,function) \
00308 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<int>,Int,Matrix<int>,0) \
00309 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<float>,Int,Matrix<float>,1) \
00310 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<double>,Int,Matrix<double>,2) \
00311 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<float> >,Int,Matrix<std::complex<float> >,3) \
00312 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<double> >,Int,Matrix<std::complex<double> >,4) \
00313 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<int>,Float,Matrix<float>,5) \
00314 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<float>,Float,Matrix<float>,6) \
00315 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<double>,Float,Matrix<double>,7) \
00316 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<float> >,Float,Matrix<std::complex<float> >,8) \
00317 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<double> >,Float,Matrix<std::complex<double> >,9) \
00318 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<int>,Double,Matrix<double>,10) \
00319 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<float>,Double,Matrix<double>,11) \
00320 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<double>,Double,Matrix<double>,12) \
00321 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<float> >,Double,Matrix<std::complex<double> >,13) \
00322 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<double> >,Double,Matrix<std::complex<double> >,14) \
00323 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<int>,Complex<float>,Matrix<std::complex<float> >,15) \
00324 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<float>,Complex<float>,Matrix<std::complex<float> >,16) \
00325 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<double>,Complex<float>,Matrix<std::complex<double> >,17) \
00326 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<float> >,Complex<float>,Matrix<std::complex<float> >,18) \
00327 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<double> >,Complex<float>,Matrix<std::complex<double> >,19) \
00328 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<int>,Complex<double>,Matrix<std::complex<double> >,20) \
00329 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<float>,Complex<double>,Matrix<std::complex<double> >,21) \
00330 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<double>,Complex<double>,Matrix<std::complex<double> >,22) \
00331 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<float> >,Complex<double>,Matrix<std::complex<double> >,23) \
00332 REGISTER_DOUBLE_VTABLE_TEMPLATE(table,function,Matrix<std::complex<double> >,Complex<double>,Matrix<std::complex<double> >,24) 
00333 
00334 }//namespace FD
00335 
00336 #endif

Generated on Wed Oct 5 14:28:56 2005 for FlowDesigner by  doxygen 1.4.4