nfft-3.2.3/0000755000071000003370000000000012137737755007471 500000000000000nfft-3.2.3/nfft3.pc.in0000644000071000003370000000036512137737443011360 00000000000000prefix=@prefix@ exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: NFFT Description: Nonuniform fast Fourier transform library Version: @VERSION@ Requires: fftw3 Libs: -L${libdir} -lnfft3 Cflags: -I${includedir} nfft-3.2.3/doxygen.dox0000644000071000003370000001111612137737443011574 00000000000000/* * Copyright (c) 2002, 2009 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: doxygen.c 3475 2010-04-11 14:58:03Z keiner $ */ /** \mainpage notitle * \htmlonly *

Contents

* \endhtmlonly * \htmlinclude toc.txt * * \section introduction Introduction * * \cite{nfft3} Fast Fourier transforms (FFTs) belong \cite{nfft3_2} to the '10 algorithms with the * greatest influence on the development and practice of science and * engineering \cite{nfft3} in the 20th century'. * The classic algorithm computes the discrete Fourier transform * \f[ * f_j= \sum_{k=-\frac{N}{2}}^{\frac{N}{2}-1} \hat{f}_{k} * {\rm e}^{2\pi{\rm i}\frac{kj}{N}} * \f] * for \f$j=-\frac{N}{2},\hdots,\frac{N}{2}-1\f$ and given complex * coefficients \f$\hat{f}_{k}\in\mathbb{C}\f$. * Using a divide and conquer approach, the number of floating point * operations is reduced from \f${\cal O}(N^2)\f$ for a straightforward * computation to only \f${\cal O}(N\log N)\f$. * In conjunction with publicly available efficient implementations the fast * Fourier transform has become of great importance in scientific computing. * However, two shortcomings of traditional schemes are the need for * equispaced sampling and the restriction to the system of complex * exponential functions. * The NFFT is a C subroutine library for computing the nonequispaced discrete * Fourier transform (NDFT) and its generalisations in one or more dimensions, * of arbitrary input size, and of complex data. * * More precisely,we collect the possible frequencies * \f$\mathbf{k}\in\mathbb{Z}^d\f$ in the multi-index set * \f[ * I_{\mathbf{N}} := \left\{ \mathbf{k}=\left(k_t\right)_{t=0,\hdots,d-1} * \in \mathbb{Z}^d: - * \frac{N_t}{2} \le k_t < \frac{N_t}{2} ,\;t=0,\hdots,d-1\right\}, * \f] * where \f$\mathbf{N}=\left(N_t\right)_{t=0,\hdots,d-1}\f$ is the * multibandlimit, i.e., \f$N_t\in 2\mathbb{N}\f$. * For a finite number of given Fourier coefficients * \f$\hat f_{\mathbf{k}} \in \mathbb{C}\f$, * \f$\mathbf{k}\in I_{\mathbf{N}}\f$, we consider the * fast evaluation of the trigonometric polynomial * \f[ * f\left(\mathbf{x}\right) * := \sum_{ \mathbf{k}\in I_{ N}} \hat{f}_{\mathbf{ k}} * {\rm e}^{-2\pi{\rm i}\mathbf{k}\mathbf{ x}} * \f] * at given nonequispaced nodes \f$\mathbf{x}_j \in \mathbb{T}^d\f$, * \f$j=0,\ldots, M-1\f$, from the * \f$ d\f$-dimensional torus as well as the * adjoint problem, the fast evaluation of sums of the form * \f[ * \hat h_{\mathbf{k}} := \sum_{j=0}^{M-1} {f}_{j} * {\rm e}^{2\pi{\rm i}\mathbf{k}\mathbf{ x}_j}. * \f] * * \subsection generalisations Generalisations * * The generalisations of the NFFT include * - NNFFT - nonequispaced in time and frequency fast Fourier transform, * - NFCT/NFST - nonequispaced fast (co)sine transform, * - NSFFT - nonequispaced sparse fast Fourier transform, * - FPT - fast polynomial transform, * - NFSFT - nonequispaced fast spherical Fourier transform. * * Furthermore, we consider the inversion of the above transforms by * iterative methods. * * \section faq FAQ - Frequently Asked Questions * *
    *
  1. Can NFFT be built on Windows? * * Since version 3.2, NFFT should build on Windows systems under MinGW. * It might be necessary to add the --disable-shared option to * configure to silence linker warnings. * * Building under Cygwin does not work since NFFT relies on data types * and functions declared in complex.h. While some of them are * available as built-in functions in gcc, not all needed by NFFT are * provided. * * Building NFFT with other compilers, e.g. Microsoft's Visual C++, has * no been tested. If you have successfully be able to build NFFT, you * can send us all relevant information and we will share it with * others on our website. *
*/ nfft-3.2.3/examples/0000755000071000003370000000000012137737752011304 500000000000000nfft-3.2.3/examples/nsfft/0000755000071000003370000000000012137737752012424 500000000000000nfft-3.2.3/examples/nsfft/nsfft_test.c0000644000071000003370000001133512137737443014667 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: nsfft_test.c 3896 2012-10-10 12:19:26Z tovo $ */ #include "config.h" #include #include #include #include #ifdef HAVE_COMPLEX_H #include #endif #include "nfft3util.h" #include "nfft3.h" #include "infft.h" static void accuracy_nsfft(int d, int J, int M, int m) { nsfft_plan p; double _Complex *swap_sndft_trafo, *swap_sndft_adjoint; nsfft_init(&p, d, J, M, m, NSDFT); swap_sndft_trafo=(double _Complex*) nfft_malloc(p.M_total* sizeof(double _Complex)); swap_sndft_adjoint=(double _Complex*) nfft_malloc(p.N_total* sizeof(double _Complex)); nsfft_init_random_nodes_coeffs(&p); /** direct trafo */ nsfft_trafo_direct(&p); NFFT_SWAP_complex(swap_sndft_trafo,p.f); /** approx. trafo */ nsfft_trafo(&p); printf("%5d\t %+.5E\t",J, X(error_l_infty_1_complex)(swap_sndft_trafo, p.f, p.M_total, p.f_hat, p.N_total)); fflush(stdout); nfft_vrand_unit_complex(p.f, p.M_total); /** direct adjoint */ nsfft_adjoint_direct(&p); NFFT_SWAP_complex(swap_sndft_adjoint,p.f_hat); /** approx. adjoint */ nsfft_adjoint(&p); printf("%+.5E\n", X(error_l_infty_1_complex)(swap_sndft_adjoint, p.f_hat, p.N_total, p.f, p.M_total)); fflush(stdout); nfft_free(swap_sndft_adjoint); nfft_free(swap_sndft_trafo); /** finalise the one dimensional plan */ nsfft_finalize(&p); } static void time_nsfft(int d, int J, int M, unsigned test_nsdft, unsigned test_nfft) { int r, N[d], n[d]; double t, t_nsdft, t_nfft, t_nsfft; ticks t0, t1; nsfft_plan p; nfft_plan np; for(r=0;rx; if(np.nfft_flags & PRE_ONE_PSI) nfft_precompute_one_psi(&np); nsfft_cp(&p, &np); t_nfft=0; r=0; while(t_nfft<0.1) { r++; t0 = getticks(); nfft_trafo(&np); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); t_nfft+=t; } t_nfft/=r; nfft_finalize(&np); } else { t_nfft=nan(""); } t_nsfft=0; r=0; while(t_nsfft<0.1) { r++; t0 = getticks(); nsfft_trafo(&p); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); t_nsfft+=t; } t_nsfft/=r; printf("%d\t%.2e\t%.2e\t%.2e\n", J, t_nsdft, t_nfft, t_nsfft); fflush(stdout); /** finalise */ nsfft_finalize(&p); } int main(int argc,char **argv) { int d, J, M; if(argc<=2) { fprintf(stderr,"nsfft_test type d [first last trials]\n"); return -1; } d=atoi(argv[2]); fprintf(stderr,"Testing the nfft on the hyperbolic cross (nsfft).\n"); if(atoi(argv[1])==1) { fprintf(stderr,"Testing the accuracy of the nsfft vs. nsdft\n"); fprintf(stderr,"Columns: d, E_{1,\\infty}(trafo) E_{1,\\infty}(adjoint)\n\n"); for(J=1; J<10; J++) accuracy_nsfft(d, J, 1000, 6); } if(atoi(argv[1])==2) { fprintf(stderr,"Testing the computation time of the nsdft, nfft, and nsfft\n"); fprintf(stderr,"Columns: d, J, M, t_nsdft, t_nfft, t_nsfft\n\n"); for(J=atoi(argv[3]); J<=atoi(argv[4]); J++) { if(d==2) M=(J+4)*X(exp2i)(J+1); else M=6*X(exp2i)(J)*(X(exp2i)((J+1)/2+1)-1)+X(exp2i)(3*(J/2+1)); if(d*(J+2)<=24) time_nsfft(d, J, M, 1, 1); else if(d*(J+2)<=24) time_nsfft(d, J, M, 0, 1); else time_nsfft(d, J, M, 0, 0); } } return 1; } nfft-3.2.3/examples/nsfft/Makefile.am0000644000071000003370000000057312137737443014402 00000000000000# $Id: Makefile.am 3654 2011-10-13 12:02:47Z rahi $ AM_CPPFLAGS = -I$(top_srcdir)/include noinst_PROGRAMS = simple_test nsfft_test simple_test_SOURCES = simple_test.c simple_test_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ nsfft_test_SOURCES = nsfft_test.c nsfft_test_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ EXTRA_DIST = README nfft-3.2.3/examples/nsfft/README0000644000071000003370000000036612137737443013226 00000000000000nsfft - nonequispaced sparse FFT or sparse NFFT Based on the research paper: Fast evaluation of trigonometric polynomials from hyperbolic crosses by Markus Fenn and Stefan Kunis and Daniel Potts Available from: http://www.tu-chemnitz.de/~potts nfft-3.2.3/examples/nsfft/Makefile.in0000644000071000003370000004176112137737504014415 00000000000000# Makefile.in generated by automake 1.12.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am 3654 2011-10-13 12:02:47Z rahi $ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = simple_test$(EXEEXT) nsfft_test$(EXEEXT) subdir = examples/nsfft DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_apple_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_cc_maxopt.m4 \ $(top_srcdir)/m4/ax_check_compiler_flags.m4 \ $(top_srcdir)/m4/ax_check_dir.m4 \ $(top_srcdir)/m4/ax_compiler_vendor.m4 \ $(top_srcdir)/m4/ax_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \ $(top_srcdir)/m4/ax_lib_fftw3.m4 \ $(top_srcdir)/m4/ax_nfft_module.m4 \ $(top_srcdir)/m4/ax_openmp.m4 \ $(top_srcdir)/m4/ax_prog_matlab.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am_nsfft_test_OBJECTS = nsfft_test.$(OBJEXT) nsfft_test_OBJECTS = $(am_nsfft_test_OBJECTS) nsfft_test_DEPENDENCIES = $(top_builddir)/libnfft3.la am_simple_test_OBJECTS = simple_test.$(OBJEXT) simple_test_OBJECTS = $(am_simple_test_OBJECTS) simple_test_DEPENDENCIES = $(top_builddir)/libnfft3.la DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(nsfft_test_SOURCES) $(simple_test_SOURCES) DIST_SOURCES = $(nsfft_test_SOURCES) $(simple_test_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ HAVE_FPT = @HAVE_FPT@ HAVE_MRI = @HAVE_MRI@ HAVE_NFCT = @HAVE_NFCT@ HAVE_NFSFT = @HAVE_NFSFT@ HAVE_NFSOFT = @HAVE_NFSOFT@ HAVE_NFST = @HAVE_NFST@ HAVE_NNFFT = @HAVE_NNFFT@ HAVE_NSFFT = @HAVE_NSFFT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENMP_CFLAGS = @OPENMP_CFLAGS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POW_LIB = @POW_LIB@ PRTDIAG = @PRTDIAG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHARED_VERSION_INFO = @SHARED_VERSION_INFO@ SHELL = @SHELL@ STRIP = @STRIP@ TICKS_PER_SECOND = @TICKS_PER_SECOND@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fftw3_LDFLAGS = @fftw3_LDFLAGS@ fftw3_LIBS = @fftw3_LIBS@ fftw3_threads_LIBS = @fftw3_threads_LIBS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ matlab_CPPFLAGS = @matlab_CPPFLAGS@ matlab_LDFLAGS = @matlab_LDFLAGS@ matlab_LIBS = @matlab_LIBS@ matlab_fftw3_LDFLAGS = @matlab_fftw3_LDFLAGS@ matlab_fftw3_LIBS = @matlab_fftw3_LIBS@ matlab_mexext = @matlab_mexext@ matlab_prog_mexext = @matlab_prog_mexext@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = -I$(top_srcdir)/include simple_test_SOURCES = simple_test.c simple_test_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ nsfft_test_SOURCES = nsfft_test.c nsfft_test_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ EXTRA_DIST = README all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/nsfft/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/nsfft/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list nsfft_test$(EXEEXT): $(nsfft_test_OBJECTS) $(nsfft_test_DEPENDENCIES) $(EXTRA_nsfft_test_DEPENDENCIES) @rm -f nsfft_test$(EXEEXT) $(LINK) $(nsfft_test_OBJECTS) $(nsfft_test_LDADD) $(LIBS) simple_test$(EXEEXT): $(simple_test_OBJECTS) $(simple_test_DEPENDENCIES) $(EXTRA_simple_test_DEPENDENCIES) @rm -f simple_test$(EXEEXT) $(LINK) $(simple_test_OBJECTS) $(simple_test_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nsfft_test.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_test.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS cscopelist ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: nfft-3.2.3/examples/nsfft/simple_test.c0000644000071000003370000000452512137737443015043 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: simple_test.c 3896 2012-10-10 12:19:26Z tovo $ */ #include "config.h" #include #include #include #include #ifdef HAVE_COMPLEX_H #include #endif #include "nfft3util.h" #include "nfft3.h" #include "infft.h" static void simple_test_nsfft(int d, int J, int M) { int K=12; nsfft_plan p; nsfft_init(&p, d, J, M, 6, NSDFT); nsfft_init_random_nodes_coeffs(&p); nfft_vpr_complex(p.f_hat, K, "frequencies, vector f_hat (first few entries)"); /** direct trafo and show the result */ nsfft_trafo_direct(&p); nfft_vpr_complex(p.f, K, "nsdft, vector f (first few entries)"); /** approx. trafo and show the result */ nsfft_trafo(&p); nfft_vpr_complex(p.f, K, "nsfft, vector f (first few entries)"); /** direct adjoint and show the result */ nsfft_adjoint_direct(&p); nfft_vpr_complex(p.f_hat, K, "adjoint nsdft, vector f_hat, (first few entries)"); /** approx. adjoint and show the result */ nsfft_adjoint(&p); nfft_vpr_complex(p.f_hat, K, "adjoint nsfft, vector f_hat, (first few entries)"); /** finalise the one dimensional plan */ nsfft_finalize(&p); } int main(int argc,char **argv) { int d, J, M; system("clear"); printf("1) computing a two dimensional nsdft, nsfft and adjoints\n\n"); d=2; J=5; M=(J+4)*X(exp2i)(J+1); simple_test_nsfft(d,J,M); getc(stdin); system("clear"); printf("2) computing a three dimensional nsdft, nsfft and adjoints\n\n"); d=3; J=5; M=6*X(exp2i)(J)*(X(exp2i)((J+1)/2+1)-1)+X(exp2i)(3*(J/2+1)); simple_test_nsfft(d,J,M); return 1; } nfft-3.2.3/examples/solver/0000755000071000003370000000000012137737752012616 500000000000000nfft-3.2.3/examples/solver/vol87.dat0000644000071000003370000044763612137737443014230 000000000000003 8345 16 13.966 3.319 1300 13.963 3.318 1300 13.938 3.369 1300 13.920 3.424 1300 13.907 3.483 1300 13.892 3.535 1300 13.877 3.588 1300 13.866 3.639 1300 13.858 3.692 1300 13.866 3.746 1300 13.893 3.797 1300 13.907 3.850 1300 13.918 3.902 1300 13.919 3.956 1300 13.910 4.007 1300 13.915 4.059 1300 13.929 4.110 1300 13.923 4.164 1300 13.908 4.214 1300 13.902 4.269 1300 13.952 4.316 1300 13.981 4.367 1300 13.993 4.419 1300 14.007 4.469 1300 14.014 4.525 1300 14.029 4.578 1300 14.080 4.588 1300 14.131 4.546 1300 14.150 4.494 1300 14.170 4.442 1300 14.224 4.404 1300 14.264 4.351 1300 14.269 4.300 1300 14.282 4.249 1300 14.323 4.196 1300 14.359 4.145 1300 14.397 4.095 1300 14.405 4.044 1300 14.419 3.993 1300 14.470 3.944 1300 14.480 3.893 1300 14.495 3.839 1300 14.523 3.789 1300 14.525 3.735 1300 14.526 3.679 1300 14.538 3.625 1300 14.540 3.575 1300 14.596 3.573 1300 14.647 3.580 1300 14.699 3.594 1300 14.751 3.578 1300 14.750 3.526 1300 14.767 3.472 1300 14.810 3.420 1300 14.803 3.369 1300 14.855 3.353 1300 14.907 3.357 1300 14.958 3.350 1300 15.009 3.360 1300 15.059 3.326 1300 13.785 3.306 1325 13.785 3.306 1325 13.798 3.357 1325 13.807 3.410 1325 13.799 3.465 1325 13.792 3.518 1325 13.785 3.568 1325 13.768 3.621 1325 13.748 3.673 1325 13.730 3.726 1325 13.706 3.782 1325 13.684 3.835 1325 13.673 3.886 1325 13.659 3.939 1325 13.647 3.993 1325 13.640 4.047 1325 13.640 4.101 1325 13.648 4.157 1325 13.652 4.210 1325 13.650 4.268 1325 13.643 4.322 1325 13.639 4.375 1325 13.634 4.433 1325 13.625 4.484 1325 13.601 4.538 1325 13.586 4.594 1325 13.577 4.650 1325 13.573 4.702 1325 13.591 4.753 1325 13.629 4.805 1325 13.646 4.857 1325 13.653 4.907 1325 13.643 4.960 1325 13.619 5.011 1325 13.614 5.062 1325 13.624 5.115 1325 13.619 5.167 1325 13.596 5.217 1325 13.591 5.268 1325 13.605 5.318 1325 13.618 5.369 1325 13.637 5.424 1325 13.650 5.477 1325 13.659 5.531 1325 13.677 5.588 1325 13.705 5.641 1325 13.700 5.691 1325 13.665 5.742 1325 13.674 5.796 1325 13.728 5.846 1325 13.780 5.869 1325 13.833 5.897 1325 13.884 5.924 1325 13.939 5.933 1325 13.992 5.926 1325 14.044 5.935 1325 14.095 5.959 1325 14.148 5.924 1325 14.203 5.897 1325 14.255 5.896 1325 14.305 5.863 1325 14.322 5.811 1325 14.336 5.757 1325 14.351 5.706 1325 14.371 5.654 1325 14.408 5.602 1325 14.448 5.551 1325 14.463 5.497 1325 14.462 5.443 1325 14.464 5.392 1325 14.485 5.340 1325 14.504 5.288 1325 14.532 5.235 1325 14.555 5.183 1325 14.572 5.128 1325 14.583 5.075 1325 14.591 5.022 1325 14.608 4.970 1325 14.640 4.919 1325 14.660 4.868 1325 14.672 4.812 1325 14.679 4.761 1325 14.694 4.706 1325 14.745 4.659 1325 14.796 4.647 1325 14.815 4.592 1325 14.806 4.538 1325 14.788 4.485 1325 14.772 4.433 1325 14.760 4.380 1325 14.746 4.326 1325 14.798 4.296 1325 14.822 4.245 1325 14.832 4.192 1325 14.837 4.138 1325 14.838 4.082 1325 14.866 4.031 1325 14.918 4.042 1325 14.968 4.075 1325 15.019 4.087 1325 15.055 4.034 1325 15.019 3.978 1325 15.030 3.927 1325 15.063 3.876 1325 15.106 3.825 1325 15.127 3.773 1325 15.139 3.721 1325 15.161 3.669 1325 15.211 3.695 1325 15.263 3.655 1325 15.314 3.638 1325 15.369 3.630 1325 15.328 3.577 1325 15.322 3.526 1325 15.351 3.472 1325 15.355 3.421 1325 15.405 3.382 1325 15.409 3.330 1325 13.629 3.310 1350 13.627 3.310 1350 13.625 3.365 1350 13.629 3.416 1350 13.624 3.470 1350 13.610 3.525 1350 13.603 3.579 1350 13.598 3.635 1350 13.585 3.691 1350 13.566 3.742 1350 13.537 3.793 1350 13.517 3.847 1350 13.508 3.900 1350 13.505 3.956 1350 13.506 4.009 1350 13.464 4.060 1350 13.455 4.112 1350 13.491 4.163 1350 13.504 4.215 1350 13.504 4.265 1350 13.499 4.321 1350 13.492 4.373 1350 13.480 4.427 1350 13.472 4.477 1350 13.469 4.530 1350 13.462 4.585 1350 13.455 4.641 1350 13.451 4.693 1350 13.445 4.747 1350 13.441 4.799 1350 13.432 4.855 1350 13.426 4.906 1350 13.417 4.956 1350 13.393 5.009 1350 13.368 5.062 1350 13.351 5.116 1350 13.323 5.169 1350 13.309 5.223 1350 13.301 5.279 1350 13.304 5.329 1350 13.312 5.383 1350 13.319 5.433 1350 13.329 5.486 1350 13.334 5.540 1350 13.325 5.593 1350 13.332 5.645 1350 13.331 5.698 1350 13.336 5.749 1350 13.328 5.800 1350 13.323 5.850 1350 13.315 5.903 1350 13.315 5.954 1350 13.317 6.007 1350 13.329 6.059 1350 13.332 6.071 1350 13.382 6.090 1350 13.434 6.108 1350 13.486 6.127 1350 13.536 6.148 1350 13.586 6.174 1350 13.636 6.203 1350 13.688 6.244 1350 13.739 6.285 1350 13.791 6.310 1350 13.845 6.335 1350 13.895 6.376 1350 13.926 6.429 1350 13.960 6.479 1350 13.987 6.530 1350 14.040 6.523 1350 14.090 6.519 1350 14.140 6.526 1350 14.193 6.530 1350 14.191 6.533 1350 14.240 6.478 1350 14.263 6.427 1350 14.289 6.377 1350 14.317 6.324 1350 14.359 6.271 1350 14.411 6.243 1350 14.456 6.190 1350 14.476 6.135 1350 14.506 6.083 1350 14.540 6.031 1350 14.566 5.980 1350 14.599 5.922 1350 14.631 5.868 1350 14.650 5.815 1350 14.666 5.762 1350 14.696 5.708 1350 14.719 5.658 1350 14.738 5.604 1350 14.757 5.553 1350 14.775 5.503 1350 14.794 5.452 1350 14.826 5.402 1350 14.861 5.349 1350 14.888 5.295 1350 14.914 5.242 1350 14.938 5.191 1350 14.956 5.137 1350 14.974 5.081 1350 14.986 5.031 1350 14.991 4.980 1350 15.001 4.927 1350 15.013 4.875 1350 15.025 4.821 1350 15.040 4.766 1350 15.054 4.712 1350 15.072 4.657 1350 15.083 4.605 1350 15.100 4.555 1350 15.119 4.502 1350 15.164 4.451 1350 15.183 4.395 1350 15.188 4.343 1350 15.191 4.288 1350 15.201 4.235 1350 15.237 4.183 1350 15.268 4.130 1350 15.290 4.075 1350 15.298 4.023 1350 15.308 3.971 1350 15.317 3.919 1350 15.330 3.868 1350 15.381 3.854 1350 15.403 3.907 1350 15.384 3.960 1350 15.364 4.016 1350 15.350 4.068 1350 15.346 4.119 1350 15.365 4.171 1350 15.418 4.196 1350 15.430 4.143 1350 15.437 4.090 1350 15.484 4.040 1350 15.516 3.987 1350 15.530 3.935 1350 15.539 3.880 1350 15.552 3.827 1350 15.558 3.776 1350 15.572 3.725 1350 15.560 3.673 1350 15.549 3.619 1350 15.544 3.565 1350 15.542 3.514 1350 15.553 3.463 1350 15.571 3.413 1350 15.566 3.360 1350 15.562 3.307 1350 13.458 3.310 1375 13.457 3.310 1375 13.457 3.363 1375 13.471 3.414 1375 13.471 3.464 1375 13.465 3.516 1375 13.450 3.568 1375 13.432 3.619 1375 13.416 3.674 1375 13.389 3.728 1375 13.370 3.779 1375 13.356 3.830 1375 13.337 3.882 1375 13.323 3.933 1375 13.305 3.987 1375 13.291 4.037 1375 13.274 4.087 1375 13.268 4.138 1375 13.318 4.136 1375 13.355 4.189 1375 13.351 4.242 1375 13.329 4.297 1375 13.315 4.355 1375 13.303 4.407 1375 13.302 4.459 1375 13.311 4.513 1375 13.315 4.565 1375 13.300 4.619 1375 13.284 4.672 1375 13.279 4.726 1375 13.277 4.780 1375 13.274 4.833 1375 13.268 4.888 1375 13.257 4.939 1375 13.253 4.990 1375 13.243 5.043 1375 13.227 5.094 1375 13.203 5.145 1375 13.198 5.195 1375 13.183 5.247 1375 13.146 5.297 1375 13.148 5.352 1375 13.153 5.410 1375 13.147 5.465 1375 13.146 5.516 1375 13.150 5.567 1375 13.157 5.618 1375 13.162 5.668 1375 13.168 5.720 1375 13.164 5.774 1375 13.160 5.826 1375 13.154 5.878 1375 13.149 5.929 1375 13.143 5.981 1375 13.135 6.033 1375 13.127 6.085 1375 13.127 6.137 1375 13.130 6.189 1375 13.133 6.242 1375 13.121 6.293 1375 13.112 6.345 1375 13.114 6.377 1375 13.146 6.395 1375 13.196 6.431 1375 13.249 6.462 1375 13.301 6.490 1375 13.353 6.523 1375 13.403 6.550 1375 13.453 6.572 1375 13.503 6.607 1375 13.556 6.652 1375 13.606 6.697 1375 13.659 6.745 1375 13.704 6.795 1375 13.728 6.848 1375 13.752 6.900 1375 13.781 6.954 1375 13.810 7.007 1375 13.852 7.059 1375 13.898 7.109 1375 13.948 7.137 1375 13.999 7.174 1375 14.000 7.093 1375 14.036 7.042 1375 14.070 6.990 1375 14.099 6.938 1375 14.150 6.893 1375 14.200 6.894 1375 14.250 6.850 1375 14.300 6.799 1375 14.336 6.746 1375 14.377 6.695 1375 14.412 6.645 1375 14.451 6.594 1375 14.465 6.543 1375 14.478 6.491 1375 14.518 6.437 1375 14.551 6.386 1375 14.571 6.330 1375 14.597 6.278 1375 14.645 6.223 1375 14.686 6.172 1375 14.724 6.119 1375 14.755 6.069 1375 14.779 6.011 1375 14.799 5.961 1375 14.819 5.907 1375 14.834 5.855 1375 14.858 5.802 1375 14.882 5.751 1375 14.909 5.701 1375 14.934 5.647 1375 14.956 5.593 1375 14.980 5.538 1375 15.007 5.485 1375 15.034 5.432 1375 15.053 5.377 1375 15.070 5.326 1375 15.094 5.272 1375 15.132 5.221 1375 15.150 5.171 1375 15.161 5.116 1375 15.177 5.059 1375 15.189 5.007 1375 15.198 4.955 1375 15.209 4.902 1375 15.224 4.849 1375 15.244 4.796 1375 15.263 4.745 1375 15.284 4.691 1375 15.320 4.640 1375 15.365 4.590 1375 15.415 4.568 1375 15.468 4.557 1375 15.516 4.506 1375 15.557 4.453 1375 15.575 4.399 1375 15.569 4.347 1375 15.565 4.295 1375 15.562 4.243 1375 15.569 4.192 1375 15.585 4.141 1375 15.630 4.091 1375 15.649 4.037 1375 15.656 3.987 1375 15.689 3.933 1375 15.719 3.882 1375 15.751 3.829 1375 15.780 3.775 1375 15.801 3.722 1375 15.825 3.667 1375 15.845 3.612 1375 15.856 3.561 1375 15.860 3.505 1375 15.858 3.451 1375 15.854 3.399 1375 15.866 3.347 1375 13.278 3.306 1400 13.277 3.305 1400 13.281 3.356 1400 13.283 3.411 1400 13.277 3.463 1400 13.276 3.514 1400 13.276 3.568 1400 13.256 3.625 1400 13.240 3.679 1400 13.223 3.735 1400 13.211 3.787 1400 13.200 3.838 1400 13.187 3.890 1400 13.176 3.946 1400 13.168 3.997 1400 13.170 4.047 1400 13.116 4.069 1400 13.066 4.069 1400 13.088 4.122 1400 13.124 4.177 1400 13.135 4.235 1400 13.136 4.292 1400 13.135 4.346 1400 13.133 4.403 1400 13.131 4.458 1400 13.130 4.518 1400 13.127 4.574 1400 13.121 4.628 1400 13.112 4.680 1400 13.106 4.734 1400 13.102 4.785 1400 13.096 4.840 1400 13.083 4.893 1400 13.068 4.946 1400 13.054 4.996 1400 13.003 5.045 1400 12.988 5.100 1400 13.012 5.151 1400 13.013 5.202 1400 12.996 5.256 1400 12.972 5.306 1400 12.988 5.356 1400 13.006 5.412 1400 13.012 5.464 1400 13.017 5.517 1400 13.009 5.573 1400 12.993 5.626 1400 13.000 5.682 1400 13.008 5.733 1400 12.999 5.783 1400 12.984 5.833 1400 12.972 5.889 1400 12.960 5.942 1400 12.948 5.997 1400 12.940 6.048 1400 12.934 6.104 1400 12.925 6.161 1400 12.918 6.211 1400 12.903 6.262 1400 12.888 6.316 1400 12.868 6.369 1400 12.828 6.423 1400 12.789 6.474 1400 12.770 6.524 1400 13.761 7.639 1400 13.761 7.645 1400 13.814 7.597 1400 13.867 7.547 1400 13.916 7.493 1400 13.955 7.439 1400 13.994 7.385 1400 14.035 7.333 1400 14.082 7.279 1400 14.136 7.238 1400 14.189 7.192 1400 14.234 7.140 1400 14.277 7.086 1400 14.317 7.029 1400 14.364 6.973 1400 14.412 6.921 1400 14.455 6.868 1400 14.495 6.814 1400 14.531 6.764 1400 14.566 6.711 1400 14.596 6.658 1400 14.623 6.606 1400 14.651 6.554 1400 14.676 6.502 1400 14.703 6.450 1400 14.726 6.398 1400 14.750 6.340 1400 14.777 6.285 1400 14.799 6.235 1400 14.834 6.183 1400 14.844 6.130 1400 14.861 6.075 1400 14.900 6.023 1400 14.934 5.971 1400 14.961 5.920 1400 14.961 5.867 1400 14.972 5.816 1400 15.022 5.778 1400 15.048 5.728 1400 15.055 5.675 1400 15.061 5.620 1400 15.086 5.566 1400 15.119 5.513 1400 15.170 5.462 1400 15.214 5.410 1400 15.250 5.357 1400 15.280 5.307 1400 15.292 5.256 1400 15.301 5.202 1400 15.318 5.149 1400 15.343 5.097 1400 15.367 5.045 1400 15.404 4.995 1400 15.457 4.949 1400 15.504 4.896 1400 15.556 4.890 1400 15.607 4.875 1400 15.654 4.822 1400 15.673 4.768 1400 15.689 4.715 1400 15.694 4.662 1400 15.691 4.611 1400 15.698 4.561 1400 15.750 4.545 1400 15.772 4.491 1400 15.788 4.439 1400 15.803 4.386 1400 15.817 4.336 1400 15.834 4.279 1400 15.858 4.225 1400 15.891 4.171 1400 15.927 4.115 1400 15.961 4.061 1400 16.003 4.007 1400 16.049 3.957 1400 16.083 3.904 1400 16.093 3.852 1400 16.096 3.796 1400 16.113 3.743 1400 16.133 3.692 1400 16.143 3.640 1400 16.135 3.581 1400 16.139 3.530 1400 16.158 3.478 1400 16.169 3.425 1400 16.188 3.371 1400 16.208 3.317 1400 12.762 6.559 1400 12.762 6.560 1400 12.781 6.614 1400 12.805 6.665 1400 12.844 6.717 1400 12.896 6.766 1400 12.949 6.803 1400 12.999 6.842 1400 13.049 6.880 1400 13.102 6.917 1400 13.157 6.959 1400 13.209 7.004 1400 13.264 7.049 1400 13.319 7.094 1400 13.369 7.144 1400 13.420 7.192 1400 13.466 7.242 1400 13.515 7.293 1400 13.549 7.345 1400 13.567 7.397 1400 13.584 7.449 1400 13.605 7.499 1400 13.632 7.550 1400 13.661 7.600 1400 13.711 7.627 1400 13.143 3.300 1425 13.141 3.302 1425 13.148 3.356 1425 13.131 3.411 1425 13.121 3.464 1425 13.117 3.517 1425 13.113 3.570 1425 13.106 3.624 1425 13.101 3.675 1425 13.073 3.728 1425 13.054 3.782 1425 13.050 3.834 1425 13.066 3.887 1425 13.044 3.941 1425 13.006 3.994 1425 12.956 4.037 1425 12.905 4.068 1425 12.854 4.105 1425 12.908 4.142 1425 12.959 4.179 1425 13.002 4.235 1425 13.007 4.289 1425 13.005 4.339 1425 12.998 4.393 1425 12.992 4.443 1425 12.983 4.499 1425 12.973 4.554 1425 12.965 4.609 1425 12.961 4.660 1425 12.953 4.712 1425 12.945 4.765 1425 12.940 4.822 1425 12.926 4.872 1425 12.892 4.924 1425 12.860 4.977 1425 12.818 5.028 1425 12.782 5.080 1425 12.829 5.131 1425 12.849 5.182 1425 12.836 5.233 1425 12.827 5.284 1425 12.818 5.337 1425 12.835 5.389 1425 12.855 5.445 1425 12.864 5.496 1425 12.872 5.548 1425 12.868 5.598 1425 12.863 5.653 1425 12.860 5.704 1425 12.848 5.758 1425 12.841 5.808 1425 12.835 5.862 1425 12.831 5.913 1425 12.819 5.969 1425 12.799 6.024 1425 12.785 6.077 1425 12.777 6.130 1425 12.762 6.184 1425 12.743 6.237 1425 12.713 6.292 1425 12.690 6.342 1425 12.665 6.395 1425 12.634 6.445 1425 12.607 6.499 1425 12.579 6.551 1425 12.557 6.608 1425 12.543 6.659 1425 12.525 6.717 1425 12.506 6.769 1425 12.487 6.819 1425 12.485 6.881 1425 12.482 6.882 1425 12.467 6.935 1425 12.488 6.987 1425 12.517 7.040 1425 12.566 7.090 1425 12.617 7.145 1425 12.665 7.195 1425 12.715 7.236 1425 12.766 7.276 1425 12.818 7.318 1425 12.872 7.360 1425 12.925 7.406 1425 12.962 7.458 1425 12.991 7.509 1425 13.021 7.565 1425 13.050 7.617 1425 13.102 7.666 1425 13.155 7.702 1425 13.208 7.729 1425 13.263 7.751 1425 13.317 7.782 1425 13.368 7.812 1425 13.411 7.867 1425 13.444 7.920 1425 13.471 7.972 1425 13.492 8.023 1425 13.543 8.043 1425 13.556 8.093 1425 13.565 8.105 1425 13.608 8.090 1425 13.661 8.054 1425 13.712 8.007 1425 13.755 7.956 1425 13.803 7.903 1425 13.854 7.854 1425 13.907 7.802 1425 13.947 7.752 1425 13.986 7.701 1425 14.029 7.650 1425 14.082 7.606 1425 14.133 7.560 1425 14.134 7.509 1425 14.184 7.488 1425 14.234 7.456 1425 14.251 7.403 1425 14.277 7.353 1425 14.275 7.300 1425 14.311 7.245 1425 14.351 7.194 1425 14.389 7.143 1425 14.429 7.090 1425 14.469 7.035 1425 14.517 6.982 1425 14.570 6.947 1425 14.620 6.902 1425 14.653 6.847 1425 14.676 6.794 1425 14.694 6.738 1425 14.717 6.685 1425 14.738 6.632 1425 14.758 6.580 1425 14.784 6.528 1425 14.817 6.478 1425 14.853 6.426 1425 14.886 6.375 1425 14.926 6.323 1425 14.976 6.292 1425 15.009 6.238 1425 15.022 6.185 1425 15.055 6.133 1425 15.088 6.078 1425 15.117 6.027 1425 15.153 5.976 1425 15.186 5.924 1425 15.221 5.874 1425 15.235 5.822 1425 15.216 5.771 1425 15.248 5.718 1425 15.290 5.667 1425 15.344 5.612 1425 15.397 5.572 1425 15.451 5.540 1425 15.504 5.504 1425 15.556 5.464 1425 15.608 5.421 1425 15.649 5.370 1425 15.684 5.319 1425 15.735 5.290 1425 15.775 5.235 1425 15.793 5.178 1425 15.813 5.121 1425 15.838 5.070 1425 15.860 5.017 1425 15.884 4.961 1425 15.911 4.908 1425 15.933 4.857 1425 15.954 4.807 1425 15.976 4.749 1425 16.000 4.695 1425 16.026 4.644 1425 16.048 4.593 1425 16.070 4.537 1425 16.092 4.480 1425 16.110 4.430 1425 16.128 4.370 1425 16.143 4.317 1425 16.160 4.263 1425 16.176 4.209 1425 16.202 4.157 1425 16.234 4.104 1425 16.264 4.054 1425 16.289 4.004 1425 16.318 3.947 1425 16.346 3.896 1425 16.360 3.845 1425 16.363 3.787 1425 16.367 3.736 1425 16.362 3.681 1425 16.361 3.628 1425 16.364 3.575 1425 16.391 3.520 1425 16.429 3.466 1425 16.464 3.413 1425 16.479 3.358 1425 12.995 3.331 1450 12.994 3.331 1450 12.976 3.385 1450 12.973 3.437 1450 12.968 3.490 1450 12.962 3.544 1450 12.960 3.595 1450 12.954 3.649 1450 12.925 3.702 1450 12.907 3.756 1450 12.913 3.808 1450 12.913 3.860 1450 12.884 3.913 1450 12.831 3.953 1450 12.779 3.984 1450 12.728 4.022 1450 12.677 4.049 1450 12.633 4.101 1450 12.683 4.116 1450 12.733 4.156 1450 12.786 4.196 1450 12.839 4.237 1450 12.878 4.288 1450 12.880 4.343 1450 12.866 4.395 1450 12.846 4.451 1450 12.839 4.503 1450 12.828 4.558 1450 12.815 4.617 1450 12.810 4.669 1450 12.806 4.724 1450 12.792 4.775 1450 12.773 4.829 1450 12.760 4.880 1450 12.733 4.933 1450 12.681 4.984 1450 12.630 5.033 1450 12.590 5.083 1450 12.604 5.134 1450 12.655 5.150 1450 12.707 5.169 1450 12.727 5.221 1450 12.693 5.275 1450 12.666 5.325 1450 12.660 5.375 1450 12.671 5.429 1450 12.684 5.481 1450 12.699 5.532 1450 12.714 5.588 1450 12.720 5.642 1450 12.719 5.693 1450 12.720 5.747 1450 12.715 5.798 1450 12.705 5.848 1450 12.692 5.899 1450 12.677 5.953 1450 12.659 6.003 1450 12.633 6.056 1450 12.604 6.110 1450 12.584 6.161 1450 12.557 6.211 1450 12.537 6.263 1450 12.520 6.315 1450 12.505 6.367 1450 12.483 6.418 1450 12.455 6.473 1450 12.423 6.525 1450 12.393 6.581 1450 12.369 6.633 1450 12.343 6.683 1450 12.318 6.736 1450 12.299 6.789 1450 12.283 6.840 1450 12.263 6.893 1450 12.245 6.946 1450 12.238 6.996 1450 12.210 7.050 1450 12.164 7.100 1450 12.113 7.142 1450 12.074 7.195 1450 12.060 7.256 1450 12.054 7.251 1450 12.022 7.303 1450 12.033 7.355 1450 12.068 7.406 1450 12.115 7.459 1450 12.168 7.513 1450 12.211 7.566 1450 12.256 7.619 1450 12.299 7.675 1450 12.344 7.731 1450 12.384 7.783 1450 12.426 7.834 1450 12.472 7.892 1450 12.525 7.946 1450 12.577 7.986 1450 12.627 8.016 1450 12.683 8.046 1450 12.739 8.077 1450 12.792 8.101 1450 12.845 8.127 1450 12.900 8.151 1450 12.950 8.169 1450 13.000 8.191 1450 13.054 8.226 1450 13.109 8.263 1450 13.161 8.319 1450 13.187 8.372 1450 13.211 8.424 1450 13.220 8.478 1450 13.229 8.529 1450 13.248 8.581 1450 13.278 8.632 1450 13.317 8.674 1450 13.331 8.659 1450 13.362 8.604 1450 13.405 8.554 1450 13.457 8.514 1450 13.510 8.474 1450 13.560 8.429 1450 13.606 8.379 1450 13.648 8.325 1450 13.678 8.274 1450 13.715 8.223 1450 13.766 8.179 1450 13.817 8.144 1450 13.871 8.096 1450 13.914 8.043 1450 13.946 7.992 1450 13.974 7.939 1450 14.009 7.887 1450 14.050 7.836 1450 14.102 7.811 1450 14.154 7.787 1450 14.198 7.733 1450 14.241 7.680 1450 14.291 7.633 1450 14.332 7.581 1450 14.372 7.529 1450 14.403 7.478 1450 14.416 7.425 1450 14.424 7.372 1450 14.448 7.321 1450 14.499 7.271 1450 14.550 7.225 1450 14.603 7.169 1450 14.639 7.115 1450 14.670 7.063 1450 14.704 7.006 1450 14.739 6.953 1450 14.771 6.900 1450 14.804 6.846 1450 14.842 6.793 1450 14.885 6.741 1450 14.932 6.687 1450 14.986 6.652 1450 15.035 6.601 1450 15.046 6.550 1450 15.058 6.497 1450 15.088 6.444 1450 15.116 6.392 1450 15.144 6.337 1450 15.174 6.279 1450 15.214 6.224 1450 15.265 6.172 1450 15.318 6.127 1450 15.360 6.075 1450 15.392 6.024 1450 15.427 5.971 1450 15.482 5.971 1450 15.522 5.920 1450 15.548 5.868 1450 15.573 5.814 1450 15.610 5.760 1450 15.659 5.707 1450 15.712 5.668 1450 15.764 5.621 1450 15.807 5.570 1450 15.842 5.518 1450 15.872 5.466 1450 15.912 5.411 1450 15.955 5.356 1450 15.989 5.302 1450 16.012 5.249 1450 16.034 5.198 1450 16.060 5.148 1450 16.089 5.097 1450 16.116 5.044 1450 16.148 4.990 1450 16.171 4.940 1450 16.193 4.887 1450 16.214 4.836 1450 16.240 4.779 1450 16.260 4.724 1450 16.272 4.673 1450 16.288 4.620 1450 16.305 4.560 1450 16.321 4.509 1450 16.338 4.456 1450 16.357 4.404 1450 16.371 4.351 1450 16.390 4.296 1450 16.412 4.245 1450 16.443 4.191 1450 16.466 4.141 1450 16.492 4.090 1450 16.526 4.038 1450 16.566 3.983 1450 16.596 3.930 1450 16.596 3.876 1450 16.599 3.825 1450 16.592 3.774 1450 16.592 3.721 1450 16.617 3.669 1450 16.650 3.613 1450 16.690 3.559 1450 16.713 3.507 1450 16.727 3.450 1450 16.737 3.396 1450 16.751 3.344 1450 12.841 3.322 1475 12.839 3.322 1475 12.812 3.375 1475 12.812 3.428 1475 12.825 3.481 1475 12.831 3.538 1475 12.826 3.588 1475 12.820 3.641 1475 12.785 3.693 1475 12.778 3.746 1475 12.765 3.799 1475 12.733 3.853 1475 12.688 3.907 1475 12.637 3.953 1475 12.585 3.993 1475 12.534 4.010 1475 12.484 4.038 1475 12.475 4.090 1475 12.467 4.140 1475 12.517 4.165 1475 12.567 4.190 1475 12.618 4.226 1475 12.668 4.265 1475 12.720 4.306 1475 12.739 4.357 1475 12.741 4.410 1475 12.734 4.465 1475 12.721 4.523 1475 12.711 4.577 1475 12.700 4.631 1475 12.688 4.685 1475 12.676 4.739 1475 12.660 4.795 1475 12.638 4.846 1475 12.600 4.900 1475 12.550 4.941 1475 12.499 4.970 1475 12.448 5.015 1475 12.413 5.066 1475 12.408 5.123 1475 12.442 5.174 1475 12.462 5.226 1475 12.444 5.277 1475 12.457 5.329 1475 12.497 5.383 1475 12.522 5.437 1475 12.491 5.488 1475 12.485 5.540 1475 12.522 5.592 1475 12.558 5.644 1475 12.578 5.694 1475 12.578 5.745 1475 12.579 5.798 1475 12.594 5.850 1475 12.613 5.905 1475 12.607 5.957 1475 12.556 6.008 1475 12.525 6.062 1475 12.502 6.114 1475 12.477 6.164 1475 12.451 6.214 1475 12.428 6.270 1475 12.403 6.321 1475 12.383 6.373 1475 12.360 6.429 1475 12.336 6.480 1475 12.307 6.532 1475 12.275 6.586 1475 12.241 6.639 1475 12.209 6.693 1475 12.176 6.744 1475 12.141 6.799 1475 12.107 6.854 1475 12.075 6.907 1475 12.048 6.963 1475 12.019 7.013 1475 11.988 7.069 1475 11.954 7.120 1475 11.916 7.172 1475 11.869 7.224 1475 11.827 7.275 1475 11.781 7.328 1475 11.740 7.378 1475 11.700 7.432 1475 11.660 7.485 1475 11.613 7.536 1475 11.591 7.588 1475 11.577 7.604 1475 11.580 7.643 1475 11.587 7.695 1475 11.601 7.746 1475 11.612 7.798 1475 11.617 7.852 1475 11.640 7.908 1475 11.677 7.961 1475 11.728 8.009 1475 11.755 8.059 1475 11.773 8.111 1475 11.804 8.162 1475 11.856 8.194 1475 11.912 8.230 1475 11.958 8.282 1475 12.010 8.335 1475 12.061 8.378 1475 12.111 8.420 1475 12.163 8.471 1475 12.218 8.519 1475 12.268 8.554 1475 12.323 8.574 1475 12.374 8.595 1475 12.426 8.617 1475 12.482 8.639 1475 12.539 8.665 1475 12.589 8.688 1475 12.640 8.713 1475 12.696 8.731 1475 12.747 8.750 1475 12.799 8.775 1475 12.855 8.813 1475 12.886 8.863 1475 12.915 8.917 1475 12.939 8.973 1475 12.952 9.027 1475 12.960 9.080 1475 12.973 9.135 1475 12.975 9.185 1475 12.984 9.238 1475 12.994 9.289 1475 13.001 9.305 1475 13.050 9.288 1475 13.102 9.258 1475 13.157 9.236 1475 13.208 9.183 1475 13.237 9.133 1475 13.257 9.080 1475 13.295 9.026 1475 13.337 8.976 1475 13.385 8.923 1475 13.426 8.868 1475 13.457 8.815 1475 13.509 8.773 1475 13.537 8.721 1475 13.576 8.668 1475 13.620 8.615 1475 13.663 8.565 1475 13.717 8.521 1475 13.767 8.481 1475 13.819 8.430 1475 13.872 8.379 1475 13.923 8.325 1475 13.958 8.271 1475 13.988 8.219 1475 14.026 8.165 1475 14.074 8.109 1475 14.123 8.055 1475 14.173 8.003 1475 14.225 7.954 1475 14.277 7.901 1475 14.321 7.846 1475 14.369 7.794 1475 14.419 7.742 1475 14.471 7.691 1475 14.510 7.638 1475 14.508 7.587 1475 14.523 7.531 1475 14.549 7.474 1475 14.584 7.418 1475 14.622 7.368 1475 14.676 7.323 1475 14.732 7.275 1475 14.781 7.221 1475 14.832 7.169 1475 14.881 7.114 1475 14.921 7.061 1475 14.958 7.006 1475 15.013 6.957 1475 15.067 6.934 1475 15.117 6.895 1475 15.171 6.871 1475 15.222 6.816 1475 15.246 6.764 1475 15.271 6.713 1475 15.311 6.659 1475 15.359 6.608 1475 15.402 6.555 1475 15.436 6.500 1475 15.471 6.444 1475 15.498 6.393 1475 15.536 6.336 1475 15.566 6.285 1475 15.597 6.233 1475 15.631 6.182 1475 15.666 6.128 1475 15.694 6.077 1475 15.726 6.024 1475 15.761 5.967 1475 15.795 5.913 1475 15.832 5.856 1475 15.870 5.800 1475 15.909 5.748 1475 15.953 5.694 1475 15.998 5.642 1475 16.042 5.587 1475 16.084 5.531 1475 16.121 5.480 1475 16.166 5.423 1475 16.194 5.372 1475 16.224 5.316 1475 16.253 5.262 1475 16.281 5.208 1475 16.311 5.158 1475 16.346 5.101 1475 16.379 5.044 1475 16.415 4.993 1475 16.446 4.941 1475 16.475 4.888 1475 16.499 4.835 1475 16.529 4.776 1475 16.551 4.725 1475 16.572 4.671 1475 16.590 4.620 1475 16.606 4.565 1475 16.623 4.510 1475 16.643 4.459 1475 16.659 4.403 1475 16.665 4.345 1475 16.674 4.291 1475 16.689 4.238 1475 16.714 4.185 1475 16.745 4.133 1475 16.782 4.077 1475 16.813 4.027 1475 16.844 3.971 1475 16.849 3.919 1475 16.844 3.868 1475 16.839 3.816 1475 16.838 3.760 1475 16.848 3.707 1475 16.870 3.654 1475 16.904 3.595 1475 16.928 3.544 1475 16.961 3.487 1475 16.984 3.434 1475 16.996 3.380 1475 17.020 3.329 1475 12.734 3.321 1500 12.733 3.321 1500 12.710 3.372 1500 12.703 3.425 1500 12.701 3.478 1500 12.705 3.533 1500 12.697 3.586 1500 12.667 3.638 1500 12.652 3.694 1500 12.655 3.747 1500 12.643 3.802 1500 12.606 3.853 1500 12.553 3.867 1500 12.503 3.878 1500 12.452 3.922 1500 12.428 3.975 1500 12.374 3.989 1500 12.322 4.035 1500 12.350 4.088 1500 12.368 4.138 1500 12.358 4.189 1500 12.382 4.244 1500 12.437 4.257 1500 12.491 4.281 1500 12.545 4.319 1500 12.596 4.343 1500 12.613 4.396 1500 12.613 4.450 1500 12.612 4.500 1500 12.603 4.558 1500 12.594 4.612 1500 12.589 4.664 1500 12.576 4.716 1500 12.547 4.767 1500 12.495 4.802 1500 12.442 4.846 1500 12.391 4.880 1500 12.337 4.915 1500 12.285 4.967 1500 12.249 5.019 1500 12.223 5.071 1500 12.242 5.123 1500 12.282 5.175 1500 12.291 5.225 1500 12.288 5.278 1500 12.289 5.329 1500 12.341 5.377 1500 12.357 5.429 1500 12.351 5.479 1500 12.336 5.532 1500 12.352 5.584 1500 12.388 5.639 1500 12.411 5.690 1500 12.426 5.741 1500 12.436 5.792 1500 12.449 5.847 1500 12.452 5.902 1500 12.437 5.954 1500 12.419 6.008 1500 12.391 6.060 1500 12.344 6.112 1500 12.322 6.164 1500 12.319 6.217 1500 12.322 6.270 1500 12.302 6.326 1500 12.270 6.378 1500 12.230 6.431 1500 12.184 6.486 1500 12.155 6.539 1500 12.127 6.590 1500 12.091 6.644 1500 12.054 6.699 1500 12.020 6.751 1500 11.998 6.801 1500 11.963 6.852 1500 11.912 6.908 1500 11.871 6.959 1500 11.831 7.010 1500 11.785 7.063 1500 11.739 7.114 1500 11.690 7.164 1500 11.638 7.208 1500 11.587 7.261 1500 11.550 7.316 1500 11.515 7.367 1500 11.474 7.419 1500 11.426 7.472 1500 11.374 7.517 1500 11.356 7.571 1500 11.344 7.626 1500 11.314 7.679 1500 11.267 7.733 1500 11.236 7.783 1500 11.228 7.835 1500 11.216 7.887 1500 11.203 7.940 1500 11.202 7.981 1500 11.200 7.991 1500 11.198 8.043 1500 11.195 8.095 1500 11.163 8.147 1500 11.151 8.198 1500 11.143 8.249 1500 11.142 8.299 1500 11.154 8.351 1500 11.181 8.404 1500 11.212 8.457 1500 11.256 8.507 1500 11.297 8.558 1500 11.324 8.608 1500 11.345 8.659 1500 11.389 8.710 1500 11.445 8.742 1500 11.496 8.776 1500 11.548 8.818 1500 11.604 8.866 1500 11.652 8.920 1500 11.707 8.975 1500 11.757 9.027 1500 11.813 9.081 1500 11.866 9.127 1500 11.919 9.167 1500 11.970 9.207 1500 12.021 9.247 1500 12.074 9.296 1500 12.126 9.337 1500 12.176 9.363 1500 12.228 9.384 1500 12.284 9.393 1500 12.341 9.410 1500 12.391 9.423 1500 12.443 9.431 1500 12.497 9.451 1500 12.541 9.504 1500 12.569 9.554 1500 12.584 9.605 1500 12.600 9.655 1500 12.612 9.706 1500 12.620 9.758 1500 12.633 9.808 1500 12.684 9.833 1500 12.737 9.818 1500 12.762 9.805 1500 12.759 9.767 1500 12.802 9.715 1500 12.848 9.665 1500 12.900 9.616 1500 12.955 9.572 1500 13.009 9.529 1500 13.066 9.487 1500 13.120 9.450 1500 13.176 9.409 1500 13.230 9.364 1500 13.284 9.322 1500 13.337 9.292 1500 13.390 9.245 1500 13.441 9.195 1500 13.473 9.144 1500 13.509 9.091 1500 13.559 9.043 1500 13.593 8.991 1500 13.626 8.939 1500 13.638 8.886 1500 13.667 8.835 1500 13.717 8.801 1500 13.767 8.753 1500 13.817 8.706 1500 13.851 8.654 1500 13.860 8.604 1500 13.891 8.554 1500 13.943 8.503 1500 13.998 8.466 1500 14.048 8.425 1500 14.101 8.379 1500 14.153 8.324 1500 14.186 8.271 1500 14.207 8.219 1500 14.243 8.165 1500 14.278 8.115 1500 14.332 8.066 1500 14.385 8.037 1500 14.438 8.010 1500 14.489 7.975 1500 14.539 7.924 1500 14.582 7.871 1500 14.627 7.821 1500 14.671 7.769 1500 14.708 7.718 1500 14.703 7.667 1500 14.740 7.612 1500 14.791 7.560 1500 14.842 7.527 1500 14.893 7.559 1500 14.943 7.527 1500 14.986 7.474 1500 15.032 7.420 1500 15.083 7.381 1500 15.135 7.332 1500 15.176 7.281 1500 15.230 7.230 1500 15.268 7.179 1500 15.310 7.123 1500 15.356 7.068 1500 15.388 7.016 1500 15.416 6.964 1500 15.444 6.910 1500 15.470 6.856 1500 15.490 6.803 1500 15.512 6.751 1500 15.542 6.701 1500 15.578 6.645 1500 15.604 6.595 1500 15.638 6.538 1500 15.671 6.483 1500 15.701 6.429 1500 15.734 6.379 1500 15.768 6.323 1500 15.798 6.271 1500 15.820 6.219 1500 15.822 6.169 1500 15.867 6.118 1500 15.907 6.062 1500 15.948 6.011 1500 15.995 5.961 1500 16.041 5.909 1500 16.076 5.856 1500 16.119 5.802 1500 16.154 5.752 1500 16.187 5.701 1500 16.225 5.647 1500 16.270 5.597 1500 16.314 5.543 1500 16.346 5.492 1500 16.375 5.439 1500 16.402 5.386 1500 16.427 5.335 1500 16.458 5.282 1500 16.492 5.229 1500 16.532 5.175 1500 16.578 5.124 1500 16.629 5.078 1500 16.660 5.022 1500 16.660 4.968 1500 16.678 4.915 1500 16.718 4.863 1500 16.760 4.808 1500 16.777 4.758 1500 16.794 4.701 1500 16.811 4.644 1500 16.828 4.591 1500 16.847 4.535 1500 16.861 4.484 1500 16.874 4.433 1500 16.882 4.380 1500 16.895 4.328 1500 16.909 4.272 1500 16.922 4.219 1500 16.940 4.169 1500 16.966 4.117 1500 16.993 4.067 1500 17.027 4.013 1500 17.051 3.963 1500 17.051 3.912 1500 17.059 3.860 1500 17.070 3.807 1500 17.081 3.752 1500 17.095 3.697 1500 17.113 3.640 1500 17.140 3.588 1500 17.162 3.535 1500 17.177 3.485 1500 17.203 3.433 1500 12.598 3.328 1525 12.597 3.328 1525 12.563 3.380 1525 12.552 3.432 1525 12.544 3.486 1525 12.538 3.537 1525 12.531 3.593 1525 12.527 3.647 1525 12.516 3.699 1525 12.483 3.749 1525 12.432 3.781 1525 12.379 3.808 1525 12.348 3.859 1525 12.332 3.909 1525 12.281 3.955 1525 12.229 3.995 1525 12.177 4.029 1525 12.172 4.081 1525 12.222 4.123 1525 12.248 4.175 1525 12.242 4.226 1525 12.269 4.276 1525 12.267 4.328 1525 12.285 4.384 1525 12.338 4.398 1525 12.388 4.371 1525 12.438 4.416 1525 12.444 4.470 1525 12.443 4.526 1525 12.445 4.581 1525 12.441 4.632 1525 12.420 4.683 1525 12.390 4.734 1525 12.336 4.783 1525 12.283 4.793 1525 12.230 4.827 1525 12.186 4.879 1525 12.135 4.919 1525 12.084 4.956 1525 12.050 5.009 1525 12.022 5.064 1525 12.048 5.115 1525 12.082 5.168 1525 12.134 5.222 1525 12.171 5.272 1525 12.167 5.323 1525 12.146 5.373 1525 12.141 5.426 1525 12.168 5.478 1525 12.141 5.528 1525 12.110 5.579 1525 12.133 5.630 1525 12.162 5.681 1525 12.155 5.732 1525 12.141 5.789 1525 12.134 5.839 1525 12.131 5.895 1525 12.126 5.945 1525 12.116 6.002 1525 12.104 6.054 1525 12.091 6.105 1525 12.082 6.157 1525 12.072 6.209 1525 12.070 6.259 1525 12.076 6.312 1525 12.089 6.370 1525 12.093 6.425 1525 12.083 6.478 1525 12.062 6.531 1525 12.032 6.585 1525 11.982 6.633 1525 11.931 6.681 1525 11.903 6.733 1525 11.871 6.783 1525 11.821 6.833 1525 11.771 6.865 1525 11.724 6.920 1525 11.685 6.971 1525 11.640 7.023 1525 11.601 7.073 1525 11.562 7.127 1525 11.533 7.178 1525 11.502 7.230 1525 11.459 7.282 1525 11.405 7.310 1525 11.352 7.346 1525 11.309 7.398 1525 11.264 7.449 1525 11.212 7.495 1525 11.161 7.521 1525 11.111 7.561 1525 11.077 7.613 1525 11.051 7.667 1525 11.048 7.718 1525 11.047 7.772 1525 11.041 7.831 1525 11.033 7.885 1525 11.017 7.938 1525 10.999 7.988 1525 10.986 8.041 1525 10.956 8.096 1525 10.928 8.152 1525 10.909 8.202 1525 10.889 8.257 1525 10.867 8.309 1525 10.856 8.363 1525 10.846 8.415 1525 10.826 8.469 1525 10.804 8.520 1525 10.787 8.570 1525 10.777 8.623 1525 10.767 8.669 1525 10.764 8.675 1525 10.748 8.729 1525 10.750 8.780 1525 10.755 8.832 1525 10.768 8.882 1525 10.778 8.938 1525 10.793 8.993 1525 10.804 9.044 1525 10.818 9.094 1525 10.826 9.149 1525 10.838 9.204 1525 10.852 9.256 1525 10.872 9.309 1525 10.922 9.317 1525 10.953 9.369 1525 10.959 9.422 1525 10.974 9.473 1525 11.029 9.514 1525 11.079 9.540 1525 11.130 9.586 1525 11.181 9.638 1525 11.232 9.685 1525 11.283 9.738 1525 11.336 9.780 1525 11.390 9.827 1525 11.443 9.873 1525 11.499 9.926 1525 11.551 9.963 1525 11.601 9.989 1525 11.654 10.007 1525 11.706 10.014 1525 11.757 10.022 1525 11.813 10.034 1525 11.863 10.039 1525 11.919 10.042 1525 11.973 10.053 1525 12.027 10.068 1525 12.081 10.079 1525 12.133 10.094 1525 12.183 10.111 1525 12.237 10.130 1525 12.289 10.168 1525 12.341 10.212 1525 12.379 10.267 1525 12.416 10.319 1525 12.456 10.369 1525 12.488 10.319 1525 12.510 10.303 1525 12.544 10.272 1525 12.598 10.240 1525 12.654 10.205 1525 12.704 10.163 1525 12.746 10.107 1525 12.779 10.055 1525 12.811 10.001 1525 12.861 9.996 1525 12.898 9.945 1525 12.929 9.895 1525 12.980 9.853 1525 13.030 9.824 1525 13.084 9.785 1525 13.133 9.735 1525 13.184 9.686 1525 13.234 9.643 1525 13.287 9.594 1525 13.343 9.556 1525 13.395 9.516 1525 13.448 9.471 1525 13.499 9.419 1525 13.540 9.369 1525 13.571 9.317 1525 13.608 9.262 1525 13.644 9.211 1525 13.694 9.176 1525 13.731 9.123 1525 13.751 9.070 1525 13.784 9.019 1525 13.832 8.968 1525 13.882 8.929 1525 13.935 8.880 1525 13.989 8.855 1525 14.032 8.801 1525 14.074 8.751 1525 14.128 8.706 1525 14.180 8.659 1525 14.231 8.606 1525 14.267 8.554 1525 14.315 8.500 1525 14.363 8.447 1525 14.404 8.396 1525 14.429 8.344 1525 14.455 8.291 1525 14.489 8.237 1525 14.533 8.185 1525 14.586 8.133 1525 14.638 8.090 1525 14.690 8.041 1525 14.719 7.991 1525 14.770 7.963 1525 14.801 7.913 1525 14.814 7.860 1525 14.869 7.806 1525 14.922 7.768 1525 14.973 7.747 1525 15.027 7.728 1525 15.080 7.717 1525 15.134 7.681 1525 15.168 7.631 1525 15.206 7.580 1525 15.260 7.533 1525 15.310 7.479 1525 15.362 7.427 1525 15.412 7.391 1525 15.452 7.336 1525 15.485 7.286 1525 15.515 7.232 1525 15.545 7.179 1525 15.575 7.129 1525 15.605 7.073 1525 15.625 7.022 1525 15.645 6.969 1525 15.673 6.913 1525 15.701 6.852 1525 15.730 6.793 1525 15.755 6.734 1525 15.777 6.678 1525 15.795 6.618 1525 15.814 6.558 1525 15.838 6.500 1525 15.867 6.447 1525 15.911 6.386 1525 15.942 6.331 1525 15.970 6.276 1525 16.001 6.221 1525 16.036 6.170 1525 16.081 6.118 1525 16.132 6.068 1525 16.180 6.015 1525 16.218 5.961 1525 16.257 5.908 1525 16.298 5.857 1525 16.339 5.807 1525 16.384 5.747 1525 16.428 5.691 1525 16.471 5.641 1525 16.522 5.583 1525 16.569 5.533 1525 16.610 5.480 1525 16.645 5.424 1525 16.674 5.369 1525 16.700 5.317 1525 16.719 5.266 1525 16.745 5.215 1525 16.784 5.159 1525 16.817 5.107 1525 16.851 5.050 1525 16.886 4.995 1525 16.913 4.942 1525 16.947 4.883 1525 16.976 4.829 1525 17.005 4.775 1525 17.036 4.714 1525 17.060 4.664 1525 17.087 4.609 1525 17.103 4.558 1525 17.099 4.502 1525 17.103 4.451 1525 17.112 4.396 1525 17.117 4.339 1525 17.132 4.283 1525 17.151 4.232 1525 17.172 4.178 1525 17.181 4.128 1525 17.187 4.073 1525 17.191 4.018 1525 17.201 3.960 1525 17.209 3.902 1525 17.216 3.849 1525 17.228 3.795 1525 17.246 3.743 1525 17.270 3.690 1525 17.300 3.637 1525 17.331 3.585 1525 17.364 3.532 1525 17.389 3.479 1525 12.450 3.315 1550 12.448 3.315 1550 12.431 3.369 1550 12.425 3.423 1550 12.413 3.476 1550 12.397 3.528 1550 12.370 3.581 1550 12.334 3.637 1550 12.290 3.688 1550 12.249 3.740 1550 12.197 3.795 1550 12.147 3.848 1550 12.098 3.904 1550 12.060 3.959 1550 12.041 4.014 1550 12.040 4.068 1550 12.043 4.119 1550 12.062 4.175 1550 12.057 4.225 1550 12.072 4.278 1550 12.122 4.309 1550 12.111 4.362 1550 12.080 4.414 1550 12.072 4.464 1550 12.122 4.495 1550 12.174 4.518 1550 12.228 4.547 1550 12.254 4.598 1550 12.230 4.651 1550 12.179 4.699 1550 12.129 4.734 1550 12.076 4.785 1550 12.034 4.836 1550 11.981 4.848 1550 11.958 4.899 1550 11.908 4.940 1550 11.908 4.990 1550 11.856 5.035 1550 11.849 5.085 1550 11.899 5.125 1550 11.926 5.177 1550 11.976 5.197 1550 12.008 5.247 1550 12.000 5.297 1550 11.949 5.344 1550 11.931 5.395 1550 11.900 5.449 1550 11.885 5.499 1550 11.874 5.550 1550 11.853 5.601 1550 11.807 5.651 1550 11.818 5.706 1550 11.780 5.761 1550 11.760 5.812 1550 11.752 5.863 1550 11.751 5.914 1550 11.753 5.969 1550 11.766 6.024 1550 11.778 6.077 1550 11.769 6.129 1550 11.755 6.179 1550 11.767 6.230 1550 11.792 6.281 1550 11.782 6.335 1550 11.759 6.388 1550 11.735 6.442 1550 11.710 6.493 1550 11.706 6.544 1550 11.686 6.595 1550 11.655 6.647 1550 11.646 6.698 1550 11.638 6.749 1550 11.614 6.802 1550 11.581 6.856 1550 11.558 6.909 1550 11.536 6.960 1550 11.499 7.015 1550 11.446 7.069 1550 11.422 7.124 1550 11.389 7.174 1550 11.337 7.214 1550 11.284 7.239 1550 11.232 7.264 1550 11.193 7.314 1550 11.154 7.366 1550 11.100 7.402 1550 11.050 7.427 1550 10.993 7.450 1550 10.938 7.473 1550 10.887 7.510 1550 10.847 7.561 1550 10.852 7.614 1550 10.866 7.664 1550 10.874 7.718 1550 10.871 7.772 1550 10.859 7.826 1550 10.839 7.881 1550 10.811 7.933 1550 10.787 7.989 1550 10.772 8.042 1550 10.753 8.094 1550 10.734 8.147 1550 10.715 8.203 1550 10.700 8.258 1550 10.681 8.312 1550 10.666 8.363 1550 10.643 8.415 1550 10.612 8.465 1550 10.578 8.516 1550 10.550 8.569 1550 10.524 8.623 1550 10.497 8.677 1550 10.473 8.731 1550 10.452 8.786 1550 10.432 8.838 1550 10.409 8.892 1550 10.390 8.946 1550 10.375 8.996 1550 10.358 9.047 1550 10.341 9.088 1550 10.323 9.101 1550 10.305 9.155 1550 10.291 9.209 1550 10.284 9.261 1550 10.281 9.312 1550 10.289 9.363 1550 10.302 9.417 1550 10.312 9.470 1550 10.322 9.522 1550 10.330 9.574 1550 10.341 9.626 1550 10.357 9.678 1550 10.377 9.731 1550 10.400 9.784 1550 10.424 9.838 1550 10.443 9.891 1550 10.464 9.942 1550 10.490 9.993 1550 10.529 10.043 1550 10.580 10.089 1550 10.632 10.119 1550 10.683 10.149 1550 10.738 10.188 1550 10.791 10.229 1550 10.846 10.277 1550 10.899 10.322 1550 10.949 10.364 1550 11.001 10.404 1550 11.053 10.442 1550 11.104 10.477 1550 11.157 10.512 1550 11.211 10.552 1550 11.268 10.587 1550 11.322 10.618 1550 11.372 10.643 1550 11.422 10.661 1550 11.476 10.677 1550 11.530 10.683 1550 11.583 10.692 1550 11.634 10.703 1550 11.687 10.710 1550 11.740 10.713 1550 11.798 10.721 1550 11.848 10.732 1550 11.902 10.741 1550 11.956 10.758 1550 12.009 10.775 1550 12.063 10.800 1550 12.114 10.821 1550 12.165 10.848 1550 12.215 10.874 1550 12.265 10.914 1550 12.309 10.965 1550 12.317 10.974 1550 12.362 10.957 1550 12.411 10.903 1550 12.431 10.852 1550 12.458 10.801 1550 12.495 10.747 1550 12.537 10.697 1550 12.580 10.646 1550 12.631 10.606 1550 12.681 10.580 1550 12.703 10.525 1550 12.717 10.473 1550 12.738 10.422 1550 12.772 10.366 1550 12.815 10.311 1550 12.866 10.282 1550 12.891 10.231 1550 12.927 10.181 1550 12.979 10.178 1550 13.032 10.178 1550 13.052 10.126 1550 13.084 10.075 1550 13.133 10.023 1550 13.151 9.970 1550 13.168 9.915 1550 13.215 9.865 1550 13.260 9.813 1550 13.310 9.771 1550 13.362 9.724 1550 13.416 9.672 1550 13.469 9.640 1550 13.523 9.621 1550 13.574 9.610 1550 13.626 9.570 1550 13.661 9.519 1550 13.710 9.466 1550 13.762 9.425 1550 13.813 9.388 1550 13.836 9.338 1550 13.866 9.285 1550 13.918 9.242 1550 13.961 9.190 1550 13.988 9.137 1550 14.017 9.084 1550 14.067 9.043 1550 14.119 9.036 1550 14.128 8.983 1550 14.158 8.933 1550 14.216 8.915 1550 14.269 8.888 1550 14.311 8.838 1550 14.329 8.787 1550 14.359 8.732 1550 14.392 8.678 1550 14.429 8.623 1550 14.476 8.566 1550 14.525 8.510 1550 14.564 8.458 1550 14.594 8.406 1550 14.624 8.355 1550 14.661 8.300 1550 14.694 8.244 1550 14.731 8.193 1550 14.773 8.142 1550 14.826 8.090 1550 14.879 8.047 1550 14.935 8.004 1550 14.989 7.968 1550 15.042 7.929 1550 15.093 7.894 1550 15.146 7.874 1550 15.197 7.849 1550 15.247 7.819 1550 15.298 7.780 1550 15.349 7.734 1550 15.395 7.683 1550 15.448 7.634 1550 15.498 7.586 1550 15.549 7.534 1550 15.593 7.483 1550 15.637 7.430 1550 15.678 7.379 1550 15.711 7.326 1550 15.730 7.274 1550 15.736 7.221 1550 15.736 7.171 1550 15.750 7.118 1550 15.767 7.062 1550 15.791 7.003 1550 15.818 6.947 1550 15.847 6.892 1550 15.868 6.839 1550 15.885 6.789 1550 15.907 6.734 1550 15.927 6.683 1550 15.949 6.626 1550 15.977 6.567 1550 16.003 6.510 1550 16.039 6.454 1550 16.073 6.403 1550 16.103 6.351 1550 16.129 6.300 1550 16.167 6.244 1550 16.201 6.194 1550 16.240 6.142 1550 16.291 6.088 1550 16.342 6.038 1550 16.392 5.993 1550 16.448 5.939 1550 16.498 5.895 1550 16.553 5.852 1550 16.605 5.802 1550 16.644 5.752 1550 16.672 5.701 1550 16.714 5.648 1550 16.756 5.595 1550 16.780 5.541 1550 16.803 5.491 1550 16.831 5.439 1550 16.861 5.386 1550 16.896 5.332 1550 16.939 5.278 1550 16.975 5.228 1550 17.007 5.177 1550 17.035 5.124 1550 17.051 5.074 1550 17.066 5.022 1550 17.081 4.968 1550 17.112 4.914 1550 17.148 4.862 1550 17.191 4.809 1550 17.181 4.756 1550 17.183 4.699 1550 17.190 4.642 1550 17.200 4.592 1550 17.221 4.541 1550 17.236 4.491 1550 17.250 4.439 1550 17.256 4.387 1550 17.273 4.335 1550 17.288 4.283 1550 17.292 4.233 1550 17.294 4.181 1550 17.296 4.131 1550 17.311 4.078 1550 17.325 4.023 1550 17.344 3.970 1550 17.363 3.919 1550 17.379 3.867 1550 17.384 3.812 1550 17.388 3.760 1550 17.402 3.707 1550 12.317 3.309 1575 12.316 3.309 1575 12.301 3.362 1575 12.301 3.414 1575 12.285 3.469 1575 12.260 3.523 1575 12.208 3.577 1575 12.154 3.612 1575 12.102 3.657 1575 12.052 3.701 1575 12.003 3.755 1575 11.968 3.809 1575 11.938 3.862 1575 11.915 3.913 1575 11.908 3.963 1575 11.905 4.015 1575 11.873 4.066 1575 11.835 4.117 1575 11.813 4.169 1575 11.827 4.222 1575 11.841 4.279 1575 11.843 4.329 1575 11.826 4.382 1575 11.799 4.436 1575 11.757 4.488 1575 11.712 4.543 1575 11.707 4.595 1575 11.713 4.645 1575 11.766 4.633 1575 11.822 4.618 1575 11.873 4.619 1575 11.895 4.673 1575 11.878 4.726 1575 11.838 4.780 1575 11.801 4.832 1575 11.754 4.883 1575 11.739 4.934 1575 11.743 4.984 1575 11.691 4.996 1575 11.661 5.048 1575 11.674 5.101 1575 11.684 5.154 1575 11.728 5.208 1575 11.728 5.259 1575 11.710 5.312 1575 11.674 5.365 1575 11.641 5.417 1575 11.611 5.471 1575 11.573 5.524 1575 11.545 5.577 1575 11.515 5.630 1575 11.499 5.682 1575 11.497 5.734 1575 11.506 5.786 1575 11.522 5.840 1575 11.537 5.896 1575 11.545 5.952 1575 11.548 6.004 1575 11.548 6.056 1575 11.546 6.111 1575 11.545 6.168 1575 11.537 6.224 1575 11.532 6.276 1575 11.531 6.333 1575 11.527 6.386 1575 11.522 6.438 1575 11.511 6.496 1575 11.499 6.551 1575 11.489 6.607 1575 11.478 6.659 1575 11.463 6.718 1575 11.446 6.768 1575 11.428 6.820 1575 11.404 6.876 1575 11.378 6.932 1575 11.350 6.988 1575 11.312 7.041 1575 11.272 7.098 1575 11.235 7.149 1575 11.191 7.202 1575 11.141 7.232 1575 11.090 7.252 1575 11.037 7.295 1575 10.982 7.333 1575 10.927 7.349 1575 10.873 7.344 1575 10.818 7.360 1575 10.764 7.400 1575 10.710 7.423 1575 10.659 7.432 1575 10.633 7.485 1575 10.627 7.537 1575 10.619 7.587 1575 10.664 7.640 1575 10.715 7.679 1575 10.758 7.729 1575 10.743 7.780 1575 10.692 7.833 1575 10.655 7.887 1575 10.657 7.940 1575 10.668 7.992 1575 10.661 8.043 1575 10.645 8.096 1575 10.618 8.151 1575 10.599 8.204 1575 10.579 8.257 1575 10.555 8.311 1575 10.522 8.365 1575 10.485 8.418 1575 10.444 8.469 1575 10.412 8.525 1575 10.377 8.579 1575 10.355 8.631 1575 10.338 8.683 1575 10.311 8.736 1575 10.290 8.789 1575 10.267 8.839 1575 10.236 8.893 1575 10.203 8.949 1575 10.172 9.001 1575 10.135 9.054 1575 10.103 9.107 1575 10.075 9.160 1575 10.051 9.211 1575 10.039 9.265 1575 10.030 9.322 1575 10.022 9.377 1575 10.008 9.427 1575 9.987 9.451 1575 9.974 9.481 1575 9.955 9.536 1575 9.928 9.592 1575 9.901 9.646 1575 9.875 9.699 1575 9.856 9.752 1575 9.846 9.802 1575 9.847 9.852 1575 9.865 9.903 1575 9.905 9.954 1575 9.929 10.008 1575 9.946 10.060 1575 9.954 10.115 1575 9.956 10.168 1575 9.962 10.221 1575 9.967 10.271 1575 9.974 10.325 1575 9.981 10.377 1575 9.990 10.427 1575 10.006 10.478 1575 10.023 10.531 1575 10.047 10.584 1575 10.079 10.638 1575 10.111 10.691 1575 10.158 10.744 1575 10.211 10.788 1575 10.262 10.822 1575 10.317 10.845 1575 10.369 10.875 1575 10.419 10.917 1575 10.458 10.973 1575 10.499 11.030 1575 10.533 11.083 1575 10.579 11.141 1575 10.632 11.191 1575 10.686 11.244 1575 10.738 11.292 1575 10.788 11.343 1575 10.842 11.396 1575 10.898 11.438 1575 10.950 11.472 1575 11.003 11.503 1575 11.054 11.526 1575 11.107 11.545 1575 11.163 11.565 1575 11.215 11.581 1575 11.269 11.593 1575 11.326 11.594 1575 11.377 11.591 1575 11.430 11.577 1575 11.482 11.563 1575 11.532 11.543 1575 11.583 11.520 1575 11.637 11.493 1575 11.693 11.480 1575 11.746 11.478 1575 11.798 11.482 1575 11.848 11.487 1575 11.900 11.492 1575 11.952 11.479 1575 12.002 11.472 1575 12.052 11.473 1575 12.102 11.513 1575 12.153 11.559 1575 12.204 11.601 1575 12.255 11.619 1575 12.258 11.618 1575 12.285 11.559 1575 12.317 11.509 1575 12.359 11.458 1575 12.388 11.404 1575 12.424 11.350 1575 12.458 11.298 1575 12.510 11.245 1575 12.517 11.188 1575 12.519 11.138 1575 12.549 11.086 1575 12.593 11.030 1575 12.617 10.979 1575 12.636 10.927 1575 12.665 10.868 1575 12.705 10.812 1575 12.753 10.762 1575 12.804 10.773 1575 12.854 10.773 1575 12.910 10.718 1575 12.949 10.667 1575 12.952 10.615 1575 12.958 10.564 1575 12.986 10.512 1575 13.019 10.458 1575 13.050 10.405 1575 13.082 10.355 1575 13.112 10.302 1575 13.147 10.249 1575 13.200 10.243 1575 13.221 10.184 1575 13.237 10.124 1575 13.264 10.069 1575 13.298 10.017 1575 13.348 9.968 1575 13.402 9.935 1575 13.455 9.916 1575 13.512 9.888 1575 13.565 9.855 1575 13.620 9.809 1575 13.674 9.769 1575 13.730 9.727 1575 13.779 9.675 1575 13.829 9.648 1575 13.856 9.594 1575 13.894 9.544 1575 13.945 9.507 1575 13.996 9.511 1575 14.013 9.459 1575 14.063 9.435 1575 14.116 9.427 1575 14.171 9.419 1575 14.215 9.369 1575 14.240 9.318 1575 14.292 9.293 1575 14.323 9.238 1575 14.315 9.185 1575 14.311 9.135 1575 14.361 9.098 1575 14.388 9.046 1575 14.412 8.992 1575 14.424 8.941 1575 14.444 8.888 1575 14.478 8.838 1575 14.512 8.787 1575 14.543 8.733 1575 14.579 8.679 1575 14.622 8.623 1575 14.658 8.571 1575 14.697 8.521 1575 14.737 8.471 1575 14.766 8.413 1575 14.792 8.360 1575 14.822 8.307 1575 14.867 8.251 1575 14.919 8.204 1575 14.969 8.155 1575 15.022 8.133 1575 15.073 8.115 1575 15.123 8.075 1575 15.149 8.024 1575 15.201 8.000 1575 15.254 7.987 1575 15.308 7.980 1575 15.361 7.968 1575 15.412 7.934 1575 15.463 7.895 1575 15.503 7.842 1575 15.516 7.789 1575 15.544 7.736 1575 15.594 7.684 1575 15.650 7.639 1575 15.704 7.591 1575 15.754 7.537 1575 15.805 7.500 1575 15.810 7.449 1575 15.842 7.396 1575 15.881 7.344 1575 15.894 7.292 1575 15.918 7.239 1575 15.935 7.185 1575 15.954 7.129 1575 15.967 7.075 1575 15.977 7.019 1575 15.985 6.964 1575 16.000 6.909 1575 16.021 6.856 1575 16.044 6.806 1575 16.063 6.751 1575 16.081 6.695 1575 16.115 6.645 1575 16.147 6.594 1575 16.166 6.541 1575 16.190 6.486 1575 16.218 6.431 1575 16.247 6.375 1575 16.281 6.321 1575 16.325 6.265 1575 16.374 6.214 1575 16.425 6.172 1575 16.477 6.136 1575 16.532 6.088 1575 16.582 6.040 1575 16.638 5.991 1575 16.692 5.948 1575 16.744 5.896 1575 16.792 5.842 1575 16.837 5.792 1575 16.881 5.735 1575 16.927 5.683 1575 16.962 5.632 1575 16.985 5.581 1575 17.003 5.531 1575 17.019 5.476 1575 17.035 5.420 1575 17.053 5.366 1575 17.077 5.314 1575 17.099 5.263 1575 17.150 5.226 1575 17.184 5.171 1575 17.195 5.117 1575 17.195 5.064 1575 17.208 5.013 1575 17.251 4.963 1575 17.305 4.931 1575 17.324 4.878 1575 17.320 4.823 1575 17.322 4.768 1575 17.323 4.718 1575 17.324 4.667 1575 17.336 4.611 1575 17.388 4.576 1575 17.403 4.521 1575 17.402 4.470 1575 17.422 4.419 1575 12.190 3.312 1600 12.188 3.312 1600 12.151 3.364 1600 12.114 3.416 1600 12.066 3.467 1600 12.010 3.499 1600 11.960 3.519 1600 11.910 3.541 1600 11.858 3.564 1600 11.804 3.595 1600 11.752 3.632 1600 11.701 3.671 1600 11.648 3.707 1600 11.597 3.746 1600 11.548 3.801 1600 11.506 3.853 1600 11.451 3.888 1600 11.397 3.909 1600 11.356 3.961 1600 11.326 4.016 1600 11.301 4.070 1600 11.258 4.121 1600 11.204 4.170 1600 11.151 4.207 1600 11.098 4.221 1600 11.046 4.238 1600 10.994 4.270 1600 10.941 4.304 1600 10.889 4.346 1600 10.866 4.399 1600 10.856 4.450 1600 10.846 4.503 1600 10.793 4.537 1600 10.741 4.558 1600 10.711 4.613 1600 10.705 4.664 1600 10.711 4.716 1600 10.738 4.768 1600 10.791 4.799 1600 10.843 4.818 1600 10.896 4.836 1600 10.950 4.857 1600 11.007 4.881 1600 11.063 4.908 1600 11.113 4.931 1600 11.168 4.956 1600 11.223 4.984 1600 11.276 5.015 1600 11.329 5.041 1600 11.385 5.066 1600 11.435 5.088 1600 11.483 5.141 1600 11.485 5.192 1600 11.472 5.243 1600 11.474 5.293 1600 11.422 5.286 1600 11.388 5.338 1600 11.338 5.351 1600 11.348 5.402 1600 11.304 5.454 1600 11.286 5.512 1600 11.276 5.565 1600 11.271 5.615 1600 11.267 5.666 1600 11.275 5.718 1600 11.294 5.771 1600 11.324 5.821 1600 11.365 5.872 1600 11.399 5.923 1600 11.416 5.974 1600 11.419 6.027 1600 11.413 6.080 1600 11.395 6.134 1600 11.369 6.188 1600 11.341 6.239 1600 11.321 6.289 1600 11.303 6.343 1600 11.282 6.399 1600 11.268 6.452 1600 11.254 6.507 1600 11.237 6.558 1600 11.223 6.612 1600 11.209 6.666 1600 11.189 6.721 1600 11.162 6.772 1600 11.113 6.827 1600 11.068 6.878 1600 11.031 6.928 1600 11.007 6.983 1600 11.005 7.036 1600 10.987 7.087 1600 10.945 7.138 1600 10.905 7.189 1600 10.853 7.224 1600 10.802 7.241 1600 10.752 7.272 1600 10.701 7.318 1600 10.648 7.312 1600 10.593 7.322 1600 10.540 7.337 1600 10.490 7.352 1600 10.459 7.406 1600 10.455 7.458 1600 10.453 7.511 1600 10.478 7.564 1600 10.529 7.613 1600 10.564 7.664 1600 10.580 7.715 1600 10.527 7.755 1600 10.483 7.806 1600 10.505 7.856 1600 10.526 7.907 1600 10.530 7.963 1600 10.523 8.014 1600 10.505 8.066 1600 10.484 8.116 1600 10.459 8.169 1600 10.433 8.221 1600 10.403 8.276 1600 10.365 8.330 1600 10.331 8.383 1600 10.293 8.435 1600 10.257 8.487 1600 10.218 8.538 1600 10.178 8.591 1600 10.142 8.646 1600 10.110 8.700 1600 10.077 8.753 1600 10.048 8.806 1600 10.022 8.860 1600 9.994 8.910 1600 9.970 8.964 1600 9.953 9.015 1600 9.928 9.066 1600 9.898 9.117 1600 9.865 9.168 1600 9.831 9.218 1600 9.798 9.270 1600 9.765 9.324 1600 9.736 9.374 1600 9.715 9.425 1600 9.691 9.476 1600 9.662 9.527 1600 9.633 9.577 1600 9.610 9.628 1600 9.584 9.680 1600 9.564 9.731 1600 9.545 9.787 1600 9.530 9.841 1600 9.523 9.895 1600 9.523 9.946 1600 9.526 9.955 1600 9.519 9.999 1600 9.514 10.049 1600 9.516 10.100 1600 9.522 10.151 1600 9.532 10.205 1600 9.541 10.256 1600 9.569 10.310 1600 9.604 10.364 1600 9.611 10.416 1600 9.598 10.467 1600 9.578 10.518 1600 9.557 10.572 1600 9.537 10.629 1600 9.525 10.680 1600 9.532 10.731 1600 9.545 10.787 1600 9.563 10.840 1600 9.581 10.893 1600 9.598 10.943 1600 9.611 10.995 1600 9.618 11.046 1600 9.625 11.096 1600 9.627 11.147 1600 9.632 11.202 1600 9.640 11.256 1600 9.651 11.311 1600 9.662 11.363 1600 9.677 11.417 1600 9.692 11.471 1600 9.714 11.523 1600 9.764 11.570 1600 9.815 11.603 1600 9.865 11.627 1600 9.919 11.658 1600 9.974 11.690 1600 10.029 11.728 1600 10.080 11.765 1600 10.134 11.805 1600 10.190 11.848 1600 10.241 11.888 1600 10.296 11.925 1600 10.348 11.956 1600 10.405 11.987 1600 10.459 12.014 1600 10.517 12.041 1600 10.576 12.067 1600 10.626 12.094 1600 10.681 12.119 1600 10.731 12.138 1600 10.782 12.155 1600 10.840 12.169 1600 10.896 12.186 1600 10.946 12.201 1600 10.996 12.217 1600 11.051 12.236 1600 11.101 12.247 1600 11.155 12.256 1600 11.209 12.263 1600 11.264 12.262 1600 11.319 12.268 1600 11.369 12.269 1600 11.425 12.269 1600 11.476 12.262 1600 11.530 12.249 1600 11.581 12.237 1600 11.631 12.221 1600 11.686 12.202 1600 11.737 12.186 1600 11.787 12.174 1600 11.841 12.163 1600 11.898 12.149 1600 11.952 12.142 1600 12.008 12.140 1600 12.063 12.130 1600 12.115 12.124 1600 12.172 12.121 1600 12.190 12.114 1600 12.223 12.080 1600 12.274 12.050 1600 12.311 11.998 1600 12.341 11.947 1600 12.370 11.893 1600 12.397 11.843 1600 12.426 11.792 1600 12.453 11.741 1600 12.476 11.687 1600 12.493 11.637 1600 12.543 11.608 1600 12.570 11.551 1600 12.601 11.498 1600 12.652 11.464 1600 12.700 11.412 1600 12.727 11.360 1600 12.771 11.308 1600 12.824 11.281 1600 12.876 11.239 1600 12.922 11.187 1600 12.953 11.137 1600 12.992 11.084 1600 13.019 11.029 1600 13.072 10.990 1600 13.103 10.939 1600 13.113 10.885 1600 13.137 10.831 1600 13.160 10.778 1600 13.182 10.727 1600 13.197 10.677 1600 13.213 10.620 1600 13.225 10.565 1600 13.241 10.512 1600 13.260 10.459 1600 13.281 10.408 1600 13.305 10.357 1600 13.356 10.321 1600 13.388 10.269 1600 13.404 10.215 1600 13.445 10.165 1600 13.488 10.115 1600 13.539 10.119 1600 13.565 10.068 1600 13.604 10.016 1600 13.657 9.979 1600 13.711 9.935 1600 13.765 9.910 1600 13.821 9.878 1600 13.871 9.852 1600 13.922 9.828 1600 13.973 9.796 1600 14.026 9.746 1600 14.081 9.707 1600 14.131 9.678 1600 14.163 9.627 1600 14.183 9.576 1600 14.234 9.533 1600 14.285 9.522 1600 14.335 9.491 1600 14.388 9.518 1600 14.438 9.525 1600 14.488 9.474 1600 14.489 9.423 1600 14.490 9.370 1600 14.486 9.319 1600 14.476 9.269 1600 14.526 9.228 1600 14.529 9.176 1600 14.580 9.126 1600 14.574 9.074 1600 14.583 9.024 1600 14.617 8.973 1600 14.650 8.923 1600 14.650 8.873 1600 14.674 8.821 1600 14.705 8.771 1600 14.744 8.721 1600 14.774 8.668 1600 14.805 8.615 1600 14.834 8.562 1600 14.862 8.510 1600 14.902 8.458 1600 14.908 8.403 1600 14.949 8.352 1600 14.991 8.300 1600 15.042 8.276 1600 15.094 8.269 1600 15.149 8.242 1600 15.193 8.190 1600 15.211 8.135 1600 15.263 8.104 1600 15.315 8.090 1600 15.365 8.087 1600 15.415 8.104 1600 15.465 8.096 1600 15.518 8.049 1600 15.560 7.996 1600 15.615 7.942 1600 15.651 7.887 1600 15.676 7.833 1600 15.710 7.783 1600 15.747 7.733 1600 15.797 7.683 1600 15.849 7.658 1600 15.899 7.643 1600 15.924 7.592 1600 15.953 7.539 1600 15.989 7.487 1600 16.009 7.436 1600 16.016 7.383 1600 16.027 7.330 1600 16.052 7.275 1600 16.076 7.221 1600 16.089 7.171 1600 16.097 7.118 1600 16.100 7.064 1600 16.106 7.012 1600 16.114 6.959 1600 16.134 6.903 1600 16.157 6.850 1600 16.173 6.796 1600 16.187 6.745 1600 16.202 6.688 1600 16.224 6.634 1600 16.254 6.578 1600 16.287 6.520 1600 16.318 6.470 1600 16.368 6.416 1600 16.409 6.360 1600 16.443 6.309 1600 16.482 6.256 1600 16.537 6.209 1600 16.589 6.172 1600 16.643 6.136 1600 16.694 6.088 1600 16.748 6.054 1600 16.803 6.027 1600 16.859 5.984 1600 16.915 5.932 1600 16.967 5.878 1600 17.006 5.828 1600 17.043 5.775 1600 17.069 5.724 1600 17.102 5.669 1600 17.128 5.617 1600 17.172 5.565 1600 17.183 5.513 1600 17.183 5.460 1600 17.190 5.410 1600 17.221 5.357 1600 17.275 5.312 1600 17.314 5.259 1600 17.313 5.205 1600 17.318 5.151 1600 17.336 5.101 1600 17.385 5.050 1600 17.435 5.007 1600 12.020 3.307 1625 12.020 3.309 1625 11.968 3.330 1625 11.914 3.357 1625 11.863 3.382 1625 11.811 3.410 1625 11.758 3.437 1625 11.705 3.466 1625 11.654 3.498 1625 11.603 3.540 1625 11.551 3.580 1625 11.499 3.619 1625 11.448 3.659 1625 11.399 3.711 1625 11.358 3.765 1625 11.317 3.818 1625 11.267 3.868 1625 11.216 3.906 1625 11.164 3.933 1625 11.114 3.957 1625 11.063 3.976 1625 11.009 3.996 1625 10.956 4.021 1625 10.903 4.047 1625 10.853 4.076 1625 10.802 4.100 1625 10.750 4.134 1625 10.699 4.166 1625 10.648 4.207 1625 10.597 4.256 1625 10.555 4.306 1625 10.516 4.358 1625 10.480 4.411 1625 10.450 4.461 1625 10.432 4.514 1625 10.420 4.565 1625 10.409 4.619 1625 10.402 4.673 1625 10.403 4.725 1625 10.403 4.776 1625 10.406 4.828 1625 10.411 4.878 1625 10.420 4.929 1625 10.456 4.980 1625 10.506 5.023 1625 10.556 5.040 1625 10.607 5.059 1625 10.657 5.073 1625 10.711 5.090 1625 10.699 5.140 1625 10.721 5.194 1625 10.771 5.229 1625 10.824 5.266 1625 10.874 5.291 1625 10.927 5.325 1625 10.975 5.375 1625 10.993 5.427 1625 11.005 5.477 1625 11.023 5.528 1625 11.042 5.579 1625 11.056 5.632 1625 11.070 5.686 1625 11.088 5.739 1625 11.115 5.793 1625 11.151 5.845 1625 11.183 5.896 1625 11.202 5.947 1625 11.215 5.997 1625 11.214 6.048 1625 11.203 6.100 1625 11.167 6.152 1625 11.136 6.204 1625 11.114 6.256 1625 11.096 6.306 1625 11.053 6.359 1625 11.035 6.413 1625 11.035 6.467 1625 11.009 6.520 1625 10.968 6.570 1625 10.934 6.624 1625 10.886 6.675 1625 10.841 6.726 1625 10.798 6.779 1625 10.762 6.833 1625 10.743 6.886 1625 10.736 6.940 1625 10.713 6.991 1625 10.666 7.043 1625 10.616 7.080 1625 10.566 7.108 1625 10.511 7.143 1625 10.457 7.182 1625 10.404 7.222 1625 10.355 7.274 1625 10.346 7.325 1625 10.350 7.381 1625 10.352 7.432 1625 10.344 7.483 1625 10.334 7.537 1625 10.345 7.588 1625 10.377 7.640 1625 10.402 7.691 1625 10.350 7.736 1625 10.312 7.787 1625 10.339 7.839 1625 10.384 7.893 1625 10.417 7.943 1625 10.419 7.999 1625 10.405 8.050 1625 10.385 8.107 1625 10.357 8.158 1625 10.325 8.212 1625 10.289 8.263 1625 10.242 8.314 1625 10.205 8.369 1625 10.175 8.420 1625 10.141 8.476 1625 10.094 8.529 1625 10.042 8.573 1625 9.995 8.626 1625 9.960 8.679 1625 9.926 8.731 1625 9.886 8.787 1625 9.862 8.838 1625 9.850 8.888 1625 9.833 8.939 1625 9.812 8.992 1625 9.784 9.043 1625 9.743 9.095 1625 9.700 9.148 1625 9.659 9.202 1625 9.630 9.254 1625 9.614 9.304 1625 9.587 9.357 1625 9.562 9.409 1625 9.538 9.460 1625 9.514 9.510 1625 9.481 9.563 1625 9.446 9.613 1625 9.420 9.664 1625 9.403 9.718 1625 9.385 9.772 1625 9.364 9.824 1625 9.337 9.876 1625 9.308 9.926 1625 9.283 9.977 1625 9.248 10.028 1625 9.248 10.027 1625 9.224 10.082 1625 9.215 10.134 1625 9.232 10.184 1625 9.252 10.234 1625 9.272 10.285 1625 9.297 10.310 1625 9.312 10.341 1625 9.343 10.392 1625 9.362 10.443 1625 9.359 10.496 1625 9.338 10.548 1625 9.319 10.600 1625 9.293 10.653 1625 9.267 10.704 1625 9.229 10.757 1625 9.201 10.787 1625 9.195 10.808 1625 9.169 10.859 1625 9.156 10.909 1625 9.150 10.961 1625 9.153 11.014 1625 9.168 11.064 1625 9.190 11.119 1625 9.200 11.143 1625 9.202 11.169 1625 9.231 11.222 1625 9.243 11.274 1625 9.223 11.325 1625 9.221 11.368 1625 9.219 11.375 1625 9.208 11.428 1625 9.198 11.480 1625 9.200 11.530 1625 9.203 11.581 1625 9.212 11.634 1625 9.227 11.684 1625 9.241 11.735 1625 9.252 11.785 1625 9.277 11.836 1625 9.316 11.893 1625 9.349 11.948 1625 9.358 12.000 1625 9.366 12.053 1625 9.371 12.106 1625 9.384 12.158 1625 9.404 12.210 1625 9.437 12.262 1625 9.485 12.316 1625 9.531 12.368 1625 9.576 12.420 1625 9.628 12.476 1625 9.678 12.516 1625 9.735 12.562 1625 9.787 12.590 1625 9.852 12.616 1625 9.905 12.636 1625 9.956 12.655 1625 10.007 12.672 1625 10.062 12.672 1625 10.113 12.660 1625 10.167 12.645 1625 10.223 12.639 1625 10.276 12.648 1625 10.329 12.659 1625 10.383 12.661 1625 10.439 12.670 1625 10.498 12.681 1625 10.551 12.688 1625 10.601 12.699 1625 10.658 12.710 1625 10.708 12.720 1625 10.765 12.728 1625 10.824 12.729 1625 10.879 12.725 1625 10.933 12.720 1625 10.984 12.714 1625 11.037 12.707 1625 11.093 12.699 1625 11.143 12.704 1625 11.197 12.715 1625 11.247 12.728 1625 11.297 12.733 1625 11.349 12.732 1625 11.403 12.717 1625 11.456 12.700 1625 11.506 12.673 1625 11.562 12.651 1625 11.616 12.633 1625 11.666 12.613 1625 11.720 12.600 1625 11.771 12.593 1625 11.821 12.580 1625 11.872 12.573 1625 11.926 12.574 1625 11.976 12.593 1625 12.029 12.592 1625 12.083 12.581 1625 12.135 12.567 1625 12.191 12.550 1625 12.244 12.534 1625 12.298 12.522 1625 12.350 12.499 1625 12.356 12.491 1625 12.363 12.445 1625 12.374 12.393 1625 12.381 12.341 1625 12.422 12.289 1625 12.422 12.238 1625 12.428 12.188 1625 12.479 12.212 1625 12.500 12.160 1625 12.522 12.110 1625 12.555 12.056 1625 12.606 12.012 1625 12.657 11.972 1625 12.708 11.933 1625 12.759 11.908 1625 12.810 11.860 1625 12.839 11.805 1625 12.831 11.753 1625 12.842 11.700 1625 12.893 11.661 1625 12.931 11.607 1625 12.975 11.556 1625 13.027 11.520 1625 13.081 11.489 1625 13.133 11.471 1625 13.176 11.417 1625 13.186 11.365 1625 13.195 11.311 1625 13.249 11.265 1625 13.301 11.218 1625 13.323 11.167 1625 13.371 11.115 1625 13.383 11.064 1625 13.384 11.009 1625 13.420 10.959 1625 13.459 10.908 1625 13.458 10.858 1625 13.441 10.805 1625 13.423 10.753 1625 13.405 10.703 1625 13.397 10.652 1625 13.395 10.599 1625 13.403 10.543 1625 13.425 10.493 1625 13.475 10.450 1625 13.526 10.436 1625 13.578 10.473 1625 13.624 10.525 1625 13.677 10.577 1625 13.727 10.585 1625 13.780 10.567 1625 13.832 10.543 1625 13.882 10.529 1625 13.933 10.504 1625 13.953 10.453 1625 13.942 10.395 1625 13.921 10.341 1625 13.875 10.290 1625 13.832 10.237 1625 13.820 10.187 1625 13.864 10.137 1625 13.919 10.114 1625 13.974 10.103 1625 14.025 10.089 1625 14.076 10.081 1625 14.127 10.053 1625 14.165 10.003 1625 14.221 9.984 1625 14.271 9.986 1625 14.322 9.984 1625 14.372 9.932 1625 14.384 9.880 1625 14.392 9.827 1625 14.391 9.774 1625 14.404 9.721 1625 14.456 9.691 1625 14.509 9.702 1625 14.560 9.652 1625 14.612 9.633 1625 14.634 9.579 1625 14.685 9.567 1625 14.692 9.514 1625 14.679 9.462 1625 14.660 9.411 1625 14.648 9.358 1625 14.698 9.316 1625 14.705 9.265 1625 14.707 9.211 1625 14.704 9.158 1625 14.746 9.104 1625 14.754 9.051 1625 14.773 8.996 1625 14.789 8.943 1625 14.820 8.890 1625 14.839 8.840 1625 14.864 8.786 1625 14.888 8.734 1625 14.913 8.680 1625 14.932 8.628 1625 14.977 8.578 1625 15.025 8.525 1625 15.053 8.474 1625 15.104 8.443 1625 15.155 8.420 1625 15.207 8.407 1625 15.260 8.389 1625 15.284 8.337 1625 15.316 8.285 1625 15.367 8.264 1625 15.423 8.244 1625 15.476 8.236 1625 15.530 8.242 1625 15.583 8.223 1625 15.619 8.172 1625 15.658 8.121 1625 15.676 8.069 1625 15.711 8.019 1625 15.763 7.994 1625 15.794 7.941 1625 15.820 7.889 1625 15.859 7.836 1625 15.914 7.785 1625 15.965 7.740 1625 16.016 7.706 1625 16.055 7.654 1625 16.089 7.601 1625 16.115 7.550 1625 16.135 7.495 1625 16.153 7.440 1625 16.169 7.388 1625 16.183 7.330 1625 16.193 7.276 1625 16.201 7.221 1625 16.210 7.171 1625 16.222 7.115 1625 16.232 7.063 1625 16.241 7.009 1625 16.250 6.956 1625 16.265 6.902 1625 16.282 6.848 1625 16.300 6.793 1625 16.315 6.743 1625 16.332 6.688 1625 16.352 6.634 1625 16.379 6.580 1625 16.413 6.527 1625 16.463 6.472 1625 16.519 6.422 1625 16.569 6.380 1625 16.627 6.338 1625 16.680 6.306 1625 16.732 6.266 1625 16.784 6.223 1625 16.837 6.176 1625 16.889 6.148 1625 16.941 6.126 1625 16.994 6.094 1625 17.028 6.043 1625 17.048 5.989 1625 17.099 5.940 1625 17.119 5.889 1625 17.171 5.846 1625 17.196 5.796 1625 17.196 5.742 1625 17.218 5.690 1625 17.270 5.653 1625 17.294 5.602 1625 17.290 5.551 1625 17.304 5.496 1625 17.324 5.445 1625 17.376 5.418 1625 17.413 5.367 1625 17.421 5.317 1625 17.434 5.263 1625 17.443 5.210 1625 11.690 3.315 1650 11.690 3.315 1650 11.652 3.367 1650 11.598 3.418 1650 11.548 3.457 1650 11.498 3.498 1650 11.446 3.535 1650 11.395 3.574 1650 11.345 3.613 1650 11.294 3.659 1650 11.289 3.665 1650 11.244 3.700 1650 11.194 3.736 1650 11.142 3.739 1650 11.089 3.731 1650 11.036 3.721 1650 10.986 3.716 1650 10.936 3.712 1650 10.882 3.720 1650 10.832 3.746 1650 10.781 3.783 1650 10.728 3.833 1650 10.675 3.880 1650 10.623 3.927 1650 10.576 3.978 1650 10.526 4.030 1650 10.474 4.085 1650 10.424 4.138 1650 10.381 4.190 1650 10.349 4.240 1650 10.317 4.295 1650 10.284 4.347 1650 10.255 4.397 1650 10.223 4.450 1650 10.190 4.503 1650 10.165 4.554 1650 10.148 4.606 1650 10.135 4.658 1650 10.122 4.709 1650 10.115 4.765 1650 10.136 4.818 1650 10.154 4.839 1650 10.158 4.870 1650 10.177 4.926 1650 10.204 4.977 1650 10.225 5.030 1650 10.239 5.081 1650 10.243 5.136 1650 10.270 5.188 1650 10.322 5.237 1650 10.353 5.291 1650 10.391 5.343 1650 10.435 5.398 1650 10.480 5.451 1650 10.534 5.503 1650 10.588 5.544 1650 10.644 5.576 1650 10.699 5.608 1650 10.754 5.634 1650 10.804 5.667 1650 10.854 5.699 1650 10.907 5.738 1650 10.959 5.776 1650 11.009 5.832 1650 11.034 5.886 1650 11.040 5.937 1650 11.029 5.990 1650 11.000 6.043 1650 10.955 6.095 1650 10.926 6.145 1650 10.915 6.198 1650 10.919 6.251 1650 10.905 6.303 1650 10.862 6.356 1650 10.836 6.410 1650 10.813 6.462 1650 10.780 6.514 1650 10.743 6.564 1650 10.705 6.618 1650 10.660 6.672 1650 10.617 6.724 1650 10.564 6.778 1650 10.513 6.820 1650 10.464 6.872 1650 10.422 6.924 1650 10.384 6.979 1650 10.351 7.035 1650 10.317 7.090 1650 10.276 7.142 1650 10.225 7.184 1650 10.195 7.236 1650 10.174 7.291 1650 10.141 7.344 1650 10.119 7.397 1650 10.110 7.451 1650 10.107 7.502 1650 10.114 7.556 1650 10.155 7.608 1650 10.147 7.659 1650 10.178 7.712 1650 10.178 7.764 1650 10.151 7.814 1650 10.163 7.867 1650 10.205 7.919 1650 10.235 7.969 1650 10.286 7.999 1650 10.299 8.051 1650 10.272 8.101 1650 10.218 8.116 1650 10.165 8.127 1650 10.144 8.180 1650 10.130 8.230 1650 10.088 8.281 1650 10.070 8.331 1650 10.049 8.384 1650 10.014 8.435 1650 9.962 8.489 1650 9.917 8.541 1650 9.878 8.592 1650 9.838 8.643 1650 9.800 8.694 1650 9.751 8.746 1650 9.713 8.799 1650 9.702 8.850 1650 9.698 8.901 1650 9.681 8.953 1650 9.630 9.000 1650 9.579 9.037 1650 9.526 9.067 1650 9.483 9.117 1650 9.466 9.171 1650 9.460 9.224 1650 9.450 9.274 1650 9.432 9.324 1650 9.400 9.374 1650 9.372 9.427 1650 9.353 9.480 1650 9.333 9.530 1650 9.315 9.581 1650 9.292 9.633 1650 9.264 9.683 1650 9.230 9.734 1650 9.191 9.785 1650 9.158 9.838 1650 9.123 9.889 1650 9.082 9.941 1650 9.044 9.993 1650 9.017 10.044 1650 8.999 10.095 1650 8.996 10.145 1650 9.006 10.198 1650 9.017 10.248 1650 9.034 10.298 1650 9.055 10.348 1650 9.082 10.399 1650 9.104 10.449 1650 9.122 10.499 1650 9.130 10.551 1650 9.127 10.603 1650 9.096 10.654 1650 9.044 10.694 1650 9.001 10.731 1650 8.990 10.735 1650 8.940 10.779 1650 8.920 10.832 1650 8.903 10.885 1650 8.895 10.936 1650 8.895 10.987 1650 8.894 10.998 1650 8.900 11.040 1650 8.913 11.090 1650 8.922 11.143 1650 8.927 11.194 1650 8.926 11.245 1650 8.934 11.295 1650 8.967 11.346 1650 8.966 11.398 1650 8.929 11.448 1650 8.919 11.464 1650 8.914 11.500 1650 8.903 11.551 1650 8.890 11.603 1650 8.872 11.655 1650 8.863 11.708 1650 8.862 11.761 1650 8.862 11.814 1650 8.873 11.867 1650 8.905 11.919 1650 8.943 11.972 1650 8.967 12.022 1650 8.992 12.074 1650 9.013 12.127 1650 9.034 12.181 1650 9.031 12.204 1650 9.044 12.232 1650 9.043 12.282 1650 9.050 12.336 1650 9.069 12.388 1650 9.091 12.439 1650 9.117 12.490 1650 9.122 12.498 1650 9.133 12.550 1650 9.135 12.604 1650 9.170 12.654 1650 9.215 12.705 1650 9.244 12.755 1650 9.278 12.807 1650 9.317 12.861 1650 9.366 12.916 1650 9.417 12.970 1650 9.460 13.020 1650 9.506 13.072 1650 9.557 13.107 1650 9.608 13.135 1650 9.658 13.162 1650 9.708 13.186 1650 9.767 13.208 1650 9.824 13.223 1650 9.878 13.236 1650 9.932 13.245 1650 9.988 13.260 1650 10.040 13.272 1650 10.093 13.287 1650 10.147 13.297 1650 10.202 13.308 1650 10.252 13.315 1650 10.302 13.312 1650 10.353 13.269 1650 10.392 13.218 1650 10.442 13.202 1650 10.492 13.205 1650 10.547 13.210 1650 10.599 13.210 1650 10.651 13.191 1650 10.703 13.167 1650 10.753 13.157 1650 10.806 13.161 1650 10.858 13.164 1650 10.910 13.171 1650 10.965 13.177 1650 11.016 13.183 1650 11.067 13.184 1650 11.122 13.180 1650 11.176 13.168 1650 11.230 13.146 1650 11.284 13.134 1650 11.337 13.142 1650 11.391 13.162 1650 11.441 13.163 1650 11.491 13.144 1650 11.545 13.124 1650 11.596 13.102 1650 11.647 13.082 1650 11.698 13.060 1650 11.751 13.034 1650 11.801 13.014 1650 11.854 12.998 1650 11.906 12.982 1650 11.959 12.965 1650 12.013 12.945 1650 12.066 12.938 1650 12.119 12.925 1650 12.170 12.910 1650 12.221 12.898 1650 12.274 12.882 1650 12.324 12.867 1650 12.377 12.851 1650 12.431 12.835 1650 12.482 12.817 1650 12.525 12.775 1650 12.503 12.755 1650 12.543 12.703 1650 12.553 12.648 1650 12.565 12.597 1650 12.616 12.546 1650 12.640 12.492 1650 12.684 12.439 1650 12.722 12.384 1650 12.762 12.334 1650 12.802 12.282 1650 12.847 12.232 1650 12.893 12.182 1650 12.945 12.162 1650 12.996 12.141 1650 13.039 12.087 1650 13.090 12.051 1650 13.141 12.037 1650 13.191 12.003 1650 13.236 11.950 1650 13.264 11.900 1650 13.300 11.847 1650 13.345 11.796 1650 13.371 11.745 1650 13.404 11.693 1650 13.435 11.639 1650 13.465 11.586 1650 13.497 11.533 1650 13.527 11.483 1650 13.552 11.429 1650 13.576 11.378 1650 13.601 11.325 1650 13.616 11.270 1650 13.620 11.220 1650 13.627 11.167 1650 13.637 11.111 1650 13.648 11.055 1650 13.672 11.003 1650 13.724 10.966 1650 13.774 10.941 1650 13.825 10.900 1650 13.860 10.847 1650 13.915 10.795 1650 13.965 10.780 1650 14.017 10.773 1650 14.070 10.764 1650 14.126 10.750 1650 14.177 10.710 1650 14.194 10.657 1650 14.205 10.603 1650 14.203 10.548 1650 14.197 10.493 1650 14.208 10.442 1650 14.238 10.391 1650 14.274 10.336 1650 14.324 10.302 1650 14.377 10.289 1650 14.422 10.237 1650 14.439 10.187 1650 14.465 10.136 1650 14.516 10.101 1650 14.569 10.063 1650 14.608 10.009 1650 14.615 9.957 1650 14.665 9.933 1650 14.694 9.879 1650 14.735 9.827 1650 14.755 9.773 1650 14.805 9.739 1650 14.855 9.727 1650 14.905 9.722 1650 14.954 9.672 1650 14.952 9.617 1650 14.969 9.566 1650 15.008 9.514 1650 15.061 9.486 1650 15.114 9.457 1650 15.156 9.406 1650 15.179 9.352 1650 15.198 9.301 1650 15.193 9.248 1650 15.165 9.197 1650 15.126 9.142 1650 15.081 9.090 1650 15.046 9.036 1650 15.019 8.984 1650 15.070 8.948 1650 15.122 8.966 1650 15.175 9.005 1650 15.228 9.047 1650 15.280 9.068 1650 15.331 9.088 1650 15.382 9.097 1650 15.404 9.098 1650 15.434 9.094 1650 15.484 9.046 1650 15.515 8.994 1650 15.539 8.943 1650 15.555 8.890 1650 15.558 8.878 1650 15.540 8.834 1650 15.522 8.780 1650 15.503 8.722 1650 15.485 8.672 1650 15.476 8.620 1650 15.466 8.569 1650 15.459 8.518 1650 15.466 8.467 1650 15.516 8.432 1650 15.567 8.413 1650 15.618 8.398 1650 15.670 8.372 1650 15.701 8.318 1650 15.732 8.264 1650 15.765 8.211 1650 15.806 8.160 1650 15.852 8.109 1650 15.903 8.059 1650 15.939 8.004 1650 15.975 7.948 1650 16.008 7.896 1650 16.054 7.842 1650 16.108 7.791 1650 16.162 7.741 1650 16.204 7.687 1650 16.234 7.634 1650 16.257 7.581 1650 16.264 7.531 1650 16.271 7.480 1650 16.282 7.430 1650 16.294 7.378 1650 16.307 7.323 1650 16.328 7.268 1650 16.349 7.216 1650 16.367 7.162 1650 16.382 7.108 1650 16.392 7.056 1650 16.402 7.004 1650 16.417 6.952 1650 16.432 6.900 1650 16.446 6.849 1650 16.459 6.794 1650 16.482 6.738 1650 16.503 6.686 1650 16.532 6.633 1650 16.575 6.581 1650 16.626 6.543 1650 16.677 6.513 1650 16.727 6.459 1650 16.775 6.405 1650 16.828 6.372 1650 16.880 6.344 1650 16.931 6.319 1650 16.984 6.295 1650 17.035 6.262 1650 17.089 6.215 1650 17.127 6.165 1650 17.150 6.112 1650 17.173 6.060 1650 17.223 6.011 1650 17.251 5.961 1650 17.304 5.933 1650 17.332 5.882 1650 17.330 5.828 1650 17.334 5.776 1650 17.385 5.732 1650 11.402 3.305 1675 11.400 3.305 1675 11.350 3.342 1675 11.299 3.380 1675 11.248 3.405 1675 11.197 3.413 1675 11.143 3.427 1675 11.093 3.442 1675 11.043 3.456 1675 10.993 3.469 1675 10.939 3.485 1675 10.889 3.503 1675 10.835 3.525 1675 10.781 3.561 1675 10.727 3.605 1675 10.674 3.654 1675 10.623 3.701 1675 10.573 3.748 1675 10.523 3.793 1675 10.476 3.840 1675 10.471 3.840 1675 10.418 3.885 1675 10.368 3.927 1675 10.314 3.960 1675 10.264 4.011 1675 10.228 4.063 1675 10.190 4.115 1675 10.145 4.166 1675 10.103 4.221 1675 10.070 4.275 1675 10.044 4.326 1675 10.022 4.377 1675 10.000 4.427 1675 9.965 4.481 1675 9.927 4.535 1675 9.883 4.588 1675 9.856 4.642 1675 9.835 4.694 1675 9.817 4.745 1675 9.798 4.796 1675 9.782 4.847 1675 9.771 4.897 1675 9.768 4.950 1675 9.773 4.990 1675 9.771 5.001 1675 9.769 5.055 1675 9.787 5.108 1675 9.822 5.161 1675 9.872 5.205 1675 9.924 5.248 1675 9.979 5.299 1675 10.033 5.353 1675 10.088 5.398 1675 10.144 5.436 1675 10.197 5.472 1675 10.249 5.504 1675 10.304 5.540 1675 10.356 5.571 1675 10.415 5.619 1675 10.466 5.660 1675 10.522 5.699 1675 10.576 5.736 1675 10.626 5.766 1675 10.677 5.795 1675 10.727 5.822 1675 10.779 5.854 1675 10.829 5.888 1675 10.835 5.940 1675 10.807 5.993 1675 10.752 6.040 1675 10.698 6.094 1675 10.666 6.145 1675 10.643 6.202 1675 10.624 6.262 1675 10.618 6.317 1675 10.621 6.369 1675 10.624 6.429 1675 10.612 6.486 1675 10.590 6.540 1675 10.552 6.593 1675 10.504 6.646 1675 10.453 6.687 1675 10.399 6.725 1675 10.346 6.775 1675 10.305 6.828 1675 10.265 6.878 1675 10.228 6.928 1675 10.190 6.982 1675 10.154 7.038 1675 10.115 7.094 1675 10.073 7.148 1675 10.034 7.202 1675 10.003 7.257 1675 9.974 7.310 1675 9.945 7.362 1675 9.920 7.417 1675 9.893 7.473 1675 9.867 7.526 1675 9.876 7.584 1675 9.894 7.637 1675 9.928 7.687 1675 9.966 7.739 1675 9.948 7.789 1675 9.921 7.841 1675 9.913 7.894 1675 9.922 7.946 1675 9.950 7.999 1675 9.990 8.049 1675 10.012 8.105 1675 9.990 8.155 1675 9.962 8.210 1675 9.941 8.261 1675 9.916 8.316 1675 9.885 8.368 1675 9.834 8.419 1675 9.784 8.470 1675 9.747 8.521 1675 9.708 8.571 1675 9.654 8.618 1675 9.620 8.672 1675 9.601 8.726 1675 9.588 8.776 1675 9.563 8.829 1675 9.512 8.867 1675 9.460 8.907 1675 9.407 8.934 1675 9.377 8.946 1675 9.355 8.982 1675 9.305 9.012 1675 9.270 9.062 1675 9.261 9.115 1675 9.261 9.145 1675 9.261 9.165 1675 9.249 9.215 1675 9.223 9.267 1675 9.216 9.318 1675 9.229 9.369 1675 9.236 9.422 1675 9.230 9.472 1675 9.211 9.524 1675 9.184 9.576 1675 9.156 9.627 1675 9.117 9.678 1675 9.067 9.731 1675 9.016 9.784 1675 8.972 9.836 1675 8.932 9.886 1675 8.895 9.938 1675 8.861 9.989 1675 8.828 10.027 1675 8.818 10.043 1675 8.780 10.095 1675 8.775 10.149 1675 8.778 10.200 1675 8.776 10.250 1675 8.766 10.302 1675 8.762 10.352 1675 8.755 10.406 1675 8.760 10.458 1675 8.768 10.512 1675 8.775 10.556 1675 8.774 10.562 1675 8.757 10.612 1675 8.734 10.664 1675 8.713 10.714 1675 8.711 10.720 1675 8.694 10.764 1675 8.675 10.817 1675 8.658 10.871 1675 8.641 10.925 1675 8.638 10.976 1675 8.637 11.028 1675 8.643 11.081 1675 8.647 11.134 1675 8.648 11.187 1675 8.643 11.238 1675 8.623 11.289 1675 8.592 11.345 1675 8.570 11.399 1675 8.554 11.452 1675 8.557 11.506 1675 8.566 11.558 1675 8.573 11.608 1675 8.574 11.658 1675 8.562 11.712 1675 8.551 11.768 1675 8.543 11.819 1675 8.539 11.871 1675 8.550 11.923 1675 8.578 11.974 1675 8.630 12.017 1675 8.683 12.059 1675 8.728 12.109 1675 8.760 12.161 1675 8.798 12.212 1675 8.819 12.263 1675 8.818 12.263 1675 8.842 12.315 1675 8.880 12.365 1675 8.875 12.416 1675 8.868 12.467 1675 8.869 12.520 1675 8.873 12.572 1675 8.874 12.624 1675 8.872 12.675 1675 8.878 12.725 1675 8.896 12.775 1675 8.905 12.793 1675 8.919 12.828 1675 8.942 12.879 1675 8.982 12.933 1675 9.016 12.983 1675 9.048 13.036 1675 9.076 13.089 1675 9.112 13.139 1675 9.144 13.189 1675 9.180 13.241 1675 9.225 13.291 1675 9.275 13.323 1675 9.325 13.348 1675 9.375 13.375 1675 9.427 13.402 1675 9.481 13.434 1675 9.534 13.470 1675 9.590 13.512 1675 9.640 13.553 1675 9.694 13.589 1675 9.744 13.611 1675 9.796 13.627 1675 9.846 13.639 1675 9.900 13.660 1675 9.953 13.683 1675 10.009 13.706 1675 10.066 13.730 1675 10.117 13.741 1675 10.170 13.754 1675 10.222 13.762 1675 10.275 13.767 1675 10.326 13.760 1675 10.379 13.752 1675 10.433 13.750 1675 10.483 13.748 1675 10.537 13.748 1675 10.588 13.737 1675 10.641 13.717 1675 10.693 13.703 1675 10.746 13.691 1675 10.800 13.690 1675 10.852 13.692 1675 10.908 13.691 1675 10.963 13.692 1675 11.017 13.688 1675 11.068 13.684 1675 11.120 13.683 1675 11.171 13.681 1675 11.222 13.678 1675 11.277 13.673 1675 11.329 13.654 1675 11.383 13.631 1675 11.435 13.622 1675 11.489 13.610 1675 11.543 13.589 1675 11.598 13.565 1675 11.654 13.544 1675 11.711 13.518 1675 11.761 13.489 1675 11.815 13.466 1675 11.872 13.439 1675 11.925 13.415 1675 11.976 13.395 1675 12.027 13.376 1675 12.080 13.355 1675 12.134 13.329 1675 12.187 13.285 1675 12.240 13.248 1675 12.296 13.217 1675 12.353 13.184 1675 12.408 13.164 1675 12.459 13.151 1675 12.511 13.129 1675 12.562 13.110 1675 12.612 13.093 1675 12.665 13.074 1675 12.715 13.057 1675 12.766 13.039 1675 12.787 13.010 1675 12.820 12.988 1675 12.871 12.943 1675 12.894 12.891 1675 12.922 12.838 1675 12.953 12.786 1675 12.988 12.734 1675 13.041 12.686 1675 13.095 12.637 1675 13.147 12.597 1675 13.168 12.544 1675 13.218 12.516 1675 13.271 12.467 1675 13.325 12.458 1675 13.377 12.463 1675 13.428 12.455 1675 13.482 12.445 1675 13.533 12.423 1675 13.569 12.371 1675 13.594 12.318 1675 13.620 12.263 1675 13.624 12.207 1675 13.613 12.154 1675 13.608 12.104 1675 13.625 12.052 1675 13.654 12.001 1675 13.673 11.948 1675 13.699 11.895 1675 13.720 11.842 1675 13.720 11.789 1675 13.719 11.738 1675 13.726 11.686 1675 13.743 11.632 1675 13.757 11.579 1675 13.765 11.526 1675 13.768 11.476 1675 13.784 11.425 1675 13.800 11.369 1675 13.801 11.319 1675 13.805 11.267 1675 13.811 11.217 1675 13.855 11.167 1675 13.905 11.134 1675 13.947 11.083 1675 13.969 11.030 1675 14.010 10.980 1675 14.060 10.972 1675 14.111 10.987 1675 14.161 10.987 1675 14.213 10.984 1675 14.263 10.952 1675 14.315 10.901 1675 14.342 10.849 1675 14.358 10.795 1675 14.374 10.743 1675 14.389 10.688 1675 14.398 10.634 1675 14.401 10.584 1675 14.409 10.531 1675 14.424 10.477 1675 14.448 10.425 1675 14.475 10.372 1675 14.497 10.321 1675 14.525 10.270 1675 14.577 10.238 1675 14.630 10.218 1675 14.681 10.209 1675 14.732 10.198 1675 14.782 10.149 1675 14.827 10.097 1675 14.877 10.081 1675 14.929 10.048 1675 14.980 10.003 1675 15.034 9.974 1675 15.087 9.939 1675 15.132 9.888 1675 15.157 9.836 1675 15.180 9.784 1675 15.211 9.732 1675 15.246 9.680 1675 15.292 9.630 1675 15.339 9.580 1675 15.379 9.529 1675 15.432 9.506 1675 15.483 9.498 1675 15.534 9.479 1675 15.585 9.431 1675 15.559 9.391 1675 15.569 9.379 1675 15.613 9.326 1675 15.634 9.269 1675 15.665 9.217 1675 15.697 9.165 1675 15.715 9.140 1675 15.720 9.114 1675 15.720 9.061 1675 15.704 9.008 1675 15.697 8.952 1675 15.689 8.898 1675 15.673 8.845 1675 15.668 8.794 1675 15.667 8.741 1675 15.671 8.688 1675 15.679 8.637 1675 15.694 8.584 1675 15.713 8.526 1675 15.744 8.471 1675 15.784 8.417 1675 15.828 8.364 1675 15.878 8.315 1675 15.920 8.264 1675 15.958 8.210 1675 15.982 8.160 1675 16.005 8.110 1675 16.028 8.059 1675 16.066 8.009 1675 16.120 7.982 1675 16.171 7.950 1675 16.215 7.898 1675 16.255 7.843 1675 16.288 7.788 1675 16.311 7.734 1675 16.329 7.680 1675 16.344 7.626 1675 16.374 7.574 1675 16.398 7.521 1675 16.405 7.466 1675 16.408 7.413 1675 16.425 7.358 1675 16.444 7.300 1675 16.459 7.248 1675 16.471 7.197 1675 16.485 7.145 1675 16.516 7.095 1675 16.546 7.044 1675 16.553 6.990 1675 16.563 6.934 1675 16.582 6.882 1675 16.596 6.832 1675 16.613 6.781 1675 16.641 6.726 1675 16.690 6.674 1675 16.743 6.628 1675 16.797 6.578 1675 16.838 6.524 1675 16.891 6.486 1675 16.945 6.477 1675 17.000 6.458 1675 17.053 6.430 1675 17.104 6.392 1675 17.143 6.340 1675 17.186 6.288 1675 17.215 6.236 1675 17.267 6.185 1675 17.315 6.134 1675 17.323 6.083 1675 17.362 6.033 1675 17.415 6.008 1675 11.074 3.289 1700 11.073 3.289 1700 11.023 3.312 1700 10.969 3.329 1700 10.916 3.337 1700 10.865 3.360 1700 10.813 3.383 1700 10.760 3.409 1700 10.710 3.437 1700 10.660 3.471 1700 10.606 3.516 1700 10.557 3.570 1700 10.513 3.624 1700 10.463 3.673 1700 10.413 3.712 1700 10.359 3.746 1700 10.309 3.781 1700 10.258 3.820 1700 10.207 3.866 1700 10.163 3.917 1700 10.115 3.969 1700 10.063 4.015 1700 10.057 4.021 1700 10.010 4.051 1700 9.959 4.104 1700 9.914 4.156 1700 9.871 4.207 1700 9.826 4.261 1700 9.795 4.312 1700 9.764 4.365 1700 9.729 4.418 1700 9.697 4.473 1700 9.674 4.526 1700 9.647 4.580 1700 9.623 4.633 1700 9.605 4.687 1700 9.591 4.738 1700 9.580 4.789 1700 9.573 4.842 1700 9.570 4.892 1700 9.571 4.943 1700 9.571 4.945 1700 9.570 4.995 1700 9.600 5.045 1700 9.652 5.100 1700 9.692 5.155 1700 9.726 5.208 1700 9.772 5.263 1700 9.822 5.316 1700 9.873 5.355 1700 9.924 5.398 1700 9.975 5.440 1700 10.028 5.491 1700 10.079 5.539 1700 10.134 5.587 1700 10.186 5.627 1700 10.238 5.661 1700 10.295 5.701 1700 10.350 5.745 1700 10.400 5.789 1700 10.450 5.832 1700 10.505 5.873 1700 10.556 5.908 1700 10.596 5.959 1700 10.584 6.010 1700 10.553 6.061 1700 10.517 6.115 1700 10.491 6.171 1700 10.484 6.224 1700 10.470 6.277 1700 10.451 6.329 1700 10.427 6.386 1700 10.396 6.440 1700 10.364 6.490 1700 10.332 6.541 1700 10.299 6.597 1700 10.257 6.650 1700 10.209 6.700 1700 10.163 6.754 1700 10.121 6.809 1700 10.088 6.859 1700 10.049 6.912 1700 10.021 6.962 1700 9.967 7.015 1700 9.920 7.069 1700 9.905 7.122 1700 9.893 7.178 1700 9.873 7.230 1700 9.833 7.284 1700 9.785 7.336 1700 9.746 7.390 1700 9.718 7.445 1700 9.694 7.497 1700 9.681 7.551 1700 9.673 7.607 1700 9.664 7.657 1700 9.658 7.711 1700 9.653 7.766 1700 9.648 7.819 1700 9.645 7.873 1700 9.640 7.928 1700 9.634 7.983 1700 9.624 8.033 1700 9.617 8.087 1700 9.624 8.145 1700 9.638 8.196 1700 9.672 8.250 1700 9.725 8.299 1700 9.768 8.351 1700 9.715 8.395 1700 9.677 8.432 1700 9.665 8.432 1700 9.613 8.486 1700 9.572 8.539 1700 9.526 8.591 1700 9.485 8.641 1700 9.433 8.688 1700 9.382 8.704 1700 9.329 8.739 1700 9.279 8.764 1700 9.228 8.792 1700 9.176 8.822 1700 9.123 8.862 1700 9.079 8.913 1700 9.054 8.964 1700 9.038 9.016 1700 9.036 9.066 1700 9.047 9.116 1700 9.055 9.143 1700 9.063 9.169 1700 9.069 9.221 1700 9.049 9.271 1700 9.082 9.321 1700 9.108 9.372 1700 9.105 9.423 1700 9.077 9.476 1700 9.054 9.531 1700 9.017 9.581 1700 8.966 9.619 1700 8.938 9.671 1700 8.919 9.721 1700 8.883 9.771 1700 8.832 9.806 1700 8.784 9.859 1700 8.733 9.908 1700 8.683 9.949 1700 8.651 10.002 1700 8.634 10.053 1700 8.633 10.107 1700 8.638 10.161 1700 8.637 10.212 1700 8.632 10.265 1700 8.611 10.318 1700 8.585 10.369 1700 8.581 10.378 1700 8.560 10.422 1700 8.540 10.472 1700 8.523 10.523 1700 8.511 10.573 1700 8.502 10.627 1700 8.492 10.680 1700 8.483 10.732 1700 8.464 10.788 1700 8.445 10.841 1700 8.426 10.892 1700 8.406 10.942 1700 8.385 10.995 1700 8.367 11.047 1700 8.346 11.100 1700 8.322 11.156 1700 8.297 11.208 1700 8.274 11.265 1700 8.263 11.317 1700 8.254 11.369 1700 8.247 11.423 1700 8.241 11.477 1700 8.235 11.530 1700 8.226 11.587 1700 8.223 11.641 1700 8.219 11.692 1700 8.214 11.743 1700 8.214 11.801 1700 8.214 11.858 1700 8.215 11.912 1700 8.214 11.963 1700 8.215 12.014 1700 8.228 12.064 1700 8.278 12.100 1700 8.330 12.123 1700 8.381 12.130 1700 8.432 12.131 1700 8.484 12.138 1700 8.511 12.149 1700 8.536 12.169 1700 8.590 12.201 1700 8.637 12.254 1700 8.665 12.307 1700 8.655 12.358 1700 8.624 12.409 1700 8.617 12.460 1700 8.615 12.458 1700 8.592 12.512 1700 8.573 12.564 1700 8.559 12.617 1700 8.554 12.673 1700 8.554 12.724 1700 8.563 12.779 1700 8.588 12.831 1700 8.625 12.886 1700 8.664 12.940 1700 8.700 12.994 1700 8.720 13.046 1700 8.725 13.097 1700 8.747 13.148 1700 8.798 13.200 1700 8.812 13.251 1700 8.827 13.301 1700 8.845 13.353 1700 8.865 13.408 1700 8.887 13.463 1700 8.903 13.516 1700 8.936 13.567 1700 8.981 13.617 1700 9.033 13.658 1700 9.083 13.691 1700 9.134 13.727 1700 9.184 13.764 1700 9.234 13.795 1700 9.285 13.827 1700 9.336 13.858 1700 9.386 13.884 1700 9.438 13.903 1700 9.490 13.920 1700 9.546 13.939 1700 9.599 13.956 1700 9.650 13.969 1700 9.700 13.984 1700 9.752 14.001 1700 9.803 14.015 1700 9.854 14.028 1700 9.905 14.053 1700 9.963 14.088 1700 10.017 14.117 1700 10.071 14.154 1700 10.123 14.195 1700 10.174 14.236 1700 10.227 14.271 1700 10.281 14.295 1700 10.334 14.302 1700 10.386 14.304 1700 10.439 14.296 1700 10.491 14.282 1700 10.546 14.279 1700 10.600 14.282 1700 10.654 14.289 1700 10.705 14.296 1700 10.760 14.289 1700 10.815 14.276 1700 10.867 14.260 1700 10.919 14.243 1700 10.974 14.236 1700 11.030 14.225 1700 11.088 14.218 1700 11.144 14.217 1700 11.195 14.221 1700 11.250 14.218 1700 11.302 14.207 1700 11.356 14.190 1700 11.411 14.163 1700 11.463 14.128 1700 11.517 14.097 1700 11.570 14.067 1700 11.621 14.039 1700 11.675 14.007 1700 11.726 13.984 1700 11.778 13.968 1700 11.828 13.960 1700 11.879 13.953 1700 11.931 13.942 1700 11.981 13.922 1700 12.032 13.871 1700 12.082 13.835 1700 12.135 13.796 1700 12.188 13.754 1700 12.242 13.713 1700 12.298 13.681 1700 12.351 13.647 1700 12.405 13.611 1700 12.459 13.576 1700 12.510 13.539 1700 12.564 13.495 1700 12.617 13.455 1700 12.673 13.426 1700 12.727 13.413 1700 12.781 13.406 1700 12.832 13.393 1700 12.882 13.372 1700 12.933 13.353 1700 12.983 13.331 1700 13.033 13.302 1700 13.034 13.298 1700 13.084 13.269 1700 13.136 13.225 1700 13.165 13.171 1700 13.193 13.120 1700 13.216 13.068 1700 13.235 13.015 1700 13.249 12.963 1700 13.262 12.910 1700 13.278 12.860 1700 13.314 12.805 1700 13.368 12.780 1700 13.418 12.745 1700 13.473 12.712 1700 13.530 12.674 1700 13.583 12.636 1700 13.634 12.587 1700 13.687 12.538 1700 13.737 12.489 1700 13.786 12.438 1700 13.818 12.383 1700 13.822 12.328 1700 13.821 12.274 1700 13.822 12.223 1700 13.822 12.169 1700 13.856 12.119 1700 13.894 12.067 1700 13.902 12.014 1700 13.907 11.958 1700 13.916 11.902 1700 13.921 11.847 1700 13.921 11.796 1700 13.920 11.739 1700 13.920 11.688 1700 13.921 11.638 1700 13.935 11.585 1700 13.987 11.547 1700 14.039 11.543 1700 14.093 11.510 1700 14.144 11.457 1700 14.191 11.404 1700 14.228 11.351 1700 14.261 11.299 1700 14.300 11.249 1700 14.352 11.227 1700 14.404 11.207 1700 14.455 11.160 1700 14.478 11.110 1700 14.486 11.057 1700 14.497 11.003 1700 14.505 10.949 1700 14.505 10.899 1700 14.509 10.843 1700 14.519 10.792 1700 14.531 10.740 1700 14.542 10.684 1700 14.550 10.629 1700 14.560 10.576 1700 14.576 10.522 1700 14.594 10.472 1700 14.612 10.420 1700 14.647 10.369 1700 14.699 10.328 1700 14.750 10.318 1700 14.803 10.331 1700 14.854 10.335 1700 14.905 10.286 1700 14.956 10.283 1700 15.007 10.261 1700 15.044 10.208 1700 15.095 10.165 1700 15.149 10.126 1700 15.200 10.094 1700 15.250 10.071 1700 15.303 10.047 1700 15.354 10.019 1700 15.394 9.967 1700 15.415 9.916 1700 15.445 9.865 1700 15.497 9.835 1700 15.549 9.834 1700 15.603 9.818 1700 15.652 9.767 1700 15.673 9.717 1700 15.699 9.667 1700 15.743 9.615 1700 15.794 9.573 1700 15.798 9.559 1700 15.818 9.519 1700 15.835 9.464 1700 15.849 9.412 1700 15.865 9.358 1700 15.856 9.323 1700 15.862 9.302 1700 15.867 9.250 1700 15.868 9.198 1700 15.865 9.144 1700 15.859 9.093 1700 15.849 9.043 1700 15.835 8.992 1700 15.824 8.941 1700 15.813 8.888 1700 15.811 8.833 1700 15.812 8.779 1700 15.814 8.724 1700 15.819 8.672 1700 15.828 8.615 1700 15.845 8.564 1700 15.868 8.513 1700 15.909 8.462 1700 15.953 8.410 1700 16.000 8.358 1700 16.049 8.308 1700 16.088 8.257 1700 16.108 8.203 1700 16.117 8.152 1700 16.148 8.100 1700 16.203 8.063 1700 16.254 8.024 1700 16.305 7.981 1700 16.354 7.930 1700 16.387 7.878 1700 16.409 7.825 1700 16.424 7.771 1700 16.443 7.713 1700 16.470 7.659 1700 16.513 7.608 1700 16.544 7.557 1700 16.557 7.502 1700 16.560 7.449 1700 16.567 7.396 1700 16.586 7.343 1700 16.617 7.290 1700 16.654 7.236 1700 16.672 7.185 1700 16.679 7.133 1700 16.692 7.078 1700 16.713 7.026 1700 16.747 6.975 1700 16.800 6.930 1700 16.855 6.890 1700 16.898 6.838 1700 16.902 6.787 1700 16.918 6.735 1700 16.955 6.681 1700 17.007 6.660 1700 17.062 6.646 1700 17.112 6.598 1700 17.167 6.577 1700 17.183 6.525 1700 17.220 6.472 1700 17.270 6.435 1700 17.316 6.380 1700 17.335 6.324 1700 17.357 6.271 1700 17.387 6.217 1700 17.422 6.167 1700 10.646 3.299 1725 10.645 3.299 1725 10.601 3.350 1725 10.550 3.403 1725 10.500 3.456 1725 10.445 3.505 1725 10.399 3.560 1725 10.349 3.614 1725 10.297 3.658 1725 10.245 3.685 1725 10.195 3.709 1725 10.144 3.738 1725 10.090 3.776 1725 10.037 3.815 1725 9.987 3.854 1725 9.933 3.889 1725 9.883 3.926 1725 9.831 3.980 1725 9.780 4.033 1725 9.738 4.085 1725 9.691 4.136 1725 9.650 4.189 1725 9.610 4.240 1725 9.573 4.295 1725 9.540 4.350 1725 9.509 4.405 1725 9.484 4.460 1725 9.460 4.513 1725 9.439 4.565 1725 9.427 4.620 1725 9.419 4.672 1725 9.415 4.725 1725 9.411 4.779 1725 9.413 4.833 1725 9.422 4.888 1725 9.431 4.940 1725 9.439 4.994 1725 9.445 5.045 1725 9.452 5.096 1725 9.459 5.149 1725 9.462 5.202 1725 9.412 5.218 1725 9.357 5.209 1725 9.305 5.177 1725 9.255 5.137 1725 9.212 5.083 1725 9.162 5.031 1725 9.108 4.993 1725 9.056 4.949 1725 9.006 4.915 1725 8.961 4.862 1725 8.931 4.809 1725 8.910 4.753 1725 8.901 4.701 1725 8.890 4.646 1725 8.882 4.595 1725 8.888 4.541 1725 8.903 4.488 1725 8.920 4.436 1725 8.949 4.382 1725 8.989 4.331 1725 9.028 4.278 1725 9.063 4.224 1725 9.098 4.169 1725 9.117 4.116 1725 9.120 4.062 1725 9.108 4.011 1725 9.086 3.957 1725 9.060 3.904 1725 9.027 3.850 1725 8.999 3.799 1725 8.977 3.747 1725 8.955 3.694 1725 8.941 3.640 1725 8.929 3.590 1725 10.429 3.325 1750 10.428 3.325 1750 10.392 3.377 1750 10.359 3.430 1750 10.304 3.481 1750 10.248 3.524 1750 10.191 3.558 1750 10.135 3.598 1750 10.083 3.630 1750 10.033 3.657 1750 9.983 3.692 1750 9.933 3.725 1750 9.881 3.756 1750 9.826 3.796 1750 9.775 3.840 1750 9.729 3.890 1750 9.678 3.943 1750 9.638 3.994 1750 9.599 4.048 1750 9.565 4.100 1750 9.524 4.152 1750 9.484 4.204 1750 9.444 4.257 1750 9.410 4.309 1750 9.379 4.359 1750 9.352 4.413 1750 9.333 4.464 1750 9.321 4.518 1750 9.305 4.571 1750 9.302 4.623 1750 9.299 4.674 1750 9.293 4.728 1750 9.288 4.781 1750 9.284 4.834 1750 9.283 4.888 1750 9.286 4.941 1750 9.284 4.995 1750 9.234 4.977 1750 9.182 4.926 1750 9.143 4.873 1750 9.110 4.822 1750 9.076 4.768 1750 9.054 4.718 1750 9.037 4.665 1750 9.027 4.609 1750 9.026 4.555 1750 9.036 4.503 1750 9.062 4.451 1750 9.104 4.397 1750 9.142 4.347 1750 9.174 4.292 1750 9.202 4.239 1750 9.227 4.187 1750 9.244 4.131 1750 9.255 4.075 1750 9.263 4.024 1750 9.267 3.971 1750 9.262 3.916 1750 9.238 3.859 1750 9.212 3.808 1750 9.180 3.754 1750 9.133 3.700 1750 9.103 3.649 1750 9.081 3.595 1750 9.068 3.544 1750 9.055 3.486 1750 9.044 3.434 1750 9.038 3.382 1750 9.036 3.326 1750 10.210 3.332 1775 10.210 3.332 1775 10.208 3.386 1775 10.183 3.438 1775 10.130 3.464 1775 10.079 3.490 1775 10.026 3.520 1775 9.975 3.547 1775 9.924 3.573 1775 9.873 3.605 1775 9.820 3.651 1775 9.771 3.704 1775 9.720 3.743 1775 9.672 3.797 1775 9.641 3.848 1775 9.607 3.901 1775 9.566 3.952 1775 9.516 3.994 1775 9.465 4.018 1775 9.415 3.982 1775 9.391 3.931 1775 9.377 3.879 1775 9.365 3.822 1775 9.350 3.766 1775 9.323 3.715 1775 9.292 3.662 1775 9.261 3.601 1775 9.238 3.546 1775 9.219 3.494 1775 9.205 3.440 1775 9.189 3.386 1775 9.175 3.333 1775 9.984 3.344 1800 9.983 3.344 1800 9.938 3.396 1800 9.886 3.435 1800 9.835 3.457 1800 9.782 3.490 1800 9.731 3.526 1800 9.683 3.581 1800 9.639 3.633 1800 9.596 3.684 1800 9.552 3.735 1800 9.502 3.722 1800 9.457 3.667 1800 9.423 3.614 1800 9.388 3.563 1800 9.353 3.510 1800 9.336 3.456 1800 9.311 3.402 1800 9.303 3.351 1800 9.794 3.326 1825 9.794 3.326 1825 9.741 3.352 1825 9.691 3.392 1825 9.643 3.446 1825 9.605 3.498 1825 9.553 3.535 1825 9.510 3.483 1825 9.467 3.428 1825 9.452 3.373 1825 8.779 3.834 1700 8.778 3.834 1700 8.795 3.888 1700 8.820 3.939 1700 8.842 3.993 1700 8.849 4.049 1700 8.849 4.103 1700 8.848 4.157 1700 8.828 4.210 1700 8.786 4.261 1700 8.738 4.312 1700 8.702 4.364 1700 8.690 4.416 1700 8.699 4.470 1700 8.691 4.524 1700 8.671 4.581 1700 8.673 4.639 1700 8.686 4.693 1700 8.707 4.749 1700 8.729 4.805 1700 8.758 4.860 1700 8.795 4.912 1700 8.845 4.964 1700 8.899 5.010 1700 8.949 5.055 1700 9.001 5.090 1700 9.053 5.125 1700 9.109 5.176 1700 9.164 5.228 1700 9.216 5.265 1700 9.270 5.305 1700 9.323 5.340 1700 9.377 5.367 1700 9.428 5.393 1700 9.481 5.423 1700 9.534 5.459 1700 9.527 5.510 1700 9.491 5.561 1700 9.439 5.605 1700 9.388 5.658 1700 9.368 5.709 1700 9.355 5.765 1700 9.339 5.818 1700 9.325 5.869 1700 9.309 5.923 1700 9.295 5.975 1700 9.279 6.031 1700 9.268 6.087 1700 9.256 6.144 1700 9.251 6.198 1700 9.241 6.251 1700 9.228 6.302 1700 9.214 6.353 1700 9.201 6.405 1700 9.185 6.463 1700 9.176 6.514 1700 9.165 6.567 1700 9.151 6.618 1700 9.124 6.673 1700 9.101 6.724 1700 9.071 6.778 1700 9.041 6.833 1700 9.005 6.888 1700 8.962 6.941 1700 8.915 6.994 1700 8.865 7.048 1700 8.813 7.095 1700 8.759 7.130 1700 8.706 7.161 1700 8.650 7.185 1700 8.600 7.209 1700 8.550 7.226 1700 8.498 7.239 1700 8.447 7.254 1700 8.979 5.211 1675 8.813 5.170 1675 8.866 5.210 1675 8.919 5.228 1675 8.970 5.248 1675 9.021 5.281 1675 9.074 5.323 1675 9.116 5.373 1675 9.141 5.430 1675 9.161 5.480 1675 9.183 5.530 1675 9.204 5.583 1675 9.214 5.635 1675 9.238 5.690 1675 9.242 5.741 1675 9.223 5.794 1675 9.194 5.850 1675 9.175 5.902 1675 9.153 5.954 1675 9.141 6.006 1675 9.141 6.061 1675 9.137 6.112 1675 9.130 6.162 1675 9.122 6.218 1675 9.112 6.268 1675 9.100 6.318 1675 9.086 6.369 1675 9.071 6.420 1675 9.054 6.472 1675 9.035 6.523 1675 9.010 6.574 1675 8.986 6.624 1675 8.954 6.678 1675 8.929 6.731 1675 8.894 6.782 1675 8.849 6.833 1675 8.795 6.887 1675 8.745 6.917 1675 8.218 7.470 1725 8.217 7.470 1725 8.270 7.439 1725 8.321 7.414 1725 8.372 7.404 1725 8.422 7.388 1725 8.473 7.369 1725 8.526 7.359 1725 8.583 7.346 1725 8.640 7.326 1725 8.691 7.305 1725 8.744 7.283 1725 8.799 7.261 1725 8.850 7.241 1725 8.903 7.212 1725 8.955 7.162 1725 9.000 7.109 1725 9.049 7.057 1725 9.086 7.001 1725 9.116 6.946 1725 9.147 6.895 1725 9.178 6.842 1725 9.211 6.791 1725 9.242 6.736 1725 9.271 6.686 1725 9.296 6.634 1725 9.319 6.583 1725 9.344 6.528 1725 9.365 6.474 1725 9.382 6.418 1725 9.397 6.359 1725 9.411 6.309 1725 9.429 6.255 1725 9.443 6.205 1725 9.450 6.154 1725 9.457 6.102 1725 9.460 6.048 1725 9.462 5.994 1725 9.470 5.936 1725 9.480 5.880 1725 9.486 5.829 1725 9.514 5.779 1725 9.566 5.734 1725 9.613 5.683 1725 9.640 5.628 1725 9.665 5.574 1725 9.690 5.523 1725 9.711 5.472 1725 9.762 5.466 1725 9.818 5.485 1725 9.874 5.514 1725 9.928 5.547 1725 9.984 5.585 1725 10.035 5.627 1725 10.082 5.680 1725 10.134 5.734 1725 10.186 5.787 1725 10.239 5.840 1725 10.292 5.885 1725 10.344 5.914 1725 10.396 5.954 1725 10.397 6.008 1725 10.366 6.061 1725 10.349 6.111 1725 10.343 6.162 1725 10.344 6.217 1725 10.335 6.268 1725 10.322 6.323 1725 10.304 6.373 1725 10.272 6.424 1725 10.237 6.479 1725 10.195 6.534 1725 10.149 6.587 1725 10.096 6.641 1725 10.055 6.692 1725 10.020 6.744 1725 9.987 6.800 1725 9.957 6.850 1725 9.919 6.905 1725 9.865 6.957 1725 9.813 7.009 1725 9.771 7.062 1725 9.740 7.118 1725 9.710 7.170 1725 9.683 7.225 1725 9.659 7.277 1725 9.627 7.329 1725 9.596 7.385 1725 9.572 7.439 1725 9.552 7.492 1725 9.525 7.547 1725 9.503 7.599 1725 9.486 7.652 1725 9.467 7.707 1725 9.453 7.758 1725 9.439 7.812 1725 9.428 7.867 1725 9.426 7.923 1725 9.425 7.974 1725 9.426 8.030 1725 9.429 8.082 1725 9.430 8.134 1725 9.427 8.171 1725 9.424 8.185 1725 9.403 8.239 1725 9.375 8.291 1725 9.323 8.339 1725 9.274 8.390 1725 9.228 8.444 1725 9.194 8.495 1725 9.150 8.545 1725 9.100 8.577 1725 9.049 8.613 1725 8.996 8.651 1725 8.950 8.705 1725 8.948 8.704 1725 8.900 8.751 1725 8.873 8.803 1725 8.852 8.856 1725 8.847 8.909 1725 8.860 8.964 1725 8.879 9.015 1725 8.895 9.066 1725 8.892 9.116 1725 8.887 9.167 1725 8.888 9.218 1725 8.900 9.270 1725 8.924 9.321 1725 8.938 9.372 1725 8.942 9.422 1725 8.934 9.473 1725 8.893 9.526 1725 8.841 9.553 1725 8.804 9.608 1725 8.803 9.659 1725 8.752 9.694 1725 8.708 9.745 1725 8.658 9.787 1725 8.607 9.825 1725 8.557 9.869 1725 8.516 9.908 1725 8.503 9.914 1725 8.460 9.965 1725 8.452 10.016 1725 8.458 10.067 1725 8.471 10.119 1725 8.478 10.144 1725 8.481 10.169 1725 8.491 10.224 1725 8.492 10.274 1725 8.478 10.324 1725 8.472 10.331 1725 8.427 10.362 1725 8.392 10.417 1725 8.359 10.467 1725 8.337 10.519 1725 8.318 10.570 1725 8.300 10.624 1725 8.278 10.675 1725 8.254 10.725 1725 8.231 10.777 1725 8.195 10.831 1725 8.158 10.883 1725 8.122 10.938 1725 8.091 10.989 1725 8.067 11.039 1725 8.047 11.089 1725 8.033 11.140 1725 8.022 11.196 1725 8.008 11.250 1725 7.991 11.303 1725 7.982 11.358 1725 7.974 11.409 1725 7.966 11.460 1725 7.955 11.515 1725 7.942 11.567 1725 7.929 11.618 1725 7.917 11.672 1725 7.912 11.727 1725 7.909 11.780 1725 7.912 11.836 1725 7.913 11.887 1725 7.920 11.941 1725 7.933 11.992 1725 7.954 12.046 1725 7.983 12.097 1725 8.021 12.149 1725 8.061 12.201 1725 8.109 12.253 1725 8.161 12.298 1725 8.190 12.317 1725 8.211 12.336 1725 8.261 12.349 1725 8.318 12.334 1725 8.369 12.323 1725 8.419 12.328 1725 8.430 12.378 1725 8.424 12.429 1725 8.415 12.482 1725 8.399 12.534 1725 8.388 12.587 1725 8.378 12.638 1725 8.373 12.688 1725 8.367 12.720 1725 8.353 12.739 1725 8.331 12.789 1725 8.337 12.844 1725 8.357 12.900 1725 8.376 12.955 1725 8.388 13.008 1725 8.404 13.062 1725 8.420 13.113 1725 8.436 13.164 1725 8.453 13.217 1725 8.469 13.267 1725 8.484 13.317 1725 8.496 13.370 1725 8.506 13.420 1725 8.517 13.477 1725 8.530 13.529 1725 8.548 13.585 1725 8.565 13.637 1725 8.591 13.693 1725 8.612 13.745 1725 8.627 13.799 1725 8.646 13.854 1725 8.666 13.905 1725 8.692 13.961 1725 8.721 14.016 1725 8.748 14.067 1725 8.793 14.121 1725 8.845 14.162 1725 8.899 14.184 1725 8.952 14.196 1725 9.002 14.210 1725 9.056 14.234 1725 9.107 14.262 1725 9.157 14.296 1725 9.209 14.310 1725 9.261 14.311 1725 9.319 14.303 1725 9.375 14.297 1725 9.429 14.297 1725 9.483 14.304 1725 9.534 14.307 1725 9.592 14.315 1725 9.646 14.328 1725 9.698 14.339 1725 9.750 14.348 1725 9.802 14.374 1725 9.852 14.402 1725 9.907 14.424 1725 9.960 14.448 1725 10.012 14.471 1725 10.064 14.500 1725 10.115 14.530 1725 10.168 14.553 1725 10.221 14.579 1725 10.271 14.596 1725 10.325 14.612 1725 10.375 14.629 1725 10.426 14.640 1725 10.476 14.626 1725 10.526 14.604 1725 10.577 14.574 1725 10.627 14.552 1725 10.677 14.545 1725 10.728 14.543 1725 10.779 14.567 1725 10.826 14.617 1725 10.878 14.640 1725 10.934 14.651 1725 10.989 14.658 1725 11.043 14.664 1725 11.097 14.668 1725 11.151 14.666 1725 11.203 14.663 1725 11.257 14.661 1725 11.315 14.657 1725 11.367 14.651 1725 11.419 14.646 1725 11.472 14.633 1725 11.525 14.617 1725 11.577 14.598 1725 11.631 14.569 1725 11.685 14.539 1725 11.737 14.516 1725 11.791 14.498 1725 11.845 14.475 1725 11.899 14.448 1725 11.953 14.417 1725 12.006 14.381 1725 12.062 14.345 1725 12.116 14.314 1725 12.170 14.269 1725 12.228 14.232 1725 12.278 14.202 1725 12.311 14.151 1725 12.363 14.099 1725 12.419 14.065 1725 12.473 14.025 1725 12.524 13.988 1725 12.577 13.951 1725 12.633 13.918 1725 12.685 13.878 1725 12.737 13.842 1725 12.787 13.803 1725 12.839 13.764 1725 12.889 13.734 1725 12.940 13.704 1725 12.993 13.674 1725 13.047 13.648 1725 13.097 13.630 1725 13.149 13.612 1725 13.200 13.591 1725 13.250 13.571 1725 13.301 13.526 1725 13.346 13.475 1725 13.381 13.422 1725 13.418 13.372 1725 13.465 13.318 1725 13.508 13.267 1725 13.545 13.211 1725 13.578 13.156 1725 13.612 13.102 1725 13.639 13.052 1725 13.647 13.001 1725 13.626 12.927 1725 13.624 12.925 1725 13.618 12.873 1725 13.640 12.821 1725 13.657 12.766 1725 13.705 12.714 1725 13.755 12.685 1725 13.805 12.653 1725 13.861 12.614 1725 13.915 12.563 1725 13.965 12.512 1725 13.998 12.460 1725 14.007 12.408 1725 14.014 12.351 1725 14.026 12.297 1725 14.036 12.245 1725 14.046 12.193 1725 14.059 12.141 1725 14.072 12.088 1725 14.075 12.036 1725 14.077 11.984 1725 14.087 11.931 1725 14.097 11.878 1725 14.151 11.832 1725 14.203 11.828 1725 14.254 11.832 1725 14.310 11.827 1725 14.362 11.810 1725 14.412 11.784 1725 14.449 11.752 1725 14.464 11.757 1725 14.517 11.710 1725 14.556 11.657 1725 14.594 11.607 1725 14.611 11.564 1725 14.612 11.552 1725 14.624 11.502 1725 14.631 11.452 1725 14.630 11.397 1725 14.624 11.339 1725 14.619 11.286 1725 14.611 11.234 1725 14.606 11.184 1725 14.604 11.133 1725 14.606 11.081 1725 14.608 11.024 1725 14.610 10.973 1725 14.613 10.921 1725 14.620 10.869 1725 14.646 10.818 1725 14.696 10.809 1725 14.748 10.814 1725 14.801 10.825 1725 14.854 10.833 1725 14.911 10.841 1725 14.966 10.851 1725 15.017 10.849 1725 15.070 10.836 1725 15.120 10.820 1725 15.142 10.767 1725 15.123 10.712 1725 15.073 10.664 1725 15.028 10.612 1725 14.995 10.558 1725 14.973 10.502 1725 15.026 10.465 1725 15.077 10.422 1725 15.128 10.457 1725 15.179 10.492 1725 15.231 10.500 1725 15.277 10.446 1725 15.267 10.395 1725 15.247 10.345 1725 15.261 10.293 1725 15.320 10.278 1725 15.376 10.258 1725 15.424 10.203 1725 15.432 10.149 1725 15.446 10.097 1725 15.496 10.077 1725 15.547 10.121 1725 15.597 10.169 1725 15.608 10.178 1725 15.647 10.190 1725 15.699 10.182 1725 15.751 10.148 1725 15.804 10.098 1725 15.847 10.046 1725 15.879 9.994 1725 15.903 9.943 1725 15.932 9.888 1725 15.949 9.838 1725 15.961 9.788 1725 15.979 9.735 1725 15.989 9.681 1725 15.995 9.631 1725 16.006 9.580 1725 16.016 9.529 1725 16.016 9.513 1725 16.018 9.477 1725 16.026 9.416 1725 16.040 9.365 1725 16.044 9.315 1725 16.035 9.257 1725 16.022 9.201 1725 16.009 9.145 1725 15.993 9.089 1725 15.975 9.030 1725 15.963 8.980 1725 15.958 8.926 1725 15.954 8.873 1725 15.954 8.821 1725 15.960 8.767 1725 15.970 8.712 1725 15.983 8.659 1725 15.996 8.606 1725 16.015 8.554 1725 16.041 8.498 1725 16.070 8.446 1725 16.116 8.396 1725 16.168 8.348 1725 16.197 8.296 1725 16.218 8.244 1725 16.243 8.191 1725 16.281 8.138 1725 16.334 8.102 1725 16.389 8.061 1725 16.443 8.016 1725 16.483 7.963 1725 16.513 7.909 1725 16.542 7.859 1725 16.559 7.806 1725 16.577 7.755 1725 16.632 7.747 1725 16.672 7.692 1725 16.678 7.639 1725 16.731 7.606 1725 16.785 7.617 1725 16.835 7.639 1725 16.873 7.691 1725 16.905 7.746 1725 16.927 7.802 1725 16.941 7.853 1725 16.959 7.905 1725 16.980 7.959 1725 16.998 7.981 1725 17.034 8.000 1725 17.088 8.015 1725 17.142 8.008 1725 17.193 7.988 1725 17.244 7.959 1725 17.290 7.905 1725 17.307 7.855 1725 17.324 7.805 1725 17.345 7.753 1725 17.368 7.701 1725 17.395 7.650 1725 17.408 7.597 1725 17.416 7.544 1725 17.413 7.493 1725 17.413 7.440 1725 17.417 7.389 1725 17.418 7.336 1725 17.421 7.285 1725 17.421 7.232 1725 17.424 7.182 1725 17.429 7.131 1725 17.430 7.077 1725 17.432 7.026 1725 17.435 6.974 1725 17.431 6.921 1725 17.429 6.868 1725 17.423 6.814 1725 17.423 6.761 1725 17.419 6.708 1725 17.417 6.657 1725 17.419 6.607 1725 17.421 6.557 1725 17.431 6.505 1725 17.443 6.452 1725 8.024 7.643 1750 8.023 7.643 1750 8.074 7.632 1750 8.129 7.637 1750 8.182 7.627 1750 8.236 7.610 1750 8.288 7.590 1750 8.339 7.550 1750 8.392 7.543 1750 8.443 7.545 1750 8.496 7.532 1750 8.552 7.490 1750 8.608 7.464 1750 8.661 7.440 1750 8.713 7.430 1750 8.766 7.435 1750 8.820 7.426 1750 8.873 7.400 1750 8.923 7.360 1750 8.968 7.305 1750 9.016 7.251 1750 9.069 7.217 1750 9.122 7.194 1750 9.172 7.172 1750 9.222 7.128 1750 9.234 7.074 1750 9.231 7.023 1750 9.247 6.971 1750 9.276 6.921 1750 9.314 6.868 1750 9.353 6.816 1750 9.384 6.762 1750 9.397 6.708 1750 9.400 6.658 1750 9.417 6.607 1750 9.458 6.554 1750 9.490 6.502 1750 9.514 6.447 1750 9.537 6.388 1750 9.553 6.333 1750 9.560 6.279 1750 9.567 6.225 1750 9.572 6.171 1750 9.581 6.118 1750 9.593 6.067 1750 9.601 6.013 1750 9.613 5.959 1750 9.636 5.906 1750 9.658 5.854 1750 9.681 5.801 1750 9.722 5.749 1750 9.772 5.709 1750 9.824 5.714 1750 9.875 5.748 1750 9.926 5.783 1750 9.979 5.813 1750 10.030 5.854 1750 10.083 5.887 1750 10.137 5.920 1750 10.188 5.942 1750 10.223 5.994 1750 10.235 6.048 1750 10.216 6.102 1750 10.194 6.156 1750 10.183 6.209 1750 10.170 6.259 1750 10.156 6.315 1750 10.138 6.369 1750 10.116 6.420 1750 10.086 6.471 1750 10.043 6.525 1750 10.002 6.577 1750 9.960 6.630 1750 9.924 6.681 1750 9.899 6.734 1750 9.863 6.788 1750 9.811 6.820 1750 9.758 6.845 1750 9.704 6.883 1750 9.671 6.933 1750 9.638 6.991 1750 9.611 7.044 1750 9.579 7.100 1750 9.550 7.156 1750 9.518 7.207 1750 9.485 7.261 1750 9.456 7.316 1750 9.431 7.371 1750 9.416 7.422 1750 9.398 7.474 1750 9.382 7.524 1750 9.369 7.576 1750 9.360 7.626 1750 9.355 7.680 1750 9.356 7.734 1750 9.358 7.787 1750 9.355 7.840 1750 9.339 7.894 1750 9.305 7.946 1750 9.275 8.001 1750 9.249 8.051 1750 9.218 8.101 1750 9.181 8.160 1750 9.160 8.214 1750 9.136 8.270 1750 9.102 8.325 1750 9.060 8.379 1750 9.014 8.429 1750 8.964 8.474 1750 8.908 8.517 1750 8.856 8.560 1750 8.824 8.613 1750 8.799 8.668 1750 8.771 8.722 1750 8.741 8.774 1750 8.727 8.825 1750 8.729 8.875 1750 8.738 8.928 1750 8.733 8.979 1750 8.731 9.000 1750 8.713 9.029 1750 8.669 9.082 1750 8.644 9.133 1750 8.641 9.184 1750 8.644 9.236 1750 8.641 9.291 1750 8.640 9.342 1750 8.630 9.395 1750 8.599 9.446 1750 8.566 9.497 1750 8.546 9.548 1750 8.545 9.598 1750 8.547 9.618 1750 8.550 9.650 1750 8.519 9.701 1750 8.486 9.752 1750 8.436 9.791 1750 8.397 9.842 1750 8.399 9.839 1750 8.371 9.894 1750 8.342 9.947 1750 8.315 10.000 1750 8.295 10.054 1750 8.272 10.104 1750 8.248 10.154 1750 8.225 10.205 1750 8.201 10.260 1750 8.180 10.314 1750 8.161 10.365 1750 8.136 10.417 1750 8.115 10.469 1750 8.096 10.523 1750 8.086 10.573 1750 8.063 10.629 1750 8.037 10.681 1750 8.009 10.731 1750 7.980 10.784 1750 7.945 10.842 1750 7.919 10.893 1750 7.892 10.943 1750 7.867 10.999 1750 7.840 11.052 1750 7.811 11.102 1750 7.782 11.156 1750 7.753 11.210 1750 7.729 11.262 1750 7.709 11.314 1750 7.693 11.370 1750 7.680 11.422 1750 7.673 11.478 1750 7.667 11.533 1750 7.664 11.586 1750 7.660 11.641 1750 7.661 11.694 1750 7.665 11.747 1750 7.673 11.800 1750 7.683 11.855 1750 7.684 11.908 1750 7.687 11.958 1750 7.690 12.013 1750 7.693 12.066 1750 7.707 12.116 1750 7.732 12.169 1750 7.758 12.221 1750 7.796 12.275 1750 7.842 12.328 1750 7.895 12.370 1750 7.945 12.410 1750 7.999 12.445 1750 8.050 12.478 1750 8.102 12.510 1750 8.151 12.562 1750 8.163 12.571 1750 8.187 12.618 1750 8.207 12.670 1750 8.212 12.725 1750 8.205 12.775 1750 8.204 12.827 1750 8.204 12.879 1750 8.203 12.929 1750 8.204 12.979 1750 8.203 13.032 1750 8.205 13.083 1750 8.210 13.134 1750 8.212 13.184 1750 8.214 13.193 1750 8.202 13.235 1750 8.195 13.285 1750 8.202 13.335 1750 8.219 13.388 1750 8.237 13.441 1750 8.259 13.492 1750 8.279 13.545 1750 8.300 13.597 1750 8.328 13.652 1750 8.355 13.707 1750 8.381 13.759 1750 8.402 13.815 1750 8.416 13.867 1750 8.431 13.922 1750 8.449 13.973 1750 8.462 14.026 1750 8.487 14.084 1750 8.511 14.136 1750 8.541 14.196 1750 8.577 14.248 1750 8.614 14.298 1750 8.657 14.350 1750 8.700 14.402 1750 8.750 14.444 1750 8.801 14.476 1750 8.853 14.485 1750 8.907 14.471 1750 8.960 14.458 1750 9.014 14.455 1750 9.069 14.457 1750 9.123 14.472 1750 9.177 14.500 1750 9.229 14.545 1750 9.279 14.592 1750 9.333 14.623 1750 9.386 14.638 1750 9.440 14.654 1750 9.491 14.673 1750 9.545 14.685 1750 9.601 14.690 1750 9.654 14.699 1750 9.707 14.705 1750 9.759 14.715 1750 9.815 14.735 1750 9.865 14.747 1750 9.917 14.751 1750 9.968 14.753 1750 10.020 14.759 1750 10.073 14.775 1750 10.126 14.793 1750 10.180 14.817 1750 10.230 14.835 1750 10.283 14.860 1750 10.337 14.885 1750 10.389 14.912 1750 10.440 14.927 1750 10.490 14.934 1750 10.540 14.941 1750 10.591 14.949 1750 10.641 14.959 1750 10.692 14.968 1750 10.750 14.980 1750 10.804 14.983 1750 10.861 14.980 1750 10.912 14.986 1750 10.966 14.991 1750 11.022 14.991 1750 11.075 14.992 1750 11.126 14.991 1750 11.176 14.993 1750 11.230 14.987 1750 11.283 14.982 1750 11.334 14.975 1750 11.384 14.959 1750 11.437 14.946 1750 11.492 14.934 1750 11.545 14.921 1750 11.599 14.907 1750 11.652 14.893 1750 11.711 14.877 1750 11.767 14.861 1750 11.818 14.848 1750 11.869 14.834 1750 11.923 14.821 1750 11.976 14.804 1750 12.027 14.781 1750 12.081 14.753 1750 12.131 14.725 1750 12.186 14.677 1750 12.237 14.637 1750 12.291 14.592 1750 12.343 14.546 1750 12.395 14.508 1750 12.453 14.492 1750 12.504 14.482 1750 12.563 14.460 1750 12.613 14.436 1750 12.665 14.402 1750 12.713 14.351 1750 12.755 14.301 1750 12.808 14.253 1750 12.862 14.216 1750 12.915 14.179 1750 12.965 14.146 1750 13.015 14.111 1750 13.070 14.063 1750 13.124 14.019 1750 13.175 13.984 1750 13.225 13.956 1750 13.278 13.931 1750 13.328 13.906 1750 13.382 13.865 1750 13.438 13.813 1750 13.490 13.765 1750 13.536 13.713 1750 13.582 13.663 1750 13.633 13.607 1750 13.687 13.557 1750 13.718 13.504 1750 13.745 13.451 1750 13.780 13.397 1750 13.805 13.343 1750 13.833 13.291 1750 13.862 13.237 1750 13.877 13.184 1750 13.885 13.130 1750 13.884 13.080 1750 13.867 13.028 1750 13.855 13.007 1750 13.848 12.976 1750 13.853 12.926 1750 13.865 12.874 1750 13.892 12.822 1750 13.945 12.779 1750 13.996 12.753 1750 14.041 12.700 1750 14.074 12.645 1750 14.109 12.590 1750 14.134 12.538 1750 14.148 12.485 1750 14.164 12.432 1750 14.176 12.376 1750 14.194 12.323 1750 14.202 12.268 1750 14.216 12.216 1750 14.240 12.160 1750 14.265 12.108 1750 14.318 12.054 1750 14.371 12.028 1750 14.422 12.016 1750 14.477 12.002 1750 14.530 11.994 1750 14.584 11.979 1750 14.638 11.960 1750 14.689 11.939 1750 14.701 11.954 1750 14.740 11.914 1750 14.761 11.862 1750 14.785 11.811 1750 14.793 11.757 1750 14.801 11.706 1750 14.804 11.650 1750 14.804 11.652 1750 14.795 11.598 1750 14.787 11.548 1750 14.772 11.493 1750 14.760 11.441 1750 14.757 11.389 1750 14.757 11.337 1750 14.751 11.282 1750 14.740 11.231 1750 14.735 11.177 1750 14.733 11.122 1750 14.743 11.072 1750 14.794 11.031 1750 14.845 11.016 1750 14.896 11.024 1750 14.946 11.052 1750 14.996 11.086 1750 15.048 11.120 1750 15.099 11.141 1750 15.153 11.153 1750 15.208 11.151 1750 15.262 11.149 1750 15.314 11.122 1750 15.350 11.067 1750 15.396 11.017 1750 15.446 10.984 1750 15.499 10.969 1750 15.551 10.960 1750 15.601 10.948 1750 15.651 10.921 1750 15.680 10.943 1750 15.707 10.905 1750 15.760 10.849 1750 15.810 10.802 1750 15.854 10.752 1750 15.892 10.700 1750 15.915 10.648 1750 15.940 10.588 1750 15.962 10.536 1750 15.986 10.480 1750 16.000 10.430 1750 16.015 10.374 1750 16.033 10.321 1750 16.049 10.269 1750 16.077 10.212 1750 16.108 10.156 1750 16.130 10.104 1750 16.142 10.051 1750 16.154 10.000 1750 16.168 9.948 1750 16.182 9.901 1750 16.182 9.898 1750 16.182 9.847 1750 16.184 9.793 1750 16.186 9.740 1750 16.177 9.685 1750 16.169 9.628 1750 16.167 9.577 1750 16.166 9.524 1750 16.166 9.474 1750 16.169 9.420 1750 16.160 9.369 1750 16.154 9.314 1750 16.150 9.259 1750 16.139 9.209 1750 16.119 9.156 1750 16.106 9.103 1750 16.095 9.051 1750 16.084 8.995 1750 16.086 8.941 1750 16.092 8.888 1750 16.103 8.838 1750 16.115 8.784 1750 16.115 8.731 1750 16.117 8.679 1750 16.124 8.627 1750 16.149 8.573 1750 16.191 8.521 1750 16.236 8.469 1750 16.278 8.415 1750 16.311 8.360 1750 16.334 8.305 1750 16.359 8.255 1750 16.412 8.218 1750 16.462 8.208 1750 16.518 8.202 1750 16.572 8.196 1750 16.623 8.191 1750 16.674 8.187 1750 16.728 8.185 1750 16.771 8.128 1750 16.773 8.074 1750 16.825 8.100 1750 16.854 8.152 1750 16.872 8.207 1750 16.898 8.257 1750 16.927 8.308 1750 16.969 8.358 1750 17.005 8.409 1750 17.012 8.415 1750 17.058 8.437 1750 17.110 8.440 1750 17.163 8.427 1750 17.214 8.409 1750 17.268 8.385 1750 17.320 8.343 1750 17.361 8.293 1750 17.416 8.250 1750 9.440 7.060 1775 9.442 7.061 1775 9.460 7.009 1775 9.479 6.955 1775 9.496 6.901 1775 9.514 6.850 1775 9.533 6.798 1775 9.552 6.746 1775 9.571 6.692 1775 9.584 6.639 1775 9.596 6.588 1775 9.614 6.536 1775 9.630 6.485 1775 9.640 6.431 1775 9.651 6.376 1775 9.665 6.323 1775 9.681 6.266 1775 9.695 6.212 1775 9.704 6.161 1775 9.713 6.105 1775 9.733 6.049 1775 9.762 5.996 1775 9.812 5.962 1775 9.862 5.952 1775 9.912 5.962 1775 9.967 5.987 1775 10.021 6.004 1775 10.075 6.015 1775 10.109 6.066 1775 10.071 6.119 1775 10.042 6.170 1775 10.022 6.224 1775 10.016 6.279 1775 10.009 6.331 1775 9.981 6.383 1775 9.927 6.438 1775 9.876 6.487 1775 9.826 6.540 1775 9.782 6.591 1775 9.732 6.641 1775 9.681 6.690 1775 9.638 6.744 1775 9.597 6.798 1775 9.560 6.848 1775 9.525 6.903 1775 9.498 6.954 1775 9.470 7.007 1775 9.439 7.060 1775 7.826 7.902 1775 7.826 7.902 1775 7.878 7.865 1775 7.928 7.826 1775 7.981 7.785 1775 8.036 7.760 1775 8.086 7.753 1775 8.141 7.758 1775 8.191 7.766 1775 8.242 7.761 1775 8.296 7.724 1775 8.348 7.697 1775 8.403 7.690 1775 8.457 7.677 1775 8.511 7.645 1775 8.565 7.621 1775 8.617 7.610 1775 8.671 7.606 1775 8.724 7.606 1775 8.779 7.584 1775 8.832 7.534 1775 8.882 7.506 1775 8.933 7.493 1775 8.988 7.478 1775 9.040 7.464 1775 9.090 7.430 1775 9.140 7.397 1775 9.194 7.355 1775 9.245 7.325 1775 9.295 7.314 1775 9.288 7.368 1775 9.271 7.418 1775 9.250 7.470 1775 9.237 7.521 1775 9.229 7.574 1775 9.229 7.624 1775 9.232 7.677 1775 9.237 7.727 1775 9.237 7.779 1775 9.205 7.832 1775 9.157 7.883 1775 9.110 7.933 1775 9.060 7.986 1775 9.027 8.036 1775 9.005 8.087 1775 8.990 8.140 1775 8.977 8.191 1775 8.960 8.243 1775 8.929 8.298 1775 8.893 8.351 1775 8.845 8.405 1775 8.794 8.458 1775 8.748 8.509 1775 8.706 8.559 1775 8.672 8.610 1775 8.632 8.666 1775 8.605 8.720 1775 8.588 8.773 1775 8.579 8.826 1775 8.569 8.879 1775 8.554 8.929 1775 8.531 8.981 1775 8.493 9.034 1775 8.460 9.087 1775 8.433 9.140 1775 8.427 9.183 1775 8.405 9.195 1775 8.363 9.247 1775 8.337 9.297 1775 8.308 9.350 1775 8.292 9.403 1775 8.281 9.456 1775 8.275 9.506 1775 8.275 9.530 1775 8.277 9.556 1775 8.308 9.606 1775 8.335 9.661 1775 8.333 9.711 1775 8.283 9.752 1775 8.229 9.773 1775 8.177 9.794 1775 8.156 9.821 1775 8.133 9.848 1775 8.109 9.902 1775 8.075 9.956 1775 8.043 10.008 1775 8.006 10.060 1775 7.979 10.111 1775 7.955 10.162 1775 7.930 10.218 1775 7.908 10.272 1775 7.890 10.323 1775 7.871 10.378 1775 7.850 10.429 1775 7.819 10.484 1775 7.785 10.534 1775 7.753 10.586 1775 7.727 10.636 1775 7.698 10.694 1775 7.675 10.747 1775 7.651 10.802 1775 7.630 10.855 1775 7.607 10.910 1775 7.590 10.965 1775 7.569 11.016 1775 7.550 11.067 1775 7.531 11.121 1775 7.510 11.172 1775 7.485 11.222 1775 7.470 11.274 1775 7.465 11.329 1775 7.462 11.381 1775 7.459 11.432 1775 7.460 11.482 1775 7.457 11.534 1775 7.449 11.586 1775 7.443 11.637 1775 7.477 11.690 1775 7.505 11.743 1775 7.514 11.794 1775 7.525 11.846 1775 7.537 11.902 1775 7.550 11.953 1775 7.558 12.006 1775 7.566 12.059 1775 7.570 12.110 1775 7.576 12.161 1775 7.563 12.212 1775 7.563 12.264 1775 7.569 12.315 1775 7.599 12.365 1775 7.650 12.416 1775 7.701 12.464 1775 7.753 12.509 1775 7.803 12.547 1775 7.856 12.584 1775 7.907 12.623 1775 7.959 12.673 1775 7.994 12.724 1775 8.020 12.775 1775 8.040 12.826 1775 8.047 12.881 1775 8.053 12.932 1775 8.048 12.986 1775 8.042 13.036 1775 8.036 13.088 1775 8.027 13.140 1775 8.020 13.191 1775 8.017 13.241 1775 8.017 13.294 1775 8.015 13.346 1775 8.014 13.399 1775 8.016 13.452 1775 8.023 13.502 1775 8.031 13.552 1775 8.042 13.604 1775 8.057 13.656 1775 8.081 13.708 1775 8.102 13.761 1775 8.122 13.814 1775 8.145 13.868 1775 8.170 13.919 1775 8.203 13.972 1775 8.235 14.022 1775 8.265 14.079 1775 8.296 14.134 1775 8.321 14.186 1775 8.343 14.236 1775 8.373 14.290 1775 8.405 14.344 1775 8.457 14.395 1775 8.507 14.446 1775 8.540 14.496 1775 8.578 14.549 1775 8.628 14.591 1775 8.678 14.605 1775 8.729 14.616 1775 8.779 14.624 1775 8.829 14.637 1775 8.885 14.598 1775 8.939 14.567 1775 8.991 14.564 1775 9.044 14.565 1775 9.095 14.594 1775 9.148 14.629 1775 9.200 14.674 1775 9.245 14.726 1775 9.289 14.778 1775 9.329 14.828 1775 9.368 14.879 1775 9.423 14.920 1775 9.478 14.951 1775 9.536 14.955 1775 9.594 14.969 1775 9.650 14.977 1775 9.704 14.985 1775 9.761 14.996 1775 9.813 15.008 1775 9.866 15.016 1775 9.916 15.020 1775 9.969 15.030 1775 10.024 15.041 1775 10.079 15.058 1775 10.131 15.079 1775 10.182 15.104 1775 10.235 15.142 1775 10.289 15.181 1775 10.343 15.218 1775 10.393 15.249 1775 10.443 15.287 1775 10.927 15.296 1775 10.927 15.298 1775 10.980 15.291 1775 11.033 15.277 1775 11.083 15.269 1775 11.134 15.254 1775 11.186 15.241 1775 11.237 15.234 1775 11.295 15.224 1775 11.356 15.211 1775 11.409 15.203 1775 11.466 15.196 1775 11.516 15.197 1775 11.566 15.195 1775 11.618 15.189 1775 11.673 15.183 1775 11.727 15.181 1775 11.780 15.177 1775 11.835 15.171 1775 11.892 15.150 1775 11.945 15.128 1775 11.998 15.106 1775 12.049 15.084 1775 12.107 15.056 1775 12.165 15.029 1775 12.220 14.999 1775 12.271 14.965 1775 12.327 14.925 1775 12.383 14.889 1775 12.438 14.860 1775 12.492 14.829 1775 12.549 14.799 1775 12.603 14.772 1775 12.654 14.748 1775 12.708 14.719 1775 12.765 14.686 1775 12.822 14.651 1775 12.879 14.615 1775 12.936 14.578 1775 12.994 14.546 1775 13.046 14.513 1775 13.096 14.484 1775 13.146 14.452 1775 13.200 14.422 1775 13.250 14.388 1775 13.304 14.348 1775 13.361 14.310 1775 13.417 14.268 1775 13.467 14.221 1775 13.517 14.171 1775 13.562 14.115 1775 13.599 14.063 1775 13.638 14.013 1775 13.678 13.963 1775 13.725 13.909 1775 13.765 13.856 1775 13.804 13.799 1775 13.844 13.745 1775 13.877 13.691 1775 13.902 13.640 1775 13.932 13.585 1775 13.961 13.533 1775 13.982 13.480 1775 14.000 13.430 1775 14.021 13.378 1775 14.041 13.323 1775 14.059 13.269 1775 14.075 13.214 1775 14.086 13.162 1775 14.091 13.111 1775 14.091 13.054 1775 14.104 13.001 1775 14.110 12.950 1775 14.108 12.898 1775 14.036 12.789 1775 14.095 12.827 1775 14.129 12.775 1775 14.164 12.724 1775 14.191 12.667 1775 14.220 12.614 1775 14.247 12.563 1775 14.271 12.511 1775 14.291 12.458 1775 14.298 12.406 1775 14.304 12.355 1775 14.356 12.329 1775 14.355 12.279 1775 14.350 12.228 1775 14.402 12.177 1775 14.455 12.171 1775 14.510 12.163 1775 14.563 12.160 1775 14.615 12.151 1775 14.667 12.142 1775 14.718 12.137 1775 14.768 12.129 1775 14.818 12.117 1775 14.820 12.094 1775 14.869 12.088 1775 14.911 12.034 1775 14.942 11.981 1775 14.973 11.928 1775 14.970 11.880 1775 14.968 11.876 1775 14.976 11.825 1775 14.986 11.774 1775 14.974 11.721 1775 14.952 11.671 1775 14.928 11.618 1775 14.932 11.565 1775 14.922 11.512 1775 14.894 11.459 1775 14.869 11.406 1775 14.845 11.352 1775 14.828 11.301 1775 14.855 11.251 1775 14.907 11.254 1775 14.959 11.264 1775 15.016 11.282 1775 15.067 11.299 1775 15.119 11.316 1775 15.169 11.325 1775 15.224 11.334 1775 15.276 11.337 1775 15.335 11.339 1775 15.389 11.344 1775 15.445 11.345 1775 15.501 11.339 1775 15.552 11.309 1775 15.593 11.256 1775 15.637 11.205 1775 15.687 11.170 1775 15.738 11.153 1775 15.793 11.135 1775 15.845 11.110 1775 15.858 11.104 1775 15.880 11.056 1775 15.909 10.999 1775 15.940 10.945 1775 15.975 10.894 1775 16.009 10.838 1775 16.047 10.786 1775 16.089 10.735 1775 16.121 10.678 1775 16.142 10.621 1775 16.162 10.563 1775 16.182 10.510 1775 16.206 10.460 1775 16.230 10.408 1775 16.246 10.356 1775 16.264 10.304 1775 16.276 10.252 1775 16.283 10.201 1775 16.294 10.148 1775 16.302 10.094 1775 16.309 10.044 1775 16.322 9.999 1775 16.322 9.990 1775 16.325 9.938 1775 16.327 9.883 1775 16.323 9.832 1775 16.315 9.778 1775 16.302 9.728 1775 16.274 9.675 1775 16.255 9.621 1775 16.274 9.569 1775 16.276 9.516 1775 16.255 9.464 1775 16.244 9.413 1775 16.264 9.360 1775 16.277 9.305 1775 16.268 9.254 1775 16.251 9.203 1775 16.237 9.148 1775 16.227 9.095 1775 16.210 9.042 1775 16.196 8.987 1775 16.195 8.935 1775 16.221 8.885 1775 16.248 8.832 1775 16.260 8.778 1775 16.257 8.725 1775 16.268 8.674 1775 16.292 8.620 1775 16.328 8.567 1775 16.355 8.517 1775 16.384 8.465 1775 16.437 8.413 1775 16.491 8.405 1775 16.542 8.415 1775 16.593 8.435 1775 16.644 8.457 1775 16.697 8.477 1775 16.752 8.492 1775 16.804 8.514 1775 16.855 8.537 1775 16.906 8.569 1775 16.947 8.619 1775 16.956 8.625 1775 17.005 8.646 1775 17.059 8.678 1775 17.109 8.684 1775 17.163 8.679 1775 17.216 8.664 1775 17.267 8.651 1775 17.318 8.640 1775 17.369 8.617 1775 17.419 8.593 1775 7.659 8.134 1800 7.658 8.130 1800 7.712 8.104 1800 7.766 8.081 1800 7.816 8.068 1800 7.867 8.048 1800 7.921 8.019 1800 7.943 7.967 1800 7.991 7.916 1800 8.042 7.898 1800 8.096 7.886 1800 8.151 7.875 1800 8.207 7.867 1800 8.263 7.868 1800 8.319 7.867 1800 8.369 7.863 1800 8.425 7.852 1800 8.481 7.828 1800 8.537 7.803 1800 8.587 7.780 1800 8.641 7.751 1800 8.693 7.727 1800 8.745 7.708 1800 8.795 7.698 1800 8.850 7.681 1800 8.900 7.669 1800 8.957 7.651 1800 9.007 7.633 1800 9.060 7.614 1800 9.075 7.668 1800 9.046 7.725 1800 9.006 7.779 1800 8.962 7.835 1800 8.920 7.888 1800 8.881 7.941 1800 8.838 7.996 1800 8.812 8.050 1800 8.794 8.107 1800 8.775 8.157 1800 8.757 8.209 1800 8.733 8.263 1800 8.697 8.315 1800 8.658 8.369 1800 8.610 8.423 1800 8.570 8.476 1800 8.533 8.532 1800 8.499 8.585 1800 8.481 8.638 1800 8.470 8.693 1800 8.459 8.744 1800 8.449 8.800 1800 8.430 8.858 1800 8.415 8.909 1800 8.391 8.964 1800 8.362 9.017 1800 8.314 9.067 1800 8.257 9.111 1800 8.201 9.140 1800 8.148 9.183 1800 8.117 9.236 1800 8.110 9.291 1800 8.109 9.344 1800 8.114 9.399 1800 8.122 9.452 1800 8.130 9.505 1800 8.141 9.559 1800 8.147 9.614 1800 8.154 9.664 1800 8.103 9.673 1800 8.048 9.691 1800 7.996 9.713 1800 7.945 9.740 1800 7.914 9.762 1800 7.892 9.793 1800 7.840 9.846 1800 7.800 9.896 1800 7.758 9.949 1800 7.724 10.003 1800 7.688 10.057 1800 7.655 10.107 1800 7.621 10.164 1800 7.597 10.215 1800 7.569 10.267 1800 7.540 10.318 1800 7.517 10.369 1800 7.498 10.422 1800 7.484 10.472 1800 7.471 10.522 1800 7.457 12.488 1800 7.457 12.490 1800 7.490 12.545 1800 7.519 12.596 1800 7.559 12.650 1800 7.591 12.703 1800 7.615 12.754 1800 7.634 12.804 1800 7.650 12.856 1800 7.664 12.907 1800 7.679 12.958 1800 7.698 13.009 1800 7.719 13.060 1800 7.742 13.113 1800 7.771 13.164 1800 7.812 13.215 1800 7.836 13.265 1800 7.846 13.317 1800 7.846 13.367 1800 7.841 13.422 1800 7.838 13.477 1800 7.839 13.534 1800 7.850 13.591 1800 7.866 13.647 1800 7.880 13.701 1800 7.901 13.757 1800 7.929 13.811 1800 7.954 13.862 1800 7.984 13.912 1800 8.012 13.962 1800 8.034 14.015 1800 8.057 14.067 1800 8.087 14.120 1800 8.119 14.174 1800 8.148 14.225 1800 8.176 14.277 1800 8.198 14.328 1800 8.224 14.378 1800 8.245 14.429 1800 8.265 14.483 1800 8.283 14.536 1800 8.297 14.587 1800 8.312 14.639 1800 8.317 14.691 1800 8.326 14.746 1800 8.332 14.799 1800 8.350 14.851 1800 8.400 14.888 1800 8.452 14.908 1800 8.505 14.912 1800 8.560 14.912 1800 8.612 14.906 1800 8.664 14.898 1800 8.720 14.872 1800 8.771 14.844 1800 8.816 14.794 1800 8.858 14.741 1800 8.895 14.691 1800 8.945 14.641 1800 8.995 14.625 1800 9.014 14.676 1800 9.064 14.684 1800 9.091 14.735 1800 9.140 14.786 1800 9.193 14.818 1800 9.227 14.872 1800 9.232 14.922 1800 9.241 14.973 1800 9.236 15.026 1800 9.259 15.079 1800 9.298 15.130 1800 9.323 15.180 1800 9.338 15.234 1800 9.362 15.288 1800 12.195 15.295 1800 12.196 15.298 1800 12.250 15.298 1800 12.303 15.267 1800 12.357 15.225 1800 12.398 15.173 1800 12.448 15.133 1800 12.500 15.086 1800 12.552 15.053 1800 12.607 15.030 1800 12.658 15.014 1800 12.713 14.994 1800 12.768 14.967 1800 12.820 14.934 1800 12.875 14.907 1800 12.932 14.878 1800 12.983 14.858 1800 13.034 14.839 1800 13.087 14.815 1800 13.139 14.778 1800 13.193 14.737 1800 13.249 14.693 1800 13.300 14.657 1800 13.355 14.618 1800 13.408 14.582 1800 13.459 14.543 1800 13.515 14.506 1800 13.566 14.463 1800 13.612 14.411 1800 13.663 14.363 1800 13.713 14.324 1800 13.765 14.282 1800 13.814 14.230 1800 13.851 14.180 1800 13.895 14.129 1800 13.938 14.076 1800 13.975 14.023 1800 14.012 13.969 1800 14.046 13.915 1800 14.069 13.865 1800 14.087 13.807 1800 14.110 13.753 1800 14.144 13.697 1800 14.168 13.644 1800 14.194 13.589 1800 14.221 13.539 1800 14.246 13.489 1800 14.268 13.436 1800 14.285 13.382 1800 14.298 13.329 1800 14.312 13.278 1800 14.330 13.224 1800 14.335 13.172 1800 14.327 13.122 1800 14.311 13.072 1800 14.294 13.019 1800 14.268 12.967 1800 14.310 13.032 1800 14.309 13.033 1800 14.267 12.983 1800 14.254 12.931 1800 14.254 12.879 1800 14.265 12.828 1800 14.279 12.778 1800 14.301 12.725 1800 14.322 12.675 1800 14.344 12.622 1800 14.367 12.569 1800 14.389 12.518 1800 14.404 12.465 1800 14.418 12.412 1800 14.432 12.362 1800 14.465 12.312 1800 14.516 12.315 1800 14.570 12.315 1800 14.622 12.278 1800 14.674 12.237 1800 14.725 12.218 1800 14.775 12.224 1800 14.826 12.256 1800 14.877 12.253 1800 14.880 12.251 1800 14.929 12.237 1800 14.979 12.184 1800 15.019 12.130 1800 15.058 12.079 1800 15.081 12.028 1800 15.100 11.977 1800 15.108 11.927 1800 15.113 11.888 1800 15.110 11.874 1800 15.107 11.822 1800 15.102 11.768 1800 15.089 11.717 1800 15.072 11.665 1800 15.049 11.614 1800 15.016 11.563 1800 14.989 11.512 1800 14.960 11.460 1800 14.946 11.409 1800 14.996 11.408 1800 15.050 11.442 1800 15.100 11.462 1800 15.158 11.480 1800 15.217 11.491 1800 15.272 11.500 1800 15.323 11.515 1800 15.375 11.520 1800 15.427 11.526 1800 15.480 11.531 1800 15.530 11.536 1800 15.582 11.524 1800 15.633 11.500 1800 15.683 11.462 1800 15.733 11.410 1800 15.777 11.358 1800 15.824 11.307 1800 15.877 11.269 1800 15.929 11.231 1800 15.980 11.194 1800 16.030 11.147 1800 16.034 11.146 1800 16.088 11.151 1800 16.139 11.121 1800 16.182 11.069 1800 16.218 11.019 1800 16.251 10.963 1800 16.274 10.913 1800 16.295 10.860 1800 16.313 10.805 1800 16.329 10.753 1800 16.344 10.700 1800 16.355 10.647 1800 16.368 10.596 1800 16.382 10.543 1800 16.395 10.491 1800 16.408 10.439 1800 16.424 10.386 1800 16.443 10.334 1800 16.455 10.282 1800 16.462 10.230 1800 16.464 10.178 1800 16.465 10.127 1800 16.466 10.075 1800 16.464 10.023 1800 16.463 10.014 1800 16.432 9.969 1800 16.406 9.917 1800 16.394 9.865 1800 16.379 9.812 1800 16.363 9.760 1800 16.343 9.706 1800 16.327 9.654 1800 16.354 9.604 1800 16.359 9.553 1800 16.348 9.503 1800 16.338 9.453 1800 16.355 9.403 1800 16.371 9.348 1800 16.378 9.291 1800 16.378 9.241 1800 16.376 9.191 1800 16.367 9.135 1800 16.358 9.079 1800 16.346 9.027 1800 16.336 8.976 1800 16.328 8.922 1800 16.378 8.881 1800 16.432 8.892 1800 16.484 8.863 1800 16.531 8.809 1800 16.582 8.768 1800 16.634 8.741 1800 16.685 8.732 1800 16.738 8.710 1800 16.789 8.720 1800 16.846 8.736 1800 16.902 8.758 1800 16.956 8.788 1800 17.009 8.805 1800 17.062 8.812 1800 17.116 8.831 1800 17.167 8.835 1800 17.223 8.842 1800 17.274 8.859 1800 17.327 8.865 1800 17.381 8.863 1800 17.432 8.847 1800 7.479 8.369 1825 7.480 8.370 1825 7.531 8.322 1825 7.586 8.289 1825 7.637 8.279 1825 7.690 8.285 1825 7.741 8.270 1825 7.783 8.219 1825 7.839 8.194 1825 7.896 8.193 1825 7.946 8.193 1825 7.999 8.174 1825 8.022 8.124 1825 8.035 8.073 1825 8.067 8.019 1825 8.117 8.013 1825 8.168 8.029 1825 8.221 8.014 1825 8.272 7.995 1825 8.328 7.988 1825 8.378 7.979 1825 8.431 7.976 1825 8.481 7.974 1825 8.532 7.961 1825 8.585 7.955 1825 8.638 7.946 1825 8.691 7.947 1825 8.692 8.001 1825 8.671 8.051 1825 8.648 8.105 1825 8.627 8.160 1825 8.608 8.211 1825 8.584 8.262 1825 8.547 8.315 1825 8.509 8.369 1825 8.473 8.423 1825 8.443 8.479 1825 8.420 8.529 1825 8.398 8.579 1825 8.376 8.633 1825 8.359 8.686 1825 8.341 8.738 1825 8.322 8.796 1825 8.304 8.850 1825 8.283 8.905 1825 8.229 8.961 1825 8.179 8.995 1825 8.124 9.049 1825 8.087 9.100 1825 8.062 9.153 1825 8.037 9.205 1825 8.017 9.261 1825 8.003 9.312 1825 7.990 9.366 1825 7.984 9.418 1825 7.983 9.471 1825 7.988 9.523 1825 7.996 9.578 1825 7.984 9.630 1825 7.933 9.647 1825 7.881 9.694 1825 7.827 9.718 1825 7.774 9.752 1825 7.725 9.804 1825 7.685 9.855 1825 7.655 9.905 1825 7.621 9.960 1825 7.591 10.013 1825 7.558 10.066 1825 7.529 10.117 1825 7.496 10.168 1825 7.451 8.509 1850 7.452 8.506 1850 7.503 8.496 1850 7.554 8.469 1850 7.604 8.430 1850 7.658 8.413 1850 7.708 8.418 1850 7.760 8.398 1850 7.812 8.366 1850 7.866 8.355 1850 7.919 8.355 1850 7.972 8.335 1850 8.023 8.298 1850 8.074 8.244 1850 8.129 8.224 1850 8.179 8.201 1850 8.229 8.162 1850 8.281 8.143 1850 8.332 8.131 1850 8.388 8.121 1850 8.443 8.126 1850 8.451 8.178 1850 8.407 8.230 1850 8.375 8.286 1850 8.351 8.337 1850 8.329 8.389 1850 8.322 8.447 1850 8.316 8.503 1850 8.285 8.554 1850 8.249 8.604 1850 8.215 8.655 1850 8.185 8.707 1850 8.162 8.760 1850 8.136 8.811 1850 8.094 8.862 1850 8.054 8.919 1850 8.026 8.970 1850 7.993 9.020 1850 7.955 9.071 1850 7.932 9.121 1850 7.903 9.175 1850 7.876 9.230 1850 7.863 9.283 1850 7.855 9.339 1850 7.852 9.393 1850 7.853 9.446 1850 7.856 9.497 1850 7.862 9.548 1850 7.863 9.600 1850 7.811 9.633 1850 7.758 9.667 1850 7.705 9.701 1850 7.658 9.753 1850 7.635 9.804 1850 7.583 9.831 1850 7.559 9.882 1850 7.532 9.934 1850 7.493 9.984 1850 7.450 8.731 1875 7.449 8.731 1875 7.500 8.683 1875 7.552 8.647 1875 7.605 8.611 1875 7.655 8.579 1875 7.711 8.564 1875 7.767 8.553 1875 7.821 8.526 1875 7.871 8.497 1875 7.929 8.490 1875 7.980 8.483 1875 8.033 8.463 1875 8.086 8.431 1875 8.140 8.399 1875 8.167 8.450 1875 8.149 8.505 1875 8.126 8.562 1875 8.101 8.615 1875 8.068 8.671 1875 8.033 8.727 1875 7.999 8.781 1875 7.969 8.834 1875 7.936 8.886 1875 7.899 8.939 1875 7.865 8.991 1875 7.827 9.047 1875 7.793 9.101 1875 7.764 9.154 1875 7.740 9.204 1875 7.726 9.255 1875 7.727 9.305 1875 7.733 9.355 1875 7.732 9.406 1875 7.740 9.460 1875 7.757 9.510 1875 7.715 9.563 1875 7.665 9.600 1875 7.614 9.621 1875 7.567 9.672 1875 7.513 9.719 1875 7.462 9.766 1875 7.456 8.988 1900 7.455 8.987 1900 7.493 8.934 1900 7.533 8.873 1900 7.559 8.822 1900 7.611 8.776 1900 7.665 8.731 1900 7.715 8.722 1900 7.766 8.705 1900 7.816 8.675 1900 7.867 8.655 1900 7.919 8.639 1900 7.972 8.617 1900 7.961 8.673 1900 7.934 8.726 1900 7.901 8.782 1900 7.865 8.835 1900 7.831 8.885 1900 7.794 8.938 1900 7.755 8.994 1900 7.733 9.046 1900 7.704 9.098 1900 7.669 9.153 1900 7.640 9.204 1900 7.621 9.258 1900 7.615 9.311 1900 7.613 9.363 1900 7.612 9.415 1900 7.603 9.470 1900 7.566 9.520 1900 7.516 9.558 1900 7.467 13.055 1825 7.484 13.054 1825 7.518 13.115 1825 7.556 13.170 1825 7.597 13.221 1825 7.632 13.274 1825 7.667 13.328 1825 7.694 13.381 1825 7.704 13.434 1825 7.706 13.488 1825 7.701 13.543 1825 7.709 13.594 1825 7.720 13.646 1825 7.726 13.697 1825 7.744 13.748 1825 7.779 13.799 1825 7.824 13.854 1825 7.867 13.907 1825 7.867 13.958 1825 7.894 14.012 1825 7.946 14.049 1825 7.987 14.101 1825 7.999 14.154 1825 8.001 14.208 1825 8.029 14.260 1825 8.081 14.290 1825 8.083 14.341 1825 8.102 14.392 1825 8.154 14.424 1825 8.175 14.477 1825 8.191 14.530 1825 8.223 14.583 1825 8.249 14.636 1825 8.254 14.690 1825 8.247 14.740 1825 8.239 14.792 1825 8.223 14.844 1825 8.208 14.896 1825 8.208 14.949 1825 8.201 14.999 1825 8.150 15.035 1825 8.131 14.985 1825 8.080 14.970 1825 8.029 14.921 1825 7.979 14.889 1825 7.929 14.858 1825 7.922 14.807 1825 7.872 14.766 1825 7.845 14.715 1825 7.849 14.664 1825 7.816 14.611 1825 7.833 14.558 1825 7.843 14.506 1825 7.818 14.453 1825 7.767 14.411 1825 7.715 14.372 1825 7.718 14.322 1825 7.705 14.271 1825 7.654 14.231 1825 7.671 14.177 1825 7.674 14.126 1825 7.644 14.076 1825 7.628 14.025 1825 7.624 13.975 1825 7.613 13.925 1825 7.583 13.872 1825 7.551 13.822 1825 7.497 13.777 1825 7.713 13.908 1850 7.712 13.907 1850 7.764 13.925 1850 7.780 13.979 1850 7.785 14.029 1850 7.786 14.079 1850 7.842 14.116 1850 7.878 14.167 1850 7.883 14.221 1850 7.908 14.272 1850 7.948 14.325 1850 7.986 14.375 1850 8.036 14.395 1850 8.055 14.449 1850 8.077 14.502 1850 8.117 14.553 1850 8.127 14.606 1850 8.130 14.660 1850 8.126 14.710 1850 8.124 14.760 1850 8.134 14.813 1850 8.082 14.860 1850 8.031 14.827 1850 8.009 14.775 1850 7.955 14.727 1850 7.913 14.677 1850 7.910 14.627 1850 7.901 14.573 1850 7.909 14.523 1850 7.933 14.471 1850 7.930 14.419 1850 7.878 14.401 1850 7.836 14.351 1850 7.821 14.301 1850 7.793 14.243 1850 7.741 14.191 1850 7.722 14.137 1850 7.722 14.083 1850 7.715 14.033 1850 7.697 13.982 1850 7.455 13.956 1800 7.453 13.955 1800 7.497 14.007 1800 7.534 14.060 1800 7.543 14.111 1800 7.558 14.164 1800 7.543 14.217 1800 7.532 14.267 1800 7.585 14.310 1800 7.617 14.361 1800 7.619 14.411 1800 7.671 14.446 1800 7.722 14.466 1800 7.774 14.516 1800 7.793 14.570 1800 7.779 14.620 1800 7.751 14.670 1800 7.754 14.721 1800 7.745 14.771 1800 7.799 14.798 1800 7.850 14.825 1800 7.835 14.877 1800 7.834 14.929 1800 7.888 14.954 1800 7.942 14.970 1800 7.995 14.993 1800 8.028 15.044 1800 8.033 15.094 1800 8.083 15.116 1800 8.136 15.133 1800 8.188 15.165 1800 8.235 15.215 1800 8.267 15.269 1800 12.754 15.297 1825 12.754 15.298 1825 12.794 15.247 1825 12.846 15.214 1825 12.900 15.204 1825 12.953 15.191 1825 13.008 15.168 1825 13.061 15.134 1825 13.107 15.083 1825 13.154 15.033 1825 13.191 14.983 1825 13.242 14.943 1825 13.296 14.918 1825 13.346 14.902 1825 13.398 14.885 1825 13.449 14.862 1825 13.500 14.831 1825 13.556 14.787 1825 13.608 14.739 1825 13.658 14.692 1825 13.711 14.644 1825 13.762 14.603 1825 13.812 14.562 1825 13.866 14.518 1825 13.916 14.483 1825 13.968 14.441 1825 14.021 14.397 1825 14.075 14.361 1825 14.128 14.309 1825 14.167 14.253 1825 14.188 14.202 1825 14.203 14.149 1825 14.227 14.094 1825 14.249 14.044 1825 14.272 13.992 1825 14.289 13.940 1825 14.303 13.886 1825 14.317 13.831 1825 14.338 13.777 1825 14.361 13.725 1825 14.382 13.673 1825 14.404 13.622 1825 14.425 13.572 1825 14.445 13.519 1825 14.469 13.465 1825 14.486 13.413 1825 14.493 13.361 1825 14.506 13.311 1825 14.509 13.258 1825 14.512 13.207 1825 14.504 13.157 1825 14.488 13.107 1825 14.489 13.102 1825 14.459 13.054 1825 14.429 13.002 1825 14.409 12.949 1825 14.402 12.899 1825 14.401 12.848 1825 14.418 12.796 1825 14.442 12.745 1825 14.470 12.693 1825 14.488 12.640 1825 14.490 12.590 1825 14.538 12.540 1825 14.560 12.489 1825 14.611 12.446 1825 14.661 12.415 1825 14.712 12.419 1825 14.763 12.424 1825 14.813 12.413 1825 14.821 12.416 1825 14.867 12.410 1825 14.918 12.393 1825 14.969 12.349 1825 15.023 12.309 1825 15.075 12.277 1825 15.122 12.223 1825 15.162 12.170 1825 15.187 12.120 1825 15.208 12.068 1825 15.218 12.017 1825 15.222 11.967 1825 15.223 11.916 1825 15.220 11.863 1825 15.216 11.815 1825 15.211 11.813 1825 15.197 11.762 1825 15.176 11.711 1825 15.140 11.661 1825 15.097 11.610 1825 15.067 11.558 1825 15.121 11.544 1825 15.174 11.571 1825 15.225 11.591 1825 15.282 11.605 1825 15.343 11.620 1825 15.396 11.636 1825 15.449 11.660 1825 15.499 11.684 1825 15.550 11.698 1825 15.604 11.706 1825 15.654 11.693 1825 15.705 11.667 1825 15.757 11.630 1825 15.808 11.586 1825 15.859 11.539 1825 15.912 11.497 1825 15.960 11.446 1825 15.985 11.396 1825 16.037 11.364 1825 16.087 11.383 1825 16.110 11.397 1825 16.144 11.398 1825 16.195 11.390 1825 16.248 11.355 1825 16.302 11.315 1825 16.345 11.261 1825 16.381 11.209 1825 16.410 11.155 1825 16.431 11.103 1825 16.457 11.051 1825 16.478 10.996 1825 16.496 10.946 1825 16.515 10.892 1825 16.531 10.841 1825 16.552 10.786 1825 16.570 10.735 1825 16.585 10.681 1825 16.600 10.629 1825 16.612 10.577 1825 16.624 10.524 1825 16.629 10.471 1825 16.630 10.417 1825 16.641 10.365 1825 16.641 10.311 1825 16.636 10.258 1825 16.618 10.207 1825 16.601 10.164 1825 16.598 10.157 1825 16.598 10.102 1825 16.591 10.051 1825 16.564 10.001 1825 16.548 9.949 1825 16.530 9.893 1825 16.517 9.843 1825 16.503 9.789 1825 16.489 9.739 1825 16.471 9.687 1825 16.480 9.636 1825 16.497 9.580 1825 16.473 9.527 1825 16.466 9.473 1825 16.501 9.423 1825 16.516 9.369 1825 16.515 9.314 1825 16.510 9.259 1825 16.499 9.205 1825 16.503 9.153 1825 16.539 9.103 1825 16.593 9.068 1825 16.644 9.048 1825 16.696 9.008 1825 16.740 8.956 1825 16.791 8.915 1825 16.844 8.885 1825 16.902 8.892 1825 16.960 8.906 1825 17.012 8.921 1825 17.070 8.941 1825 17.128 8.961 1825 17.181 8.976 1825 17.232 8.983 1825 17.285 8.993 1825 17.341 8.990 1825 17.394 8.984 1825 17.444 8.983 1825 13.279 15.298 1850 13.272 15.292 1850 13.327 15.255 1850 13.379 15.217 1850 13.430 15.182 1850 13.482 15.160 1850 13.533 15.129 1850 13.586 15.101 1850 13.637 15.070 1850 13.690 15.039 1850 13.740 15.009 1850 13.791 14.977 1850 13.833 14.927 1850 13.865 14.868 1850 13.889 14.817 1850 13.920 14.766 1850 13.948 14.715 1850 13.983 14.665 1850 14.036 14.611 1850 14.088 14.563 1850 14.140 14.527 1850 14.191 14.495 1850 14.241 14.470 1850 14.292 14.445 1850 14.339 14.392 1850 14.361 14.338 1850 14.376 14.285 1850 14.391 14.234 1850 14.408 14.183 1850 14.425 14.130 1850 14.438 14.079 1850 14.449 14.028 1850 14.471 13.972 1850 14.488 13.918 1850 14.512 13.866 1850 14.540 13.813 1850 14.574 13.762 1850 14.593 13.710 1850 14.620 13.660 1850 14.641 13.608 1850 14.685 13.552 1850 14.718 13.500 1850 14.736 13.450 1850 14.733 13.396 1850 14.735 13.345 1850 14.719 13.299 1850 14.714 13.288 1850 14.705 13.237 1850 14.692 13.183 1850 14.673 13.129 1850 14.651 13.076 1850 14.608 13.022 1850 14.566 12.969 1850 14.579 12.919 1850 14.560 12.867 1850 14.558 12.811 1850 14.553 12.758 1850 14.577 12.707 1850 14.629 12.676 1850 14.680 12.692 1850 14.730 12.719 1850 14.780 12.738 1850 14.791 12.743 1850 14.832 12.740 1850 14.869 12.690 1850 14.909 12.638 1850 14.962 12.599 1850 15.015 12.570 1850 15.066 12.525 1850 15.117 12.475 1850 15.154 12.425 1850 15.180 12.372 1850 15.222 12.322 1850 15.269 12.271 1850 15.301 12.216 1850 15.309 12.164 1850 15.322 12.114 1850 15.329 12.062 1850 15.315 12.012 1850 15.300 11.960 1850 15.292 11.908 1850 15.284 11.858 1850 15.278 11.852 1850 15.271 11.806 1850 15.321 11.766 1850 15.372 11.777 1850 15.422 11.792 1850 15.476 11.807 1850 15.527 11.822 1850 15.577 11.833 1850 15.630 11.840 1850 15.683 11.841 1850 15.735 11.826 1850 15.788 11.802 1850 15.839 11.767 1850 15.891 11.722 1850 15.944 11.683 1850 15.995 11.655 1850 16.035 11.636 1850 16.046 11.643 1850 16.097 11.664 1850 16.147 11.676 1850 16.201 11.677 1850 16.256 11.670 1850 16.308 11.663 1850 16.362 11.646 1850 16.417 11.634 1850 16.468 11.614 1850 16.518 11.562 1850 16.549 11.510 1850 16.569 11.456 1850 16.584 11.402 1850 16.601 11.345 1850 16.625 11.292 1850 16.650 11.236 1850 16.670 11.183 1850 16.685 11.133 1850 16.703 11.079 1850 16.715 11.028 1850 16.727 10.975 1850 16.734 10.921 1850 16.739 10.869 1850 16.737 10.818 1850 16.734 10.794 1850 16.730 10.768 1850 16.731 10.718 1850 16.736 10.665 1850 16.744 10.612 1850 16.745 10.557 1850 16.739 10.505 1850 16.732 10.453 1850 16.730 10.398 1850 16.739 10.345 1850 16.731 10.290 1850 16.705 10.240 1850 16.687 10.186 1850 16.686 10.133 1850 16.684 10.080 1850 16.684 10.023 1850 16.677 9.970 1850 16.665 9.917 1850 16.653 9.863 1850 16.634 9.811 1850 16.618 9.757 1850 16.620 9.706 1850 16.630 9.651 1850 16.619 9.599 1850 16.592 9.548 1850 16.594 9.493 1850 16.623 9.438 1850 16.650 9.381 1850 16.651 9.328 1850 16.670 9.275 1850 16.723 9.230 1850 16.774 9.207 1850 16.824 9.189 1850 16.875 9.167 1850 16.907 9.115 1850 16.961 9.077 1850 17.012 9.075 1850 17.063 9.084 1850 17.115 9.087 1850 17.169 9.093 1850 17.221 9.103 1850 17.273 9.109 1850 17.324 9.111 1850 17.377 9.109 1850 17.427 9.108 1850 13.589 15.298 1875 13.589 15.298 1875 13.643 15.253 1875 13.687 15.202 1875 13.725 15.151 1875 13.775 15.111 1875 13.826 15.089 1875 13.879 15.063 1875 13.920 15.010 1875 13.972 15.003 1875 14.022 14.972 1875 14.074 14.921 1875 14.114 14.869 1875 14.165 14.826 1875 14.217 14.773 1875 14.255 14.722 1875 14.288 14.672 1875 14.302 14.620 1875 14.301 14.569 1875 14.308 14.518 1875 14.331 14.466 1875 14.365 14.415 1875 14.410 14.363 1875 14.459 14.312 1875 14.502 14.258 1875 14.526 14.204 1875 14.565 14.151 1875 14.611 14.100 1875 14.639 14.049 1875 14.676 13.998 1875 14.705 13.948 1875 14.726 13.895 1875 14.744 13.844 1875 14.791 13.793 1875 14.812 13.740 1875 14.840 13.688 1875 14.845 13.638 1875 14.853 13.584 1875 14.856 13.530 1875 14.851 13.480 1875 14.848 13.429 1875 14.847 13.377 1875 14.848 13.325 1875 14.846 13.270 1875 14.841 13.220 1875 14.855 13.169 1875 14.868 13.119 1875 14.896 13.068 1875 14.925 13.014 1875 14.955 12.963 1875 14.993 12.912 1875 15.037 12.861 1875 15.080 12.810 1875 15.129 12.759 1875 15.179 12.705 1875 15.230 12.658 1875 15.282 12.607 1875 15.324 12.556 1875 15.360 12.506 1875 15.384 12.455 1875 15.411 12.402 1875 15.429 12.351 1875 15.458 12.301 1875 15.499 12.251 1875 15.520 12.200 1875 15.531 12.148 1875 15.542 12.096 1875 15.542 12.046 1875 15.540 12.044 1875 15.593 12.028 1875 15.645 12.021 1875 15.697 12.009 1875 15.750 12.002 1875 15.805 11.996 1875 15.855 11.992 1875 15.882 11.989 1875 15.906 11.994 1875 15.958 12.003 1875 16.012 11.994 1875 16.063 11.963 1875 16.114 11.949 1875 16.164 11.943 1875 16.224 11.949 1875 16.280 11.955 1875 16.334 11.956 1875 16.387 11.954 1875 16.439 11.960 1875 16.491 11.965 1875 16.544 11.965 1875 16.597 11.958 1875 16.650 11.931 1875 16.703 11.882 1875 16.736 11.827 1875 16.757 11.771 1875 16.773 11.715 1875 16.792 11.665 1875 16.808 11.614 1875 16.824 11.553 1875 16.839 11.497 1875 16.859 11.444 1875 16.874 11.391 1875 16.892 11.339 1875 16.913 11.289 1875 16.915 11.238 1875 16.918 11.184 1875 16.914 11.131 1875 16.907 11.074 1875 16.904 11.024 1875 16.891 10.970 1875 16.882 10.917 1875 16.880 10.866 1875 16.867 10.814 1875 16.839 10.719 1875 16.837 10.719 1875 16.825 10.667 1875 16.854 10.616 1875 16.859 10.566 1875 16.840 10.514 1875 16.830 10.464 1875 16.826 10.411 1875 16.835 10.360 1875 16.839 10.308 1875 16.824 10.258 1875 16.804 10.202 1875 16.788 10.148 1875 16.782 10.094 1875 16.777 10.043 1875 16.764 9.992 1875 16.771 9.942 1875 16.757 9.886 1875 16.751 9.834 1875 16.738 9.781 1875 16.712 9.725 1875 16.707 9.674 1875 16.712 9.623 1875 16.707 9.572 1875 16.761 9.526 1875 16.814 9.503 1875 16.870 9.478 1875 16.922 9.463 1875 16.974 9.420 1875 17.021 9.366 1875 17.058 9.315 1875 17.109 9.279 1875 17.163 9.257 1875 17.215 9.248 1875 17.267 9.242 1875 17.322 9.238 1875 17.377 9.232 1875 17.427 9.219 1875 13.932 15.305 1900 13.931 15.305 1900 13.961 15.253 1900 13.992 15.203 1900 14.025 15.151 1900 14.049 15.100 1900 14.087 15.050 1900 14.140 15.008 1900 14.195 14.979 1900 14.248 14.946 1900 14.299 14.907 1900 14.335 14.854 1900 14.353 14.803 1900 14.356 14.753 1900 14.351 14.699 1900 14.346 14.648 1900 14.344 14.596 1900 14.350 14.545 1900 14.365 14.492 1900 14.392 14.442 1900 14.442 14.404 1900 14.492 14.376 1900 14.544 14.355 1900 14.597 14.336 1900 14.645 14.284 1900 14.681 14.231 1900 14.708 14.180 1900 14.743 14.127 1900 14.779 14.077 1900 14.822 14.025 1900 14.861 13.973 1900 14.898 13.923 1900 14.915 13.871 1900 14.916 13.846 1900 14.926 13.812 1900 14.936 13.760 1900 14.941 13.707 1900 14.952 13.657 1900 14.965 13.607 1900 14.986 13.555 1900 15.037 13.512 1900 15.042 13.512 1900 15.068 13.460 1900 15.102 13.406 1900 15.120 13.350 1900 15.144 13.298 1900 15.175 13.245 1900 15.208 13.189 1900 15.238 13.133 1900 15.271 13.077 1900 15.303 13.020 1900 15.339 12.969 1900 15.375 12.912 1900 15.411 12.862 1900 15.452 12.812 1900 15.485 12.760 1900 15.519 12.706 1900 15.549 12.652 1900 15.580 12.600 1900 15.633 12.574 1900 15.685 12.552 1900 15.717 12.500 1900 15.721 12.478 1900 15.726 12.450 1900 15.723 12.397 1900 15.707 12.344 1900 15.689 12.294 1900 15.670 12.241 1900 15.667 12.190 1900 15.719 12.143 1900 15.770 12.137 1900 15.821 12.147 1900 15.871 12.165 1900 15.922 12.193 1900 15.973 12.214 1900 16.028 12.232 1900 16.079 12.243 1900 16.080 12.324 1900 16.080 12.325 1900 16.132 12.324 1900 16.187 12.310 1900 16.239 12.303 1900 16.292 12.302 1900 16.344 12.291 1900 16.398 12.283 1900 16.450 12.282 1900 16.506 12.276 1900 16.557 12.258 1900 16.609 12.237 1900 16.666 12.208 1900 16.718 12.171 1900 16.772 12.121 1900 16.825 12.075 1900 16.866 12.024 1900 16.913 11.970 1900 16.946 11.915 1900 16.979 11.863 1900 16.999 11.808 1900 17.008 11.754 1900 17.013 11.701 1900 17.027 11.647 1900 17.046 11.594 1900 17.048 11.538 1900 17.056 11.484 1900 17.062 11.426 1900 17.069 11.375 1900 17.073 11.319 1900 17.074 11.268 1900 17.073 11.218 1900 17.074 11.165 1900 17.073 11.114 1900 17.066 11.061 1900 17.055 11.006 1900 17.043 10.955 1900 17.021 10.899 1900 17.007 10.847 1900 17.009 10.795 1900 16.988 10.744 1900 16.976 10.692 1900 16.967 10.638 1900 16.959 10.585 1900 16.963 10.532 1900 16.962 10.532 1900 16.938 10.482 1900 16.932 10.432 1900 16.961 10.376 1900 16.970 10.325 1900 16.966 10.270 1900 16.952 10.216 1900 16.955 10.165 1900 16.942 10.111 1900 16.924 10.057 1900 16.874 10.033 1900 16.875 9.982 1900 16.906 9.931 1900 16.896 9.881 1900 16.844 9.843 1900 16.822 9.793 1900 16.818 9.738 1900 16.837 9.686 1900 16.881 9.633 1900 16.933 9.613 1900 16.988 9.580 1900 17.044 9.578 1900 17.099 9.563 1900 17.153 9.534 1900 17.207 9.487 1900 17.261 9.465 1900 17.313 9.432 1900 17.365 9.385 1900 17.416 9.358 1900 14.160 15.307 1925 14.162 15.315 1925 14.208 15.264 1925 14.238 15.210 1925 14.285 15.158 1925 14.329 15.107 1925 14.361 15.056 1925 14.367 15.006 1925 14.368 14.955 1925 14.363 14.936 1925 14.363 14.901 1925 14.415 14.855 1925 14.432 14.805 1925 14.391 14.753 1925 14.382 14.701 1925 14.382 14.650 1925 14.394 14.599 1925 14.405 14.547 1925 14.436 14.497 1925 14.486 14.449 1925 14.537 14.422 1925 14.587 14.406 1925 14.639 14.391 1925 14.689 14.369 1925 14.737 14.318 1925 14.777 14.267 1925 14.822 14.215 1925 14.871 14.163 1925 14.909 14.110 1925 14.939 14.057 1925 14.965 14.005 1925 14.989 13.953 1925 15.000 13.903 1925 15.020 13.849 1925 15.052 13.796 1925 15.081 13.745 1925 15.093 13.691 1925 15.097 13.641 1925 15.135 13.591 1925 15.187 13.597 1925 15.209 13.518 1925 15.216 13.539 1925 15.268 13.518 1925 15.318 13.488 1925 15.370 13.437 1925 15.422 13.384 1925 15.473 13.334 1925 15.524 13.284 1925 15.575 13.232 1925 15.617 13.182 1925 15.659 13.130 1925 15.703 13.079 1925 15.738 13.026 1925 15.771 12.972 1925 15.797 12.922 1925 15.820 12.871 1925 15.841 12.820 1925 15.861 12.767 1925 15.872 12.714 1925 15.874 12.664 1925 15.872 12.614 1925 15.856 12.558 1925 15.855 12.557 1925 15.827 12.506 1925 15.806 12.453 1925 15.792 12.397 1925 15.808 12.346 1925 15.858 12.343 1925 15.912 12.376 1925 15.966 12.399 1925 16.020 12.416 1925 16.079 12.426 1925 16.130 12.436 1925 16.183 12.438 1925 16.239 12.436 1925 16.294 12.437 1925 16.348 12.441 1925 16.399 12.439 1925 16.449 12.439 1925 16.504 12.435 1925 16.557 12.426 1925 16.607 12.410 1925 16.658 12.379 1925 16.713 12.341 1925 16.765 12.303 1925 16.818 12.270 1925 16.871 12.244 1925 16.922 12.217 1925 16.974 12.182 1925 17.026 12.130 1925 17.046 12.076 1925 17.043 12.075 1925 17.087 12.022 1925 17.109 11.969 1925 17.119 11.919 1925 17.126 11.868 1925 17.136 11.817 1925 17.151 11.762 1925 17.161 11.706 1925 17.171 11.653 1925 17.176 11.597 1925 17.181 11.547 1925 17.187 11.495 1925 17.190 11.445 1925 17.190 11.391 1925 17.193 11.341 1925 17.196 11.285 1925 17.202 11.234 1925 17.199 11.182 1925 17.190 11.131 1925 17.183 11.075 1925 17.175 11.020 1925 17.171 10.967 1925 17.170 10.914 1925 17.163 10.862 1925 17.153 10.808 1925 17.144 10.752 1925 17.135 10.693 1925 17.126 10.636 1925 17.117 10.584 1925 17.107 10.533 1925 17.095 10.483 1925 17.096 10.486 1925 17.073 10.432 1925 17.086 10.381 1925 17.108 10.330 1925 17.106 10.279 1925 17.094 10.229 1925 17.068 10.178 1925 17.076 10.128 1925 17.065 10.077 1925 17.040 10.023 1925 17.019 9.968 1925 16.999 9.915 1925 16.986 9.865 1925 16.981 9.814 1925 17.033 9.766 1925 17.087 9.721 1925 17.133 9.670 1925 17.186 9.628 1925 17.240 9.614 1925 17.292 9.601 1925 17.343 9.579 1925 17.394 9.539 1925 17.431 9.489 1925 14.411 15.289 1950 14.415 15.295 1950 14.431 15.243 1950 14.459 15.191 1950 14.489 15.139 1950 14.496 15.088 1950 14.492 15.036 1950 14.486 15.013 1950 14.480 14.986 1950 14.530 14.949 1950 14.526 14.899 1950 14.540 14.849 1950 14.558 14.798 1950 14.508 14.757 1950 14.468 14.706 1950 14.466 14.656 1950 14.484 14.604 1950 14.516 14.552 1950 14.566 14.518 1950 14.617 14.515 1950 14.668 14.506 1950 14.706 14.456 1950 14.757 14.424 1950 14.795 14.374 1950 14.847 14.342 1950 14.898 14.318 1950 14.933 14.268 1950 14.948 14.217 1950 14.962 14.164 1950 14.985 14.113 1950 14.994 14.063 1950 15.025 14.013 1950 15.061 13.962 1950 15.106 13.912 1950 15.134 13.861 1950 15.153 13.811 1950 15.168 13.759 1950 15.220 13.717 1950 15.271 13.701 1950 15.322 13.647 1950 15.375 13.636 1950 15.428 13.638 1950 15.482 13.626 1950 15.532 13.604 1950 15.582 13.574 1950 15.634 13.540 1950 15.684 13.506 1950 15.734 13.464 1950 15.781 13.411 1950 15.820 13.358 1950 15.852 13.305 1950 15.874 13.255 1950 15.895 13.205 1950 15.926 13.154 1950 15.936 13.104 1950 15.941 13.054 1950 15.945 13.003 1950 15.944 12.953 1950 15.940 12.902 1950 15.936 12.849 1950 15.948 12.798 1950 15.960 12.746 1950 15.955 12.696 1950 15.942 12.645 1950 15.949 12.594 1950 15.999 12.562 1950 16.049 12.569 1950 16.102 12.585 1950 16.156 12.591 1950 16.213 12.603 1950 16.267 12.600 1950 16.321 12.597 1950 16.375 12.591 1950 16.430 12.576 1950 16.484 12.573 1950 16.539 12.570 1950 16.590 12.544 1950 16.641 12.513 1950 16.693 12.485 1950 16.746 12.452 1950 16.798 12.424 1950 16.849 12.393 1950 16.902 12.349 1950 16.946 12.298 1950 16.995 12.248 1950 17.046 12.217 1950 17.096 12.174 1950 17.121 12.124 1950 17.147 12.074 1950 17.181 12.023 1950 17.224 11.970 1950 17.246 11.922 1950 17.244 11.919 1950 17.253 11.866 1950 17.262 11.815 1950 17.276 11.759 1950 17.291 11.707 1950 17.309 11.654 1950 17.310 11.599 1950 17.317 11.546 1950 17.327 11.495 1950 17.318 11.445 1950 17.305 11.393 1950 17.296 11.341 1950 17.291 11.288 1950 17.294 11.237 1950 17.290 11.187 1950 17.269 11.130 1950 17.263 11.079 1950 17.280 11.027 1950 17.290 10.972 1950 17.291 10.920 1950 17.287 10.866 1950 17.281 10.811 1950 17.270 10.757 1950 17.263 10.707 1950 17.247 10.653 1950 17.236 10.601 1950 17.234 10.548 1950 17.247 10.497 1950 17.249 10.445 1950 17.229 10.393 1950 17.216 10.343 1950 17.228 10.290 1950 17.223 10.236 1950 17.211 10.186 1950 17.199 10.135 1950 17.180 10.074 1950 17.180 10.077 1950 17.130 10.069 1950 17.096 10.010 1950 17.093 9.959 1950 17.109 9.906 1950 17.153 9.852 1950 17.204 9.813 1950 17.257 9.780 1950 17.308 9.747 1950 17.360 9.705 1950 17.411 9.665 1950 14.626 15.289 1975 14.626 15.289 1975 14.660 15.238 1975 14.659 15.188 1975 14.661 15.135 1975 14.673 15.083 1975 14.663 15.033 1975 14.644 14.983 1975 14.648 14.952 1975 14.638 14.932 1975 14.654 14.880 1975 14.622 14.825 1975 14.630 14.771 1975 14.591 14.720 1975 14.583 14.668 1975 14.637 14.630 1975 14.687 14.612 1975 14.726 14.560 1975 14.778 14.513 1975 14.828 14.469 1975 14.879 14.460 1975 14.932 14.441 1975 14.956 14.390 1975 14.969 14.338 1975 15.010 14.288 1975 15.041 14.236 1975 15.069 14.186 1975 15.065 14.134 1975 15.053 14.084 1975 15.055 14.030 1975 15.094 13.980 1975 15.146 13.965 1975 15.197 13.941 1975 15.242 13.888 1975 15.272 13.838 1975 15.317 13.787 1975 15.368 13.753 1975 15.418 13.737 1975 15.471 13.719 1975 15.522 13.692 1975 15.576 13.656 1975 15.626 13.624 1975 15.679 13.597 1975 15.731 13.565 1975 15.784 13.530 1975 15.806 13.480 1975 15.837 13.429 1975 15.888 13.383 1975 15.939 13.351 1975 15.970 13.300 1975 15.985 13.249 1975 16.003 13.198 1975 16.018 13.144 1975 16.028 13.087 1975 16.035 13.035 1975 16.041 12.981 1975 16.047 12.927 1975 16.049 12.872 1975 16.042 12.820 1975 16.047 12.765 1975 16.072 12.715 1975 16.123 12.705 1975 16.176 12.705 1975 16.229 12.710 1975 16.282 12.712 1975 16.332 12.711 1975 16.385 12.706 1975 16.437 12.699 1975 16.493 12.686 1975 16.546 12.676 1975 16.598 12.668 1975 16.653 12.657 1975 16.705 12.641 1975 16.759 12.620 1975 16.812 12.591 1975 16.862 12.537 1975 16.902 12.486 1975 16.945 12.431 1975 16.988 12.378 1975 17.037 12.325 1975 17.089 12.274 1975 17.136 12.224 1975 17.179 12.170 1975 17.213 12.117 1975 17.243 12.064 1975 17.274 12.013 1975 17.304 11.962 1975 17.337 11.909 1975 17.364 11.855 1975 17.383 11.805 1975 17.398 11.755 1975 17.413 11.704 1975 17.450 11.591 1975 17.446 11.589 1975 17.443 11.534 1975 17.439 11.483 1975 17.434 11.431 1975 17.425 11.377 1975 17.418 11.325 1975 17.412 11.274 1975 17.408 11.221 1975 17.405 11.169 1975 17.401 11.119 1975 17.402 11.066 1975 17.416 11.015 1975 17.427 10.963 1975 17.434 10.908 1975 17.430 10.858 1975 17.424 10.808 1975 17.416 10.757 1975 17.401 10.698 1975 17.383 10.643 1975 17.370 10.592 1975 17.356 10.541 1975 17.349 10.490 1975 17.351 10.439 1975 17.357 10.388 1975 17.358 10.337 1975 17.357 10.283 1975 17.349 10.223 1975 17.337 10.171 1975 17.316 10.119 1975 17.289 10.068 1975 17.257 10.017 1975 14.804 15.269 2000 14.803 15.271 2000 14.806 15.217 2000 14.803 15.167 2000 14.794 15.116 2000 14.772 15.050 2000 14.771 15.052 2000 14.767 15.001 2000 14.741 14.951 2000 14.730 14.898 2000 14.720 14.846 2000 14.715 14.795 2000 14.750 14.744 2000 14.788 14.694 2000 14.785 14.644 2000 14.805 14.592 2000 14.855 14.563 2000 14.907 14.582 2000 14.959 14.565 2000 15.008 14.512 2000 15.008 14.458 2000 15.007 14.405 2000 15.005 14.355 2000 15.056 14.302 2000 15.107 14.288 2000 15.157 14.264 2000 15.202 14.211 2000 15.158 14.160 2000 15.153 14.109 2000 15.203 14.088 2000 15.229 14.035 2000 15.237 13.981 2000 15.256 13.929 2000 15.309 13.906 2000 15.360 13.900 2000 15.392 13.848 2000 15.444 13.803 2000 15.495 13.785 2000 15.546 13.784 2000 15.596 13.771 2000 15.631 13.720 2000 15.683 13.701 2000 15.736 13.691 2000 15.787 13.661 2000 15.839 13.613 2000 15.889 13.576 2000 15.939 13.537 2000 15.991 13.489 2000 16.040 13.434 2000 16.080 13.384 2000 16.102 13.331 2000 16.123 13.278 2000 16.141 13.228 2000 16.153 13.176 2000 16.155 13.121 2000 16.162 13.066 2000 16.164 13.012 2000 16.166 12.960 2000 16.167 12.908 2000 16.176 12.858 2000 16.227 12.881 2000 16.281 12.896 2000 16.335 12.891 2000 16.390 12.880 2000 16.441 12.863 2000 16.492 12.852 2000 16.545 12.845 2000 16.546 12.898 2000 16.496 12.949 2000 16.456 13.000 2000 16.424 13.053 2000 16.403 13.108 2000 16.379 13.160 2000 16.323 13.207 2000 16.272 13.236 2000 16.227 13.289 2000 16.203 13.341 2000 16.181 13.392 2000 16.156 13.443 2000 16.126 13.496 2000 16.095 13.549 2000 16.066 13.600 2000 16.041 13.652 2000 16.015 13.706 2000 15.995 13.758 2000 15.975 13.813 2000 15.963 13.864 2000 15.960 13.915 2000 15.956 13.965 2000 15.952 14.019 2000 15.944 14.069 2000 15.932 14.121 2000 15.922 14.175 2000 15.915 14.227 2000 15.905 14.282 2000 15.895 14.335 2000 15.891 14.385 2000 15.894 14.436 2000 15.945 14.486 2000 15.215 15.242 2100 15.211 15.242 2100 15.160 15.210 2100 15.149 15.156 2100 15.155 15.103 2100 15.155 15.050 2100 15.114 14.999 2100 15.101 14.946 2100 15.151 14.907 2100 15.160 14.856 2100 15.210 14.832 2100 15.260 14.789 2100 15.311 14.755 2100 15.336 14.808 2100 15.321 14.858 2100 15.316 14.911 2100 15.320 14.962 2100 15.321 15.013 2100 15.328 15.067 2100 15.329 15.117 2100 15.300 15.169 2100 15.249 15.208 2100 15.198 15.230 2100 nfft-3.2.3/examples/solver/glacier.c0000644000071000003370000001447712137737443014322 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: glacier.c 3896 2012-10-10 12:19:26Z tovo $ */ #include "config.h" #include #include #include #include #ifdef HAVE_COMPLEX_H #include #endif #include "nfft3util.h" #include "nfft3.h" #include "infft.h" /** * \defgroup examples_solver_glacier Reconstruction of a glacier from \ scattered data * \ingroup examples_solver * \{ */ /** Generalised Sobolev weight */ static double my_weight(double z,double a,double b,double c) { return pow(0.25-z*z,b)/(c+pow(fabs(z),2*a)); } /** Reconstruction routine */ static void glacier(int N,int M) { int j,k,k0,k1,l,my_N[2],my_n[2]; double tmp_y; nfft_plan p; solver_plan_complex ip; FILE* fp; /* initialise p */ my_N[0]=N; my_n[0]=X(next_power_of_2)(N); my_N[1]=N; my_n[1]=X(next_power_of_2)(N); nfft_init_guru(&p, 2, my_N, M, my_n, 6, PRE_PHI_HUT| PRE_FULL_PSI| MALLOC_X| MALLOC_F_HAT| MALLOC_F| FFTW_INIT| FFT_OUT_OF_PLACE, FFTW_MEASURE| FFTW_DESTROY_INPUT); /* initialise ip, specific */ solver_init_advanced_complex(&ip,(nfft_mv_plan_complex*)(&p), CGNE| PRECOMPUTE_DAMP); fprintf(stderr,"Using the generic solver!"); /* init nodes */ fp=fopen("input_data.dat","r"); for(j=0;j output_data_cv.tex',N,M,M_cv_start,M_cv_step,M_cv_end)); nfft-3.2.3/examples/solver/doxygen.h0000644000071000003370000000164112137737443014363 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: doxygen.c 3100 2009-03-12 08:42:48Z keiner $ */ /** * \defgroup examples_solver Solver component * \ingroup examples */ nfft-3.2.3/examples/solver/README0000644000071000003370000000132312137737443013412 00000000000000Examples to the inverse NFFT Author Stefan Kunis List of files and purpose README this file simple_test.c introductory example how to use the solver component with the nfft glacier.c reconstruction of a glacier from sampled level curves glacier.m visualisation with MATLAB, calls the executable glacier glacier_cv.m cross validation test for the glacier reconstruction vol87.dat data set, see http://www.math.nps.navy.mil/~rfranke/README References Kunis, S. and Potts, D. Stability Results for Scattered Data Interpolation by Trigonometric Polynomials, SIAM J. Sci. Comput. 29, 1403 - 1419, 2007. nfft-3.2.3/examples/solver/glacier.m0000644000071000003370000000403612137737443014322 00000000000000% Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts % % 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., 51 % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. % % $Id: glacier.m 3776 2012-06-03 13:29:25Z keiner $ N=256; border_eps=0.1; M=8345; load vol87.dat -ascii input_data=vol87(2:end,:); x_range=max(input_data(:,1))-min(input_data(:,1)); input_data(:,1)=(input_data(:,1)-min(input_data(:,1))) /x_range*(1-2*border_eps)-0.5+border_eps; y_range=max(input_data(:,2))-min(input_data(:,2)); input_data(:,2)=(input_data(:,2)-min(input_data(:,2))) /y_range*(1-2*border_eps)-0.5+border_eps; save input_data.dat -ascii -double -tabs input_data system(sprintf('./glacier %d %d > output_data.dat',N,M)); load output_data.dat f_hat=output_data(:,1)+i*output_data(:,2); figure(1); C=ifftshift(real(fft2(fftshift(reshape(f_hat,N,N))))); x=-0.5:1/N:0.5-1/N; [X,Y]=meshgrid(x,x); Border=ceil(border_eps*N); X=X(Border+1:N-Border,Border+1:N-Border); Y=Y(Border+1:N-Border,Border+1:N-Border); C=C(Border+1:N-Border,Border+1:N-Border); surfl(X,Y,C); axis([-0.5+border_eps,0.5-border_eps,-0.5+border_eps,0.5-border_eps,min(input_data(:,3)),max(C(:))]); colormap(bone); shading interp axis off view([30,30]) print glacier1.eps -deps figure(2); contour(X,Y,C,sort(input_data(:,3))); axis([-0.5+border_eps,0.5-border_eps,-0.5+border_eps,0.5-border_eps]); axis off hold on plot(input_data(:,1),input_data(:,2),'k.'); colormap(gray(256)); hold off print glacier2.eps -deps nfft-3.2.3/examples/solver/Makefile.in0000644000071000003370000004174612137737504014612 00000000000000# Makefile.in generated by automake 1.12.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am 3654 2011-10-13 12:02:47Z rahi $ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = simple_test$(EXEEXT) glacier$(EXEEXT) subdir = examples/solver DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_apple_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_cc_maxopt.m4 \ $(top_srcdir)/m4/ax_check_compiler_flags.m4 \ $(top_srcdir)/m4/ax_check_dir.m4 \ $(top_srcdir)/m4/ax_compiler_vendor.m4 \ $(top_srcdir)/m4/ax_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \ $(top_srcdir)/m4/ax_lib_fftw3.m4 \ $(top_srcdir)/m4/ax_nfft_module.m4 \ $(top_srcdir)/m4/ax_openmp.m4 \ $(top_srcdir)/m4/ax_prog_matlab.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am_glacier_OBJECTS = glacier.$(OBJEXT) glacier_OBJECTS = $(am_glacier_OBJECTS) glacier_DEPENDENCIES = $(top_builddir)/libnfft3.la am_simple_test_OBJECTS = simple_test.$(OBJEXT) simple_test_OBJECTS = $(am_simple_test_OBJECTS) simple_test_DEPENDENCIES = $(top_builddir)/libnfft3.la DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(glacier_SOURCES) $(simple_test_SOURCES) DIST_SOURCES = $(glacier_SOURCES) $(simple_test_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ HAVE_FPT = @HAVE_FPT@ HAVE_MRI = @HAVE_MRI@ HAVE_NFCT = @HAVE_NFCT@ HAVE_NFSFT = @HAVE_NFSFT@ HAVE_NFSOFT = @HAVE_NFSOFT@ HAVE_NFST = @HAVE_NFST@ HAVE_NNFFT = @HAVE_NNFFT@ HAVE_NSFFT = @HAVE_NSFFT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENMP_CFLAGS = @OPENMP_CFLAGS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POW_LIB = @POW_LIB@ PRTDIAG = @PRTDIAG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHARED_VERSION_INFO = @SHARED_VERSION_INFO@ SHELL = @SHELL@ STRIP = @STRIP@ TICKS_PER_SECOND = @TICKS_PER_SECOND@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fftw3_LDFLAGS = @fftw3_LDFLAGS@ fftw3_LIBS = @fftw3_LIBS@ fftw3_threads_LIBS = @fftw3_threads_LIBS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ matlab_CPPFLAGS = @matlab_CPPFLAGS@ matlab_LDFLAGS = @matlab_LDFLAGS@ matlab_LIBS = @matlab_LIBS@ matlab_fftw3_LDFLAGS = @matlab_fftw3_LDFLAGS@ matlab_fftw3_LIBS = @matlab_fftw3_LIBS@ matlab_mexext = @matlab_mexext@ matlab_prog_mexext = @matlab_prog_mexext@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = -I$(top_srcdir)/include simple_test_SOURCES = simple_test.c simple_test_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ glacier_SOURCES = glacier.c doxygen.h glacier_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ EXTRA_DIST = glacier.m glacier_cv.m vol87.dat README all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/solver/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/solver/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list glacier$(EXEEXT): $(glacier_OBJECTS) $(glacier_DEPENDENCIES) $(EXTRA_glacier_DEPENDENCIES) @rm -f glacier$(EXEEXT) $(LINK) $(glacier_OBJECTS) $(glacier_LDADD) $(LIBS) simple_test$(EXEEXT): $(simple_test_OBJECTS) $(simple_test_DEPENDENCIES) $(EXTRA_simple_test_DEPENDENCIES) @rm -f simple_test$(EXEEXT) $(LINK) $(simple_test_OBJECTS) $(simple_test_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glacier.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_test.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS cscopelist ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: nfft-3.2.3/examples/solver/simple_test.c0000644000071000003370000001160412137737443015231 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: simple_test.c 3896 2012-10-10 12:19:26Z tovo $ */ #include "config.h" #include #include #include #include #ifdef HAVE_COMPLEX_H #include #endif #include "nfft3util.h" #include "nfft3.h" /* void simple_test_infft_1d(int N, int M, int iter) */ /* { */ /* int k,l; /\**< index for nodes, freqencies,iter*\/ */ /* nfft_plan p; /\**< plan for the nfft *\/ */ /* infft_plan ip; /\**< plan for the inverse nfft *\/ */ /* /\** initialise an one dimensional plan *\/ */ /* nfft_init_1d(&p, N, M); */ /* /\** init pseudo random nodes *\/ */ /* nfft_vrand_shifted_unit_double(p.x,p.M_total); */ /* /\** precompute psi, the entries of the matrix B *\/ */ /* if(p.nfft_flags & PRE_ONE_PSI) */ /* nfft_precompute_one_psi(&p); */ /* /\** initialise inverse plan *\/ */ /* infft_init(&ip,&p); */ /* /\** init pseudo random samples and show them *\/ */ /* nfft_vrand_unit_complex(ip.y,p.M_total); */ /* nfft_vpr_complex(ip.y,p.M_total,"Given data, vector y"); */ /* /\** initialise some guess f_hat_0 and solve *\/ */ /* for(k=0;k/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = simple_test$(EXEEXT) subdir = examples/nfsoft DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_apple_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_cc_maxopt.m4 \ $(top_srcdir)/m4/ax_check_compiler_flags.m4 \ $(top_srcdir)/m4/ax_check_dir.m4 \ $(top_srcdir)/m4/ax_compiler_vendor.m4 \ $(top_srcdir)/m4/ax_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \ $(top_srcdir)/m4/ax_lib_fftw3.m4 \ $(top_srcdir)/m4/ax_nfft_module.m4 \ $(top_srcdir)/m4/ax_openmp.m4 \ $(top_srcdir)/m4/ax_prog_matlab.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am_simple_test_OBJECTS = simple_test.$(OBJEXT) simple_test_OBJECTS = $(am_simple_test_OBJECTS) simple_test_DEPENDENCIES = $(top_builddir)/libnfft3.la DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(simple_test_SOURCES) DIST_SOURCES = $(simple_test_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ HAVE_FPT = @HAVE_FPT@ HAVE_MRI = @HAVE_MRI@ HAVE_NFCT = @HAVE_NFCT@ HAVE_NFSFT = @HAVE_NFSFT@ HAVE_NFSOFT = @HAVE_NFSOFT@ HAVE_NFST = @HAVE_NFST@ HAVE_NNFFT = @HAVE_NNFFT@ HAVE_NSFFT = @HAVE_NSFFT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENMP_CFLAGS = @OPENMP_CFLAGS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POW_LIB = @POW_LIB@ PRTDIAG = @PRTDIAG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHARED_VERSION_INFO = @SHARED_VERSION_INFO@ SHELL = @SHELL@ STRIP = @STRIP@ TICKS_PER_SECOND = @TICKS_PER_SECOND@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fftw3_LDFLAGS = @fftw3_LDFLAGS@ fftw3_LIBS = @fftw3_LIBS@ fftw3_threads_LIBS = @fftw3_threads_LIBS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ matlab_CPPFLAGS = @matlab_CPPFLAGS@ matlab_LDFLAGS = @matlab_LDFLAGS@ matlab_LIBS = @matlab_LIBS@ matlab_fftw3_LDFLAGS = @matlab_fftw3_LDFLAGS@ matlab_fftw3_LIBS = @matlab_fftw3_LIBS@ matlab_mexext = @matlab_mexext@ matlab_prog_mexext = @matlab_prog_mexext@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = -I$(top_srcdir)/include simple_test_SOURCES = simple_test.c simple_test_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ EXTRA_DIST = README all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/nfsoft/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/nfsoft/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list simple_test$(EXEEXT): $(simple_test_OBJECTS) $(simple_test_DEPENDENCIES) $(EXTRA_simple_test_DEPENDENCIES) @rm -f simple_test$(EXEEXT) $(LINK) $(simple_test_OBJECTS) $(simple_test_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_test.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS cscopelist ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: nfft-3.2.3/examples/nfsoft/simple_test.c0000644000071000003370000001615412137737443015223 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: simple_test.c 3896 2012-10-10 12:19:26Z tovo $ */ #include "config.h" /* Include standard C headers. */ #include #include #include #include #ifdef HAVE_COMPLEX_H #include #endif /* Include NFFT 3 utilities headers. */ #include "nfft3util.h" /* Include NFFT3 library header. */ #include "nfft3.h" #include "infft.h" static void simple_test_nfsoft(int bw, int M) { nfsoft_plan plan_nfsoft; /**< Plan for the NFSOFT */ nfsoft_plan plan_ndsoft; /**< Plan for the NDSOFT */ ticks t0, t1; int j; /** just an index*/ int k, m; /** the two parameters controlling the accuracy of the NFSOFT*/ double d1, d2, d3; /** indeces for initializing the Euler angles*/ double time, error; /**...self-explainatory*/ unsigned int flags = NFSOFT_MALLOC_X | NFSOFT_MALLOC_F | NFSOFT_MALLOC_F_HAT; /**flags for memory allocation \see nfft3.h*/ /**set the accuracy controlling parameters*/ k = 1000; /** k resembles the FPT kappa */ m = 5; /** m the NFFT cut-off parameter*/ /** Init two transform plans using the guru interface. * All arrays for input and * output variables are allocated by nfsoft_init_guru(). The * array of SO(3) Fourier coefficients is preserved during * transformations. */ nfsoft_init_guru(&plan_ndsoft, bw, M, flags | NFSOFT_USE_NDFT | NFSOFT_USE_DPT, PRE_PHI_HUT | PRE_PSI | MALLOC_X | MALLOC_F_HAT | MALLOC_F | FFTW_INIT | FFT_OUT_OF_PLACE, m, k); nfsoft_init_guru(&plan_nfsoft, bw, M, flags, PRE_PHI_HUT | PRE_PSI | MALLOC_X | MALLOC_F_HAT | MALLOC_F | FFTW_INIT | FFT_OUT_OF_PLACE, m, k); /** Init random nodes (for both plans, the same). */ for (j = 0; j < plan_nfsoft.M_total; j++) { d1 = ((R) rand()) / RAND_MAX - 0.5; d2 = 0.5 * ((R) rand()) / RAND_MAX; d3 = ((R) rand()) / RAND_MAX - 0.5; plan_nfsoft.x[3* j ] = d1; /**alpha*/ plan_nfsoft.x[3* j + 1] = d2; /**beta*/ plan_nfsoft.x[3* j + 2] = d3; /**gamma*/ plan_ndsoft.x[3* j ] = d1; /**alpha*/ plan_ndsoft.x[3* j + 1] = d2; /**beta*/ plan_ndsoft.x[3* j + 2] = d3; /**gamma*/ } /** init random Fourier coefficients (again the same for both plans) and display them*/ for (j = 0; j < (bw + 1) * (4* (bw +1)*(bw+1)-1)/3;j++) { d1=((R)rand())/RAND_MAX - 0.5; d2=((R)rand())/RAND_MAX - 0.5; plan_nfsoft.f_hat[j]=d1 + I*d2; plan_ndsoft.f_hat[j]=d1 + I*d2; } if ((bw+1)*(4*(bw+1)*(bw+1)-1)/3<=20) nfft_vpr_complex(plan_nfsoft.f_hat,(bw+1)*(4*(bw+1)*(bw+1)-1)/3,"randomly generated SO(3) Fourier coefficients"); else nfft_vpr_complex(plan_ndsoft.f_hat,20,"1st-20th randomly generated SO(3) Fourier coefficient"); printf("\n---------------------------------------------\n"); /**Do precomputation for all transforms*/ nfsoft_precompute(&plan_nfsoft); nfsoft_precompute(&plan_ndsoft); /** Compute NFSOFT and display the time needed. */ t0 = getticks(); nfsoft_trafo(&plan_nfsoft); t1 = getticks(); time = nfft_elapsed_seconds(t1,t0); if (plan_nfsoft.M_total<=20) nfft_vpr_complex(plan_nfsoft.f,plan_nfsoft.M_total,"NFSOFT, function samples"); else nfft_vpr_complex(plan_nfsoft.f,20,"NFSOFT, 1st-20th function sample"); printf(" computed in %11le seconds\n",time); /** Compute NDSOFT and display the time needed. */ t0 = getticks(); nfsoft_trafo(&plan_ndsoft); t1 = getticks(); time = nfft_elapsed_seconds(t1,t0); if (plan_ndsoft.M_total<=20) nfft_vpr_complex(plan_ndsoft.f,plan_ndsoft.M_total,"NDSOFT, function samples"); else nfft_vpr_complex(plan_ndsoft.f,20,"NDSOFT, 1st-20th function sample"); printf(" computed in %11le seconds\n",time); /**compute the error between the NFSOFT and NDSOFT and display it*/ error= X(error_l_infty_complex)(plan_ndsoft.f,plan_nfsoft.f, plan_nfsoft.M_total); printf("\n The NFSOFT of bandwidth=%d for %d rotations has infty-error %11le \n",bw, M,error); printf("\n---------------------------------------------\n"); plan_nfsoft.f[0]=1.0; plan_ndsoft.f[0]=1.0; nfft_vpr_complex(plan_ndsoft.f,plan_ndsoft.M_total, "function samples to start adjoint trafo"); /** Compute the adjoint NFSOFT and display the time needed.*/ t0 = getticks(); nfsoft_adjoint(&plan_nfsoft); t1 = getticks(); time = nfft_elapsed_seconds(t1,t0); if ((bw+1)*(4*(bw+1)*(bw+1)-1)/3<=20) nfft_vpr_complex(plan_nfsoft.f_hat,(bw+1)*(4*(bw+1)*(bw+1)-1)/3,"SO(3) Fourier coefficients"); else nfft_vpr_complex(plan_nfsoft.f_hat,20,"adjoint NFSOFT, 1st-20th Fourier coefficient"); printf(" computed in %11le seconds\n",time); /** Compute adjoint NDSOFT and display the time needed.*/ t0 = getticks(); nfsoft_adjoint(&plan_ndsoft); t1 = getticks(); time = nfft_elapsed_seconds(t1,t0); if ((bw+1)*(4*(bw+1)*(bw+1)-1)/3<=20) nfft_vpr_complex(plan_ndsoft.f_hat,(bw+1)*(4*(bw+1)*(bw+1)-1)/3,"SO(3) Fourier coefficients"); else nfft_vpr_complex(plan_ndsoft.f_hat,20,"adjoint NDSOFT, 1st-20th Fourier coefficient"); printf(" computed in %11le seconds\n",time); /**compute the error between the adjoint NFSOFT and NDSOFT and display it*/ error=X(error_l_infty_complex)(plan_ndsoft.f_hat,plan_nfsoft.f_hat, (bw+1)*(4*(bw+1)*(bw+1)-1)/3); printf("\n The adjoint NFSOFT of bandwidth=%d for %d rotations has infty-error %11le \n",bw, M,error); printf("\n---------------------------------------------\n"); /**destroy the plans*/ nfsoft_finalize(&plan_ndsoft); nfsoft_finalize(&plan_nfsoft); } /** * The main program. * * computes an NDSOFT and its adjoint as well as an NFSOFT and its adjoint * * \f[ * f(g_q)=\sum^{N}_{l=0}\sum_{m,n=-l}^l \hat f^{mn}_l D_{mn}^l(\alpha_q,\beta_q,\gamma_q) * \f] * at the desired bandwidth N for all M random nodes (g_q) with q=0,...,M-1 * * \arg N the bandwidth * \arg M the number of nodes * */ int main(int argc, char **argv) { int N; /**< The bandwidth N */ int M; /**< The number of nodes M */ if (argc < 2) { printf( "This test programm computes the NFSOFT with maximum polynomial degree N at M input rotations\n"); printf("Usage: simple_test N M \n"); printf("e.g.: simple_test 8 64\n"); exit(0); } /**Read in bandwidth and number of nodes*/ N = atoi(argv[1]); M = atoi(argv[2]); printf( "computing an NDSOFT, an NFSOFT, an adjoint NDSOFT, and an adjoint NFSOFT\n\n"); simple_test_nfsoft(N, M); /* Exit the program. */ return EXIT_SUCCESS; } nfft-3.2.3/examples/fpt/0000755000071000003370000000000012137737752012075 500000000000000nfft-3.2.3/examples/fpt/Makefile.am0000644000071000003370000000040112137737443014041 00000000000000# $Id: Makefile.am 3654 2011-10-13 12:02:47Z rahi $ AM_CPPFLAGS = -I$(top_srcdir)/include # programs noinst_PROGRAMS = simple_test # sources simple_test_SOURCES = simple_test.c simple_test_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ nfft-3.2.3/examples/fpt/Makefile.in0000644000071000003370000004062312137737504014062 00000000000000# Makefile.in generated by automake 1.12.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am 3654 2011-10-13 12:02:47Z rahi $ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = simple_test$(EXEEXT) subdir = examples/fpt DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_apple_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_cc_maxopt.m4 \ $(top_srcdir)/m4/ax_check_compiler_flags.m4 \ $(top_srcdir)/m4/ax_check_dir.m4 \ $(top_srcdir)/m4/ax_compiler_vendor.m4 \ $(top_srcdir)/m4/ax_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \ $(top_srcdir)/m4/ax_lib_fftw3.m4 \ $(top_srcdir)/m4/ax_nfft_module.m4 \ $(top_srcdir)/m4/ax_openmp.m4 \ $(top_srcdir)/m4/ax_prog_matlab.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am_simple_test_OBJECTS = simple_test.$(OBJEXT) simple_test_OBJECTS = $(am_simple_test_OBJECTS) simple_test_DEPENDENCIES = $(top_builddir)/libnfft3.la DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(simple_test_SOURCES) DIST_SOURCES = $(simple_test_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ HAVE_FPT = @HAVE_FPT@ HAVE_MRI = @HAVE_MRI@ HAVE_NFCT = @HAVE_NFCT@ HAVE_NFSFT = @HAVE_NFSFT@ HAVE_NFSOFT = @HAVE_NFSOFT@ HAVE_NFST = @HAVE_NFST@ HAVE_NNFFT = @HAVE_NNFFT@ HAVE_NSFFT = @HAVE_NSFFT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENMP_CFLAGS = @OPENMP_CFLAGS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POW_LIB = @POW_LIB@ PRTDIAG = @PRTDIAG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHARED_VERSION_INFO = @SHARED_VERSION_INFO@ SHELL = @SHELL@ STRIP = @STRIP@ TICKS_PER_SECOND = @TICKS_PER_SECOND@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fftw3_LDFLAGS = @fftw3_LDFLAGS@ fftw3_LIBS = @fftw3_LIBS@ fftw3_threads_LIBS = @fftw3_threads_LIBS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ matlab_CPPFLAGS = @matlab_CPPFLAGS@ matlab_LDFLAGS = @matlab_LDFLAGS@ matlab_LIBS = @matlab_LIBS@ matlab_fftw3_LDFLAGS = @matlab_fftw3_LDFLAGS@ matlab_fftw3_LIBS = @matlab_fftw3_LIBS@ matlab_mexext = @matlab_mexext@ matlab_prog_mexext = @matlab_prog_mexext@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = -I$(top_srcdir)/include # sources simple_test_SOURCES = simple_test.c simple_test_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/fpt/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/fpt/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list simple_test$(EXEEXT): $(simple_test_OBJECTS) $(simple_test_DEPENDENCIES) $(EXTRA_simple_test_DEPENDENCIES) @rm -f simple_test$(EXEEXT) $(LINK) $(simple_test_OBJECTS) $(simple_test_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_test.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS cscopelist ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: nfft-3.2.3/examples/fpt/simple_test.c0000644000071000003370000001211512137737443014506 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: simple_test.c 3896 2012-10-10 12:19:26Z tovo $ */ #include "config.h" /* standard headers */ #include #include #include /* It is important to include complex.h before nfft3.h. */ #ifdef HAVE_COMPLEX_H #include #endif #include /* NFFT3 header */ #include "nfft3.h" #include "nfft3util.h" /* Two times Pi */ #define KPI2 6.2831853071795864769252867665590057683943387987502 int main(void) { /* This example shows the use of the fast polynomial transform to evaluate a * finite expansion in Legendre polynomials, * * f(x) = a_0 P_0(x) + a_1 P_1(x) + ... + a_N P_N(x) (1) * * at the Chebyshev nodes x_j = cos(j*pi/N), j=0,1,...,N. */ const int N = 8; /* An fpt_set is a data structure that contains precomputed data for a number * of different polynomial transforms. Here, we need only one transform. the * second parameter (t) is the exponent of the maximum transform size desired * (2^t), i.e., t = 3 means that N in (1) can be at most N = 8. */ fpt_set set = fpt_init(1,lrint(ceil(log2((double)N))),0U); /* Three-term recurrence coefficients for Legendre polynomials */ double *alpha = malloc((N+2)*sizeof(double)), *beta = malloc((N+2)*sizeof(double)), *gamma = malloc((N+2)*sizeof(double)); /* alpha[0] and beta[0] are not referenced. */ alpha[0] = beta[0] = 0.0; /* gamma[0] contains the value of P_0(x) (which is a constant). */ gamma[0] = 1.0; /* Actual three-term recurrence coefficients for Legendre polynomials */ { int k; for (k = 0; k <= N; k++) { alpha[k+1] = ((double)(2*k+1))/((double)(k+1)); beta[k+1] = 0.0; gamma[k+1] = -((double)(k))/((double)(k+1)); } } printf( "Computing a fast polynomial transform (FPT) and a fast discrete cosine \n" "transform (DCT) to evaluate\n\n" " f_j = a_0 P_0(x_j) + a_1 P_1(x_j) + ... + a_N P_N(x_j), j=0,1,...,N,\n\n" "with N=%d, x_j = cos(j*pi/N), j=0,1,...N, the Chebyshev nodes, a_k,\n" "k=0,1,...,N, random Fourier coefficients in [-1,1]x[-1,1]*I, and P_k,\n" "k=0,1,...,N, the Legendre polynomials.",N ); /* Random seed, makes things reproducible. */ nfft_srand48(314); /* The function fpt_repcompute actually does the precomputation for a single * transform. It needs arrays alpha, beta, and gamma, containing the three- * term recurrence coefficients, here of the Legendre polynomials. The format * is explained above. The sixth parameter (k_start) is where the index in the * linear combination (1) starts, here k_start=0. The seventh parameter * (kappa) is the threshold which has an influence on the accuracy of the fast * polynomial transform. Usually, kappa = 1000 is a good choice. */ fpt_precompute(set,0,alpha,beta,gamma,0,1000.0); { /* Arrays for Fourier coefficients and function values. */ double _Complex *a = malloc((N+1)*sizeof(double _Complex)); double _Complex *b = malloc((N+1)*sizeof(double _Complex)); double *f = malloc((N+1)*sizeof(double _Complex)); /* Plan for discrete cosine transform */ const int NP1 = N + 1; fftw_r2r_kind kind = FFTW_REDFT00; fftw_plan p = fftw_plan_many_r2r(1, &NP1, 1, (double*)b, NULL, 2, 1, (double*)f, NULL, 1, 1, &kind, 0U); /* random Fourier coefficients */ { int k; printf("\n2) Random Fourier coefficients a_k, k=0,1,...,N:\n"); for (k = 0; k <= N; k++) { a[k] = 2.0*nfft_drand48() - 1.0; /* for debugging: use k+1 */ printf(" a_%-2d = %+5.3lE\n",k,creal(a[k])); } } /* fast polynomial transform */ fpt_trafo(set,0,a,b,N,0U); /* Renormalize coefficients b_j, j=1,2,...,N-1 owing to how FFTW defines a * DCT-I; see * http://www.fftw.org/fftw3_doc/1d-Real_002deven-DFTs-_0028DCTs_0029.html * for details */ { int j; for (j = 1; j < N; j++) b[j] *= 0.5; } /* discrete cosine transform */ fftw_execute(p); { int j; printf("\n3) Function values f_j, j=1,1,...,M:\n"); for (j = 0; j <= N; j++) printf(" f_%-2d = %+5.3lE\n",j,f[j]); } /* cleanup */ free(a); free(b); free(f); /* cleanup */ fftw_destroy_plan(p); } /* cleanup */ fpt_finalize(set); free(alpha); free(beta); free(gamma); return EXIT_SUCCESS; } nfft-3.2.3/examples/Makefile.am0000644000071000003370000000111212137737443013250 00000000000000if HAVE_NFCT DIR_NFCT=nfct else LIB_NFCT= endif if HAVE_NFST DIR_NFST=nfst else DIR_NFST= endif if HAVE_NFSFT DIR_NFSFT=nfsft else DIR_NFSFT= endif if HAVE_NFSOFT DIR_NFSOFT=nfsoft else DIR_NFSOFT= endif if HAVE_NNFFT DIR_NNFFT=nnfft else DIR_NNFFT= endif if HAVE_NSFFT DIR_NSFFT=nsfft else DIR_NSFFT= endif if HAVE_MRI DIR_MRI=mri else DIR_MRI= endif if HAVE_FPT DIR_FPT=fpt else DIR_FPT= endif SUBDIRS = $(DIR_FPT) $(DIR_MRI) $(DIR_NFCT) nfft $(DIR_NFSFT) $(DIR_NFSOFT) $(DIR_NFST) \ $(DIR_NNFFT) $(DIR_NSFFT) solver EXTRA_DIST = doxygen.c nfft-3.2.3/examples/nnfft/0000755000071000003370000000000012137737752012417 500000000000000nfft-3.2.3/examples/nnfft/accuracy.c0000644000071000003370000000544312137737443014300 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: accuracy.c 3896 2012-10-10 12:19:26Z tovo $ */ #include "config.h" #include #include #ifdef HAVE_COMPLEX_H #include #endif #include "nfft3util.h" #include "nfft3.h" #include "infft.h" void accuracy(int d) { int m,t; nnfft_plan my_plan; double _Complex *slow; int N[d],n[d]; int M_total,N_total; M_total=10000;N_total=1; slow=(double _Complex*)nfft_malloc(M_total*sizeof(double _Complex)); for(t=0; t/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = simple_test$(EXEEXT) accuracy$(EXEEXT) subdir = examples/nnfft DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_apple_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_cc_maxopt.m4 \ $(top_srcdir)/m4/ax_check_compiler_flags.m4 \ $(top_srcdir)/m4/ax_check_dir.m4 \ $(top_srcdir)/m4/ax_compiler_vendor.m4 \ $(top_srcdir)/m4/ax_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \ $(top_srcdir)/m4/ax_lib_fftw3.m4 \ $(top_srcdir)/m4/ax_nfft_module.m4 \ $(top_srcdir)/m4/ax_openmp.m4 \ $(top_srcdir)/m4/ax_prog_matlab.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am_accuracy_OBJECTS = accuracy.$(OBJEXT) accuracy_OBJECTS = $(am_accuracy_OBJECTS) accuracy_DEPENDENCIES = $(top_builddir)/libnfft3.la am_simple_test_OBJECTS = simple_test.$(OBJEXT) simple_test_OBJECTS = $(am_simple_test_OBJECTS) simple_test_DEPENDENCIES = $(top_builddir)/libnfft3.la DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(accuracy_SOURCES) $(simple_test_SOURCES) DIST_SOURCES = $(accuracy_SOURCES) $(simple_test_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ HAVE_FPT = @HAVE_FPT@ HAVE_MRI = @HAVE_MRI@ HAVE_NFCT = @HAVE_NFCT@ HAVE_NFSFT = @HAVE_NFSFT@ HAVE_NFSOFT = @HAVE_NFSOFT@ HAVE_NFST = @HAVE_NFST@ HAVE_NNFFT = @HAVE_NNFFT@ HAVE_NSFFT = @HAVE_NSFFT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENMP_CFLAGS = @OPENMP_CFLAGS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POW_LIB = @POW_LIB@ PRTDIAG = @PRTDIAG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHARED_VERSION_INFO = @SHARED_VERSION_INFO@ SHELL = @SHELL@ STRIP = @STRIP@ TICKS_PER_SECOND = @TICKS_PER_SECOND@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fftw3_LDFLAGS = @fftw3_LDFLAGS@ fftw3_LIBS = @fftw3_LIBS@ fftw3_threads_LIBS = @fftw3_threads_LIBS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ matlab_CPPFLAGS = @matlab_CPPFLAGS@ matlab_LDFLAGS = @matlab_LDFLAGS@ matlab_LIBS = @matlab_LIBS@ matlab_fftw3_LDFLAGS = @matlab_fftw3_LDFLAGS@ matlab_fftw3_LIBS = @matlab_fftw3_LIBS@ matlab_mexext = @matlab_mexext@ matlab_prog_mexext = @matlab_prog_mexext@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = -I$(top_srcdir)/include simple_test_SOURCES = simple_test.c simple_test_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ accuracy_SOURCES = accuracy.c accuracy_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ EXTRA_DIST = accuracy.m README all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/nnfft/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/nnfft/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list accuracy$(EXEEXT): $(accuracy_OBJECTS) $(accuracy_DEPENDENCIES) $(EXTRA_accuracy_DEPENDENCIES) @rm -f accuracy$(EXEEXT) $(LINK) $(accuracy_OBJECTS) $(accuracy_LDADD) $(LIBS) simple_test$(EXEEXT): $(simple_test_OBJECTS) $(simple_test_DEPENDENCIES) $(EXTRA_simple_test_DEPENDENCIES) @rm -f simple_test$(EXEEXT) $(LINK) $(simple_test_OBJECTS) $(simple_test_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/accuracy.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_test.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS cscopelist ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: nfft-3.2.3/examples/nnfft/simple_test.c0000644000071000003370000002366112137737443015040 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: simple_test.c 3896 2012-10-10 12:19:26Z tovo $ */ #include "config.h" #include #include #ifdef HAVE_COMPLEX_H #include #endif #include "nfft3util.h" #include "nfft3.h" #include "infft.h" void simple_test_nnfft_1d(void) { int j,k; /**< index for nodes and freqencies */ nnfft_plan my_plan; /**< plan for the nfft */ int N[1]; N[0]=12; /** init an one dimensional plan */ nnfft_init(&my_plan, 1, 3, 19, N); /** init pseudo random nodes */ for(j=0;j Steffen Klatt List of files and purpose README this file simple_test.c introductory example how to use the nfst References M. Fenn and D. Potts. Fast summation based on fast trigonometric transforms at nonequispaced nodes. Numer. Linear Algebra Appl., 12:161--169, 2005. nfft-3.2.3/examples/nfst/Makefile.in0000644000071000003370000004064612137737504014250 00000000000000# Makefile.in generated by automake 1.12.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am 3654 2011-10-13 12:02:47Z rahi $ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = simple_test$(EXEEXT) subdir = examples/nfst DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_apple_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_cc_maxopt.m4 \ $(top_srcdir)/m4/ax_check_compiler_flags.m4 \ $(top_srcdir)/m4/ax_check_dir.m4 \ $(top_srcdir)/m4/ax_compiler_vendor.m4 \ $(top_srcdir)/m4/ax_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \ $(top_srcdir)/m4/ax_lib_fftw3.m4 \ $(top_srcdir)/m4/ax_nfft_module.m4 \ $(top_srcdir)/m4/ax_openmp.m4 \ $(top_srcdir)/m4/ax_prog_matlab.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am_simple_test_OBJECTS = simple_test.$(OBJEXT) simple_test_OBJECTS = $(am_simple_test_OBJECTS) simple_test_DEPENDENCIES = $(top_builddir)/libnfft3.la DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(simple_test_SOURCES) DIST_SOURCES = $(simple_test_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ HAVE_FPT = @HAVE_FPT@ HAVE_MRI = @HAVE_MRI@ HAVE_NFCT = @HAVE_NFCT@ HAVE_NFSFT = @HAVE_NFSFT@ HAVE_NFSOFT = @HAVE_NFSOFT@ HAVE_NFST = @HAVE_NFST@ HAVE_NNFFT = @HAVE_NNFFT@ HAVE_NSFFT = @HAVE_NSFFT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENMP_CFLAGS = @OPENMP_CFLAGS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POW_LIB = @POW_LIB@ PRTDIAG = @PRTDIAG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHARED_VERSION_INFO = @SHARED_VERSION_INFO@ SHELL = @SHELL@ STRIP = @STRIP@ TICKS_PER_SECOND = @TICKS_PER_SECOND@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fftw3_LDFLAGS = @fftw3_LDFLAGS@ fftw3_LIBS = @fftw3_LIBS@ fftw3_threads_LIBS = @fftw3_threads_LIBS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ matlab_CPPFLAGS = @matlab_CPPFLAGS@ matlab_LDFLAGS = @matlab_LDFLAGS@ matlab_LIBS = @matlab_LIBS@ matlab_fftw3_LDFLAGS = @matlab_fftw3_LDFLAGS@ matlab_fftw3_LIBS = @matlab_fftw3_LIBS@ matlab_mexext = @matlab_mexext@ matlab_prog_mexext = @matlab_prog_mexext@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = -I$(top_srcdir)/include simple_test_SOURCES = simple_test.c simple_test_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ EXTRA_DIST = README all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/nfst/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/nfst/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list simple_test$(EXEEXT): $(simple_test_OBJECTS) $(simple_test_DEPENDENCIES) $(EXTRA_simple_test_DEPENDENCIES) @rm -f simple_test$(EXEEXT) $(LINK) $(simple_test_OBJECTS) $(simple_test_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_test.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS cscopelist ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: nfft-3.2.3/examples/nfst/simple_test.c0000644000071000003370000000443412137737443014674 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: simple_test.c 3896 2012-10-10 12:19:26Z tovo $ */ #include #include #include #include #include "nfft3util.h" #include "nfft3.h" static void simple_test_nfst_1d(void) { int j,k; nfst_plan p; int N=14; int M=19; /** init an one dimensional plan */ nfst_init_1d(&p,N,M); /** init pseudo random nodes */ for(j = 0; j < p.d*p.M_total; j++) p.x[j] = 0.5 * ((double)rand()) / RAND_MAX; /** precompute psi, the entries of the matrix B */ if( p.nfst_flags & PRE_PSI) nfst_precompute_psi( &p); /** init pseudo random Fourier coefficients and show them */ for(k = 0; k < p.N_total; k++) p.f_hat[k] = (double)rand() / RAND_MAX; nfft_vpr_double(p.f_hat,p.N_total,"given Fourier coefficients, vector f_hat"); /** direct trafo and show the result */ nfst_trafo_direct(&p); nfft_vpr_double(p.f,p.M_total,"ndst, vector f"); /** approx. trafo and show the result */ nfst_trafo(&p); nfft_vpr_double(p.f,p.M_total,"nfst, vector f"); /** approx. adjoint and show the result */ nfst_adjoint_direct(&p); nfft_vpr_double(p.f_hat,p.N_total,"adjoint ndst, vector f_hat"); /** approx. adjoint and show the result */ nfst_adjoint(&p); nfft_vpr_double(p.f_hat,p.N_total,"adjoint nfst, vector f_hat"); /** finalise the one dimensional plan */ nfst_finalize(&p); } int main(void) { system("clear"); printf("computing one dimensional ndst, nfst and adjoint ndst, nfst\n\n"); simple_test_nfst_1d(); printf("\n\n"); return 1; } nfft-3.2.3/examples/nfct/0000755000071000003370000000000012137737752012236 500000000000000nfft-3.2.3/examples/nfct/Makefile.am0000644000071000003370000000040112137737443014202 00000000000000# $Id: Makefile.am 3654 2011-10-13 12:02:47Z rahi $ AM_CPPFLAGS = -I$(top_srcdir)/include noinst_PROGRAMS = simple_test simple_test_SOURCES = simple_test.c simple_test_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ EXTRA_DIST = README nfft-3.2.3/examples/nfct/README0000644000071000003370000000067512137737443013043 00000000000000Examples to the nonequispaced fast cosine transform Author Stefan Kunis Steffen Klatt List of files and purpose README this file simple_test.c introductory example how to use the nfct References M. Fenn and D. Potts. Fast summation based on fast trigonometric transforms at nonequispaced nodes. Numer. Linear Algebra Appl., 12:161--169, 2005. nfft-3.2.3/examples/nfct/Makefile.in0000644000071000003370000004064612137737504014230 00000000000000# Makefile.in generated by automake 1.12.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am 3654 2011-10-13 12:02:47Z rahi $ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = simple_test$(EXEEXT) subdir = examples/nfct DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_apple_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_cc_maxopt.m4 \ $(top_srcdir)/m4/ax_check_compiler_flags.m4 \ $(top_srcdir)/m4/ax_check_dir.m4 \ $(top_srcdir)/m4/ax_compiler_vendor.m4 \ $(top_srcdir)/m4/ax_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \ $(top_srcdir)/m4/ax_lib_fftw3.m4 \ $(top_srcdir)/m4/ax_nfft_module.m4 \ $(top_srcdir)/m4/ax_openmp.m4 \ $(top_srcdir)/m4/ax_prog_matlab.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am_simple_test_OBJECTS = simple_test.$(OBJEXT) simple_test_OBJECTS = $(am_simple_test_OBJECTS) simple_test_DEPENDENCIES = $(top_builddir)/libnfft3.la DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(simple_test_SOURCES) DIST_SOURCES = $(simple_test_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ HAVE_FPT = @HAVE_FPT@ HAVE_MRI = @HAVE_MRI@ HAVE_NFCT = @HAVE_NFCT@ HAVE_NFSFT = @HAVE_NFSFT@ HAVE_NFSOFT = @HAVE_NFSOFT@ HAVE_NFST = @HAVE_NFST@ HAVE_NNFFT = @HAVE_NNFFT@ HAVE_NSFFT = @HAVE_NSFFT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENMP_CFLAGS = @OPENMP_CFLAGS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POW_LIB = @POW_LIB@ PRTDIAG = @PRTDIAG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHARED_VERSION_INFO = @SHARED_VERSION_INFO@ SHELL = @SHELL@ STRIP = @STRIP@ TICKS_PER_SECOND = @TICKS_PER_SECOND@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fftw3_LDFLAGS = @fftw3_LDFLAGS@ fftw3_LIBS = @fftw3_LIBS@ fftw3_threads_LIBS = @fftw3_threads_LIBS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ matlab_CPPFLAGS = @matlab_CPPFLAGS@ matlab_LDFLAGS = @matlab_LDFLAGS@ matlab_LIBS = @matlab_LIBS@ matlab_fftw3_LDFLAGS = @matlab_fftw3_LDFLAGS@ matlab_fftw3_LIBS = @matlab_fftw3_LIBS@ matlab_mexext = @matlab_mexext@ matlab_prog_mexext = @matlab_prog_mexext@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = -I$(top_srcdir)/include simple_test_SOURCES = simple_test.c simple_test_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ EXTRA_DIST = README all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/nfct/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/nfct/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list simple_test$(EXEEXT): $(simple_test_OBJECTS) $(simple_test_DEPENDENCIES) $(EXTRA_simple_test_DEPENDENCIES) @rm -f simple_test$(EXEEXT) $(LINK) $(simple_test_OBJECTS) $(simple_test_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_test.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS cscopelist ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: nfft-3.2.3/examples/nfct/simple_test.c0000644000071000003370000000443412137737443014654 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: simple_test.c 3896 2012-10-10 12:19:26Z tovo $ */ #include #include #include #include #include "nfft3util.h" #include "nfft3.h" static void simple_test_nfct_1d(void) { int j,k; nfct_plan p; int N=14; int M=19; /** init an one dimensional plan */ nfct_init_1d(&p,N,M); /** init pseudo random nodes */ for(j = 0; j < p.d*p.M_total; j++) p.x[j] = 0.5 * ((double)rand()) / RAND_MAX; /** precompute psi, the entries of the matrix B */ if( p.nfct_flags & PRE_PSI) nfct_precompute_psi( &p); /** init pseudo random Fourier coefficients and show them */ for(k = 0; k < p.N_total; k++) p.f_hat[k] = (double)rand() / RAND_MAX; nfft_vpr_double(p.f_hat,p.N_total,"given Fourier coefficients, vector f_hat"); /** direct trafo and show the result */ nfct_trafo_direct(&p); nfft_vpr_double(p.f,p.M_total,"ndct, vector f"); /** approx. trafo and show the result */ nfct_trafo(&p); nfft_vpr_double(p.f,p.M_total,"nfct, vector f"); /** approx. adjoint and show the result */ nfct_adjoint(&p); nfft_vpr_double(p.f_hat,p.N_total,"adjoint ndct, vector f_hat"); /** approx. adjoint and show the result */ nfct_adjoint_direct(&p); nfft_vpr_double(p.f_hat,p.N_total,"adjoint nfct, vector f_hat"); /** finalise the one dimensional plan */ nfct_finalize(&p); } int main(void) { system("clear"); printf("computing one dimensional ndct, nfct and adjoint ndct, nfct\n\n"); simple_test_nfct_1d(); printf("\n\n"); return 1; } nfft-3.2.3/examples/mri/0000755000071000003370000000000012137737752012073 500000000000000nfft-3.2.3/examples/mri/Makefile.am0000644000071000003370000000006712137737443014047 00000000000000# $Id: Makefile.am 3086 2009-03-11 07:36:56Z keiner $ nfft-3.2.3/examples/mri/Makefile.in0000644000071000003370000002651612137737504014065 00000000000000# Makefile.in generated by automake 1.12.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am 3086 2009-03-11 07:36:56Z keiner $ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = examples/mri DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_apple_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_cc_maxopt.m4 \ $(top_srcdir)/m4/ax_check_compiler_flags.m4 \ $(top_srcdir)/m4/ax_check_dir.m4 \ $(top_srcdir)/m4/ax_compiler_vendor.m4 \ $(top_srcdir)/m4/ax_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \ $(top_srcdir)/m4/ax_lib_fftw3.m4 \ $(top_srcdir)/m4/ax_nfft_module.m4 \ $(top_srcdir)/m4/ax_openmp.m4 \ $(top_srcdir)/m4/ax_prog_matlab.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ HAVE_FPT = @HAVE_FPT@ HAVE_MRI = @HAVE_MRI@ HAVE_NFCT = @HAVE_NFCT@ HAVE_NFSFT = @HAVE_NFSFT@ HAVE_NFSOFT = @HAVE_NFSOFT@ HAVE_NFST = @HAVE_NFST@ HAVE_NNFFT = @HAVE_NNFFT@ HAVE_NSFFT = @HAVE_NSFFT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENMP_CFLAGS = @OPENMP_CFLAGS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POW_LIB = @POW_LIB@ PRTDIAG = @PRTDIAG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHARED_VERSION_INFO = @SHARED_VERSION_INFO@ SHELL = @SHELL@ STRIP = @STRIP@ TICKS_PER_SECOND = @TICKS_PER_SECOND@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fftw3_LDFLAGS = @fftw3_LDFLAGS@ fftw3_LIBS = @fftw3_LIBS@ fftw3_threads_LIBS = @fftw3_threads_LIBS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ matlab_CPPFLAGS = @matlab_CPPFLAGS@ matlab_LDFLAGS = @matlab_LDFLAGS@ matlab_LIBS = @matlab_LIBS@ matlab_fftw3_LDFLAGS = @matlab_fftw3_LDFLAGS@ matlab_fftw3_LIBS = @matlab_fftw3_LIBS@ matlab_mexext = @matlab_mexext@ matlab_prog_mexext = @matlab_prog_mexext@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/mri/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/mri/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: nfft-3.2.3/examples/nfft/0000755000071000003370000000000012137737752012241 500000000000000nfft-3.2.3/examples/nfft/simple_test_threads.c0000644000071000003370000000407012137737443016365 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: simple_test.c 3198 2009-05-27 14:16:50Z keiner $ */ #include "config.h" #include #include #include #include #ifdef HAVE_COMPLEX_H #include #endif #include #include "nfft3util.h" #include "nfft3.h" #include "infft.h" //#include int main(void) { nfft_plan p; const int N = 1000000; const int M = 1000000; ticks t0, t1; double t; printf("nthreads = %d\n", nfft_get_num_threads()); /* init */ fftw_init_threads(); nfft_init_1d(&p,N,M); /* pseudo random nodes */ nfft_vrand_shifted_unit_double(p.x,p.M_total); /* precompute psi, that is, the entries of the matrix B */ t0 = getticks(); if(p.nfft_flags & PRE_ONE_PSI) nfft_precompute_one_psi(&p); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); fprintf(stderr,"precompute elapsed time: %.3f seconds\n",t); /* pseudo random Fourier coefficients */ nfft_vrand_unit_complex(p.f_hat,p.N_total); /* transformation */ t0 = getticks(); nfft_trafo(&p); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); fprintf(stderr,"compute elapsed time: %.3f seconds\n",t); fflush(stderr); // nfft_vpr_complex(p.f,p.M_total,"ndft, vector f"); /* cleanup */ nfft_finalize(&p); fftw_cleanup_threads(); return EXIT_SUCCESS; } nfft-3.2.3/examples/nfft/ndft_fast.c0000644000071000003370000001201012137737443014264 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: ndft_fast.c 3896 2012-10-10 12:19:26Z tovo $ */ /*! \file ndft_fast.c * * \brief Testing ndft, Horner-like ndft, and fully precomputed ndft. * * \author Stefan Kunis */ #include "config.h" #include #include #include #include #ifdef HAVE_COMPLEX_H #include #endif #include "nfft3util.h" #include "nfft3.h" #include "infft.h" static void ndft_horner_trafo(nfft_plan *ths) { int j,k; double _Complex *f_hat_k, *f_j; double _Complex exp_omega_0; for(j=0, f_j=ths->f; jM_total; j++, f_j++) (*f_j) =0; for(j=0, f_j=ths->f; jM_total; j++, f_j++) { exp_omega_0 = cexp(+2*PI*_Complex_I*ths->x[j]); for(k=0, f_hat_k= ths->f_hat; kN[0]; k++, f_hat_k++) { (*f_j)+=(*f_hat_k); (*f_j)*=exp_omega_0; } (*f_j)*=cexp(-PI*_Complex_I*ths->N[0]*ths->x[j]); } } /* ndft_horner_trafo */ static void ndft_pre_full_trafo(nfft_plan *ths, double _Complex *A) { int j,k; double _Complex *f_hat_k, *f_j; double _Complex *A_local; for(j=0, f_j=ths->f; jM_total; j++, f_j++) (*f_j) =0; for(j=0, f_j=ths->f, A_local=A; jM_total; j++, f_j++) for(k=0, f_hat_k= ths->f_hat; kN[0]; k++, f_hat_k++, A_local++) (*f_j) += (*f_hat_k)*(*A_local); } /* ndft_pre_full_trafo */ static void ndft_pre_full_init(nfft_plan *ths, double _Complex *A) { int j,k; double _Complex *f_hat_k, *f_j, *A_local; for(j=0, f_j=ths->f, A_local=A; jM_total; j++, f_j++) for(k=0, f_hat_k= ths->f_hat; kN[0]; k++, f_hat_k++, A_local++) (*A_local) = cexp(-2*PI*_Complex_I*(k-ths->N[0]/2)*ths->x[j]); } /* ndft_pre_full_init */ static void ndft_time(int N, int M, unsigned test_ndft, unsigned test_pre_full) { int r; double t, t_ndft, t_horner, t_pre_full, t_nfft; double _Complex *A = NULL; ticks t0, t1; nfft_plan np; printf("%d\t%d\t",N, M); nfft_init_1d(&np, N, M); /** init pseudo random nodes */ nfft_vrand_shifted_unit_double(np.x, np.M_total); if(test_pre_full) { A=(double _Complex*)nfft_malloc(N*M*sizeof(double _Complex)); ndft_pre_full_init(&np, A); } /** init pseudo random Fourier coefficients */ nfft_vrand_unit_complex(np.f_hat, np.N_total); /** NDFT */ if(test_ndft) { t_ndft=0; r=0; while(t_ndft<0.1) { r++; t0 = getticks(); nfft_trafo_direct(&np); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); t_ndft+=t; } t_ndft/=r; printf("%.2e\t",t_ndft); } else printf("nan\t\t"); /** Horner NDFT */ t_horner=0; r=0; while(t_horner<0.1) { r++; t0 = getticks(); ndft_horner_trafo(&np); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); t_horner+=t; } t_horner/=r; printf("%.2e\t", t_horner); /** Fully precomputed NDFT */ if(test_pre_full) { t_pre_full=0; r=0; while(t_pre_full<0.1) { r++; t0 = getticks(); ndft_pre_full_trafo(&np,A); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); t_pre_full+=t; } t_pre_full/=r; printf("%.2e\t", t_pre_full); } else printf("nan\t\t"); t_nfft=0; r=0; while(t_nfft<0.1) { r++; t0 = getticks(); nfft_trafo(&np); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); t_nfft+=t; } t_nfft/=r; printf("%.2e\n", t_nfft); fflush(stdout); if(test_pre_full) nfft_free(A); nfft_finalize(&np); } int main(int argc,char **argv) { int l,trial; if(argc<=2) { fprintf(stderr,"ndft_fast type first last trials\n"); return -1; } fprintf(stderr,"Testing ndft, Horner-like ndft, fully precomputed ndft.\n"); fprintf(stderr,"Columns: N, M, t_ndft, t_horner, t_pre_full, t_nfft\n\n"); /* time vs. N=M */ if(atoi(argv[1])==0) { for(l=atoi(argv[2]); l<=atoi(argv[3]); l++) for(trial=0; trial ndft_fast.data',0,first,last,trials)); data=load('ndft_fast.data'); N=data(1:trials:end,1); t_ndft=(mean(reshape(data(:,3),trials,last-first+1)))'; t_horner=(mean(reshape(data(:,4),trials,last-first+1)))'; t_pre_full=(mean(reshape(data(:,5),trials,last-first+1)))'; t_nfft=(mean(reshape(data(:,6),trials,last-first+1)))'; h=loglog(N,t_ndft,'k',... N,t_horner,'k--',... N,t_pre_full,'k-.',... N,10^-8*N.^2,'k:',... N,t_nfft,'kd'); set(h,'LineWidth',1.8); set(h,'MarkerSize',6); set(gca,'YTick',[10^-6,10^-4,10^-2,1,10^2]); set(gca,'XTick',[10^2,10^3,10^4,10^5,10^6]); set(gca,'FontSize',20); axis([N(1),N(end),10^-6,10^2]); print temp.eps -deps if(to_pdf) !ps2pdf temp.eps ndft_fast.pdf !rm temp.eps else !mv temp.eps ndft_fast.eps end; nfft-3.2.3/examples/nfft/nfft_times.c0000644000071000003370000005251412137737443014467 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: nfft_times.c 3896 2012-10-10 12:19:26Z tovo $ */ #include "config.h" #include #include #include #include #ifdef HAVE_COMPLEX_H #include #endif #include "nfft3util.h" #include "nfft3.h" #include "infft.h" int global_n; int global_d; static int comp1(const void *x,const void *y) { return ((* (double*) x)<(* (double*) y)?-1:1); } static int comp2(const void *x,const void *y) { int nx0,nx1,ny0,ny1; nx0=global_n*(* ((double*)x+0)); nx1=global_n*(* ((double*)x+1)); ny0=global_n*(* ((double*)y+0)); ny1=global_n*(* ((double*)y+1)); if(nx0=0?1:-1); //qsort(p.x,p.M_total,d*sizeof(double),comp1); //nfft_vpr_double(p.x,p.M_total,"nodes x"); nfft_precompute_one_psi(&p); /** init pseudo random Fourier coefficients */ nfft_vrand_unit_complex(p.f_hat, p.N_total); /** FFT */ t_fft=0; r=0; while(t_fft<0.1) { r++; t0 = getticks(); fftw_execute(p_fft); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); t_fft+=t; } t_fft/=r; printf("%.1e\t",t_fft); /** init pseudo random Fourier coefficients */ nfft_vrand_unit_complex(p.f_hat, p.N_total); /** NDFT */ if(test_ndft) { NFFT_SWAP_complex(p.f,swapndft); t_ndft=0; r=0; while(t_ndft<0.1) { r++; t0 = getticks(); nfft_trafo_direct(&p); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); t_ndft+=t; } t_ndft/=r; printf("%.1e\t",t_ndft); //printf("f=%e+i%e\t",creal(p.f[0]),cimag(p.f[0])); NFFT_SWAP_complex(p.f,swapndft); } else printf("\t"); /** NFFT */ t_nfft=0; r=0; while(t_nfft<0.1) { r++; t0 = getticks(); nfft_trafo(&p); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); t_nfft+=t; } t_nfft/=r; printf("%.1e\t",t_nfft); if(test_ndft) printf("(%.1e)\t",X(error_l_2_complex)(swapndft, p.f, p.M_total)); //printf("f=%e+i%e\t",creal(p.f[0]),cimag(p.f[0])); /** NFFT_2d */ t_nfft=0; r=0; while(t_nfft<0.1) { r++; t0 = getticks(); nfft_trafo_2d(&p); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); t_nfft+=t; } t_nfft/=r; printf("%.1e\t",t_nfft); if(test_ndft) printf("(%.1e)\t",X(error_l_2_complex)(swapndft, p.f, p.M_total)); //printf("f=%e+i%e\t",creal(p.f[0]),cimag(p.f[0])); printf("\n"); nfft_free(swapndft); fftw_destroy_plan(p_fft); nfft_finalize(&p); } void measure_time_nfft_XXX5(int d, int N, unsigned test_ndft) { int r, M, NN[d], nn[d]; double t, t_fft, t_ndft, t_nfft; ticks t0, t1; nfft_plan p; fftw_plan p_fft; printf("%d\t",(int)(log(N)/log(2)*d+0.5)); fflush(stdout); for(r=0,M=1;r taylor_nfft.data0',0,first,last,trials,2,4)); data=load('taylor_nfft.data0'); N=data(1:trials:end,1); t_nfft=(mean(reshape(data(:,6),trials,last-first+1)))'; t_taylor=(mean(reshape(data(:,10),trials,last-first+1)))'; h=loglog(N,t_taylor,'k',... N,t_nfft,'k--',... N,10^-7*N.*log(N),'k:'); set(h,'LineWidth',1.8); set(h,'MarkerSize',6); set(gca,'YTick',[10^-6,10^-4,10^-2,1,10^2]); set(gca,'XTick',[10^2,10^3,10^4,10^5,10^6]); set(gca,'FontSize',20); axis([N(1),N(end),10^-6,10^2]); print temp.eps -deps if(to_pdf) !ps2pdf temp.eps taylor_nfft0.pdf !rm temp.eps else !mv temp.eps taylor_nfft0.eps end; return %% %% Testing accuracy vs. cut-off/Taylor degree m. %% trials=10; first=1; last=20; sigma_nfft_a=2; sigma_taylor_a=2; sigma_nfft_b=1.5; sigma_taylor_b=1.5; sigma_nfft_c=16; sigma_taylor_c=16; % typical sigma system(sprintf('./taylor_nfft %d %d %d %d %f %f > taylor_nfft.data1a',1,first,... last,trials,sigma_nfft_a,sigma_taylor_a)); data=load('taylor_nfft.data1a'); m_nfft=data(1:trials:end,5); e_nfft_a=(max(reshape(data(:,7),trials,last-first+1)))'; t_nfft_a=(mean(reshape(data(:,6),trials,last-first+1)))'; m_taylor=data(1:trials:end,9); e_taylor_a=(max(reshape(data(:,11),trials,last-first+1)))'; t_taylor_a=(mean(reshape(data(:,10),trials,last-first+1)))'; % small sigma system(sprintf('./taylor_nfft %d %d %d %d %f %f > taylor_nfft.data1b',1,first,... last,trials,sigma_nfft_b,sigma_taylor_b)); data=load('taylor_nfft.data1b'); e_nfft_b=(max(reshape(data1(:,7),trials,last-first+1)))'; e_taylor_b=(max(reshape(data1(:,11),trials,last-first+1)))'; % large sigma system(sprintf('./taylor_nfft %d %d %d %d %f %f > taylor_nfft.data1c',1,first,... last,trials,sigma_nfft_c,sigma_taylor_c)); data=load('taylor_nfft.data1c'); e_nfft_c=(max(reshape(data2(:,7),trials,last-first+1)))'; e_taylor_c=(max(reshape(data2(:,11),trials,last-first+1)))'; h=semilogy(m_taylor,e_taylor_a,'kd',... m_nfft,e_nfft_a,'kx',... m_taylor,e_taylor_b,'k',... m_nfft,e_nfft_b,'k--',... m_taylor,e_taylor,'k-.',... m_nfft,e_nfft,'k:'); set(h,'LineWidth',1.8); set(h,'MarkerSize',6); set(gca,'YTick',[10^-15,10^-10,10^-5,1]); set(gca,'FontSize',20); axis([m(1),m(end),10^-13,10^-1]); print temp.eps -deps if(to_pdf) !ps2pdf temp.eps taylor_nfft1.pdf !rm temp.eps else !mv temp.eps taylor_nfft1.eps end; %% %% Testing accuracy vs. time. %% h=semilogy(avg_t_taylor,max_e_taylor,'ko',... avg_t_nfft,max_e_nfft,'kx'); set(h,'LineWidth',1.8); set(h,'MarkerSize',6); set(gca,'YTick',[10^-15,10^-10,10^-5,1]); set(gca,'FontSize',20); axis([min([t_nfft;t_taylor]),max([t_nfft;t_taylor]),10^-16,1]); print temp.eps -deps if(to_pdf) !ps2pdf temp.eps taylor_nfft3.pdf !rm temp.eps else !mv temp.eps taylor_nfft3.eps end; nfft-3.2.3/examples/nfft/flags.m0000644000071000003370000001113212137737443013426 00000000000000% Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts % % 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., 51 % Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. % % $Id: flags.m 3776 2012-06-03 13:29:25Z keiner $ %% File: flags1.m %% %% Testing different precomputation schemes for the nfft. %% 1. Computation time vs. problem size %% %% Author Stefan Kunis %% %% References: Time and memory requirements of the Nonequispaced FFT %% %% Loads flags.data0.gaussian, ... % see flags.readme trials=10; first=4; last=20; % load already computed data, times for precomputed D/B differ only negligible dg=load('flags.data0.gaussian'); dk=load('flags.data0.kaiser_bessel'); ds=load('flags.data0.sinc_power'); db=load('flags.data0.b_spline'); N=dg(1:trials:end,2); t_Dg=(mean(reshape(dg(:,6),trials,last-first+1)))'; t_Dk=(mean(reshape(dk(:,6),trials,last-first+1)))'; t_Ds=(mean(reshape(ds(:,6),trials,last-first+1)))'; t_Db=(mean(reshape(db(:,6),trials,last-first+1)))'; t_pre_phi_hut=(mean(reshape(dg(:,7),trials,last-first+1)))'; t_fftw=(mean(reshape(dg(:,8),trials,last-first+1)))'; t_Bg=(mean(reshape(dg(:,9),trials,last-first+1)))'; t_Bk=(mean(reshape(dk(:,9),trials,last-first+1)))'; t_Bs=(mean(reshape(ds(:,9),trials,last-first+1)))'; t_Bb=(mean(reshape(db(:,9),trials,last-first+1)))'; t_fg_psi=(mean(reshape(dg(:,10),trials,last-first+1)))'; t_pre_lin_psi=(mean(reshape(dg(:,11),trials,last-first+1)))'; t_pre_fg_psi=(mean(reshape(dg(:,12),trials,last-first+1)))'; t_pre_psi=(mean(reshape(dg(:,13),trials,last-first+1)))'; t_pre_full_psi=(mean(reshape(dg(:,14),trials,last-first+1)))'; h=loglog(N,t_Dg,'k',... N,t_Dk,'k--',... N,t_Ds,'k-.',... N,t_Db,'k:',... N,t_pre_phi_hut,'k.'); set(h,'LineWidth',1.8); set(h,'MarkerSize',6); set(gca,'YTick',[10^-6,10^-4,10^-2,1,10^2]); set(gca,'XTick',[10^2,10^3,10^4,10^5,10^6]); set(gca,'FontSize',20); axis([N(1),N(end),10^-6,10^1]); if(to_pdf) !ps2pdf temp.eps flags1.pdf !rm temp.eps else !mv temp.eps flags1.eps end; return %% %% Testing accuracy vs. cut-off/Taylor degree m. %% trials=20; first=1; last=20; sigma_nfft=2; sigma_taylor=4; sigma_nfft1=1.25; sigma_taylor1=1.5; sigma_nfft2=8; sigma_taylor2=16; % typical sigma system(sprintf('./taylor_nfft %d %d %d %d %f %f > taylor_nfft2a.dat',1,first,... last,trials,sigma_nfft,sigma_taylor)); data=load('taylor_nfft2a.dat'); m_nfft=data(:,5); e_nfft=data(:,7); max_e_nfft=(max(reshape(e_nfft,trials,last-first+1)))'; m_taylor=data(:,9); e_taylor=data(:,11); max_e_taylor=(max(reshape(e_taylor,trials,last-first+1)))'; % small sigma system(sprintf('./taylor_nfft %d %d %d %d %f %f > taylor_nfft2b.dat',1,first,... last,trials,sigma_nfft1,sigma_taylor1)); data1=load('taylor_nfft2b.dat'); max_e_nfft_sigma=(max(reshape(data1(:,7),trials,last-first+1)))'; max_e_taylor_sigma=(max(reshape(data1(:,11),trials,last-first+1)))'; % large sigma system(sprintf('./taylor_nfft %d %d %d %d %f %f > taylor_nfft2c.dat',1,first,... last,trials,sigma_nfft2,sigma_taylor2)); data2=load('taylor_nfft2c.dat'); max_e_nfft_sigma2=(max(reshape(data2(:,7),trials,last-first+1)))'; max_e_taylor_sigma2=(max(reshape(data2(:,11),trials,last-first+1)))'; h=semilogy(m_nfft,e_nfft,'k+',first:last,max_e_nfft,'k--',first:last,... max_e_nfft_sigma,'k:',first:last,max_e_nfft_sigma2,'k:',... m_taylor,e_taylor,'kx',first:last,max_e_taylor,'k',first:last,... max_e_taylor_sigma,'k-.',first:last,max_e_taylor_sigma2,'k-.'); set(h,'LineWidth',1.8); set(h,'MarkerSize',6); set(gca,'YTick',[10^-15,10^-10,10^-5,1]); set(gca,'FontSize',20); axis([first,last,10^-16,1]); print temp.eps -deps !ps2pdf temp.eps taylor_nfft2.pdf !rm temp.eps %% %% Testing accuracy vs. time. %% t_nfft=data(:,6); t_taylor=data(:,10); h=semilogy(t_nfft,e_nfft,'k+',t_taylor,e_taylor,'kx'); set(h,'LineWidth',1.8); set(h,'MarkerSize',6); set(gca,'YTick',[10^-15,10^-10,10^-5,1]); set(gca,'FontSize',20); axis([min([t_nfft;t_taylor]),max([t_nfft;t_taylor]),10^-16,1]); print temp.eps -deps !ps2pdf temp.eps taylor_nfft3.pdf !rm temp.eps nfft-3.2.3/examples/nfft/Makefile.am0000644000071000003370000000404312137737443014213 00000000000000# $Id: Makefile.am 3774 2012-06-01 07:41:57Z tovo $ AM_CPPFLAGS = -I$(top_srcdir)/include if HAVE_THREADS SIMPLE_TEST_THREADS=simple_test_threads else SIMPLE_TEST_THREADS= endif if HAVE_THREADS if HAVE_OPENMP NFFT_BENCHOMP_PROGS=nfft_benchomp nfft_benchomp_createdataset nfft_benchomp_detail_single nfft_benchomp_detail_threads else NFFT_BENCHOMP_PROGS= endif else NFFT_BENCHOMP_PROGS= endif noinst_PROGRAMS = simple_test $(SIMPLE_TEST_THREADS) ndft_fast taylor_nfft flags nfft_times $(NFFT_BENCHOMP_PROGS) if HAVE_THREADS simple_test_threads_SOURCES = simple_test_threads.c simple_test_threads_LDADD = $(top_builddir)/libnfft3_threads.la @fftw3_LDFLAGS@ @fftw3_threads_LIBS@ endif simple_test_SOURCES = simple_test.c simple_test_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ ndft_fast_SOURCES = ndft_fast.c ndft_fast_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ taylor_nfft_SOURCES = taylor_nfft.c taylor_nfft_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ flags_SOURCES = flags.c flags_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ nfft_times_SOURCES = nfft_times.c nfft_times_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ if HAVE_THREADS if HAVE_OPENMP nfft_benchomp_SOURCES = nfft_benchomp.c nfft_benchomp_LDADD = $(top_builddir)/libnfft3_threads.la @fftw3_LDFLAGS@ @fftw3_threads_LIBS@ nfft_benchomp_CFLAGS = $(OPENMP_CFLAGS) nfft_benchomp_createdataset_SOURCES = nfft_benchomp_createdataset.c nfft_benchomp_createdataset_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ nfft_benchomp_detail_single_SOURCES = nfft_benchomp_detail.c nfft_benchomp_detail_single_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ nfft_benchomp_detail_threads_SOURCES = nfft_benchomp_detail.c nfft_benchomp_detail_threads_LDADD = $(top_builddir)/libnfft3_threads.la @fftw3_LDFLAGS@ @fftw3_threads_LIBS@ nfft_benchomp_detail_threads_CFLAGS = $(OPENMP_CFLAGS) endif endif EXTRA_DIST = flags.m ndft_fast.m taylor_nfft.m README nfft-3.2.3/examples/nfft/flags.c0000644000071000003370000002015612137737443013422 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: flags.c 3896 2012-10-10 12:19:26Z tovo $ */ /*! \file flags.c * * \brief Testing the nfft. * * \author Stefan Kunis * * References: Time and Memory Requirements of the Nonequispaced FFT */ #include "config.h" #include #include #include #include #ifdef HAVE_COMPLEX_H #include #endif #include "nfft3util.h" #include "nfft3.h" #include "infft.h" #ifdef GAUSSIAN unsigned test_fg=1; #else unsigned test_fg=0; #endif #ifdef MEASURE_TIME_FFTW unsigned test_fftw=1; #else unsigned test_fftw=0; #endif #ifdef MEASURE_TIME unsigned test=1; #else unsigned test=0; #endif static void flags_cp(nfft_plan *dst, nfft_plan *src) { dst->x=src->x; dst->f_hat=src->f_hat; dst->f=src->f; dst->g1=src->g1; dst->g2=src->g2; dst->my_fftw_plan1=src->my_fftw_plan1; dst->my_fftw_plan2=src->my_fftw_plan2; } static void time_accuracy(int d, int N, int M, int n, int m, unsigned test_ndft, unsigned test_pre_full_psi) { int r, NN[d], nn[d]; double t_ndft, t, e; double _Complex *swapndft = NULL; ticks t0, t1; nfft_plan p; nfft_plan p_pre_phi_hut; nfft_plan p_fg_psi; nfft_plan p_pre_lin_psi; nfft_plan p_pre_fg_psi; nfft_plan p_pre_psi; nfft_plan p_pre_full_psi; printf("%d\t%d\t", d, N); for(r=0; r #include #include #include #include "config.h" #include #include #define NREPEAT 5 static FILE* file_out_tex = NULL; int get_nthreads_array(int **arr) { int max_threads = nfft_get_omp_num_threads(); int alloc_num = 2; int k; int ret_number = 0; int max_threads_pw2 = (max_threads / 2) * 2 == max_threads ? 1 : 0; if (max_threads <= 5) { *arr = (int*) malloc(max_threads*sizeof(int)); for (k = 0; k < max_threads; k++) *(*arr + k) = k+1; return max_threads; } for (k = 1; k <= max_threads; k*=2, alloc_num++); *arr = (int*) malloc(alloc_num*sizeof(int)); for (k = 1; k <= max_threads; k*=2) { if (k != max_threads && 2*k > max_threads && max_threads_pw2) { *(*arr + ret_number) = max_threads/2; ret_number++; } *(*arr + ret_number) = k; ret_number++; if (k != max_threads && 2*k > max_threads) { *(*arr + ret_number) = max_threads; ret_number++; break; } } return ret_number; } void check_result_value(const int val, const int ok, const char *msg) { if (val != ok) { fprintf(stderr, "ERROR %s: %d not %d\n", msg, val, ok); exit(1); } } void run_test_create(int d, int trafo_adjoint, int N, int M, double sigma) { char cmd[1025]; if (d==1) snprintf(cmd, 1024, "./nfft_benchomp_createdataset %d %d %d %d %lg > nfft_benchomp_test.data", d, trafo_adjoint, N, M, sigma); else if (d==2) snprintf(cmd, 1024, "./nfft_benchomp_createdataset %d %d %d %d %d %lg > nfft_benchomp_test.data", d, trafo_adjoint, N, N, M, sigma); else if (d==3) snprintf(cmd, 1024, "./nfft_benchomp_createdataset %d %d %d %d %d %d %lg > nfft_benchomp_test.data", d, trafo_adjoint, N, N, N, M, sigma); else if (d==4) snprintf(cmd, 1024, "./nfft_benchomp_createdataset %d %d %d %d %d %d %d %lg > nfft_benchomp_test.data", d, trafo_adjoint, N, N, N, N, M, sigma); else exit(1); fprintf(stderr, "%s\n", cmd); check_result_value(system(cmd), 0, "createdataset"); } void run_test_init_output() { FILE *f = fopen("nfft_benchomp_test.result", "w"); if (f!= NULL) fclose(f); } typedef struct { int d; int trafo_adjoint; int N; int M; double sigma; int m; int flags; } s_param; typedef struct { double avg; double min; double max; } s_resval; typedef struct { int nthreads; s_resval resval[6]; } s_result; typedef struct { s_param param; s_result *results; int nresults; } s_testset; void run_test(s_resval *res, int nrepeat, int m, int flags, int nthreads) { char cmd[1025]; int r,t; for (t = 0; t < 6; t++) { res[t].avg = 0.0; res[t].min = 1.0/0.0; res[t].max = 0.0; } if (nthreads < 2) snprintf(cmd, 1024, "./nfft_benchomp_detail_single %d %d < nfft_benchomp_test.data > nfft_benchomp_test.out", m, flags); else snprintf(cmd, 1024, "./nfft_benchomp_detail_threads %d %d %d < nfft_benchomp_test.data > nfft_benchomp_test.out", m, flags, nthreads); fprintf(stderr, "%s\n", cmd); check_result_value(system(cmd), 0, cmd); for (r = 0; r < nrepeat; r++) { int retval; double v[6]; FILE *f; check_result_value(system(cmd), 0, cmd); f = fopen("nfft_benchomp_test.out", "r"); retval = fscanf(f, "%lg %lg %lg %lg %lg %lg", v, v+1, v+2, v+3, v+4, v+5); check_result_value(retval, 6, "read nfft_benchomp_test.out"); fclose(f); for (t = 0; t < 6; t++) { res[t].avg += v[t]; if (res[t].min > v[t]) res[t].min = v[t]; if (res[t].max < v[t]) res[t].max = v[t]; } } for (t = 0; t < 6; t++) res[t].avg /= nrepeat; fprintf(stderr, "%d %d: ", nthreads, nrepeat); for (t = 0; t < 6; t++) fprintf(stderr, "%.3e %.3e %.3e | ", res[t].avg, res[t].min, res[t].max); fprintf(stderr, "\n"); } const char *get_psi_string(int flags) { if (flags & PRE_ONE_PSI) return "unknownPSI"; return "nopsi"; } const char *get_sort_string(int flags) { if (flags & NFFT_SORT_NODES) return "sorted"; return "unsorted"; } const char *get_adjoint_omp_string(int flags) { if (flags & NFFT_OMP_BLOCKWISE_ADJOINT) return "blockwise"; return ""; } #define MASK_D (1U<<0) #define MASK_TA (1U<<1) #define MASK_N (1U<<2) #define MASK_SIGMA (1U<<3) #define MASK_M (1U<<4) #define MASK_WINM (1U<<5) #define MASK_FLAGS_PSI (1U<<6) #define MASK_FLAGS_SORT (1U<<7) #define MASK_FLAGS_BW (1U<<8) unsigned int determine_different_parameters(s_testset *testsets, int ntestsets) { int t; unsigned int mask = 0; if (ntestsets < 2) return 0; for (t = 1; t < ntestsets; t++) { if (testsets[t-1].param.d != testsets[t].param.d) mask |= MASK_D; if (testsets[t-1].param.trafo_adjoint != testsets[t].param.trafo_adjoint) mask |= MASK_TA; if (testsets[t-1].param.N != testsets[t].param.N) mask |= MASK_N; if (testsets[t-1].param.sigma != testsets[t].param.sigma) mask |= MASK_SIGMA; if (testsets[t-1].param.M != testsets[t].param.M) mask |= MASK_M; if (testsets[t-1].param.m != testsets[t].param.m) mask |= MASK_WINM; if ((testsets[t-1].param.flags & PRE_ONE_PSI) != (testsets[t].param.flags & PRE_ONE_PSI)) mask |= MASK_FLAGS_PSI; if ((testsets[t-1].param.flags & NFFT_SORT_NODES) != (testsets[t].param.flags & NFFT_SORT_NODES)) mask |= MASK_FLAGS_SORT; if ((testsets[t-1].param.flags & NFFT_OMP_BLOCKWISE_ADJOINT) != (testsets[t].param.flags & NFFT_OMP_BLOCKWISE_ADJOINT)) mask |= MASK_FLAGS_BW; } return mask; } void get_plot_title(char *outstr, int maxlen, char *hostname, s_param param, unsigned int diff_mask) { unsigned int mask = ~diff_mask; int offset = 0; int len; len = snprintf(outstr, maxlen, "%s", hostname); if (len < 0 || len+offset >= maxlen-1) return; offset += len; if (mask & MASK_D) { len = snprintf(outstr+offset, maxlen-offset, " %dd", param.d); if (len < 0 || len+offset >= maxlen-1) return; offset += len; } if (mask & MASK_TA) { len = snprintf(outstr+offset, maxlen-offset, " $\\mathrm{NFFT}%s$", param.trafo_adjoint==0?"":"^\\top"); if (len < 0 || len+offset >= maxlen-1) return; offset += len; } if (mask & MASK_N) { len = snprintf(outstr+offset, maxlen-offset, " N=%d", param.N); if (len < 0 || len+offset >= maxlen-1) return; offset += len; } if (mask & MASK_SIGMA) { len = snprintf(outstr+offset, maxlen-offset, " N=%g", param.sigma); if (len < 0 || len+offset >= maxlen-1) return; offset += len; } if (mask & MASK_M) { len = snprintf(outstr+offset, maxlen-offset, " M=%d", param.M); if (len < 0 || len+offset >= maxlen-1) return; offset += len; } if (mask & MASK_WINM) { len = snprintf(outstr+offset, maxlen-offset, " m=%d", param.m); if (len < 0 || len+offset >= maxlen-1) return; offset += len; } if (mask & MASK_FLAGS_PSI) { len = snprintf(outstr+offset, maxlen-offset, " %s", get_psi_string(param.flags)); if (len < 0 || len+offset >= maxlen-1) return; offset += len; } if (mask & MASK_FLAGS_SORT) { len = snprintf(outstr+offset, maxlen-offset, " %s", get_sort_string(param.flags)); if (len < 0 || len+offset >= maxlen-1) return; offset += len; } if ((mask & MASK_FLAGS_BW) && strlen(get_adjoint_omp_string(param.flags)) > 0) { len = snprintf(outstr+offset, maxlen-offset, " %s", get_adjoint_omp_string(param.flags)); if (len < 0 || len+offset >= maxlen-1) return; offset += len; } } void print_output_speedup_total_tref(FILE *out, s_testset *testsets, int ntestsets, double tref) { int i, t; char hostname[1025]; char plottitle[1025]; unsigned int diff_mask = determine_different_parameters(testsets, ntestsets); if (gethostname(hostname, 1024) != 0) strncpy(hostname, "unnamed", 1024); get_plot_title(plottitle, 1024, hostname, testsets[0].param, diff_mask | MASK_FLAGS_SORT); fprintf(out, "\\begin{tikzpicture}\n"); fprintf(out, "\\begin{axis}["); fprintf(out, "width=0.9\\textwidth, height=0.6\\textwidth, x tick label style={ /pgf/number format/1000 sep=}, xlabel=Number of threads, ylabel=Speedup, xtick=data, legend style={ legend pos = north west, legend columns=1}, ymajorgrids=true, yminorgrids=true, minor y tick num=4, "); fprintf(out, " title={%s}", plottitle); fprintf(out, " ]\n"); for (t = 0; t < ntestsets; t++) { s_testset testset = testsets[t]; fprintf(stderr, "%s %dd $\\mathrm{NFFT}%s$ N=%d $\\sigma$=%g M=%d m=%d %s %s %s}", hostname, testset.param.d, testset.param.trafo_adjoint==0?"":"^\\top", testset.param.N, testset.param.sigma, testset.param.M, testset.param.m, get_psi_string(testset.param.flags), get_sort_string(testset.param.flags), get_adjoint_omp_string(testset.param.flags)); fprintf(stderr, "\n"); fprintf(out, "\\addplot coordinates {"); for (i = 0; i < testset.nresults; i++) fprintf(out, "(%d, %.6e) ", testset.results[i].nthreads, tref/testset.results[i].resval[5].avg); fprintf(out, "};\n"); for (i = 0; i < testset.nresults; i++) { fprintf(stderr, "%d:%.3f ", testset.results[i].nthreads, tref/testset.results[i].resval[5].avg); } fprintf(stderr, "\n\n"); } fprintf(out, "\\legend{{"); for (t = 0; t < ntestsets; t++) { char title[256]; if (t > 0) fprintf(out, "},{"); get_plot_title(title, 255, "", testsets[t].param, ~(diff_mask | MASK_FLAGS_SORT)); fprintf(out, "%s", title); } fprintf(out, "}}\n"); fprintf(out, "\\end{axis}\n"); fprintf(out, "\\end{tikzpicture}\n"); fprintf(out, "\n\n"); fflush(out); } void print_output_speedup_total(FILE *out, s_testset *testsets, int ntestsets) { double tref = 1.0/0.0; int t, k; for (t = 0; t < ntestsets; t++) for (k = 0; k < testsets[t].nresults; k++) if (testsets[t].results[k].nthreads == 1 && testsets[t].results[k].resval[5].avg < tref) tref = testsets[t].results[k].resval[5].avg; print_output_speedup_total_tref(out, testsets, ntestsets, tref); } void print_output_histo_DFBRT(FILE *out, s_testset testset) { int i, size = testset.nresults; char hostname[1025]; if (gethostname(hostname, 1024) != 0) strncpy(hostname, "unnamed", 1024); fprintf(out, "\\begin{tikzpicture}\n"); fprintf(out, "\\begin{axis}["); fprintf(out, "width=0.9\\textwidth, height=0.6\\textwidth, "); fprintf(out, "symbolic x coords={"); for (i = 0; i < size; i++) if (i > 0) fprintf(out, ",%d", testset.results[i].nthreads); else fprintf(out, "%d", testset.results[i].nthreads); fprintf(stderr, "FLAGS: %d\n", testset.param.flags); fprintf(out, "}, x tick label style={ /pgf/number format/1000 sep=}, xlabel=Number of threads, ylabel=Time in s, xtick=data, legend style={legend columns=-1}, ybar, bar width=7pt, ymajorgrids=true, yminorgrids=true, minor y tick num=1, "); fprintf(out, " title={%s %dd $\\mathrm{NFFT}%s$ N=%d $\\sigma$=%g M=%d m=%d %s %s %s}", hostname, testset.param.d, testset.param.trafo_adjoint==0?"":"^\\top", testset.param.N, testset.param.sigma, testset.param.M, testset.param.m, get_psi_string(testset.param.flags), get_sort_string(testset.param.flags), get_adjoint_omp_string(testset.param.flags)); fprintf(out, " ]\n"); fprintf(out, "\\addplot coordinates {"); for (i = 0; i < size; i++) fprintf(out, "(%d, %.6e) ", testset.results[i].nthreads, testset.results[i].resval[1].avg); fprintf(out, "};\n"); fprintf(out, "\\addplot coordinates {"); for (i = 0; i < size; i++) fprintf(out, "(%d, %.6e) ", testset.results[i].nthreads, testset.results[i].resval[2].avg); fprintf(out, "};\n"); fprintf(out, "\\addplot coordinates {"); for (i = 0; i < size; i++) fprintf(out, "(%d, %.6e) ", testset.results[i].nthreads, testset.results[i].resval[3].avg); fprintf(out, "};\n"); fprintf(out, "\\addplot coordinates {"); for (i = 0; i < size; i++) fprintf(out, "(%d, %.6e) ", testset.results[i].nthreads, testset.results[i].resval[0].avg + testset.results[i].resval[4].avg); fprintf(out, "};\n"); fprintf(out, "\\addplot coordinates {"); for (i = 0; i < size; i++) fprintf(out, "(%d, %.6e) ", testset.results[i].nthreads, testset.results[i].resval[5].avg); fprintf(out, "};\n"); fprintf(out, "\\legend{D,F,B,rest,total}\n"); fprintf(out, "\\end{axis}\n"); fprintf(out, "\\end{tikzpicture}\n"); fprintf(out, "\n\n"); fflush(out); } void run_testset(s_testset *testset, int d, int trafo_adjoint, int N, int M, double sigma, int m, int flags, int *nthreads_array, int n_threads_array_size) { int i; testset->param.d = d; testset->param.trafo_adjoint = trafo_adjoint; testset->param.N = N; testset->param.M = M; testset->param.sigma = sigma; testset->param.m = m; testset->param.flags = flags; testset->results = (s_result*) malloc(n_threads_array_size*sizeof(s_result)); testset->nresults = n_threads_array_size; run_test_create(testset->param.d, testset->param.trafo_adjoint, testset->param.N, testset->param.M, testset->param.sigma); for (i = 0; i < n_threads_array_size; i++) { testset->results[i].nthreads = nthreads_array[i]; run_test(testset->results[i].resval, NREPEAT, testset->param.m, testset->param.flags, testset->results[i].nthreads = nthreads_array[i]); } } void test1(int *nthreads_array, int n_threads_array_size, int m) { s_testset testsets[15]; run_testset(&testsets[0], 1, 0, 2097152, 2097152, 2.0, m, 0, nthreads_array, n_threads_array_size); #if defined MEASURE_TIME && defined MEASURE_TIME_FFTW print_output_histo_DFBRT(file_out_tex, testsets[0]); #endif run_testset(&testsets[1], 1, 0, 2097152, 2097152, 2.0, m, NFFT_SORT_NODES, nthreads_array, n_threads_array_size); #if defined MEASURE_TIME && defined MEASURE_TIME_FFTW print_output_histo_DFBRT(file_out_tex, testsets[1]); #endif print_output_speedup_total(file_out_tex, testsets, 2); run_testset(&testsets[2], 1, 1, 2097152, 2097152, 2.0, m, 0, nthreads_array, n_threads_array_size); #if defined MEASURE_TIME && defined MEASURE_TIME_FFTW print_output_histo_DFBRT(file_out_tex, testsets[2]); #endif run_testset(&testsets[3], 1, 1, 2097152, 2097152, 2.0, m, NFFT_SORT_NODES, nthreads_array, n_threads_array_size); #if defined MEASURE_TIME && defined MEASURE_TIME_FFTW print_output_histo_DFBRT(file_out_tex, testsets[3]); #endif run_testset(&testsets[4], 1, 1, 2097152, 2097152, 2.0, m, NFFT_SORT_NODES | NFFT_OMP_BLOCKWISE_ADJOINT, nthreads_array, n_threads_array_size); #if defined MEASURE_TIME && defined MEASURE_TIME_FFTW print_output_histo_DFBRT(file_out_tex, testsets[4]); #endif print_output_speedup_total(file_out_tex, testsets+2, 3); run_testset(&testsets[5], 2, 0, 1024, 1048576, 2.0, m, 0, nthreads_array, n_threads_array_size); #if defined MEASURE_TIME && defined MEASURE_TIME_FFTW print_output_histo_DFBRT(file_out_tex, testsets[5]); #endif run_testset(&testsets[6], 2, 0, 1024, 1048576, 2.0, m, NFFT_SORT_NODES, nthreads_array, n_threads_array_size); #if defined MEASURE_TIME && defined MEASURE_TIME_FFTW print_output_histo_DFBRT(file_out_tex, testsets[6]); #endif print_output_speedup_total(file_out_tex, testsets+5, 2); run_testset(&testsets[7], 2, 1, 1024, 1048576, 2.0, m, 0, nthreads_array, n_threads_array_size); #if defined MEASURE_TIME && defined MEASURE_TIME_FFTW print_output_histo_DFBRT(file_out_tex, testsets[7]); #endif run_testset(&testsets[8], 2, 1, 1024, 1048576, 2.0, m, NFFT_SORT_NODES, nthreads_array, n_threads_array_size); #if defined MEASURE_TIME && defined MEASURE_TIME_FFTW print_output_histo_DFBRT(file_out_tex, testsets[8]); #endif run_testset(&testsets[9], 2, 1, 1024, 1048576, 2.0, m, NFFT_SORT_NODES | NFFT_OMP_BLOCKWISE_ADJOINT, nthreads_array, n_threads_array_size); #if defined MEASURE_TIME && defined MEASURE_TIME_FFTW print_output_histo_DFBRT(file_out_tex, testsets[9]); #endif print_output_speedup_total(file_out_tex, testsets+7, 3); run_testset(&testsets[10], 3, 0, 128, 2097152, 2.0, m, 0, nthreads_array, n_threads_array_size); #if defined MEASURE_TIME && defined MEASURE_TIME_FFTW print_output_histo_DFBRT(file_out_tex, testsets[10]); #endif run_testset(&testsets[11], 3, 0, 128, 2097152, 2.0, m, NFFT_SORT_NODES, nthreads_array, n_threads_array_size); #if defined MEASURE_TIME && defined MEASURE_TIME_FFTW print_output_histo_DFBRT(file_out_tex, testsets[11]); #endif print_output_speedup_total(file_out_tex, testsets+10, 2); run_testset(&testsets[12], 3, 1, 128, 2097152, 2.0, m, 0, nthreads_array, n_threads_array_size); #if defined MEASURE_TIME && defined MEASURE_TIME_FFTW print_output_histo_DFBRT(file_out_tex, testsets[12]); #endif run_testset(&testsets[13], 3, 1, 128, 2097152, 2.0, m, NFFT_SORT_NODES, nthreads_array, n_threads_array_size); #if defined MEASURE_TIME && defined MEASURE_TIME_FFTW print_output_histo_DFBRT(file_out_tex, testsets[13]); #endif run_testset(&testsets[14], 3, 1, 128, 2097152, 2.0, m, NFFT_SORT_NODES | NFFT_OMP_BLOCKWISE_ADJOINT, nthreads_array, n_threads_array_size); #if defined MEASURE_TIME && defined MEASURE_TIME_FFTW print_output_histo_DFBRT(file_out_tex, testsets[14]); #endif print_output_speedup_total(file_out_tex, testsets+12, 3); } int main(int argc, char** argv) { int *nthreads_array; int n_threads_array_size = get_nthreads_array(&nthreads_array); int k; #if !(defined MEASURE_TIME && defined MEASURE_TIME_FFTW) fprintf(stderr, "WARNING: Detailed time measurements for NFFT are not activated.\n"); fprintf(stderr, "For more detailed plots, please re-run the configure script with options\n"); fprintf(stderr, "--enable-measure-time --enable-measure-time-fftw --enable-openmp\n"); fprintf(stderr, "and run \"make clean all\"\n\n"); #endif for (k = 0; k < n_threads_array_size; k++) fprintf(stderr, "%d ", nthreads_array[k]); fprintf(stderr, "\n"); file_out_tex = fopen("nfft_benchomp_results_plots.tex", "w"); test1(nthreads_array, n_threads_array_size, 2); test1(nthreads_array, n_threads_array_size, 4); test1(nthreads_array, n_threads_array_size, 6); fclose(file_out_tex); return 0; } nfft-3.2.3/examples/nfft/nfft_benchomp_detail.c0000644000071000003370000000711412137737443016457 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: simple_test.c 3372 2009-10-21 06:04:05Z skunis $ */ #include #include #include #include #include #include "nfft3util.h" #include "nfft3.h" #include "infft.h" #ifdef _OPENMP #include #endif void bench_openmp(FILE *infile, int m, int psi_flag) { nfft_plan p; int *N; int *n; int M, d, trafo_adjoint; int t, j; double re,im; ticks t0, t1; double tt_total, tt_preonepsi; fscanf(infile, "%d %d", &d, &trafo_adjoint); N = malloc(d*sizeof(int)); n = malloc(d*sizeof(int)); for (t=0; t List of files and purpose README this file simple_test.c introductory example how to use the nfft flags.c compares different precomputation strategies for the nfft flags.m visualisation with MATLAB, loads data files 'flags.data0.gaussian', ... (previously computed by the executable flags (where the window function has to be set and the whole library needs recompilation); calls also the executable taylor_nfft ndft_fast.c compares different precomputation strategies for the ndft ndft_fast.m visualisation with MATLAB, calls the executable ndft_fast nfft_benchomp.c runs benchmarks for nfft OpenMP code and writes results as pgfplots to nfft_benchomp_results_plots.tex, uses nfft_benchomp_createdataset.c and nfft_benchomp_detail.c nfft_times.c compares 1d, 2d, and 3d times to compute nffts and ffts, outputs a latex-table taylor_nfft.c compares the nfft with a taylor expansion based one taylor_nfft.m visualisation with MATLAB, calls the executable taylor_nfft References Kunis, S. and Potts, D. Time and memory requirements of the nonequispaced FFT Preprint 2006-1, Chemnitz University of Technology, Faculty of Mathematics nfft-3.2.3/examples/nfft/Makefile.in0000644000071000003370000007271112137737504014231 00000000000000# Makefile.in generated by automake 1.12.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am 3774 2012-06-01 07:41:57Z tovo $ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = simple_test$(EXEEXT) $(am__EXEEXT_1) \ ndft_fast$(EXEEXT) taylor_nfft$(EXEEXT) flags$(EXEEXT) \ nfft_times$(EXEEXT) $(am__EXEEXT_2) subdir = examples/nfft DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_apple_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_cc_maxopt.m4 \ $(top_srcdir)/m4/ax_check_compiler_flags.m4 \ $(top_srcdir)/m4/ax_check_dir.m4 \ $(top_srcdir)/m4/ax_compiler_vendor.m4 \ $(top_srcdir)/m4/ax_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \ $(top_srcdir)/m4/ax_lib_fftw3.m4 \ $(top_srcdir)/m4/ax_nfft_module.m4 \ $(top_srcdir)/m4/ax_openmp.m4 \ $(top_srcdir)/m4/ax_prog_matlab.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @HAVE_THREADS_TRUE@am__EXEEXT_1 = simple_test_threads$(EXEEXT) @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@am__EXEEXT_2 = \ @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@ nfft_benchomp$(EXEEXT) \ @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@ nfft_benchomp_createdataset$(EXEEXT) \ @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@ nfft_benchomp_detail_single$(EXEEXT) \ @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@ nfft_benchomp_detail_threads$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) am_flags_OBJECTS = flags.$(OBJEXT) flags_OBJECTS = $(am_flags_OBJECTS) flags_DEPENDENCIES = $(top_builddir)/libnfft3.la am_ndft_fast_OBJECTS = ndft_fast.$(OBJEXT) ndft_fast_OBJECTS = $(am_ndft_fast_OBJECTS) ndft_fast_DEPENDENCIES = $(top_builddir)/libnfft3.la am__nfft_benchomp_SOURCES_DIST = nfft_benchomp.c @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@am_nfft_benchomp_OBJECTS = nfft_benchomp-nfft_benchomp.$(OBJEXT) nfft_benchomp_OBJECTS = $(am_nfft_benchomp_OBJECTS) @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfft_benchomp_DEPENDENCIES = $(top_builddir)/libnfft3_threads.la nfft_benchomp_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(nfft_benchomp_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ am__nfft_benchomp_createdataset_SOURCES_DIST = \ nfft_benchomp_createdataset.c @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@am_nfft_benchomp_createdataset_OBJECTS = nfft_benchomp_createdataset.$(OBJEXT) nfft_benchomp_createdataset_OBJECTS = \ $(am_nfft_benchomp_createdataset_OBJECTS) @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfft_benchomp_createdataset_DEPENDENCIES = $(top_builddir)/libnfft3.la am__nfft_benchomp_detail_single_SOURCES_DIST = nfft_benchomp_detail.c @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@am_nfft_benchomp_detail_single_OBJECTS = nfft_benchomp_detail.$(OBJEXT) nfft_benchomp_detail_single_OBJECTS = \ $(am_nfft_benchomp_detail_single_OBJECTS) @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfft_benchomp_detail_single_DEPENDENCIES = $(top_builddir)/libnfft3.la am__nfft_benchomp_detail_threads_SOURCES_DIST = \ nfft_benchomp_detail.c @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@am_nfft_benchomp_detail_threads_OBJECTS = nfft_benchomp_detail_threads-nfft_benchomp_detail.$(OBJEXT) nfft_benchomp_detail_threads_OBJECTS = \ $(am_nfft_benchomp_detail_threads_OBJECTS) @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfft_benchomp_detail_threads_DEPENDENCIES = $(top_builddir)/libnfft3_threads.la nfft_benchomp_detail_threads_LINK = $(LIBTOOL) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(nfft_benchomp_detail_threads_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ am_nfft_times_OBJECTS = nfft_times.$(OBJEXT) nfft_times_OBJECTS = $(am_nfft_times_OBJECTS) nfft_times_DEPENDENCIES = $(top_builddir)/libnfft3.la am_simple_test_OBJECTS = simple_test.$(OBJEXT) simple_test_OBJECTS = $(am_simple_test_OBJECTS) simple_test_DEPENDENCIES = $(top_builddir)/libnfft3.la am__simple_test_threads_SOURCES_DIST = simple_test_threads.c @HAVE_THREADS_TRUE@am_simple_test_threads_OBJECTS = \ @HAVE_THREADS_TRUE@ simple_test_threads.$(OBJEXT) simple_test_threads_OBJECTS = $(am_simple_test_threads_OBJECTS) @HAVE_THREADS_TRUE@simple_test_threads_DEPENDENCIES = \ @HAVE_THREADS_TRUE@ $(top_builddir)/libnfft3_threads.la am_taylor_nfft_OBJECTS = taylor_nfft.$(OBJEXT) taylor_nfft_OBJECTS = $(am_taylor_nfft_OBJECTS) taylor_nfft_DEPENDENCIES = $(top_builddir)/libnfft3.la DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(flags_SOURCES) $(ndft_fast_SOURCES) \ $(nfft_benchomp_SOURCES) \ $(nfft_benchomp_createdataset_SOURCES) \ $(nfft_benchomp_detail_single_SOURCES) \ $(nfft_benchomp_detail_threads_SOURCES) $(nfft_times_SOURCES) \ $(simple_test_SOURCES) $(simple_test_threads_SOURCES) \ $(taylor_nfft_SOURCES) DIST_SOURCES = $(flags_SOURCES) $(ndft_fast_SOURCES) \ $(am__nfft_benchomp_SOURCES_DIST) \ $(am__nfft_benchomp_createdataset_SOURCES_DIST) \ $(am__nfft_benchomp_detail_single_SOURCES_DIST) \ $(am__nfft_benchomp_detail_threads_SOURCES_DIST) \ $(nfft_times_SOURCES) $(simple_test_SOURCES) \ $(am__simple_test_threads_SOURCES_DIST) $(taylor_nfft_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ HAVE_FPT = @HAVE_FPT@ HAVE_MRI = @HAVE_MRI@ HAVE_NFCT = @HAVE_NFCT@ HAVE_NFSFT = @HAVE_NFSFT@ HAVE_NFSOFT = @HAVE_NFSOFT@ HAVE_NFST = @HAVE_NFST@ HAVE_NNFFT = @HAVE_NNFFT@ HAVE_NSFFT = @HAVE_NSFFT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENMP_CFLAGS = @OPENMP_CFLAGS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POW_LIB = @POW_LIB@ PRTDIAG = @PRTDIAG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHARED_VERSION_INFO = @SHARED_VERSION_INFO@ SHELL = @SHELL@ STRIP = @STRIP@ TICKS_PER_SECOND = @TICKS_PER_SECOND@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fftw3_LDFLAGS = @fftw3_LDFLAGS@ fftw3_LIBS = @fftw3_LIBS@ fftw3_threads_LIBS = @fftw3_threads_LIBS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ matlab_CPPFLAGS = @matlab_CPPFLAGS@ matlab_LDFLAGS = @matlab_LDFLAGS@ matlab_LIBS = @matlab_LIBS@ matlab_fftw3_LDFLAGS = @matlab_fftw3_LDFLAGS@ matlab_fftw3_LIBS = @matlab_fftw3_LIBS@ matlab_mexext = @matlab_mexext@ matlab_prog_mexext = @matlab_prog_mexext@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = -I$(top_srcdir)/include @HAVE_THREADS_FALSE@SIMPLE_TEST_THREADS = @HAVE_THREADS_TRUE@SIMPLE_TEST_THREADS = simple_test_threads @HAVE_OPENMP_FALSE@@HAVE_THREADS_TRUE@NFFT_BENCHOMP_PROGS = @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@NFFT_BENCHOMP_PROGS = nfft_benchomp nfft_benchomp_createdataset nfft_benchomp_detail_single nfft_benchomp_detail_threads @HAVE_THREADS_FALSE@NFFT_BENCHOMP_PROGS = @HAVE_THREADS_TRUE@simple_test_threads_SOURCES = simple_test_threads.c @HAVE_THREADS_TRUE@simple_test_threads_LDADD = $(top_builddir)/libnfft3_threads.la @fftw3_LDFLAGS@ @fftw3_threads_LIBS@ simple_test_SOURCES = simple_test.c simple_test_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ ndft_fast_SOURCES = ndft_fast.c ndft_fast_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ taylor_nfft_SOURCES = taylor_nfft.c taylor_nfft_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ flags_SOURCES = flags.c flags_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ nfft_times_SOURCES = nfft_times.c nfft_times_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfft_benchomp_SOURCES = nfft_benchomp.c @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfft_benchomp_LDADD = $(top_builddir)/libnfft3_threads.la @fftw3_LDFLAGS@ @fftw3_threads_LIBS@ @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfft_benchomp_CFLAGS = $(OPENMP_CFLAGS) @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfft_benchomp_createdataset_SOURCES = nfft_benchomp_createdataset.c @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfft_benchomp_createdataset_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfft_benchomp_detail_single_SOURCES = nfft_benchomp_detail.c @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfft_benchomp_detail_single_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfft_benchomp_detail_threads_SOURCES = nfft_benchomp_detail.c @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfft_benchomp_detail_threads_LDADD = $(top_builddir)/libnfft3_threads.la @fftw3_LDFLAGS@ @fftw3_threads_LIBS@ @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfft_benchomp_detail_threads_CFLAGS = $(OPENMP_CFLAGS) EXTRA_DIST = flags.m ndft_fast.m taylor_nfft.m README all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/nfft/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/nfft/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list flags$(EXEEXT): $(flags_OBJECTS) $(flags_DEPENDENCIES) $(EXTRA_flags_DEPENDENCIES) @rm -f flags$(EXEEXT) $(LINK) $(flags_OBJECTS) $(flags_LDADD) $(LIBS) ndft_fast$(EXEEXT): $(ndft_fast_OBJECTS) $(ndft_fast_DEPENDENCIES) $(EXTRA_ndft_fast_DEPENDENCIES) @rm -f ndft_fast$(EXEEXT) $(LINK) $(ndft_fast_OBJECTS) $(ndft_fast_LDADD) $(LIBS) nfft_benchomp$(EXEEXT): $(nfft_benchomp_OBJECTS) $(nfft_benchomp_DEPENDENCIES) $(EXTRA_nfft_benchomp_DEPENDENCIES) @rm -f nfft_benchomp$(EXEEXT) $(nfft_benchomp_LINK) $(nfft_benchomp_OBJECTS) $(nfft_benchomp_LDADD) $(LIBS) nfft_benchomp_createdataset$(EXEEXT): $(nfft_benchomp_createdataset_OBJECTS) $(nfft_benchomp_createdataset_DEPENDENCIES) $(EXTRA_nfft_benchomp_createdataset_DEPENDENCIES) @rm -f nfft_benchomp_createdataset$(EXEEXT) $(LINK) $(nfft_benchomp_createdataset_OBJECTS) $(nfft_benchomp_createdataset_LDADD) $(LIBS) nfft_benchomp_detail_single$(EXEEXT): $(nfft_benchomp_detail_single_OBJECTS) $(nfft_benchomp_detail_single_DEPENDENCIES) $(EXTRA_nfft_benchomp_detail_single_DEPENDENCIES) @rm -f nfft_benchomp_detail_single$(EXEEXT) $(LINK) $(nfft_benchomp_detail_single_OBJECTS) $(nfft_benchomp_detail_single_LDADD) $(LIBS) nfft_benchomp_detail_threads$(EXEEXT): $(nfft_benchomp_detail_threads_OBJECTS) $(nfft_benchomp_detail_threads_DEPENDENCIES) $(EXTRA_nfft_benchomp_detail_threads_DEPENDENCIES) @rm -f nfft_benchomp_detail_threads$(EXEEXT) $(nfft_benchomp_detail_threads_LINK) $(nfft_benchomp_detail_threads_OBJECTS) $(nfft_benchomp_detail_threads_LDADD) $(LIBS) nfft_times$(EXEEXT): $(nfft_times_OBJECTS) $(nfft_times_DEPENDENCIES) $(EXTRA_nfft_times_DEPENDENCIES) @rm -f nfft_times$(EXEEXT) $(LINK) $(nfft_times_OBJECTS) $(nfft_times_LDADD) $(LIBS) simple_test$(EXEEXT): $(simple_test_OBJECTS) $(simple_test_DEPENDENCIES) $(EXTRA_simple_test_DEPENDENCIES) @rm -f simple_test$(EXEEXT) $(LINK) $(simple_test_OBJECTS) $(simple_test_LDADD) $(LIBS) simple_test_threads$(EXEEXT): $(simple_test_threads_OBJECTS) $(simple_test_threads_DEPENDENCIES) $(EXTRA_simple_test_threads_DEPENDENCIES) @rm -f simple_test_threads$(EXEEXT) $(LINK) $(simple_test_threads_OBJECTS) $(simple_test_threads_LDADD) $(LIBS) taylor_nfft$(EXEEXT): $(taylor_nfft_OBJECTS) $(taylor_nfft_DEPENDENCIES) $(EXTRA_taylor_nfft_DEPENDENCIES) @rm -f taylor_nfft$(EXEEXT) $(LINK) $(taylor_nfft_OBJECTS) $(taylor_nfft_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flags.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ndft_fast.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nfft_benchomp-nfft_benchomp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nfft_benchomp_createdataset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nfft_benchomp_detail.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nfft_benchomp_detail_threads-nfft_benchomp_detail.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nfft_times.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_test.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_test_threads.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/taylor_nfft.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< nfft_benchomp-nfft_benchomp.o: nfft_benchomp.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nfft_benchomp_CFLAGS) $(CFLAGS) -MT nfft_benchomp-nfft_benchomp.o -MD -MP -MF $(DEPDIR)/nfft_benchomp-nfft_benchomp.Tpo -c -o nfft_benchomp-nfft_benchomp.o `test -f 'nfft_benchomp.c' || echo '$(srcdir)/'`nfft_benchomp.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/nfft_benchomp-nfft_benchomp.Tpo $(DEPDIR)/nfft_benchomp-nfft_benchomp.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nfft_benchomp.c' object='nfft_benchomp-nfft_benchomp.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nfft_benchomp_CFLAGS) $(CFLAGS) -c -o nfft_benchomp-nfft_benchomp.o `test -f 'nfft_benchomp.c' || echo '$(srcdir)/'`nfft_benchomp.c nfft_benchomp-nfft_benchomp.obj: nfft_benchomp.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nfft_benchomp_CFLAGS) $(CFLAGS) -MT nfft_benchomp-nfft_benchomp.obj -MD -MP -MF $(DEPDIR)/nfft_benchomp-nfft_benchomp.Tpo -c -o nfft_benchomp-nfft_benchomp.obj `if test -f 'nfft_benchomp.c'; then $(CYGPATH_W) 'nfft_benchomp.c'; else $(CYGPATH_W) '$(srcdir)/nfft_benchomp.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/nfft_benchomp-nfft_benchomp.Tpo $(DEPDIR)/nfft_benchomp-nfft_benchomp.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nfft_benchomp.c' object='nfft_benchomp-nfft_benchomp.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nfft_benchomp_CFLAGS) $(CFLAGS) -c -o nfft_benchomp-nfft_benchomp.obj `if test -f 'nfft_benchomp.c'; then $(CYGPATH_W) 'nfft_benchomp.c'; else $(CYGPATH_W) '$(srcdir)/nfft_benchomp.c'; fi` nfft_benchomp_detail_threads-nfft_benchomp_detail.o: nfft_benchomp_detail.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nfft_benchomp_detail_threads_CFLAGS) $(CFLAGS) -MT nfft_benchomp_detail_threads-nfft_benchomp_detail.o -MD -MP -MF $(DEPDIR)/nfft_benchomp_detail_threads-nfft_benchomp_detail.Tpo -c -o nfft_benchomp_detail_threads-nfft_benchomp_detail.o `test -f 'nfft_benchomp_detail.c' || echo '$(srcdir)/'`nfft_benchomp_detail.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/nfft_benchomp_detail_threads-nfft_benchomp_detail.Tpo $(DEPDIR)/nfft_benchomp_detail_threads-nfft_benchomp_detail.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nfft_benchomp_detail.c' object='nfft_benchomp_detail_threads-nfft_benchomp_detail.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nfft_benchomp_detail_threads_CFLAGS) $(CFLAGS) -c -o nfft_benchomp_detail_threads-nfft_benchomp_detail.o `test -f 'nfft_benchomp_detail.c' || echo '$(srcdir)/'`nfft_benchomp_detail.c nfft_benchomp_detail_threads-nfft_benchomp_detail.obj: nfft_benchomp_detail.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nfft_benchomp_detail_threads_CFLAGS) $(CFLAGS) -MT nfft_benchomp_detail_threads-nfft_benchomp_detail.obj -MD -MP -MF $(DEPDIR)/nfft_benchomp_detail_threads-nfft_benchomp_detail.Tpo -c -o nfft_benchomp_detail_threads-nfft_benchomp_detail.obj `if test -f 'nfft_benchomp_detail.c'; then $(CYGPATH_W) 'nfft_benchomp_detail.c'; else $(CYGPATH_W) '$(srcdir)/nfft_benchomp_detail.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/nfft_benchomp_detail_threads-nfft_benchomp_detail.Tpo $(DEPDIR)/nfft_benchomp_detail_threads-nfft_benchomp_detail.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nfft_benchomp_detail.c' object='nfft_benchomp_detail_threads-nfft_benchomp_detail.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nfft_benchomp_detail_threads_CFLAGS) $(CFLAGS) -c -o nfft_benchomp_detail_threads-nfft_benchomp_detail.obj `if test -f 'nfft_benchomp_detail.c'; then $(CYGPATH_W) 'nfft_benchomp_detail.c'; else $(CYGPATH_W) '$(srcdir)/nfft_benchomp_detail.c'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS cscopelist ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: nfft-3.2.3/examples/nfft/taylor_nfft.c0000644000071000003370000002077412137737443014663 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: taylor_nfft.c 3896 2012-10-10 12:19:26Z tovo $ */ /*! \file taylor_nfft.c * * \brief Testing the nfft againt a Taylor expansion based version. * * \author Stefan Kunis * * References: Time and memory requirements of the Nonequispaced FFT * */ #include "config.h" #include #include #include #include #ifdef HAVE_COMPLEX_H #include #endif #include "nfft3util.h" #include "nfft3.h" #include "infft.h" typedef struct { nfft_plan p; /**< used for fftw and data */ int *idx0; /**< index of next neighbour of x_j on the oversampled regular grid */ double *deltax0; /**< distance to the grid point */ } taylor_plan; /** * Initialisation of a transform plan. * * \arg ths The pointer to a taylor plan * \arg N The multi bandwidth * \arg M The number of nodes * \arg n The fft length * \arg m The order of the Taylor expansion * * \author Stefan Kunis */ static void taylor_init(taylor_plan *ths, int N, int M, int n, int m) { /* Note: no nfft precomputation! */ nfft_init_guru((nfft_plan*)ths, 1, &N, M, &n, m, MALLOC_X| MALLOC_F_HAT| MALLOC_F| FFTW_INIT| FFT_OUT_OF_PLACE, FFTW_ESTIMATE| FFTW_PRESERVE_INPUT); ths->idx0=(int*)nfft_malloc(M*sizeof(int)); ths->deltax0=(double*)nfft_malloc(M*sizeof(double)); } /** * Precomputation of weights and indices in Taylor expansion. * * \arg ths The pointer to a taylor plan * * \author Stefan Kunis */ static void taylor_precompute(taylor_plan *ths) { int j; nfft_plan* cths=(nfft_plan*)ths; for(j=0;jM_total;j++) { ths->idx0[j] = ((int)round((cths->x[j]+0.5)*cths->n[0]) + cths->n[0]/2)%cths->n[0]; ths->deltax0[j] = cths->x[j] - (round((cths->x[j]+0.5)*cths->n[0]) / cths->n[0] - 0.5); } } /** * Destroys a transform plan. * * \arg ths The pointer to a taylor plan * * \author Stefan Kunis, Daniel Potts */ static void taylor_finalize(taylor_plan *ths) { nfft_free(ths->deltax0); nfft_free(ths->idx0); nfft_finalize((nfft_plan*)ths); } /** * Executes a Taylor-NFFT, see equation (1.1) in [Guide], computes fast and * approximate by means of a Taylor expansion * for j=0,...,M-1 * f[j] = sum_{k in I_N^d} f_hat[k] * exp(-2 (pi) k x[j]) * * \arg ths The pointer to a taylor plan * * \author Stefan Kunis */ static void taylor_trafo(taylor_plan *ths) { int j,k,l,ll; double _Complex *f, *f_hat, *g1; double *deltax; int *idx; nfft_plan *cths=(nfft_plan*)ths; for(j=0, f=cths->f; jM_total; j++) *f++ = 0; for(k=0; kn_total; k++) cths->g1[k]=0; for(k=-cths->N_total/2, g1=cths->g1+cths->n_total-cths->N_total/2, f_hat=cths->f_hat; k<0; k++) (*g1++)=cpow( - 2*PI*_Complex_I*k,cths->m)* (*f_hat++); cths->g1[0]=cths->f_hat[cths->N_total/2]; for(k=1, g1=cths->g1+1, f_hat=cths->f_hat+cths->N_total/2+1; kN_total/2; k++) (*g1++)=cpow( - 2*PI*_Complex_I*k,cths->m)* (*f_hat++); for(l=cths->m-1; l>=0; l--) { for(k=-cths->N_total/2, g1=cths->g1+cths->n_total-cths->N_total/2; k<0; k++) (*g1++) /= (-2*PI*_Complex_I*k); for(k=1, g1=cths->g1+1; kN_total/2; k++) (*g1++) /= (-2*PI*_Complex_I*k); fftw_execute(cths->my_fftw_plan1); ll=(l==0?1:l); for(j=0, f=cths->f, deltax=ths->deltax0, idx=ths->idx0; jM_total; j++, f++) (*f) = ((*f) * (*deltax++) + cths->g2[*idx++]) /ll; } } /** * Compares NDFT, NFFT, and Taylor-NFFT * * \arg N The bandwidth * \arg N The number of nodes * \arg n The FFT-size for the NFFT * \arg m The cut-off for window function * \arg n_taylor The FFT-size for the Taylor-NFFT * \arg m_taylor The order of the Taylor approximation * \arg test_accuracy Flag for NDFT computation * * \author Stefan Kunis */ static void taylor_time_accuracy(int N, int M, int n, int m, int n_taylor, int m_taylor, unsigned test_accuracy) { int r; double t_ndft, t_nfft, t_taylor, t; double _Complex *swapndft = NULL; ticks t0, t1; taylor_plan tp; nfft_plan np; printf("%d\t%d\t",N, M); taylor_init(&tp,N,M,n_taylor,m_taylor); nfft_init_guru(&np, 1, &N, M, &n, m, PRE_PHI_HUT| PRE_FG_PSI| FFTW_INIT| FFT_OUT_OF_PLACE, FFTW_ESTIMATE| FFTW_DESTROY_INPUT); /** share nodes, input, and output vectors */ np.x=tp.p.x; np.f_hat=tp.p.f_hat; np.f=tp.p.f; /** output vector ndft */ if(test_accuracy) swapndft=(double _Complex*)nfft_malloc(M*sizeof(double _Complex)); /** init pseudo random nodes */ nfft_vrand_shifted_unit_double(np.x, np.M_total); /** nfft precomputation */ taylor_precompute(&tp); /** nfft precomputation */ if(np.nfft_flags & PRE_ONE_PSI) nfft_precompute_one_psi(&np); /** init pseudo random Fourier coefficients */ nfft_vrand_unit_complex(np.f_hat, np.N_total); /** NDFT */ if(test_accuracy) { NFFT_SWAP_complex(np.f,swapndft); t_ndft=0; r=0; while(t_ndft<0.01) { r++; t0 = getticks(); nfft_trafo_direct(&np); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); t_ndft+=t; } t_ndft/=r; NFFT_SWAP_complex(np.f,swapndft); printf("%.2e\t",t_ndft); } else printf("nan\t\t"); /** NFFT */ t_nfft=0; r=0; while(t_nfft<0.01) { r++; t0 = getticks(); nfft_trafo(&np); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); t_nfft+=t; } t_nfft/=r; printf("%.2f\t%d\t%.2e\t",((double)n)/N, m, t_nfft); if(test_accuracy) printf("%.2e\t",X(error_l_infty_complex)(swapndft, np.f, np.M_total)); else printf("nan\t\t"); /** TAYLOR NFFT */ t_taylor=0; r=0; while(t_taylor<0.01) { r++; t0 = getticks(); taylor_trafo(&tp); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); t_taylor+=t; } t_taylor/=r; printf("%.2f\t%d\t%.2e\t",((double)n_taylor)/N,m_taylor,t_taylor); if(test_accuracy) printf("%.2e\n",X(error_l_infty_complex)(swapndft, np.f, np.M_total)); else printf("nan\t\n"); fflush(stdout); /** finalise */ if(test_accuracy) nfft_free(swapndft); nfft_finalize(&np); taylor_finalize(&tp); } int main(int argc,char **argv) { int l,m,trial,N; if(argc<=2) { fprintf(stderr,"taylor_nfft type first last trials sigma_nfft sigma_taylor.\n"); return -1; } fprintf(stderr,"Testing the Nfft & a Taylor expansion based version.\n\n"); fprintf(stderr,"Columns: N, M, t_ndft, sigma_nfft, m_nfft, t_nfft, e_nfft"); fprintf(stderr,", sigma_taylor, m_taylor, t_taylor, e_taylor\n"); /* time vs. N=M */ if(atoi(argv[1])==0) { fprintf(stderr,"Fixed target accuracy, timings.\n\n"); for(l=atoi(argv[2]); l<=atoi(argv[3]); l++) for(trial=0; trial #include #include #include #ifdef HAVE_COMPLEX_H #include #endif #include "nfft3util.h" #include "nfft3.h" #include "infft.h" static void simple_test_nfft_1d(void) { nfft_plan p; double t; int N=14; int M=19; ticks t0, t1; /** init an one dimensional plan */ nfft_init_1d(&p,N,M); /** init pseudo random nodes */ nfft_vrand_shifted_unit_double(p.x,p.M_total); /** precompute psi, the entries of the matrix B */ if(p.nfft_flags & PRE_ONE_PSI) nfft_precompute_one_psi(&p); /** init pseudo random Fourier coefficients and show them */ nfft_vrand_unit_complex(p.f_hat,p.N_total); nfft_vpr_complex(p.f_hat,p.N_total,"given Fourier coefficients, vector f_hat"); /** direct trafo and show the result */ t0 = getticks(); nfft_trafo_direct(&p); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); nfft_vpr_complex(p.f,p.M_total,"ndft, vector f"); printf(" took %e seconds.\n",t); /** approx. trafo and show the result */ nfft_trafo(&p); nfft_vpr_complex(p.f,p.M_total,"nfft, vector f"); /** approx. adjoint and show the result */ nfft_adjoint_direct(&p); nfft_vpr_complex(p.f_hat,p.N_total,"adjoint ndft, vector f_hat"); /** approx. adjoint and show the result */ nfft_adjoint(&p); nfft_vpr_complex(p.f_hat,p.N_total,"adjoint nfft, vector f_hat"); /** finalise the one dimensional plan */ nfft_finalize(&p); } static void simple_test_nfft_2d(void) { int K,N[2],n[2],M; double t; ticks t0, t1; nfft_plan p; N[0]=32; n[0]=64; N[1]=14; n[1]=32; M=N[0]*N[1]; K=16; t0 = getticks(); /** init a two dimensional plan */ nfft_init_guru(&p, 2, N, M, n, 7, PRE_PHI_HUT| PRE_FULL_PSI| MALLOC_F_HAT| MALLOC_X| MALLOC_F | FFTW_INIT| FFT_OUT_OF_PLACE, FFTW_ESTIMATE| FFTW_DESTROY_INPUT); /** init pseudo random nodes */ nfft_vrand_shifted_unit_double(p.x,p.d*p.M_total); /** precompute psi, the entries of the matrix B */ if(p.nfft_flags & PRE_ONE_PSI) nfft_precompute_one_psi(&p); /** init pseudo random Fourier coefficients and show them */ nfft_vrand_unit_complex(p.f_hat,p.N_total); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); nfft_vpr_complex(p.f_hat,K, "given Fourier coefficients, vector f_hat (first few entries)"); printf(" ... initialisation took %e seconds.\n",t); /** direct trafo and show the result */ t0 = getticks(); nfft_trafo_direct(&p); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); nfft_vpr_complex(p.f,K,"ndft, vector f (first few entries)"); printf(" took %e seconds.\n",t); /** approx. trafo and show the result */ t0 = getticks(); nfft_trafo(&p); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); nfft_vpr_complex(p.f,K,"nfft, vector f (first few entries)"); printf(" took %e seconds.\n",t); /** direct adjoint and show the result */ t0 = getticks(); nfft_adjoint_direct(&p); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); nfft_vpr_complex(p.f_hat,K,"adjoint ndft, vector f_hat (first few entries)"); printf(" took %e seconds.\n",t); /** approx. adjoint and show the result */ t0 = getticks(); nfft_adjoint(&p); t1 = getticks(); t = nfft_elapsed_seconds(t1,t0); nfft_vpr_complex(p.f_hat,K,"adjoint nfft, vector f_hat (first few entries)"); printf(" took %e seconds.\n",t); /** finalise the two dimensional plan */ nfft_finalize(&p); } int main(void) { printf("1) computing a one dimensional ndft, nfft and an adjoint nfft\n\n"); simple_test_nfft_1d(); getc(stdin); printf("2) computing a two dimensional ndft, nfft and an adjoint nfft\n\n"); simple_test_nfft_2d(); return 1; } nfft-3.2.3/examples/nfft/nfft_benchomp_createdataset.c0000644000071000003370000000600312137737443020022 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: simple_test.c 3372 2009-10-21 06:04:05Z skunis $ */ #include #include #include #include #include #include "config.h" #include "nfft3util.h" #include "nfft3.h" #include "infft.h" void nfft_benchomp_createdataset(unsigned int d, unsigned int trafo_adjoint, int *N, int M, double sigma) { int n[d]; int t, j; R *x; C *f, *f_hat; int N_total = 1; for (t = 0; t < d; t++) N_total *= N[t]; x = (R*) nfft_malloc(d*M*sizeof(R)); f = (C*) nfft_malloc(M*sizeof(C)); f_hat = (C*) nfft_malloc(N_total*sizeof(C)); for (t=0; t 1) trafo_adjoint = 1; fprintf(stderr, ", tr_adj=%d, N=", trafo_adjoint); for (t=0; t #include #include #include /* It is important to include complex.h before nfft3.h. */ #ifdef HAVE_COMPLEX_H #include #endif #include #include "nfft3.h" /* NFFT3 header */ #include "nfft3util.h" /* NFFT3 utilities header*/ #include "infft.h" /* NFFT3 internal header */ static void simple_test_nfsft(void) { const int N = 4; /* bandwidth/maximum degree */ const int M = 8; /* number of nodes */ nfsft_plan plan; /* transform plan */ int j, k, n; /* loop variables */ /* precomputation (for fast polynomial transform) */ nfsft_precompute(N,1000.0,0U,0U); /* Initialize transform plan using the guru interface. All input and output * arrays are allocated by nfsft_init_guru(). Computations are performed with * respect to L^2-normalized spherical harmonics Y_k^n. The array of spherical * Fourier coefficients is preserved during transformations. The NFFT uses a * cut-off parameter m = 6. See the NFFT 3 manual for details. */ nfsft_init_guru(&plan, N, M, NFSFT_MALLOC_X | NFSFT_MALLOC_F | NFSFT_MALLOC_F_HAT | NFSFT_NORMALIZED | NFSFT_PRESERVE_F_HAT, PRE_PHI_HUT | PRE_PSI | FFTW_INIT | FFT_OUT_OF_PLACE, 6); /* pseudo-random nodes */ for (j = 0; j < plan.M_total; j++) { plan.x[2*j]= nfft_drand48() - K(0.5); plan.x[2*j+1]= K(0.5) * nfft_drand48(); } /* precomputation (for NFFT, node-dependent) */ nfsft_precompute_x(&plan); /* pseudo-random Fourier coefficients */ for (k = 0; k <= plan.N; k++) for (n = -k; n <= k; n++) plan.f_hat[NFSFT_INDEX(k,n,&plan)] = nfft_drand48() - K(0.5) + _Complex_I*(nfft_drand48() - K(0.5)); /* Direct transformation, display result. */ nfsft_trafo_direct(&plan); printf("Vector f (NDSFT):\n"); for (j = 0; j < plan.M_total; j++) printf("f[%+2d] = %+5.3" FE " %+5.3" FE "*I\n",j, creal(plan.f[j]), cimag(plan.f[j])); printf("\n"); /* Fast approximate transformation, display result. */ printf("Vector f (NDSFT):\n"); for (j = 0; j < plan.M_total; j++) printf("f[%+2d] = %+5.3" FE " %+5.3" FE "*I\n",j, creal(plan.f[j]), cimag(plan.f[j])); printf("\n"); /* Direct adjoint transformation, display result. */ nfsft_adjoint_direct(&plan); printf("Vector f_hat (NDSFT):\n"); for (k = 0; k <= plan.N; k++) for (n = -k; n <= k; n++) fprintf(stdout,"f_hat[%+2d,%+2d] = %+5.3" FE " %+5.3" FE "*I\n",k,n, creal(plan.f_hat[NFSFT_INDEX(k,n,&plan)]), cimag(plan.f_hat[NFSFT_INDEX(k,n,&plan)])); printf("\n"); /* Fast approximate adjoint transformation, display result. */ nfsft_adjoint(&plan); printf("Vector f_hat (NFSFT):\n"); for (k = 0; k <= plan.N; k++) { for (n = -k; n <= k; n++) { fprintf(stdout,"f_hat[%+2d,%+2d] = %+5.3" FE " %+5.3" FE "*I\n",k,n, creal(plan.f_hat[NFSFT_INDEX(k,n,&plan)]), cimag(plan.f_hat[NFSFT_INDEX(k,n,&plan)])); } } /* Finalize the plan. */ nfsft_finalize(&plan); /* Destroy data precomputed for fast polynomial transform. */ nfsft_forget(); } int main(void) { printf("nthreads = %d\n", nfft_get_omp_num_threads()); /* init */ fftw_init_threads(); printf("Computing an NDSFT, an NFSFT, an adjoint NDSFT, and an adjoint NFSFT" "...\n\n"); simple_test_nfsft(); return EXIT_SUCCESS; } nfft-3.2.3/examples/nfsft/nfsft_benchomp.c0000644000071000003370000003772612137737443015517 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include #include #include #include "config.h" #include #include #define NREPEAT 5 static FILE* file_out_tex = NULL; int get_nthreads_array(int **arr) { int max_threads = nfft_get_omp_num_threads(); int alloc_num = 2; int k; int ret_number = 0; int max_threads_pw2 = (max_threads / 2) * 2 == max_threads ? 1 : 0; if (max_threads <= 5) { *arr = (int*) malloc(max_threads*sizeof(int)); for (k = 0; k < max_threads; k++) *(*arr + k) = k+1; return max_threads; } for (k = 1; k <= max_threads; k*=2, alloc_num++); *arr = (int*) malloc(alloc_num*sizeof(int)); for (k = 1; k <= max_threads; k*=2) { if (k != max_threads && 2*k > max_threads && max_threads_pw2) { *(*arr + ret_number) = max_threads/2; ret_number++; } *(*arr + ret_number) = k; ret_number++; if (k != max_threads && 2*k > max_threads) { *(*arr + ret_number) = max_threads; ret_number++; break; } } return ret_number; } void check_result_value(const int val, const int ok, const char *msg) { if (val != ok) { fprintf(stderr, "ERROR %s: %d not %d\n", msg, val, ok); exit(1); } } void run_test_create(int trafo_adjoint, int N, int M) { char cmd[1025]; snprintf(cmd, 1024, "./nfsft_benchomp_createdataset %d %d %d > nfsft_benchomp_test.data", trafo_adjoint, N, M); fprintf(stderr, "%s\n", cmd); check_result_value(system(cmd), 0, "createdataset"); } void run_test_init_output() { FILE *f = fopen("nfsft_benchomp_test.result", "w"); if (f!= NULL) fclose(f); } typedef struct { int trafo_adjoint; int N; int M; int m; int nfsft_flags; int psi_flags; } s_param; typedef struct { double avg; double min; double max; } s_resval; typedef struct { int nthreads; s_resval resval[6]; } s_result; typedef struct { s_param param; s_result *results; int nresults; } s_testset; void run_test(s_resval *res, int nrepeat, int m, int nfsft_flags, int psi_flags, int nthreads) { FILE *f; char cmd[1025]; int r,t; for (t = 0; t < 6; t++) { res[t].avg = 0.0; res[t].min = 1.0/0.0; res[t].max = 0.0; } if (nthreads < 2) snprintf(cmd, 1024, "./nfsft_benchomp_detail_single %d %d %d %d < nfsft_benchomp_test.data > nfsft_benchomp_test.out", m, nfsft_flags, psi_flags, nrepeat); else snprintf(cmd, 1024, "./nfsft_benchomp_detail_threads %d %d %d %d %d < nfsft_benchomp_test.data > nfsft_benchomp_test.out", m, nfsft_flags, psi_flags, nrepeat, nthreads); fprintf(stderr, "%s\n", cmd); check_result_value(system(cmd), 0, cmd); f = fopen("nfsft_benchomp_test.out", "r"); for (r = 0; r < nrepeat; r++) { int retval; double v[6]; // FILE *f; // check_result_value(system(cmd), 0, cmd); // f = fopen("nfsft_benchomp_test.out", "r"); retval = fscanf(f, "%lg %lg %lg %lg %lg %lg", v, v+1, v+2, v+3, v+4, v+5); check_result_value(retval, 6, "read nfsft_benchomp_test.out"); // fclose(f); // fprintf(stderr, "%.3e %.3e %.3e %.3e %.3e %.3e\n", v[0], v[1], v[2], v[3], v[4], v[5]); for (t = 0; t < 6; t++) { res[t].avg += v[t]; if (res[t].min > v[t]) res[t].min = v[t]; if (res[t].max < v[t]) res[t].max = v[t]; } } fclose(f); for (t = 0; t < 6; t++) res[t].avg /= nrepeat; fprintf(stderr, "%d %d: ", nthreads, nrepeat); for (t = 0; t < 6; t++) fprintf(stderr, "%.3e %.3e %.3e | ", res[t].avg, res[t].min, res[t].max); fprintf(stderr, "\n"); } const char *get_psi_string(int flags) { if (flags & PRE_PSI) return "prepsi"; else if (flags & PRE_ONE_PSI) return "unknownPSI"; return "nopsi"; } const char *get_sort_string(int flags) { if (flags & NFFT_SORT_NODES) return "sorted"; return "unsorted"; } const char *get_adjoint_omp_string(int flags) { if (flags & NFFT_OMP_BLOCKWISE_ADJOINT) return "blockwise"; return ""; } #define MASK_TA (1U<<1) #define MASK_N (1U<<2) #define MASK_M (1U<<4) #define MASK_WINM (1U<<5) #define MASK_FLAGS_PSI (1U<<6) #define MASK_FLAGS_SORT (1U<<7) #define MASK_FLAGS_BW (1U<<8) #define MASK_FLAGS_FPT (1U<<9) unsigned int determine_different_parameters(s_testset *testsets, int ntestsets) { int t; unsigned int mask = 0; if (ntestsets < 2) return 0; for (t = 1; t < ntestsets; t++) { if (testsets[t-1].param.trafo_adjoint != testsets[t].param.trafo_adjoint) mask |= MASK_TA; if (testsets[t-1].param.N != testsets[t].param.N) mask |= MASK_N; if (testsets[t-1].param.M != testsets[t].param.M) mask |= MASK_M; if (testsets[t-1].param.m != testsets[t].param.m) mask |= MASK_WINM; if ((testsets[t-1].param.psi_flags & PRE_ONE_PSI) != (testsets[t].param.psi_flags & PRE_ONE_PSI)) mask |= MASK_FLAGS_PSI; if ((testsets[t-1].param.psi_flags & NFFT_SORT_NODES) != (testsets[t].param.psi_flags & NFFT_SORT_NODES)) mask |= MASK_FLAGS_SORT; if ((testsets[t-1].param.psi_flags & NFFT_OMP_BLOCKWISE_ADJOINT) != (testsets[t].param.psi_flags & NFFT_OMP_BLOCKWISE_ADJOINT)) mask |= MASK_FLAGS_BW; if ((testsets[t-1].param.nfsft_flags & NFSFT_USE_DPT) != (testsets[t].param.nfsft_flags & NFSFT_USE_DPT)) mask |= MASK_FLAGS_FPT; } return mask; } void get_plot_title(char *outstr, int maxlen, char *hostname, s_param param, unsigned int diff_mask) { unsigned int mask = ~diff_mask; int offset = 0; int len; len = snprintf(outstr, maxlen, "%s", hostname); if (len < 0 || len+offset >= maxlen-1) return; offset += len; if (mask & MASK_TA) { len = snprintf(outstr+offset, maxlen-offset, " $\\mathrm{NFSFT}%s$", param.trafo_adjoint==0?"":"^\\top"); if (len < 0 || len+offset >= maxlen-1) return; offset += len; } if (mask & MASK_N) { len = snprintf(outstr+offset, maxlen-offset, " N=%d", param.N); if (len < 0 || len+offset >= maxlen-1) return; offset += len; } if (mask & MASK_M) { len = snprintf(outstr+offset, maxlen-offset, " M=%d", param.M); if (len < 0 || len+offset >= maxlen-1) return; offset += len; } if (mask & MASK_WINM) { len = snprintf(outstr+offset, maxlen-offset, " m=%d", param.m); if (len < 0 || len+offset >= maxlen-1) return; offset += len; } if (mask & MASK_FLAGS_PSI) { len = snprintf(outstr+offset, maxlen-offset, " %s", get_psi_string(param.psi_flags)); if (len < 0 || len+offset >= maxlen-1) return; offset += len; } if (mask & MASK_FLAGS_SORT) { len = snprintf(outstr+offset, maxlen-offset, " %s", get_sort_string(param.psi_flags)); if (len < 0 || len+offset >= maxlen-1) return; offset += len; } if ((mask & MASK_FLAGS_BW) && strlen(get_adjoint_omp_string(param.psi_flags)) > 0) { len = snprintf(outstr+offset, maxlen-offset, " %s", get_adjoint_omp_string(param.psi_flags)); if (len < 0 || len+offset >= maxlen-1) return; offset += len; } if (mask & MASK_FLAGS_FPT) { len = snprintf(outstr+offset, maxlen-offset, param.nfsft_flags & NFSFT_USE_DPT ? " DPT" : ""); if (len < 0 || len+offset >= maxlen-1) return; offset += len; } } void print_output_speedup_total_tref(FILE *out, s_testset *testsets, int ntestsets, int use_tref, double tref) { int i, t; char hostname[1025]; char plottitle[1025]; unsigned int diff_mask = determine_different_parameters(testsets, ntestsets); if (gethostname(hostname, 1024) != 0) strncpy(hostname, "unnamed", 1024); get_plot_title(plottitle, 1024, hostname, testsets[0].param, diff_mask); fprintf(out, "\\begin{tikzpicture}\n"); fprintf(out, "\\begin{axis}["); fprintf(out, "width=0.9\\textwidth, height=0.6\\textwidth, x tick label style={ /pgf/number format/1000 sep=}, xlabel=Number of threads, ylabel=Speedup, xtick=data, legend style={ legend pos = north west, legend columns=1}, ymajorgrids=true, yminorgrids=true, minor y tick num=4, "); fprintf(out, " title={%s}", plottitle); fprintf(out, " ]\n"); for (t = 0; t < ntestsets; t++) { s_testset testset = testsets[t]; fprintf(stderr, "%s $\\mathrm{NFSFT}%s$ N=%d M=%d m=%d %s %s %s}", hostname, testset.param.trafo_adjoint==0?"":"^\\top", testset.param.N, testset.param.M, testset.param.m, get_psi_string(testset.param.psi_flags), get_sort_string(testset.param.psi_flags), get_adjoint_omp_string(testset.param.psi_flags)); fprintf(stderr, "\n"); fprintf(out, "\\addplot coordinates {"); for (i = 0; i < testset.nresults; i++) if (use_tref == 1) fprintf(out, "(%d, %.6e) ", testset.results[i].nthreads, tref/testset.results[i].resval[5].avg); else fprintf(out, "(%d, %.6e) ", testset.results[i].nthreads, testset.results[0].resval[5].avg/testset.results[i].resval[5].avg); fprintf(out, "};\n"); for (i = 0; i < testset.nresults; i++) if (use_tref == 1) fprintf(stderr, "%d:%.3f ", testset.results[i].nthreads, tref/testset.results[i].resval[5].avg); else fprintf(stderr, "%d:%.3f ", testset.results[i].nthreads, testset.results[0].resval[5].avg/testset.results[i].resval[5].avg); fprintf(stderr, "\n\n"); } fprintf(out, "\\legend{{"); for (t = 0; t < ntestsets; t++) { char title[256]; if (t > 0) fprintf(out, "},{"); get_plot_title(title, 255, "", testsets[t].param, ~(diff_mask)); fprintf(out, "%s", title); } fprintf(out, "}}\n"); fprintf(out, "\\end{axis}\n"); fprintf(out, "\\end{tikzpicture}\n"); fprintf(out, "\n\n"); fflush(out); } void print_output_speedup_total(FILE *out, s_testset *testsets, int ntestsets, int use_tref) { double tref = 1.0/0.0; int t, k; if (use_tref == 1) for (t = 0; t < ntestsets; t++) for (k = 0; k < testsets[t].nresults; k++) if (testsets[t].results[k].nthreads == 1 && testsets[t].results[k].resval[5].avg < tref) tref = testsets[t].results[k].resval[5].avg; print_output_speedup_total_tref(out, testsets, ntestsets, use_tref, tref); } void print_output_histo_PENRT(FILE *out, s_testset testset) { int i, size = testset.nresults; char hostname[1025]; if (gethostname(hostname, 1024) != 0) strncpy(hostname, "unnamed", 1024); fprintf(out, "\\begin{tikzpicture}\n"); fprintf(out, "\\begin{axis}["); fprintf(out, "width=0.9\\textwidth, height=0.6\\textwidth, "); fprintf(out, "symbolic x coords={"); for (i = 0; i < size; i++) if (i > 0) fprintf(out, ",%d", testset.results[i].nthreads); else fprintf(out, "%d", testset.results[i].nthreads); fprintf(out, "}, x tick label style={ /pgf/number format/1000 sep=}, xlabel=Number of threads, ylabel=Time in s, xtick=data, legend style={legend columns=-1}, ybar, bar width=7pt, ymajorgrids=true, yminorgrids=true, minor y tick num=1, "); fprintf(out, " title={%s $\\mathrm{NFSFT}%s$ N=%d M=%d m=%d %s %s %s}", hostname, testset.param.trafo_adjoint==0?"":"^\\top", testset.param.N, testset.param.M, testset.param.m, get_psi_string(testset.param.psi_flags), get_sort_string(testset.param.psi_flags), get_adjoint_omp_string(testset.param.psi_flags)); fprintf(out, " ]\n"); fprintf(out, "\\addplot coordinates {"); for (i = 0; i < size; i++) fprintf(out, "(%d, %.6e) ", testset.results[i].nthreads, testset.results[i].resval[1].avg); fprintf(out, "};\n"); fprintf(out, "\\addplot coordinates {"); for (i = 0; i < size; i++) fprintf(out, "(%d, %.6e) ", testset.results[i].nthreads, testset.results[i].resval[2].avg); fprintf(out, "};\n"); fprintf(out, "\\addplot coordinates {"); for (i = 0; i < size; i++) fprintf(out, "(%d, %.6e) ", testset.results[i].nthreads, testset.results[i].resval[3].avg); fprintf(out, "};\n"); fprintf(out, "\\addplot coordinates {"); for (i = 0; i < size; i++) fprintf(out, "(%d, %.6e) ", testset.results[i].nthreads, testset.results[i].resval[0].avg + testset.results[i].resval[4].avg); fprintf(out, "};\n"); fprintf(out, "\\addplot coordinates {"); for (i = 0; i < size; i++) fprintf(out, "(%d, %.6e) ", testset.results[i].nthreads, testset.results[i].resval[5].avg); fprintf(out, "};\n"); fprintf(out, "\\legend{%s,%s,$\\mathrm{NFFT}%s$,rest,total}\n", testset.param.nfsft_flags & NFSFT_USE_DPT ? "DPT" : "FPT", testset.param.trafo_adjoint==0?"c2e":"$\\mathrm{c2e}^\\top$", testset.param.trafo_adjoint==0?"":"^\\top"); fprintf(out, "\\end{axis}\n"); fprintf(out, "\\end{tikzpicture}\n"); fprintf(out, "\n\n"); fflush(out); } void run_testset(s_testset *testset, int trafo_adjoint, int N, int M, int m, int nfsft_flags, int psi_flags, int *nthreads_array, int n_threads_array_size) { int i; testset->param.trafo_adjoint = trafo_adjoint; testset->param.N = N; testset->param.M = M; testset->param.m = m; testset->param.nfsft_flags = nfsft_flags; testset->param.psi_flags = psi_flags; testset->results = (s_result*) malloc(n_threads_array_size*sizeof(s_result)); testset->nresults = n_threads_array_size; run_test_create(testset->param.trafo_adjoint, testset->param.N, testset->param.M); for (i = 0; i < n_threads_array_size; i++) { testset->results[i].nthreads = nthreads_array[i]; run_test(testset->results[i].resval, NREPEAT, testset->param.m, testset->param.nfsft_flags, testset->param.psi_flags, testset->results[i].nthreads = nthreads_array[i]); } } void test1(int *nthreads_array, int n_threads_array_size, int m) { s_testset testsets[4]; run_testset(&testsets[0], 0, 1024, 1000000, m, 0, NFFT_SORT_NODES, nthreads_array, n_threads_array_size); #if defined MEASURE_TIME && defined MEASURE_TIME_FFTW print_output_histo_PENRT(file_out_tex, testsets[0]); #endif run_testset(&testsets[1], 1, 1024, 1000000, m, 0, NFFT_SORT_NODES | NFFT_OMP_BLOCKWISE_ADJOINT, nthreads_array, n_threads_array_size); #if defined MEASURE_TIME && defined MEASURE_TIME_FFTW print_output_histo_PENRT(file_out_tex, testsets[1]); #endif print_output_speedup_total(file_out_tex, testsets, 2, 0); run_testset(&testsets[2], 0, 1024, 1000000, m, NFSFT_USE_DPT, NFFT_SORT_NODES, nthreads_array, n_threads_array_size); #if defined MEASURE_TIME && defined MEASURE_TIME_FFTW print_output_histo_PENRT(file_out_tex, testsets[2]); #endif run_testset(&testsets[3], 1, 1024, 1000000, m, NFSFT_USE_DPT, NFFT_SORT_NODES | NFFT_OMP_BLOCKWISE_ADJOINT, nthreads_array, n_threads_array_size); #if defined MEASURE_TIME && defined MEASURE_TIME_FFTW print_output_histo_PENRT(file_out_tex, testsets[3]); #endif print_output_speedup_total(file_out_tex, testsets+2, 2, 0); } int main(int argc, char** argv) { int *nthreads_array; int n_threads_array_size = get_nthreads_array(&nthreads_array); int k; #if !(defined MEASURE_TIME && defined MEASURE_TIME_FFTW) fprintf(stderr, "WARNING: Detailed time measurements for NFSFT are not activated.\n"); fprintf(stderr, "For more detailed plots, please re-run the configure script with options\n"); fprintf(stderr, "--enable-measure-time --enable-measure-time-fftw --enable-nfsft --enable-openmp\n"); fprintf(stderr, "and run \"make clean all\"\n\n"); #endif for (k = 0; k < n_threads_array_size; k++) fprintf(stderr, "%d ", nthreads_array[k]); fprintf(stderr, "\n"); file_out_tex = fopen("nfsft_benchomp_results_plots.tex", "w"); test1(nthreads_array, n_threads_array_size, 2); test1(nthreads_array, n_threads_array_size, 4); test1(nthreads_array, n_threads_array_size, 6); test1(nthreads_array, n_threads_array_size, 8); fclose(file_out_tex); return 0; } nfft-3.2.3/examples/nfsft/nfsft_benchomp_createdataset.c0000644000071000003370000000543112137737443020374 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: simple_test.c 3372 2009-10-21 06:04:05Z skunis $ */ #include #include #include #include #include #include "config.h" #include "nfft3util.h" #include "nfft3.h" #include "infft.h" void nfsft_benchomp_createdataset(unsigned int trafo_adjoint, int N, int M) { int t, j, k, n; R *x; C *f, *f_hat; int N_total = (2*N+2) * (2*N+2); nfsft_plan ptemp; nfsft_init_guru(&ptemp, N, M, NFSFT_MALLOC_X | NFSFT_MALLOC_F | NFSFT_MALLOC_F_HAT | NFSFT_NORMALIZED | NFSFT_PRESERVE_F_HAT, PRE_PHI_HUT | PRE_PSI | FFTW_INIT | FFT_OUT_OF_PLACE, 6); x = (R*) nfft_malloc(2*M*sizeof(R)); f = (C*) nfft_malloc(M*sizeof(C)); f_hat = (C*) nfft_malloc(N_total*sizeof(C)); /* init pseudo-random nodes */ for (j = 0; j < M; j++) { x[2*j]= nfft_drand48() - K(0.5); x[2*j+1]= K(0.5) * nfft_drand48(); } if (trafo_adjoint==0) { for (k = 0; k <= N; k++) for (n = -k; n <= k; n++) nfft_vrand_unit_complex(f_hat+NFSFT_INDEX(k,n,&ptemp),1); } else { nfft_vrand_unit_complex(f,M); } printf("%d %d %d\n", trafo_adjoint, N, M); for (j=0; j < M; j++) { for (t=0; t < 2; t++) printf("%.16e ", x[2*j+t]); printf("\n"); } if (trafo_adjoint==0) { for (k = 0; k <= N; k++) for (n = -k; n <= k; n++) printf("%.16e %.16e\n", creal(f_hat[NFSFT_INDEX(k,n,&ptemp)]), cimag(f_hat[NFSFT_INDEX(k,n,&ptemp)])); } else { for (j=0; j < M; j++) printf("%.16e %.16e\n", creal(f[j]), cimag(f[j])); } nfft_free(x); nfft_free(f); nfft_free(f_hat); } int main(int argc, char **argv) { int trafo_adjoint; int N; int M; if (argc < 4) { fprintf(stderr, "usage: tr_adj N M\n"); return -1; } trafo_adjoint = atoi(argv[1]); if (trafo_adjoint < 0 && trafo_adjoint > 1) trafo_adjoint = 1; N = atoi(argv[2]); M = atoi(argv[3]); fprintf(stderr, "tr_adj=%d, N=%d, M=%d\n", trafo_adjoint, N, M); nfsft_benchomp_createdataset(trafo_adjoint, N, M); return 0; } nfft-3.2.3/examples/nfsft/Makefile.am0000644000071000003370000000323512137737443014400 00000000000000# $Id: Makefile.am 3774 2012-06-01 07:41:57Z tovo $ AM_CPPFLAGS = -I$(top_srcdir)/include if HAVE_THREADS SIMPLE_TEST_THREADS=simple_test_threads else SIMPLE_TEST_THREADS= endif if HAVE_THREADS if HAVE_OPENMP NFSFT_BENCHOMP_PROGS=nfsft_benchomp nfsft_benchomp_createdataset nfsft_benchomp_detail_single nfsft_benchomp_detail_threads else NFSFT_BENCHOMP_PROGS= endif else NFSFT_BENCHOMP_PROGS= endif ## The program name noinst_PROGRAMS = simple_test $(SIMPLE_TEST_THREADS) $(NFSFT_BENCHOMP_PROGS) ## The source files. simple_test_SOURCES = simple_test.c simple_test_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ if HAVE_THREADS simple_test_threads_SOURCES = simple_test_threads.c simple_test_threads_LDADD = $(top_builddir)/libnfft3_threads.la @fftw3_LDFLAGS@ @fftw3_threads_LIBS@ if HAVE_OPENMP simple_test_threads_CFLAGS = $(OPENMP_CFLAGS) endif endif if HAVE_THREADS if HAVE_OPENMP nfsft_benchomp_SOURCES = nfsft_benchomp.c nfsft_benchomp_LDADD = $(top_builddir)/libnfft3_threads.la @fftw3_LDFLAGS@ @fftw3_threads_LIBS@ nfsft_benchomp_CFLAGS = $(OPENMP_CFLAGS) nfsft_benchomp_createdataset_SOURCES = nfsft_benchomp_createdataset.c nfsft_benchomp_createdataset_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ nfsft_benchomp_detail_single_SOURCES = nfsft_benchomp_detail.c nfsft_benchomp_detail_single_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ nfsft_benchomp_detail_threads_SOURCES = nfsft_benchomp_detail.c nfsft_benchomp_detail_threads_LDADD = $(top_builddir)/libnfft3_threads.la @fftw3_LDFLAGS@ @fftw3_threads_LIBS@ nfsft_benchomp_detail_threads_CFLAGS = $(OPENMP_CFLAGS) endif endif nfft-3.2.3/examples/nfsft/nfsft_benchomp_detail.c0000644000071000003370000001374512137737443017034 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: simple_test.c 3372 2009-10-21 06:04:05Z skunis $ */ #include #include #include #include #include #include "nfft3util.h" #include "nfft3.h" #include "infft.h" #ifdef _OPENMP #include #endif void bench_openmp_readfile(FILE *infile, int *trafo_adjoint, int *N, int *M, double **x, C **f_hat, C **f) { double re,im; int k, n, j, t; nfsft_plan plan; fscanf(infile, "%d %d %d", trafo_adjoint, N, M); *x = (double *)nfft_malloc(2*(*M)*sizeof(double)); *f_hat = (C*)nfft_malloc((2*(*N)+2) * (2*(*N)+2) * sizeof(C)); *f = (C*)nfft_malloc((*M)*sizeof(C)); memset(*f_hat,0U,(2*(*N)+2) * (2*(*N)+2) * sizeof(C)); memset(*f,0U,(*M)*sizeof(C)); #ifdef _OPENMP fftw_import_wisdom_from_filename("nfsft_benchomp_detail_threads.plan"); #else fftw_import_wisdom_from_filename("nfsft_benchomp_detail_single.plan"); #endif nfsft_init_guru(&plan, *N, *M, NFSFT_MALLOC_X | NFSFT_MALLOC_F | NFSFT_MALLOC_F_HAT | NFSFT_NORMALIZED | NFSFT_PRESERVE_F_HAT, PRE_PHI_HUT | FFTW_INIT | FFT_OUT_OF_PLACE, 6); #ifdef _OPENMP fftw_export_wisdom_to_filename("nfsft_benchomp_detail_threads.plan"); #else fftw_export_wisdom_to_filename("nfsft_benchomp_detail_single.plan"); #endif for (j=0; j < *M; j++) for (t=0; t < 2; t++) fscanf(infile, "%lg", (*x)+2*j+t); if (trafo_adjoint==0) { for (k = 0; k <= *N; k++) for (n = -k; n <= k; n++) { fscanf(infile, "%lg %lg", &re, &im); (*f_hat)[NFSFT_INDEX(k,n,&plan)] = re + _Complex_I * im; } } else { for (j=0; j < *M; j++) { fscanf(infile, "%lg %lg", &re, &im); (*f)[j] = re + _Complex_I * im; } } nfsft_finalize(&plan); } void bench_openmp(int trafo_adjoint, int N, int M, double *x, C *f_hat, C *f, int m, int nfsft_flags, int psi_flags) { nfsft_plan plan; int k, n; // int N, M, trafo_adjoint; int t, j; ticks t0, t1; double tt_total, tt_pre; // fscanf(infile, "%d %d %d", &trafo_adjoint, &N, &M); /*#ifdef _OPENMP fftw_import_wisdom_from_filename("nfsft_benchomp_detail_threads.plan"); #else fftw_import_wisdom_from_filename("nfsft_benchomp_detail_single.plan"); #endif*/ /* precomputation (for fast polynomial transform) */ // nfsft_precompute(N,1000.0,0U,0U); /* Initialize transform plan using the guru interface. All input and output * arrays are allocated by nfsft_init_guru(). Computations are performed with * respect to L^2-normalized spherical harmonics Y_k^n. The array of spherical * Fourier coefficients is preserved during transformations. The NFFT uses a * cut-off parameter m = 6. See the NFFT 3 manual for details. */ nfsft_init_guru(&plan, N, M, nfsft_flags | NFSFT_MALLOC_X | NFSFT_MALLOC_F | NFSFT_MALLOC_F_HAT | NFSFT_NORMALIZED | NFSFT_PRESERVE_F_HAT, PRE_PHI_HUT | psi_flags | FFTW_INIT | FFT_OUT_OF_PLACE, m); /*#ifdef _OPENMP fftw_export_wisdom_to_filename("nfsft_benchomp_detail_threads.plan"); #else fftw_export_wisdom_to_filename("nfsft_benchomp_detail_single.plan"); #endif*/ for (j=0; j < plan.M_total; j++) { for (t=0; t < 2; t++) // fscanf(infile, "%lg", plan.x+2*j+t); plan.x[2*j+t] = x[2*j+t]; } if (trafo_adjoint==0) { memset(plan.f_hat,0U,plan.N_total*sizeof(double _Complex)); for (k = 0; k <= plan.N; k++) for (n = -k; n <= k; n++) { // fscanf(infile, "%lg %lg", &re, &im); // plan.f_hat[NFSFT_INDEX(k,n,&plan)] = re + _Complex_I * im; plan.f_hat[NFSFT_INDEX(k,n,&plan)] = f_hat[NFSFT_INDEX(k,n,&plan)]; } } else { for (j=0; j < plan.M_total; j++) { // fscanf(infile, "%lg %lg", &re, &im); // plan.f[j] = re + _Complex_I * im; plan.f[j] = f[j]; } memset(plan.f_hat,0U,plan.N_total*sizeof(double _Complex)); } t0 = getticks(); /* precomputation (for NFFT, node-dependent) */ nfsft_precompute_x(&plan); t1 = getticks(); tt_pre = nfft_elapsed_seconds(t1,t0); if (trafo_adjoint==0) nfsft_trafo(&plan); else nfsft_adjoint(&plan); t1 = getticks(); tt_total = nfft_elapsed_seconds(t1,t0); #ifndef MEASURE_TIME plan.MEASURE_TIME_t[0] = 0.0; plan.MEASURE_TIME_t[2] = 0.0; #endif #ifndef MEASURE_TIME_FFTW plan.MEASURE_TIME_t[1] = 0.0; #endif printf("%.6e %.6e %6e %.6e %.6e %.6e\n", tt_pre, plan.MEASURE_TIME_t[0], plan.MEASURE_TIME_t[1], plan.MEASURE_TIME_t[2], tt_total-tt_pre-plan.MEASURE_TIME_t[0]-plan.MEASURE_TIME_t[1]-plan.MEASURE_TIME_t[2], tt_total); /** finalise the one dimensional plan */ nfsft_finalize(&plan); } int main(int argc, char **argv) { int m, nfsft_flags, psi_flags; int nrepeat; int trafo_adjoint, N, M, r; double *x; C *f_hat, *f; #ifdef _OPENMP int nthreads; if (argc != 6) return 1; nthreads = atoi(argv[5]); fftw_init_threads(); omp_set_num_threads(nthreads); #else if (argc != 5) return 1; #endif m = atoi(argv[1]); nfsft_flags = atoi(argv[2]); psi_flags = atoi(argv[3]); nrepeat = atoi(argv[4]); bench_openmp_readfile(stdin, &trafo_adjoint, &N, &M, &x, &f_hat, &f); /* precomputation (for fast polynomial transform) */ nfsft_precompute(N,1000.0,0U,0U); for (r = 0; r < nrepeat; r++) bench_openmp(trafo_adjoint, N, M, x, f_hat, f, m, nfsft_flags, psi_flags); return 0; } nfft-3.2.3/examples/nfsft/Makefile.in0000644000071000003370000007362712137737504014423 00000000000000# Makefile.in generated by automake 1.12.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # $Id: Makefile.am 3774 2012-06-01 07:41:57Z tovo $ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = simple_test$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) subdir = examples/nfsft DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_apple_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_cc_maxopt.m4 \ $(top_srcdir)/m4/ax_check_compiler_flags.m4 \ $(top_srcdir)/m4/ax_check_dir.m4 \ $(top_srcdir)/m4/ax_compiler_vendor.m4 \ $(top_srcdir)/m4/ax_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \ $(top_srcdir)/m4/ax_lib_fftw3.m4 \ $(top_srcdir)/m4/ax_nfft_module.m4 \ $(top_srcdir)/m4/ax_openmp.m4 \ $(top_srcdir)/m4/ax_prog_matlab.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @HAVE_THREADS_TRUE@am__EXEEXT_1 = simple_test_threads$(EXEEXT) @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@am__EXEEXT_2 = \ @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@ nfsft_benchomp$(EXEEXT) \ @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@ nfsft_benchomp_createdataset$(EXEEXT) \ @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@ nfsft_benchomp_detail_single$(EXEEXT) \ @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@ nfsft_benchomp_detail_threads$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) am__nfsft_benchomp_SOURCES_DIST = nfsft_benchomp.c @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@am_nfsft_benchomp_OBJECTS = nfsft_benchomp-nfsft_benchomp.$(OBJEXT) nfsft_benchomp_OBJECTS = $(am_nfsft_benchomp_OBJECTS) @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfsft_benchomp_DEPENDENCIES = $(top_builddir)/libnfft3_threads.la nfsft_benchomp_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(nfsft_benchomp_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ am__nfsft_benchomp_createdataset_SOURCES_DIST = \ nfsft_benchomp_createdataset.c @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@am_nfsft_benchomp_createdataset_OBJECTS = nfsft_benchomp_createdataset.$(OBJEXT) nfsft_benchomp_createdataset_OBJECTS = \ $(am_nfsft_benchomp_createdataset_OBJECTS) @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfsft_benchomp_createdataset_DEPENDENCIES = $(top_builddir)/libnfft3.la am__nfsft_benchomp_detail_single_SOURCES_DIST = \ nfsft_benchomp_detail.c @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@am_nfsft_benchomp_detail_single_OBJECTS = nfsft_benchomp_detail.$(OBJEXT) nfsft_benchomp_detail_single_OBJECTS = \ $(am_nfsft_benchomp_detail_single_OBJECTS) @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfsft_benchomp_detail_single_DEPENDENCIES = $(top_builddir)/libnfft3.la am__nfsft_benchomp_detail_threads_SOURCES_DIST = \ nfsft_benchomp_detail.c @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@am_nfsft_benchomp_detail_threads_OBJECTS = nfsft_benchomp_detail_threads-nfsft_benchomp_detail.$(OBJEXT) nfsft_benchomp_detail_threads_OBJECTS = \ $(am_nfsft_benchomp_detail_threads_OBJECTS) @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfsft_benchomp_detail_threads_DEPENDENCIES = $(top_builddir)/libnfft3_threads.la nfsft_benchomp_detail_threads_LINK = $(LIBTOOL) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(nfsft_benchomp_detail_threads_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ am_simple_test_OBJECTS = simple_test.$(OBJEXT) simple_test_OBJECTS = $(am_simple_test_OBJECTS) simple_test_DEPENDENCIES = $(top_builddir)/libnfft3.la am__simple_test_threads_SOURCES_DIST = simple_test_threads.c @HAVE_THREADS_TRUE@am_simple_test_threads_OBJECTS = simple_test_threads-simple_test_threads.$(OBJEXT) simple_test_threads_OBJECTS = $(am_simple_test_threads_OBJECTS) @HAVE_THREADS_TRUE@simple_test_threads_DEPENDENCIES = \ @HAVE_THREADS_TRUE@ $(top_builddir)/libnfft3_threads.la simple_test_threads_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(simple_test_threads_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/config/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(nfsft_benchomp_SOURCES) \ $(nfsft_benchomp_createdataset_SOURCES) \ $(nfsft_benchomp_detail_single_SOURCES) \ $(nfsft_benchomp_detail_threads_SOURCES) \ $(simple_test_SOURCES) $(simple_test_threads_SOURCES) DIST_SOURCES = $(am__nfsft_benchomp_SOURCES_DIST) \ $(am__nfsft_benchomp_createdataset_SOURCES_DIST) \ $(am__nfsft_benchomp_detail_single_SOURCES_DIST) \ $(am__nfsft_benchomp_detail_threads_SOURCES_DIST) \ $(simple_test_SOURCES) $(am__simple_test_threads_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ HAVE_FPT = @HAVE_FPT@ HAVE_MRI = @HAVE_MRI@ HAVE_NFCT = @HAVE_NFCT@ HAVE_NFSFT = @HAVE_NFSFT@ HAVE_NFSOFT = @HAVE_NFSOFT@ HAVE_NFST = @HAVE_NFST@ HAVE_NNFFT = @HAVE_NNFFT@ HAVE_NSFFT = @HAVE_NSFFT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENMP_CFLAGS = @OPENMP_CFLAGS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POW_LIB = @POW_LIB@ PRTDIAG = @PRTDIAG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHARED_VERSION_INFO = @SHARED_VERSION_INFO@ SHELL = @SHELL@ STRIP = @STRIP@ TICKS_PER_SECOND = @TICKS_PER_SECOND@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fftw3_LDFLAGS = @fftw3_LDFLAGS@ fftw3_LIBS = @fftw3_LIBS@ fftw3_threads_LIBS = @fftw3_threads_LIBS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ matlab_CPPFLAGS = @matlab_CPPFLAGS@ matlab_LDFLAGS = @matlab_LDFLAGS@ matlab_LIBS = @matlab_LIBS@ matlab_fftw3_LDFLAGS = @matlab_fftw3_LDFLAGS@ matlab_fftw3_LIBS = @matlab_fftw3_LIBS@ matlab_mexext = @matlab_mexext@ matlab_prog_mexext = @matlab_prog_mexext@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = -I$(top_srcdir)/include @HAVE_THREADS_FALSE@SIMPLE_TEST_THREADS = @HAVE_THREADS_TRUE@SIMPLE_TEST_THREADS = simple_test_threads @HAVE_OPENMP_FALSE@@HAVE_THREADS_TRUE@NFSFT_BENCHOMP_PROGS = @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@NFSFT_BENCHOMP_PROGS = nfsft_benchomp nfsft_benchomp_createdataset nfsft_benchomp_detail_single nfsft_benchomp_detail_threads @HAVE_THREADS_FALSE@NFSFT_BENCHOMP_PROGS = simple_test_SOURCES = simple_test.c simple_test_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ @HAVE_THREADS_TRUE@simple_test_threads_SOURCES = simple_test_threads.c @HAVE_THREADS_TRUE@simple_test_threads_LDADD = $(top_builddir)/libnfft3_threads.la @fftw3_LDFLAGS@ @fftw3_threads_LIBS@ @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@simple_test_threads_CFLAGS = $(OPENMP_CFLAGS) @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfsft_benchomp_SOURCES = nfsft_benchomp.c @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfsft_benchomp_LDADD = $(top_builddir)/libnfft3_threads.la @fftw3_LDFLAGS@ @fftw3_threads_LIBS@ @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfsft_benchomp_CFLAGS = $(OPENMP_CFLAGS) @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfsft_benchomp_createdataset_SOURCES = nfsft_benchomp_createdataset.c @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfsft_benchomp_createdataset_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfsft_benchomp_detail_single_SOURCES = nfsft_benchomp_detail.c @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfsft_benchomp_detail_single_LDADD = $(top_builddir)/libnfft3.la @fftw3_LDFLAGS@ @fftw3_LIBS@ @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfsft_benchomp_detail_threads_SOURCES = nfsft_benchomp_detail.c @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfsft_benchomp_detail_threads_LDADD = $(top_builddir)/libnfft3_threads.la @fftw3_LDFLAGS@ @fftw3_threads_LIBS@ @HAVE_OPENMP_TRUE@@HAVE_THREADS_TRUE@nfsft_benchomp_detail_threads_CFLAGS = $(OPENMP_CFLAGS) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/nfsft/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/nfsft/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list nfsft_benchomp$(EXEEXT): $(nfsft_benchomp_OBJECTS) $(nfsft_benchomp_DEPENDENCIES) $(EXTRA_nfsft_benchomp_DEPENDENCIES) @rm -f nfsft_benchomp$(EXEEXT) $(nfsft_benchomp_LINK) $(nfsft_benchomp_OBJECTS) $(nfsft_benchomp_LDADD) $(LIBS) nfsft_benchomp_createdataset$(EXEEXT): $(nfsft_benchomp_createdataset_OBJECTS) $(nfsft_benchomp_createdataset_DEPENDENCIES) $(EXTRA_nfsft_benchomp_createdataset_DEPENDENCIES) @rm -f nfsft_benchomp_createdataset$(EXEEXT) $(LINK) $(nfsft_benchomp_createdataset_OBJECTS) $(nfsft_benchomp_createdataset_LDADD) $(LIBS) nfsft_benchomp_detail_single$(EXEEXT): $(nfsft_benchomp_detail_single_OBJECTS) $(nfsft_benchomp_detail_single_DEPENDENCIES) $(EXTRA_nfsft_benchomp_detail_single_DEPENDENCIES) @rm -f nfsft_benchomp_detail_single$(EXEEXT) $(LINK) $(nfsft_benchomp_detail_single_OBJECTS) $(nfsft_benchomp_detail_single_LDADD) $(LIBS) nfsft_benchomp_detail_threads$(EXEEXT): $(nfsft_benchomp_detail_threads_OBJECTS) $(nfsft_benchomp_detail_threads_DEPENDENCIES) $(EXTRA_nfsft_benchomp_detail_threads_DEPENDENCIES) @rm -f nfsft_benchomp_detail_threads$(EXEEXT) $(nfsft_benchomp_detail_threads_LINK) $(nfsft_benchomp_detail_threads_OBJECTS) $(nfsft_benchomp_detail_threads_LDADD) $(LIBS) simple_test$(EXEEXT): $(simple_test_OBJECTS) $(simple_test_DEPENDENCIES) $(EXTRA_simple_test_DEPENDENCIES) @rm -f simple_test$(EXEEXT) $(LINK) $(simple_test_OBJECTS) $(simple_test_LDADD) $(LIBS) simple_test_threads$(EXEEXT): $(simple_test_threads_OBJECTS) $(simple_test_threads_DEPENDENCIES) $(EXTRA_simple_test_threads_DEPENDENCIES) @rm -f simple_test_threads$(EXEEXT) $(simple_test_threads_LINK) $(simple_test_threads_OBJECTS) $(simple_test_threads_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nfsft_benchomp-nfsft_benchomp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nfsft_benchomp_createdataset.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nfsft_benchomp_detail.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nfsft_benchomp_detail_threads-nfsft_benchomp_detail.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_test.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/simple_test_threads-simple_test_threads.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< nfsft_benchomp-nfsft_benchomp.o: nfsft_benchomp.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nfsft_benchomp_CFLAGS) $(CFLAGS) -MT nfsft_benchomp-nfsft_benchomp.o -MD -MP -MF $(DEPDIR)/nfsft_benchomp-nfsft_benchomp.Tpo -c -o nfsft_benchomp-nfsft_benchomp.o `test -f 'nfsft_benchomp.c' || echo '$(srcdir)/'`nfsft_benchomp.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/nfsft_benchomp-nfsft_benchomp.Tpo $(DEPDIR)/nfsft_benchomp-nfsft_benchomp.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nfsft_benchomp.c' object='nfsft_benchomp-nfsft_benchomp.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nfsft_benchomp_CFLAGS) $(CFLAGS) -c -o nfsft_benchomp-nfsft_benchomp.o `test -f 'nfsft_benchomp.c' || echo '$(srcdir)/'`nfsft_benchomp.c nfsft_benchomp-nfsft_benchomp.obj: nfsft_benchomp.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nfsft_benchomp_CFLAGS) $(CFLAGS) -MT nfsft_benchomp-nfsft_benchomp.obj -MD -MP -MF $(DEPDIR)/nfsft_benchomp-nfsft_benchomp.Tpo -c -o nfsft_benchomp-nfsft_benchomp.obj `if test -f 'nfsft_benchomp.c'; then $(CYGPATH_W) 'nfsft_benchomp.c'; else $(CYGPATH_W) '$(srcdir)/nfsft_benchomp.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/nfsft_benchomp-nfsft_benchomp.Tpo $(DEPDIR)/nfsft_benchomp-nfsft_benchomp.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nfsft_benchomp.c' object='nfsft_benchomp-nfsft_benchomp.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nfsft_benchomp_CFLAGS) $(CFLAGS) -c -o nfsft_benchomp-nfsft_benchomp.obj `if test -f 'nfsft_benchomp.c'; then $(CYGPATH_W) 'nfsft_benchomp.c'; else $(CYGPATH_W) '$(srcdir)/nfsft_benchomp.c'; fi` nfsft_benchomp_detail_threads-nfsft_benchomp_detail.o: nfsft_benchomp_detail.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nfsft_benchomp_detail_threads_CFLAGS) $(CFLAGS) -MT nfsft_benchomp_detail_threads-nfsft_benchomp_detail.o -MD -MP -MF $(DEPDIR)/nfsft_benchomp_detail_threads-nfsft_benchomp_detail.Tpo -c -o nfsft_benchomp_detail_threads-nfsft_benchomp_detail.o `test -f 'nfsft_benchomp_detail.c' || echo '$(srcdir)/'`nfsft_benchomp_detail.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/nfsft_benchomp_detail_threads-nfsft_benchomp_detail.Tpo $(DEPDIR)/nfsft_benchomp_detail_threads-nfsft_benchomp_detail.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nfsft_benchomp_detail.c' object='nfsft_benchomp_detail_threads-nfsft_benchomp_detail.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nfsft_benchomp_detail_threads_CFLAGS) $(CFLAGS) -c -o nfsft_benchomp_detail_threads-nfsft_benchomp_detail.o `test -f 'nfsft_benchomp_detail.c' || echo '$(srcdir)/'`nfsft_benchomp_detail.c nfsft_benchomp_detail_threads-nfsft_benchomp_detail.obj: nfsft_benchomp_detail.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nfsft_benchomp_detail_threads_CFLAGS) $(CFLAGS) -MT nfsft_benchomp_detail_threads-nfsft_benchomp_detail.obj -MD -MP -MF $(DEPDIR)/nfsft_benchomp_detail_threads-nfsft_benchomp_detail.Tpo -c -o nfsft_benchomp_detail_threads-nfsft_benchomp_detail.obj `if test -f 'nfsft_benchomp_detail.c'; then $(CYGPATH_W) 'nfsft_benchomp_detail.c'; else $(CYGPATH_W) '$(srcdir)/nfsft_benchomp_detail.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/nfsft_benchomp_detail_threads-nfsft_benchomp_detail.Tpo $(DEPDIR)/nfsft_benchomp_detail_threads-nfsft_benchomp_detail.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nfsft_benchomp_detail.c' object='nfsft_benchomp_detail_threads-nfsft_benchomp_detail.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(nfsft_benchomp_detail_threads_CFLAGS) $(CFLAGS) -c -o nfsft_benchomp_detail_threads-nfsft_benchomp_detail.obj `if test -f 'nfsft_benchomp_detail.c'; then $(CYGPATH_W) 'nfsft_benchomp_detail.c'; else $(CYGPATH_W) '$(srcdir)/nfsft_benchomp_detail.c'; fi` simple_test_threads-simple_test_threads.o: simple_test_threads.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_test_threads_CFLAGS) $(CFLAGS) -MT simple_test_threads-simple_test_threads.o -MD -MP -MF $(DEPDIR)/simple_test_threads-simple_test_threads.Tpo -c -o simple_test_threads-simple_test_threads.o `test -f 'simple_test_threads.c' || echo '$(srcdir)/'`simple_test_threads.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/simple_test_threads-simple_test_threads.Tpo $(DEPDIR)/simple_test_threads-simple_test_threads.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='simple_test_threads.c' object='simple_test_threads-simple_test_threads.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_test_threads_CFLAGS) $(CFLAGS) -c -o simple_test_threads-simple_test_threads.o `test -f 'simple_test_threads.c' || echo '$(srcdir)/'`simple_test_threads.c simple_test_threads-simple_test_threads.obj: simple_test_threads.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_test_threads_CFLAGS) $(CFLAGS) -MT simple_test_threads-simple_test_threads.obj -MD -MP -MF $(DEPDIR)/simple_test_threads-simple_test_threads.Tpo -c -o simple_test_threads-simple_test_threads.obj `if test -f 'simple_test_threads.c'; then $(CYGPATH_W) 'simple_test_threads.c'; else $(CYGPATH_W) '$(srcdir)/simple_test_threads.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/simple_test_threads-simple_test_threads.Tpo $(DEPDIR)/simple_test_threads-simple_test_threads.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='simple_test_threads.c' object='simple_test_threads-simple_test_threads.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(simple_test_threads_CFLAGS) $(CFLAGS) -c -o simple_test_threads-simple_test_threads.obj `if test -f 'simple_test_threads.c'; then $(CYGPATH_W) 'simple_test_threads.c'; else $(CYGPATH_W) '$(srcdir)/simple_test_threads.c'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS cscopelist ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: nfft-3.2.3/examples/nfsft/simple_test.c0000644000071000003370000001007712137737443015042 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: simple_test.c 3902 2012-10-16 14:02:31Z tovo $ */ #include "config.h" /* standard headers */ #include #include #include #include /* It is important to include complex.h before nfft3.h. */ #ifdef HAVE_COMPLEX_H #include #endif #include "nfft3.h" /* NFFT3 header */ #include "nfft3util.h" /* NFFT3 utilities header*/ #include "infft.h" /* NFFT3 internal header */ static void simple_test_nfsft(void) { const int N = 4; /* bandwidth/maximum degree */ const int M = 8; /* number of nodes */ nfsft_plan plan; /* transform plan */ int j, k, n; /* loop variables */ /* precomputation (for fast polynomial transform) */ nfsft_precompute(N,1000.0,0U,0U); /* Initialize transform plan using the guru interface. All input and output * arrays are allocated by nfsft_init_guru(). Computations are performed with * respect to L^2-normalized spherical harmonics Y_k^n. The array of spherical * Fourier coefficients is preserved during transformations. The NFFT uses a * cut-off parameter m = 6. See the NFFT 3 manual for details. */ nfsft_init_guru(&plan, N, M, NFSFT_MALLOC_X | NFSFT_MALLOC_F | NFSFT_MALLOC_F_HAT | NFSFT_NORMALIZED | NFSFT_PRESERVE_F_HAT, PRE_PHI_HUT | PRE_PSI | FFTW_INIT | FFT_OUT_OF_PLACE, 6); /* pseudo-random nodes */ for (j = 0; j < plan.M_total; j++) { plan.x[2*j]= nfft_drand48() - K(0.5); plan.x[2*j+1]= K(0.5) * nfft_drand48(); } /* precomputation (for NFFT, node-dependent) */ nfsft_precompute_x(&plan); /* pseudo-random Fourier coefficients */ for (k = 0; k <= plan.N; k++) for (n = -k; n <= k; n++) plan.f_hat[NFSFT_INDEX(k,n,&plan)] = nfft_drand48() - K(0.5) + _Complex_I*(nfft_drand48() - K(0.5)); /* Direct transformation, display result. */ nfsft_trafo_direct(&plan); printf("Vector f (NDSFT):\n"); for (j = 0; j < plan.M_total; j++) printf("f[%+2d] = %+5.3" FE " %+5.3" FE "*I\n",j, creal(plan.f[j]), cimag(plan.f[j])); printf("\n"); /* Fast approximate transformation, display result. */ nfsft_trafo(&plan); printf("Vector f (NFSFT):\n"); for (j = 0; j < plan.M_total; j++) printf("f[%+2d] = %+5.3" FE " %+5.3" FE "*I\n",j, creal(plan.f[j]), cimag(plan.f[j])); printf("\n"); /* Direct adjoint transformation, display result. */ nfsft_adjoint_direct(&plan); printf("Vector f_hat (NDSFT):\n"); for (k = 0; k <= plan.N; k++) for (n = -k; n <= k; n++) fprintf(stdout,"f_hat[%+2d,%+2d] = %+5.3" FE " %+5.3" FE "*I\n",k,n, creal(plan.f_hat[NFSFT_INDEX(k,n,&plan)]), cimag(plan.f_hat[NFSFT_INDEX(k,n,&plan)])); printf("\n"); /* Fast approximate adjoint transformation, display result. */ nfsft_adjoint(&plan); printf("Vector f_hat (NFSFT):\n"); for (k = 0; k <= plan.N; k++) { for (n = -k; n <= k; n++) { fprintf(stdout,"f_hat[%+2d,%+2d] = %+5.3" FE " %+5.3" FE "*I\n",k,n, creal(plan.f_hat[NFSFT_INDEX(k,n,&plan)]), cimag(plan.f_hat[NFSFT_INDEX(k,n,&plan)])); } } /* Finalize the plan. */ nfsft_finalize(&plan); /* Destroy data precomputed for fast polynomial transform. */ nfsft_forget(); } int main(void) { printf("Computing an NDSFT, an NFSFT, an adjoint NDSFT, and an adjoint NFSFT" "...\n\n"); simple_test_nfsft(); return EXIT_SUCCESS; } nfft-3.2.3/examples/doxygen.c0000644000071000003370000000157512137737443013052 00000000000000/* * Copyright (c) 2002, 2012 Jens Keiner, Stefan Kunis, Daniel Potts * * 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., 51 * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* $Id: doxygen.c 3775 2012-06-02 16:39:48Z keiner $ */ /** * \defgroup examples Examples */ nfft-3.2.3/examples/Makefile.in0000644000071000003370000004701112137737503013266 00000000000000# Makefile.in generated by automake 1.12.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = examples DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_apple_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_cc_maxopt.m4 \ $(top_srcdir)/m4/ax_check_compiler_flags.m4 \ $(top_srcdir)/m4/ax_check_dir.m4 \ $(top_srcdir)/m4/ax_compiler_vendor.m4 \ $(top_srcdir)/m4/ax_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \ $(top_srcdir)/m4/ax_lib_fftw3.m4 \ $(top_srcdir)/m4/ax_nfft_module.m4 \ $(top_srcdir)/m4/ax_openmp.m4 \ $(top_srcdir)/m4/ax_prog_matlab.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = fpt mri nfct nfft nfsft nfsoft nfst nnfft nsfft solver DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ HAVE_FPT = @HAVE_FPT@ HAVE_MRI = @HAVE_MRI@ HAVE_NFCT = @HAVE_NFCT@ HAVE_NFSFT = @HAVE_NFSFT@ HAVE_NFSOFT = @HAVE_NFSOFT@ HAVE_NFST = @HAVE_NFST@ HAVE_NNFFT = @HAVE_NNFFT@ HAVE_NSFFT = @HAVE_NSFFT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OPENMP_CFLAGS = @OPENMP_CFLAGS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POW_LIB = @POW_LIB@ PRTDIAG = @PRTDIAG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHARED_VERSION_INFO = @SHARED_VERSION_INFO@ SHELL = @SHELL@ STRIP = @STRIP@ TICKS_PER_SECOND = @TICKS_PER_SECOND@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ fftw3_LDFLAGS = @fftw3_LDFLAGS@ fftw3_LIBS = @fftw3_LIBS@ fftw3_threads_LIBS = @fftw3_threads_LIBS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ matlab_CPPFLAGS = @matlab_CPPFLAGS@ matlab_LDFLAGS = @matlab_LDFLAGS@ matlab_LIBS = @matlab_LIBS@ matlab_fftw3_LDFLAGS = @matlab_fftw3_LDFLAGS@ matlab_fftw3_LIBS = @matlab_fftw3_LIBS@ matlab_mexext = @matlab_mexext@ matlab_prog_mexext = @matlab_prog_mexext@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @HAVE_NFCT_TRUE@DIR_NFCT = nfct @HAVE_NFCT_FALSE@LIB_NFCT = @HAVE_NFST_FALSE@DIR_NFST = @HAVE_NFST_TRUE@DIR_NFST = nfst @HAVE_NFSFT_FALSE@DIR_NFSFT = @HAVE_NFSFT_TRUE@DIR_NFSFT = nfsft @HAVE_NFSOFT_FALSE@DIR_NFSOFT = @HAVE_NFSOFT_TRUE@DIR_NFSOFT = nfsoft @HAVE_NNFFT_FALSE@DIR_NNFFT = @HAVE_NNFFT_TRUE@DIR_NNFFT = nnfft @HAVE_NSFFT_FALSE@DIR_NSFFT = @HAVE_NSFFT_TRUE@DIR_NSFFT = nsfft @HAVE_MRI_FALSE@DIR_MRI = @HAVE_MRI_TRUE@DIR_MRI = mri @HAVE_FPT_FALSE@DIR_FPT = @HAVE_FPT_TRUE@DIR_FPT = fpt SUBDIRS = $(DIR_FPT) $(DIR_MRI) $(DIR_NFCT) nfft $(DIR_NFSFT) $(DIR_NFSOFT) $(DIR_NFST) \ $(DIR_NNFFT) $(DIR_NSFFT) solver EXTRA_DIST = doxygen.c all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done cscopelist-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \ cscopelist-recursive ctags-recursive install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ cscopelist cscopelist-recursive ctags ctags-recursive \ distclean distclean-generic distclean-libtool distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-recursive uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: nfft-3.2.3/NEWS0000644000071000003370000000000012137737443010070 00000000000000nfft-3.2.3/Makefile.am0000644000071000003370000000642612137737443011447 00000000000000# $Id: Makefile.am 3896 2012-10-10 12:19:26Z tovo $ LIBTOOL_DEPS = @LIBTOOL_DEPS@ libtool: $(LIBTOOL_DEPS) $(SHELL) ./config.status --recheck # Subdirectories DIST_SUBDIRS=3rdparty include util kernel . tests examples applications matlab support doxygen if HAVE_MATLAB MATLAB_DIRS=matlab LIBNFFT3_MATLAB_LA=libnfft3_matlab.la else MATLAB_DIRS= LIBNFFT3_MATLAB_LA= endif if HAVE_THREADS LIBNFFT3_THREADS_LA = libnfft3_threads.la else LIBNFFT3_THREADS_LA = endif SUBDIRS= 3rdparty include util kernel . tests examples applications $(MATLAB_DIRS) lib_LTLIBRARIES = libnfft3.la $(LIBNFFT3_THREADS_LA) noinst_LTLIBRARIES = $(LIBNFFT3_MATLAB_LA) libnfft3_la_SOURCES = libnfft3_la_LIBADD = 3rdparty/lib3rdparty.la util/libutil.la kernel/libkernel.la @fftw3_LIBS@ -lm libnfft3_la_LDFLAGS = -no-undefined -version-info @SHARED_VERSION_INFO@ @fftw3_LDFLAGS@ if HAVE_THREADS libnfft3_threads_la_SOURCES = libnfft3_threads_la_LIBADD = 3rdparty/lib3rdparty.la util/libutil_threads.la kernel/libkernel_threads.la @fftw3_threads_LIBS@ -lm libnfft3_threads_la_LDFLAGS = -no-undefined -version-info @SHARED_VERSION_INFO@ @fftw3_LDFLAGS@ if HAVE_OPENMP libnfft3_threads_la_CFLAGS = $(OPENMP_CFLAGS) endif endif if HAVE_MATLAB libnfft3_matlab_la_SOURCES = if HAVE_MATLAB_THREADS libnfft3_matlab_la_LIBADD = 3rdparty/lib3rdparty.la util/libutil_threads.la kernel/libkernel_threads.la @matlab_fftw3_LIBS@ -lm else libnfft3_matlab_la_LIBADD = 3rdparty/lib3rdparty.la util/libutil.la kernel/libkernel.la @matlab_fftw3_LIBS@ -lm endif libnfft3_matlab_la_LDFLAGS = @matlab_fftw3_LDFLAGS@ endif EXTRA_DIST = bootstrap.sh doxygen.dox nfft3.pc.in pkgconfigdir=$(libdir)/pkgconfig pkgconfig_DATA = nfft3.pc #install-data-hook: # $(MKDIR_P) $(docdir) # cp -R $(srcdir)/doc/* $(docdir)/ # chmod -R u+rwX,g+rX,g-w,o+rX,o-w $(docdir) #uninstall-hook: # rm -Rf $(docdir) maintainer-clean-local: rm -f $(srcdir)/doc/api/html/*.html rm -f $(srcdir)/doc/api/html/*.png rm -f $(srcdir)/doc/api/html/*.gif rm -f $(srcdir)/doc/api/html/doxygen.css rm -f $(srcdir)/doc/api/html/formula.repository rm -f $(srcdir)/doc/api/latex/*.tex rm -f $(srcdir)/doc/api/latex/*.sty rm -f $(srcdir)/doc/api/latex/*.ttf rm -f $(srcdir)/doc/api/latex/*.pdf rm -f $(srcdir)/doc/api/latex/Makefile dist-hook: echo `pwd` chmod -Rf u+rwX $(srcdir)/doc sed 's/^ \* \\section \([a-zA-Z0-9_]*\) \(.*\)/