/* * Copyright (c) 2003-2004, Mark Borgerding. All rights reserved. * This file is part of KISS FFT - https://github.com/mborgerding/kissfft * * SPDX-License-Identifier: BSD-3-Clause * See COPYING file for more information. */ #include #include #include #include #include #include "kiss_fft.h" #include "kiss_fftndr.h" static void fft_file(FILE * fin,FILE * fout,int nfft,int isinverse) { kiss_fft_cfg st; kiss_fft_cpx * buf; kiss_fft_cpx * bufout; buf = (kiss_fft_cpx*)malloc(sizeof(kiss_fft_cpx) * nfft ); bufout = (kiss_fft_cpx*)malloc(sizeof(kiss_fft_cpx) * nfft ); st = kiss_fft_alloc( nfft ,isinverse ,0,0); while (1) { size_t nread = fread(buf, sizeof(kiss_fft_cpx), nfft, fin); if (nread == (size_t)nfft) { kiss_fft( st , buf ,bufout); fwrite( bufout , sizeof(kiss_fft_cpx) , nfft , fout ); continue; } if (nread != 0) fprintf(stderr,"short read on complex input\n"); break; } free(st); free(buf); free(bufout); } static void fft_filend(FILE * fin,FILE * fout,int *dims,int ndims,int isinverse) { kiss_fftnd_cfg st; kiss_fft_cpx *buf; int dimprod=1,i; for (i=0;i