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 00062 00082 std::complex<double> erf(const std::complex<double>& z); 00083 00085 double erfinv(double x); 00086 00088 double Qfunc(double x); 00089 00090 00091 // ---------------------------------------------------------------------- 00092 // functions for matrices and vectors 00093 // ---------------------------------------------------------------------- 00094 00096 inline vec erf(const vec &x) 00097 { 00098 return apply_function<double>(::erf, x); 00099 } 00101 inline mat erf(const mat &x) 00102 { 00103 return apply_function<double>(::erf, x); 00104 } 00106 inline cvec erf(const cvec &x) 00107 { 00108 return apply_function<std::complex<double> >(erf, x); 00109 } 00111 inline cmat erf(const cmat &x) 00112 { 00113 return apply_function<std::complex<double> >(erf, x); 00114 } 00115 00117 inline vec erfinv(const vec &x) 00118 { 00119 return apply_function<double>(erfinv, x); 00120 } 00122 inline mat erfinv(const mat &x) 00123 { 00124 return apply_function<double>(erfinv, x); 00125 } 00126 00128 inline vec erfc(const vec &x) 00129 { 00130 return apply_function<double>(::erfc, x); 00131 } 00133 inline mat erfc(const mat &x) 00134 { 00135 return apply_function<double>(::erfc, x); 00136 } 00137 00139 inline vec Qfunc(const vec &x) 00140 { 00141 return apply_function<double>(Qfunc, x); 00142 } 00143 00145 inline mat Qfunc(const mat &x) 00146 { 00147 return apply_function<double>(Qfunc, x); 00148 } 00150 00151 } // namespace itpp 00152 00153 #endif // #ifndef ERROR_H 00154 00155 00156 00157
Generated on Sun Dec 9 17:31:00 2007 for IT++ by Doxygen 1.5.4