added _release folder

Changes to be committed:
	new file:   _release/.gitignore
	modified:   dspl/ide/codeblocks/dspl.layout
	modified:   dspl/ide/codeblocks/dspl.workspace
	modified:   dspl/ide/codeblocks/examples.cbp
	modified:   dspl/ide/codeblocks/examples.layout
	modified:   dspl/src/statistic.c
pull/6/merge
Dsplib 2020-10-02 16:17:28 +03:00
rodzic 6aa80e6c48
commit ac495581f5
6 zmienionych plików z 223 dodań i 39 usunięć

5
_release/.gitignore vendored 100644
Wyświetl plik

@ -0,0 +1,5 @@
*.dll
*.c
*.h

Wyświetl plik

@ -2,27 +2,32 @@
<CodeBlocks_layout_file>
<FileVersion major="1" minor="0" />
<ActiveTarget name="Debug" />
<File name="..\..\src\complex.c" open="1" top="0" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="..\..\src\cheby.c" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="1457" topLine="21" />
</Cursor>
</File>
<File name="..\..\..\include\dspl.h" open="1" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="78789" topLine="1404" />
</Cursor>
</File>
<File name="..\..\src\inout.c" open="1" top="0" tabpos="8" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="13583" topLine="503" />
</Cursor>
</File>
<File name="..\..\src\complex.c" open="1" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="808" topLine="5" />
</Cursor>
</File>
<File name="..\..\src\cheby.c" open="1" top="0" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="..\..\src\statistic.c" open="1" top="0" tabpos="9" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="854" topLine="21" />
<Cursor1 position="769" topLine="0" />
</Cursor>
</File>
<File name="..\..\..\include\dspl.h" open="1" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="0" />
</Cursor>
</File>
<File name="..\..\src\array.c" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="857" topLine="6" />
</Cursor>
</File>
<File name="..\..\src\dft.c" open="1" top="0" tabpos="4" split="0" active="1" splitpos="0" zoom_1="1" zoom_2="0">
<File name="..\..\src\dft.c" open="1" top="0" tabpos="5" split="0" active="1" splitpos="0" zoom_1="1" zoom_2="0">
<Cursor>
<Cursor1 position="204" topLine="0" />
</Cursor>
@ -37,4 +42,14 @@
<Collapse line="500" />
</Folding>
</File>
<File name="..\..\src\filter_iir.c" open="1" top="0" tabpos="7" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="16896" topLine="358" />
</Cursor>
</File>
<File name="..\..\src\array.c" open="1" top="1" tabpos="3" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="17981" topLine="549" />
</Cursor>
</File>
</CodeBlocks_layout_file>

Wyświetl plik

@ -15,9 +15,6 @@
</Project>
<Project filename="examples.cbp">
<Depends filename="dspl.cbp" />
<Depends filename="blas.cbp" />
<Depends filename="lapack_complex.cbp" />
<Depends filename="lapack_double.cbp" />
</Project>
</Workspace>
</CodeBlocks_workspace_file>

Wyświetl plik

@ -7,9 +7,9 @@
<Option compiler="gcc" />
<Build>
<Target title="Debug">
<Option output="../../../_release/test" prefix_auto="1" extension_auto="1" />
<Option working_dir="../../../_release/" />
<Option object_output="../test" />
<Option output="../test/bin/test" prefix_auto="1" extension_auto="1" />
<Option working_dir="../test/bin" />
<Option object_output="../test/obj" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
@ -17,9 +17,9 @@
</Compiler>
</Target>
<Target title="Release">
<Option output="../../../_release/test" prefix_auto="1" extension_auto="1" />
<Option working_dir="../../../_release/" />
<Option object_output="../test" />
<Option output="../test/bin/test" prefix_auto="1" extension_auto="1" />
<Option working_dir="../test/bin" />
<Option object_output="../test/obj" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
@ -35,11 +35,14 @@
<Add option="-DWIN_OS" />
<Add directory="../../../include" />
</Compiler>
<ExtraCommands>
<Add before="cp ../../../_release/libdspl.dll ../test/bin/libdspl.dll" />
</ExtraCommands>
<Unit filename="../../../include/dspl.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../../../include/dspl.h" />
<Unit filename="../test/test.c">
<Unit filename="../test/src/test.c">
<Option compilerVar="CC" />
</Unit>
<Extensions />

Wyświetl plik

@ -2,14 +2,14 @@
<CodeBlocks_layout_file>
<FileVersion major="1" minor="0" />
<ActiveTarget name="Release" />
<File name="..\..\..\include\dspl.c" open="1" top="0" tabpos="2" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="..\test\src\test.c" open="0" top="0" tabpos="0" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="0" topLine="0" />
<Cursor1 position="579" topLine="0" />
</Cursor>
</File>
<File name="..\test\test.c" open="1" top="1" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<File name="..\..\..\include\dspl.c" open="1" top="1" tabpos="1" split="0" active="1" splitpos="0" zoom_1="0" zoom_2="0">
<Cursor>
<Cursor1 position="182" topLine="0" />
<Cursor1 position="10692" topLine="154" />
</Cursor>
</File>
</CodeBlocks_layout_file>

Wyświetl plik

@ -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);