00001
00029 #ifndef ERROR_H
00030 #define ERROR_H
00031
00032 #include <itpp/base/itcompat.h>
00033 #include <itpp/base/help_functions.h>
00034
00035
00036 namespace itpp
00037 {
00038
00041
00061 std::complex<double> erf(const std::complex<double>& z);
00062
00064 double erfinv(double x);
00065
00067 double Qfunc(double x);
00068
00069
00070
00071
00072
00073
00075 inline vec erf(const vec &x)
00076 {
00077 return apply_function<double>(::erf, x);
00078 }
00080 inline mat erf(const mat &x)
00081 {
00082 return apply_function<double>(::erf, x);
00083 }
00085 inline cvec erf(const cvec &x)
00086 {
00087 return apply_function<std::complex<double> >(erf, x);
00088 }
00090 inline cmat erf(const cmat &x)
00091 {
00092 return apply_function<std::complex<double> >(erf, x);
00093 }
00094
00096 inline vec erfinv(const vec &x)
00097 {
00098 return apply_function<double>(erfinv, x);
00099 }
00101 inline mat erfinv(const mat &x)
00102 {
00103 return apply_function<double>(erfinv, x);
00104 }
00105
00107 inline vec erfc(const vec &x)
00108 {
00109 return apply_function<double>(::erfc, x);
00110 }
00112 inline mat erfc(const mat &x)
00113 {
00114 return apply_function<double>(::erfc, x);
00115 }
00116
00118 inline vec Qfunc(const vec &x)
00119 {
00120 return apply_function<double>(Qfunc, x);
00121 }
00122
00124 inline mat Qfunc(const mat &x)
00125 {
00126 return apply_function<double>(Qfunc, x);
00127 }
00129
00130 }
00131
00132 #endif // #ifndef ERROR_H
00133
00134
00135
00136