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