67 virtual void sample(
const double s,
const bool overflow =
false) {
92 return std::sqrt(sigma2 < 0 ? 0 : sigma2);
120 double mean(
const vec &v);
122 std::complex<double>
mean(
const cvec &v);
124 double mean(
const svec &v);
126 double mean(
const ivec &v);
128 double mean(
const mat &m);
130 std::complex<double>
mean(
const cmat &m);
132 double mean(
const smat &m);
134 double mean(
const imat &m);
157 return (
double)(invect[(invect.
length()-1)/2] + invect[invect.
length()/2]) / 2.0;
161 double norm(
const cvec &v);
168 for (
int i = 0; i < v.
size(); i++)
169 E +=
sqr(static_cast<double>(v[i]));
175 double norm(
const cvec &v,
int p);
182 for (
int i = 0; i < v.
size(); i++)
183 E +=
std::pow(fabs(static_cast<double>(v[i])),
static_cast<double>(p));
189 double norm(
const cvec &v,
const std::string &s);
195 it_assert(s ==
"fro",
"norm(): Unrecognised norm");
198 for (
int i = 0; i < v.
size(); i++)
199 E +=
sqr(static_cast<double>(v[i]));
212 double norm(
const mat &m,
int p = 2);
222 double norm(
const cmat &m,
int p = 2);
225 double norm(
const mat &m,
const std::string &s);
228 double norm(
const cmat &m,
const std::string &s);
239 const T *p = v.
_data();
240 double sum = 0.0, sq_sum = 0.0;
242 for (
int i = 0; i < len; i++, p++) {
247 return (
double)(sq_sum - sum*sum / len) / (len - 1);
261 return (fabs(x -xref) <= tol) ?
true :
false;
265 inline bool within_tolerance(std::complex<double> x, std::complex<double> xref,
double tol = 1e-14)
267 return (
abs(x -xref) <= tol) ?
true :
false;
273 return (
max(
abs(x -xref)) <= tol) ?
true :
false;
279 return (
max(
abs(x -xref)) <= tol) ?
true :
false;
285 return (
max(
max(
abs(X -Xref))) <= tol) ?
true :
false;
291 return (
max(
max(
abs(X -Xref))) <= tol) ?
true :
false;
305 double moment(
const vec &x,
const int r);
384 #endif // #ifndef MISC_STAT_H