Commit 4b30e1bf authored by thomas.forbriger's avatar thomas.forbriger

[TASK] (vendor_Seitosh): Seitosh vendor drop from 1.2.2013

Replay vendor drop as took place in the original subversion repository of
DENISE. Source code from the subversion repository of TFSoftware was copied to
vendor branches aff, cseife, fourier, and stfinv.

aff:     subversion revision 372
cseife:  subversion revision 369
fourier: subversion revision 375
stfinv:  subversion revision 378

Source code is copied from tag directories 20130201

Notice: The contents of this commit are not in sync with the corresponding
export tags as present in the Seitosh repository. This must be due to
unintentional modification of files when copying contents as tagged for export
in TFSoftware to the vendor branch in the subversion repository of (formerly
called FWI_elastic/DENISE).
parents
this is <COPYING>
============================================================================
libaff
------
$Id: COPYING 4964 2013-02-01 13:27:42Z lrehor $
============================================================================
Copyright (C) 2002 by Thomas Forbriger and Wolfgang Friederich
Copyright (C) 2013 by Thomas Forbriger
The source code and other files in this directory are part of libaff. libaff
is a template library. Part of the code compiles to libaff.a
libaff 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
----- END OF COPYING -----
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
this is <README>
============================================================================
aff
---
$Id$
============================================================================
This directory contains source code for the library aff. It was exportet
from TF_Software to DENISE. DENISE is hosted in the Trac-/svn-project
FWI_elastic (http://gpitrsvn.gpi.uni-karlsruhe.de/repos/FWI_elastic/DENISE).
The copyright of the source code is held by:
Copyright (c) 2002 by Thomas Forbriger (IMG Frankfurt)
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/aff.
19/10/2011 First export of the version tagged in 20111019
01/02/2013 Export of version tagged in 20130201
----- END OF README -----
/*! \file libaff/README.groups
* \brief groups in libaff
*
* ----------------------------------------------------------------------------
*
* $Id: README.groups 4964 2013-02-01 13:27:42Z lrehor $
*
* Copyright (c) 2011 by Thomas Forbriger (BFO)
*
* ----
* 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 St, Fifth Floor, Boston, MA 02110-1301 USA
* ----
*
* groups in code for C++ containers for numbers (libaff)
*
* REVISIONS and CHANGES
* - 15/05/2011 V1.0 Thomas Forbriger
*
\todo
Define more groups to cover the complete code
* ============================================================================
*/
/*======================================================================*/
/*! \brief Basic array module
\defgroup group_array Basic array module
By including aff/array.h you will get access to the following modules:
-# aff::Array is the main array interface (see example tests/arraytest.cc).
-# aff::Strided is the shape of a strided Fortran array and defines the
memory layout of aff::Array objects (see example
tests/shapetest.cc).
-# aff::SharedHeap is the representation used by aff::Array. It holds the
data in memory and provides an interface to it. This interface
may be passed separately from the array object (see also
\ref page_representation and example tests/reprtest.cc).
-# aff::SimpleRigidArray is a linear array with size fixed at compile-time.
There are several inline functions defined for operations with
this array class (see example tests/simplearraytest.cc).
-# aff::Exception is the exception base class used in the library.
-# aff::AllocException is the exception that indicated a failed memory
allocation(see also \ref group_error).
It additionally offers the following type definitions:
-# aff::Tsubscript is the type of subscripts to arrays (positive and
negative).
-# aff::Tsize is the type of size values (non-negative).
-# aff::Tdim is the type of the dimension index (small, non-negative).
Helpers are available in \ref group_array_extensions.
\todo
Place ingroup definitions in source code
\todo
Provide additional groups for Series and SimpleRigidArray
*/
/*----------------------------------------------------------------------*/
/*! \brief Extensions for array module
\defgroup group_array_extensions Extensions for array module
The library provides some additional modules. You need only include the
header file of those modules that you really want to use in addition to the
basic aff::Array functionality.
These additional modules are:
-# aff::Shaper presented in aff/shaper.h and used to pass Fortran layouts
to array constructors (see example tests/shapetest.cc).
-# aff::Series presented in aff/series.h which is used to interface linear
sequences of data (like time series or Fourier coefficients).
-# aff::Iterator presented in aff/iterator.h which is an iterator interface
to containers like aff::Array or aff::Series (see example
tests/helpertest.cc).
-# aff::subarray presented in aff/subarray.h to conveniently create
subarrays from aff::Array objects (see example
tests/helpertest.cc).
-# aff::slice presented in aff/slice.h to conveniently create
slices from aff::Array objects (see example
tests/helpertest.cc).
-# aff::FortranArray and its associate aff::util::FortranShape are presented
in aff/fortranshape.h. They calculate a Fortran 77 array
layout (leading dimensions) from a given AFF array (see
example tests/f77test.cc).
-# aff::dump and its associates, presented in aff/dump.h. They are used to
dump shape or contents of containers and are thus useful when
debugging your code. See also \ref group_helpers.
\sa \ref sec_design_namespaces
\sa \ref sec_naming_files
\todo
Place ingroup definitions in source code
*/
/*----------------------------------------------------------------------*/
/*! \brief Series container
\defgroup group_series Series container
\sa \ref group_series_extensions
\todo
Place ingroup definitions in source code
*/
/*----------------------------------------------------------------------*/
/*! \brief Extensions for series module
\defgroup group_series_extensions Extensions for series module
\todo
Place ingroup definitions in source code
*/
/*======================================================================*/
// ----- END OF README.groups -----
#
# SIK Auswahl fuer FF library
#
*.c *.h *.f ?akefile *.inc *.cc *.tcc
#
# when working with m4
*.m4 *.fpp
#
README*
#
# there are CVS working directories
CVS
#
# doxygen configuration
*.cfg
This diff is collapsed.
/*! \file arrayoperators.h
* \brief provide operators for array classes (prototypes)
*
* ----------------------------------------------------------------------------
*
* $Id: arrayoperators.h 3957 2011-05-16 14:46:43Z tforb $
* \author Thomas Forbriger
* \date 10/02/2004
*
* provide operators for array classes (prototypes)
*
* ----
* 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 St, Fifth Floor, Boston, MA 02110-1301 USA
* ----
*
* Copyright (c) 2004 by Thomas Forbriger (BFO Schiltach)
*
* REVISIONS and CHANGES
* - 10/02/2004 V1.0 Thomas Forbriger
*
* ============================================================================
*/
// include guard
#ifndef AFF_ARRAYOPERATORS_H_VERSION
#define AFF_ARRAYOPERATORS_H_VERSION \
"AFF_ARRAYOPERATORS_H V1.0 "
#define AFF_ARRAYOPERATORS_H_CVSID \
"$Id: arrayoperators.h 3957 2011-05-16 14:46:43Z tforb $"
#include<aff/array.h>
/*! \brief
* Array operators are defined through the macro mechanism in operators.h
* and \ref group_operators
* \ingroup group_array
*/
//@{
#define AFF_OPERATORS_CLASS aff::Array
#define AFF_OPERATORS_CONSTCLASS aff::ConstArray
#include <aff/lib/operators.h>
#undef AFF_OPERATORS_CLASS
#undef AFF_OPERATORS_CONSTCLASS
//@}
#endif // AFF_ARRAYOPERATORS_H_VERSION (includeguard)
/* ----- END OF arrayoperators.h ----- */
/*! \file converters.h
* \brief converters for AFF containers
*
* ----------------------------------------------------------------------------
*
* $Id: converters.h 3957 2011-05-16 14:46:43Z tforb $
* \author Thomas Forbriger
* \date 15/05/2011
*
* converters for AFF containers
*
* Copyright (c) 2011 by Thomas Forbriger (BFO Schiltach)
*
* ----
* 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 St, Fifth Floor, Boston, MA 02110-1301 USA
* ----
*
*
* REVISIONS and CHANGES
* - 15/05/2011 V1.0 Thomas Forbriger
*
* ============================================================================
*/
// include guard
#ifndef AFF_CONVERTERS_H_VERSION
#define AFF_CONVERTERS_H_VERSION \
"AFF_CONVERTERS_H V1.0 "
#define AFF_CONVERTERS_H_CVSID \
"$Id: converters.h 3957 2011-05-16 14:46:43Z tforb $"
#include<aff/array.h>
#include<aff/series.h>
#include<aff/lib/error.h>
namespace aff {
/*! \brief create a series container from an array container.
*
* \ingroup group_series_extensions group_array_extensions
*/
template<class T>
aff::Series<T> series_from_array(const aff::Array<T>& array)
{
typedef aff::Series<T> Tseries;
typedef aff::Array<T> Tarray;
typename Tarray::Tshape shape(array.shape());
AFF_assert(aff::util::is_dense_1D_array(shape),
"ERROR: array is not suitable to be converted to series");
typename Tseries::Trepresentation representation=array.representation();
typename Tseries::Tshape seriesshape(shape.first(0),
shape.last(0),
shape.first_offset());
Tseries retval(seriesshape, representation);
return retval;
} // aff::Series<T> series_from_array(const aff::Array<T>& array)
/*----------------------------------------------------------------------*/
/*! \brief create a series container from an array container.
*
* \ingroup group_series_extensions group_array_extensions
*/
template<class T>
aff::ConstSeries<T> series_from_array(const aff::ConstArray<T>& array)
{
typedef aff::ConstSeries<T> Tseries;
typedef aff::ConstArray<T> Tarray;
typename Tarray::Tshape shape(array.shape());
AFF_assert(aff::util::is_dense_1D_array(shape),
"ERROR: array is not suitable to be converted to series");
typename Tseries::Trepresentation representation=array.representation();
typename Tseries::Tshape seriesshape(shape.first(0),
shape.last(0),
shape.first_offset());
Tseries retval(seriesshape, representation);
return retval;
} // aff::ConstSeries<T> series_from_array(const aff::ConstArray<T>& array)
/*----------------------------------------------------------------------*/
/*! \brief create an array container from a series container.
*
* \ingroup group_series_extensions group_array_extensions
* \todo
* implement aff::Array<T> array_from_series(const aff::Series<T>& array)
*/
template<class T>
aff::Array<T> array_from_series(const aff::Series<T>& array)
{
AFF_abort("not yet implemented");
} // aff::Series<T> series_from_array(const aff::Array<T>& array)
/*----------------------------------------------------------------------*/
/*! \brief create an array container from a series container.
*
* \ingroup group_series_extensions group_array_extensions
* \todo
* implement aff::ConstArray<T> array_from_series(const aff::ConstSeries<T>& array)
*/
template<class T>
aff::ConstArray<T> array_from_series(const aff::ConstSeries<T>& array)
{
AFF_abort("not yet implemented");
} // aff::Series<T> series_from_array(const aff::Array<T>& array)
/*----------------------------------------------------------------------*/
/*! \brief create a series class from raw memory.
*
* \ingroup group_series_extensions
*
* \param pointer pointer to first element in raw memory
* \param size number of elements allocated in raw memory
* \return series container accessing raw memory
*/
template<class T>
aff::Series<T> series_from_raw_memory(T* pointer,
const unsigned int size)
{
typedef aff::Series<T> Tseries;
typename Tseries::Tshape shape(0, size-1, 0);
typename Tseries::Trepresentation representation(pointer, size);
Tseries retval(shape, representation);
return(retval);
} // aff::Series<T> series_from_raw_memory
/*----------------------------------------------------------------------*/
/*! \brief access Series contents through raw memory
*
* \ingroup group_series_extensions
*/
template<class T>
class CSeries {
public:
/*! \name Various types
*
* In particular due to our concept of const-correctness we need
* several typedefs to declare types derived from the element type of
* the array.
*
* \sa \ref sec_design_interface_typedef
* \sa \ref sec_design_const
*/
//@{
//! Type of array to be interfaced
typedef aff::Series<T> Tseries;
//! Type of representation
typedef typename Tseries::Trepresentation Trepresentation;
//! Type of shape
typedef typename Tseries::Tshape Tshape;
//! Element type
typedef typename Tseries::Tvalue Tvalue;
//! Type of pointer to element
typedef typename Tseries::Tpointer Tpointer;
//! Type of reference to element
typedef typename Tseries::Treference Treference;
//! const element type
typedef typename Tseries::Tconst_value Tconst_value;
//! Type of pointer to const element
typedef typename Tseries::Tconst_pointer Tconst_pointer;
//! Type of reference to const element
typedef typename Tseries::Tconst_reference Tconst_reference;
//! Type of this array
typedef CSeries<T> Tcontainer;
//@}
/*-----------------------------------------------------------------*/
/*! \name Constructors
*
* No copy constructors or copy operators are provided since this is
* provided as an interface class only.
*/
//@{
//! construct from shape and representation
CSeries(const Tseries& series)
: Mrepresentation(series.representation())
{
Tshape shape=series.shape();
Moffset=shape.offset(shape.first());
Msize=shape.size();
}
//@}
/*------------------------------------------------------------------*/
/*! \name Shape access
*/
//@{
//! size of dimension \par i
const Tsize& size() const
{ return (Msize); }
//@}
/*-----------------------------------------------------------------*/
/*! \name Memory access
*
*/
//@{
//! return pointer to first element in Fortran layout
Tpointer pointer() const
{ return(&Mrepresentation[Moffset]); }
/*! \brief return type-casted pointer to first element in Fortran
* layout
*
* The cast checks for const-correctness and type-size. But you have
* to ensure that there is a meaningful relation between both types
* involved.
*
* \sa aff::util::SizeCheckedCast
*/
template<class TT>
TT* castedpointer() const
{ return(SizeCheckedCast<Tvalue,TT>::cast(this->pointer())); }
//@}
private:
//! representation member
Trepresentation Mrepresentation;
//! sizes of series
aff::Tsize Msize;
//! offset of memory location of first element
aff::Tsize Moffset;
}; // class CSeries
} // namespace aff
#endif // AFF_CONVERTERS_H_VERSION (includeguard)
/* ----- END OF converters.h ----- */
# Doxyfile 1.6.3
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "AFF --- A container for numbers (array) by Friederich and Forbriger."
PROJECT_NUMBER =
OUTPUT_DIRECTORY = <OUTPUTDIRECTORY>
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF =
ALWAYS_DETAILED_SEC = YES
INLINE_INHERITED_MEMB = YES
FULL_PATH_NAMES = YES
STRIP_FROM_PATH = <STRIPFROMPATH>
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = YES
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = YES
TAB_SIZE = 8
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
EXTENSION_MAPPING =
BUILTIN_STL_SUPPORT = YES
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
IDL_PROPERTY_SUPPORT = YES
DISTRIBUTE_GROUP_DOC = YES
SUBGROUPING = YES
TYPEDEF_HIDES_STRUCT = NO
SYMBOL_CACHE_SIZE = 0
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = YES
EXTRACT_ANON_NSPACES = YES
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = YES
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
FORCE_LOCAL_INCLUDES = NO
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_MEMBERS_CTORS_1ST = NO
SORT_GROUP_NAMES = YES
SORT_BY_SCOPE_NAME = YES
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS = internal
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_DIRECTORIES = NO
SHOW_FILES = YES
SHOW_NAMESPACES = YES
FILE_VERSION_FILTER =
LAYOUT_FILE =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = ./
INPUT_ENCODING = UTF-8
FILE_PATTERNS = README \
README.changelog \
README.groups \
*.h \
*.cc
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS =
EXAMPLE_PATH = tests
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = YES
INLINE_SOURCES = YES
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_FOOTER_DESCRIPTION= NO
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_TIMESTAMP = YES
HTML_ALIGN_MEMBERS = YES
HTML_DYNAMIC_SECTIONS = NO
GENERATE_DOCSET = NO
DOCSET_FEEDNAME = "Doxygen generated docs"
DOCSET_BUNDLE_ID = org.doxygen.Project
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
CHM_INDEX_ENCODING =
BINARY_TOC = NO
TOC_EXPAND = NO
GENERATE_QHP = NO
QCH_FILE =
QHP_NAMESPACE = org.doxygen.Project
QHP_VIRTUAL_FOLDER = doc
QHP_CUST_FILTER_NAME =
QHP_CUST_FILTER_ATTRS =
QHP_SECT_FILTER_ATTRS =
QHG_LOCATION =
GENERATE_ECLIPSEHELP = NO
ECLIPSE_DOC_ID = org.doxygen.Project
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = ALL
USE_INLINE_TREES = NO
TREEVIEW_WIDTH = 250
FORMULA_FONTSIZE = 10
SEARCHENGINE = NO
SERVER_BASED_SEARCH = NO