 |
libdspl-2.0
Библиотека алгоритмов цифровой обработки сигналов
|
30 #ifdef DOXYGEN_ENGLISH
33 #ifdef DOXYGEN_RUSSIAN
36 int DSPL_API addlog(
char* str,
char* fn)
42 pFile = fopen(fn,
"a+");
46 fprintf(pFile,
"%s\n", str);
58 #ifdef DOXYGEN_ENGLISH
61 #ifdef DOXYGEN_RUSSIAN
64 void DSPL_API dspl_info()
66 printf(
"\n\n D S P L - 2.0\n");
67 printf(
" version 2.20.01.09\n");
68 printf(
"\n Copyright (C) 2015-2020\n");
69 printf(
" Sergey Bakhurin www.dsplib.org\n");
70 printf(
" ---------------------------------------------\n");
71 printf(
" BLAS and LAPACK ver.: 3.8.0 www.netlib.org\n");
76 #ifdef DOXYGEN_ENGLISH
79 #ifdef DOXYGEN_RUSSIAN
82 int DSPL_API readbin(
char* fn,
void** x,
int* k,
int* dtype)
92 pFile = fopen(fn,
"rb");
96 if(fread(&t,
sizeof(
int), 1, pFile) != 1)
105 if(fread(&n,
sizeof(
int), 1, pFile) != 1)
111 if(fread(&m,
sizeof(
int), 1, pFile) != 1)
122 (*x) = (*x) ? realloc(*x, n*m*
sizeof(
double)) :
123 malloc(n*m*sizeof(double));
124 if(fread(*x,
sizeof(
double), n*m, pFile) != n*m)
132 (*x) = (*x) ? realloc(*x, n*m*
sizeof(
complex_t)) :
134 if(fread(*x,
sizeof(
complex_t), n*m, pFile) != n*m)
152 #ifdef DOXYGEN_ENGLISH
235 #ifdef DOXYGEN_RUSSIAN
328 int DSPL_API
writebin(
void* x,
int n,
int dtype,
char* fn)
340 pFile = fopen(fn,
"wb");
345 if(fwrite(&dtype,
sizeof(
int), 1, pFile) != 1)
353 if(fwrite(&n,
sizeof(
int), 1, pFile) != 1)
360 if(fwrite(&k,
sizeof(
int), 1, pFile) != 1)
369 if(fwrite((
double*)x,
sizeof(
double), n, pFile) != n)
399 #ifdef DOXYGEN_ENGLISH
445 #ifdef DOXYGEN_RUSSIAN
491 int DSPL_API
writetxt(
double* x,
double* y,
int n,
char* fn)
502 pFile = fopen(fn,
"w+");
508 for(k = 0; k < n; k++)
510 if(isnan(x[k]) || isnan(y[k]))
515 if(isinf(x[k]) || isinf(y[k]))
520 fprintf(pFile,
"%+.12E\t%+.12E\n", x[k], y[k]);
525 for(k = 0; k < n; k++)
537 fprintf(pFile,
"%+.12E\n", x[k]);
547 #ifdef DOXYGEN_ENGLISH
550 #ifdef DOXYGEN_RUSSIAN
553 int DSPL_API writetxt_cmplx(
complex_t* x,
int n,
char* fn)
564 pFile = fopen(fn,
"w+");
568 for(k = 0; k < n; k++)
569 fprintf(pFile,
"%+.12E %+.12E\n",
RE(x[k]),
IM(x[k]));
578 #ifdef DOXYGEN_ENGLISH
620 #ifdef DOXYGEN_RUSSIAN
675 pFile = fopen(fn,
"w+");
680 for(k = 0; k < n; k++)
681 fprintf(pFile,
"% -14d\t% -14d\n", x[k], y[k]);
684 for(k = 0; k < n; k++)
685 fprintf(pFile,
"% -.14d\n", x[k]);
694 #ifdef DOXYGEN_ENGLISH
788 #ifdef DOXYGEN_RUSSIAN
893 pFile = fopen(fn,
"w+");
897 for(k = 0; k < ny; k++)
899 for(n = 0; n < nx; n++)
901 if(!isnan(z[n+k*nx]))
903 fprintf(pFile,
"%+.12E\t%+.12E\t%+.12E\n",
904 x[n], y[k], z[n+k*nx]);
908 fprintf(pFile,
"\n");
919 #ifdef DOXYGEN_ENGLISH
922 #ifdef DOXYGEN_RUSSIAN
925 int DSPL_API writetxt_3dline(
double* x,
double *y,
double* z,
int n,
char* fn)
937 pFile = fopen(fn,
"w+");
941 for(k = 0; k < n; k++)
942 fprintf(pFile,
"%+.12E\t%+.12E\t%+.12E\n", x[k], y[k], z[k]);
943 fprintf(pFile,
"\n");
950 #ifdef DOXYGEN_ENGLISH
953 #ifdef DOXYGEN_RUSSIAN
956 int DSPL_API writetxt_cmplx_re(
double* x,
complex_t *y,
int n,
char* fn)
968 pFile = fopen(fn,
"w+");
973 for(k = 0; k < n; k++)
974 fprintf(pFile,
"%+.12E\t%+.12E\n", x[k],
RE(y[k]));
976 for(k = 0; k < n; k++)
977 fprintf(pFile,
"%+.12E\n",
RE(y[k]));
984 #ifdef DOXYGEN_ENGLISH
987 #ifdef DOXYGEN_RUSSIAN
990 int DSPL_API writetxt_cmplx_im(
double* x,
complex_t *y,
int n,
char* fn)
1002 pFile = fopen(fn,
"w+");
1007 for(k = 0; k < n; k++)
1008 fprintf(pFile,
"%+.12E\t%+.12E\n", x[k],
IM(y[k]));
1010 for(k = 0; k < n; k++)
1011 fprintf(pFile,
"%+.12E\n",
IM(y[k]));
#define ERROR_FOPEN
Ошибка открытия файла. Файл с заданным именем не может быть открыт для записи и (или) чтения.
int writebin(void *x, int n, int dtype, char *fn)
Сохранить данные в бинарный файл
int writetxt_int(int *x, int *y, int n, char *fn)
Сохранить целочисленные данные в текстовый файл
#define RE(x)
Макрос определяющий реальную часть комплексного числа.
#define ERROR_PTR
Ошибка указателя. Данная ошибка означает, что один из обязательных указателей (память под который дол...
#define ERROR_SIZE
Ошибка при передаче размера массива. Данная ошибка возникает когда помимо указателя на массив входных...
#define ERROR_FNAME
Ошибка в имени файла. Необходимо задать корректное имя файла.
#define ERROR_FREAD_SIZE
Ошибка чтения блока данных из бинарного файла. Ошибка возникает, если при чтении блока данных из файл...
int writetxt_3d(double *x, int nx, double *y, int ny, double *z, char *fn)
Сохранить данные для построения 3D графика
int writetxt(double *x, double *y, int n, char *fn)
Сохранить вещественные данные в текстовый файл
double complex_t[2]
Описание комплексного типа данных.
#define RES_OK
Функция завершилась корректно. Ошибки отсутствуют.
#define ERROR_FWRITE_SIZE
Ошибка записи блока данных в бинарный файла. Ошибка возникает, если при записи блока данных в файл,...
#define ERROR_DAT_TYPE
Неверный тип данных. Данная ошибка возникает при сохранении данных в бинарный файл,...
#define IM(x)
Макрос определяющий мнимую часть комплексного числа.