From f83b7d6fc6f9a19cf28f5d95c611dd49724089e8 Mon Sep 17 00:00:00 2001 From: Martin Reinecke Date: Wed, 25 Sep 2024 19:46:57 +0200 Subject: [PATCH] get rid od utils_precindep --- CMakeLists.txt | 4 +-- include/finufft/test_defs.h | 1 - include/finufft/utils.h | 29 +++++++++++++++++ include/finufft/utils_precindep.h | 44 -------------------------- makefile | 10 +++--- perftest/manysmallprobs.cpp | 2 +- perftest/spreadtestnd.cpp | 1 - perftest/spreadtestndall.cpp | 2 +- src/finufft_core.cpp | 1 - src/spreadinterp.cpp | 1 - src/{utils_precindep.cpp => utils.cpp} | 2 +- test/testutils.cpp | 6 ++-- 12 files changed, 42 insertions(+), 61 deletions(-) delete mode 100644 include/finufft/utils_precindep.h rename src/{utils_precindep.cpp => utils.cpp} (98%) diff --git a/CMakeLists.txt b/CMakeLists.txt index b50486d0e..7e5e2cf5d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -254,7 +254,7 @@ if(FINUFFT_USE_CPU) add_library( finufft SHARED src/spreadinterp.cpp - src/utils_precindep.cpp + src/utils.cpp contrib/legendre_rule_fast.cpp src/fft.cpp src/finufft_core.cpp @@ -264,7 +264,7 @@ if(FINUFFT_USE_CPU) add_library( finufft STATIC src/spreadinterp.cpp - src/utils_precindep.cpp + src/utils.cpp contrib/legendre_rule_fast.cpp src/fft.cpp src/finufft_core.cpp diff --git a/include/finufft/test_defs.h b/include/finufft/test_defs.h index 387bef20d..bdd4cf147 100644 --- a/include/finufft/test_defs.h +++ b/include/finufft/test_defs.h @@ -17,7 +17,6 @@ // convenient private finufft internals (must come after finufft.h) #include -#include // prec-switching (via SINGLE) to set up FLT, CPX, BIGINT, FINUFFT1D1, etc... #include diff --git a/include/finufft/utils.h b/include/finufft/utils.h index 132fafb53..040f60543 100644 --- a/include/finufft/utils.h +++ b/include/finufft/utils.h @@ -5,6 +5,9 @@ #define UTILS_H #include "finufft/finufft_core.h" +// for CNTime... +// using chrono since the interface is portable between linux and windows +#include namespace finufft { namespace utils { @@ -85,7 +88,33 @@ FINUFFT_EXPORT void FINUFFT_CDECL arraywidcen(BIGINT n, T *a, T *w, T *c) } } +FINUFFT_EXPORT BIGINT FINUFFT_CDECL next235even(BIGINT n); + +// jfm's timer class +class FINUFFT_EXPORT CNTime { +public: + void start(); + double restart(); + double elapsedsec(); + +private: + double initial; +}; + +// openmp helpers +int get_num_threads_parallel_block(); + +} // namespace utils +} // namespace finufft + +// thread-safe rand number generator for Windows platform +#ifdef _WIN32 +#include +namespace finufft { +namespace utils { +FINUFFT_EXPORT int FINUFFT_CDECL rand_r(unsigned int *seedp); } // namespace utils } // namespace finufft +#endif #endif // UTILS_H diff --git a/include/finufft/utils_precindep.h b/include/finufft/utils_precindep.h deleted file mode 100644 index 41726eba8..000000000 --- a/include/finufft/utils_precindep.h +++ /dev/null @@ -1,44 +0,0 @@ -// Header for utils_precindep.cpp, a little library of array and timer stuff. -// Only the precision-independent routines here (get compiled once) - -#ifndef UTILS_PRECINDEP_H -#define UTILS_PRECINDEP_H - -#include "finufft/finufft_core.h" -// for CNTime... -// using chrono since the interface is portable between linux and windows -#include - -namespace finufft { -namespace utils { - -FINUFFT_EXPORT BIGINT FINUFFT_CDECL next235even(BIGINT n); - -// jfm's timer class -class FINUFFT_EXPORT CNTime { -public: - void start(); - double restart(); - double elapsedsec(); - -private: - double initial; -}; - -// openmp helpers -int get_num_threads_parallel_block(); - -} // namespace utils -} // namespace finufft - -// thread-safe rand number generator for Windows platform -#ifdef _WIN32 -#include -namespace finufft { -namespace utils { -FINUFFT_EXPORT int FINUFFT_CDECL rand_r(unsigned int *seedp); -} // namespace utils -} // namespace finufft -#endif - -#endif // UTILS_PRECINDEP_H diff --git a/makefile b/makefile index 1a7b8967e..7ad454198 100644 --- a/makefile +++ b/makefile @@ -134,7 +134,7 @@ STATICLIB = lib-static/$(LIBNAME).a ABSDYNLIB = $(FINUFFT)$(DYNLIB) # spreader dual-precision objs -SOBJSD = src/utils_precindep.o src/spreadinterp.o +SOBJSD = src/utils.o src/spreadinterp.o # precision-independent library object files (compiled & linked only once)... OBJS_PI = $(SOBJSD) contrib/legendre_rule_fast.o src/fft.o src/finufft_core.o src/simpleinterfaces.o fortran/finufftfort.o @@ -261,10 +261,10 @@ test/%: test/%.cpp $(DYNLIB) test/%f: test/%.cpp $(DYNLIB) $(CXX) $(CXXFLAGS) ${LDFLAGS} -DSINGLE $< $(ABSDYNLIB) $(LIBSFFT) -o $@ # low-level tests that are cleaner if depend on only specific objects... -test/testutils: test/testutils.cpp src/utils_precindep.o - $(CXX) $(CXXFLAGS) ${LDFLAGS} test/testutils.cpp src/utils_precindep.o $(LIBS) -o test/testutils -test/testutilsf: test/testutils.cpp src/utils_precindep.o - $(CXX) $(CXXFLAGS) ${LDFLAGS} -DSINGLE test/testutils.cpp src/utils_precindep.o $(LIBS) -o test/testutilsf +test/testutils: test/testutils.cpp src/utils.o + $(CXX) $(CXXFLAGS) ${LDFLAGS} test/testutils.cpp src/utils.o $(LIBS) -o test/testutils +test/testutilsf: test/testutils.cpp src/utils.o + $(CXX) $(CXXFLAGS) ${LDFLAGS} -DSINGLE test/testutils.cpp src/utils.o $(LIBS) -o test/testutilsf # make sure all double-prec test executables ready for testing TESTS := $(basename $(wildcard test/*.cpp)) diff --git a/perftest/manysmallprobs.cpp b/perftest/manysmallprobs.cpp index 8bc379f3c..5e27289d8 100644 --- a/perftest/manysmallprobs.cpp +++ b/perftest/manysmallprobs.cpp @@ -3,7 +3,7 @@ #include "finufft/defs.h" // private access to timer -#include "finufft/utils_precindep.h" +#include "finufft/utils.h" using namespace finufft::utils; #include diff --git a/perftest/spreadtestnd.cpp b/perftest/spreadtestnd.cpp index 9b560a25e..d30626007 100644 --- a/perftest/spreadtestnd.cpp +++ b/perftest/spreadtestnd.cpp @@ -1,7 +1,6 @@ #include #include #include -#include #include #include diff --git a/perftest/spreadtestndall.cpp b/perftest/spreadtestndall.cpp index 666003137..14aad3420 100644 --- a/perftest/spreadtestndall.cpp +++ b/perftest/spreadtestndall.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include #include #include diff --git a/src/finufft_core.cpp b/src/finufft_core.cpp index 70a52afa8..5d6fe3a11 100644 --- a/src/finufft_core.cpp +++ b/src/finufft_core.cpp @@ -2,7 +2,6 @@ #include #include #include -#include #include "../contrib/legendre_rule_fast.h" #include diff --git a/src/spreadinterp.cpp b/src/spreadinterp.cpp index 126bcd2d7..a7a9db467 100644 --- a/src/spreadinterp.cpp +++ b/src/spreadinterp.cpp @@ -3,7 +3,6 @@ #include #include #include -#include #include "ker_horner_allw_loop_constexpr.h" #include "ker_lowupsampfac_horner_allw_loop_constexpr.h" diff --git a/src/utils_precindep.cpp b/src/utils.cpp similarity index 98% rename from src/utils_precindep.cpp rename to src/utils.cpp index 37693d424..488792f78 100644 --- a/src/utils_precindep.cpp +++ b/src/utils.cpp @@ -5,7 +5,7 @@ #include -#include "finufft/utils_precindep.h" +#include "finufft/utils.h" using namespace std; namespace finufft { diff --git a/test/testutils.cpp b/test/testutils.cpp index 7b550ebff..6facb72cd 100644 --- a/test/testutils.cpp +++ b/test/testutils.cpp @@ -1,4 +1,4 @@ -/* unit tests for utils & utils_precindep modules. +/* unit tests for utils module. Usage: ./testutils{f} @@ -10,8 +10,8 @@ Suggested compile (double/float versions): g++ -std=c++14 -fopenmp testutils.cpp -I../include ../src/utils.o - ../src/utils_precindep.o -o testutils -lgomp g++ -std=c++14 -fopenmp testutils.cpp - -I../include ../src/utils_32.o ../src/utils_precindep.o -o testutilsf -lgomp -DSINGLE + ../src/utils.o -o testutils -lgomp g++ -std=c++14 -fopenmp testutils.cpp + -I../include ../src/utils.o -o testutilsf -lgomp -DSINGLE */ // This switches FLT macro from double to float if SINGLE is defined, etc...