diff options
| author | scuri <scuri> | 2009-08-20 12:35:06 +0000 | 
|---|---|---|
| committer | scuri <scuri> | 2009-08-20 12:35:06 +0000 | 
| commit | 5d735255ddd3cb2f547abd3d03969af3fb7eb04e (patch) | |
| tree | 8fb66510bc625bb1b08ccb41f1b83fb0f7cb8f19 /src/fftw3/api | |
| parent | 35733b87eed86e5228f12fa10c98a3d9d22a6073 (diff) | |
*** empty log message ***
Diffstat (limited to 'src/fftw3/api')
62 files changed, 0 insertions, 3557 deletions
diff --git a/src/fftw3/api/api.h b/src/fftw3/api/api.h deleted file mode 100644 index 6b37151..0000000 --- a/src/fftw3/api/api.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -/* internal API definitions */ -#ifndef __API_H__ -#define __API_H__ - -/* just in case: force <fftw3.h> not to use C99 complex numbers */ -#undef _Complex_I - -#include "fftw3.h" -#include "ifftw.h" - -/* the API ``plan'' contains both the kernel plan and problem */ -struct X(plan_s) { -     plan *pln; -     problem *prb; -     int sign; -}; - -/* shorthand */ -typedef struct X(plan_s) apiplan; - -/* complex type for internal use */ -typedef R C[2]; - -void X(extract_reim)(int sign, C *c, R **r, R **i); - -#define TAINT_UNALIGNED(p, flg) TAINT(p, ((flg) & FFTW_UNALIGNED) != 0) - -tensor *X(mktensor_rowmajor)(int rnk, const int *n, -			     const int *niphys, const int *nophys, -			     int is, int os); - -tensor *X(mktensor_iodims)(int rank, const X(iodim) *dims, int is, int os); -const int *X(rdft2_pad)(int rnk, const int *n, const int *nembed, -			int inplace, int cmplx, int **nfree); - -int X(many_kosherp)(int rnk, const int *n, int howmany); -int X(guru_kosherp)(int rank, const X(iodim) *dims, -		    int howmany_rank, const X(iodim) *howmany_dims); - - -printer *X(mkprinter_file)(FILE *f); - -planner *X(the_planner)(void); -void X(configure_planner)(planner *plnr); - -void X(mapflags)(planner *, unsigned); - -apiplan *X(mkapiplan)(int sign, unsigned flags, problem *prb); - -#endif				/* __API_H__ */ diff --git a/src/fftw3/api/apiplan.c b/src/fftw3/api/apiplan.c deleted file mode 100644 index b9fee6b..0000000 --- a/src/fftw3/api/apiplan.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - - -apiplan *X(mkapiplan)(int sign, unsigned flags, problem *prb) -WITH_ALIGNED_STACK({ -     plan *pln; -     plan *pln0; -     apiplan *p = 0; -     planner *plnr = X(the_planner)(); -      -     /* map API flags into FFTW flags */ -     X(mapflags)(plnr, flags); -      -     /* create plan */ -     plnr->planner_flags &= ~BLESSING; -     pln = plnr->adt->mkplan(plnr, prb); -      -     if (pln) { -	  AWAKE(pln, 1); -	   -	  /* build apiplan */ -	  p = (apiplan *) MALLOC(sizeof(apiplan), PLANS); -	  p->pln = pln; -	  p->prb = prb; -	  p->sign = sign; /* cache for execute_dft */ -	   -	  /* blessing protocol */ -	  plnr->planner_flags |= BLESSING; -	  pln0 = plnr->adt->mkplan(plnr, prb); -	  X(plan_destroy_internal)(pln0); -     } else { -	  X(problem_destroy)(prb); -     } -      -     /* discard all information not necessary to reconstruct the -	plan */ -     plnr->adt->forget(plnr, FORGET_ACCURSED); -      -     return p; -}) - -void X(destroy_plan)(X(plan) p) -{ -     if (p) { -          AWAKE(p->pln, 0); -          X(plan_destroy_internal)(p->pln); -          X(problem_destroy)(p->prb); -          X(ifree)(p); -     } -} diff --git a/src/fftw3/api/config.h b/src/fftw3/api/config.h deleted file mode 100644 index e97bf0d..0000000 --- a/src/fftw3/api/config.h +++ /dev/null @@ -1,301 +0,0 @@ -/* configuration file for the IM_FFTW3 library */ - -/* extra CFLAGS for codelets */ -#define CODELET_OPTIM	"" - -/* Define to a macro mangling the given C identifier (in lower and upper -   case), which must not contain underscores, for linking with Fortran. */ -#undef F77_FUNC - -/* As F77_FUNC, but for C identifiers containing underscores. */ -#undef F77_FUNC_ - -/* Define if F77_FUNC and F77_FUNC_ are equivalent. */ -#undef F77_FUNC_EQUIV - -/* C compiler name and flags */ -#define FFTW_CC	"" - -/* Define to enable extra FFTW debugging code. */ -#undef FFTW_DEBUG - -/* Define to enable alignment debugging hacks. */ -#undef FFTW_DEBUG_ALIGNMENT - -/* Define to enable debugging malloc. */ -#undef FFTW_DEBUG_MALLOC - -/* enable fast, unsafe modular multiplications, risking overflow for large -   prime sizes */ -#undef FFTW_ENABLE_UNSAFE_MULMOD - -/* Define to compile in long-double precision. */ -#undef FFTW_LDOUBLE - -/* Define to compile in single precision. */ -#define FFTW_SINGLE 1 - -/* Define to enable 3DNow! optimizations. */ -#undef HAVE_3DNOW - -/* Define to 1 if you have `alloca', as a function or macro. */ -#undef HAVE_ALLOCA - -/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix). -   */ -#undef HAVE_ALLOCA_H - -/* Define to enable Altivec optimizations. */ -#undef HAVE_ALTIVEC - -/* Define to 1 if you have the `BSDgettimeofday' function. */ -#undef HAVE_BSDGETTIMEOFDAY - -/* Define to 1 if you have the `clock_gettime' function. */ -#undef HAVE_CLOCK_GETTIME - -/* Define to 1 if you have the `cosl' function. */ -#undef HAVE_COSL - -/* Define to 1 if you have the <c_asm.h> header file. */ -#undef HAVE_C_ASM_H - -/* Define to 1 if you have the declaration of `drand48', and to 0 if you don't. */ -#define HAVE_DECL_DRAND48	0 - -/* Define to 1 if you have the declaration of `memalign', and to 0 if you -   don't. */ -#define HAVE_DECL_MEMALIGN	0 - -/* Define to 1 if you have the declaration of `posix_memalign', and to 0 if -   you don't. */ -#define HAVE_DECL_POSIX_MEMALIGN	0 - -/* Define to 1 if you have the <dlfcn.h> header file. */ -#undef HAVE_DLFCN_H - -/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ -#undef HAVE_DOPRNT - -/* Define to 1 if you have the `drand48' function. */ -#undef HAVE_DRAND48 - -/* Define to 1 if you have the `gethrtime' function. */ -#undef HAVE_GETHRTIME - -/* Define to 1 if you have the `gettimeofday' function. */ -#undef HAVE_GETTIMEOFDAY - -/* Define to 1 if hrtime_t is defined in <sys/time.h> */ -#undef HAVE_HRTIME_T - -/* Define to 1 if you have the <intrinsics.h> header file. */ -#undef HAVE_INTRINSICS_H - -/* Define to 1 if you have the <inttypes.h> header file. */ -#undef HAVE_INTTYPES_H - -/* Define if the isnan() function/macro is available. */ -#define HAVE_ISNAN	1 - -/* Define to enable AMD K7 optimizations. */ -#undef HAVE_K7 - -/* Define to 1 if you have the <libintl.h> header file. */ -#undef HAVE_LIBINTL_H - -/* Define to 1 if you have the `m' library (-lm). */ -#undef HAVE_LIBM - -/* Define to 1 if you have the <limits.h> header file. */ -#define HAVE_LIMITS_H	1 - -/* Define to 1 if you have the <malloc.h> header file. */ -/* #define HAVE_MALLOC_H	1 */ - -/* Define to 1 if you have the `memalign' function. */ -#undef HAVE_MEMALIGN - -/* Define to 1 if you have the <memory.h> header file. */ -#define HAVE_MEMORY_H	1 - -/* Define to 1 if you have the `memset' function. */ -#define HAVE_MEMSET	1 - -/* Define to 1 if you have the `posix_memalign' function. */ -#undef HAVE_POSIX_MEMALIGN - -/* Define if you have POSIX threads libraries and header files. */ -#undef HAVE_PTHREAD - -/* Define to 1 if you have the `read_real_time' function. */ -#undef HAVE_READ_REAL_TIME - -/* Define to 1 if you have the `sinl' function. */ -#define HAVE_SINL	1 - -/* Define to 1 if you have the `sqrt' function. */ -#define HAVE_SQRT	1 - -/* Define to enable SSE optimizations. */ -#undef HAVE_SSE -/*#define HAVE_SSE 1 */ - -/* Define to enable SSE2 optimizations. */ -#undef HAVE_SSE2 - -/* Define to 1 if you have the <stddef.h> header file. */ -#define HAVE_STDDEF_H	1 - -/* Define to 1 if you have the <stdint.h> header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the <stdlib.h> header file. */ -#define HAVE_STDLIB_H	1 - -/* Define to 1 if you have the <strings.h> header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the <string.h> header file. */ -#define HAVE_STRING_H	1 - -/* Define to 1 if you have the <sys/stat.h> header file. */ -#define HAVE_SYS_STAT_H	1 - -/* Define to 1 if you have the <sys/time.h> header file. */ -#undef HAVE_SYS_TIME_H - -/* Define to 1 if you have the <sys/types.h> header file. */ -#define HAVE_SYS_TYPES_H	1 - -/* Define to 1 if you have the `tanl' function. */ -#define HAVE_TANL	1 - -/* Define if we have a threads library. */ -#undef HAVE_THREADS - -/* Define to 1 if you have the `time_base_to_time' function. */ -#undef HAVE_TIME_BASE_TO_TIME - -/* Define to 1 if the system has the type `uintptr_t'. */ -/* #undef HAVE_UINTPTR_T */ - -/* Define to 1 if you have the <unistd.h> header file. */ -#undef HAVE_UNISTD_H - -/* Define to 1 if you have the `vprintf' function. */ -#define HAVE_VPRINTF - -/* Define to 1 if you have the `_mm_free' function. */ -#undef HAVE__MM_FREE - -/* Define to 1 if you have the `_mm_malloc' function. */ -#undef HAVE__MM_MALLOC - -/* Define if you have the UNICOS _rtc() intrinsic. */ -#undef HAVE__RTC - -/* Name of package */ -#define PACKAGE	"FFTW" - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#define PACKAGE_NAME	"FFTW_PACKAGENAME" - -/* Define to the full name and version of this package. */ -#define PACKAGE_STRING	"FFTW V3" - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the version of this package. */ -#define PACKAGE_VERSION	3 - -/* Define to the necessary symbol if this constant uses a non-standard name on -   your system. */ -#undef PTHREAD_CREATE_JOINABLE - -/* The size of a `double', as computed by sizeof. */ -#define SIZEOF_DOUBLE	8 - -/* The size of a `int', as computed by sizeof. */ -#define SIZEOF_INT	4 - -/* The size of a `long', as computed by sizeof. */ -#define SIZEOF_LONG	4 - -/* The size of a `long double', as computed by sizeof. */ -#define SIZEOF_LONG_DOUBLE	8 - -/* The size of a `long long', as computed by sizeof. */ -#undef SIZEOF_LONG_LONG	/* NO LONG LONG IN VC++ */ - -/* The size of a `unsigned int', as computed by sizeof. */ -#define SIZEOF_UNSIGNED_INT	4 - -/* The size of a `unsigned long', as computed by sizeof. */ -#define SIZEOF_UNSIGNED_LONG	4 - -/* The size of a `unsigned long long', as computed by sizeof. */ -#undef SIZEOF_UNSIGNED_LONG_LONG - -/* The size of a `void *', as computed by sizeof. */ -#define SIZEOF_VOID_P	4 - -/* If using the C implementation of alloca, define if you know the -   direction of stack growth for your system; otherwise it will be -   automatically deduced at run-time. -        STACK_DIRECTION > 0 => grows toward higher addresses -        STACK_DIRECTION < 0 => grows toward lower addresses -        STACK_DIRECTION = 0 => direction of growth unknown */ -#undef STACK_DIRECTION - -/* Define to 1 if you have the ANSI C header files. */ -#define STDC_HEADERS	1 - -/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ -#undef TIME_WITH_SYS_TIME - -/* Define if we have and are using OpenMP multithreading directives */ -#undef USING_OPENMP_THREADS - -/* Define if we have and are using POSIX threads. */ -#undef USING_POSIX_THREADS - -/* Version number of package */ -#define VERSION	"3" - -/* Use common Windows Fortran mangling styles for the Fortran interfaces. */ -#undef WINDOWS_F77_MANGLING - -/* Use our own 16-byte aligned malloc routine; mainly helpful for Windows -   systems lacking aligned allocation system-library routines. */ -#undef WITHOUT_CYCLE_COUNTER - -/* Use our own 16-byte aligned malloc routine; mainly helpful for Windows -   systems lacking aligned allocation system-library routines. */ -#define WITH_OUR_MALLOC16	1 - -/* Define to empty if `const' does not conform to ANSI C. */ -#undef const - -/* Define as `__inline' if that's what the C compiler calls it, or to nothing -   if it is not supported. */ -#define inline	__inline - -/* Define to `unsigned' if <sys/types.h> does not define. */ -#undef size_t - -/*			 VC++ specific parameters  */ -/*			added May14th 2003, S.Ruel */ -#define		HAVE_CONFIG_H		1 -#define		isnan				_isnan -#define		__inline__			__inline -#define		__asm__				__asm - -/* The intel and processor pack libraries should be compatible */ -#ifdef _MSC_VER -#define		__ICC				1 -#endif diff --git a/src/fftw3/api/configure.c b/src/fftw3/api/configure.c deleted file mode 100644 index 995281b..0000000 --- a/src/fftw3/api/configure.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "dft.h" -#include "rdft.h" -#include "reodft.h" - -void X(configure_planner)(planner *plnr) -{ -     X(dft_conf_standard)(plnr); -     X(rdft_conf_standard)(plnr); -     X(reodft_conf_standard)(plnr); -} diff --git a/src/fftw3/api/execute-dft-c2r.c b/src/fftw3/api/execute-dft-c2r.c deleted file mode 100644 index 18b0749..0000000 --- a/src/fftw3/api/execute-dft-c2r.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "rdft.h" - -/* guru interface: requires care in alignment, r - i, etcetera. */ -void X(execute_dft_c2r)(const X(plan) p, C *in, R *out) -WITH_ALIGNED_STACK({ -     plan_rdft2 *pln = (plan_rdft2 *) p->pln; -     pln->apply((plan *) pln, out, in[0], in[0]+1); -}) diff --git a/src/fftw3/api/execute-dft-r2c.c b/src/fftw3/api/execute-dft-r2c.c deleted file mode 100644 index 1f4818f..0000000 --- a/src/fftw3/api/execute-dft-r2c.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "rdft.h" - -/* guru interface: requires care in alignment, r - i, etcetera. */ -void X(execute_dft_r2c)(const X(plan) p, R *in, C *out) -WITH_ALIGNED_STACK({ -     plan_rdft2 *pln = (plan_rdft2 *) p->pln; -     pln->apply((plan *) pln, in, out[0], out[0]+1); -}) diff --git a/src/fftw3/api/execute-dft.c b/src/fftw3/api/execute-dft.c deleted file mode 100644 index 67fc9b8..0000000 --- a/src/fftw3/api/execute-dft.c +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "dft.h" - -/* guru interface: requires care in alignment etcetera. */ -void X(execute_dft)(const X(plan) p, C *in, C *out) -WITH_ALIGNED_STACK({ -     plan_dft *pln = (plan_dft *) p->pln; -     if (p->sign == FFT_SIGN) -	  pln->apply((plan *) pln, in[0], in[0]+1, out[0], out[0]+1); -     else -	  pln->apply((plan *) pln, in[0]+1, in[0], out[0]+1, out[0]); -}) diff --git a/src/fftw3/api/execute-r2r.c b/src/fftw3/api/execute-r2r.c deleted file mode 100644 index d05f4ef..0000000 --- a/src/fftw3/api/execute-r2r.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "rdft.h" - -/* guru interface: requires care in alignment, etcetera. */ -void X(execute_r2r)(const X(plan) p, R *in, R *out) -WITH_ALIGNED_STACK({ -     plan_rdft *pln = (plan_rdft *) p->pln; -     pln->apply((plan *) pln, in, out); -}) diff --git a/src/fftw3/api/execute-split-dft-c2r.c b/src/fftw3/api/execute-split-dft-c2r.c deleted file mode 100644 index 5941436..0000000 --- a/src/fftw3/api/execute-split-dft-c2r.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "rdft.h" - -/* guru interface: requires care in alignment, r - i, etcetera. */ -void X(execute_split_dft_c2r)(const X(plan) p, R *ri, R *ii, R *out) -WITH_ALIGNED_STACK({ -     plan_rdft2 *pln = (plan_rdft2 *) p->pln; -     pln->apply((plan *) pln, out, ri, ii); -}) diff --git a/src/fftw3/api/execute-split-dft-r2c.c b/src/fftw3/api/execute-split-dft-r2c.c deleted file mode 100644 index 72eccb8..0000000 --- a/src/fftw3/api/execute-split-dft-r2c.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "rdft.h" - -/* guru interface: requires care in alignment, r - i, etcetera. */ -void X(execute_split_dft_r2c)(const X(plan) p, R *in, R *ro, R *io) -WITH_ALIGNED_STACK({ -     plan_rdft2 *pln = (plan_rdft2 *) p->pln; -     pln->apply((plan *) pln, in, ro, io); -}) diff --git a/src/fftw3/api/execute-split-dft.c b/src/fftw3/api/execute-split-dft.c deleted file mode 100644 index 4c226a9..0000000 --- a/src/fftw3/api/execute-split-dft.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "dft.h" - -/* guru interface: requires care in alignment, r - i, etcetera. */ -void X(execute_split_dft)(const X(plan) p, R *ri, R *ii, R *ro, R *io) -WITH_ALIGNED_STACK({ -     plan_dft *pln = (plan_dft *) p->pln; -     pln->apply((plan *) pln, ri, ii, ro, io); -}) diff --git a/src/fftw3/api/execute.c b/src/fftw3/api/execute.c deleted file mode 100644 index f995c1c..0000000 --- a/src/fftw3/api/execute.c +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -void X(execute)(const X(plan) p) -WITH_ALIGNED_STACK({ -     plan *pln = p->pln; -     pln->adt->solve(pln, p->prb); -}) diff --git a/src/fftw3/api/export-wisdom-to-file.c b/src/fftw3/api/export-wisdom-to-file.c deleted file mode 100644 index 769f1b4..0000000 --- a/src/fftw3/api/export-wisdom-to-file.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -void X(export_wisdom_to_file)(FILE *output_file) -{ -     printer *p = X(mkprinter_file)(output_file); -     planner *plnr = X(the_planner)(); -     plnr->adt->exprt(plnr, p); -     X(printer_destroy)(p); -} diff --git a/src/fftw3/api/export-wisdom-to-string.c b/src/fftw3/api/export-wisdom-to-string.c deleted file mode 100644 index df38b51..0000000 --- a/src/fftw3/api/export-wisdom-to-string.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -typedef struct { -     printer super; -     int *cnt; -} P_cnt; - -static void putchr_cnt(printer * p_, char c) -{ -     P_cnt *p = (P_cnt *) p_; -     UNUSED(c); -     ++*p->cnt; -} - -static printer *mkprinter_cnt(int *cnt) -{ -     P_cnt *p = (P_cnt *) X(mkprinter)(sizeof(P_cnt), putchr_cnt, 0); -     p->cnt = cnt; -     *cnt = 0; -     return &p->super; -} - -typedef struct { -     printer super; -     char *s; -} P_str; - -static void putchr_str(printer * p_, char c) -{ -     P_str *p = (P_str *) p_; -     *p->s++ = c; -     *p->s = 0; -} - -static printer *mkprinter_str(char *s) -{ -     P_str *p = (P_str *) X(mkprinter)(sizeof(P_str), putchr_str, 0); -     p->s = s; -     *s = 0; -     return &p->super; -} - -char *X(export_wisdom_to_string)(void) -{ -     printer *p; -     planner *plnr = X(the_planner)(); -     int cnt; -     char *s; - -     p = mkprinter_cnt(&cnt); -     plnr->adt->exprt(plnr, p); -     X(printer_destroy)(p); - -     s = (char *) NATIVE_MALLOC(sizeof(char) * (cnt + 1), OTHER); -     if (s) { -          p = mkprinter_str(s); -          plnr->adt->exprt(plnr, p); -          X(printer_destroy)(p); -     } - -     return s; -} diff --git a/src/fftw3/api/export-wisdom.c b/src/fftw3/api/export-wisdom.c deleted file mode 100644 index d05c067..0000000 --- a/src/fftw3/api/export-wisdom.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -typedef struct { -     printer super; -     void (*write_char)(char c, void *); -     void *data; -} P; - -static void putchr_generic(printer * p_, char c) -{ -     P *p = (P *) p_; -     (p->write_char)(c, p->data); -} - -void X(export_wisdom)(void (*write_char)(char c, void *), void *data) -{ -     P *p = (P *) X(mkprinter)(sizeof(P), putchr_generic, 0); -     planner *plnr = X(the_planner)(); - -     p->write_char = write_char; -     p->data = data; -     plnr->adt->exprt(plnr, (printer *) p); -     X(printer_destroy)((printer *) p); -} diff --git a/src/fftw3/api/extract-reim.c b/src/fftw3/api/extract-reim.c deleted file mode 100644 index 3a90ab5..0000000 --- a/src/fftw3/api/extract-reim.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -/* decompose complex pointer into real and imaginary parts. -   Flip real and imaginary if there the sign does not match -   FFTW's idea of what the sign should be */ - -void X(extract_reim)(int sign, C *c, R **r, R **i) -{ -     if (sign == FFT_SIGN) { -          *r = c[0] + 0; -          *i = c[0] + 1; -     } else { -          *r = c[0] + 1; -          *i = c[0] + 0; -     } -} diff --git a/src/fftw3/api/f77api.c b/src/fftw3/api/f77api.c deleted file mode 100644 index 3f70716..0000000 --- a/src/fftw3/api/f77api.c +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "dft.h" -#include "rdft.h" - -/* if F77_FUNC is not defined, then we don't know how to mangle identifiers -   for the Fortran linker, and we must omit the f77 API. */ -#if defined(F77_FUNC) || defined(WINDOWS_F77_MANGLING) - -/*-----------------------------------------------------------------------*/ -/* some internal functions used by the f77 api */ - -/* in fortran, the natural array ordering is column-major, which -   corresponds to reversing the dimensions relative to C's row-major */ -static int *reverse_n(int rnk, const int *n) -{ -     int *nrev; -     int i; -     A(FINITE_RNK(rnk)); -     nrev = (int *) MALLOC(sizeof(int) * rnk, PROBLEMS); -     for (i = 0; i < rnk; ++i) -          nrev[rnk - i - 1] = n[i]; -     return nrev; -} - -/* f77 doesn't have data structures, so we have to pass iodims as -   parallel arrays */ -static X(iodim) *make_dims(int rnk, const int *n, -			   const int *is, const int *os) -{ -     X(iodim) *dims; -     int i; -     A(FINITE_RNK(rnk)); -     dims = (X(iodim) *) MALLOC(sizeof(X(iodim)) * rnk, PROBLEMS); -     for (i = 0; i < rnk; ++i) { -          dims[i].n = n[i]; -          dims[i].is = is[i]; -          dims[i].os = os[i]; -     } -     return dims; -} - -typedef struct { -     void (*f77_write_char)(char *, void *); -     void *data; -} write_char_data; - -static void write_char(char c, void *d) -{ -     write_char_data *ad = (write_char_data *) d; -     ad->f77_write_char(&c, ad->data); -} - -typedef struct { -     void (*f77_read_char)(int *, void *); -     void *data; -} read_char_data; - -static int read_char(void *d) -{ -     read_char_data *ed = (read_char_data *) d; -     int c; -     ed->f77_read_char(&c, ed->data); -     return (c < 0 ? EOF : c); -} - -static X(r2r_kind) *ints2kinds(int rnk, const int *ik) -{ -     if (!FINITE_RNK(rnk) || rnk == 0) -	  return 0; -     else { -	  int i; -	  X(r2r_kind) *k; - -	  k = (X(r2r_kind) *) MALLOC(sizeof(X(r2r_kind)) * rnk, PROBLEMS); -	  /* reverse order for Fortran -> C */ -	  for (i = 0; i < rnk; ++i) -	       k[i] = (X(r2r_kind)) ik[rnk - 1 - i]; -	  return k; -     } -} - -/*-----------------------------------------------------------------------*/ - -#include "x77.h" - -#define F77(a, A) F77x(x77(a), X77(A)) - -#ifndef WINDOWS_F77_MANGLING - -#if defined(F77_FUNC) -#  define F77x(a, A) F77_FUNC(a, A) -#  include "f77funcs.h" -#endif - -/* If identifiers with underscores are mangled differently than those -   without underscores, then we include *both* mangling versions.  The -   reason is that the only Fortran compiler that does such differing -   mangling is currently g77 (which adds an extra underscore to names -   with underscores), whereas other compilers running on the same -   machine are likely to use g77's non-underscored mangling.  (I'm sick -   of users complaining that FFTW works with g77 but not with e.g. -   pgf77 or ifc on the same machine.)  Note that all FFTW identifiers -   contain underscores, and configure picks g77 by default. */ -#if defined(F77_FUNC_) && !defined(F77_FUNC_EQUIV) -#  undef F77x -#  define F77x(a, A) F77_FUNC_(a, A) -#  include "f77funcs.h" -#endif - -#else /* WINDOWS_F77_MANGLING */ - -/* Various mangling conventions common (?) under Windows. */ - -/* g77 */ -#  define WINDOWS_F77_FUNC(a, A) a ## __ -#  define F77x(a, A) WINDOWS_F77_FUNC(a, A) -#  include "f77funcs.h" - -/* Digital/Compaq/HP Visual Fortran, Intel Fortran.  stdcall attribute -   is apparently required to adjust for calling conventions (callee -   pops stack in stdcall).  See also: -       http://msdn.microsoft.com/library/en-us/vccore98/html/_core_mixed.2d.language_programming.3a_.overview.asp -*/ -#  undef WINDOWS_F77_FUNC -#  if defined(__GNUC__) -#    define WINDOWS_F77_FUNC(a, A) __attribute__((stdcall)) A -#  elif defined(_MSC_VER) || defined(_ICC) || defined(_STDCALL_SUPPORTED) -#    define WINDOWS_F77_FUNC(a, A) __stdcall A -#  else -#    define WINDOWS_F77_FUNC(a, A) A /* oh well */ -#  endif -#  include "f77funcs.h" - -#endif /* WINDOWS_F77_MANGLING */ - -#endif				/* F77_FUNC */ diff --git a/src/fftw3/api/f77funcs.h b/src/fftw3/api/f77funcs.h deleted file mode 100644 index ea0dd5c..0000000 --- a/src/fftw3/api/f77funcs.h +++ /dev/null @@ -1,438 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -/* Functions in the FFTW Fortran API, mangled according to the -   F77(...) macro.  This file is designed to be #included by -   f77api.c, possibly multiple times in order to support multiple -   compiler manglings (via redefinition of F77). */ - -void F77(execute, EXECUTE)(X(plan) * const p) -WITH_ALIGNED_STACK({ -     plan *pln = (*p)->pln; -     pln->adt->solve(pln, (*p)->prb); -}) - -void F77(destroy_plan, DESTROY_PLAN)(X(plan) *p) -{ -     X(destroy_plan)(*p); -} - -void F77(cleanup, CLEANUP)(void) -{ -     X(cleanup)(); -} - -void F77(forget_wisdom, FORGET_WISDOM)(void) -{ -     X(forget_wisdom)(); -} - -void F77(export_wisdom, EXPORT_WISDOM)(void (*f77_write_char)(char *, void *), -				       void *data) -{ -     write_char_data ad; -     ad.f77_write_char = f77_write_char; -     ad.data = data; -     X(export_wisdom)(write_char, (void *) &ad); -} - -void F77(import_wisdom, IMPORT_WISDOM)(int *isuccess, -				       void (*f77_read_char)(int *, void *), -				       void *data) -{ -     read_char_data ed; -     ed.f77_read_char = f77_read_char; -     ed.data = data; -     *isuccess = X(import_wisdom)(read_char, (void *) &ed); -} - -void F77(import_system_wisdom, IMPORT_SYSTEM_WISDOM)(int *isuccess) -{ -     *isuccess = X(import_system_wisdom)(); -} - -void F77(print_plan, PRINT_PLAN)(X(plan) * const p) -{ -     X(print_plan)(*p); -} - -void F77(flops,FLOPS)(X(plan) *p, double *add, double *mul, double *fma) -{ -     X(flops)(*p, add, mul, fma); -} - -/******************************** DFT ***********************************/ - -void F77(plan_dft, PLAN_DFT)(X(plan) *p, int *rank, const int *n, -			     C *in, C *out, int *sign, int *flags) -{ -     int *nrev = reverse_n(*rank, n); -     *p = X(plan_dft)(*rank, nrev, in, out, *sign, *flags); -     X(ifree0)(nrev); -} - -void F77(plan_dft_1d, PLAN_DFT_1D)(X(plan) *p, int *n, C *in, C *out, -				   int *sign, int *flags) -{ -     *p = X(plan_dft_1d)(*n, in, out, *sign, *flags); -} - -void F77(plan_dft_2d, PLAN_DFT_2D)(X(plan) *p, int *nx, int *ny, -				   C *in, C *out, int *sign, int *flags) -{ -     *p = X(plan_dft_2d)(*ny, *nx, in, out, *sign, *flags); -} - -void F77(plan_dft_3d, PLAN_DFT_3D)(X(plan) *p, int *nx, int *ny, int *nz, -				   C *in, C *out, -				   int *sign, int *flags) -{ -     *p = X(plan_dft_3d)(*nz, *ny, *nx, in, out, *sign, *flags); -} - -void F77(plan_many_dft, PLAN_MANY_DFT)(X(plan) *p, int *rank, const int *n, -				       int *howmany, -				       C *in, const int *inembed, -				       int *istride, int *idist, -				       C *out, const int *onembed, -				       int *ostride, int *odist, -				       int *sign, int *flags) -{ -     int *nrev = reverse_n(*rank, n); -     int *inembedrev = reverse_n(*rank, inembed); -     int *onembedrev = reverse_n(*rank, onembed); -     *p = X(plan_many_dft)(*rank, nrev, *howmany, -			   in, inembedrev, *istride, *idist, -			   out, onembedrev, *ostride, *odist, -			   *sign, *flags); -     X(ifree0)(onembedrev); -     X(ifree0)(inembedrev); -     X(ifree0)(nrev); -} - -void F77(plan_guru_dft, PLAN_GURU_DFT)(X(plan) *p, int *rank, const int *n, -				       const int *is, const int *os, -				       int *howmany_rank, const int *h_n, -				       const int *h_is, const int *h_os, -				       C *in, C *out, int *sign, int *flags) -{ -     X(iodim) *dims = make_dims(*rank, n, is, os); -     X(iodim) *howmany_dims = make_dims(*howmany_rank, h_n, h_is, h_os); -     *p = X(plan_guru_dft)(*rank, dims, *howmany_rank, howmany_dims, -			   in, out, *sign, *flags); -     X(ifree0)(howmany_dims); -     X(ifree0)(dims); -} - -void F77(plan_guru_split_dft, PLAN_GURU_SPLIT_DFT)(X(plan) *p, int *rank, const int *n, -				       const int *is, const int *os, -				       int *howmany_rank, const int *h_n, -				       const int *h_is, const int *h_os, -				       R *ri, R *ii, R *ro, R *io, int *flags) -{ -     X(iodim) *dims = make_dims(*rank, n, is, os); -     X(iodim) *howmany_dims = make_dims(*howmany_rank, h_n, h_is, h_os); -     *p = X(plan_guru_split_dft)(*rank, dims, *howmany_rank, howmany_dims, -			   ri, ii, ro, io, *flags); -     X(ifree0)(howmany_dims); -     X(ifree0)(dims); -} - -void F77(execute_dft, EXECUTE_DFT)(X(plan) * const p, C *in, C *out) -WITH_ALIGNED_STACK({ -     plan_dft *pln = (plan_dft *) (*p)->pln; -     if ((*p)->sign == FFT_SIGN) -          pln->apply((plan *) pln, in[0], in[0]+1, out[0], out[0]+1); -     else -          pln->apply((plan *) pln, in[0]+1, in[0], out[0]+1, out[0]); -}) - -void F77(execute_split_dft, EXECUTE_SPLIT_DFT)(X(plan) * const p, -					       R *ri, R *ii, R *ro, R *io) -WITH_ALIGNED_STACK({ -     plan_dft *pln = (plan_dft *) (*p)->pln; -     pln->apply((plan *) pln, ri, ii, ro, io); -}) - -/****************************** DFT r2c *********************************/ - -void F77(plan_dft_r2c, PLAN_DFT_R2C)(X(plan) *p, int *rank, const int *n, -				     R *in, C *out, int *flags) -{ -     int *nrev = reverse_n(*rank, n); -     *p = X(plan_dft_r2c)(*rank, nrev, in, out, *flags); -     X(ifree0)(nrev); -} - -void F77(plan_dft_r2c_1d, PLAN_DFT_R2C_1D)(X(plan) *p, int *n, R *in, C *out, -					   int *flags) -{ -     *p = X(plan_dft_r2c_1d)(*n, in, out, *flags); -} - -void F77(plan_dft_r2c_2d, PLAN_DFT_R2C_2D)(X(plan) *p, int *nx, int *ny, -					   R *in, C *out, int *flags) -{ -     *p = X(plan_dft_r2c_2d)(*ny, *nx, in, out, *flags); -} - -void F77(plan_dft_r2c_3d, PLAN_DFT_R2C_3D)(X(plan) *p, -					   int *nx, int *ny, int *nz, -					   R *in, C *out, -					   int *flags) -{ -     *p = X(plan_dft_r2c_3d)(*nz, *ny, *nx, in, out, *flags); -} - -void F77(plan_many_dft_r2c, PLAN_MANY_DFT_R2C)( -     X(plan) *p, int *rank, const int *n, -     int *howmany, -     R *in, const int *inembed, int *istride, int *idist, -     C *out, const int *onembed, int *ostride, int *odist, -     int *flags) -{ -     int *nrev = reverse_n(*rank, n); -     int *inembedrev = reverse_n(*rank, inembed); -     int *onembedrev = reverse_n(*rank, onembed); -     *p = X(plan_many_dft_r2c)(*rank, nrev, *howmany, -			       in, inembedrev, *istride, *idist, -			       out, onembedrev, *ostride, *odist, -			       *flags); -     X(ifree0)(onembedrev); -     X(ifree0)(inembedrev); -     X(ifree0)(nrev); -} - -void F77(plan_guru_dft_r2c, PLAN_GURU_DFT_R2C)( -     X(plan) *p, int *rank, const int *n, -     const int *is, const int *os, -     int *howmany_rank, const int *h_n, -     const int *h_is, const int *h_os, -     R *in, C *out, int *flags) -{ -     X(iodim) *dims = make_dims(*rank, n, is, os); -     X(iodim) *howmany_dims = make_dims(*howmany_rank, h_n, h_is, h_os); -     *p = X(plan_guru_dft_r2c)(*rank, dims, *howmany_rank, howmany_dims, -			       in, out, *flags); -     X(ifree0)(howmany_dims); -     X(ifree0)(dims); -} - -void F77(plan_guru_split_dft_r2c, PLAN_GURU_SPLIT_DFT_R2C)( -     X(plan) *p, int *rank, const int *n, -     const int *is, const int *os, -     int *howmany_rank, const int *h_n, -     const int *h_is, const int *h_os, -     R *in, R *ro, R *io, int *flags) -{ -     X(iodim) *dims = make_dims(*rank, n, is, os); -     X(iodim) *howmany_dims = make_dims(*howmany_rank, h_n, h_is, h_os); -     *p = X(plan_guru_split_dft_r2c)(*rank, dims, *howmany_rank, howmany_dims, -			       in, ro, io, *flags); -     X(ifree0)(howmany_dims); -     X(ifree0)(dims); -} - -void F77(execute_dft_r2c, EXECUTE_DFT_R2C)(X(plan) * const p, R *in, C *out) -WITH_ALIGNED_STACK({ -     plan_rdft2 *pln = (plan_rdft2 *) (*p)->pln; -     pln->apply((plan *) pln, in, out[0], out[0]+1); -}) - -void F77(execute_split_dft_r2c, EXECUTE_SPLIT_DFT_R2C)(X(plan) * const p, -						       R *in, R *ro, R *io) -WITH_ALIGNED_STACK({ -     plan_rdft2 *pln = (plan_rdft2 *) (*p)->pln; -     pln->apply((plan *) pln, in, ro, io); -}) - -/****************************** DFT c2r *********************************/ - -void F77(plan_dft_c2r, PLAN_DFT_C2R)(X(plan) *p, int *rank, const int *n, -				     C *in, R *out, int *flags) -{ -     int *nrev = reverse_n(*rank, n); -     *p = X(plan_dft_c2r)(*rank, nrev, in, out, *flags); -     X(ifree0)(nrev); -} - -void F77(plan_dft_c2r_1d, PLAN_DFT_C2R_1D)(X(plan) *p, int *n, C *in, R *out, -					   int *flags) -{ -     *p = X(plan_dft_c2r_1d)(*n, in, out, *flags); -} - -void F77(plan_dft_c2r_2d, PLAN_DFT_C2R_2D)(X(plan) *p, int *nx, int *ny, -					   C *in, R *out, int *flags) -{ -     *p = X(plan_dft_c2r_2d)(*ny, *nx, in, out, *flags); -} - -void F77(plan_dft_c2r_3d, PLAN_DFT_C2R_3D)(X(plan) *p, -					   int *nx, int *ny, int *nz, -					   C *in, R *out, -					   int *flags) -{ -     *p = X(plan_dft_c2r_3d)(*nz, *ny, *nx, in, out, *flags); -} - -void F77(plan_many_dft_c2r, PLAN_MANY_DFT_C2R)( -     X(plan) *p, int *rank, const int *n, -     int *howmany, -     C *in, const int *inembed, int *istride, int *idist, -     R *out, const int *onembed, int *ostride, int *odist, -     int *flags) -{ -     int *nrev = reverse_n(*rank, n); -     int *inembedrev = reverse_n(*rank, inembed); -     int *onembedrev = reverse_n(*rank, onembed); -     *p = X(plan_many_dft_c2r)(*rank, nrev, *howmany, -			       in, inembedrev, *istride, *idist, -			       out, onembedrev, *ostride, *odist, -			       *flags); -     X(ifree0)(onembedrev); -     X(ifree0)(inembedrev); -     X(ifree0)(nrev); -} - -void F77(plan_guru_dft_c2r, PLAN_GURU_DFT_C2R)( -     X(plan) *p, int *rank, const int *n, -     const int *is, const int *os, -     int *howmany_rank, const int *h_n, -     const int *h_is, const int *h_os, -     C *in, R *out, int *flags) -{ -     X(iodim) *dims = make_dims(*rank, n, is, os); -     X(iodim) *howmany_dims = make_dims(*howmany_rank, h_n, h_is, h_os); -     *p = X(plan_guru_dft_c2r)(*rank, dims, *howmany_rank, howmany_dims, -			       in, out, *flags); -     X(ifree0)(howmany_dims); -     X(ifree0)(dims); -} - -void F77(plan_guru_split_dft_c2r, PLAN_GURU_SPLIT_DFT_C2R)( -     X(plan) *p, int *rank, const int *n, -     const int *is, const int *os, -     int *howmany_rank, const int *h_n, -     const int *h_is, const int *h_os, -     R *ri, R *ii, R *out, int *flags) -{ -     X(iodim) *dims = make_dims(*rank, n, is, os); -     X(iodim) *howmany_dims = make_dims(*howmany_rank, h_n, h_is, h_os); -     *p = X(plan_guru_split_dft_c2r)(*rank, dims, *howmany_rank, howmany_dims, -			       ri, ii, out, *flags); -     X(ifree0)(howmany_dims); -     X(ifree0)(dims); -} - -void F77(execute_dft_c2r, EXECUTE_DFT_C2R)(X(plan) * const p, C *in, R *out) -WITH_ALIGNED_STACK({ -     plan_rdft2 *pln = (plan_rdft2 *) (*p)->pln; -     pln->apply((plan *) pln, out, in[0], in[0]+1); -}) - -void F77(execute_split_dft_c2r, EXECUTE_SPLIT_DFT_C2R)(X(plan) * const p, -					   R *ri, R *ii, R *out) -WITH_ALIGNED_STACK({ -     plan_rdft2 *pln = (plan_rdft2 *) (*p)->pln; -     pln->apply((plan *) pln, out, ri, ii); -}) - -/****************************** r2r *********************************/ - -void F77(plan_r2r, PLAN_R2R)(X(plan) *p, int *rank, const int *n, -			     R *in, R *out, -			     int *kind, int *flags) -{ -     int *nrev = reverse_n(*rank, n); -     X(r2r_kind) *k = ints2kinds(*rank, kind); -     *p = X(plan_r2r)(*rank, nrev, in, out, k, *flags); -     X(ifree0)(k); -     X(ifree0)(nrev); -} - -void F77(plan_r2r_1d, PLAN_R2R_1D)(X(plan) *p, int *n, R *in, R *out, -				   int *kind, int *flags) -{ -     *p = X(plan_r2r_1d)(*n, in, out, (X(r2r_kind)) *kind, *flags); -} - -void F77(plan_r2r_2d, PLAN_R2R_2D)(X(plan) *p, int *nx, int *ny, -				   R *in, R *out,  -				   int *kindx, int *kindy, int *flags) -{ -     *p = X(plan_r2r_2d)(*ny, *nx, in, out, -			 (X(r2r_kind)) *kindy, (X(r2r_kind)) *kindx, *flags); -} - -void F77(plan_r2r_3d, PLAN_R2R_3D)(X(plan) *p, -				   int *nx, int *ny, int *nz, -				   R *in, R *out, -				   int *kindx, int *kindy, int *kindz, -				   int *flags) -{ -     *p = X(plan_r2r_3d)(*nz, *ny, *nx, in, out, -			 (X(r2r_kind)) *kindz, (X(r2r_kind)) *kindy,  -			 (X(r2r_kind)) *kindx, *flags); -} - -void F77(plan_many_r2r, PLAN_MANY_R2R)( -     X(plan) *p, int *rank, const int *n, -     int *howmany, -     R *in, const int *inembed, int *istride, int *idist, -     R *out, const int *onembed, int *ostride, int *odist, -     int *kind, int *flags) -{ -     int *nrev = reverse_n(*rank, n); -     int *inembedrev = reverse_n(*rank, inembed); -     int *onembedrev = reverse_n(*rank, onembed); -     X(r2r_kind) *k = ints2kinds(*rank, kind); -     *p = X(plan_many_r2r)(*rank, nrev, *howmany, -			       in, inembedrev, *istride, *idist, -			       out, onembedrev, *ostride, *odist, -			       k, *flags); -     X(ifree0)(k); -     X(ifree0)(onembedrev); -     X(ifree0)(inembedrev); -     X(ifree0)(nrev); -} - -void F77(plan_guru_r2r, PLAN_GURU_R2R)( -     X(plan) *p, int *rank, const int *n, -     const int *is, const int *os, -     int *howmany_rank, const int *h_n, -     const int *h_is, const int *h_os, -     R *in, R *out, int *kind, int *flags) -{ -     X(iodim) *dims = make_dims(*rank, n, is, os); -     X(iodim) *howmany_dims = make_dims(*howmany_rank, h_n, h_is, h_os); -     X(r2r_kind) *k = ints2kinds(*rank, kind); -     *p = X(plan_guru_r2r)(*rank, dims, *howmany_rank, howmany_dims, -			       in, out, k, *flags); -     X(ifree0)(k); -     X(ifree0)(howmany_dims); -     X(ifree0)(dims); -} - -void F77(execute_r2r, EXECUTE_R2R)(X(plan) * const p, R *in, R *out) -WITH_ALIGNED_STACK({ -     plan_rdft *pln = (plan_rdft *) (*p)->pln; -     pln->apply((plan *) pln, in, out); -}) diff --git a/src/fftw3/api/fftw3.h b/src/fftw3/api/fftw3.h deleted file mode 100644 index 6cb3254..0000000 --- a/src/fftw3/api/fftw3.h +++ /dev/null @@ -1,272 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -/* header file for fftw3 */ -/* $Id: fftw3.h,v 1.1 2008/10/17 06:10:47 scuri Exp $ */ - -#ifndef FFTW3_H -#define FFTW3_H - -#include <stdio.h> - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* If <complex.h> is included, use the C99 complex type.  Otherwise -   define a type bit-compatible with C99 complex */ -#ifdef _Complex_I -#  define FFTW_DEFINE_COMPLEX(R, C) typedef R _Complex C -#else -#  define FFTW_DEFINE_COMPLEX(R, C) typedef R C[2] -#endif - -#define FFTW_CONCAT(prefix, name) prefix ## name -#define FFTW_MANGLE_DOUBLE(name) FFTW_CONCAT(fftw_, name) -#define FFTW_MANGLE_FLOAT(name) FFTW_CONCAT(fftwf_, name) -#define FFTW_MANGLE_LONG_DOUBLE(name) FFTW_CONCAT(fftwl_, name) - - -enum fftw_r2r_kind_do_not_use_me { -     FFTW_R2HC=0, FFTW_HC2R=1, FFTW_DHT=2, -     FFTW_REDFT00=3, FFTW_REDFT01=4, FFTW_REDFT10=5, FFTW_REDFT11=6, -     FFTW_RODFT00=7, FFTW_RODFT01=8, FFTW_RODFT10=9, FFTW_RODFT11=10 -}; - -struct fftw_iodim_do_not_use_me { -     int n;                     /* dimension size */ -     int is;			/* input stride */ -     int os;			/* output stride */ -}; - -/* -  huge second-order macro that defines prototypes for all API -  functions.  We expand this macro for each supported precision -  -  X: name-mangling macro -  R: real data type -  C: complex data type -*/ - -#define FFTW_DEFINE_API(X, R, C)					\ -									\ -FFTW_DEFINE_COMPLEX(R, C);						\ -									\ -typedef struct X(plan_s) *X(plan);					\ -									\ -typedef struct fftw_iodim_do_not_use_me X(iodim);			\ -									\ -typedef enum fftw_r2r_kind_do_not_use_me X(r2r_kind);			\ -									\ -void X(execute)(const X(plan) p);					\ -									\ -X(plan) X(plan_dft)(int rank, const int *n,				\ -		    C *in, C *out, int sign, unsigned flags);		\ -									\ -X(plan) X(plan_dft_1d)(int n, C *in, C *out, int sign,			\ -		       unsigned flags);					\ -X(plan) X(plan_dft_2d)(int nx, int ny,					\ -		       C *in, C *out, int sign, unsigned flags);	\ -X(plan) X(plan_dft_3d)(int nx, int ny, int nz,				\ -		       C *in, C *out, int sign, unsigned flags);	\ -									\ -X(plan) X(plan_many_dft)(int rank, const int *n,			\ -                         int howmany,					\ -                         C *in, const int *inembed,			\ -                         int istride, int idist,			\ -                         C *out, const int *onembed,			\ -                         int ostride, int odist,			\ -                         int sign, unsigned flags);			\ -									\ -X(plan) X(plan_guru_dft)(int rank, const X(iodim) *dims,		\ -			 int howmany_rank,				\ -			 const X(iodim) *howmany_dims,			\ -			 C *in, C *out,					\ -			 int sign, unsigned flags);			\ -X(plan) X(plan_guru_split_dft)(int rank, const X(iodim) *dims,		\ -			 int howmany_rank,				\ -			 const X(iodim) *howmany_dims,			\ -			 R *ri, R *ii, R *ro, R *io,			\ -			 unsigned flags);				\ -									\ -void X(execute_dft)(const X(plan) p, C *in, C *out);			\ -void X(execute_split_dft)(const X(plan) p, R *ri, R *ii, R *ro, R *io);	\ -									\ -X(plan) X(plan_many_dft_r2c)(int rank, const int *n,			\ -                             int howmany,				\ -                             R *in, const int *inembed,			\ -                             int istride, int idist,			\ -                             C *out, const int *onembed,		\ -                             int ostride, int odist,			\ -                             unsigned flags);				\ -									\ -X(plan) X(plan_dft_r2c)(int rank, const int *n,				\ -                        R *in, C *out, unsigned flags);			\ -									\ -X(plan) X(plan_dft_r2c_1d)(int n,R *in,C *out,unsigned flags);		\ -X(plan) X(plan_dft_r2c_2d)(int nx, int ny,				\ -			   R *in, C *out, unsigned flags);		\ -X(plan) X(plan_dft_r2c_3d)(int nx, int ny,				\ -			   int nz,					\ -			   R *in, C *out, unsigned flags);		\ -									\ -									\ -X(plan) X(plan_many_dft_c2r)(int rank, const int *n,			\ -			     int howmany,				\ -			     C *in, const int *inembed,			\ -			     int istride, int idist,			\ -			     R *out, const int *onembed,		\ -			     int ostride, int odist,			\ -			     unsigned flags);				\ -									\ -X(plan) X(plan_dft_c2r)(int rank, const int *n,				\ -                        C *in, R *out, unsigned flags);			\ -									\ -X(plan) X(plan_dft_c2r_1d)(int n,C *in,R *out,unsigned flags);		\ -X(plan) X(plan_dft_c2r_2d)(int nx, int ny,				\ -			   C *in, R *out, unsigned flags);		\ -X(plan) X(plan_dft_c2r_3d)(int nx, int ny,				\ -			   int nz,					\ -			   C *in, R *out, unsigned flags);		\ -									\ -X(plan) X(plan_guru_dft_r2c)(int rank, const X(iodim) *dims,		\ -			     int howmany_rank,				\ -			     const X(iodim) *howmany_dims,		\ -			     R *in, C *out,				\ -			     unsigned flags);				\ -X(plan) X(plan_guru_dft_c2r)(int rank, const X(iodim) *dims,		\ -			     int howmany_rank,				\ -			     const X(iodim) *howmany_dims,		\ -			     C *in, R *out,				\ -			     unsigned flags);				\ -									\ -X(plan) X(plan_guru_split_dft_r2c)(int rank, const X(iodim) *dims,	\ -			     int howmany_rank,				\ -			     const X(iodim) *howmany_dims,		\ -			     R *in, R *ro, R *io,			\ -			     unsigned flags);				\ -X(plan) X(plan_guru_split_dft_c2r)(int rank, const X(iodim) *dims,	\ -			     int howmany_rank,				\ -			     const X(iodim) *howmany_dims,		\ -			     R *ri, R *ii, R *out,			\ -			     unsigned flags);				\ -									\ -void X(execute_dft_r2c)(const X(plan) p, R *in, C *out);		\ -void X(execute_dft_c2r)(const X(plan) p, C *in, R *out);		\ -									\ -void X(execute_split_dft_r2c)(const X(plan) p, R *in, R *ro, R *io);	\ -void X(execute_split_dft_c2r)(const X(plan) p, R *ri, R *ii, R *out);	\ -									\ -X(plan) X(plan_many_r2r)(int rank, const int *n,			\ -                         int howmany,					\ -                         R *in, const int *inembed,			\ -                         int istride, int idist,			\ -                         R *out, const int *onembed,			\ -                         int ostride, int odist,			\ -                         const X(r2r_kind) *kind, unsigned flags);	\ -									\ -X(plan) X(plan_r2r)(int rank, const int *n, R *in, R *out,		\ -                    const X(r2r_kind) *kind, unsigned flags);		\ -									\ -X(plan) X(plan_r2r_1d)(int n, R *in, R *out,				\ -                       X(r2r_kind) kind, unsigned flags);		\ -X(plan) X(plan_r2r_2d)(int nx, int ny, R *in, R *out,			\ -                       X(r2r_kind) kindx, X(r2r_kind) kindy,		\ -                       unsigned flags);					\ -X(plan) X(plan_r2r_3d)(int nx, int ny, int nz,				\ -                       R *in, R *out, X(r2r_kind) kindx,		\ -                       X(r2r_kind) kindy, X(r2r_kind) kindz,		\ -                       unsigned flags);					\ -									\ -X(plan) X(plan_guru_r2r)(int rank, const X(iodim) *dims,		\ -                         int howmany_rank,				\ -                         const X(iodim) *howmany_dims,			\ -                         R *in, R *out,					\ -                         const X(r2r_kind) *kind, unsigned flags);	\ -void X(execute_r2r)(const X(plan) p, R *in, R *out);			\ -									\ -void X(destroy_plan)(X(plan) p);					\ -void X(forget_wisdom)(void);						\ -void X(cleanup)(void);							\ -									\ -void X(plan_with_nthreads)(int nthreads);				\ -int X(init_threads)(void);						\ -void X(cleanup_threads)(void);						\ -									\ -void X(export_wisdom_to_file)(FILE *output_file);			\ -char *X(export_wisdom_to_string)(void);					\ -void X(export_wisdom)(void (*write_char)(char c, void *), void *data);	\ -int X(import_system_wisdom)(void);					\ -int X(import_wisdom_from_file)(FILE *input_file);			\ -int X(import_wisdom_from_string)(const char *input_string);		\ -int X(import_wisdom)(int (*read_char)(void *), void *data);		\ -									\ -void X(fprint_plan)(const X(plan) p, FILE *output_file);		\ -void X(print_plan)(const X(plan) p);					\ -									\ -void *X(malloc)(size_t n);						\ -void X(free)(void *p);							\ -									\ -void X(flops)(const X(plan) p, double *add, double *mul, double *fma);	\ -									\ -extern const char X(version)[];						\ -extern const char X(cc)[];						\ -extern const char X(codelet_optim)[]; - - -/* end of FFTW_DEFINE_API macro */ - -FFTW_DEFINE_API(FFTW_MANGLE_DOUBLE, double, fftw_complex) -FFTW_DEFINE_API(FFTW_MANGLE_FLOAT, float, fftwf_complex) -FFTW_DEFINE_API(FFTW_MANGLE_LONG_DOUBLE, long double, fftwl_complex) - -#define FFTW_FORWARD (-1) -#define FFTW_BACKWARD (+1) - -/* documented flags */ -#define FFTW_MEASURE (0U) -#define FFTW_DESTROY_INPUT (1U << 0) -#define FFTW_UNALIGNED (1U << 1) -#define FFTW_CONSERVE_MEMORY (1U << 2) -#define FFTW_EXHAUSTIVE (1U << 3) /* NO_EXHAUSTIVE is default */ -#define FFTW_PRESERVE_INPUT (1U << 4) /* cancels FFTW_DESTROY_INPUT */ -#define FFTW_PATIENT (1U << 5) /* IMPATIENT is default */ -#define FFTW_ESTIMATE (1U << 6) - -/* undocumented beyond-guru flags */ -#define FFTW_ESTIMATE_PATIENT (1U << 7) -#define FFTW_BELIEVE_PCOST (1U << 8) -#define FFTW_DFT_R2HC_ICKY (1U << 9) -#define FFTW_NONTHREADED_ICKY (1U << 10) -#define FFTW_NO_BUFFERING (1U << 11) -#define FFTW_NO_INDIRECT_OP (1U << 12) -#define FFTW_ALLOW_LARGE_GENERIC (1U << 13) /* NO_LARGE_GENERIC is default */ -#define FFTW_NO_RANK_SPLITS (1U << 14) -#define FFTW_NO_VRANK_SPLITS (1U << 15) -#define FFTW_NO_VRECURSE (1U << 16) - -#define FFTW_NO_SIMD (1U << 17) - -#ifdef __cplusplus -}  /* extern "C" */ -#endif /* __cplusplus */ - -#endif /* FFTW3_H */ diff --git a/src/fftw3/api/flops.c b/src/fftw3/api/flops.c deleted file mode 100644 index 43e8891..0000000 --- a/src/fftw3/api/flops.c +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -void X(flops)(const X(plan) p, double *add, double *mul, double *fma) -{ -     opcnt *o = &p->pln->ops; -     *add = o->add; *mul = o->mul; *fma = o->fma; -} diff --git a/src/fftw3/api/forget-wisdom.c b/src/fftw3/api/forget-wisdom.c deleted file mode 100644 index 10ea580..0000000 --- a/src/fftw3/api/forget-wisdom.c +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -void X(forget_wisdom)(void) -{ -     planner *plnr = X(the_planner)(); -     plnr->adt->forget(plnr, FORGET_EVERYTHING); -} diff --git a/src/fftw3/api/import-system-wisdom.c b/src/fftw3/api/import-system-wisdom.c deleted file mode 100644 index 393b3a6..0000000 --- a/src/fftw3/api/import-system-wisdom.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -#if defined(FFTW_SINGLE) -#  define WISDOM_NAME "wisdomf" -#elif defined(FFTW_LDOUBLE) -#  define WISDOM_NAME "wisdoml" -#else -#  define WISDOM_NAME "wisdom" -#endif - -int X(import_system_wisdom)(void) -{ -#if defined(__WIN32__) || defined(WIN32) || defined(_WINDOWS) -     return 0; /* TODO? */ -#else - -     FILE *f; -     f = fopen("/etc/fftw/" WISDOM_NAME, "r"); -     if (f) { -          int ret = X(import_wisdom_from_file)(f); -          fclose(f); -          return ret; -     } else -          return 0; -#endif -} diff --git a/src/fftw3/api/import-wisdom-from-file.c b/src/fftw3/api/import-wisdom-from-file.c deleted file mode 100644 index e682ab9..0000000 --- a/src/fftw3/api/import-wisdom-from-file.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include <stdio.h> - -/* getc()/putc() are *unbelievably* slow on linux.  Looks like glibc -   is grabbing a lock for each call to getc()/putc(), or something -   like that.  You pay the price for these idiotic posix threads -   whether you use them or not. - -   So, we do our own buffering.  This completely defeats the purpose -   of having stdio in the first place, of course. -*/ -   -#define BUFSZ 256 - -typedef struct { -     scanner super; -     FILE *f; -     char buf[BUFSZ]; -     char *bufr, *bufw; -} S; - -static int getchr_file(scanner * sc_) -{ -     S *sc = (S *) sc_; - -     if (sc->bufr >= sc->bufw) { -	  sc->bufr = sc->buf; -	  sc->bufw = sc->buf + fread(sc->buf, 1, BUFSZ, sc->f); -	  if (sc->bufr >= sc->bufw) -	       return EOF; -     } - -     return *(sc->bufr++); -} - -static scanner *mkscanner_file(FILE *f) -{ -     S *sc = (S *) X(mkscanner)(sizeof(S), getchr_file); -     sc->f = f; -     sc->bufr = sc->bufw = sc->buf; -     return &sc->super; -} - -int X(import_wisdom_from_file)(FILE *input_file) -{ -     scanner *s = mkscanner_file(input_file); -     planner *plnr = X(the_planner)(); -     int ret = plnr->adt->imprt(plnr, s); -     X(scanner_destroy)(s); -     return ret; -} diff --git a/src/fftw3/api/import-wisdom-from-string.c b/src/fftw3/api/import-wisdom-from-string.c deleted file mode 100644 index d1ca6b8..0000000 --- a/src/fftw3/api/import-wisdom-from-string.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -typedef struct { -     scanner super; -     const char *s; -} S_str; - -static int getchr_str(scanner * sc_) -{ -     S_str *sc = (S_str *) sc_; -     if (!*sc->s) -          return EOF; -     return *sc->s++; -} - -static scanner *mkscanner_str(const char *s) -{ -     S_str *sc = (S_str *) X(mkscanner)(sizeof(S_str), getchr_str); -     sc->s = s; -     return &sc->super; -} - -int X(import_wisdom_from_string)(const char *input_string) -{ -     scanner *s = mkscanner_str(input_string); -     planner *plnr = X(the_planner)(); -     int ret = plnr->adt->imprt(plnr, s); -     X(scanner_destroy)(s); -     return ret; -} diff --git a/src/fftw3/api/import-wisdom.c b/src/fftw3/api/import-wisdom.c deleted file mode 100644 index 505ebab..0000000 --- a/src/fftw3/api/import-wisdom.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -typedef struct { -     scanner super; -     int (*read_char)(void *); -     void *data; -} S; - -static int getchr_generic(scanner * s_) -{ -     S *s = (S *) s_; -     return (s->read_char)(s->data); -} - -int X(import_wisdom)(int (*read_char)(void *), void *data) -{ -     S *s = (S *) X(mkscanner)(sizeof(S), getchr_generic); -     planner *plnr = X(the_planner)(); -     int ret; - -     s->read_char = read_char; -     s->data = data; -     ret = plnr->adt->imprt(plnr, (scanner *) s); -     X(scanner_destroy)((scanner *) s); -     return ret; -} diff --git a/src/fftw3/api/map-r2r-kind.c b/src/fftw3/api/map-r2r-kind.c deleted file mode 100644 index adba2ce..0000000 --- a/src/fftw3/api/map-r2r-kind.c +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "rdft.h" - -rdft_kind *X(map_r2r_kind)(int rank, const X(r2r_kind) * kind) -{ -     int i; -     rdft_kind *k; - -     A(FINITE_RNK(rank)); -     k = (rdft_kind *) MALLOC(rank * sizeof(rdft_kind), PROBLEMS); -     for (i = 0; i < rank; ++i) { -	  rdft_kind m; -          switch (kind[i]) { -	      case FFTW_R2HC: m = R2HC; break; -	      case FFTW_HC2R: m = HC2R; break; -	      case FFTW_DHT: m = DHT; break; -	      case FFTW_REDFT00: m = REDFT00; break; -	      case FFTW_REDFT01: m = REDFT01; break; -	      case FFTW_REDFT10: m = REDFT10; break; -	      case FFTW_REDFT11: m = REDFT11; break; -	      case FFTW_RODFT00: m = RODFT00; break; -	      case FFTW_RODFT01: m = RODFT01; break; -	      case FFTW_RODFT10: m = RODFT10; break; -	      case FFTW_RODFT11: m = RODFT11; break; -	      default: m = R2HC; A(0); -          } -	  k[i] = m; -     } -     return k; -} diff --git a/src/fftw3/api/mapflags.c b/src/fftw3/api/mapflags.c deleted file mode 100644 index abb4e6b..0000000 --- a/src/fftw3/api/mapflags.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -/* a flag operation: x is either a flag, in which case xm == 0, or -   a mask, in which case xm == x; using this we can compactly code -   the various bit operations via (flags & x) ^ xm or (flags | x) ^ xm. */ -typedef struct { -     unsigned x, xm; -} flagmask; - -typedef struct { -     flagmask flag; -     flagmask op; -} flagop; - -#define FLAGP(f, msk)(((f) & (msk).x) ^ (msk).xm) -#define OP(f, msk)(((f) | (msk).x) ^ (msk).xm) - -#define YES(x) {x, 0} -#define NO(x) {x, x} -#define IMPLIES(predicate, consequence) { predicate, consequence } -#define EQV(a, b) IMPLIES(YES(a), YES(b)), IMPLIES(NO(a), NO(b)) -#define NEQV(a, b) IMPLIES(YES(a), NO(b)), IMPLIES(NO(a), YES(b)) - -static void map_flags(unsigned *iflags, unsigned *oflags, -		      const flagop flagmap[], int nmap) -{ -     int i; -     for (i = 0; i < nmap; ++i) -          if (FLAGP(*iflags, flagmap[i].flag)) -               *oflags = OP(*oflags, flagmap[i].op); -} - -#define NELEM(array)(sizeof(array) / sizeof((array)[0])) - -void X(mapflags)(planner *plnr, unsigned flags) -{ -     unsigned tmpflags; - -     /* map of api flags -> api flags, to implement consistency rules -        and combination flags */ -     const flagop self_flagmap[] = { -	  /* in some cases (notably for halfcomplex->real transforms), -	     DESTROY_INPUT is the default, so we need to support -	     an inverse flag to disable it: */ -	  IMPLIES(YES(FFTW_PRESERVE_INPUT), NO(FFTW_DESTROY_INPUT)), - -	  IMPLIES(YES(FFTW_EXHAUSTIVE), YES(FFTW_PATIENT)), - -	  IMPLIES(YES(FFTW_ESTIMATE), NO(FFTW_PATIENT)), -	  IMPLIES(YES(FFTW_ESTIMATE), -		  YES(FFTW_ESTIMATE_PATIENT | FFTW_NO_INDIRECT_OP)), - -	  /* a canonical set of fftw2-like impatience flags */ -	  IMPLIES(NO(FFTW_PATIENT), -		  YES(FFTW_NO_VRECURSE -		      | FFTW_NO_RANK_SPLITS -		      | FFTW_NO_VRANK_SPLITS -		      | FFTW_NONTHREADED_ICKY -		      | FFTW_DFT_R2HC_ICKY -		      | FFTW_BELIEVE_PCOST)) -     }; - -     /* map of (processed) api flags to internal problem/planner flags */ -     const flagop problem_flagmap[] = { -	  EQV(FFTW_DESTROY_INPUT, DESTROY_INPUT), -	  EQV(FFTW_NO_SIMD, NO_SIMD), -	  EQV(FFTW_CONSERVE_MEMORY, CONSERVE_MEMORY) -     }; -     const flagop planner_flagmap[] = { -	  NEQV(FFTW_EXHAUSTIVE, NO_EXHAUSTIVE), - -	  /* the following are undocumented, "beyond-guru" flags that -	     require some understanding of FFTW internals */ -	  EQV(FFTW_ESTIMATE_PATIENT, ESTIMATE), -	  EQV(FFTW_BELIEVE_PCOST, BELIEVE_PCOST), -	  EQV(FFTW_DFT_R2HC_ICKY, DFT_R2HC_ICKY), -	  EQV(FFTW_NONTHREADED_ICKY, NONTHREADED_ICKY), -	  EQV(FFTW_NO_BUFFERING, NO_BUFFERING), -	  EQV(FFTW_NO_INDIRECT_OP, NO_INDIRECT_OP), -	  NEQV(FFTW_ALLOW_LARGE_GENERIC, NO_LARGE_GENERIC), -	  EQV(FFTW_NO_RANK_SPLITS, NO_RANK_SPLITS), -	  EQV(FFTW_NO_VRANK_SPLITS, NO_VRANK_SPLITS), -	  EQV(FFTW_NO_VRECURSE, NO_VRECURSE) -     }; - -     map_flags(&flags, &flags, self_flagmap, NELEM(self_flagmap)); - -     tmpflags = 0; -     map_flags(&flags, &tmpflags, problem_flagmap, NELEM(problem_flagmap)); -     plnr->problem_flags = tmpflags; - -     tmpflags = 0; -     map_flags(&flags, &tmpflags, planner_flagmap, NELEM(planner_flagmap)); -     plnr->planner_flags = tmpflags; -} diff --git a/src/fftw3/api/mkprinter-file.c b/src/fftw3/api/mkprinter-file.c deleted file mode 100644 index 24476f9..0000000 --- a/src/fftw3/api/mkprinter-file.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include <stdio.h> - -#define BUFSZ 256 - -typedef struct { -     printer super; -     FILE *f; -     char buf[BUFSZ]; -     char *bufw; -} P; - -static void myflush(P *p) -{ -     fwrite(p->buf, 1, p->bufw - p->buf, p->f); -     p->bufw = p->buf; -} - -static void myputchr(printer *p_, char c) -{ -     P *p = (P *) p_; -     if (p->bufw >= p->buf + BUFSZ) -	  myflush(p); -     *p->bufw++ = c; -} - -static void mycleanup(printer *p_) -{ -     P *p = (P *) p_; -     myflush(p); -} - -printer *X(mkprinter_file)(FILE *f) -{ -     P *p = (P *) X(mkprinter)(sizeof(P), myputchr, mycleanup); -     p->f = f; -     p->bufw = p->buf; -     return &p->super; -} diff --git a/src/fftw3/api/mktensor-iodims.c b/src/fftw3/api/mktensor-iodims.c deleted file mode 100644 index 99ce49e..0000000 --- a/src/fftw3/api/mktensor-iodims.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -tensor *X(mktensor_iodims)(int rank, const X(iodim) *dims, int is, int os) -{ -     int i; -     tensor *x = X(mktensor)(rank); - -     if (FINITE_RNK(rank)) { -          for (i = 0; i < rank; ++i) { -               x->dims[i].n = dims[i].n; -               x->dims[i].is = dims[i].is * is; -               x->dims[i].os = dims[i].os * os; -          } -     } -     return x; -} - -static int iodims_kosherp(int rank, const X(iodim) *dims, int allow_minfty) -{ -     int i; - -     if (rank < 0) return 0; - -     if (allow_minfty) { -	  if (!FINITE_RNK(rank)) return 1; -	  for (i = 0; i < rank; ++i) -	       if (dims[i].n < 0) return 0; -     } else { -	  if (!FINITE_RNK(rank)) return 0; -	  for (i = 0; i < rank; ++i) -	       if (dims[i].n <= 0) return 0; -     } - -     return 1; -} - -int X(guru_kosherp)(int rank, const X(iodim) *dims, -		    int howmany_rank, const X(iodim) *howmany_dims) -{ -     return (iodims_kosherp(rank, dims, 0) && -	     iodims_kosherp(howmany_rank, howmany_dims, 1)); -} diff --git a/src/fftw3/api/mktensor-rowmajor.c b/src/fftw3/api/mktensor-rowmajor.c deleted file mode 100644 index 84b87ca..0000000 --- a/src/fftw3/api/mktensor-rowmajor.c +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -tensor *X(mktensor_rowmajor)(int rnk, const int *n, -			     const int *niphys, const int *nophys, -			     int is, int os) -{ -     tensor *x = X(mktensor)(rnk); - -     if (FINITE_RNK(rnk) && rnk > 0) { -          int i; - -          A(n && niphys && nophys); -          x->dims[rnk - 1].is = is; -          x->dims[rnk - 1].os = os; -          x->dims[rnk - 1].n = n[rnk - 1]; -          for (i = rnk - 1; i > 0; --i) { -               x->dims[i - 1].is = x->dims[i].is * niphys[i]; -               x->dims[i - 1].os = x->dims[i].os * nophys[i]; -               x->dims[i - 1].n = n[i - 1]; -          } -     } -     return x; -} - -static int rowmajor_kosherp(int rnk, const int *n) -{ -     int i; - -     if (!FINITE_RNK(rnk)) return 0; -     if (rnk < 0) return 0; - -     for (i = 0; i < rnk; ++i) -	  if (n[i] <= 0) return 0; - -     return 1; -} - -int X(many_kosherp)(int rnk, const int *n, int howmany) -{ -     return (howmany >= 0) && rowmajor_kosherp(rnk, n); -} diff --git a/src/fftw3/api/plan-dft-1d.c b/src/fftw3/api/plan-dft-1d.c deleted file mode 100644 index 02ff69d..0000000 --- a/src/fftw3/api/plan-dft-1d.c +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "dft.h" - -X(plan) X(plan_dft_1d)(int n, C *in, C *out, int sign, unsigned flags) -{ -     return X(plan_dft)(1, &n, in, out, sign, flags); -} diff --git a/src/fftw3/api/plan-dft-2d.c b/src/fftw3/api/plan-dft-2d.c deleted file mode 100644 index f41e7e3..0000000 --- a/src/fftw3/api/plan-dft-2d.c +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "dft.h" - -X(plan) X(plan_dft_2d)(int nx, int ny, C *in, C *out, int sign, unsigned flags) -{ -     int n[2]; -     n[0] = nx; -     n[1] = ny; -     return X(plan_dft)(2, n, in, out, sign, flags); -} diff --git a/src/fftw3/api/plan-dft-3d.c b/src/fftw3/api/plan-dft-3d.c deleted file mode 100644 index a605a46..0000000 --- a/src/fftw3/api/plan-dft-3d.c +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "dft.h" - -X(plan) X(plan_dft_3d)(int nx, int ny, int nz, -		       C *in, C *out, int sign, unsigned flags) -{ -     int n[3]; -     n[0] = nx; -     n[1] = ny; -     n[2] = nz; -     return X(plan_dft)(3, n, in, out, sign, flags); -} diff --git a/src/fftw3/api/plan-dft-c2r-1d.c b/src/fftw3/api/plan-dft-c2r-1d.c deleted file mode 100644 index 7dc9a93..0000000 --- a/src/fftw3/api/plan-dft-c2r-1d.c +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -X(plan) X(plan_dft_c2r_1d)(int n, C *in, R *out, unsigned flags) -{ -     return X(plan_dft_c2r)(1, &n, in, out, flags); -} diff --git a/src/fftw3/api/plan-dft-c2r-2d.c b/src/fftw3/api/plan-dft-c2r-2d.c deleted file mode 100644 index 37d39bb..0000000 --- a/src/fftw3/api/plan-dft-c2r-2d.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -X(plan) X(plan_dft_c2r_2d)(int nx, int ny, C *in, R *out, unsigned flags) -{ -     int n[2]; -     n[0] = nx; -     n[1] = ny; -     return X(plan_dft_c2r)(2, n, in, out, flags); -} diff --git a/src/fftw3/api/plan-dft-c2r-3d.c b/src/fftw3/api/plan-dft-c2r-3d.c deleted file mode 100644 index 4644126..0000000 --- a/src/fftw3/api/plan-dft-c2r-3d.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -X(plan) X(plan_dft_c2r_3d)(int nx, int ny, int nz, -			   C *in, R *out, unsigned flags) -{ -     int n[3]; -     n[0] = nx; -     n[1] = ny; -     n[2] = nz; -     return X(plan_dft_c2r)(3, n, in, out, flags); -} diff --git a/src/fftw3/api/plan-dft-c2r.c b/src/fftw3/api/plan-dft-c2r.c deleted file mode 100644 index 118c1cb..0000000 --- a/src/fftw3/api/plan-dft-c2r.c +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -X(plan) X(plan_dft_c2r)(int rank, const int *n, C *in, R *out, unsigned flags) -{ -     return X(plan_many_dft_c2r)(rank, n, 1, -				 in, 0, 1, 1, out, 0, 1, 1, flags); -} diff --git a/src/fftw3/api/plan-dft-r2c-1d.c b/src/fftw3/api/plan-dft-r2c-1d.c deleted file mode 100644 index 5d4865a..0000000 --- a/src/fftw3/api/plan-dft-r2c-1d.c +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -X(plan) X(plan_dft_r2c_1d)(int n, R *in, C *out, unsigned flags) -{ -     return X(plan_dft_r2c)(1, &n, in, out, flags); -} diff --git a/src/fftw3/api/plan-dft-r2c-2d.c b/src/fftw3/api/plan-dft-r2c-2d.c deleted file mode 100644 index 289841c..0000000 --- a/src/fftw3/api/plan-dft-r2c-2d.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -X(plan) X(plan_dft_r2c_2d)(int nx, int ny, R *in, C *out, unsigned flags) -{ -     int n[2]; -     n[0] = nx; -     n[1] = ny; -     return X(plan_dft_r2c)(2, n, in, out, flags); -} diff --git a/src/fftw3/api/plan-dft-r2c-3d.c b/src/fftw3/api/plan-dft-r2c-3d.c deleted file mode 100644 index c25d04f..0000000 --- a/src/fftw3/api/plan-dft-r2c-3d.c +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -X(plan) X(plan_dft_r2c_3d)(int nx, int ny, int nz, -			   R *in, C *out, unsigned flags) -{ -     int n[3]; -     n[0] = nx; -     n[1] = ny; -     n[2] = nz; -     return X(plan_dft_r2c)(3, n, in, out, flags); -} diff --git a/src/fftw3/api/plan-dft-r2c.c b/src/fftw3/api/plan-dft-r2c.c deleted file mode 100644 index 8624995..0000000 --- a/src/fftw3/api/plan-dft-r2c.c +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -X(plan) X(plan_dft_r2c)(int rank, const int *n, R *in, C *out, unsigned flags) -{ -     return X(plan_many_dft_r2c)(rank, n, 1, -				 in, 0, 1, 1,  -				 out, 0, 1, 1,  -				 flags); -} diff --git a/src/fftw3/api/plan-dft.c b/src/fftw3/api/plan-dft.c deleted file mode 100644 index f9c8756..0000000 --- a/src/fftw3/api/plan-dft.c +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -X(plan) X(plan_dft)(int rank, const int *n, -		    C *in, C *out, int sign, unsigned flags) -{ -     return X(plan_many_dft)(rank, n, 1, -			     in, 0, 1, 1,  -			     out, 0, 1, 1,  -			     sign, flags); -} diff --git a/src/fftw3/api/plan-guru-dft-c2r.c b/src/fftw3/api/plan-guru-dft-c2r.c deleted file mode 100644 index 0ab3a9c..0000000 --- a/src/fftw3/api/plan-guru-dft-c2r.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "rdft.h" - -X(plan) X(plan_guru_dft_c2r)(int rank, const X(iodim) *dims, -			     int howmany_rank, const X(iodim) *howmany_dims, -			     C *in, R *out, unsigned flags) -{ -     R *ri, *ii; - -     if (!X(guru_kosherp)(rank, dims, howmany_rank, howmany_dims)) return 0; - -     X(extract_reim)(FFT_SIGN, in, &ri, &ii); - -     if (out != ri) -	  flags |= FFTW_DESTROY_INPUT; -     return X(mkapiplan)( -	  0, flags,  -	  X(mkproblem_rdft2_d)(X(mktensor_iodims)(rank, dims, 2, 1), -			       X(mktensor_iodims)(howmany_rank, howmany_dims, -						  2, 1), -			       TAINT_UNALIGNED(out, flags), -			       TAINT_UNALIGNED(ri, flags), -			       TAINT_UNALIGNED(ii, flags), HC2R)); -} diff --git a/src/fftw3/api/plan-guru-dft-r2c.c b/src/fftw3/api/plan-guru-dft-r2c.c deleted file mode 100644 index c4e4d41..0000000 --- a/src/fftw3/api/plan-guru-dft-r2c.c +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "rdft.h" - -X(plan) X(plan_guru_dft_r2c)(int rank, const X(iodim) *dims, -			     int howmany_rank, -			     const X(iodim) *howmany_dims, -			     R *in, C *out, unsigned flags) -{ -     R *ro, *io; - -     if (!X(guru_kosherp)(rank, dims, howmany_rank, howmany_dims)) return 0; - -     X(extract_reim)(FFT_SIGN, out, &ro, &io); - -     return X(mkapiplan)( -	  0, flags, -	  X(mkproblem_rdft2_d)(X(mktensor_iodims)(rank, dims, 1, 2), -			       X(mktensor_iodims)(howmany_rank, howmany_dims, -						  1, 2), -			       TAINT_UNALIGNED(in, flags), -			       TAINT_UNALIGNED(ro, flags), -			       TAINT_UNALIGNED(io, flags), R2HC)); -} diff --git a/src/fftw3/api/plan-guru-dft.c b/src/fftw3/api/plan-guru-dft.c deleted file mode 100644 index 32c894b..0000000 --- a/src/fftw3/api/plan-guru-dft.c +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "dft.h" - -X(plan) X(plan_guru_dft)(int rank, const X(iodim) *dims, -			 int howmany_rank, const X(iodim) *howmany_dims, -			 C *in, C *out, int sign, unsigned flags) -{ -     R *ri, *ii, *ro, *io; - -     if (!X(guru_kosherp)(rank, dims, howmany_rank, howmany_dims)) return 0; - -     X(extract_reim)(sign, in, &ri, &ii); -     X(extract_reim)(sign, out, &ro, &io); - -     return X(mkapiplan)( -	  sign, flags, -	  X(mkproblem_dft_d)(X(mktensor_iodims)(rank, dims, 2, 2), -			     X(mktensor_iodims)(howmany_rank, howmany_dims, -						2, 2), -			     TAINT_UNALIGNED(ri, flags), -			     TAINT_UNALIGNED(ii, flags),  -			     TAINT_UNALIGNED(ro, flags), -			     TAINT_UNALIGNED(io, flags))); -} diff --git a/src/fftw3/api/plan-guru-r2r.c b/src/fftw3/api/plan-guru-r2r.c deleted file mode 100644 index d5f2120..0000000 --- a/src/fftw3/api/plan-guru-r2r.c +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "rdft.h" - -rdft_kind *X(map_r2r_kind)(int rank, const X(r2r_kind) * kind); - -X(plan) X(plan_guru_r2r)(int rank, const X(iodim) *dims, -			 int howmany_rank, -			 const X(iodim) *howmany_dims, -			 R *in, R *out, -			 const X(r2r_kind) * kind, unsigned flags) -{ -     X(plan) p; -     rdft_kind *k; - -     if (!X(guru_kosherp)(rank, dims, howmany_rank, howmany_dims)) return 0; - -     k = X(map_r2r_kind)(rank, kind); -     p = X(mkapiplan)( -	  0, flags, -	  X(mkproblem_rdft_d)(X(mktensor_iodims)(rank, dims, 1, 1), -			      X(mktensor_iodims)(howmany_rank, howmany_dims, -						 1, 1),  -			      TAINT_UNALIGNED(in, flags), -			      TAINT_UNALIGNED(out, flags), k)); -     X(ifree0)(k); -     return p; -} diff --git a/src/fftw3/api/plan-guru-split-dft-c2r.c b/src/fftw3/api/plan-guru-split-dft-c2r.c deleted file mode 100644 index f51bc9a..0000000 --- a/src/fftw3/api/plan-guru-split-dft-c2r.c +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "rdft.h" - -X(plan) X(plan_guru_split_dft_c2r)(int rank, const X(iodim) *dims, -			     int howmany_rank, const X(iodim) *howmany_dims, -			     R *ri, R *ii, R *out, unsigned flags) -{ -     if (!X(guru_kosherp)(rank, dims, howmany_rank, howmany_dims)) return 0; - -     if (out != ri) -	  flags |= FFTW_DESTROY_INPUT; -     return X(mkapiplan)( -	  0, flags,  -	  X(mkproblem_rdft2_d)(X(mktensor_iodims)(rank, dims, 1, 1), -			       X(mktensor_iodims)(howmany_rank, howmany_dims, -						  1, 1), -			       TAINT_UNALIGNED(out, flags), -			       TAINT_UNALIGNED(ri, flags), -			       TAINT_UNALIGNED(ii, flags), HC2R)); -} diff --git a/src/fftw3/api/plan-guru-split-dft-r2c.c b/src/fftw3/api/plan-guru-split-dft-r2c.c deleted file mode 100644 index 3c5eafd..0000000 --- a/src/fftw3/api/plan-guru-split-dft-r2c.c +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "rdft.h" - -X(plan) X(plan_guru_split_dft_r2c)(int rank, const X(iodim) *dims, -				   int howmany_rank, -				   const X(iodim) *howmany_dims, -				   R *in, R *ro, R *io, unsigned flags) -{ -     if (!X(guru_kosherp)(rank, dims, howmany_rank, howmany_dims)) return 0; - -     return X(mkapiplan)( -	  0, flags, -	  X(mkproblem_rdft2_d)(X(mktensor_iodims)(rank, dims, 1, 1), -			       X(mktensor_iodims)(howmany_rank, howmany_dims, -						  1, 1), -			       TAINT_UNALIGNED(in, flags), -			       TAINT_UNALIGNED(ro, flags), -			       TAINT_UNALIGNED(io, flags), R2HC)); -} diff --git a/src/fftw3/api/plan-guru-split-dft.c b/src/fftw3/api/plan-guru-split-dft.c deleted file mode 100644 index 62437c2..0000000 --- a/src/fftw3/api/plan-guru-split-dft.c +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "dft.h" - -X(plan) X(plan_guru_split_dft)(int rank, const X(iodim) *dims, -			       int howmany_rank, const X(iodim) *howmany_dims, -			       R *ri, R *ii, R *ro, R *io, unsigned flags) -{ -     if (!X(guru_kosherp)(rank, dims, howmany_rank, howmany_dims)) return 0; - -     return X(mkapiplan)( -	  ii - ri == 1 && io - ro == 1 ? FFT_SIGN : -FFT_SIGN, flags, -	  X(mkproblem_dft_d)(X(mktensor_iodims)(rank, dims, 1, 1), -			     X(mktensor_iodims)(howmany_rank, howmany_dims, -						1, 1), -			     TAINT_UNALIGNED(ri, flags), -			     TAINT_UNALIGNED(ii, flags),  -			     TAINT_UNALIGNED(ro, flags), -			     TAINT_UNALIGNED(io, flags))); -} diff --git a/src/fftw3/api/plan-many-dft-c2r.c b/src/fftw3/api/plan-many-dft-c2r.c deleted file mode 100644 index 81b6338..0000000 --- a/src/fftw3/api/plan-many-dft-c2r.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "rdft.h" - -X(plan) X(plan_many_dft_c2r)(int rank, const int *n, -			     int howmany, -			     C *in, const int *inembed, -			     int istride, int idist, -			     R *out, const int *onembed, -			     int ostride, int odist, unsigned flags) -{ -     R *ri, *ii; -     int *nfi, *nfo; -     int inplace; -     X(plan) p; - -     if (!X(many_kosherp)(rank, n, howmany)) return 0; - -     X(extract_reim)(FFT_SIGN, in, &ri, &ii); -     inplace = out == ri; - -     if (!inplace) -	  flags |= FFTW_DESTROY_INPUT; -     p = X(mkapiplan)( -	  0, flags, -	  X(mkproblem_rdft2_d)( -	       X(mktensor_rowmajor)( -		    rank, n,  -		    X (rdft2_pad)(rank, n, inembed, inplace, 1, &nfi), -		    X (rdft2_pad)(rank, n, onembed, inplace, 0, &nfo), -		    2 * istride, ostride), -	       X(mktensor_1d)(howmany, 2 * idist, odist), -	       TAINT_UNALIGNED(out, flags), -	       TAINT_UNALIGNED(ri, flags), TAINT_UNALIGNED(ii, flags), -	       HC2R)); - -     X(ifree0)(nfi); -     X(ifree0)(nfo); -     return p; -} diff --git a/src/fftw3/api/plan-many-dft-r2c.c b/src/fftw3/api/plan-many-dft-r2c.c deleted file mode 100644 index 093d9ba..0000000 --- a/src/fftw3/api/plan-many-dft-r2c.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "rdft.h" - -X(plan) X(plan_many_dft_r2c)(int rank, const int *n, -			     int howmany, -			     R *in, const int *inembed, -			     int istride, int idist, -			     C *out, const int *onembed, -			     int ostride, int odist, unsigned flags) -{ -     R *ro, *io; -     int *nfi, *nfo; -     int inplace; -     X(plan) p; - -     if (!X(many_kosherp)(rank, n, howmany)) return 0; - -     X(extract_reim)(FFT_SIGN, out, &ro, &io); -     inplace = in == ro; - -     p = X(mkapiplan)( -	  0, flags,  -	  X(mkproblem_rdft2_d)( -	       X(mktensor_rowmajor)( -		    rank, n, -		    X(rdft2_pad)(rank, n, inembed, inplace, 0, &nfi), -		    X(rdft2_pad)(rank, n, onembed, inplace, 1, &nfo), -		    istride, 2 * ostride),  -	       X(mktensor_1d)(howmany, idist, 2 * odist), -	       TAINT_UNALIGNED(in, flags), -	       TAINT_UNALIGNED(ro, flags), TAINT_UNALIGNED(io, flags), -	       R2HC)); - -     X(ifree0)(nfi); -     X(ifree0)(nfo); -     return p; -} diff --git a/src/fftw3/api/plan-many-dft.c b/src/fftw3/api/plan-many-dft.c deleted file mode 100644 index 56f0ed4..0000000 --- a/src/fftw3/api/plan-many-dft.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "dft.h" - -#define N0(nembed)((nembed) ? (nembed) : n) - -X(plan) X(plan_many_dft)(int rank, const int *n, -			 int howmany, -			 C *in, const int *inembed, -			 int istride, int idist, -			 C *out, const int *onembed, -			 int ostride, int odist, int sign, unsigned flags) -{ -     R *ri, *ii, *ro, *io; - -     if (!X(many_kosherp)(rank, n, howmany)) return 0; - -     X(extract_reim)(sign, in, &ri, &ii); -     X(extract_reim)(sign, out, &ro, &io); - -     return  -	  X(mkapiplan)(sign, flags, -		       X(mkproblem_dft_d)( -			    X(mktensor_rowmajor)(rank, n,  -						 N0(inembed), N0(onembed), -						 2 * istride, 2 * ostride), -			    X(mktensor_1d)(howmany, 2 * idist, 2 * odist), -			    TAINT_UNALIGNED(ri, flags), -			    TAINT_UNALIGNED(ii, flags), -			    TAINT_UNALIGNED(ro, flags), -			    TAINT_UNALIGNED(io, flags))); -} diff --git a/src/fftw3/api/plan-many-r2r.c b/src/fftw3/api/plan-many-r2r.c deleted file mode 100644 index 0a6815f..0000000 --- a/src/fftw3/api/plan-many-r2r.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" -#include "rdft.h" - -rdft_kind *X(map_r2r_kind)(int rank, const X(r2r_kind) * kind); - -#define N0(nembed)((nembed) ? (nembed) : n) - -X(plan) X(plan_many_r2r)(int rank, const int *n, -			 int howmany, -			 R *in, const int *inembed, -			 int istride, int idist, -			 R *out, const int *onembed, -			 int ostride, int odist, -			 const X(r2r_kind) * kind, unsigned flags) -{ -     X(plan) p; -     rdft_kind *k; - -     if (!X(many_kosherp)(rank, n, howmany)) return 0; - -     k = X(map_r2r_kind)(rank, kind); -     p = X(mkapiplan)( -	  0, flags, -	  X(mkproblem_rdft_d)(X(mktensor_rowmajor)(rank, n,  -						   N0(inembed), N0(onembed), -						   istride, ostride), -			      X(mktensor_1d)(howmany, idist, odist), -			      TAINT_UNALIGNED(in, flags),  -			      TAINT_UNALIGNED(out, flags), k)); -     X(ifree0)(k); -     return p; -} diff --git a/src/fftw3/api/plan-r2r-1d.c b/src/fftw3/api/plan-r2r-1d.c deleted file mode 100644 index 372d1c0..0000000 --- a/src/fftw3/api/plan-r2r-1d.c +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -X(plan) X(plan_r2r_1d)(int n, R *in, R *out, X(r2r_kind) kind, unsigned flags) -{ -     return X(plan_r2r)(1, &n, in, out, &kind, flags); -} diff --git a/src/fftw3/api/plan-r2r-2d.c b/src/fftw3/api/plan-r2r-2d.c deleted file mode 100644 index 7702560..0000000 --- a/src/fftw3/api/plan-r2r-2d.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -X(plan) X(plan_r2r_2d)(int nx, int ny, R *in, R *out, -		       X(r2r_kind) kindx, X(r2r_kind) kindy, unsigned flags) -{ -     int n[2]; -     X(r2r_kind) kind[2]; -     n[0] = nx; -     n[1] = ny; -     kind[0] = kindx; -     kind[1] = kindy; -     return X(plan_r2r)(2, n, in, out, kind, flags); -} diff --git a/src/fftw3/api/plan-r2r-3d.c b/src/fftw3/api/plan-r2r-3d.c deleted file mode 100644 index 84ae651..0000000 --- a/src/fftw3/api/plan-r2r-3d.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -X(plan) X(plan_r2r_3d)(int nx, int ny, int nz, -		       R *in, R *out, X(r2r_kind) kindx, -		       X(r2r_kind) kindy, X(r2r_kind) kindz, unsigned flags) -{ -     int n[3]; -     X(r2r_kind) kind[3]; -     n[0] = nx; -     n[1] = ny; -     n[2] = nz; -     kind[0] = kindx; -     kind[1] = kindy; -     kind[2] = kindz; -     return X(plan_r2r)(3, n, in, out, kind, flags); -} diff --git a/src/fftw3/api/plan-r2r.c b/src/fftw3/api/plan-r2r.c deleted file mode 100644 index ba8f971..0000000 --- a/src/fftw3/api/plan-r2r.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -X(plan) X(plan_r2r)(int rank, const int *n, R *in, R *out, -		    const X(r2r_kind) * kind, unsigned flags) -{ -     return X(plan_many_r2r)(rank, n, 1, in, 0, 1, 1, out, 0, 1, 1, kind, -			     flags); -} diff --git a/src/fftw3/api/print-plan.c b/src/fftw3/api/print-plan.c deleted file mode 100644 index 094446d..0000000 --- a/src/fftw3/api/print-plan.c +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -void X(fprint_plan)(const X(plan) p, FILE *output_file) -{ -     printer *pr = X(mkprinter_file)(output_file); -     plan *pln = p->pln; -     pln->adt->print(pln, pr); -     X(printer_destroy)(pr); -} - -void X(print_plan)(const X(plan) p) -{ -     X(fprint_plan)(p, stdout); -} diff --git a/src/fftw3/api/rdft2-pad.c b/src/fftw3/api/rdft2-pad.c deleted file mode 100644 index 499a55d..0000000 --- a/src/fftw3/api/rdft2-pad.c +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include <string.h> -#include "api.h" - -const int *X(rdft2_pad)(int rnk, const int *n, const int *nembed, -			int inplace, int cmplx, int **nfree) -{ -     A(FINITE_RNK(rnk)); -     *nfree = 0; -     if (!nembed && rnk > 0) { -          if (inplace || cmplx) { -               int *np = (int *) MALLOC(sizeof(int) * rnk, PROBLEMS); -               memcpy(np, n, sizeof(int) * rnk); -               np[rnk - 1] = (n[rnk - 1] / 2 + 1) * (1 + !cmplx); -               nembed = *nfree = np; -          } else -               nembed = n; -     } -     return nembed; -} diff --git a/src/fftw3/api/the-planner.c b/src/fftw3/api/the-planner.c deleted file mode 100644 index 8f6d546..0000000 --- a/src/fftw3/api/the-planner.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -#include "api.h" - -static planner *plnr = 0; - -/* create the planner for the rest of the API */ -planner *X(the_planner)(void) -{ -     if (!plnr) { -          plnr = X(mkplanner)(); -          X(configure_planner)(plnr); -     } - -     return plnr; -} - -void X(cleanup)(void) -{ -     if (plnr) { -          X(planner_destroy)(plnr); -          plnr = 0; -     } -} diff --git a/src/fftw3/api/version.c b/src/fftw3/api/version.c deleted file mode 100644 index 2abf1ec..0000000 --- a/src/fftw3/api/version.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -/* $Id: version.c,v 1.1 2008/10/17 06:10:48 scuri Exp $ */ - -#include "api.h" - -const char X(cc)[] = FFTW_CC; -const char X(codelet_optim)[] = CODELET_OPTIM; - -const char X(version)[] = PACKAGE "-" VERSION - -#if HAVE_SSE -   "-sse" -#endif - -#if HAVE_SSE2 -   "-sse2" -#endif - -#if HAVE_ALTIVEC -   "-altivec" -#endif - -#if HAVE_3DNOW -   "-3dnow" -#endif - -#if HAVE_K7 -   "-k7" -#endif -; diff --git a/src/fftw3/api/x77.h b/src/fftw3/api/x77.h deleted file mode 100644 index 74513b3..0000000 --- a/src/fftw3/api/x77.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2003 Matteo Frigo - * Copyright (c) 2003 Massachusetts Institute of Technology - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - * - */ - -/* Fortran-like (e.g. as in BLAS) type prefixes for F77 interface */ -#if defined(FFTW_SINGLE) -#  define x77(name) CONCAT(sfftw_, name) -#  define X77(NAME) CONCAT(SFFTW_, NAME) -#elif defined(FFTW_LDOUBLE) -/* FIXME: what is best?  BLAS uses D..._X, apparently.  Ugh. */ -#  define x77(name) CONCAT(lfftw_, name) -#  define X77(NAME) CONCAT(LFFTW_, NAME) -#else -#  define x77(name) CONCAT(dfftw_, name) -#  define X77(NAME) CONCAT(DFFTW_, NAME) -#endif  | 
