Commit 6d6a575a authored by thomas.forbriger's avatar thomas.forbriger
Browse files

[MERGE] (master|vendor_Seitosh): vendor import of 23.10.2015

Merge branch 'vendor_Seitosh'

Conflicts:
	contrib/aff/README.export
	contrib/fourier/README.export
	contrib/stfinv/README.export

Commands executed on branch master (as a guideline for future imports):

  git merge -X theirs vendor_Seitosh
  git rm contrib/*/README.export
  git commit
parents 02cfa44c 25190a67
/*! \file libfourier/README
* \brief C++ library to operate on Fourier transforms (libfourierxx)
*
* ----------------------------------------------------------------------------
*
* $Id: README 3555 2010-12-11 16:46:58Z tforb $
*
* Copyright (c) 2002 by Thomas Forbriger (IMG Frankfurt)
*
* C++ library to operate on Fourier transforms (libfourierxx)
*
* REVISIONS and CHANGES
* - 02/10/2007 V1.0 Thomas Forbriger (started README)
*
* ============================================================================
*/
this is <README>
============================================================================
FOURIER --- Fourier coefficients library
-------------------------------
$Id$
============================================================================
/*! \mainpage
For compilation instructions see README.1st in the root directory of the tar-ball or
http://gpitrsvn.gpi.uni-karlsruhe.de:8000/TFSoftware/wiki/docs/installation
\author Thomas Forbriger
\since 2002
\date $Date: 2007-10-02 18:49:08 $
\version $Id: README 3555 2010-12-11 16:46:58Z tforb $
The library provides modules to perform Fourier transformations and to
operate on Fourier transforms.An interface to FFTW is available.Signal
filters can be defined by their Fourier domain response function and applied
to the Fourier transform of a signal. libaff is used to store Fourier
coefficients and time series samples.Further stuff will be collected in
this library in the future.
The library provides modules to perform Fourier transformations and to operate
on Fourier transforms.
An interface to FFTW is available.
Signal filters can be defined by their response spectrum and applied to a
Fourier transform.
libaff is used to store Fourier coefficients and time series samples.
Further stuff will be collected in this library in the future.
*/
Binary libraries
----------------
libfourier.a Fortran library
libfourierxx.a C++ library
/*======================================================================*/
Dependencies
------------
libaff is required to compile the binary libraries
fftw3 is required for the C++ library
doxygen is required to process source code documentation
/*! \page page_fftw3 Scaling of Fourier transform in FFTW3
*
* \section sec_fftw3_library Fourier transformation in the FFTW3 library
*
* The FFTW3 reference
* http://www.fftw.org/fftw3_doc/The-1d-Discrete-Fourier-Transform-_0028DFT_0029.html#The-1d-Discrete-Fourier-Transform-_0028DFT_0029
* tells:
* \verbatim
* 4.8.1 The 1d Discrete Fourier Transform (DFT)
*
* The forward (FFTW_FORWARD) discrete Fourier transform (DFT) of a 1d complex
* array X of size n computes an array Y, where:
*
* Y_k = sum_{j=0}^{n-1} X_j exp(-2i pi j k / n)
*
* The backward (FFTW_BACKWARD) DFT computes:
*
* X_k = sum_{j=0}^{n-1} Y_j exp(+2i pi j k / n)
*
* FFTW computes an unnormalized transform, in that there is no coefficient in
* front of the summation in the DFT. In other words, applying the forward and
* then the backward transform will multiply the input by n.
*
* From above, an FFTW_FORWARD transform corresponds to a sign of -1 in the
* exponent of the DFT. Note also that we use the standard in-order output
* orderingthe k-th output corresponds to the frequency k/n (or k/T, where T
* is your total sampling period). For those who like to think in terms of
* positive and negative frequencies, this means that the positive frequencies
* are stored in the first half of the output and the negative frequencies are
* stored in backwards order in the second half of the output. (The frequency
* -k/n is the same as the frequency (n-k)/n.)
* \endverbatim
*
* The forward transform is:
* \f[
* Y_k = \sum_{j=0}^{n-1} X_j e^{-i 2 \pi \frac{j k}{n}}
* \f]
*
* The backward transform is:
* \f[
* X_k = \sum_{j=0}^{n-1} Y_j e^{i 2 \pi \frac{j k}{n}}
* \f]
*
* \section sec_fftw3_integral_transform Integral transform scaling
*
* The Fourier transform presented here is scaled to represent the Fourier
* integral transform pair
* \f[
* \tilde{s}(\omega) = \int\limits_{-\infty}^{+\infty}
* s(t)\,e^{-i\omega t}\frac{\textrm{d}\omega}{2\pi}
* = \int\limits_{0}^{N\Delta t}
* s(t)\,e^{-i\omega t}\frac{\textrm{d}\omega}{2\pi}
* \f]
* with \f$s(t)=0\f$ for \f$t<0\f$ and \f$t>T=N\Delta t\f$
* and
* \f[
* s(t) = \int\limits_{-\infty}^{+\infty}
* \tilde{s}(\omega)\,e^{i\omega t}\,\textrm{d}t
* = \int\limits_{-\pi/(N\Delta t)}^{+\pi/(N\Delta t)}
* \tilde{s}(\omega)\,e^{i\omega t}\,\textrm{d}t
* \f]
* with \f$\tilde{s}(\omega)=0\f$
* for \f$|\omega|>\pi/T=\pi/(N\Delta t)\f$.
*
* The FFTW3 transformation consequently has to be scaled according to
* \f[
* Y_k = \sum_{j=0}^{N-1} X_j e^{-i 2 \pi \frac{j k}{N}} \Delta t
* \f]
* and
* \f[
* X_k = \sum_{j=0}^{N-1} Y_j e^{i 2 \pi \frac{j k}{N}} \frac{1}{N\Delta t}
* \f]
*
* Where \f$X_k=s(t=k\Delta t)\f$ is the time series
* with \f$N\f$ samples at \f$\Delta t\f$ sampling interval.
* \f$Y_k=\tilde{s}(\omega=k\Delta \omega)\f$ are samples of the Fourier
* integral transform, where
* \f$\Delta\omega=2\pi/T\f$ and \f$T=N\Delta t\f$.
*
*/
Installation
------------
environment variables:
LOCINCLUDEDIR Defines the path where header files will be copied for
usage in your own projects. You will pass this path to
the precompiler with the -I option.
LOCLIBDIR Defines the path where the binary library will be
placed.
TF_WWWBASEDIR Defines the path to your personal homepage. That's the
place where doxygen output will be written too (see
in the Makefile).
// ----- END OF README -----
make all installs headers, binary libraries and documentation
Detailed documentation is provided through libfourier.doc (fortran code)
and doxygen source code. See target doxydoc in the Makefile.
----- END OF README -----
this is <README>
============================================================================
fourier
-------
$Id$
============================================================================
This directory contains source code for the library fourier. It was exportet
from TF_Software to DENISE. DENISE is hosted in the Trac-/svn-project
FWI_elastic .
See COPYING for copyright and license information.
Exports:
Each time this source code is exported to DENISE the current version is
tagged. The directory containing the tagged version is named by the day
of the export (yyyymmdd) and can be found in
http://gpitrsvn.gpi.uni-karlsruhe.de/repos/TFSoftware/export/fourier.
19/10/2011 First export of the version tagged in 20111019
01/02/2013 Export of version tagged in 20130201
----- END OF README -----
......@@ -3,10 +3,10 @@
*
* ----------------------------------------------------------------------------
*
* $Id: cfftwtest.c 4966 2013-02-01 13:46:50Z lrehor $
* $Id$
*
* ----
* This program is free software; you can redistribute it and/or modify
* libfourier 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.
......@@ -42,7 +42,7 @@
#define TF_CFFTWTEST_C_VERSION \
"TF_CFFTWTEST_C V1.0 "
#define TF_CFFTWTEST_C_CVSID \
"$Id: cfftwtest.c 4966 2013-02-01 13:46:50Z lrehor $"
"$Id$"
#include<drfftw.h>
#include<stdio.h>
......
......@@ -3,7 +3,7 @@
*
* ----------------------------------------------------------------------------
*
* $Id: cxxfftwartest.cc 4120 2011-09-08 08:27:43Z tforb $
* $Id$
* \author Thomas Forbriger
* \date 16/05/2011
*
......@@ -12,7 +12,7 @@
* Copyright (c) 2011 by Thomas Forbriger (BFO Schiltach)
*
* ----
* This program is free software; you can redistribute it and/or modify
* libfourier 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.
......@@ -38,7 +38,7 @@
#define CXXFFTWARTEST_VERSION \
"CXXFFTWARTEST V1.2 test fftw3 array engine"
#define CXXFFTWARTEST_CVSID \
"$Id: cxxfftwartest.cc 4120 2011-09-08 08:27:43Z tforb $"
"$Id$"
// use the input/output facilities from the standard library
#include <iostream>
......
......@@ -3,7 +3,7 @@
*
* ----------------------------------------------------------------------------
*
* $Id: cxxfftwtest.cc 4966 2013-02-01 13:46:50Z lrehor $
* $Id$
* \author Thomas Forbriger
* \date 12/09/2007
*
......@@ -12,7 +12,7 @@
* Copyright (c) 2007 by Thomas Forbriger (BFO Schiltach)
*
* ----
* This program is free software; you can redistribute it and/or modify
* libfourier 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.
......@@ -36,7 +36,7 @@
#define CXXFFTWTEST_VERSION \
"CXXFFTWTEST V1.1 a small test program for fftw when called from C++"
#define CXXFFTWTEST_CVSID \
"$Id: cxxfftwtest.cc 4966 2013-02-01 13:46:50Z lrehor $"
"$Id$"
#include <iostream>
#include <tfxx/commandline.h>
......
......@@ -4,7 +4,7 @@
# Project related configuration options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "Fourier library: Operates in the Fourier domain"
PROJECT_NAME = "Fourier library: Operations in the Fourier domain"
PROJECT_NUMBER =
OUTPUT_DIRECTORY = <OUTPUTDIRECTORY>
CREATE_SUBDIRS = NO
......@@ -89,8 +89,7 @@ WARN_LOGFILE =
#---------------------------------------------------------------------------
INPUT = ./
INPUT_ENCODING = UTF-8
FILE_PATTERNS = README \
README.changelog \
FILE_PATTERNS = doxygen*.txt \
*.h *.f \
*.cc
RECURSIVE = YES
......
/*! \file libfourier/doxygen.txt
* \brief C++ library to operate on Fourier transforms (libfourierxx)
*
* ----------------------------------------------------------------------------
*
* $Id$
*
* Copyright (c) 2002 by Thomas Forbriger (IMG Frankfurt)
*
* C++ library to operate on Fourier transforms (libfourierxx)
*
* ----
* libfourier 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 St, Fifth Floor, Boston, MA 02110-1301 USA
* ----
*
* REVISIONS and CHANGES
* - 02/10/2007 V1.0 Thomas Forbriger (started README)
* - 18/07/2013 V1.1 tmetz (renamed file)
* ============================================================================
*/
/*! \mainpage
\author Thomas Forbriger
\since 2002
\date $Date$
\version $Id$
The library provides modules to perform Fourier transformations and to operate
on Fourier transforms.
An interface to FFTW is available.
Signal filters can be defined by their Fourier domain response function and
applied to the Fourier transform of a signal.
libaff is used to store Fourier coefficients and time series samples.
Further stuff will be collected in this library in the future.
*/
/*======================================================================*/
/*! \page page_fftw3 Scaling of Fourier transform in FFTW3
*
* \section sec_fftw3_library Fourier transformation in the FFTW3 library
*
* The FFTW3 reference
* http://www.fftw.org/fftw3_doc/The-1d-Discrete-Fourier-Transform-_0028DFT_0029.html#The-1d-Discrete-Fourier-Transform-_0028DFT_0029
* tells:
* \verbatim
* 4.8.1 The 1d Discrete Fourier Transform (DFT)
*
* The forward (FFTW_FORWARD) discrete Fourier transform (DFT) of a 1d complex
* array X of size n computes an array Y, where:
*
* Y_k = sum_{j=0}^{n-1} X_j exp(-2i pi j k / n)
*
* The backward (FFTW_BACKWARD) DFT computes:
*
* X_k = sum_{j=0}^{n-1} Y_j exp(+2i pi j k / n)
*
* FFTW computes an unnormalized transform, in that there is no coefficient in
* front of the summation in the DFT. In other words, applying the forward and
* then the backward transform will multiply the input by n.
*
* From above, an FFTW_FORWARD transform corresponds to a sign of -1 in the
* exponent of the DFT. Note also that we use the standard in-order output
* orderingthe k-th output corresponds to the frequency k/n (or k/T, where T
* is your total sampling period). For those who like to think in terms of
* positive and negative frequencies, this means that the positive frequencies
* are stored in the first half of the output and the negative frequencies are
* stored in backwards order in the second half of the output. (The frequency
* -k/n is the same as the frequency (n-k)/n.)
* \endverbatim
*
* The forward transform is:
* \f[
* Y_k = \sum_{j=0}^{n-1} X_j e^{-i 2 \pi \frac{j k}{n}}
* \f]
*
* The backward transform is:
* \f[
* X_k = \sum_{j=0}^{n-1} Y_j e^{i 2 \pi \frac{j k}{n}}
* \f]
*
* \section sec_fftw3_integral_transform Integral transform scaling
*
* The Fourier transform presented here is scaled to represent the Fourier
* integral transform pair
* \f[
* \tilde{s}(\omega) = \int\limits_{-\infty}^{+\infty}
* s(t)\,e^{-i\omega t}\frac{\textrm{d}\omega}{2\pi}
* = \int\limits_{0}^{N\Delta t}
* s(t)\,e^{-i\omega t}\frac{\textrm{d}\omega}{2\pi}
* \f]
* with \f$s(t)=0\f$ for \f$t<0\f$ and \f$t>T=N\Delta t\f$
* and
* \f[
* s(t) = \int\limits_{-\infty}^{+\infty}
* \tilde{s}(\omega)\,e^{i\omega t}\,\textrm{d}t
* = \int\limits_{-\pi/(N\Delta t)}^{+\pi/(N\Delta t)}
* \tilde{s}(\omega)\,e^{i\omega t}\,\textrm{d}t
* \f]
* with \f$\tilde{s}(\omega)=0\f$
* for \f$|\omega|>\pi/T=\pi/(N\Delta t)\f$.
*
* The FFTW3 transformation consequently has to be scaled according to
* \f[
* Y_k = \sum_{j=0}^{N-1} X_j e^{-i 2 \pi \frac{j k}{N}} \Delta t
* \f]
* and
* \f[
* X_k = \sum_{j=0}^{N-1} Y_j e^{i 2 \pi \frac{j k}{N}} \frac{1}{N\Delta t}
* \f]
*
* Where \f$X_k=s(t=k\Delta t)\f$ is the time series
* with \f$N\f$ samples at \f$\Delta t\f$ sampling interval.
* \f$Y_k=\tilde{s}(\omega=k\Delta \omega)\f$ are samples of the Fourier
* integral transform, where
* \f$\Delta\omega=2\pi/T\f$ and \f$T=N\Delta t\f$.
*
*/
// ----- END OF doxygen.txt -----
......@@ -3,7 +3,7 @@
*
* ----------------------------------------------------------------------------
*
* $Id: error.cc 4966 2013-02-01 13:46:50Z lrehor $
* $Id$
* \author Thomas Forbriger
* \date 11/09/2007
*
......@@ -12,7 +12,7 @@
* Copyright (c) 2007 by Thomas Forbriger (BFO Schiltach)
*
* ----
* This program is free software; you can redistribute it and/or modify
* libfourier 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.
......@@ -36,7 +36,7 @@
#define FOURIER_ERROR_CC_VERSION \
"FOURIER_ERROR_CC V1.1"
#define FOURIER_ERROR_CC_CVSID \
"$Id: error.cc 4966 2013-02-01 13:46:50Z lrehor $"
"$Id$"
#include <iostream>
#include <fourier/error.h>
......
......@@ -3,7 +3,7 @@
*
* ----------------------------------------------------------------------------
*
* $Id: error.h 4966 2013-02-01 13:46:50Z lrehor $
* $Id$
* \author Thomas Forbriger
* \date 11/09/2007
*
......@@ -12,7 +12,7 @@
* Copyright (c) 2007 by Thomas Forbriger (BFO Schiltach)
*
* ----
* This program is free software; you can redistribute it and/or modify
* libfourier 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.
......@@ -40,7 +40,7 @@
#define FOURIER_ERROR_H_VERSION \
"FOURIER_ERROR_H V1.0"
#define FOURIER_ERROR_H_CVSID \
"$Id: error.h 4966 2013-02-01 13:46:50Z lrehor $"
"$Id$"
namespace fourier {
......
......@@ -3,7 +3,7 @@
*
* ----------------------------------------------------------------------------
*
* $Id: fcommand.cc 4966 2013-02-01 13:46:50Z lrehor $
* $Id$
* \author Thomas Forbriger
* \date 05/01/2003
*
......@@ -12,7 +12,7 @@
* Copyright (c) 2003 by Thomas Forbriger (IMG Frankfurt)
*
* ----
* This program is free software; you can redistribute it and/or modify
* libfourier 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.
......@@ -36,7 +36,7 @@
#define TF_FCOMMAND_CC_VERSION \
"TF_FCOMMAND_CC V1.0 "
#define TF_FCOMMAND_CC_CVSID \
"$Id: fcommand.cc 4966 2013-02-01 13:46:50Z lrehor $"
"$Id$"
#include <fourier/fcommand.h>
#include <fstream>
......
......@@ -3,7 +3,7 @@
*
* ----------------------------------------------------------------------------
*
* $Id: fcommand.h 4966 2013-02-01 13:46:50Z lrehor $
* $Id$
* \author Thomas Forbriger
* \date 05/01/2003
*
......@@ -12,7 +12,7 @@
* Copyright (c) 2003 by Thomas Forbriger (IMG Frankfurt)
*
* ----
* This program is free software; you can redistribute it and/or modify
* libfourier 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.
......@@ -40,7 +40,7 @@
#define TF_FCOMMAND_H_VERSION \
"TF_FCOMMAND_H V1.0 "
#define TF_FCOMMAND_H_CVSID \
"$Id: fcommand.h 4966 2013-02-01 13:46:50Z lrehor $"
"$Id$"
#include<iostream>
#include<fourier/filters.h>
......
......@@ -3,7 +3,7 @@
*
* ----------------------------------------------------------------------------
*
* $Id: fftwaff.cc 4966 2013-02-01 13:46:50Z lrehor $
* $Id$
* \author Thomas Forbriger
* \date 11/07/2006
*
......@@ -12,7 +12,7 @@
* Copyright (c) 2006 by Thomas Forbriger (BFO Schiltach)
*
* ----
* This program is free software; you can redistribute it and/or modify
* libfourier 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.
......@@ -43,7 +43,7 @@
#define TF_FFTWAFF_CC_VERSION \
"TF_FFTWAFF_CC V1.4"
#define TF_FFTWAFF_CC_CVSID \
"$Id: fftwaff.cc 4966 2013-02-01 13:46:50Z lrehor $"
"$Id$"
#include <iostream>
#include <fourier/fftwaff.h>
......
......@@ -3,7 +3,7 @@
*
* ----------------------------------------------------------------------------
*
* $Id: fftwaff.h 4966 2013-02-01 13:46:50Z lrehor $
* $Id$
* \author Thomas Forbriger
* \date 11/07/2006
*
......@@ -12,7 +12,7 @@
* link with -lrfftw -lfftw -lm -laff
*
* ----
* This program is free software; you can redistribute it and/or modify
* libfourier 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.
......@@ -76,7 +76,7 @@
#define TF_FFTWAFF_H_VERSION \
"TF_FFTWAFF_H V1.3"
#define TF_FFTWAFF_H_CVSID \
"$Id: fftwaff.h 4966 2013-02-01 13:46:50Z lrehor $"
"$Id$"
#include<complex>
#ifdef FFTWFALLBACK
......
......@@ -3,7 +3,7 @@
*
* ----------------------------------------------------------------------------
*
* $Id: fftwaffar.cc 3975 2011-05-28 14:58:37Z tforb $
* $Id$
* \author Thomas Forbriger
* \date 13/05/2011
*
......@@ -12,7 +12,7 @@
* Copyright (c) 2011 by Thomas Forbriger (BFO Schiltach)
*
* ----
* This program is free software; you can redistribute it and/or modify
* libfourier 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.
......@@ -38,7 +38,7 @@
#define TF_FFTWAFFAR_CC_VERSION \
"TF_FFTWAFFAR_CC V1.1"
#define TF_FFTWAFFAR_CC_CVSID \
"$Id: fftwaffar.cc 3975 2011-05-28 14:58:37Z tforb $"
"$Id$"
#include <iostream>
#include <fourier/fftwaffar.h>
......
......@@ -3,7 +3,7 @@
*
* ----------------------------------------------------------------------------
*
* $Id: fftwaffar.h 4966 2013-02-01 13:46:50Z lrehor $
* $Id$
* \author Thomas Forbriger
* \date 13/05/2011
*
......@@ -12,7 +12,7 @@
* Copyright (c) 2011 by Thomas Forbriger (BFO Schiltach)
*
* ----
* This program is free software; you can redistribute it and/or modify
* libfourier 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.
......@@ -45,7 +45,7 @@
#define TF_FFTWAFFAR_H_VERSION \
"TF_FFTWAFFAR_H V1.2"
#define TF_FFTWAFFAR_H_CVSID \
"$Id: fftwaffar.h 4966 2013-02-01 13:46:50Z lrehor $"
"$Id$"
#include<complex>
#include<fftw3.h>
......
......@@ -3,7 +3,7 @@
*
* ----------------------------------------------------------------------------
*
* $Id: filters.cc 4966 2013-02-01 13:46:50Z lrehor $
* $Id$
* \author Thomas Forbriger
* \date 05/01/2003
*
......@@ -12,7 +12,7 @@
* Copyright (c) 2003 by Thomas Forbriger (IMG Frankfurt)
*
* ----
* This program is free software; you can redistribute it and/or modify
* libfourier 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.
......@@ -36,7 +36,7 @@
#define TF_FILTER_CC_VERSION \
"TF_FILTER_CC V1.0 "
#define TF_FILTER_CC_CVSID \
"$Id: filters.cc 4966 2013-02-01 13:46:50Z lrehor $"
"$Id$"