@@ -16,6 +16,14 @@ CXXWARNFLAGS ?= -Wall -Wextra -Wpedantic
1616COPTFLAGS ?= -O2
1717CWARNFLAGS ?= -Wall -Wextra -Wpedantic
1818CPPFLAGS ?=
19+ BFFT_USE_DIT_RFFT ?= 0
20+ BFFT_USE_DIT_RFFT_INVERSE ?= 0
21+ ifeq ($(BFFT_USE_DIT_RFFT ) ,1)
22+ CPPFLAGS += -DBFFT_USE_DIT_RFFT=1
23+ endif
24+ ifeq ($(BFFT_USE_DIT_RFFT_INVERSE ) ,1)
25+ CPPFLAGS += -DBFFT_USE_DIT_RFFT_INVERSE=1
26+ endif
1927# BFFT_MAKE_DOCTOR_CXXFLAGS_GUARD_BEGIN
2028ifeq ($(filter undefined default,$(origin CXXFLAGS ) ) ,)
2129else
@@ -66,6 +74,7 @@ SHARED_LIB := $(BUILD_DIR)/lib$(LIB_NAME).so
6674PC_FILE := $(BUILD_DIR ) /$(LIB_NAME ) .pc
6775BENCH := $(BUILD_DIR ) /examples/benchmark
6876BODFT_BENCH := $(BUILD_DIR ) /examples/bodft_benchmark
77+ DIF_DIT_BENCH := $(BUILD_DIR ) /examples/dif_vs_dit_benchmark
6978APPLE_BENCH := $(BUILD_DIR ) /examples/apple_benchmark
7079ATAN2_BENCH := $(BUILD_DIR ) /examples/atan2_benchmark
7180LOCALITY_PROBE := $(BUILD_DIR ) /examples/locality_probe
@@ -96,10 +105,10 @@ all: $(STATIC_LIB) $(SHARED_LIB) examples
96105$(BUILD_DIR ) :
97106 mkdir -p $(BUILD_DIR ) /src $(BUILD_DIR ) /examples $(BUILD_DIR ) /tests $(BUILD_DIR ) /benchmarks
98107
99- $(OBJ ) : $(SRC ) include/bfft/bfft.h src/detail/bruun_kernel.hpp | $(BUILD_DIR )
108+ $(OBJ ) : $(SRC ) include/bfft/bfft.h src/detail/bruun_kernel.hpp src/detail/experimental_radix4_rfft_kernel.hpp src/detail/MAG_REPRESENT_KERNEL.hpp | $(BUILD_DIR )
100109 $(CXX ) $(LIB_CPPFLAGS ) $(LIB_CXXFLAGS ) -c $< -o $@
101110
102- $(BODFT_OBJ ) : $(BODFT_SRC ) include/bfft/bodft.h include/bfft/bfft.h src/detail/bodft_kernel.hpp src/detail/bruun_kernel.hpp | $(BUILD_DIR )
111+ $(BODFT_OBJ ) : $(BODFT_SRC ) include/bfft/bodft.h include/bfft/bfft.h src/detail/bodft_kernel.hpp src/detail/bruun_kernel.hpp src/detail/MAG_REPRESENT_KERNEL.hpp | $(BUILD_DIR )
103112 $(CXX ) $(LIB_CPPFLAGS ) $(LIB_CXXFLAGS ) -c $< -o $@
104113
105114$(STFT_OBJ ) : $(STFT_SRC ) include/bfft/stft.h include/bfft/bfft.h include/bfft/bodft.h | $(BUILD_DIR )
@@ -120,27 +129,30 @@ $(PC_FILE): pkgconfig/bfft.pc.in | $(BUILD_DIR)
120129
121130examples : $(BENCH ) $(BODFT_BENCH ) $(APPLE_EXAMPLES ) $(LOCALITY_PROBE ) $(C_DEMO ) $(CPP_DEMO )
122131
123- benchmarks : $(BENCH ) $(BODFT_BENCH ) $(ATAN2_BENCH )
132+ benchmarks : $(BENCH ) $(BODFT_BENCH ) $(DIF_DIT_BENCH ) $( ATAN2_BENCH )
124133
125134asm-check : $(ASM_OUTPUTS )
126135 @if [ -z " $( ASM_OUTPUTS) " ]; then echo " No x86 assembly variants supported by $( CXX) ." ; fi
127136
128- $(AVX2_ASM ) : $(SRC ) include/bfft/bfft.h src/detail/bruun_kernel.hpp | $(BUILD_DIR )
137+ $(AVX2_ASM ) : $(SRC ) include/bfft/bfft.h src/detail/bruun_kernel.hpp src/detail/experimental_radix4_rfft_kernel.hpp src/detail/MAG_REPRESENT_KERNEL.hpp | $(BUILD_DIR )
129138 $(CXX ) $(LIB_CPPFLAGS ) $(CXXFLAGS ) $(AVX2_FLAGS ) -S -fverbose-asm $< -o $@
130139
131- $(BODFT_AVX2_ASM ) : $(BODFT_SRC ) include/bfft/bodft.h include/bfft/bfft.h src/detail/bodft_kernel.hpp src/detail/bruun_kernel.hpp | $(BUILD_DIR )
140+ $(BODFT_AVX2_ASM ) : $(BODFT_SRC ) include/bfft/bodft.h include/bfft/bfft.h src/detail/bodft_kernel.hpp src/detail/bruun_kernel.hpp src/detail/MAG_REPRESENT_KERNEL.hpp | $(BUILD_DIR )
132141 $(CXX ) $(LIB_CPPFLAGS ) $(CXXFLAGS ) $(AVX2_FLAGS ) -S -fverbose-asm $< -o $@
133142
134- $(SSE2_ASM ) : $(SRC ) include/bfft/bfft.h src/detail/bruun_kernel.hpp | $(BUILD_DIR )
143+ $(SSE2_ASM ) : $(SRC ) include/bfft/bfft.h src/detail/bruun_kernel.hpp src/detail/experimental_radix4_rfft_kernel.hpp src/detail/MAG_REPRESENT_KERNEL.hpp | $(BUILD_DIR )
135144 $(CXX ) $(LIB_CPPFLAGS ) $(CXXFLAGS ) $(SSE2_FLAGS ) -S -fverbose-asm $< -o $@
136145
137146$(BENCH ) : examples/benchmark.cpp include/bfft/bfft.hpp $(STATIC_LIB ) | $(BUILD_DIR )
138147 $(CXX ) $(CPPFLAGS ) $(INCLUDES ) $(CXXFLAGS ) $(AUTO_SIMD_FLAGS ) $< $(STATIC_LIB ) $(LDLIBS ) $(DL_LIBS ) -o $@
139148
140- $(BODFT_BENCH ) : examples/bodft_benchmark.cpp src/detail/bodft_kernel.hpp src/detail/bruun_kernel.hpp | $(BUILD_DIR )
149+ $(BODFT_BENCH ) : examples/bodft_benchmark.cpp src/detail/bodft_kernel.hpp src/detail/bruun_kernel.hpp src/detail/MAG_REPRESENT_KERNEL.hpp | $(BUILD_DIR )
141150 $(CXX ) $(CPPFLAGS ) $(INCLUDES ) $(CXXFLAGS ) $(AUTO_SIMD_FLAGS ) $< $(LDLIBS ) -o $@
142151
143- $(ATAN2_BENCH ) : examples/atan2_benchmark.cpp src/detail/bruun_kernel.hpp | $(BUILD_DIR )
152+ $(DIF_DIT_BENCH ) : examples/dif_vs_dit_benchmark.cpp src/detail/experimental_radix4_rfft_kernel.hpp src/detail/bruun_kernel.hpp src/detail/MAG_REPRESENT_KERNEL.hpp include/bfft/bfft.hpp $(STATIC_LIB ) | $(BUILD_DIR )
153+ $(CXX ) $(CPPFLAGS ) $(INCLUDES ) $(CXXFLAGS ) $(AUTO_SIMD_FLAGS ) $< $(STATIC_LIB ) $(LDLIBS ) -o $@
154+
155+ $(ATAN2_BENCH ) : examples/atan2_benchmark.cpp src/detail/bruun_kernel.hpp src/detail/MAG_REPRESENT_KERNEL.hpp | $(BUILD_DIR )
144156 $(CXX ) $(CPPFLAGS ) $(INCLUDES ) $(CXXFLAGS ) $(AUTO_SIMD_FLAGS ) $< $(LDLIBS ) -o $@
145157
146158$(APPLE_BENCH ) : examples/apple_benchmark.cpp include/bfft/bfft.hpp $(STATIC_LIB ) | $(BUILD_DIR )
@@ -234,4 +246,3 @@ print-flags:
234246 @echo " AUTO_SIMD_FLAGS=$( AUTO_SIMD_FLAGS) "
235247 @echo " LIB_CXXFLAGS=$( LIB_CXXFLAGS) "
236248 @echo " LIB_CXXFLAGS origin is makefile-expanded"
237-
0 commit comments