diff --git a/_release/.gitignore b/_release/.gitignore
new file mode 100644
index 0000000..fd05873
--- /dev/null
+++ b/_release/.gitignore
@@ -0,0 +1,5 @@
+*.dll
+*.c
+*.h
+
+
diff --git a/dspl/ide/codeblocks/dspl.layout b/dspl/ide/codeblocks/dspl.layout
index 09b4a2a..5cb64c4 100644
--- a/dspl/ide/codeblocks/dspl.layout
+++ b/dspl/ide/codeblocks/dspl.layout
@@ -2,27 +2,32 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
+
@@ -37,4 +42,14 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/dspl/ide/codeblocks/dspl.workspace b/dspl/ide/codeblocks/dspl.workspace
index a85ef94..2afcaed 100644
--- a/dspl/ide/codeblocks/dspl.workspace
+++ b/dspl/ide/codeblocks/dspl.workspace
@@ -15,9 +15,6 @@
-
-
-
diff --git a/dspl/ide/codeblocks/examples.cbp b/dspl/ide/codeblocks/examples.cbp
index 32d3d92..5a17c39 100644
--- a/dspl/ide/codeblocks/examples.cbp
+++ b/dspl/ide/codeblocks/examples.cbp
@@ -7,9 +7,9 @@
-
-
-
+
+
+
@@ -17,9 +17,9 @@
-
-
-
+
+
+
@@ -35,11 +35,14 @@
+
+
+
-
+
diff --git a/dspl/ide/codeblocks/examples.layout b/dspl/ide/codeblocks/examples.layout
index dec77b6..996d8f2 100644
--- a/dspl/ide/codeblocks/examples.layout
+++ b/dspl/ide/codeblocks/examples.layout
@@ -2,14 +2,14 @@
-
+
-
+
-
+
-
+
diff --git a/dspl/src/statistic.c b/dspl/src/statistic.c
index 7fca91e..5517bb8 100644
--- a/dspl/src/statistic.c
+++ b/dspl/src/statistic.c
@@ -238,7 +238,7 @@ exit_label:
Function calculates the mean value
\f[
-m = \sum_{i = 0}^{n-1} x(i)
+m = \frac{1}{n}\sum_{i = 0}^{n-1} x(i)
\f]
\param[in] x
@@ -275,7 +275,7 @@ As result the variable `m` will keep value `2`.
Функция рассчитывает оценку математического ожидания
\f[
-m = \sum_{i = 0}^{n-1} x(i)
+m = \frac{1}{n} \sum_{i = 0}^{n-1} x(i)
\f]
\param[in] x
@@ -327,6 +327,7 @@ int DSPL_API mean(double* x, int n, double* m)
+
#ifdef DOXYGEN_ENGLISH
/*! ****************************************************************************
\ingroup SPEC_MATH_STAT_GROUP
@@ -335,7 +336,7 @@ int DSPL_API mean(double* x, int n, double* m)
Function calculates the mean value
\f[
-m = \sum_{i = 0}^{n-1} x(i)
+m = \frac{1}{n}\sum_{i = 0}^{n-1} x(i)
\f]
\param[in] x
@@ -372,7 +373,7 @@ As result the variable `m` will keep value `1 + 3j`.
Функция рассчитывает оценку математического ожидания
\f[
-m = \sum_{i = 0}^{n-1} x(i)
+m = \frac{1}{n} \sum_{i = 0}^{n-1} x(i)
\f]
\param[in] x
@@ -429,6 +430,9 @@ int DSPL_API mean_cmplx(complex_t* x, int n, complex_t* m)
+
+
+
#ifdef DOXYGEN_ENGLISH
#endif
@@ -462,11 +466,92 @@ int DSPL_API minmax(double* x, int n, double* xmin, double* xmax)
}
+
+
+
+
#ifdef DOXYGEN_ENGLISH
+/*! ****************************************************************************
+\ingroup SPEC_MATH_STAT_GROUP
+\fn int std(double* x, int n, double* s)
+\brief Calculates the standard deviation of the input vector `x`
-#endif
+Function calculates the the standard deviation value
+\f[
+s = \sqrt{\frac{1}{n-1} \sum_{i = 0}^{n-1} \big(x(i) - \mu \big)^2},
+\f]
+here \f$\mu\f$ - mean value of the vector `x`:
+\f[
+\mu = \frac{1}{n} \sum_{i = 0}^{n-1} x(i).
+\f]
+
+\param[in] x
+Pointer to the real input vector `x`. \n
+Vector size is `[n x 1]`. \n \n
+
+\param[in] n
+Size of input vector `x`. \n \n
+
+\param[out] s
+Pointer to the variable which keeps vector `x` standard deviation value.\n
+Memory must be allocated. \n \n
+
+`RES_OK` if function calculates successfully,
+ else \ref ERROR_CODE_GROUP "code error".
+
+Example:
+\code{.cpp}
+ double a[5] = {0.0, 1.0, 2.0, 3.0, 4.0};
+ double s;
+ std(a, 5, &s);
+ printf("\n\n Standard deviation value: %8.1f\n", s);
+\endcode
+As result the variable `s` will keep value `1.5811`.
+
+\author Sergey Bakhurin www.dsplib.org
+***************************************************************************** */#endif
#ifdef DOXYGEN_RUSSIAN
+/*! ****************************************************************************
+\ingroup SPEC_MATH_STAT_GROUP
+\fn int std(double* x, int n, double* s)
+\brief Выборочная оценка стандартного отклонения вещественного вектора `x`
+Функция рассчитывает оценку стандартного отклонения
+\f[
+s = \sqrt{\frac{1}{n-1} \sum_{i = 0}^{n-1} \big(x(i) - \mu \big)^2},
+\f]
+где \f$\mu\f$ - выборочная оценка математического ожидания вектора `x`:
+\f[
+\mu = \frac{1}{n} \sum_{i = 0}^{n-1} x(i).
+\f]
+
+\param[in] x
+Указатель на вещественный вектор `x`. \n
+Размер вектора `[n x 1]`. \n \n
+
+\param[in] n
+Размер входного вектора `x`. \n \n
+
+\param[out] s
+Указатель на адрес памяти, в который сохранить
+рассчитанное значение стандартного отклонения вектора `x`. \n
+Память должна быть выделена. \n \n
+
+\return
+`RES_OK` если функция выполнена успешно. \n
+ В противном случае \ref ERROR_CODE_GROUP "код ошибки".
+
+Пример:
+\code{.cpp}
+ double a[5] = {0.0, 1.0, 2.0, 3.0, 4.0};
+ double s;
+ std(a, 5, &s);
+ printf("\n\n Standard deviation value: %8.1f\n", s);
+\endcode
+В результате в переменную `s` будет записано значение `1.5811`.
+
+\author Бахурин Сергей. www.dsplib.org
+***************************************************************************** */
#endif
int DSPL_API std(double* x, int n, double* s)
{
@@ -487,11 +572,92 @@ exit_label:
+
+
#ifdef DOXYGEN_ENGLISH
+/*! ****************************************************************************
+\ingroup SPEC_MATH_STAT_GROUP
+\fn int std_cmplx(complex_t* x, int n, double* s)
+\brief Calculates the standard deviation of the complex input vector `x`
-#endif
+Function calculates the the standard deviation value
+\f[
+s = \sqrt{\frac{1}{n-1} \sum_{i = 0}^{n-1} \big|x(i) - \mu \big|^2},
+\f]
+here \f$\mu\f$ - mean value of the vector `x`:
+\f[
+\mu = \frac{1}{n} \sum_{i = 0}^{n-1} x(i).
+\f]
+
+\param[in] x
+Pointer to the complex input vector `x`. \n
+Vector size is `[n x 1]`. \n \n
+
+\param[in] n
+Size of input vector `x`. \n \n
+
+\param[out] s
+Pointer to the variable which keeps vector `x` standard deviation value.\n
+Memory must be allocated. \n \n
+
+`RES_OK` if function calculates successfully,
+ else \ref ERROR_CODE_GROUP "code error".
+
+Example:
+\code{.cpp}
+ complex_t a[3] = {{0.0, -1.0}, {1.0, 2.0}, {3.0, 5.0}};
+ double s;
+ std_cmplx(a, 3, &s);
+ printf("\n\n Standard deviation value: %8.1f\n", s);
+\endcode
+As result the variable `s` will keep value `3.3665`.
+
+\author Sergey Bakhurin www.dsplib.org
+***************************************************************************** */#endif
#ifdef DOXYGEN_RUSSIAN
+/*! ****************************************************************************
+\ingroup SPEC_MATH_STAT_GROUP
+\fn int std_cmplx(complex_t* x, int n, double* s)
+\brief Выборочная оценка стандартного отклонения комплексного вектора `x`
+Функция рассчитывает оценку стандартного отклонения
+\f[
+s = \sqrt{\frac{1}{n-1} \sum_{i = 0}^{n-1} \big|x(i) - \mu \big|^2},
+\f]
+где \f$\mu\f$ - выборочная оценка математического ожидания вектора `x`:
+\f[
+\mu = \frac{1}{n} \sum_{i = 0}^{n-1} x(i).
+\f]
+\note Для комплексного вектора данных, величина стандартного отклонения
+всегда вещественная и неотрицательная.
+
+\param[in] x
+Указатель на комплексный вектор `x`. \n
+Размер вектора `[n x 1]`. \n \n
+
+\param[in] n
+Размер входного вектора `x`. \n \n
+
+\param[out] s
+Указатель на адрес памяти, в который сохранить
+рассчитанное значение стандартного отклонения вектора `x`. \n
+Память должна быть выделена. \n \n
+
+\return
+`RES_OK` если функция выполнена успешно. \n
+ В противном случае \ref ERROR_CODE_GROUP "код ошибки".
+
+Пример:
+\code{.cpp}
+ complex_t a[3] = {{0.0, -1.0}, {1.0, 2.0}, {3.0, 5.0}};
+ double s;
+ std_cmplx(a, 3, &s);
+ printf("\n\n Standard deviation value: %8.1f\n", s);
+\endcode
+В результате в переменную `s` будет записано значение `3.3665`.
+
+\author Бахурин Сергей. www.dsplib.org
+***************************************************************************** */
#endif
int DSPL_API std_cmplx(complex_t* x, int n, double* s)
{
@@ -501,11 +667,9 @@ int DSPL_API std_cmplx(complex_t* x, int n, double* s)
err = mean_cmplx(x, n, &m);
if(err != RES_OK)
goto exit_label;
-
- RE(tmp) = RE(x[0]) - RE(m);
- IM(tmp) = IM(x[0]) - IM(m);
- sum = ABSSQR(tmp);
- for(k = 1; k < n; k++)
+
+ sum = 0.0;
+ for(k = 0; k < n; k++)
{
RE(tmp) = RE(x[k]) - RE(m);
IM(tmp) = IM(x[k]) - IM(m);