To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.
The primary repository for this project is hosted at https://github.com/sonic-visualiser/sv-dependency-builds .
This repository is a read-only copy which is updated automatically every hour.
root / src / fftw-3.3.8 / dft / scalar / codelets / Makefile.am @ 167:bd3cc4d1df30
History | View | Annotate | Download (4.58 KB)
| 1 |
# This Makefile.am specifies a set of codelets, efficient transforms |
|---|---|
| 2 |
# of small sizes, that are used as building blocks (kernels) by FFTW |
| 3 |
# to build up large transforms, as well as the options for generating |
| 4 |
# and compiling them. |
| 5 |
|
| 6 |
# You can customize FFTW for special needs, e.g. to handle certain |
| 7 |
# sizes more efficiently, by adding new codelets to the lists of those |
| 8 |
# included by default. If you change the list of codelets, any new |
| 9 |
# ones you added will be automatically generated when you run the |
| 10 |
# bootstrap script (see "Generating your own code" in the FFTW |
| 11 |
# manual). |
| 12 |
|
| 13 |
########################################################################### |
| 14 |
AM_CPPFLAGS = -I $(top_srcdir) |
| 15 |
noinst_LTLIBRARIES = libdft_scalar_codelets.la |
| 16 |
|
| 17 |
########################################################################### |
| 18 |
# n1_<n> is a hard-coded FFT of size <n> (base cases of FFT recursion) |
| 19 |
N1 = n1_2.c n1_3.c n1_4.c n1_5.c n1_6.c n1_7.c n1_8.c n1_9.c n1_10.c \ |
| 20 |
n1_11.c n1_12.c n1_13.c n1_14.c n1_15.c n1_16.c n1_32.c n1_64.c \ |
| 21 |
n1_20.c n1_25.c # n1_30.c n1_40.c n1_50.c |
| 22 |
|
| 23 |
########################################################################### |
| 24 |
# t1_<r> is a "twiddle" FFT of size <r>, implementing a radix-r DIT step |
| 25 |
T1 = t1_2.c t1_3.c t1_4.c t1_5.c t1_6.c t1_7.c t1_8.c t1_9.c \ |
| 26 |
t1_10.c t1_12.c t1_15.c t1_16.c t1_32.c t1_64.c \ |
| 27 |
t1_20.c t1_25.c # t1_30.c t1_40.c t1_50.c |
| 28 |
|
| 29 |
# t2_<r> is also a twiddle FFT, but instead of using a complete lookup table |
| 30 |
# of trig. functions, it partially generates the trig. values on the fly |
| 31 |
# (this is faster for large sizes). |
| 32 |
T2 = t2_4.c t2_8.c t2_16.c t2_32.c t2_64.c \ |
| 33 |
t2_5.c t2_10.c t2_20.c t2_25.c |
| 34 |
|
| 35 |
########################################################################### |
| 36 |
# The F (DIF) codelets are used for a kind of in-place transform algorithm, |
| 37 |
# but the planner seems to never (or hardly ever) use them on the machines |
| 38 |
# we have access to, preferring the Q codelets and the use of buffers |
| 39 |
# for sub-transforms. So, we comment them out, at least for now. |
| 40 |
|
| 41 |
# f1_<r> is a "twiddle" FFT of size <r>, implementing a radix-r DIF step |
| 42 |
F1 = # f1_2.c f1_3.c f1_4.c f1_5.c f1_6.c f1_7.c f1_8.c f1_9.c f1_10.c f1_12.c f1_15.c f1_16.c f1_32.c f1_64.c |
| 43 |
|
| 44 |
# like f1, but partially generates its trig. table on the fly |
| 45 |
F2 = # f2_4.c f2_8.c f2_16.c f2_32.c f2_64.c |
| 46 |
|
| 47 |
########################################################################### |
| 48 |
# q1_<r> is <r> twiddle FFTs of size <r> (DIF step), where the output is |
| 49 |
# transposed. This is used for in-place transposes in sizes that are |
| 50 |
# divisible by <r>^2. These codelets have size ~ <r>^2, so you should |
| 51 |
# probably not use <r> bigger than 8 or so. |
| 52 |
Q1 = q1_2.c q1_4.c q1_8.c q1_3.c q1_5.c q1_6.c |
| 53 |
|
| 54 |
########################################################################### |
| 55 |
ALL_CODELETS = $(N1) $(T1) $(T2) $(F1) $(F2) $(Q1) |
| 56 |
BUILT_SOURCES= $(ALL_CODELETS) $(CODLIST) |
| 57 |
|
| 58 |
libdft_scalar_codelets_la_SOURCES = $(BUILT_SOURCES) |
| 59 |
|
| 60 |
SOLVTAB_NAME = X(solvtab_dft_standard) |
| 61 |
XRENAME=X |
| 62 |
|
| 63 |
# special rules for regenerating codelets. |
| 64 |
include $(top_srcdir)/support/Makefile.codelets |
| 65 |
|
| 66 |
if MAINTAINER_MODE |
| 67 |
FLAGS_N1=$(DFT_FLAGS_COMMON) |
| 68 |
FLAGS_T1=$(DFT_FLAGS_COMMON) |
| 69 |
FLAGS_T2=$(DFT_FLAGS_COMMON) -twiddle-log3 -precompute-twiddles |
| 70 |
FLAGS_F1=$(DFT_FLAGS_COMMON) |
| 71 |
FLAGS_F2=$(DFT_FLAGS_COMMON) -twiddle-log3 -precompute-twiddles |
| 72 |
FLAGS_Q1=$(DFT_FLAGS_COMMON) -reload-twiddle |
| 73 |
FLAGS_Q2=$(DFT_FLAGS_COMMON) -twiddle-log3 -precompute-twiddles |
| 74 |
|
| 75 |
n1_%.c: $(CODELET_DEPS) $(GEN_NOTW) |
| 76 |
($(PRELUDE_COMMANDS_DFT); $(TWOVERS) $(GEN_NOTW) $(FLAGS_N1) -n $* -name n1_$* -include "dft/scalar/n.h") | $(ADD_DATE) | $(INDENT) >$@ |
| 77 |
|
| 78 |
t1_%.c: $(CODELET_DEPS) $(GEN_TWIDDLE) |
| 79 |
($(PRELUDE_COMMANDS_DFT); $(TWOVERS) $(GEN_TWIDDLE) $(FLAGS_T1) -n $* -name t1_$* -include "dft/scalar/t.h") | $(ADD_DATE) | $(INDENT) >$@ |
| 80 |
|
| 81 |
t2_%.c: $(CODELET_DEPS) $(GEN_TWIDDLE) |
| 82 |
($(PRELUDE_COMMANDS_DFT); $(TWOVERS) $(GEN_TWIDDLE) $(FLAGS_T2) -n $* -name t2_$* -include "dft/scalar/t.h") | $(ADD_DATE) | $(INDENT) >$@ |
| 83 |
|
| 84 |
f1_%.c: $(CODELET_DEPS) $(GEN_TWIDDLE) |
| 85 |
($(PRELUDE_COMMANDS_DFT); $(TWOVERS) $(GEN_TWIDDLE) $(FLAGS_F1) -dif -n $* -name f1_$* -include "dft/scalar/f.h") | $(ADD_DATE) | $(INDENT) >$@ |
| 86 |
|
| 87 |
f2_%.c: $(CODELET_DEPS) $(GEN_TWIDDLE) |
| 88 |
($(PRELUDE_COMMANDS_DFT); $(TWOVERS) $(GEN_TWIDDLE) $(FLAGS_F2) -dif -n $* -name f2_$* -include "dft/scalar/f.h") | $(ADD_DATE) | $(INDENT) >$@ |
| 89 |
|
| 90 |
q1_%.c: $(CODELET_DEPS) $(GEN_TWIDSQ) |
| 91 |
($(PRELUDE_COMMANDS_DFT); $(TWOVERS) $(GEN_TWIDSQ) $(FLAGS_Q1) -dif -n $* -name q1_$* -include "dft/scalar/q.h") | $(ADD_DATE) | $(INDENT) >$@ |
| 92 |
|
| 93 |
q2_%.c: $(CODELET_DEPS) $(GEN_TWIDSQ) |
| 94 |
($(PRELUDE_COMMANDS_DFT); $(TWOVERS) $(GEN_TWIDSQ) $(FLAGS_Q2) -dif -n $* -name q2_$* -include "dft/scalar/q.h") | $(ADD_DATE) | $(INDENT) >$@ |
| 95 |
|
| 96 |
endif # MAINTAINER_MODE |