00001 00030 #ifndef ERROR_H 00031 #define ERROR_H 00032 00033 #ifndef _MSC_VER 00034 # include <itpp/config.h> 00035 #else 00036 # include <itpp/config_msvc.h> 00037 #endif 00038 00039 #include <itpp/base/help_functions.h> 00040 00041 00044 00045 #ifndef HAVE_ERF 00047 double erf(double x); 00048 #endif 00049 00050 #ifndef HAVE_ERFC 00052 double erfc(double x); 00053 #endif 00054 00056 00057 00058 namespace itpp 00059 { 00060 00063 00083 std::complex<double> erf(const std::complex<double>& z); 00084 00086 double erfinv(double x); 00087 00089 double Qfunc(double x); 00090 00091 00092 // ---------------------------------------------------------------------- 00093 // functions for matrices and vectors 00094 // ---------------------------------------------------------------------- 00095 00097 inline vec erf(const vec &x) 00098 { 00099 return apply_function<double>(::erf, x); 00100 } 00102 inline mat erf(const mat &x) 00103 { 00104 return apply_function<double>(::erf, x); 00105 } 00107 inline cvec erf(const cvec &x) 00108 { 00109 return apply_function<std::complex<double> >(erf, x); 00110 } 00112 inline cmat erf(const cmat &x) 00113 { 00114 return apply_function<std::complex<double> >(erf, x); 00115 } 00116 00118 inline vec erfinv(const vec &x) 00119 { 00120 return apply_function<double>(erfinv, x); 00121 } 00123 inline mat erfinv(const mat &x) 00124 { 00125 return apply_function<double>(erfinv, x); 00126 } 00127 00129 inline vec erfc(const vec &x) 00130 { 00131 return apply_function<double>(::erfc, x); 00132 } 00134 inline mat erfc(const mat &x) 00135 { 00136 return apply_function<double>(::erfc, x); 00137 } 00138 00140 inline vec Qfunc(const vec &x) 00141 { 00142 return apply_function<double>(Qfunc, x); 00143 } 00144 00146 inline mat Qfunc(const mat &x) 00147 { 00148 return apply_function<double>(Qfunc, x); 00149 } 00151 00152 } // namespace itpp 00153 00154 #endif // #ifndef ERROR_H 00155 00156 00157 00158
Generated on Fri May 1 11:09:16 2009 for IT++ by Doxygen 1.5.8