mirror of
				https://github.com/mborgerding/kissfft.git
				synced 2025-10-31 00:04:39 -04:00 
			
		
		
		
	Woops, one should not test with input of all zeros
This commit is contained in:
		| @ -3,7 +3,6 @@ ifeq "$(NFFT)" "" | ||||
| 	NFFT=1024 | ||||
| endif | ||||
|  | ||||
| ALLUTILS=kfft kffts kfftd | ||||
|  | ||||
| ifeq "$(NUMFFTS)" "" | ||||
| 	NUMFFTS=10000 | ||||
| @ -13,50 +12,54 @@ UTILSRC=../kiss_fft.c fftutil.c | ||||
|  | ||||
| CFLAGS=-Wall -O3 -lm -I.. -ansi -pedantic | ||||
|  | ||||
| all: $(ALLUTILS) | ||||
| ifeq "$(DATATYPE)" "" | ||||
| 	DATATYPE=float | ||||
| endif | ||||
| UTIL=fftutil_$(DATATYPE) | ||||
|  | ||||
| kfft: $(UTILSRC) | ||||
| 	echo $(FUNCDECL) | ||||
| 	gcc -o $@ $(CFLAGS) $(UTILSRC) | ||||
| kffts: $(UTILSRC) | ||||
| 	gcc -o $@ $(CFLAGS) -DFIXED_POINT $(UTILSRC) | ||||
| kfftd: $(UTILSRC) | ||||
| 	gcc -o $@ $(CFLAGS) -Dkiss_fft_scalar=double $(UTILSRC) | ||||
|  | ||||
| time: all | ||||
| 	@echo  | ||||
| all: $(UTIL) | ||||
|  | ||||
| ifeq  "$(DATATYPE)" "short" | ||||
| 	TYPEFLAGS=-DFIXED_POINT -Dkiss_fft_scalar=short | ||||
| else	 | ||||
| 	TYPEFLAGS=-Dkiss_fft_scalar=$(DATATYPE) | ||||
| endif | ||||
|  | ||||
| $(UTIL): $(UTILSRC) | ||||
| 	gcc -o $@ $(CFLAGS) $(TYPEFLAGS) $(UTILSRC) | ||||
|  | ||||
| RANDDAT=rand_$(DATATYPE)_$(NUMFFTS)_$(NFFT).dat | ||||
| $(RANDDAT): | ||||
| 	./rand_fft_data.py -n $(NUMFFTS) -N $(NFFT) -t $(DATATYPE) > $(RANDDAT) | ||||
|  | ||||
| time: all $(RANDDAT) | ||||
| 	@echo | ||||
| 	@echo -n "#### timing $(NUMFFTS) x $(NFFT) point FFTs.  "; factor $(NFFT) | ||||
| 	@echo "#### DOUBLE" | ||||
| 	@time -f 'Elapsed:%E user:%U sys:%S' \ | ||||
| 	 sh -c 'dd if=/dev/zero bs=$$((16*$(NFFT))) count=$(NUMFFTS) 2>/dev/null |./kfftd>/dev/null' | ||||
| 	@echo "#### FLOAT" | ||||
| 	@time -f 'Elapsed:%E user:%U sys:%S' \ | ||||
| 	 sh -c 'dd if=/dev/zero bs=$$((8*$(NFFT))) count=$(NUMFFTS) 2>/dev/null |./kfft>/dev/null' | ||||
| 	@echo "#### SHORT" | ||||
| 	@time -f 'Elapsed:%E user:%U sys:%S' \ | ||||
| 	 sh -c 'dd if=/dev/zero bs=$$((4*$(NFFT))) count=$(NUMFFTS) 2>/dev/null |./kffts>/dev/null' | ||||
|  | ||||
| 	@if [ -x ~/fftw/st ] && [ $(DATATYPE) == "double" ]; then \ | ||||
| 		echo "#### FFTW FFT $(DATATYPE)"; \ | ||||
| 		time ~/fftw/st -n $(NFFT) < $(RANDDAT) > /dev/null;\ | ||||
| 	fi | ||||
| 	@echo "#### KISS FFT $(DATATYPE)" | ||||
| 	@time ./$(UTIL) -n $(NFFT) < $(RANDDAT) > /dev/null | ||||
| 	@rm $(RANDDAT) | ||||
|  | ||||
| POW2=256 512 1024 2048 | ||||
| POW3=243 729 2187 | ||||
| mtime: all | ||||
| 	@for n in $(POW2) ;do \ | ||||
| 	@for n in $(POW2) $(POW3) ;do \ | ||||
| 		export NFFT=$$n;make time; \ | ||||
| 		done | ||||
|  | ||||
| snr: all | ||||
| 	@which octave | ||||
| 	@echo | ||||
| 	@echo "### testing SNR for  $(NFFT) point FFTs" | ||||
| 	@echo "#### DOUBLE" | ||||
| 	@echo "testkiss($(NFFT),'double',1,1/$(NFFT));" | octave -q | ||||
| 	@echo "#### FLOAT" | ||||
| 	@echo "testkiss($(NFFT),'float',1,1/$(NFFT));" | octave -q | ||||
| 	@echo "#### SHORT" | ||||
| 	@echo "testkiss($(NFFT),'short',$(NFFT),$(NFFT));" | octave -q | ||||
| 	@echo "### testing SNR for $(NFFT) point FFTs" | ||||
| 	@echo "#### $(DATATYPE)" | ||||
| 	@echo "testkiss($(NFFT),'$(DATATYPE)',1,1/$(NFFT));" | octave -q | ||||
|  | ||||
| test: snr time  | ||||
|  | ||||
| clean: | ||||
| 	rm -f $(ALLUTILS) *.dat *~ | ||||
| 	rm -f *.dat *~ fftutil_* | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user