Skip to content

Commit c9c7131

Browse files
committed
Merge remote-tracking branch 'flatiron/master' into cleanup-symbols
2 parents a6e2f38 + b344ba2 commit c9c7131

File tree

9 files changed

+417
-330
lines changed

9 files changed

+417
-330
lines changed

include/finufft/fft.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,11 @@ template<> struct Finufft_FFT_plan<float> {
9292
nullptr, 1, int(nf), -sign, unsigned(options));
9393
unlock();
9494
}
95-
void execute [[maybe_unused]] (std::complex<float> *data) {
95+
void execute [[maybe_unused]] (std::complex<float> *data) const {
9696
fftwf_execute_dft(plan_, reinterpret_cast<fftwf_complex *>(data),
9797
reinterpret_cast<fftwf_complex *>(data));
9898
}
99-
void execute_adjoint [[maybe_unused]] (std::complex<float> *data) {
99+
void execute_adjoint [[maybe_unused]] (std::complex<float> *data) const {
100100
fftwf_execute_dft(plan_adj_, reinterpret_cast<fftwf_complex *>(data),
101101
reinterpret_cast<fftwf_complex *>(data));
102102
}
@@ -168,11 +168,11 @@ template<> struct Finufft_FFT_plan<double> {
168168
nullptr, 1, int(nf), -sign, unsigned(options));
169169
unlock();
170170
}
171-
void execute [[maybe_unused]] (std::complex<double> *data) {
171+
void execute [[maybe_unused]] (std::complex<double> *data) const {
172172
fftw_execute_dft(plan_, reinterpret_cast<fftw_complex *>(data),
173173
reinterpret_cast<fftw_complex *>(data));
174174
}
175-
void execute_adjoint [[maybe_unused]] (std::complex<double> *data) {
175+
void execute_adjoint [[maybe_unused]] (std::complex<double> *data) const {
176176
fftw_execute_dft(plan_adj_, reinterpret_cast<fftw_complex *>(data),
177177
reinterpret_cast<fftw_complex *>(data));
178178
}

include/finufft/finufft_core.h

Lines changed: 49 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -64,29 +64,37 @@ template<typename T> struct type3params {
6464

6565
template<typename TF> struct FINUFFT_PLAN_T { // the main plan class, fully C++
6666

67+
private:
6768
using TC = std::complex<TF>;
6869

69-
// These default and delete specifications just state the obvious,
70+
int spreadinterpSortedBatch(int batchSize, std::complex<TF> *fwBatch,
71+
std::complex<TF> *cBatch, bool adjoint) const;
72+
int deconvolveBatch(int batchSize, std::complex<TF> *fkBatch, std::complex<TF> *fwBatch,
73+
bool adjoint) const;
74+
75+
// These delete specifications just state the obvious,
7076
// but are here to silence compiler warnings.
71-
FINUFFT_PLAN_T(int type, int dim, const BIGINT *n_modes, int iflag, int ntrans, TF tol,
72-
finufft_opts *opts, int &ier);
7377
// Copy construction and assignent are already deleted implicitly
7478
// because of the unique_ptr member.
7579
FINUFFT_PLAN_T(const FINUFFT_PLAN_T &) = delete;
7680
FINUFFT_PLAN_T &operator=(const FINUFFT_PLAN_T &) = delete;
77-
~FINUFFT_PLAN_T();
7881

79-
int type; // transform type (Rokhlin naming): 1,2 or 3
80-
int dim; // overall dimension: 1,2 or 3
81-
int ntrans; // how many transforms to do at once (vector or "many" mode)
82-
BIGINT nj; // num of NU pts in type 1,2 (for type 3, num input x pts)
83-
BIGINT nk; // number of NU freq pts (type 3 only)
84-
TF tol; // relative user tolerance
85-
int batchSize; // # strength vectors to group together for FFTW, etc
86-
int nbatch; // how many batches done to cover all ntrans vectors
82+
public:
83+
int type; // transform type (Rokhlin naming): 1,2 or 3
84+
int dim; // overall dimension: 1,2 or 3
85+
86+
private:
87+
int ntrans; // how many transforms to do at once (vector or "many" mode)
88+
BIGINT nj; // num of NU pts in type 1,2 (for type 3, num input x pts)
89+
BIGINT nk; // number of NU freq pts (type 3 only)
90+
TF tol; // relative user tolerance
91+
int batchSize; // # strength vectors to group together for FFTW, etc
92+
int nbatch; // how many batches done to cover all ntrans vectors
8793

94+
public:
8895
std::array<BIGINT, 3> mstu; // number of modes in x,y,z directions
8996
// (historical CMCL names are N1, N2, N3)
97+
9098
// func for total # modes (prod of above three)...
9199
BIGINT N() const { return mstu[0] * mstu[1] * mstu[2]; }
92100

@@ -96,18 +104,20 @@ template<typename TF> struct FINUFFT_PLAN_T { // the main plan class, fully C++
96104

97105
int fftSign; // sign in exponential for NUFFT defn, guaranteed to be +-1
98106

107+
private:
99108
std::array<std::vector<TF>, 3> phiHat; // FT of kernel in t1,2, on x,y,z-axis mode grid
100109

101110
std::vector<BIGINT> sortIndices; // precomputed NU pt permutation, speeds spread/interp
102111
bool didSort; // whether binsorting used (false: identity perm used)
103112

104113
// for t1,2: ptr to user-supplied NU pts (no new allocs).
105114
// for t3: will become ptr to internally allocated "primed" (scaled) Xp, Yp, Zp vecs
106-
std::array<TF *, 3> XYZ = {nullptr, nullptr, nullptr};
115+
std::array<const TF *, 3> XYZ = {nullptr, nullptr, nullptr};
107116

108117
// type 3 specific
109-
std::array<TF *, 3> STU = {nullptr, nullptr, nullptr}; // ptrs to user's target NU-point
110-
// arrays (no new allocs)
118+
std::array<const TF *, 3> STU = {nullptr, nullptr, nullptr}; // ptrs to user's target
119+
// NU-point arrays (no new
120+
// allocs)
111121
std::vector<TC> prephase; // pre-phase, for all input NU pts
112122
std::vector<TC> deconv; // reciprocal of kernel FT, phase, all output NU pts
113123
std::array<std::vector<TF>, 3> XYZp; // internal primed NU points (x'_j, etc)
@@ -118,20 +128,41 @@ template<typename TF> struct FINUFFT_PLAN_T { // the main plan class, fully C++
118128

119129
// other internal structs
120130
std::unique_ptr<Finufft_FFT_plan<TF>> fftPlan;
131+
132+
public:
133+
const Finufft_FFT_plan<TF> &getFFTPlan() const { return *fftPlan; }
134+
121135
finufft_opts opts; // this and spopts could be made ptrs
136+
137+
private:
122138
finufft_spread_opts spopts;
123139

124-
// Remaining actions (not create/delete) in guru interface are now methods...
125-
int setpts(BIGINT nj, TF *xj, TF *yj, TF *zj, BIGINT nk, TF *s, TF *t, TF *u);
126140
int execute_internal(TC *cj, TC *fk, bool adjoint = false, int ntrans_actual = -1,
127141
TC *aligned_scratch = nullptr, size_t scratch_size = 0) const;
142+
143+
public:
144+
FINUFFT_PLAN_T(int type, int dim, const BIGINT *n_modes, int iflag, int ntrans, TF tol,
145+
const finufft_opts *opts, int &ier);
146+
~FINUFFT_PLAN_T();
147+
148+
// Remaining actions (not create/delete) in guru interface are now methods...
149+
int setpts(BIGINT nj, const TF *xj, const TF *yj, const TF *zj, BIGINT nk, const TF *s,
150+
const TF *t, const TF *u);
151+
128152
int execute(TC *cj, TC *fk) const { return execute_internal(cj, fk, false); }
129153
int execute_adjoint(TC *cj, TC *fk) const { return execute_internal(cj, fk, true); }
154+
155+
// accessors for reading the internal state of the plan
156+
BIGINT Nj() const { return nj; }
157+
BIGINT Nk() const { return nk; }
158+
TF Tol() const { return tol; }
159+
int Ntrans() const { return ntrans; }
160+
const std::array<const TF *, 3> &getSTU() const { return STU; }
130161
};
131162

132163
void finufft_default_opts_t(finufft_opts *o);
133164
template<typename TF>
134165
int finufft_makeplan_t(int type, int dim, const BIGINT *n_modes, int iflag, int ntrans,
135-
TF tol, FINUFFT_PLAN_T<TF> **pp, finufft_opts *opts);
166+
TF tol, FINUFFT_PLAN_T<TF> **pp, const finufft_opts *opts);
136167

137168
#endif // FINUFFT_CORE_H

include/finufft/spreadinterp.h

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,23 +30,27 @@ enum {
3030
namespace finufft {
3131
namespace spreadinterp {
3232

33+
// things external (spreadinterp) interface needs...
3334
template<typename T>
3435
FINUFFT_EXPORT_TEST int spreadinterp(UBIGINT N1, UBIGINT N2, UBIGINT N3, T *data_uniform,
35-
UBIGINT M, T *kx, T *ky, T *kz, T *data_nonuniform,
36-
const finufft_spread_opts &opts);
36+
UBIGINT M, const T *kx, const T *ky, const T *kz,
37+
T *data_nonuniform, const finufft_spread_opts &opts);
3738
template<typename T>
3839
FINUFFT_EXPORT_TEST int setup_spreader(finufft_spread_opts &opts, T eps, double upsampfac,
3940
int kerevalmeth, int debug, int showwarn, int dim,
4041
int spreadinterponly);
42+
4143
int spreadcheck(UBIGINT N1, UBIGINT N2, UBIGINT N3, const finufft_spread_opts &opts);
4244
template<typename T>
4345
int indexSort(std::vector<BIGINT> &sort_indices, UBIGINT N1, UBIGINT N2, UBIGINT N3,
44-
UBIGINT N, T *kx, T *ky, T *kz, const finufft_spread_opts &opts);
46+
UBIGINT N, const T *kx, const T *ky, const T *kz,
47+
const finufft_spread_opts &opts);
4548
template<typename T>
4649
int spreadinterpSorted(const std::vector<BIGINT> &sort_indices, const UBIGINT N1,
4750
const UBIGINT N2, const UBIGINT N3, T *data_uniform,
48-
const UBIGINT M, T *FINUFFT_RESTRICT kx, T *FINUFFT_RESTRICT ky,
49-
T *FINUFFT_RESTRICT kz, T *FINUFFT_RESTRICT data_nonuniform,
51+
const UBIGINT M, const T *FINUFFT_RESTRICT kx,
52+
const T *FINUFFT_RESTRICT ky, const T *FINUFFT_RESTRICT kz,
53+
T *FINUFFT_RESTRICT data_nonuniform,
5054
const finufft_spread_opts &opts, int did_sort, bool adjoint);
5155
template<typename T> T evaluate_kernel(T x, const finufft_spread_opts &opts);
5256
template<typename T> T evaluate_kernel_horner(T x, const finufft_spread_opts &opts);

include/finufft_eitherprec.h

Lines changed: 62 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,11 @@ typedef struct FINUFFT_PLAN_S *FINUFFT_PLAN;
5555
FINUFFT_EXPORT void FINUFFT_CDECL FINUFFTIFY(_default_opts)(finufft_opts *o);
5656
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(_makeplan)(
5757
int type, int dim, const FINUFFT_BIGINT *n_modes, int iflag, int n_transf,
58-
FINUFFT_FLT tol, FINUFFT_PLAN *plan, finufft_opts *o);
58+
FINUFFT_FLT tol, FINUFFT_PLAN *plan, const finufft_opts *o);
5959
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(_setpts)(
60-
FINUFFT_PLAN plan, FINUFFT_BIGINT M, FINUFFT_FLT *xj, FINUFFT_FLT *yj,
61-
FINUFFT_FLT *zj, FINUFFT_BIGINT N, FINUFFT_FLT *s, FINUFFT_FLT *t, FINUFFT_FLT *u);
60+
FINUFFT_PLAN plan, FINUFFT_BIGINT M, const FINUFFT_FLT *xj, const FINUFFT_FLT *yj,
61+
const FINUFFT_FLT *zj, FINUFFT_BIGINT N, const FINUFFT_FLT *s, const FINUFFT_FLT *t,
62+
const FINUFFT_FLT *u);
6263
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(_execute)(
6364
FINUFFT_PLAN plan, FINUFFT_CPX *weights, FINUFFT_CPX *result);
6465
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(_execute_adjoint)(
@@ -69,76 +70,85 @@ FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(_destroy)(FINUFFT_PLAN plan);
6970
// (sources in c_interface.cpp)
7071

7172
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(1d1)(
72-
FINUFFT_BIGINT nj, FINUFFT_FLT *xj, FINUFFT_CPX *cj, int iflag, FINUFFT_FLT eps,
73-
FINUFFT_BIGINT ms, FINUFFT_CPX *fk, finufft_opts *opts);
73+
FINUFFT_BIGINT nj, const FINUFFT_FLT *xj, const FINUFFT_CPX *cj, int iflag,
74+
FINUFFT_FLT eps, FINUFFT_BIGINT ms, FINUFFT_CPX *fk, const finufft_opts *opts);
7475
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(1d1many)(
75-
int ntransf, FINUFFT_BIGINT nj, FINUFFT_FLT *xj, FINUFFT_CPX *cj, int iflag,
76-
FINUFFT_FLT eps, FINUFFT_BIGINT ms, FINUFFT_CPX *fk, finufft_opts *opts);
76+
int ntransf, FINUFFT_BIGINT nj, const FINUFFT_FLT *xj, const FINUFFT_CPX *cj,
77+
int iflag, FINUFFT_FLT eps, FINUFFT_BIGINT ms, FINUFFT_CPX *fk,
78+
const finufft_opts *opts);
7779

7880
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(1d2)(
79-
FINUFFT_BIGINT nj, FINUFFT_FLT *xj, FINUFFT_CPX *cj, int iflag, FINUFFT_FLT eps,
80-
FINUFFT_BIGINT ms, FINUFFT_CPX *fk, finufft_opts *opts);
81+
FINUFFT_BIGINT nj, const FINUFFT_FLT *xj, FINUFFT_CPX *cj, int iflag, FINUFFT_FLT eps,
82+
FINUFFT_BIGINT ms, const FINUFFT_CPX *fk, const finufft_opts *opts);
8183
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(1d2many)(
82-
int ntransf, FINUFFT_BIGINT nj, FINUFFT_FLT *xj, FINUFFT_CPX *cj, int iflag,
83-
FINUFFT_FLT eps, FINUFFT_BIGINT ms, FINUFFT_CPX *fk, finufft_opts *opts);
84+
int ntransf, FINUFFT_BIGINT nj, const FINUFFT_FLT *xj, FINUFFT_CPX *cj, int iflag,
85+
FINUFFT_FLT eps, FINUFFT_BIGINT ms, const FINUFFT_CPX *fk, const finufft_opts *opts);
8486
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(1d3)(
85-
FINUFFT_BIGINT nj, FINUFFT_FLT *x, FINUFFT_CPX *c, int iflag, FINUFFT_FLT eps,
86-
FINUFFT_BIGINT nk, FINUFFT_FLT *s, FINUFFT_CPX *f, finufft_opts *opts);
87+
FINUFFT_BIGINT nj, const FINUFFT_FLT *x, const FINUFFT_CPX *c, int iflag,
88+
FINUFFT_FLT eps, FINUFFT_BIGINT nk, const FINUFFT_FLT *s, FINUFFT_CPX *f,
89+
const finufft_opts *opts);
8790
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(1d3many)(
88-
int ntransf, FINUFFT_BIGINT nj, FINUFFT_FLT *x, FINUFFT_CPX *c, int iflag,
89-
FINUFFT_FLT eps, FINUFFT_BIGINT nk, FINUFFT_FLT *s, FINUFFT_CPX *f,
90-
finufft_opts *opts);
91+
int ntransf, FINUFFT_BIGINT nj, const FINUFFT_FLT *x, const FINUFFT_CPX *c, int iflag,
92+
FINUFFT_FLT eps, FINUFFT_BIGINT nk, const FINUFFT_FLT *s, FINUFFT_CPX *f,
93+
const finufft_opts *opts);
9194
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(2d1)(
92-
FINUFFT_BIGINT nj, FINUFFT_FLT *xj, FINUFFT_FLT *yj, FINUFFT_CPX *cj, int iflag,
93-
FINUFFT_FLT eps, FINUFFT_BIGINT ms, FINUFFT_BIGINT mt, FINUFFT_CPX *fk,
94-
finufft_opts *opts);
95+
FINUFFT_BIGINT nj, const FINUFFT_FLT *xj, const FINUFFT_FLT *yj,
96+
const FINUFFT_CPX *cj, int iflag, FINUFFT_FLT eps, FINUFFT_BIGINT ms,
97+
FINUFFT_BIGINT mt, FINUFFT_CPX *fk, const finufft_opts *opts);
9598
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(2d1many)(
96-
int ndata, FINUFFT_BIGINT nj, FINUFFT_FLT *xj, FINUFFT_FLT *yj, FINUFFT_CPX *c,
97-
int iflag, FINUFFT_FLT eps, FINUFFT_BIGINT ms, FINUFFT_BIGINT mt, FINUFFT_CPX *fk,
98-
finufft_opts *opts);
99+
int ndata, FINUFFT_BIGINT nj, const FINUFFT_FLT *xj, const FINUFFT_FLT *yj,
100+
const FINUFFT_CPX *c, int iflag, FINUFFT_FLT eps, FINUFFT_BIGINT ms,
101+
FINUFFT_BIGINT mt, FINUFFT_CPX *fk, const finufft_opts *opts);
99102
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(2d2)(
100-
FINUFFT_BIGINT nj, FINUFFT_FLT *xj, FINUFFT_FLT *yj, FINUFFT_CPX *cj, int iflag,
101-
FINUFFT_FLT eps, FINUFFT_BIGINT ms, FINUFFT_BIGINT mt, FINUFFT_CPX *fk,
102-
finufft_opts *opts);
103+
FINUFFT_BIGINT nj, const FINUFFT_FLT *xj, const FINUFFT_FLT *yj, FINUFFT_CPX *cj,
104+
int iflag, FINUFFT_FLT eps, FINUFFT_BIGINT ms, FINUFFT_BIGINT mt,
105+
const FINUFFT_CPX *fk, const finufft_opts *opts);
103106
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(2d2many)(
104-
int ndata, FINUFFT_BIGINT nj, FINUFFT_FLT *xj, FINUFFT_FLT *yj, FINUFFT_CPX *c,
105-
int iflag, FINUFFT_FLT eps, FINUFFT_BIGINT ms, FINUFFT_BIGINT mt, FINUFFT_CPX *fk,
106-
finufft_opts *opts);
107+
int ndata, FINUFFT_BIGINT nj, const FINUFFT_FLT *xj, const FINUFFT_FLT *yj,
108+
FINUFFT_CPX *c, int iflag, FINUFFT_FLT eps, FINUFFT_BIGINT ms, FINUFFT_BIGINT mt,
109+
const FINUFFT_CPX *fk, const finufft_opts *opts);
107110
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(2d3)(
108-
FINUFFT_BIGINT nj, FINUFFT_FLT *x, FINUFFT_FLT *y, FINUFFT_CPX *cj, int iflag,
109-
FINUFFT_FLT eps, FINUFFT_BIGINT nk, FINUFFT_FLT *s, FINUFFT_FLT *t, FINUFFT_CPX *fk,
110-
finufft_opts *opts);
111+
FINUFFT_BIGINT nj, const FINUFFT_FLT *x, const FINUFFT_FLT *y, const FINUFFT_CPX *cj,
112+
int iflag, FINUFFT_FLT eps, FINUFFT_BIGINT nk, const FINUFFT_FLT *s,
113+
const FINUFFT_FLT *t, FINUFFT_CPX *fk, const finufft_opts *opts);
111114

112115
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(2d3many)(
113-
int ntransf, FINUFFT_BIGINT nj, FINUFFT_FLT *x, FINUFFT_FLT *y, FINUFFT_CPX *cj,
114-
int iflag, FINUFFT_FLT eps, FINUFFT_BIGINT nk, FINUFFT_FLT *s, FINUFFT_FLT *t,
115-
FINUFFT_CPX *fk, finufft_opts *opts);
116+
int ntransf, FINUFFT_BIGINT nj, const FINUFFT_FLT *x, const FINUFFT_FLT *y,
117+
const FINUFFT_CPX *cj, int iflag, FINUFFT_FLT eps, FINUFFT_BIGINT nk,
118+
const FINUFFT_FLT *s, const FINUFFT_FLT *t, FINUFFT_CPX *fk,
119+
const finufft_opts *opts);
116120

117121
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(3d1)(
118-
FINUFFT_BIGINT nj, FINUFFT_FLT *xj, FINUFFT_FLT *yj, FINUFFT_FLT *zj, FINUFFT_CPX *cj,
119-
int iflag, FINUFFT_FLT eps, FINUFFT_BIGINT ms, FINUFFT_BIGINT mt, FINUFFT_BIGINT mu,
120-
FINUFFT_CPX *fk, finufft_opts *opts);
122+
FINUFFT_BIGINT nj, const FINUFFT_FLT *xj, const FINUFFT_FLT *yj,
123+
const FINUFFT_FLT *zj, const FINUFFT_CPX *cj, int iflag, FINUFFT_FLT eps,
124+
FINUFFT_BIGINT ms, FINUFFT_BIGINT mt, FINUFFT_BIGINT mu, FINUFFT_CPX *fk,
125+
const finufft_opts *opts);
121126
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(3d1many)(
122-
int ntransfs, FINUFFT_BIGINT nj, FINUFFT_FLT *xj, FINUFFT_FLT *yj, FINUFFT_FLT *zj,
123-
FINUFFT_CPX *cj, int iflag, FINUFFT_FLT eps, FINUFFT_BIGINT ms, FINUFFT_BIGINT mt,
124-
FINUFFT_BIGINT mu, FINUFFT_CPX *fk, finufft_opts *opts);
127+
int ntransfs, FINUFFT_BIGINT nj, const FINUFFT_FLT *xj, const FINUFFT_FLT *yj,
128+
const FINUFFT_FLT *zj, const FINUFFT_CPX *cj, int iflag, FINUFFT_FLT eps,
129+
FINUFFT_BIGINT ms, FINUFFT_BIGINT mt, FINUFFT_BIGINT mu, FINUFFT_CPX *fk,
130+
const finufft_opts *opts);
125131

126132
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(3d2)(
127-
FINUFFT_BIGINT nj, FINUFFT_FLT *xj, FINUFFT_FLT *yj, FINUFFT_FLT *zj, FINUFFT_CPX *cj,
128-
int iflag, FINUFFT_FLT eps, FINUFFT_BIGINT ms, FINUFFT_BIGINT mt, FINUFFT_BIGINT mu,
129-
FINUFFT_CPX *fk, finufft_opts *opts);
133+
FINUFFT_BIGINT nj, const FINUFFT_FLT *xj, const FINUFFT_FLT *yj,
134+
const FINUFFT_FLT *zj, FINUFFT_CPX *cj, int iflag, FINUFFT_FLT eps, FINUFFT_BIGINT ms,
135+
FINUFFT_BIGINT mt, FINUFFT_BIGINT mu, const FINUFFT_CPX *fk,
136+
const finufft_opts *opts);
130137
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(3d2many)(
131-
int ntransf, FINUFFT_BIGINT nj, FINUFFT_FLT *xj, FINUFFT_FLT *yj, FINUFFT_FLT *zj,
132-
FINUFFT_CPX *cj, int iflag, FINUFFT_FLT eps, FINUFFT_BIGINT ms, FINUFFT_BIGINT mt,
133-
FINUFFT_BIGINT mu, FINUFFT_CPX *fk, finufft_opts *opts);
138+
int ntransf, FINUFFT_BIGINT nj, const FINUFFT_FLT *xj, const FINUFFT_FLT *yj,
139+
const FINUFFT_FLT *zj, FINUFFT_CPX *cj, int iflag, FINUFFT_FLT eps, FINUFFT_BIGINT ms,
140+
FINUFFT_BIGINT mt, FINUFFT_BIGINT mu, const FINUFFT_CPX *fk,
141+
const finufft_opts *opts);
134142
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(3d3)(
135-
FINUFFT_BIGINT nj, FINUFFT_FLT *x, FINUFFT_FLT *y, FINUFFT_FLT *z, FINUFFT_CPX *cj,
136-
int iflag, FINUFFT_FLT eps, FINUFFT_BIGINT nk, FINUFFT_FLT *s, FINUFFT_FLT *t,
137-
FINUFFT_FLT *u, FINUFFT_CPX *fk, finufft_opts *opts);
143+
FINUFFT_BIGINT nj, const FINUFFT_FLT *x, const FINUFFT_FLT *y, const FINUFFT_FLT *z,
144+
const FINUFFT_CPX *cj, int iflag, FINUFFT_FLT eps, FINUFFT_BIGINT nk,
145+
const FINUFFT_FLT *s, const FINUFFT_FLT *t, const FINUFFT_FLT *u, FINUFFT_CPX *fk,
146+
const finufft_opts *opts);
138147
FINUFFT_EXPORT int FINUFFT_CDECL FINUFFTIFY(3d3many)(
139-
int ntransf, FINUFFT_BIGINT nj, FINUFFT_FLT *x, FINUFFT_FLT *y, FINUFFT_FLT *z,
140-
FINUFFT_CPX *cj, int iflag, FINUFFT_FLT eps, FINUFFT_BIGINT nk, FINUFFT_FLT *s,
141-
FINUFFT_FLT *t, FINUFFT_FLT *u, FINUFFT_CPX *fk, finufft_opts *opts);
148+
int ntransf, FINUFFT_BIGINT nj, const FINUFFT_FLT *x, const FINUFFT_FLT *y,
149+
const FINUFFT_FLT *z, const FINUFFT_CPX *cj, int iflag, FINUFFT_FLT eps,
150+
FINUFFT_BIGINT nk, const FINUFFT_FLT *s, const FINUFFT_FLT *t, const FINUFFT_FLT *u,
151+
FINUFFT_CPX *fk, const finufft_opts *opts);
142152

143153
#ifdef __cplusplus
144154
}

0 commit comments

Comments
 (0)