annotate src/fftw-3.3.5/api/fftw3l.f03 @ 55:284acf908dcd

Add source for PortAudio stable v190600_20161030
author Chris Cannam
date Tue, 03 Jan 2017 13:44:07 +0000
parents 2cd0e3b3e1fd
children
rev   line source
Chris@42 1 ! Generated automatically. DO NOT EDIT!
Chris@42 2
Chris@42 3
Chris@42 4 type, bind(C) :: fftwl_iodim
Chris@42 5 integer(C_INT) n, is, os
Chris@42 6 end type fftwl_iodim
Chris@42 7 type, bind(C) :: fftwl_iodim64
Chris@42 8 integer(C_INTPTR_T) n, is, os
Chris@42 9 end type fftwl_iodim64
Chris@42 10
Chris@42 11 interface
Chris@42 12 type(C_PTR) function fftwl_plan_dft(rank,n,in,out,sign,flags) bind(C, name='fftwl_plan_dft')
Chris@42 13 import
Chris@42 14 integer(C_INT), value :: rank
Chris@42 15 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 16 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 17 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 18 integer(C_INT), value :: sign
Chris@42 19 integer(C_INT), value :: flags
Chris@42 20 end function fftwl_plan_dft
Chris@42 21
Chris@42 22 type(C_PTR) function fftwl_plan_dft_1d(n,in,out,sign,flags) bind(C, name='fftwl_plan_dft_1d')
Chris@42 23 import
Chris@42 24 integer(C_INT), value :: n
Chris@42 25 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 26 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 27 integer(C_INT), value :: sign
Chris@42 28 integer(C_INT), value :: flags
Chris@42 29 end function fftwl_plan_dft_1d
Chris@42 30
Chris@42 31 type(C_PTR) function fftwl_plan_dft_2d(n0,n1,in,out,sign,flags) bind(C, name='fftwl_plan_dft_2d')
Chris@42 32 import
Chris@42 33 integer(C_INT), value :: n0
Chris@42 34 integer(C_INT), value :: n1
Chris@42 35 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 36 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 37 integer(C_INT), value :: sign
Chris@42 38 integer(C_INT), value :: flags
Chris@42 39 end function fftwl_plan_dft_2d
Chris@42 40
Chris@42 41 type(C_PTR) function fftwl_plan_dft_3d(n0,n1,n2,in,out,sign,flags) bind(C, name='fftwl_plan_dft_3d')
Chris@42 42 import
Chris@42 43 integer(C_INT), value :: n0
Chris@42 44 integer(C_INT), value :: n1
Chris@42 45 integer(C_INT), value :: n2
Chris@42 46 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 47 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 48 integer(C_INT), value :: sign
Chris@42 49 integer(C_INT), value :: flags
Chris@42 50 end function fftwl_plan_dft_3d
Chris@42 51
Chris@42 52 type(C_PTR) function fftwl_plan_many_dft(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,sign,flags) &
Chris@42 53 bind(C, name='fftwl_plan_many_dft')
Chris@42 54 import
Chris@42 55 integer(C_INT), value :: rank
Chris@42 56 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 57 integer(C_INT), value :: howmany
Chris@42 58 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 59 integer(C_INT), dimension(*), intent(in) :: inembed
Chris@42 60 integer(C_INT), value :: istride
Chris@42 61 integer(C_INT), value :: idist
Chris@42 62 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 63 integer(C_INT), dimension(*), intent(in) :: onembed
Chris@42 64 integer(C_INT), value :: ostride
Chris@42 65 integer(C_INT), value :: odist
Chris@42 66 integer(C_INT), value :: sign
Chris@42 67 integer(C_INT), value :: flags
Chris@42 68 end function fftwl_plan_many_dft
Chris@42 69
Chris@42 70 type(C_PTR) function fftwl_plan_guru_dft(rank,dims,howmany_rank,howmany_dims,in,out,sign,flags) &
Chris@42 71 bind(C, name='fftwl_plan_guru_dft')
Chris@42 72 import
Chris@42 73 integer(C_INT), value :: rank
Chris@42 74 type(fftwl_iodim), dimension(*), intent(in) :: dims
Chris@42 75 integer(C_INT), value :: howmany_rank
Chris@42 76 type(fftwl_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 77 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 78 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 79 integer(C_INT), value :: sign
Chris@42 80 integer(C_INT), value :: flags
Chris@42 81 end function fftwl_plan_guru_dft
Chris@42 82
Chris@42 83 type(C_PTR) function fftwl_plan_guru_split_dft(rank,dims,howmany_rank,howmany_dims,ri,ii,ro,io,flags) &
Chris@42 84 bind(C, name='fftwl_plan_guru_split_dft')
Chris@42 85 import
Chris@42 86 integer(C_INT), value :: rank
Chris@42 87 type(fftwl_iodim), dimension(*), intent(in) :: dims
Chris@42 88 integer(C_INT), value :: howmany_rank
Chris@42 89 type(fftwl_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 90 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ri
Chris@42 91 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ii
Chris@42 92 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ro
Chris@42 93 real(C_LONG_DOUBLE), dimension(*), intent(out) :: io
Chris@42 94 integer(C_INT), value :: flags
Chris@42 95 end function fftwl_plan_guru_split_dft
Chris@42 96
Chris@42 97 type(C_PTR) function fftwl_plan_guru64_dft(rank,dims,howmany_rank,howmany_dims,in,out,sign,flags) &
Chris@42 98 bind(C, name='fftwl_plan_guru64_dft')
Chris@42 99 import
Chris@42 100 integer(C_INT), value :: rank
Chris@42 101 type(fftwl_iodim64), dimension(*), intent(in) :: dims
Chris@42 102 integer(C_INT), value :: howmany_rank
Chris@42 103 type(fftwl_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 104 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 105 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 106 integer(C_INT), value :: sign
Chris@42 107 integer(C_INT), value :: flags
Chris@42 108 end function fftwl_plan_guru64_dft
Chris@42 109
Chris@42 110 type(C_PTR) function fftwl_plan_guru64_split_dft(rank,dims,howmany_rank,howmany_dims,ri,ii,ro,io,flags) &
Chris@42 111 bind(C, name='fftwl_plan_guru64_split_dft')
Chris@42 112 import
Chris@42 113 integer(C_INT), value :: rank
Chris@42 114 type(fftwl_iodim64), dimension(*), intent(in) :: dims
Chris@42 115 integer(C_INT), value :: howmany_rank
Chris@42 116 type(fftwl_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 117 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ri
Chris@42 118 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ii
Chris@42 119 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ro
Chris@42 120 real(C_LONG_DOUBLE), dimension(*), intent(out) :: io
Chris@42 121 integer(C_INT), value :: flags
Chris@42 122 end function fftwl_plan_guru64_split_dft
Chris@42 123
Chris@42 124 subroutine fftwl_execute_dft(p,in,out) bind(C, name='fftwl_execute_dft')
Chris@42 125 import
Chris@42 126 type(C_PTR), value :: p
Chris@42 127 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(inout) :: in
Chris@42 128 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 129 end subroutine fftwl_execute_dft
Chris@42 130
Chris@42 131 subroutine fftwl_execute_split_dft(p,ri,ii,ro,io) bind(C, name='fftwl_execute_split_dft')
Chris@42 132 import
Chris@42 133 type(C_PTR), value :: p
Chris@42 134 real(C_LONG_DOUBLE), dimension(*), intent(inout) :: ri
Chris@42 135 real(C_LONG_DOUBLE), dimension(*), intent(inout) :: ii
Chris@42 136 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ro
Chris@42 137 real(C_LONG_DOUBLE), dimension(*), intent(out) :: io
Chris@42 138 end subroutine fftwl_execute_split_dft
Chris@42 139
Chris@42 140 type(C_PTR) function fftwl_plan_many_dft_r2c(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,flags) &
Chris@42 141 bind(C, name='fftwl_plan_many_dft_r2c')
Chris@42 142 import
Chris@42 143 integer(C_INT), value :: rank
Chris@42 144 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 145 integer(C_INT), value :: howmany
Chris@42 146 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@42 147 integer(C_INT), dimension(*), intent(in) :: inembed
Chris@42 148 integer(C_INT), value :: istride
Chris@42 149 integer(C_INT), value :: idist
Chris@42 150 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 151 integer(C_INT), dimension(*), intent(in) :: onembed
Chris@42 152 integer(C_INT), value :: ostride
Chris@42 153 integer(C_INT), value :: odist
Chris@42 154 integer(C_INT), value :: flags
Chris@42 155 end function fftwl_plan_many_dft_r2c
Chris@42 156
Chris@42 157 type(C_PTR) function fftwl_plan_dft_r2c(rank,n,in,out,flags) bind(C, name='fftwl_plan_dft_r2c')
Chris@42 158 import
Chris@42 159 integer(C_INT), value :: rank
Chris@42 160 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 161 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@42 162 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 163 integer(C_INT), value :: flags
Chris@42 164 end function fftwl_plan_dft_r2c
Chris@42 165
Chris@42 166 type(C_PTR) function fftwl_plan_dft_r2c_1d(n,in,out,flags) bind(C, name='fftwl_plan_dft_r2c_1d')
Chris@42 167 import
Chris@42 168 integer(C_INT), value :: n
Chris@42 169 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@42 170 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 171 integer(C_INT), value :: flags
Chris@42 172 end function fftwl_plan_dft_r2c_1d
Chris@42 173
Chris@42 174 type(C_PTR) function fftwl_plan_dft_r2c_2d(n0,n1,in,out,flags) bind(C, name='fftwl_plan_dft_r2c_2d')
Chris@42 175 import
Chris@42 176 integer(C_INT), value :: n0
Chris@42 177 integer(C_INT), value :: n1
Chris@42 178 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@42 179 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 180 integer(C_INT), value :: flags
Chris@42 181 end function fftwl_plan_dft_r2c_2d
Chris@42 182
Chris@42 183 type(C_PTR) function fftwl_plan_dft_r2c_3d(n0,n1,n2,in,out,flags) bind(C, name='fftwl_plan_dft_r2c_3d')
Chris@42 184 import
Chris@42 185 integer(C_INT), value :: n0
Chris@42 186 integer(C_INT), value :: n1
Chris@42 187 integer(C_INT), value :: n2
Chris@42 188 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@42 189 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 190 integer(C_INT), value :: flags
Chris@42 191 end function fftwl_plan_dft_r2c_3d
Chris@42 192
Chris@42 193 type(C_PTR) function fftwl_plan_many_dft_c2r(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,flags) &
Chris@42 194 bind(C, name='fftwl_plan_many_dft_c2r')
Chris@42 195 import
Chris@42 196 integer(C_INT), value :: rank
Chris@42 197 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 198 integer(C_INT), value :: howmany
Chris@42 199 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 200 integer(C_INT), dimension(*), intent(in) :: inembed
Chris@42 201 integer(C_INT), value :: istride
Chris@42 202 integer(C_INT), value :: idist
Chris@42 203 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@42 204 integer(C_INT), dimension(*), intent(in) :: onembed
Chris@42 205 integer(C_INT), value :: ostride
Chris@42 206 integer(C_INT), value :: odist
Chris@42 207 integer(C_INT), value :: flags
Chris@42 208 end function fftwl_plan_many_dft_c2r
Chris@42 209
Chris@42 210 type(C_PTR) function fftwl_plan_dft_c2r(rank,n,in,out,flags) bind(C, name='fftwl_plan_dft_c2r')
Chris@42 211 import
Chris@42 212 integer(C_INT), value :: rank
Chris@42 213 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 214 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 215 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@42 216 integer(C_INT), value :: flags
Chris@42 217 end function fftwl_plan_dft_c2r
Chris@42 218
Chris@42 219 type(C_PTR) function fftwl_plan_dft_c2r_1d(n,in,out,flags) bind(C, name='fftwl_plan_dft_c2r_1d')
Chris@42 220 import
Chris@42 221 integer(C_INT), value :: n
Chris@42 222 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 223 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@42 224 integer(C_INT), value :: flags
Chris@42 225 end function fftwl_plan_dft_c2r_1d
Chris@42 226
Chris@42 227 type(C_PTR) function fftwl_plan_dft_c2r_2d(n0,n1,in,out,flags) bind(C, name='fftwl_plan_dft_c2r_2d')
Chris@42 228 import
Chris@42 229 integer(C_INT), value :: n0
Chris@42 230 integer(C_INT), value :: n1
Chris@42 231 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 232 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@42 233 integer(C_INT), value :: flags
Chris@42 234 end function fftwl_plan_dft_c2r_2d
Chris@42 235
Chris@42 236 type(C_PTR) function fftwl_plan_dft_c2r_3d(n0,n1,n2,in,out,flags) bind(C, name='fftwl_plan_dft_c2r_3d')
Chris@42 237 import
Chris@42 238 integer(C_INT), value :: n0
Chris@42 239 integer(C_INT), value :: n1
Chris@42 240 integer(C_INT), value :: n2
Chris@42 241 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 242 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@42 243 integer(C_INT), value :: flags
Chris@42 244 end function fftwl_plan_dft_c2r_3d
Chris@42 245
Chris@42 246 type(C_PTR) function fftwl_plan_guru_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
Chris@42 247 bind(C, name='fftwl_plan_guru_dft_r2c')
Chris@42 248 import
Chris@42 249 integer(C_INT), value :: rank
Chris@42 250 type(fftwl_iodim), dimension(*), intent(in) :: dims
Chris@42 251 integer(C_INT), value :: howmany_rank
Chris@42 252 type(fftwl_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 253 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@42 254 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 255 integer(C_INT), value :: flags
Chris@42 256 end function fftwl_plan_guru_dft_r2c
Chris@42 257
Chris@42 258 type(C_PTR) function fftwl_plan_guru_dft_c2r(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
Chris@42 259 bind(C, name='fftwl_plan_guru_dft_c2r')
Chris@42 260 import
Chris@42 261 integer(C_INT), value :: rank
Chris@42 262 type(fftwl_iodim), dimension(*), intent(in) :: dims
Chris@42 263 integer(C_INT), value :: howmany_rank
Chris@42 264 type(fftwl_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 265 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 266 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@42 267 integer(C_INT), value :: flags
Chris@42 268 end function fftwl_plan_guru_dft_c2r
Chris@42 269
Chris@42 270 type(C_PTR) function fftwl_plan_guru_split_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,ro,io,flags) &
Chris@42 271 bind(C, name='fftwl_plan_guru_split_dft_r2c')
Chris@42 272 import
Chris@42 273 integer(C_INT), value :: rank
Chris@42 274 type(fftwl_iodim), dimension(*), intent(in) :: dims
Chris@42 275 integer(C_INT), value :: howmany_rank
Chris@42 276 type(fftwl_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 277 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@42 278 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ro
Chris@42 279 real(C_LONG_DOUBLE), dimension(*), intent(out) :: io
Chris@42 280 integer(C_INT), value :: flags
Chris@42 281 end function fftwl_plan_guru_split_dft_r2c
Chris@42 282
Chris@42 283 type(C_PTR) function fftwl_plan_guru_split_dft_c2r(rank,dims,howmany_rank,howmany_dims,ri,ii,out,flags) &
Chris@42 284 bind(C, name='fftwl_plan_guru_split_dft_c2r')
Chris@42 285 import
Chris@42 286 integer(C_INT), value :: rank
Chris@42 287 type(fftwl_iodim), dimension(*), intent(in) :: dims
Chris@42 288 integer(C_INT), value :: howmany_rank
Chris@42 289 type(fftwl_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 290 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ri
Chris@42 291 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ii
Chris@42 292 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@42 293 integer(C_INT), value :: flags
Chris@42 294 end function fftwl_plan_guru_split_dft_c2r
Chris@42 295
Chris@42 296 type(C_PTR) function fftwl_plan_guru64_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
Chris@42 297 bind(C, name='fftwl_plan_guru64_dft_r2c')
Chris@42 298 import
Chris@42 299 integer(C_INT), value :: rank
Chris@42 300 type(fftwl_iodim64), dimension(*), intent(in) :: dims
Chris@42 301 integer(C_INT), value :: howmany_rank
Chris@42 302 type(fftwl_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 303 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@42 304 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 305 integer(C_INT), value :: flags
Chris@42 306 end function fftwl_plan_guru64_dft_r2c
Chris@42 307
Chris@42 308 type(C_PTR) function fftwl_plan_guru64_dft_c2r(rank,dims,howmany_rank,howmany_dims,in,out,flags) &
Chris@42 309 bind(C, name='fftwl_plan_guru64_dft_c2r')
Chris@42 310 import
Chris@42 311 integer(C_INT), value :: rank
Chris@42 312 type(fftwl_iodim64), dimension(*), intent(in) :: dims
Chris@42 313 integer(C_INT), value :: howmany_rank
Chris@42 314 type(fftwl_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 315 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: in
Chris@42 316 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@42 317 integer(C_INT), value :: flags
Chris@42 318 end function fftwl_plan_guru64_dft_c2r
Chris@42 319
Chris@42 320 type(C_PTR) function fftwl_plan_guru64_split_dft_r2c(rank,dims,howmany_rank,howmany_dims,in,ro,io,flags) &
Chris@42 321 bind(C, name='fftwl_plan_guru64_split_dft_r2c')
Chris@42 322 import
Chris@42 323 integer(C_INT), value :: rank
Chris@42 324 type(fftwl_iodim64), dimension(*), intent(in) :: dims
Chris@42 325 integer(C_INT), value :: howmany_rank
Chris@42 326 type(fftwl_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 327 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@42 328 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ro
Chris@42 329 real(C_LONG_DOUBLE), dimension(*), intent(out) :: io
Chris@42 330 integer(C_INT), value :: flags
Chris@42 331 end function fftwl_plan_guru64_split_dft_r2c
Chris@42 332
Chris@42 333 type(C_PTR) function fftwl_plan_guru64_split_dft_c2r(rank,dims,howmany_rank,howmany_dims,ri,ii,out,flags) &
Chris@42 334 bind(C, name='fftwl_plan_guru64_split_dft_c2r')
Chris@42 335 import
Chris@42 336 integer(C_INT), value :: rank
Chris@42 337 type(fftwl_iodim64), dimension(*), intent(in) :: dims
Chris@42 338 integer(C_INT), value :: howmany_rank
Chris@42 339 type(fftwl_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 340 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ri
Chris@42 341 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ii
Chris@42 342 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@42 343 integer(C_INT), value :: flags
Chris@42 344 end function fftwl_plan_guru64_split_dft_c2r
Chris@42 345
Chris@42 346 subroutine fftwl_execute_dft_r2c(p,in,out) bind(C, name='fftwl_execute_dft_r2c')
Chris@42 347 import
Chris@42 348 type(C_PTR), value :: p
Chris@42 349 real(C_LONG_DOUBLE), dimension(*), intent(inout) :: in
Chris@42 350 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(out) :: out
Chris@42 351 end subroutine fftwl_execute_dft_r2c
Chris@42 352
Chris@42 353 subroutine fftwl_execute_dft_c2r(p,in,out) bind(C, name='fftwl_execute_dft_c2r')
Chris@42 354 import
Chris@42 355 type(C_PTR), value :: p
Chris@42 356 complex(C_LONG_DOUBLE_COMPLEX), dimension(*), intent(inout) :: in
Chris@42 357 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@42 358 end subroutine fftwl_execute_dft_c2r
Chris@42 359
Chris@42 360 subroutine fftwl_execute_split_dft_r2c(p,in,ro,io) bind(C, name='fftwl_execute_split_dft_r2c')
Chris@42 361 import
Chris@42 362 type(C_PTR), value :: p
Chris@42 363 real(C_LONG_DOUBLE), dimension(*), intent(inout) :: in
Chris@42 364 real(C_LONG_DOUBLE), dimension(*), intent(out) :: ro
Chris@42 365 real(C_LONG_DOUBLE), dimension(*), intent(out) :: io
Chris@42 366 end subroutine fftwl_execute_split_dft_r2c
Chris@42 367
Chris@42 368 subroutine fftwl_execute_split_dft_c2r(p,ri,ii,out) bind(C, name='fftwl_execute_split_dft_c2r')
Chris@42 369 import
Chris@42 370 type(C_PTR), value :: p
Chris@42 371 real(C_LONG_DOUBLE), dimension(*), intent(inout) :: ri
Chris@42 372 real(C_LONG_DOUBLE), dimension(*), intent(inout) :: ii
Chris@42 373 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@42 374 end subroutine fftwl_execute_split_dft_c2r
Chris@42 375
Chris@42 376 type(C_PTR) function fftwl_plan_many_r2r(rank,n,howmany,in,inembed,istride,idist,out,onembed,ostride,odist,kind,flags) &
Chris@42 377 bind(C, name='fftwl_plan_many_r2r')
Chris@42 378 import
Chris@42 379 integer(C_INT), value :: rank
Chris@42 380 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 381 integer(C_INT), value :: howmany
Chris@42 382 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@42 383 integer(C_INT), dimension(*), intent(in) :: inembed
Chris@42 384 integer(C_INT), value :: istride
Chris@42 385 integer(C_INT), value :: idist
Chris@42 386 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@42 387 integer(C_INT), dimension(*), intent(in) :: onembed
Chris@42 388 integer(C_INT), value :: ostride
Chris@42 389 integer(C_INT), value :: odist
Chris@42 390 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@42 391 integer(C_INT), value :: flags
Chris@42 392 end function fftwl_plan_many_r2r
Chris@42 393
Chris@42 394 type(C_PTR) function fftwl_plan_r2r(rank,n,in,out,kind,flags) bind(C, name='fftwl_plan_r2r')
Chris@42 395 import
Chris@42 396 integer(C_INT), value :: rank
Chris@42 397 integer(C_INT), dimension(*), intent(in) :: n
Chris@42 398 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@42 399 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@42 400 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@42 401 integer(C_INT), value :: flags
Chris@42 402 end function fftwl_plan_r2r
Chris@42 403
Chris@42 404 type(C_PTR) function fftwl_plan_r2r_1d(n,in,out,kind,flags) bind(C, name='fftwl_plan_r2r_1d')
Chris@42 405 import
Chris@42 406 integer(C_INT), value :: n
Chris@42 407 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@42 408 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@42 409 integer(C_FFTW_R2R_KIND), value :: kind
Chris@42 410 integer(C_INT), value :: flags
Chris@42 411 end function fftwl_plan_r2r_1d
Chris@42 412
Chris@42 413 type(C_PTR) function fftwl_plan_r2r_2d(n0,n1,in,out,kind0,kind1,flags) bind(C, name='fftwl_plan_r2r_2d')
Chris@42 414 import
Chris@42 415 integer(C_INT), value :: n0
Chris@42 416 integer(C_INT), value :: n1
Chris@42 417 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@42 418 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@42 419 integer(C_FFTW_R2R_KIND), value :: kind0
Chris@42 420 integer(C_FFTW_R2R_KIND), value :: kind1
Chris@42 421 integer(C_INT), value :: flags
Chris@42 422 end function fftwl_plan_r2r_2d
Chris@42 423
Chris@42 424 type(C_PTR) function fftwl_plan_r2r_3d(n0,n1,n2,in,out,kind0,kind1,kind2,flags) bind(C, name='fftwl_plan_r2r_3d')
Chris@42 425 import
Chris@42 426 integer(C_INT), value :: n0
Chris@42 427 integer(C_INT), value :: n1
Chris@42 428 integer(C_INT), value :: n2
Chris@42 429 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@42 430 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@42 431 integer(C_FFTW_R2R_KIND), value :: kind0
Chris@42 432 integer(C_FFTW_R2R_KIND), value :: kind1
Chris@42 433 integer(C_FFTW_R2R_KIND), value :: kind2
Chris@42 434 integer(C_INT), value :: flags
Chris@42 435 end function fftwl_plan_r2r_3d
Chris@42 436
Chris@42 437 type(C_PTR) function fftwl_plan_guru_r2r(rank,dims,howmany_rank,howmany_dims,in,out,kind,flags) &
Chris@42 438 bind(C, name='fftwl_plan_guru_r2r')
Chris@42 439 import
Chris@42 440 integer(C_INT), value :: rank
Chris@42 441 type(fftwl_iodim), dimension(*), intent(in) :: dims
Chris@42 442 integer(C_INT), value :: howmany_rank
Chris@42 443 type(fftwl_iodim), dimension(*), intent(in) :: howmany_dims
Chris@42 444 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@42 445 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@42 446 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@42 447 integer(C_INT), value :: flags
Chris@42 448 end function fftwl_plan_guru_r2r
Chris@42 449
Chris@42 450 type(C_PTR) function fftwl_plan_guru64_r2r(rank,dims,howmany_rank,howmany_dims,in,out,kind,flags) &
Chris@42 451 bind(C, name='fftwl_plan_guru64_r2r')
Chris@42 452 import
Chris@42 453 integer(C_INT), value :: rank
Chris@42 454 type(fftwl_iodim64), dimension(*), intent(in) :: dims
Chris@42 455 integer(C_INT), value :: howmany_rank
Chris@42 456 type(fftwl_iodim64), dimension(*), intent(in) :: howmany_dims
Chris@42 457 real(C_LONG_DOUBLE), dimension(*), intent(out) :: in
Chris@42 458 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@42 459 integer(C_FFTW_R2R_KIND), dimension(*), intent(in) :: kind
Chris@42 460 integer(C_INT), value :: flags
Chris@42 461 end function fftwl_plan_guru64_r2r
Chris@42 462
Chris@42 463 subroutine fftwl_execute_r2r(p,in,out) bind(C, name='fftwl_execute_r2r')
Chris@42 464 import
Chris@42 465 type(C_PTR), value :: p
Chris@42 466 real(C_LONG_DOUBLE), dimension(*), intent(inout) :: in
Chris@42 467 real(C_LONG_DOUBLE), dimension(*), intent(out) :: out
Chris@42 468 end subroutine fftwl_execute_r2r
Chris@42 469
Chris@42 470 subroutine fftwl_destroy_plan(p) bind(C, name='fftwl_destroy_plan')
Chris@42 471 import
Chris@42 472 type(C_PTR), value :: p
Chris@42 473 end subroutine fftwl_destroy_plan
Chris@42 474
Chris@42 475 subroutine fftwl_forget_wisdom() bind(C, name='fftwl_forget_wisdom')
Chris@42 476 import
Chris@42 477 end subroutine fftwl_forget_wisdom
Chris@42 478
Chris@42 479 subroutine fftwl_cleanup() bind(C, name='fftwl_cleanup')
Chris@42 480 import
Chris@42 481 end subroutine fftwl_cleanup
Chris@42 482
Chris@42 483 subroutine fftwl_set_timelimit(t) bind(C, name='fftwl_set_timelimit')
Chris@42 484 import
Chris@42 485 real(C_DOUBLE), value :: t
Chris@42 486 end subroutine fftwl_set_timelimit
Chris@42 487
Chris@42 488 subroutine fftwl_plan_with_nthreads(nthreads) bind(C, name='fftwl_plan_with_nthreads')
Chris@42 489 import
Chris@42 490 integer(C_INT), value :: nthreads
Chris@42 491 end subroutine fftwl_plan_with_nthreads
Chris@42 492
Chris@42 493 integer(C_INT) function fftwl_init_threads() bind(C, name='fftwl_init_threads')
Chris@42 494 import
Chris@42 495 end function fftwl_init_threads
Chris@42 496
Chris@42 497 subroutine fftwl_cleanup_threads() bind(C, name='fftwl_cleanup_threads')
Chris@42 498 import
Chris@42 499 end subroutine fftwl_cleanup_threads
Chris@42 500
Chris@42 501 subroutine fftwl_make_planner_thread_safe() bind(C, name='fftwl_make_planner_thread_safe')
Chris@42 502 import
Chris@42 503 end subroutine fftwl_make_planner_thread_safe
Chris@42 504
Chris@42 505 integer(C_INT) function fftwl_export_wisdom_to_filename(filename) bind(C, name='fftwl_export_wisdom_to_filename')
Chris@42 506 import
Chris@42 507 character(C_CHAR), dimension(*), intent(in) :: filename
Chris@42 508 end function fftwl_export_wisdom_to_filename
Chris@42 509
Chris@42 510 subroutine fftwl_export_wisdom_to_file(output_file) bind(C, name='fftwl_export_wisdom_to_file')
Chris@42 511 import
Chris@42 512 type(C_PTR), value :: output_file
Chris@42 513 end subroutine fftwl_export_wisdom_to_file
Chris@42 514
Chris@42 515 type(C_PTR) function fftwl_export_wisdom_to_string() bind(C, name='fftwl_export_wisdom_to_string')
Chris@42 516 import
Chris@42 517 end function fftwl_export_wisdom_to_string
Chris@42 518
Chris@42 519 subroutine fftwl_export_wisdom(write_char,data) bind(C, name='fftwl_export_wisdom')
Chris@42 520 import
Chris@42 521 type(C_FUNPTR), value :: write_char
Chris@42 522 type(C_PTR), value :: data
Chris@42 523 end subroutine fftwl_export_wisdom
Chris@42 524
Chris@42 525 integer(C_INT) function fftwl_import_system_wisdom() bind(C, name='fftwl_import_system_wisdom')
Chris@42 526 import
Chris@42 527 end function fftwl_import_system_wisdom
Chris@42 528
Chris@42 529 integer(C_INT) function fftwl_import_wisdom_from_filename(filename) bind(C, name='fftwl_import_wisdom_from_filename')
Chris@42 530 import
Chris@42 531 character(C_CHAR), dimension(*), intent(in) :: filename
Chris@42 532 end function fftwl_import_wisdom_from_filename
Chris@42 533
Chris@42 534 integer(C_INT) function fftwl_import_wisdom_from_file(input_file) bind(C, name='fftwl_import_wisdom_from_file')
Chris@42 535 import
Chris@42 536 type(C_PTR), value :: input_file
Chris@42 537 end function fftwl_import_wisdom_from_file
Chris@42 538
Chris@42 539 integer(C_INT) function fftwl_import_wisdom_from_string(input_string) bind(C, name='fftwl_import_wisdom_from_string')
Chris@42 540 import
Chris@42 541 character(C_CHAR), dimension(*), intent(in) :: input_string
Chris@42 542 end function fftwl_import_wisdom_from_string
Chris@42 543
Chris@42 544 integer(C_INT) function fftwl_import_wisdom(read_char,data) bind(C, name='fftwl_import_wisdom')
Chris@42 545 import
Chris@42 546 type(C_FUNPTR), value :: read_char
Chris@42 547 type(C_PTR), value :: data
Chris@42 548 end function fftwl_import_wisdom
Chris@42 549
Chris@42 550 subroutine fftwl_fprint_plan(p,output_file) bind(C, name='fftwl_fprint_plan')
Chris@42 551 import
Chris@42 552 type(C_PTR), value :: p
Chris@42 553 type(C_PTR), value :: output_file
Chris@42 554 end subroutine fftwl_fprint_plan
Chris@42 555
Chris@42 556 subroutine fftwl_print_plan(p) bind(C, name='fftwl_print_plan')
Chris@42 557 import
Chris@42 558 type(C_PTR), value :: p
Chris@42 559 end subroutine fftwl_print_plan
Chris@42 560
Chris@42 561 type(C_PTR) function fftwl_sprint_plan(p) bind(C, name='fftwl_sprint_plan')
Chris@42 562 import
Chris@42 563 type(C_PTR), value :: p
Chris@42 564 end function fftwl_sprint_plan
Chris@42 565
Chris@42 566 type(C_PTR) function fftwl_malloc(n) bind(C, name='fftwl_malloc')
Chris@42 567 import
Chris@42 568 integer(C_SIZE_T), value :: n
Chris@42 569 end function fftwl_malloc
Chris@42 570
Chris@42 571 type(C_PTR) function fftwl_alloc_real(n) bind(C, name='fftwl_alloc_real')
Chris@42 572 import
Chris@42 573 integer(C_SIZE_T), value :: n
Chris@42 574 end function fftwl_alloc_real
Chris@42 575
Chris@42 576 type(C_PTR) function fftwl_alloc_complex(n) bind(C, name='fftwl_alloc_complex')
Chris@42 577 import
Chris@42 578 integer(C_SIZE_T), value :: n
Chris@42 579 end function fftwl_alloc_complex
Chris@42 580
Chris@42 581 subroutine fftwl_free(p) bind(C, name='fftwl_free')
Chris@42 582 import
Chris@42 583 type(C_PTR), value :: p
Chris@42 584 end subroutine fftwl_free
Chris@42 585
Chris@42 586 subroutine fftwl_flops(p,add,mul,fmas) bind(C, name='fftwl_flops')
Chris@42 587 import
Chris@42 588 type(C_PTR), value :: p
Chris@42 589 real(C_DOUBLE), intent(out) :: add
Chris@42 590 real(C_DOUBLE), intent(out) :: mul
Chris@42 591 real(C_DOUBLE), intent(out) :: fmas
Chris@42 592 end subroutine fftwl_flops
Chris@42 593
Chris@42 594 real(C_DOUBLE) function fftwl_estimate_cost(p) bind(C, name='fftwl_estimate_cost')
Chris@42 595 import
Chris@42 596 type(C_PTR), value :: p
Chris@42 597 end function fftwl_estimate_cost
Chris@42 598
Chris@42 599 real(C_DOUBLE) function fftwl_cost(p) bind(C, name='fftwl_cost')
Chris@42 600 import
Chris@42 601 type(C_PTR), value :: p
Chris@42 602 end function fftwl_cost
Chris@42 603
Chris@42 604 integer(C_INT) function fftwl_alignment_of(p) bind(C, name='fftwl_alignment_of')
Chris@42 605 import
Chris@42 606 real(C_LONG_DOUBLE), dimension(*), intent(out) :: p
Chris@42 607 end function fftwl_alignment_of
Chris@42 608
Chris@42 609 end interface