isce3
0.25.0
Loading...
Searching...
No Matches
cxx
isce3
cuda
fft
FFTPlan.icc
1
#ifndef ISCE_CUDA_FFT_FFTPLAN_ICC
2
#error "FFTPlan.icc is an implementation detail of FFTPlan.h"
3
#endif
4
5
namespace
isce3
{
namespace
cuda {
namespace
fft {
6
7
template
<
typename
T>
8
FwdFFTPlan<T>::FwdFFTPlan
(
thrust::complex<T>
* out, T * in,
int
n,
int
batch)
9
:
10
super_t(out, in, &n, &n, 1, n, &n, 1, n, batch, 1, detail::CufftR2CType<T>::type)
11
{}
12
13
template
<
typename
T>
14
template
<
int
Rank>
15
FwdFFTPlan<T>::FwdFFTPlan
(
thrust::complex<T>
* out,
16
T * in,
17
const
int
(&n)[Rank],
18
int
batch)
19
:
20
super_t(out, in, n, n, 1, detail::product(n), n, 1, detail::product(n), batch, Rank, detail::CufftR2CType<T>::type)
21
{
22
static_assert
( Rank <= 3,
""
);
23
}
24
25
template
<
typename
T>
26
FwdFFTPlan<T>::FwdFFTPlan
(
thrust::complex<T>
* out,
27
T * in,
28
int
n,
29
int
nembed,
30
int
stride,
31
int
dist,
32
int
batch)
33
:
34
super_t(out, in, &n, &nembed, stride, dist, &nembed, stride, dist, batch, 1, detail::CufftR2CType<T>::type)
35
{}
36
37
template
<
typename
T>
38
template
<
int
Rank>
39
FwdFFTPlan<T>::FwdFFTPlan
(
thrust::complex<T>
* out,
40
T * in,
41
const
int
(&n)[Rank],
42
const
int
(&nembed)[Rank],
43
int
stride,
44
int
dist,
45
int
batch)
46
:
47
super_t(out, in, n, nembed, stride, dist, nembed, stride, dist, batch, Rank, detail::CufftR2CType<T>::type)
48
{
49
static_assert
( Rank <= 3,
""
);
50
}
51
52
template
<
typename
T>
53
FwdFFTPlan<T>::FwdFFTPlan
(
thrust::complex<T>
* out,
54
T * in,
55
int
n,
56
int
inembed,
57
int
istride,
58
int
idist,
59
int
onembed,
60
int
ostride,
61
int
odist,
62
int
batch)
63
:
64
super_t(out, in, &n, &inembed, istride, idist, &onembed, ostride, odist, batch, 1, detail::CufftR2CType<T>::type)
65
{}
66
67
template
<
typename
T>
68
template
<
int
Rank>
69
FwdFFTPlan<T>::FwdFFTPlan
(
thrust::complex<T>
* out,
70
T * in,
71
const
int
(&n)[Rank],
72
const
int
(&inembed)[Rank],
73
int
istride,
74
int
idist,
75
const
int
(&onembed)[Rank],
76
int
ostride,
77
int
odist,
78
int
batch)
79
:
80
super_t(out, in, n, inembed, istride, idist, onembed, ostride, odist, batch, Rank, detail::CufftR2CType<T>::type)
81
{
82
static_assert
( Rank <= 3,
""
);
83
}
84
85
template
<
typename
T>
86
InvFFTPlan<T>::InvFFTPlan
(T * out,
thrust::complex<T>
* in,
int
n,
int
batch)
87
:
88
super_t(out, in, &n, &n, 1, n, &n, 1, n, batch, 1, detail::CufftC2RType<T>::type)
89
{}
90
91
template
<
typename
T>
92
template
<
int
Rank>
93
InvFFTPlan<T>::InvFFTPlan
(T * out,
94
thrust::complex<T>
* in,
95
const
int
(&n)[Rank],
96
int
batch)
97
:
98
super_t(out, in, n, n, 1, detail::product(n), n, 1, detail::product(n), batch, Rank, detail::CufftC2RType<T>::type)
99
{
100
static_assert
( Rank <= 3,
""
);
101
}
102
103
template
<
typename
T>
104
InvFFTPlan<T>::InvFFTPlan
(T * out,
105
thrust::complex<T>
* in,
106
int
n,
107
int
nembed,
108
int
stride,
109
int
dist,
110
int
batch)
111
:
112
super_t(out, in, &n, &nembed, stride, dist, &nembed, stride, dist, batch, 1, detail::CufftC2RType<T>::type)
113
{}
114
115
template
<
typename
T>
116
template
<
int
Rank>
117
InvFFTPlan<T>::InvFFTPlan
(T * out,
118
thrust::complex<T>
* in,
119
const
int
(&n)[Rank],
120
const
int
(&nembed)[Rank],
121
int
stride,
122
int
dist,
123
int
batch)
124
:
125
super_t(out, in, n, nembed, stride, dist, nembed, stride, dist, batch, Rank, detail::CufftC2RType<T>::type)
126
{
127
static_assert
( Rank <= 3,
""
);
128
}
129
130
template
<
typename
T>
131
InvFFTPlan<T>::InvFFTPlan
(T * out,
132
thrust::complex<T>
* in,
133
int
n,
134
int
inembed,
135
int
istride,
136
int
idist,
137
int
onembed,
138
int
ostride,
139
int
odist,
140
int
batch)
141
:
142
super_t(out, in, &n, &inembed, istride, idist, &onembed, ostride, odist, batch, 1, detail::CufftC2RType<T>::type)
143
{}
144
145
template
<
typename
T>
146
template
<
int
Rank>
147
InvFFTPlan<T>::InvFFTPlan
(T * out,
148
thrust::complex<T>
* in,
149
const
int
(&n)[Rank],
150
const
int
(&inembed)[Rank],
151
int
istride,
152
int
idist,
153
const
int
(&onembed)[Rank],
154
int
ostride,
155
int
odist,
156
int
batch)
157
:
158
super_t(out, in, n, inembed, istride, idist, onembed, ostride, odist, batch, Rank, detail::CufftC2RType<T>::type)
159
{}
160
161
}}}
isce3::cuda::fft::FwdFFTPlan::FwdFFTPlan
FwdFFTPlan()
Construct an invalid plan.
Definition
FFTPlan.h:21
isce3::cuda::fft::InvFFTPlan::InvFFTPlan
InvFFTPlan()
Construct an invalid plan.
Definition
FFTPlan.h:290
isce3
base interpolator is an abstract base class
Definition
BinarySearchFunc.cpp:5
thrust::complex
Definition
GDALDataTypeUtil.h:10
Generated for ISCE3.0 by
1.13.2.