To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.
The primary repository for this project is hosted at https://github.com/sonic-visualiser/sv-dependency-builds .
This repository is a read-only copy which is updated automatically every hour.
root / src / fftw-3.3.8 / api / fftw3.f03.in @ 167:bd3cc4d1df30
History | View | Annotate | Download (53.3 KB)
| 1 |
! Generated automatically. DO NOT EDIT! |
|---|---|
| 2 |
|
| 3 |
integer(C_INT), parameter :: FFTW_R2HC = 0 |
| 4 |
integer(C_INT), parameter :: FFTW_HC2R = 1 |
| 5 |
integer(C_INT), parameter :: FFTW_DHT = 2 |
| 6 |
integer(C_INT), parameter :: FFTW_REDFT00 = 3 |
| 7 |
integer(C_INT), parameter :: FFTW_REDFT01 = 4 |
| 8 |
integer(C_INT), parameter :: FFTW_REDFT10 = 5 |
| 9 |
integer(C_INT), parameter :: FFTW_REDFT11 = 6 |
| 10 |
integer(C_INT), parameter :: FFTW_RODFT00 = 7 |
| 11 |
integer(C_INT), parameter :: FFTW_RODFT01 = 8 |
| 12 |
integer(C_INT), parameter :: FFTW_RODFT10 = 9 |
| 13 |
integer(C_INT), parameter :: FFTW_RODFT11 = 10 |
| 14 |
integer(C_INT), parameter :: FFTW_FORWARD = -1 |
| 15 |
integer(C_INT), parameter :: FFTW_BACKWARD = +1 |
| 16 |
integer(C_INT), parameter :: FFTW_MEASURE = 0 |
| 17 |
integer(C_INT), parameter :: FFTW_DESTROY_INPUT = 1 |
| 18 |
integer(C_INT), parameter :: FFTW_UNALIGNED = 2 |
| 19 |
integer(C_INT), parameter :: FFTW_CONSERVE_MEMORY = 4 |
| 20 |
integer(C_INT), parameter :: FFTW_EXHAUSTIVE = 8 |
| 21 |
integer(C_INT), parameter :: FFTW_PRESERVE_INPUT = 16 |
| 22 |
integer(C_INT), parameter :: FFTW_PATIENT = 32 |
| 23 |
integer(C_INT), parameter :: FFTW_ESTIMATE = 64 |
| 24 |
integer(C_INT), parameter :: FFTW_WISDOM_ONLY = 2097152 |
| 25 |
integer(C_INT), parameter :: FFTW_ESTIMATE_PATIENT = 128 |
| 26 |
integer(C_INT), parameter :: FFTW_BELIEVE_PCOST = 256 |
| 27 |
integer(C_INT), parameter :: FFTW_NO_DFT_R2HC = 512 |
| 28 |
integer(C_INT), parameter :: FFTW_NO_NONTHREADED = 1024 |
| 29 |
integer(C_INT), parameter :: FFTW_NO_BUFFERING = 2048 |
| 30 |
integer(C_INT), parameter :: FFTW_NO_INDIRECT_OP = 4096 |
| 31 |
integer(C_INT), parameter :: FFTW_ALLOW_LARGE_GENERIC = 8192 |
| 32 |
integer(C_INT), parameter :: FFTW_NO_RANK_SPLITS = 16384 |
| 33 |
integer(C_INT), parameter :: FFTW_NO_VRANK_SPLITS = 32768 |
| 34 |
integer(C_INT), parameter :: FFTW_NO_VRECURSE = 65536 |
| 35 |
integer(C_INT), parameter :: FFTW_NO_SIMD = 131072 |
| 36 |
integer(C_INT), parameter :: FFTW_NO_SLOW = 262144 |
| 37 |
integer(C_INT), parameter :: FFTW_NO_FIXED_RADIX_LARGE_N = 524288 |
| 38 |
integer(C_INT), parameter :: FFTW_ALLOW_PRUNING = 1048576 |
| 39 |
|
| 40 |
type, bind(C) :: fftw_iodim |
| 41 |
integer(C_INT) n, is, os |
| 42 |
end type fftw_iodim |
| 43 |
type, bind(C) :: fftw_iodim64 |
| 44 |
integer(C_INTPTR_T) n, is, os |
| 45 |
end type fftw_iodim64 |
| 46 |
|
| 47 |
interface |
| 48 |
type(C_PTR) function fftw_plan_dft(rank,n,in,out,sign,flags) bind(C, name='fftw_plan_dft') |
| 49 |
import |
| 50 |
integer(C_INT), value :: rank |
| 51 |
integer(C_INT), dimension(*), intent(in) :: n |
| 52 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in |
| 53 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out |
| 54 |
integer(C_INT), value :: sign |
| 55 |
integer(C_INT), value :: flags |
| 56 |
end function fftw_plan_dft |
| 57 |
|
| 58 |
type(C_PTR) function fftw_plan_dft_1d(n,in,out,sign,flags) bind(C, name='fftw_plan_dft_1d') |
| 59 |
import |
| 60 |
integer(C_INT), value :: n |
| 61 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in |
| 62 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out |
| 63 |
integer(C_INT), value :: sign |
| 64 |
integer(C_INT), value :: flags |
| 65 |
end function fftw_plan_dft_1d |
| 66 |
|
| 67 |
type(C_PTR) function fftw_plan_dft_2d(n0,n1,in,out,sign,flags) bind(C, name='fftw_plan_dft_2d') |
| 68 |
import |
| 69 |
integer(C_INT), value :: n0 |
| 70 |
integer(C_INT), value :: n1 |
| 71 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in |
| 72 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out |
| 73 |
integer(C_INT), value :: sign |
| 74 |
integer(C_INT), value :: flags |
| 75 |
end function fftw_plan_dft_2d |
| 76 |
|
| 77 |
type(C_PTR) function fftw_plan_dft_3d(n0,n1,n2,in,out,sign,flags) bind(C, name='fftw_plan_dft_3d') |
| 78 |
import |
| 79 |
integer(C_INT), value :: n0 |
| 80 |
integer(C_INT), value :: n1 |
| 81 |
integer(C_INT), value :: n2 |
| 82 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in |
| 83 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out |
| 84 |
integer(C_INT), value :: sign |
| 85 |
integer(C_INT), value :: flags |
| 86 |
end function fftw_plan_dft_3d |
| 87 |
|
| 88 |
type(C_PTR) function fftw_plan_many_dft(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,sign,flags) & |
| 89 |
bind(C, name='fftw_plan_many_dft') |
| 90 |
import |
| 91 |
integer(C_INT), value :: rank |
| 92 |
integer(C_INT), dimension(*), intent(in) :: n |
| 93 |
integer(C_INT), value :: howmany |
| 94 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in |
| 95 |
integer(C_INT), dimension(*), intent(in) :: inembed |
| 96 |
integer(C_INT), value :: istride |
| 97 |
integer(C_INT), value :: idist |
| 98 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out |
| 99 |
integer(C_INT), dimension(*), intent(in) :: onembed |
| 100 |
integer(C_INT), value :: ostride |
| 101 |
integer(C_INT), value :: odist |
| 102 |
integer(C_INT), value :: sign |
| 103 |
integer(C_INT), value :: flags |
| 104 |
end function fftw_plan_many_dft |
| 105 |
|
| 106 |
type(C_PTR) function fftw_plan_guru_dft(rank,dims,howmany_rank,howmany_dims,in,out,sign,flags) & |
| 107 |
bind(C, name='fftw_plan_guru_dft') |
| 108 |
import |
| 109 |
integer(C_INT), value :: rank |
| 110 |
type(fftw_iodim), dimension(*), intent(in) :: dims |
| 111 |
integer(C_INT), value :: howmany_rank |
| 112 |
type(fftw_iodim), dimension(*), intent(in) :: howmany_dims |
| 113 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in |
| 114 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out |
| 115 |
integer(C_INT), value :: sign |
| 116 |
integer(C_INT), value :: flags |
| 117 |
end function fftw_plan_guru_dft |
| 118 |
|
| 119 |
type(C_PTR) function fftw_plan_guru_split_dft(rank,dims,howmany_rank,howmany_dims,ri,ii,ro,io,flags) & |
| 120 |
bind(C, name='fftw_plan_guru_split_dft') |
| 121 |
import |
| 122 |
integer(C_INT), value :: rank |
| 123 |
type(fftw_iodim), dimension(*), intent(in) :: dims |
| 124 |
integer(C_INT), value :: howmany_rank |
| 125 |
type(fftw_iodim), dimension(*), intent(in) :: howmany_dims |
| 126 |
real(C_DOUBLE), dimension(*), intent(out) :: ri |
| 127 |
real(C_DOUBLE), dimension(*), intent(out) :: ii |
| 128 |
real(C_DOUBLE), dimension(*), intent(out) :: ro |
| 129 |
real(C_DOUBLE), dimension(*), intent(out) :: io |
| 130 |
integer(C_INT), value :: flags |
| 131 |
end function fftw_plan_guru_split_dft |
| 132 |
|
| 133 |
type(C_PTR) function fftw_plan_guru64_dft(rank,dims,howmany_rank,howmany_dims,in,out,sign,flags) & |
| 134 |
bind(C, name='fftw_plan_guru64_dft') |
| 135 |
import |
| 136 |
integer(C_INT), value :: rank |
| 137 |
type(fftw_iodim64), dimension(*), intent(in) :: dims |
| 138 |
integer(C_INT), value :: howmany_rank |
| 139 |
type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims |
| 140 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in |
| 141 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out |
| 142 |
integer(C_INT), value :: sign |
| 143 |
integer(C_INT), value :: flags |
| 144 |
end function fftw_plan_guru64_dft |
| 145 |
|
| 146 |
type(C_PTR) function fftw_plan_guru64_split_dft(rank,dims,howmany_rank,howmany_dims,ri,ii,ro,io,flags) & |
| 147 |
bind(C, name='fftw_plan_guru64_split_dft') |
| 148 |
import |
| 149 |
integer(C_INT), value :: rank |
| 150 |
type(fftw_iodim64), dimension(*), intent(in) :: dims |
| 151 |
integer(C_INT), value :: howmany_rank |
| 152 |
type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims |
| 153 |
real(C_DOUBLE), dimension(*), intent(out) :: ri |
| 154 |
real(C_DOUBLE), dimension(*), intent(out) :: ii |
| 155 |
real(C_DOUBLE), dimension(*), intent(out) :: ro |
| 156 |
real(C_DOUBLE), dimension(*), intent(out) :: io |
| 157 |
integer(C_INT), value :: flags |
| 158 |
end function fftw_plan_guru64_split_dft |
| 159 |
|
| 160 |
subroutine fftw_execute_dft(p,in,out) bind(C, name='fftw_execute_dft') |
| 161 |
import |
| 162 |
type(C_PTR), value :: p |
| 163 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(inout) :: in |
| 164 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out |
| 165 |
end subroutine fftw_execute_dft |
| 166 |
|
| 167 |
subroutine fftw_execute_split_dft(p,ri,ii,ro,io) bind(C, name='fftw_execute_split_dft') |
| 168 |
import |
| 169 |
type(C_PTR), value :: p |
| 170 |
real(C_DOUBLE), dimension(*), intent(inout) :: ri |
| 171 |
real(C_DOUBLE), dimension(*), intent(inout) :: ii |
| 172 |
real(C_DOUBLE), dimension(*), intent(out) :: ro |
| 173 |
real(C_DOUBLE), dimension(*), intent(out) :: io |
| 174 |
end subroutine fftw_execute_split_dft |
| 175 |
|
| 176 |
type(C_PTR) function fftw_plan_many_dft_r2c(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,flags) & |
| 177 |
bind(C, name='fftw_plan_many_dft_r2c') |
| 178 |
import |
| 179 |
integer(C_INT), value :: rank |
| 180 |
integer(C_INT), dimension(*), intent(in) :: n |
| 181 |
integer(C_INT), value :: howmany |
| 182 |
real(C_DOUBLE), dimension(*), intent(out) :: in |
| 183 |
integer(C_INT), dimension(*), intent(in) :: inembed |
| 184 |
integer(C_INT), value :: istride |
| 185 |
integer(C_INT), value :: idist |
| 186 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out |
| 187 |
integer(C_INT), dimension(*), intent(in) :: onembed |
| 188 |
integer(C_INT), value :: ostride |
| 189 |
integer(C_INT), value :: odist |
| 190 |
integer(C_INT), value :: flags |
| 191 |
end function fftw_plan_many_dft_r2c |
| 192 |
|
| 193 |
type(C_PTR) function fftw_plan_dft_r2c(rank,n,in,out,flags) bind(C, name='fftw_plan_dft_r2c') |
| 194 |
import |
| 195 |
integer(C_INT), value :: rank |
| 196 |
integer(C_INT), dimension(*), intent(in) :: n |
| 197 |
real(C_DOUBLE), dimension(*), intent(out) :: in |
| 198 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out |
| 199 |
integer(C_INT), value :: flags |
| 200 |
end function fftw_plan_dft_r2c |
| 201 |
|
| 202 |
type(C_PTR) function fftw_plan_dft_r2c_1d(n,in,out,flags) bind(C, name='fftw_plan_dft_r2c_1d') |
| 203 |
import |
| 204 |
integer(C_INT), value :: n |
| 205 |
real(C_DOUBLE), dimension(*), intent(out) :: in |
| 206 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out |
| 207 |
integer(C_INT), value :: flags |
| 208 |
end function fftw_plan_dft_r2c_1d |
| 209 |
|
| 210 |
type(C_PTR) function fftw_plan_dft_r2c_2d(n0,n1,in,out,flags) bind(C, name='fftw_plan_dft_r2c_2d') |
| 211 |
import |
| 212 |
integer(C_INT), value :: n0 |
| 213 |
integer(C_INT), value :: n1 |
| 214 |
real(C_DOUBLE), dimension(*), intent(out) :: in |
| 215 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out |
| 216 |
integer(C_INT), value :: flags |
| 217 |
end function fftw_plan_dft_r2c_2d |
| 218 |
|
| 219 |
type(C_PTR) function fftw_plan_dft_r2c_3d(n0,n1,n2,in,out,flags) bind(C, name='fftw_plan_dft_r2c_3d') |
| 220 |
import |
| 221 |
integer(C_INT), value :: n0 |
| 222 |
integer(C_INT), value :: n1 |
| 223 |
integer(C_INT), value :: n2 |
| 224 |
real(C_DOUBLE), dimension(*), intent(out) :: in |
| 225 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out |
| 226 |
integer(C_INT), value :: flags |
| 227 |
end function fftw_plan_dft_r2c_3d |
| 228 |
|
| 229 |
type(C_PTR) function fftw_plan_many_dft_c2r(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,flags) & |
| 230 |
bind(C, name='fftw_plan_many_dft_c2r') |
| 231 |
import |
| 232 |
integer(C_INT), value :: rank |
| 233 |
integer(C_INT), dimension(*), intent(in) :: n |
| 234 |
integer(C_INT), value :: howmany |
| 235 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in |
| 236 |
integer(C_INT), dimension(*), intent(in) :: inembed |
| 237 |
integer(C_INT), value :: istride |
| 238 |
integer(C_INT), value :: idist |
| 239 |
real(C_DOUBLE), dimension(*), intent(out) :: out |
| 240 |
integer(C_INT), dimension(*), intent(in) :: onembed |
| 241 |
integer(C_INT), value :: ostride |
| 242 |
integer(C_INT), value :: odist |
| 243 |
integer(C_INT), value :: flags |
| 244 |
end function fftw_plan_many_dft_c2r |
| 245 |
|
| 246 |
type(C_PTR) function fftw_plan_dft_c2r(rank,n,in,out,flags) bind(C, name='fftw_plan_dft_c2r') |
| 247 |
import |
| 248 |
integer(C_INT), value :: rank |
| 249 |
integer(C_INT), dimension(*), intent(in) :: n |
| 250 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in |
| 251 |
real(C_DOUBLE), dimension(*), intent(out) :: out |
| 252 |
integer(C_INT), value :: flags |
| 253 |
end function fftw_plan_dft_c2r |
| 254 |
|
| 255 |
type(C_PTR) function fftw_plan_dft_c2r_1d(n,in,out,flags) bind(C, name='fftw_plan_dft_c2r_1d') |
| 256 |
import |
| 257 |
integer(C_INT), value :: n |
| 258 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in |
| 259 |
real(C_DOUBLE), dimension(*), intent(out) :: out |
| 260 |
integer(C_INT), value :: flags |
| 261 |
end function fftw_plan_dft_c2r_1d |
| 262 |
|
| 263 |
type(C_PTR) function fftw_plan_dft_c2r_2d(n0,n1,in,out,flags) bind(C, name='fftw_plan_dft_c2r_2d') |
| 264 |
import |
| 265 |
integer(C_INT), value :: n0 |
| 266 |
integer(C_INT), value :: n1 |
| 267 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in |
| 268 |
real(C_DOUBLE), dimension(*), intent(out) :: out |
| 269 |
integer(C_INT), value :: flags |
| 270 |
end function fftw_plan_dft_c2r_2d |
| 271 |
|
| 272 |
type(C_PTR) function fftw_plan_dft_c2r_3d(n0,n1,n2,in,out,flags) bind(C, name='fftw_plan_dft_c2r_3d') |
| 273 |
import |
| 274 |
integer(C_INT), value :: n0 |
| 275 |
integer(C_INT), value :: n1 |
| 276 |
integer(C_INT), value :: n2 |
| 277 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in |
| 278 |
real(C_DOUBLE), dimension(*), intent(out) :: out |
| 279 |
integer(C_INT), value :: flags |
| 280 |
end function fftw_plan_dft_c2r_3d |
| 281 |
|
| 282 |
type(C_PTR) function fftw_plan_guru_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,out,flags) & |
| 283 |
bind(C, name='fftw_plan_guru_dft_r2c') |
| 284 |
import |
| 285 |
integer(C_INT), value :: rank |
| 286 |
type(fftw_iodim), dimension(*), intent(in) :: dims |
| 287 |
integer(C_INT), value :: howmany_rank |
| 288 |
type(fftw_iodim), dimension(*), intent(in) :: howmany_dims |
| 289 |
real(C_DOUBLE), dimension(*), intent(out) :: in |
| 290 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out |
| 291 |
integer(C_INT), value :: flags |
| 292 |
end function fftw_plan_guru_dft_r2c |
| 293 |
|
| 294 |
type(C_PTR) function fftw_plan_guru_dft_c2r(rank,dims,howmany_rank,howmany_dims,in,out,flags) & |
| 295 |
bind(C, name='fftw_plan_guru_dft_c2r') |
| 296 |
import |
| 297 |
integer(C_INT), value :: rank |
| 298 |
type(fftw_iodim), dimension(*), intent(in) :: dims |
| 299 |
integer(C_INT), value :: howmany_rank |
| 300 |
type(fftw_iodim), dimension(*), intent(in) :: howmany_dims |
| 301 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in |
| 302 |
real(C_DOUBLE), dimension(*), intent(out) :: out |
| 303 |
integer(C_INT), value :: flags |
| 304 |
end function fftw_plan_guru_dft_c2r |
| 305 |
|
| 306 |
type(C_PTR) function fftw_plan_guru_split_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,ro,io,flags) & |
| 307 |
bind(C, name='fftw_plan_guru_split_dft_r2c') |
| 308 |
import |
| 309 |
integer(C_INT), value :: rank |
| 310 |
type(fftw_iodim), dimension(*), intent(in) :: dims |
| 311 |
integer(C_INT), value :: howmany_rank |
| 312 |
type(fftw_iodim), dimension(*), intent(in) :: howmany_dims |
| 313 |
real(C_DOUBLE), dimension(*), intent(out) :: in |
| 314 |
real(C_DOUBLE), dimension(*), intent(out) :: ro |
| 315 |
real(C_DOUBLE), dimension(*), intent(out) :: io |
| 316 |
integer(C_INT), value :: flags |
| 317 |
end function fftw_plan_guru_split_dft_r2c |
| 318 |
|
| 319 |
type(C_PTR) function fftw_plan_guru_split_dft_c2r(rank,dims,howmany_rank,howmany_dims,ri,ii,out,flags) & |
| 320 |
bind(C, name='fftw_plan_guru_split_dft_c2r') |
| 321 |
import |
| 322 |
integer(C_INT), value :: rank |
| 323 |
type(fftw_iodim), dimension(*), intent(in) :: dims |
| 324 |
integer(C_INT), value :: howmany_rank |
| 325 |
type(fftw_iodim), dimension(*), intent(in) :: howmany_dims |
| 326 |
real(C_DOUBLE), dimension(*), intent(out) :: ri |
| 327 |
real(C_DOUBLE), dimension(*), intent(out) :: ii |
| 328 |
real(C_DOUBLE), dimension(*), intent(out) :: out |
| 329 |
integer(C_INT), value :: flags |
| 330 |
end function fftw_plan_guru_split_dft_c2r |
| 331 |
|
| 332 |
type(C_PTR) function fftw_plan_guru64_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,out,flags) & |
| 333 |
bind(C, name='fftw_plan_guru64_dft_r2c') |
| 334 |
import |
| 335 |
integer(C_INT), value :: rank |
| 336 |
type(fftw_iodim64), dimension(*), intent(in) :: dims |
| 337 |
integer(C_INT), value :: howmany_rank |
| 338 |
type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims |
| 339 |
real(C_DOUBLE), dimension(*), intent(out) :: in |
| 340 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out |
| 341 |
integer(C_INT), value :: flags |
| 342 |
end function fftw_plan_guru64_dft_r2c |
| 343 |
|
| 344 |
type(C_PTR) function fftw_plan_guru64_dft_c2r(rank,dims,howmany_rank,howmany_dims,in,out,flags) & |
| 345 |
bind(C, name='fftw_plan_guru64_dft_c2r') |
| 346 |
import |
| 347 |
integer(C_INT), value :: rank |
| 348 |
type(fftw_iodim64), dimension(*), intent(in) :: dims |
| 349 |
integer(C_INT), value :: howmany_rank |
| 350 |
type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims |
| 351 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: in |
| 352 |
real(C_DOUBLE), dimension(*), intent(out) :: out |
| 353 |
integer(C_INT), value :: flags |
| 354 |
end function fftw_plan_guru64_dft_c2r |
| 355 |
|
| 356 |
type(C_PTR) function fftw_plan_guru64_split_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,ro,io,flags) & |
| 357 |
bind(C, name='fftw_plan_guru64_split_dft_r2c') |
| 358 |
import |
| 359 |
integer(C_INT), value :: rank |
| 360 |
type(fftw_iodim64), dimension(*), intent(in) :: dims |
| 361 |
integer(C_INT), value :: howmany_rank |
| 362 |
type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims |
| 363 |
real(C_DOUBLE), dimension(*), intent(out) :: in |
| 364 |
real(C_DOUBLE), dimension(*), intent(out) :: ro |
| 365 |
real(C_DOUBLE), dimension(*), intent(out) :: io |
| 366 |
integer(C_INT), value :: flags |
| 367 |
end function fftw_plan_guru64_split_dft_r2c |
| 368 |
|
| 369 |
type(C_PTR) function fftw_plan_guru64_split_dft_c2r(rank,dims,howmany_rank,howmany_dims,ri,ii,out,flags) & |
| 370 |
bind(C, name='fftw_plan_guru64_split_dft_c2r') |
| 371 |
import |
| 372 |
integer(C_INT), value :: rank |
| 373 |
type(fftw_iodim64), dimension(*), intent(in) :: dims |
| 374 |
integer(C_INT), value :: howmany_rank |
| 375 |
type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims |
| 376 |
real(C_DOUBLE), dimension(*), intent(out) :: ri |
| 377 |
real(C_DOUBLE), dimension(*), intent(out) :: ii |
| 378 |
real(C_DOUBLE), dimension(*), intent(out) :: out |
| 379 |
integer(C_INT), value :: flags |
| 380 |
end function fftw_plan_guru64_split_dft_c2r |
| 381 |
|
| 382 |
subroutine fftw_execute_dft_r2c(p,in,out) bind(C, name='fftw_execute_dft_r2c') |
| 383 |
import |
| 384 |
type(C_PTR), value :: p |
| 385 |
real(C_DOUBLE), dimension(*), intent(inout) :: in |
| 386 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(out) :: out |
| 387 |
end subroutine fftw_execute_dft_r2c |
| 388 |
|
| 389 |
subroutine fftw_execute_dft_c2r(p,in,out) bind(C, name='fftw_execute_dft_c2r') |
| 390 |
import |
| 391 |
type(C_PTR), value :: p |
| 392 |
complex(C_DOUBLE_COMPLEX), dimension(*), intent(inout) :: in |
| 393 |
real(C_DOUBLE), dimension(*), intent(out) :: out |
| 394 |
end subroutine fftw_execute_dft_c2r |
| 395 |
|
| 396 |
subroutine fftw_execute_split_dft_r2c(p,in,ro,io) bind(C, name='fftw_execute_split_dft_r2c') |
| 397 |
import |
| 398 |
type(C_PTR), value :: p |
| 399 |
real(C_DOUBLE), dimension(*), intent(inout) :: in |
| 400 |
real(C_DOUBLE), dimension(*), intent(out) :: ro |
| 401 |
real(C_DOUBLE), dimension(*), intent(out) :: io |
| 402 |
end subroutine fftw_execute_split_dft_r2c |
| 403 |
|
| 404 |
subroutine fftw_execute_split_dft_c2r(p,ri,ii,out) bind(C, name='fftw_execute_split_dft_c2r') |
| 405 |
import |
| 406 |
type(C_PTR), value :: p |
| 407 |
real(C_DOUBLE), dimension(*), intent(inout) :: ri |
| 408 |
real(C_DOUBLE), dimension(*), intent(inout) :: ii |
| 409 |
real(C_DOUBLE), dimension(*), intent(out) :: out |
| 410 |
end subroutine fftw_execute_split_dft_c2r |
| 411 |
|
| 412 |
type(C_PTR) function fftw_plan_many_r2r(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,kind,flags) & |
| 413 |
bind(C, name='fftw_plan_many_r2r') |
| 414 |
import |
| 415 |
integer(C_INT), value :: rank |
| 416 |
integer(C_INT), dimension(*), intent(in) :: n |
| 417 |
integer(C_INT), value :: howmany |
| 418 |
real(C_DOUBLE), dimension(*), intent(out) :: in |
| 419 |
integer(C_INT), dimension(*), intent(in) :: inembed |
| 420 |
integer(C_INT), value :: istride |
| 421 |
integer(C_INT), value :: idist |
| 422 |
real(C_DOUBLE), dimension(*), intent(out) :: out |
| 423 |
integer(C_INT), dimension(*), intent(in) :: onembed |
| 424 |
integer(C_INT), value :: ostride |
| 425 |
integer(C_INT), value :: odist |
| 426 |
integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind |
| 427 |
integer(C_INT), value :: flags |
| 428 |
end function fftw_plan_many_r2r |
| 429 |
|
| 430 |
type(C_PTR) function fftw_plan_r2r(rank,n,in,out,kind,flags) bind(C, name='fftw_plan_r2r') |
| 431 |
import |
| 432 |
integer(C_INT), value :: rank |
| 433 |
integer(C_INT), dimension(*), intent(in) :: n |
| 434 |
real(C_DOUBLE), dimension(*), intent(out) :: in |
| 435 |
real(C_DOUBLE), dimension(*), intent(out) :: out |
| 436 |
integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind |
| 437 |
integer(C_INT), value :: flags |
| 438 |
end function fftw_plan_r2r |
| 439 |
|
| 440 |
type(C_PTR) function fftw_plan_r2r_1d(n,in,out,kind,flags) bind(C, name='fftw_plan_r2r_1d') |
| 441 |
import |
| 442 |
integer(C_INT), value :: n |
| 443 |
real(C_DOUBLE), dimension(*), intent(out) :: in |
| 444 |
real(C_DOUBLE), dimension(*), intent(out) :: out |
| 445 |
integer(C_FFTW_R2R_KIND), value :: kind |
| 446 |
integer(C_INT), value :: flags |
| 447 |
end function fftw_plan_r2r_1d |
| 448 |
|
| 449 |
type(C_PTR) function fftw_plan_r2r_2d(n0,n1,in,out,kind0,kind1,flags) bind(C, name='fftw_plan_r2r_2d') |
| 450 |
import |
| 451 |
integer(C_INT), value :: n0 |
| 452 |
integer(C_INT), value :: n1 |
| 453 |
real(C_DOUBLE), dimension(*), intent(out) :: in |
| 454 |
real(C_DOUBLE), dimension(*), intent(out) :: out |
| 455 |
integer(C_FFTW_R2R_KIND), value :: kind0 |
| 456 |
integer(C_FFTW_R2R_KIND), value :: kind1 |
| 457 |
integer(C_INT), value :: flags |
| 458 |
end function fftw_plan_r2r_2d |
| 459 |
|
| 460 |
type(C_PTR) function fftw_plan_r2r_3d(n0,n1,n2,in,out,kind0,kind1,kind2,flags) bind(C, name='fftw_plan_r2r_3d') |
| 461 |
import |
| 462 |
integer(C_INT), value :: n0 |
| 463 |
integer(C_INT), value :: n1 |
| 464 |
integer(C_INT), value :: n2 |
| 465 |
real(C_DOUBLE), dimension(*), intent(out) :: in |
| 466 |
real(C_DOUBLE), dimension(*), intent(out) :: out |
| 467 |
integer(C_FFTW_R2R_KIND), value :: kind0 |
| 468 |
integer(C_FFTW_R2R_KIND), value :: kind1 |
| 469 |
integer(C_FFTW_R2R_KIND), value :: kind2 |
| 470 |
integer(C_INT), value :: flags |
| 471 |
end function fftw_plan_r2r_3d |
| 472 |
|
| 473 |
type(C_PTR) function fftw_plan_guru_r2r(rank,dims,howmany_rank,howmany_dims,in,out,kind,flags) & |
| 474 |
bind(C, name='fftw_plan_guru_r2r') |
| 475 |
import |
| 476 |
integer(C_INT), value :: rank |
| 477 |
type(fftw_iodim), dimension(*), intent(in) :: dims |
| 478 |
integer(C_INT), value :: howmany_rank |
| 479 |
type(fftw_iodim), dimension(*), intent(in) :: howmany_dims |
| 480 |
real(C_DOUBLE), dimension(*), intent(out) :: in |
| 481 |
real(C_DOUBLE), dimension(*), intent(out) :: out |
| 482 |
integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind |
| 483 |
integer(C_INT), value :: flags |
| 484 |
end function fftw_plan_guru_r2r |
| 485 |
|
| 486 |
type(C_PTR) function fftw_plan_guru64_r2r(rank,dims,howmany_rank,howmany_dims,in,out,kind,flags) & |
| 487 |
bind(C, name='fftw_plan_guru64_r2r') |
| 488 |
import |
| 489 |
integer(C_INT), value :: rank |
| 490 |
type(fftw_iodim64), dimension(*), intent(in) :: dims |
| 491 |
integer(C_INT), value :: howmany_rank |
| 492 |
type(fftw_iodim64), dimension(*), intent(in) :: howmany_dims |
| 493 |
real(C_DOUBLE), dimension(*), intent(out) :: in |
| 494 |
real(C_DOUBLE), dimension(*), intent(out) :: out |
| 495 |
integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind |
| 496 |
integer(C_INT), value :: flags |
| 497 |
end function fftw_plan_guru64_r2r |
| 498 |
|
| 499 |
subroutine fftw_execute_r2r(p,in,out) bind(C, name='fftw_execute_r2r') |
| 500 |
import |
| 501 |
type(C_PTR), value :: p |
| 502 |
real(C_DOUBLE), dimension(*), intent(inout) :: in |
| 503 |
real(C_DOUBLE), dimension(*), intent(out) :: out |
| 504 |
end subroutine fftw_execute_r2r |
| 505 |
|
| 506 |
subroutine fftw_destroy_plan(p) bind(C, name='fftw_destroy_plan') |
| 507 |
import |
| 508 |
type(C_PTR), value :: p |
| 509 |
end subroutine fftw_destroy_plan |
| 510 |
|
| 511 |
subroutine fftw_forget_wisdom() bind(C, name='fftw_forget_wisdom') |
| 512 |
import |
| 513 |
end subroutine fftw_forget_wisdom |
| 514 |
|
| 515 |
subroutine fftw_cleanup() bind(C, name='fftw_cleanup') |
| 516 |
import |
| 517 |
end subroutine fftw_cleanup |
| 518 |
|
| 519 |
subroutine fftw_set_timelimit(t) bind(C, name='fftw_set_timelimit') |
| 520 |
import |
| 521 |
real(C_DOUBLE), value :: t |
| 522 |
end subroutine fftw_set_timelimit |
| 523 |
|
| 524 |
subroutine fftw_plan_with_nthreads(nthreads) bind(C, name='fftw_plan_with_nthreads') |
| 525 |
import |
| 526 |
integer(C_INT), value :: nthreads |
| 527 |
end subroutine fftw_plan_with_nthreads |
| 528 |
|
| 529 |
integer(C_INT) function fftw_init_threads() bind(C, name='fftw_init_threads') |
| 530 |
import |
| 531 |
end function fftw_init_threads |
| 532 |
|
| 533 |
subroutine fftw_cleanup_threads() bind(C, name='fftw_cleanup_threads') |
| 534 |
import |
| 535 |
end subroutine fftw_cleanup_threads |
| 536 |
|
| 537 |
subroutine fftw_make_planner_thread_safe() bind(C, name='fftw_make_planner_thread_safe') |
| 538 |
import |
| 539 |
end subroutine fftw_make_planner_thread_safe |
| 540 |
|
| 541 |
integer(C_INT) function fftw_export_wisdom_to_filename(filename) bind(C, name='fftw_export_wisdom_to_filename') |
| 542 |
import |
| 543 |
character(C_CHAR), dimension(*), intent(in) :: filename |
| 544 |
end function fftw_export_wisdom_to_filename |
| 545 |
|
| 546 |
subroutine fftw_export_wisdom_to_file(output_file) bind(C, name='fftw_export_wisdom_to_file') |
| 547 |
import |
| 548 |
type(C_PTR), value :: output_file |
| 549 |
end subroutine fftw_export_wisdom_to_file |
| 550 |
|
| 551 |
type(C_PTR) function fftw_export_wisdom_to_string() bind(C, name='fftw_export_wisdom_to_string') |
| 552 |
import |
| 553 |
end function fftw_export_wisdom_to_string |
| 554 |
|
| 555 |
subroutine fftw_export_wisdom(write_char,data) bind(C, name='fftw_export_wisdom') |
| 556 |
import |
| 557 |
type(C_FUNPTR), value :: write_char |
| 558 |
type(C_PTR), value :: data |
| 559 |
end subroutine fftw_export_wisdom |
| 560 |
|
| 561 |
integer(C_INT) function fftw_import_system_wisdom() bind(C, name='fftw_import_system_wisdom') |
| 562 |
import |
| 563 |
end function fftw_import_system_wisdom |
| 564 |
|
| 565 |
integer(C_INT) function fftw_import_wisdom_from_filename(filename) bind(C, name='fftw_import_wisdom_from_filename') |
| 566 |
import |
| 567 |
character(C_CHAR), dimension(*), intent(in) :: filename |
| 568 |
end function fftw_import_wisdom_from_filename |
| 569 |
|
| 570 |
integer(C_INT) function fftw_import_wisdom_from_file(input_file) bind(C, name='fftw_import_wisdom_from_file') |
| 571 |
import |
| 572 |
type(C_PTR), value :: input_file |
| 573 |
end function fftw_import_wisdom_from_file |
| 574 |
|
| 575 |
integer(C_INT) function fftw_import_wisdom_from_string(input_string) bind(C, name='fftw_import_wisdom_from_string') |
| 576 |
import |
| 577 |
character(C_CHAR), dimension(*), intent(in) :: input_string |
| 578 |
end function fftw_import_wisdom_from_string |
| 579 |
|
| 580 |
integer(C_INT) function fftw_import_wisdom(read_char,data) bind(C, name='fftw_import_wisdom') |
| 581 |
import |
| 582 |
type(C_FUNPTR), value :: read_char |
| 583 |
type(C_PTR), value :: data |
| 584 |
end function fftw_import_wisdom |
| 585 |
|
| 586 |
subroutine fftw_fprint_plan(p,output_file) bind(C, name='fftw_fprint_plan') |
| 587 |
import |
| 588 |
type(C_PTR), value :: p |
| 589 |
type(C_PTR), value :: output_file |
| 590 |
end subroutine fftw_fprint_plan |
| 591 |
|
| 592 |
subroutine fftw_print_plan(p) bind(C, name='fftw_print_plan') |
| 593 |
import |
| 594 |
type(C_PTR), value :: p |
| 595 |
end subroutine fftw_print_plan |
| 596 |
|
| 597 |
type(C_PTR) function fftw_sprint_plan(p) bind(C, name='fftw_sprint_plan') |
| 598 |
import |
| 599 |
type(C_PTR), value :: p |
| 600 |
end function fftw_sprint_plan |
| 601 |
|
| 602 |
type(C_PTR) function fftw_malloc(n) bind(C, name='fftw_malloc') |
| 603 |
import |
| 604 |
integer(C_SIZE_T), value :: n |
| 605 |
end function fftw_malloc |
| 606 |
|
| 607 |
type(C_PTR) function fftw_alloc_real(n) bind(C, name='fftw_alloc_real') |
| 608 |
import |
| 609 |
integer(C_SIZE_T), value :: n |
| 610 |
end function fftw_alloc_real |
| 611 |
|
| 612 |
type(C_PTR) function fftw_alloc_complex(n) bind(C, name='fftw_alloc_complex') |
| 613 |
import |
| 614 |
integer(C_SIZE_T), value :: n |
| 615 |
end function fftw_alloc_complex |
| 616 |
|
| 617 |
subroutine fftw_free(p) bind(C, name='fftw_free') |
| 618 |
import |
| 619 |
type(C_PTR), value :: p |
| 620 |
end subroutine fftw_free |
| 621 |
|
| 622 |
subroutine fftw_flops(p,add,mul,fmas) bind(C, name='fftw_flops') |
| 623 |
import |
| 624 |
type(C_PTR), value :: p |
| 625 |
real(C_DOUBLE), intent(out) :: add |
| 626 |
real(C_DOUBLE), intent(out) :: mul |
| 627 |
real(C_DOUBLE), intent(out) :: fmas |
| 628 |
end subroutine fftw_flops |
| 629 |
|
| 630 |
real(C_DOUBLE) function fftw_estimate_cost(p) bind(C, name='fftw_estimate_cost') |
| 631 |
import |
| 632 |
type(C_PTR), value :: p |
| 633 |
end function fftw_estimate_cost |
| 634 |
|
| 635 |
real(C_DOUBLE) function fftw_cost(p) bind(C, name='fftw_cost') |
| 636 |
import |
| 637 |
type(C_PTR), value :: p |
| 638 |
end function fftw_cost |
| 639 |
|
| 640 |
integer(C_INT) function fftw_alignment_of(p) bind(C, name='fftw_alignment_of') |
| 641 |
import |
| 642 |
real(C_DOUBLE), dimension(*), intent(out) :: p |
| 643 |
end function fftw_alignment_of |
| 644 |
|
| 645 |
end interface |
| 646 |
|
| 647 |
type, bind(C) :: fftwf_iodim |
| 648 |
integer(C_INT) n, is, os |
| 649 |
end type fftwf_iodim |
| 650 |
type, bind(C) :: fftwf_iodim64 |
| 651 |
integer(C_INTPTR_T) n, is, os |
| 652 |
end type fftwf_iodim64 |
| 653 |
|
| 654 |
interface |
| 655 |
type(C_PTR) function fftwf_plan_dft(rank,n,in,out,sign,flags) bind(C, name='fftwf_plan_dft') |
| 656 |
import |
| 657 |
integer(C_INT), value :: rank |
| 658 |
integer(C_INT), dimension(*), intent(in) :: n |
| 659 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in |
| 660 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out |
| 661 |
integer(C_INT), value :: sign |
| 662 |
integer(C_INT), value :: flags |
| 663 |
end function fftwf_plan_dft |
| 664 |
|
| 665 |
type(C_PTR) function fftwf_plan_dft_1d(n,in,out,sign,flags) bind(C, name='fftwf_plan_dft_1d') |
| 666 |
import |
| 667 |
integer(C_INT), value :: n |
| 668 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in |
| 669 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out |
| 670 |
integer(C_INT), value :: sign |
| 671 |
integer(C_INT), value :: flags |
| 672 |
end function fftwf_plan_dft_1d |
| 673 |
|
| 674 |
type(C_PTR) function fftwf_plan_dft_2d(n0,n1,in,out,sign,flags) bind(C, name='fftwf_plan_dft_2d') |
| 675 |
import |
| 676 |
integer(C_INT), value :: n0 |
| 677 |
integer(C_INT), value :: n1 |
| 678 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in |
| 679 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out |
| 680 |
integer(C_INT), value :: sign |
| 681 |
integer(C_INT), value :: flags |
| 682 |
end function fftwf_plan_dft_2d |
| 683 |
|
| 684 |
type(C_PTR) function fftwf_plan_dft_3d(n0,n1,n2,in,out,sign,flags) bind(C, name='fftwf_plan_dft_3d') |
| 685 |
import |
| 686 |
integer(C_INT), value :: n0 |
| 687 |
integer(C_INT), value :: n1 |
| 688 |
integer(C_INT), value :: n2 |
| 689 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in |
| 690 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out |
| 691 |
integer(C_INT), value :: sign |
| 692 |
integer(C_INT), value :: flags |
| 693 |
end function fftwf_plan_dft_3d |
| 694 |
|
| 695 |
type(C_PTR) function fftwf_plan_many_dft(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,sign,flags) & |
| 696 |
bind(C, name='fftwf_plan_many_dft') |
| 697 |
import |
| 698 |
integer(C_INT), value :: rank |
| 699 |
integer(C_INT), dimension(*), intent(in) :: n |
| 700 |
integer(C_INT), value :: howmany |
| 701 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in |
| 702 |
integer(C_INT), dimension(*), intent(in) :: inembed |
| 703 |
integer(C_INT), value :: istride |
| 704 |
integer(C_INT), value :: idist |
| 705 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out |
| 706 |
integer(C_INT), dimension(*), intent(in) :: onembed |
| 707 |
integer(C_INT), value :: ostride |
| 708 |
integer(C_INT), value :: odist |
| 709 |
integer(C_INT), value :: sign |
| 710 |
integer(C_INT), value :: flags |
| 711 |
end function fftwf_plan_many_dft |
| 712 |
|
| 713 |
type(C_PTR) function fftwf_plan_guru_dft(rank,dims,howmany_rank,howmany_dims,in,out,sign,flags) & |
| 714 |
bind(C, name='fftwf_plan_guru_dft') |
| 715 |
import |
| 716 |
integer(C_INT), value :: rank |
| 717 |
type(fftwf_iodim), dimension(*), intent(in) :: dims |
| 718 |
integer(C_INT), value :: howmany_rank |
| 719 |
type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims |
| 720 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in |
| 721 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out |
| 722 |
integer(C_INT), value :: sign |
| 723 |
integer(C_INT), value :: flags |
| 724 |
end function fftwf_plan_guru_dft |
| 725 |
|
| 726 |
type(C_PTR) function fftwf_plan_guru_split_dft(rank,dims,howmany_rank,howmany_dims,ri,ii,ro,io,flags) & |
| 727 |
bind(C, name='fftwf_plan_guru_split_dft') |
| 728 |
import |
| 729 |
integer(C_INT), value :: rank |
| 730 |
type(fftwf_iodim), dimension(*), intent(in) :: dims |
| 731 |
integer(C_INT), value :: howmany_rank |
| 732 |
type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims |
| 733 |
real(C_FLOAT), dimension(*), intent(out) :: ri |
| 734 |
real(C_FLOAT), dimension(*), intent(out) :: ii |
| 735 |
real(C_FLOAT), dimension(*), intent(out) :: ro |
| 736 |
real(C_FLOAT), dimension(*), intent(out) :: io |
| 737 |
integer(C_INT), value :: flags |
| 738 |
end function fftwf_plan_guru_split_dft |
| 739 |
|
| 740 |
type(C_PTR) function fftwf_plan_guru64_dft(rank,dims,howmany_rank,howmany_dims,in,out,sign,flags) & |
| 741 |
bind(C, name='fftwf_plan_guru64_dft') |
| 742 |
import |
| 743 |
integer(C_INT), value :: rank |
| 744 |
type(fftwf_iodim64), dimension(*), intent(in) :: dims |
| 745 |
integer(C_INT), value :: howmany_rank |
| 746 |
type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims |
| 747 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in |
| 748 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out |
| 749 |
integer(C_INT), value :: sign |
| 750 |
integer(C_INT), value :: flags |
| 751 |
end function fftwf_plan_guru64_dft |
| 752 |
|
| 753 |
type(C_PTR) function fftwf_plan_guru64_split_dft(rank,dims,howmany_rank,howmany_dims,ri,ii,ro,io,flags) & |
| 754 |
bind(C, name='fftwf_plan_guru64_split_dft') |
| 755 |
import |
| 756 |
integer(C_INT), value :: rank |
| 757 |
type(fftwf_iodim64), dimension(*), intent(in) :: dims |
| 758 |
integer(C_INT), value :: howmany_rank |
| 759 |
type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims |
| 760 |
real(C_FLOAT), dimension(*), intent(out) :: ri |
| 761 |
real(C_FLOAT), dimension(*), intent(out) :: ii |
| 762 |
real(C_FLOAT), dimension(*), intent(out) :: ro |
| 763 |
real(C_FLOAT), dimension(*), intent(out) :: io |
| 764 |
integer(C_INT), value :: flags |
| 765 |
end function fftwf_plan_guru64_split_dft |
| 766 |
|
| 767 |
subroutine fftwf_execute_dft(p,in,out) bind(C, name='fftwf_execute_dft') |
| 768 |
import |
| 769 |
type(C_PTR), value :: p |
| 770 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(inout) :: in |
| 771 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out |
| 772 |
end subroutine fftwf_execute_dft |
| 773 |
|
| 774 |
subroutine fftwf_execute_split_dft(p,ri,ii,ro,io) bind(C, name='fftwf_execute_split_dft') |
| 775 |
import |
| 776 |
type(C_PTR), value :: p |
| 777 |
real(C_FLOAT), dimension(*), intent(inout) :: ri |
| 778 |
real(C_FLOAT), dimension(*), intent(inout) :: ii |
| 779 |
real(C_FLOAT), dimension(*), intent(out) :: ro |
| 780 |
real(C_FLOAT), dimension(*), intent(out) :: io |
| 781 |
end subroutine fftwf_execute_split_dft |
| 782 |
|
| 783 |
type(C_PTR) function fftwf_plan_many_dft_r2c(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,flags) & |
| 784 |
bind(C, name='fftwf_plan_many_dft_r2c') |
| 785 |
import |
| 786 |
integer(C_INT), value :: rank |
| 787 |
integer(C_INT), dimension(*), intent(in) :: n |
| 788 |
integer(C_INT), value :: howmany |
| 789 |
real(C_FLOAT), dimension(*), intent(out) :: in |
| 790 |
integer(C_INT), dimension(*), intent(in) :: inembed |
| 791 |
integer(C_INT), value :: istride |
| 792 |
integer(C_INT), value :: idist |
| 793 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out |
| 794 |
integer(C_INT), dimension(*), intent(in) :: onembed |
| 795 |
integer(C_INT), value :: ostride |
| 796 |
integer(C_INT), value :: odist |
| 797 |
integer(C_INT), value :: flags |
| 798 |
end function fftwf_plan_many_dft_r2c |
| 799 |
|
| 800 |
type(C_PTR) function fftwf_plan_dft_r2c(rank,n,in,out,flags) bind(C, name='fftwf_plan_dft_r2c') |
| 801 |
import |
| 802 |
integer(C_INT), value :: rank |
| 803 |
integer(C_INT), dimension(*), intent(in) :: n |
| 804 |
real(C_FLOAT), dimension(*), intent(out) :: in |
| 805 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out |
| 806 |
integer(C_INT), value :: flags |
| 807 |
end function fftwf_plan_dft_r2c |
| 808 |
|
| 809 |
type(C_PTR) function fftwf_plan_dft_r2c_1d(n,in,out,flags) bind(C, name='fftwf_plan_dft_r2c_1d') |
| 810 |
import |
| 811 |
integer(C_INT), value :: n |
| 812 |
real(C_FLOAT), dimension(*), intent(out) :: in |
| 813 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out |
| 814 |
integer(C_INT), value :: flags |
| 815 |
end function fftwf_plan_dft_r2c_1d |
| 816 |
|
| 817 |
type(C_PTR) function fftwf_plan_dft_r2c_2d(n0,n1,in,out,flags) bind(C, name='fftwf_plan_dft_r2c_2d') |
| 818 |
import |
| 819 |
integer(C_INT), value :: n0 |
| 820 |
integer(C_INT), value :: n1 |
| 821 |
real(C_FLOAT), dimension(*), intent(out) :: in |
| 822 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out |
| 823 |
integer(C_INT), value :: flags |
| 824 |
end function fftwf_plan_dft_r2c_2d |
| 825 |
|
| 826 |
type(C_PTR) function fftwf_plan_dft_r2c_3d(n0,n1,n2,in,out,flags) bind(C, name='fftwf_plan_dft_r2c_3d') |
| 827 |
import |
| 828 |
integer(C_INT), value :: n0 |
| 829 |
integer(C_INT), value :: n1 |
| 830 |
integer(C_INT), value :: n2 |
| 831 |
real(C_FLOAT), dimension(*), intent(out) :: in |
| 832 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out |
| 833 |
integer(C_INT), value :: flags |
| 834 |
end function fftwf_plan_dft_r2c_3d |
| 835 |
|
| 836 |
type(C_PTR) function fftwf_plan_many_dft_c2r(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,flags) & |
| 837 |
bind(C, name='fftwf_plan_many_dft_c2r') |
| 838 |
import |
| 839 |
integer(C_INT), value :: rank |
| 840 |
integer(C_INT), dimension(*), intent(in) :: n |
| 841 |
integer(C_INT), value :: howmany |
| 842 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in |
| 843 |
integer(C_INT), dimension(*), intent(in) :: inembed |
| 844 |
integer(C_INT), value :: istride |
| 845 |
integer(C_INT), value :: idist |
| 846 |
real(C_FLOAT), dimension(*), intent(out) :: out |
| 847 |
integer(C_INT), dimension(*), intent(in) :: onembed |
| 848 |
integer(C_INT), value :: ostride |
| 849 |
integer(C_INT), value :: odist |
| 850 |
integer(C_INT), value :: flags |
| 851 |
end function fftwf_plan_many_dft_c2r |
| 852 |
|
| 853 |
type(C_PTR) function fftwf_plan_dft_c2r(rank,n,in,out,flags) bind(C, name='fftwf_plan_dft_c2r') |
| 854 |
import |
| 855 |
integer(C_INT), value :: rank |
| 856 |
integer(C_INT), dimension(*), intent(in) :: n |
| 857 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in |
| 858 |
real(C_FLOAT), dimension(*), intent(out) :: out |
| 859 |
integer(C_INT), value :: flags |
| 860 |
end function fftwf_plan_dft_c2r |
| 861 |
|
| 862 |
type(C_PTR) function fftwf_plan_dft_c2r_1d(n,in,out,flags) bind(C, name='fftwf_plan_dft_c2r_1d') |
| 863 |
import |
| 864 |
integer(C_INT), value :: n |
| 865 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in |
| 866 |
real(C_FLOAT), dimension(*), intent(out) :: out |
| 867 |
integer(C_INT), value :: flags |
| 868 |
end function fftwf_plan_dft_c2r_1d |
| 869 |
|
| 870 |
type(C_PTR) function fftwf_plan_dft_c2r_2d(n0,n1,in,out,flags) bind(C, name='fftwf_plan_dft_c2r_2d') |
| 871 |
import |
| 872 |
integer(C_INT), value :: n0 |
| 873 |
integer(C_INT), value :: n1 |
| 874 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in |
| 875 |
real(C_FLOAT), dimension(*), intent(out) :: out |
| 876 |
integer(C_INT), value :: flags |
| 877 |
end function fftwf_plan_dft_c2r_2d |
| 878 |
|
| 879 |
type(C_PTR) function fftwf_plan_dft_c2r_3d(n0,n1,n2,in,out,flags) bind(C, name='fftwf_plan_dft_c2r_3d') |
| 880 |
import |
| 881 |
integer(C_INT), value :: n0 |
| 882 |
integer(C_INT), value :: n1 |
| 883 |
integer(C_INT), value :: n2 |
| 884 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in |
| 885 |
real(C_FLOAT), dimension(*), intent(out) :: out |
| 886 |
integer(C_INT), value :: flags |
| 887 |
end function fftwf_plan_dft_c2r_3d |
| 888 |
|
| 889 |
type(C_PTR) function fftwf_plan_guru_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,out,flags) & |
| 890 |
bind(C, name='fftwf_plan_guru_dft_r2c') |
| 891 |
import |
| 892 |
integer(C_INT), value :: rank |
| 893 |
type(fftwf_iodim), dimension(*), intent(in) :: dims |
| 894 |
integer(C_INT), value :: howmany_rank |
| 895 |
type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims |
| 896 |
real(C_FLOAT), dimension(*), intent(out) :: in |
| 897 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out |
| 898 |
integer(C_INT), value :: flags |
| 899 |
end function fftwf_plan_guru_dft_r2c |
| 900 |
|
| 901 |
type(C_PTR) function fftwf_plan_guru_dft_c2r(rank,dims,howmany_rank,howmany_dims,in,out,flags) & |
| 902 |
bind(C, name='fftwf_plan_guru_dft_c2r') |
| 903 |
import |
| 904 |
integer(C_INT), value :: rank |
| 905 |
type(fftwf_iodim), dimension(*), intent(in) :: dims |
| 906 |
integer(C_INT), value :: howmany_rank |
| 907 |
type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims |
| 908 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in |
| 909 |
real(C_FLOAT), dimension(*), intent(out) :: out |
| 910 |
integer(C_INT), value :: flags |
| 911 |
end function fftwf_plan_guru_dft_c2r |
| 912 |
|
| 913 |
type(C_PTR) function fftwf_plan_guru_split_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,ro,io,flags) & |
| 914 |
bind(C, name='fftwf_plan_guru_split_dft_r2c') |
| 915 |
import |
| 916 |
integer(C_INT), value :: rank |
| 917 |
type(fftwf_iodim), dimension(*), intent(in) :: dims |
| 918 |
integer(C_INT), value :: howmany_rank |
| 919 |
type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims |
| 920 |
real(C_FLOAT), dimension(*), intent(out) :: in |
| 921 |
real(C_FLOAT), dimension(*), intent(out) :: ro |
| 922 |
real(C_FLOAT), dimension(*), intent(out) :: io |
| 923 |
integer(C_INT), value :: flags |
| 924 |
end function fftwf_plan_guru_split_dft_r2c |
| 925 |
|
| 926 |
type(C_PTR) function fftwf_plan_guru_split_dft_c2r(rank,dims,howmany_rank,howmany_dims,ri,ii,out,flags) & |
| 927 |
bind(C, name='fftwf_plan_guru_split_dft_c2r') |
| 928 |
import |
| 929 |
integer(C_INT), value :: rank |
| 930 |
type(fftwf_iodim), dimension(*), intent(in) :: dims |
| 931 |
integer(C_INT), value :: howmany_rank |
| 932 |
type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims |
| 933 |
real(C_FLOAT), dimension(*), intent(out) :: ri |
| 934 |
real(C_FLOAT), dimension(*), intent(out) :: ii |
| 935 |
real(C_FLOAT), dimension(*), intent(out) :: out |
| 936 |
integer(C_INT), value :: flags |
| 937 |
end function fftwf_plan_guru_split_dft_c2r |
| 938 |
|
| 939 |
type(C_PTR) function fftwf_plan_guru64_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,out,flags) & |
| 940 |
bind(C, name='fftwf_plan_guru64_dft_r2c') |
| 941 |
import |
| 942 |
integer(C_INT), value :: rank |
| 943 |
type(fftwf_iodim64), dimension(*), intent(in) :: dims |
| 944 |
integer(C_INT), value :: howmany_rank |
| 945 |
type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims |
| 946 |
real(C_FLOAT), dimension(*), intent(out) :: in |
| 947 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out |
| 948 |
integer(C_INT), value :: flags |
| 949 |
end function fftwf_plan_guru64_dft_r2c |
| 950 |
|
| 951 |
type(C_PTR) function fftwf_plan_guru64_dft_c2r(rank,dims,howmany_rank,howmany_dims,in,out,flags) & |
| 952 |
bind(C, name='fftwf_plan_guru64_dft_c2r') |
| 953 |
import |
| 954 |
integer(C_INT), value :: rank |
| 955 |
type(fftwf_iodim64), dimension(*), intent(in) :: dims |
| 956 |
integer(C_INT), value :: howmany_rank |
| 957 |
type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims |
| 958 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: in |
| 959 |
real(C_FLOAT), dimension(*), intent(out) :: out |
| 960 |
integer(C_INT), value :: flags |
| 961 |
end function fftwf_plan_guru64_dft_c2r |
| 962 |
|
| 963 |
type(C_PTR) function fftwf_plan_guru64_split_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,ro,io,flags) & |
| 964 |
bind(C, name='fftwf_plan_guru64_split_dft_r2c') |
| 965 |
import |
| 966 |
integer(C_INT), value :: rank |
| 967 |
type(fftwf_iodim64), dimension(*), intent(in) :: dims |
| 968 |
integer(C_INT), value :: howmany_rank |
| 969 |
type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims |
| 970 |
real(C_FLOAT), dimension(*), intent(out) :: in |
| 971 |
real(C_FLOAT), dimension(*), intent(out) :: ro |
| 972 |
real(C_FLOAT), dimension(*), intent(out) :: io |
| 973 |
integer(C_INT), value :: flags |
| 974 |
end function fftwf_plan_guru64_split_dft_r2c |
| 975 |
|
| 976 |
type(C_PTR) function fftwf_plan_guru64_split_dft_c2r(rank,dims,howmany_rank,howmany_dims,ri,ii,out,flags) & |
| 977 |
bind(C, name='fftwf_plan_guru64_split_dft_c2r') |
| 978 |
import |
| 979 |
integer(C_INT), value :: rank |
| 980 |
type(fftwf_iodim64), dimension(*), intent(in) :: dims |
| 981 |
integer(C_INT), value :: howmany_rank |
| 982 |
type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims |
| 983 |
real(C_FLOAT), dimension(*), intent(out) :: ri |
| 984 |
real(C_FLOAT), dimension(*), intent(out) :: ii |
| 985 |
real(C_FLOAT), dimension(*), intent(out) :: out |
| 986 |
integer(C_INT), value :: flags |
| 987 |
end function fftwf_plan_guru64_split_dft_c2r |
| 988 |
|
| 989 |
subroutine fftwf_execute_dft_r2c(p,in,out) bind(C, name='fftwf_execute_dft_r2c') |
| 990 |
import |
| 991 |
type(C_PTR), value :: p |
| 992 |
real(C_FLOAT), dimension(*), intent(inout) :: in |
| 993 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(out) :: out |
| 994 |
end subroutine fftwf_execute_dft_r2c |
| 995 |
|
| 996 |
subroutine fftwf_execute_dft_c2r(p,in,out) bind(C, name='fftwf_execute_dft_c2r') |
| 997 |
import |
| 998 |
type(C_PTR), value :: p |
| 999 |
complex(C_FLOAT_COMPLEX), dimension(*), intent(inout) :: in |
| 1000 |
real(C_FLOAT), dimension(*), intent(out) :: out |
| 1001 |
end subroutine fftwf_execute_dft_c2r |
| 1002 |
|
| 1003 |
subroutine fftwf_execute_split_dft_r2c(p,in,ro,io) bind(C, name='fftwf_execute_split_dft_r2c') |
| 1004 |
import |
| 1005 |
type(C_PTR), value :: p |
| 1006 |
real(C_FLOAT), dimension(*), intent(inout) :: in |
| 1007 |
real(C_FLOAT), dimension(*), intent(out) :: ro |
| 1008 |
real(C_FLOAT), dimension(*), intent(out) :: io |
| 1009 |
end subroutine fftwf_execute_split_dft_r2c |
| 1010 |
|
| 1011 |
subroutine fftwf_execute_split_dft_c2r(p,ri,ii,out) bind(C, name='fftwf_execute_split_dft_c2r') |
| 1012 |
import |
| 1013 |
type(C_PTR), value :: p |
| 1014 |
real(C_FLOAT), dimension(*), intent(inout) :: ri |
| 1015 |
real(C_FLOAT), dimension(*), intent(inout) :: ii |
| 1016 |
real(C_FLOAT), dimension(*), intent(out) :: out |
| 1017 |
end subroutine fftwf_execute_split_dft_c2r |
| 1018 |
|
| 1019 |
type(C_PTR) function fftwf_plan_many_r2r(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,kind,flags) & |
| 1020 |
bind(C, name='fftwf_plan_many_r2r') |
| 1021 |
import |
| 1022 |
integer(C_INT), value :: rank |
| 1023 |
integer(C_INT), dimension(*), intent(in) :: n |
| 1024 |
integer(C_INT), value :: howmany |
| 1025 |
real(C_FLOAT), dimension(*), intent(out) :: in |
| 1026 |
integer(C_INT), dimension(*), intent(in) :: inembed |
| 1027 |
integer(C_INT), value :: istride |
| 1028 |
integer(C_INT), value :: idist |
| 1029 |
real(C_FLOAT), dimension(*), intent(out) :: out |
| 1030 |
integer(C_INT), dimension(*), intent(in) :: onembed |
| 1031 |
integer(C_INT), value :: ostride |
| 1032 |
integer(C_INT), value :: odist |
| 1033 |
integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind |
| 1034 |
integer(C_INT), value :: flags |
| 1035 |
end function fftwf_plan_many_r2r |
| 1036 |
|
| 1037 |
type(C_PTR) function fftwf_plan_r2r(rank,n,in,out,kind,flags) bind(C, name='fftwf_plan_r2r') |
| 1038 |
import |
| 1039 |
integer(C_INT), value :: rank |
| 1040 |
integer(C_INT), dimension(*), intent(in) :: n |
| 1041 |
real(C_FLOAT), dimension(*), intent(out) :: in |
| 1042 |
real(C_FLOAT), dimension(*), intent(out) :: out |
| 1043 |
integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind |
| 1044 |
integer(C_INT), value :: flags |
| 1045 |
end function fftwf_plan_r2r |
| 1046 |
|
| 1047 |
type(C_PTR) function fftwf_plan_r2r_1d(n,in,out,kind,flags) bind(C, name='fftwf_plan_r2r_1d') |
| 1048 |
import |
| 1049 |
integer(C_INT), value :: n |
| 1050 |
real(C_FLOAT), dimension(*), intent(out) :: in |
| 1051 |
real(C_FLOAT), dimension(*), intent(out) :: out |
| 1052 |
integer(C_FFTW_R2R_KIND), value :: kind |
| 1053 |
integer(C_INT), value :: flags |
| 1054 |
end function fftwf_plan_r2r_1d |
| 1055 |
|
| 1056 |
type(C_PTR) function fftwf_plan_r2r_2d(n0,n1,in,out,kind0,kind1,flags) bind(C, name='fftwf_plan_r2r_2d') |
| 1057 |
import |
| 1058 |
integer(C_INT), value :: n0 |
| 1059 |
integer(C_INT), value :: n1 |
| 1060 |
real(C_FLOAT), dimension(*), intent(out) :: in |
| 1061 |
real(C_FLOAT), dimension(*), intent(out) :: out |
| 1062 |
integer(C_FFTW_R2R_KIND), value :: kind0 |
| 1063 |
integer(C_FFTW_R2R_KIND), value :: kind1 |
| 1064 |
integer(C_INT), value :: flags |
| 1065 |
end function fftwf_plan_r2r_2d |
| 1066 |
|
| 1067 |
type(C_PTR) function fftwf_plan_r2r_3d(n0,n1,n2,in,out,kind0,kind1,kind2,flags) bind(C, name='fftwf_plan_r2r_3d') |
| 1068 |
import |
| 1069 |
integer(C_INT), value :: n0 |
| 1070 |
integer(C_INT), value :: n1 |
| 1071 |
integer(C_INT), value :: n2 |
| 1072 |
real(C_FLOAT), dimension(*), intent(out) :: in |
| 1073 |
real(C_FLOAT), dimension(*), intent(out) :: out |
| 1074 |
integer(C_FFTW_R2R_KIND), value :: kind0 |
| 1075 |
integer(C_FFTW_R2R_KIND), value :: kind1 |
| 1076 |
integer(C_FFTW_R2R_KIND), value :: kind2 |
| 1077 |
integer(C_INT), value :: flags |
| 1078 |
end function fftwf_plan_r2r_3d |
| 1079 |
|
| 1080 |
type(C_PTR) function fftwf_plan_guru_r2r(rank,dims,howmany_rank,howmany_dims,in,out,kind,flags) & |
| 1081 |
bind(C, name='fftwf_plan_guru_r2r') |
| 1082 |
import |
| 1083 |
integer(C_INT), value :: rank |
| 1084 |
type(fftwf_iodim), dimension(*), intent(in) :: dims |
| 1085 |
integer(C_INT), value :: howmany_rank |
| 1086 |
type(fftwf_iodim), dimension(*), intent(in) :: howmany_dims |
| 1087 |
real(C_FLOAT), dimension(*), intent(out) :: in |
| 1088 |
real(C_FLOAT), dimension(*), intent(out) :: out |
| 1089 |
integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind |
| 1090 |
integer(C_INT), value :: flags |
| 1091 |
end function fftwf_plan_guru_r2r |
| 1092 |
|
| 1093 |
type(C_PTR) function fftwf_plan_guru64_r2r(rank,dims,howmany_rank,howmany_dims,in,out,kind,flags) & |
| 1094 |
bind(C, name='fftwf_plan_guru64_r2r') |
| 1095 |
import |
| 1096 |
integer(C_INT), value :: rank |
| 1097 |
type(fftwf_iodim64), dimension(*), intent(in) :: dims |
| 1098 |
integer(C_INT), value :: howmany_rank |
| 1099 |
type(fftwf_iodim64), dimension(*), intent(in) :: howmany_dims |
| 1100 |
real(C_FLOAT), dimension(*), intent(out) :: in |
| 1101 |
real(C_FLOAT), dimension(*), intent(out) :: out |
| 1102 |
integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind |
| 1103 |
integer(C_INT), value :: flags |
| 1104 |
end function fftwf_plan_guru64_r2r |
| 1105 |
|
| 1106 |
subroutine fftwf_execute_r2r(p,in,out) bind(C, name='fftwf_execute_r2r') |
| 1107 |
import |
| 1108 |
type(C_PTR), value :: p |
| 1109 |
real(C_FLOAT), dimension(*), intent(inout) :: in |
| 1110 |
real(C_FLOAT), dimension(*), intent(out) :: out |
| 1111 |
end subroutine fftwf_execute_r2r |
| 1112 |
|
| 1113 |
subroutine fftwf_destroy_plan(p) bind(C, name='fftwf_destroy_plan') |
| 1114 |
import |
| 1115 |
type(C_PTR), value :: p |
| 1116 |
end subroutine fftwf_destroy_plan |
| 1117 |
|
| 1118 |
subroutine fftwf_forget_wisdom() bind(C, name='fftwf_forget_wisdom') |
| 1119 |
import |
| 1120 |
end subroutine fftwf_forget_wisdom |
| 1121 |
|
| 1122 |
subroutine fftwf_cleanup() bind(C, name='fftwf_cleanup') |
| 1123 |
import |
| 1124 |
end subroutine fftwf_cleanup |
| 1125 |
|
| 1126 |
subroutine fftwf_set_timelimit(t) bind(C, name='fftwf_set_timelimit') |
| 1127 |
import |
| 1128 |
real(C_DOUBLE), value :: t |
| 1129 |
end subroutine fftwf_set_timelimit |
| 1130 |
|
| 1131 |
subroutine fftwf_plan_with_nthreads(nthreads) bind(C, name='fftwf_plan_with_nthreads') |
| 1132 |
import |
| 1133 |
integer(C_INT), value :: nthreads |
| 1134 |
end subroutine fftwf_plan_with_nthreads |
| 1135 |
|
| 1136 |
integer(C_INT) function fftwf_init_threads() bind(C, name='fftwf_init_threads') |
| 1137 |
import |
| 1138 |
end function fftwf_init_threads |
| 1139 |
|
| 1140 |
subroutine fftwf_cleanup_threads() bind(C, name='fftwf_cleanup_threads') |
| 1141 |
import |
| 1142 |
end subroutine fftwf_cleanup_threads |
| 1143 |
|
| 1144 |
subroutine fftwf_make_planner_thread_safe() bind(C, name='fftwf_make_planner_thread_safe') |
| 1145 |
import |
| 1146 |
end subroutine fftwf_make_planner_thread_safe |
| 1147 |
|
| 1148 |
integer(C_INT) function fftwf_export_wisdom_to_filename(filename) bind(C, name='fftwf_export_wisdom_to_filename') |
| 1149 |
import |
| 1150 |
character(C_CHAR), dimension(*), intent(in) :: filename |
| 1151 |
end function fftwf_export_wisdom_to_filename |
| 1152 |
|
| 1153 |
subroutine fftwf_export_wisdom_to_file(output_file) bind(C, name='fftwf_export_wisdom_to_file') |
| 1154 |
import |
| 1155 |
type(C_PTR), value :: output_file |
| 1156 |
end subroutine fftwf_export_wisdom_to_file |
| 1157 |
|
| 1158 |
type(C_PTR) function fftwf_export_wisdom_to_string() bind(C, name='fftwf_export_wisdom_to_string') |
| 1159 |
import |
| 1160 |
end function fftwf_export_wisdom_to_string |
| 1161 |
|
| 1162 |
subroutine fftwf_export_wisdom(write_char,data) bind(C, name='fftwf_export_wisdom') |
| 1163 |
import |
| 1164 |
type(C_FUNPTR), value :: write_char |
| 1165 |
type(C_PTR), value :: data |
| 1166 |
end subroutine fftwf_export_wisdom |
| 1167 |
|
| 1168 |
integer(C_INT) function fftwf_import_system_wisdom() bind(C, name='fftwf_import_system_wisdom') |
| 1169 |
import |
| 1170 |
end function fftwf_import_system_wisdom |
| 1171 |
|
| 1172 |
integer(C_INT) function fftwf_import_wisdom_from_filename(filename) bind(C, name='fftwf_import_wisdom_from_filename') |
| 1173 |
import |
| 1174 |
character(C_CHAR), dimension(*), intent(in) :: filename |
| 1175 |
end function fftwf_import_wisdom_from_filename |
| 1176 |
|
| 1177 |
integer(C_INT) function fftwf_import_wisdom_from_file(input_file) bind(C, name='fftwf_import_wisdom_from_file') |
| 1178 |
import |
| 1179 |
type(C_PTR), value :: input_file |
| 1180 |
end function fftwf_import_wisdom_from_file |
| 1181 |
|
| 1182 |
integer(C_INT) function fftwf_import_wisdom_from_string(input_string) bind(C, name='fftwf_import_wisdom_from_string') |
| 1183 |
import |
| 1184 |
character(C_CHAR), dimension(*), intent(in) :: input_string |
| 1185 |
end function fftwf_import_wisdom_from_string |
| 1186 |
|
| 1187 |
integer(C_INT) function fftwf_import_wisdom(read_char,data) bind(C, name='fftwf_import_wisdom') |
| 1188 |
import |
| 1189 |
type(C_FUNPTR), value :: read_char |
| 1190 |
type(C_PTR), value :: data |
| 1191 |
end function fftwf_import_wisdom |
| 1192 |
|
| 1193 |
subroutine fftwf_fprint_plan(p,output_file) bind(C, name='fftwf_fprint_plan') |
| 1194 |
import |
| 1195 |
type(C_PTR), value :: p |
| 1196 |
type(C_PTR), value :: output_file |
| 1197 |
end subroutine fftwf_fprint_plan |
| 1198 |
|
| 1199 |
subroutine fftwf_print_plan(p) bind(C, name='fftwf_print_plan') |
| 1200 |
import |
| 1201 |
type(C_PTR), value :: p |
| 1202 |
end subroutine fftwf_print_plan |
| 1203 |
|
| 1204 |
type(C_PTR) function fftwf_sprint_plan(p) bind(C, name='fftwf_sprint_plan') |
| 1205 |
import |
| 1206 |
type(C_PTR), value :: p |
| 1207 |
end function fftwf_sprint_plan |
| 1208 |
|
| 1209 |
type(C_PTR) function fftwf_malloc(n) bind(C, name='fftwf_malloc') |
| 1210 |
import |
| 1211 |
integer(C_SIZE_T), value :: n |
| 1212 |
end function fftwf_malloc |
| 1213 |
|
| 1214 |
type(C_PTR) function fftwf_alloc_real(n) bind(C, name='fftwf_alloc_real') |
| 1215 |
import |
| 1216 |
integer(C_SIZE_T), value :: n |
| 1217 |
end function fftwf_alloc_real |
| 1218 |
|
| 1219 |
type(C_PTR) function fftwf_alloc_complex(n) bind(C, name='fftwf_alloc_complex') |
| 1220 |
import |
| 1221 |
integer(C_SIZE_T), value :: n |
| 1222 |
end function fftwf_alloc_complex |
| 1223 |
|
| 1224 |
subroutine fftwf_free(p) bind(C, name='fftwf_free') |
| 1225 |
import |
| 1226 |
type(C_PTR), value :: p |
| 1227 |
end subroutine fftwf_free |
| 1228 |
|
| 1229 |
subroutine fftwf_flops(p,add,mul,fmas) bind(C, name='fftwf_flops') |
| 1230 |
import |
| 1231 |
type(C_PTR), value :: p |
| 1232 |
real(C_DOUBLE), intent(out) :: add |
| 1233 |
real(C_DOUBLE), intent(out) :: mul |
| 1234 |
real(C_DOUBLE), intent(out) :: fmas |
| 1235 |
end subroutine fftwf_flops |
| 1236 |
|
| 1237 |
real(C_DOUBLE) function fftwf_estimate_cost(p) bind(C, name='fftwf_estimate_cost') |
| 1238 |
import |
| 1239 |
type(C_PTR), value :: p |
| 1240 |
end function fftwf_estimate_cost |
| 1241 |
|
| 1242 |
real(C_DOUBLE) function fftwf_cost(p) bind(C, name='fftwf_cost') |
| 1243 |
import |
| 1244 |
type(C_PTR), value :: p |
| 1245 |
end function fftwf_cost |
| 1246 |
|
| 1247 |
integer(C_INT) function fftwf_alignment_of(p) bind(C, name='fftwf_alignment_of') |
| 1248 |
import |
| 1249 |
real(C_FLOAT), dimension(*), intent(out) :: p |
| 1250 |
end function fftwf_alignment_of |
| 1251 |
|
| 1252 |
end interface |