Skip to content

Commit

Permalink
get rid od utils_precindep
Browse files Browse the repository at this point in the history
  • Loading branch information
mreineck committed Sep 25, 2024
1 parent 654da01 commit f83b7d6
Show file tree
Hide file tree
Showing 12 changed files with 42 additions and 61 deletions.
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down
1 change: 0 additions & 1 deletion include/finufft/test_defs.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@

// convenient private finufft internals (must come after finufft.h)
#include <finufft/utils.h>
#include <finufft/utils_precindep.h>
// prec-switching (via SINGLE) to set up FLT, CPX, BIGINT, FINUFFT1D1, etc...
#include <finufft/defs.h>

Expand Down
29 changes: 29 additions & 0 deletions include/finufft/utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 <chrono>

namespace finufft {
namespace utils {
Expand Down Expand Up @@ -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 <random>
namespace finufft {
namespace utils {
FINUFFT_EXPORT int FINUFFT_CDECL rand_r(unsigned int *seedp);
} // namespace utils
} // namespace finufft
#endif

#endif // UTILS_H
44 changes: 0 additions & 44 deletions include/finufft/utils_precindep.h

This file was deleted.

10 changes: 5 additions & 5 deletions makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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))
Expand Down
2 changes: 1 addition & 1 deletion perftest/manysmallprobs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 <complex>
Expand Down
1 change: 0 additions & 1 deletion perftest/spreadtestnd.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#include <finufft/defs.h>
#include <finufft/spreadinterp.h>
#include <finufft/utils.h>
#include <finufft/utils_precindep.h>

#include <math.h>
#include <stdio.h>
Expand Down
2 changes: 1 addition & 1 deletion perftest/spreadtestndall.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#include <finufft/defs.h>
#include <finufft/spreadinterp.h>
#include <finufft/utils_precindep.h>
#include <finufft/utils.h>

#include <cmath>
#include <cstdio>
Expand Down
1 change: 0 additions & 1 deletion src/finufft_core.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
#include <finufft/finufft_core.h>
#include <finufft/spreadinterp.h>
#include <finufft/utils.h>
#include <finufft/utils_precindep.h>

#include "../contrib/legendre_rule_fast.h"
#include <cmath>
Expand Down
1 change: 0 additions & 1 deletion src/spreadinterp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
#include <finufft/defs.h>
#include <finufft/spreadinterp.h>
#include <finufft/utils.h>
#include <finufft/utils_precindep.h>

#include "ker_horner_allw_loop_constexpr.h"
#include "ker_lowupsampfac_horner_allw_loop_constexpr.h"
Expand Down
2 changes: 1 addition & 1 deletion src/utils_precindep.cpp → src/utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

#include <cstdint>

#include "finufft/utils_precindep.h"
#include "finufft/utils.h"
using namespace std;

namespace finufft {
Expand Down
6 changes: 3 additions & 3 deletions test/testutils.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* unit tests for utils & utils_precindep modules.
/* unit tests for utils module.
Usage: ./testutils{f}
Expand All @@ -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...
Expand Down

0 comments on commit f83b7d6

Please sign in to comment.