annotate src/fftw-3.3.3/api/fftw3.f03.in @ 23:619f715526df sv_v2.1

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