mirror of
https://github.com/mborgerding/kissfft.git
synced 2025-05-27 21:20:27 -04:00
removed unused and unmaintained mk_test.py
This commit is contained in:
parent
a7ea65edb1
commit
cbf1f0eed1
1
Makefile
1
Makefile
@ -22,6 +22,7 @@ doc:
|
|||||||
|
|
||||||
testall:
|
testall:
|
||||||
# The simd and int32_t types may or may not work on your machine
|
# The simd and int32_t types may or may not work on your machine
|
||||||
|
make -C test testcpp && test/testcpp
|
||||||
make -C test DATATYPE=simd CFLAGADD="$(CFLAGADD)" test
|
make -C test DATATYPE=simd CFLAGADD="$(CFLAGADD)" test
|
||||||
make -C test DATATYPE=int32_t CFLAGADD="$(CFLAGADD)" test
|
make -C test DATATYPE=int32_t CFLAGADD="$(CFLAGADD)" test
|
||||||
make -C test DATATYPE=int16_t CFLAGADD="$(CFLAGADD)" test
|
make -C test DATATYPE=int16_t CFLAGADD="$(CFLAGADD)" test
|
||||||
|
@ -93,16 +93,9 @@ test: all
|
|||||||
@echo "======higher dimensions type=$(DATATYPE))"
|
@echo "======higher dimensions type=$(DATATYPE))"
|
||||||
@./testkiss.py
|
@./testkiss.py
|
||||||
|
|
||||||
selftest.c:
|
CXXFLAGS=-O3 -ffast-math -fomit-frame-pointer -I.. -I../tools -W -Wall -march=native -mtune=native
|
||||||
./mk_test.py 10 12 14 > selftest.c
|
|
||||||
selftest_short.c:
|
|
||||||
./mk_test.py -s 10 12 14 > selftest_short.c
|
|
||||||
|
|
||||||
|
|
||||||
CXXFLAGS=-O3 -ffast-math -fomit-frame-pointer -I.. -I../tools -W -Wall
|
|
||||||
testcpp: testcpp.cc ../kissfft.hh
|
testcpp: testcpp.cc ../kissfft.hh
|
||||||
$(CXX) -o $@ $(CXXFLAGS) testcpp.cc -lm
|
$(CXX) -o $@ $(CXXFLAGS) testcpp.cc -lm
|
||||||
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *~ bm_* st_* tr_* kf_* tkfc_* ff_* ffr_* *.pyc *.pyo *.dat testcpp
|
rm -f *~ bm_* st_* tr_* kf_* tkfc_* ff_* ffr_* *.pyc *.pyo *.dat testcpp
|
||||||
|
122
test/mk_test.py
122
test/mk_test.py
@ -1,122 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
# Copyright (c) 2003-2010, 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.
|
|
||||||
|
|
||||||
import FFT
|
|
||||||
import sys
|
|
||||||
import random
|
|
||||||
import re
|
|
||||||
j=complex(0,1)
|
|
||||||
|
|
||||||
def randvec(n,iscomplex):
|
|
||||||
if iscomplex:
|
|
||||||
return [
|
|
||||||
int(random.uniform(-32768,32767) ) + j*int(random.uniform(-32768,32767) )
|
|
||||||
for i in range(n) ]
|
|
||||||
else:
|
|
||||||
return [ int(random.uniform(-32768,32767) ) for i in range(n) ]
|
|
||||||
|
|
||||||
def c_format(v,round=0):
|
|
||||||
if round:
|
|
||||||
return ','.join( [ '{%d,%d}' %(int(c.real),int(c.imag) ) for c in v ] )
|
|
||||||
else:
|
|
||||||
s= ','.join( [ '{%.60f ,%.60f }' %(c.real,c.imag) for c in v ] )
|
|
||||||
return re.sub(r'\.?0+ ',' ',s)
|
|
||||||
|
|
||||||
def test_cpx( n,inverse ,short):
|
|
||||||
v = randvec(n,1)
|
|
||||||
scale = 1
|
|
||||||
if short:
|
|
||||||
minsnr=30
|
|
||||||
else:
|
|
||||||
minsnr=100
|
|
||||||
|
|
||||||
if inverse:
|
|
||||||
tvecout = FFT.inverse_fft(v)
|
|
||||||
if short:
|
|
||||||
scale = 1
|
|
||||||
else:
|
|
||||||
scale = len(v)
|
|
||||||
else:
|
|
||||||
tvecout = FFT.fft(v)
|
|
||||||
if short:
|
|
||||||
scale = 1.0/len(v)
|
|
||||||
|
|
||||||
tvecout = [ c * scale for c in tvecout ]
|
|
||||||
|
|
||||||
|
|
||||||
s="""#define NFFT %d""" % len(v) + """
|
|
||||||
{
|
|
||||||
double snr;
|
|
||||||
kiss_fft_cpx test_vec_in[NFFT] = { """ + c_format(v) + """};
|
|
||||||
kiss_fft_cpx test_vec_out[NFFT] = {""" + c_format( tvecout ) + """};
|
|
||||||
kiss_fft_cpx testbuf[NFFT];
|
|
||||||
void * cfg = kiss_fft_alloc(NFFT,%d,0,0);""" % inverse + """
|
|
||||||
|
|
||||||
kiss_fft(cfg,test_vec_in,testbuf);
|
|
||||||
snr = snr_compare(test_vec_out,testbuf,NFFT);
|
|
||||||
printf("DATATYPE=" xstr(kiss_fft_scalar) ", FFT n=%d, inverse=%d, snr = %g dB\\n",NFFT,""" + str(inverse) + """,snr);
|
|
||||||
if (snr<""" + str(minsnr) + """)
|
|
||||||
exit_code++;
|
|
||||||
free(cfg);
|
|
||||||
}
|
|
||||||
#undef NFFT
|
|
||||||
"""
|
|
||||||
return s
|
|
||||||
|
|
||||||
def compare_func():
|
|
||||||
s="""
|
|
||||||
#define xstr(s) str(s)
|
|
||||||
#define str(s) #s
|
|
||||||
double snr_compare( kiss_fft_cpx * test_vec_out,kiss_fft_cpx * testbuf, int n)
|
|
||||||
{
|
|
||||||
int k;
|
|
||||||
double sigpow,noisepow,err,snr,scale=0;
|
|
||||||
kiss_fft_cpx err;
|
|
||||||
sigpow = noisepow = .000000000000000000000000000001;
|
|
||||||
|
|
||||||
for (k=0;k<n;++k) {
|
|
||||||
sigpow += test_vec_out[k].r * test_vec_out[k].r +
|
|
||||||
test_vec_out[k].i * test_vec_out[k].i;
|
|
||||||
C_SUB(err,test_vec_out[k],testbuf[k].r);
|
|
||||||
noisepow += err.r * err.r + err.i + err.i;
|
|
||||||
|
|
||||||
if (test_vec_out[k].r)
|
|
||||||
scale += testbuf[k].r / test_vec_out[k].r;
|
|
||||||
}
|
|
||||||
snr = 10*log10( sigpow / noisepow );
|
|
||||||
scale /= n;
|
|
||||||
if (snr<10)
|
|
||||||
printf( "\\npoor snr, try a scaling factor %f\\n" , scale );
|
|
||||||
return snr;
|
|
||||||
}
|
|
||||||
"""
|
|
||||||
return s
|
|
||||||
|
|
||||||
def main():
|
|
||||||
|
|
||||||
from getopt import getopt
|
|
||||||
opts,args = getopt(sys.argv[1:],'s')
|
|
||||||
opts = dict(opts)
|
|
||||||
short = int( opts.has_key('-s') )
|
|
||||||
|
|
||||||
fftsizes = args
|
|
||||||
if not fftsizes:
|
|
||||||
fftsizes = [ 1800 ]
|
|
||||||
print '#include "kiss_fft.h"'
|
|
||||||
print compare_func()
|
|
||||||
print "int main() { int exit_code=0;\n"
|
|
||||||
for n in fftsizes:
|
|
||||||
n = int(n)
|
|
||||||
print test_cpx(n,0,short)
|
|
||||||
print test_cpx(n,1,short)
|
|
||||||
print """
|
|
||||||
return exit_code;
|
|
||||||
}
|
|
||||||
"""
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
Loading…
Reference in New Issue
Block a user