mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 14:46:06 +02:00
* Fixed library name and compilation on windows, bug #12881
git-svn-id: trunk@13117 -
This commit is contained in:
parent
d03e569ae9
commit
be72be8c8e
@ -25,6 +25,14 @@ unit fftw_s;
|
|||||||
{$MACRO on}
|
{$MACRO on}
|
||||||
{$INLINE on}
|
{$INLINE on}
|
||||||
|
|
||||||
|
{$IFDEF Unix}
|
||||||
|
const
|
||||||
|
fftwlib = 'fftw3f';
|
||||||
|
{$ELSE}
|
||||||
|
const
|
||||||
|
fftwlib = 'libfftw3f';
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
type complex_single=record
|
type complex_single=record
|
||||||
re,im:single;
|
re,im:single;
|
||||||
end;
|
end;
|
||||||
@ -48,51 +56,51 @@ type complex_single=record
|
|||||||
{Complex to complex transformations.}
|
{Complex to complex transformations.}
|
||||||
function fftw_plan_dft_1d(n:cardinal;i,o:Pcomplex_single;
|
function fftw_plan_dft_1d(n:cardinal;i,o:Pcomplex_single;
|
||||||
sign:fftw_sign;flags:fftw_flagset):fftw_plan_single;
|
sign:fftw_sign;flags:fftw_flagset):fftw_plan_single;
|
||||||
external 'fftw3f' name 'fftwf_plan_dft_1d';
|
external fftwlib name 'fftwf_plan_dft_1d';
|
||||||
function fftw_plan_dft_2d(nx,ny:cardinal;i,o:Pcomplex_single;
|
function fftw_plan_dft_2d(nx,ny:cardinal;i,o:Pcomplex_single;
|
||||||
sign:fftw_sign;flags:fftw_flagset):fftw_plan_single;
|
sign:fftw_sign;flags:fftw_flagset):fftw_plan_single;
|
||||||
external 'fftw3f' name 'fftwf_plan_dft_2d';
|
external fftwlib name 'fftwf_plan_dft_2d';
|
||||||
function fftw_plan_dft_3d(nx,ny,nz:cardinal;i,o:Pcomplex_single;
|
function fftw_plan_dft_3d(nx,ny,nz:cardinal;i,o:Pcomplex_single;
|
||||||
sign:fftw_sign;flags:fftw_flagset):fftw_plan_single;
|
sign:fftw_sign;flags:fftw_flagset):fftw_plan_single;
|
||||||
external 'fftw3f' name 'fftwf_plan_dft_3d';
|
external fftwlib name 'fftwf_plan_dft_3d';
|
||||||
|
|
||||||
function fftw_plan_dft(rank:cardinal;n:Pcardinal;i,o:Pcomplex_single;
|
function fftw_plan_dft(rank:cardinal;n:Pcardinal;i,o:Pcomplex_single;
|
||||||
sign:fftw_sign;flags:fftw_flagset):fftw_plan_single;
|
sign:fftw_sign;flags:fftw_flagset):fftw_plan_single;
|
||||||
external 'fftw3f' name 'fftwf_plan_dft';
|
external fftwlib name 'fftwf_plan_dft';
|
||||||
|
|
||||||
{Real to complex transformations.}
|
{Real to complex transformations.}
|
||||||
function fftw_plan_dft_1d(n:cardinal;i:Psingle;o:Pcomplex_single;
|
function fftw_plan_dft_1d(n:cardinal;i:Psingle;o:Pcomplex_single;
|
||||||
flags:fftw_flagset):fftw_plan_single;
|
flags:fftw_flagset):fftw_plan_single;
|
||||||
external 'fftw3f' name 'fftwf_plan_dft_r2c_1d';
|
external fftwlib name 'fftwf_plan_dft_r2c_1d';
|
||||||
function fftw_plan_dft_2d(nx,ny:cardinal;i:Psingle;o:Pcomplex_single;
|
function fftw_plan_dft_2d(nx,ny:cardinal;i:Psingle;o:Pcomplex_single;
|
||||||
flags:fftw_flagset):fftw_plan_single;
|
flags:fftw_flagset):fftw_plan_single;
|
||||||
external 'fftw3f' name 'fftwf_plan_dft_r2c_2d';
|
external fftwlib name 'fftwf_plan_dft_r2c_2d';
|
||||||
function fftw_plan_dft_3d(nx,ny,nz:cardinal;i:Psingle;o:Pcomplex_single;
|
function fftw_plan_dft_3d(nx,ny,nz:cardinal;i:Psingle;o:Pcomplex_single;
|
||||||
flags:fftw_flagset):fftw_plan_single;
|
flags:fftw_flagset):fftw_plan_single;
|
||||||
external 'fftw3f' name 'fftwf_plan_dft_r2c_3d';
|
external fftwlib name 'fftwf_plan_dft_r2c_3d';
|
||||||
function fftw_plan_dft(rank:cardinal;n:Pcardinal;i:Psingle;o:Pcomplex_single;
|
function fftw_plan_dft(rank:cardinal;n:Pcardinal;i:Psingle;o:Pcomplex_single;
|
||||||
flags:fftw_flagset):fftw_plan_single;
|
flags:fftw_flagset):fftw_plan_single;
|
||||||
external 'fftw3f' name 'fftwf_plan_dft_r2c';
|
external fftwlib name 'fftwf_plan_dft_r2c';
|
||||||
|
|
||||||
{Complex to real transformations.}
|
{Complex to real transformations.}
|
||||||
function fftw_plan_dft_1d(n:cardinal;i:Pcomplex_single;o:Psingle;
|
function fftw_plan_dft_1d(n:cardinal;i:Pcomplex_single;o:Psingle;
|
||||||
flags:fftw_flagset):fftw_plan_single;
|
flags:fftw_flagset):fftw_plan_single;
|
||||||
external 'fftw3f' name 'fftwf_plan_dft_c2r_1d';
|
external fftwlib name 'fftwf_plan_dft_c2r_1d';
|
||||||
function fftw_plan_dft_2d(nx,ny:cardinal;i:Pcomplex_single;o:Psingle;
|
function fftw_plan_dft_2d(nx,ny:cardinal;i:Pcomplex_single;o:Psingle;
|
||||||
flags:fftw_flagset):fftw_plan_single;
|
flags:fftw_flagset):fftw_plan_single;
|
||||||
external 'fftw3f' name 'fftwf_plan_dft_c2r_2d';
|
external fftwlib name 'fftwf_plan_dft_c2r_2d';
|
||||||
function fftw_plan_dft_3d(nx,ny,nz:cardinal;i:Pcomplex_single;o:Psingle;
|
function fftw_plan_dft_3d(nx,ny,nz:cardinal;i:Pcomplex_single;o:Psingle;
|
||||||
flags:fftw_flagset):fftw_plan_single;
|
flags:fftw_flagset):fftw_plan_single;
|
||||||
external 'fftw3f' name 'fftwf_plan_dft_c2r_3d';
|
external fftwlib name 'fftwf_plan_dft_c2r_3d';
|
||||||
function fftw_plan_dft(rank:cardinal;n:Pcardinal;i:Pcomplex_single;o:Psingle;
|
function fftw_plan_dft(rank:cardinal;n:Pcardinal;i:Pcomplex_single;o:Psingle;
|
||||||
flags:fftw_flagset):fftw_plan_single;
|
flags:fftw_flagset):fftw_plan_single;
|
||||||
external 'fftw3f' name 'fftwf_plan_dft_c2r';
|
external fftwlib name 'fftwf_plan_dft_c2r';
|
||||||
|
|
||||||
|
|
||||||
procedure fftw_destroy_plan(plan:fftw_plan_single);
|
procedure fftw_destroy_plan(plan:fftw_plan_single);
|
||||||
external 'fftw3f' name 'fftwf_destroy_plan';
|
external fftwlib name 'fftwf_destroy_plan';
|
||||||
procedure fftw_execute(plan:fftw_plan_single);
|
procedure fftw_execute(plan:fftw_plan_single);
|
||||||
external 'fftw3f' name 'fftwf_execute';
|
external fftwlib name 'fftwf_execute';
|
||||||
|
|
||||||
{$calling register} {Back to normal!}
|
{$calling register} {Back to normal!}
|
||||||
procedure fftw_getmem(var p:pointer;size:sizeint);
|
procedure fftw_getmem(var p:pointer;size:sizeint);
|
||||||
@ -102,7 +110,9 @@ procedure fftw_freemem(p:pointer);inline;
|
|||||||
implementation
|
implementation
|
||||||
{*****************************************************************************}
|
{*****************************************************************************}
|
||||||
|
|
||||||
|
{$ifndef Windows}
|
||||||
{$LINKLIB fftw3f}
|
{$LINKLIB fftw3f}
|
||||||
|
{$endif}
|
||||||
|
|
||||||
{Required libraries by libfftw3}
|
{Required libraries by libfftw3}
|
||||||
{ $LINKLIB gcc}
|
{ $LINKLIB gcc}
|
||||||
|
Loading…
Reference in New Issue
Block a user