Commit 91f02e43 authored by thomas.forbriger's avatar thomas.forbriger Committed by thomas.forbriger
Browse files

intermediate commit

This is a legacy commit from before 2015-03-01.
It may be incomplete as well as inconsistent.
See COPYING.legacy and README.history for details.


SVN Path:     http://gpitrsvn.gpi.uni-karlsruhe.de/repos/TFSoftware/trunk
SVN Revision: 1226
SVN UUID:     67feda4a-a26e-11df-9d6e-31afc202ad0c
parent 2acd15c6
......@@ -3,7 +3,7 @@
*
* ----------------------------------------------------------------------------
*
* $Id: README,v 1.7 2002-12-19 18:35:57 forbrig Exp $
* $Id: README,v 1.8 2002-12-20 16:39:40 forbrig Exp $
*
* Copyright (c) 2002 by Thomas Forbriger (IMG Frankfurt)
*
......@@ -30,11 +30,11 @@
/*! \brief Root namespace of library
This namespace contains all modules of the library
(see \ref sec_main_modules).
While aff::Array is the only compound in this namespace, all others are
placed in sub namespaces.
(see \ref sec_main_modules).
Here you should find all components, the user needs to work with this
library.
When working with the binary version of the library, you have to use
aff::prebuilt in place of contxx (see \ref sec_main_binary).
aff::prebuilt in place of aff (see \ref sec_main_binary).
*/
namespace aff {
} // namespace aff
......@@ -48,11 +48,13 @@ namespace aff {
\since December 2002
\date December 2002
\version V1.0
$Id: README,v 1.7 2002-12-19 18:35:57 forbrig Exp $
$Id: README,v 1.8 2002-12-20 16:39:40 forbrig Exp $
Contents of this page:
- \ref sec_main_aims
- \ref sec_main_modules
- \ref sec_main_modules_basic
- \ref sec_main_modules_extended
- \ref sec_main_interface
- \ref sec_main_namespace_aff
- \ref sec_main_headers
......@@ -73,7 +75,7 @@ $Id: README,v 1.7 2002-12-19 18:35:57 forbrig Exp $
It offers a simple and easy to use container for numbers as is necessary in
numerical code. The offered array always has a rectangular strided layout,
reference semantics (through counted references) and a Fortran layout in
memory. The interface is intentionally kept sparse to kept compilation times
memory. The interface is intentionally kept sparse to keep compilation times
small. The array itself is meant to be used to pass numbers from one program
module to the other. If you want to exploit the power of expression
templates, pass the array contents to something like Blitz++.
......@@ -86,21 +88,60 @@ $Id: README,v 1.7 2002-12-19 18:35:57 forbrig Exp $
The main module is the array class aff::Array. It provides basic
functionality through its interface. See the explanation there.
Utility modules are aff::Iterator for sequential access to the entire array
(independent of dimensionality) and aff::Shaper for convenient construction
of arrays of given shape. The aff::Array class is completely independent of
them. You will have include their headers additionally if you want to use
them.
\todo
Other essential modules:
- A projection and slicing module.
- Basic whole-array operator functions for +,-.* etc.
\todo
Tell about the class aff::Range
It is presented in aff/array.h and aff/binarray.h (see also
\ref sec_design_binary).
The object code is places in libaff.a.
\subsection sec_main_modules_basic Basic array modules
By including aff/array.h you will get access to the following modules:
-# aff::Array is the main array interface.
-# aff::Strided is the shape of a strided Fortran array and defines the
memory layout of aff::Array objects.
-# 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).
-# aff::SimpleRigidArray is a linear array with size fixed at compile-time.
There are several inline functions defined for operations with
this array class.
-# aff::Exception is the exception base class used in the library.
-# aff::AllocException is the exception that indicated a failed memory
allocation.
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).
\subsection sec_main_modules_extended Extensions
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 passed Fortran layouts
to array constructors.
-# aff::Series presented in aff/series.h which is used to interface linear
sequences of data (like time series or Fourier spectra).
-# aff::Iterator presented in aff/iterator.h which is an iterator interface
to containers like aff::Array or aff::Series.
-# aff::Range presented in aff/lib/range.h which is usefull where ever you
need to deal with numerical ranges (calculate with them, find
the smallest in a set, etc.).
-# aff::Subarray presented in aff/subarray.h to conveniently create
subarrays from aff::Array objects.
-# aff::Slice presented in aff/slice.h to conveniently create
slices from aff::Array objects.
-# 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.
/*OK*/
/*----------------------------------------------------------------------*/
\section sec_main_interface Interface to the library
......@@ -403,6 +444,7 @@ Tell about usefull header files.
*/
/*OK*/
/*======================================================================*/
/*! \page page_naming Naming conventions
......
......@@ -3,7 +3,7 @@
*
* ----------------------------------------------------------------------------
*
* $Id: README.changelog,v 1.14 2002-12-20 14:12:50 forbrig Exp $
* $Id: README.changelog,v 1.15 2002-12-20 16:39:40 forbrig Exp $
*
* Copyright (c) 2002 by Thomas Forbriger (IMG Frankfurt)
*
......@@ -20,7 +20,7 @@
/*! \page page_changelog ChangeLog (AFF)
$Id: README.changelog,v 1.14 2002-12-20 14:12:50 forbrig Exp $
$Id: README.changelog,v 1.15 2002-12-20 16:39:40 forbrig Exp $
\sa \ref page_project_status
......@@ -38,6 +38,7 @@
full stepper header if we don't use it).
- introduced aff::Iterator class template
- reworked lib/README
- moved SHeap to namespace util
- \b 19/12/2002 (thof)
- \b !! aff::Array provides access to base classes through access
......@@ -73,7 +74,7 @@
/*! \page page_project_status Project status (AFF)
$Id: README.changelog,v 1.14 2002-12-20 14:12:50 forbrig Exp $
$Id: README.changelog,v 1.15 2002-12-20 16:39:40 forbrig Exp $
\sa \ref page_changelog
......
......@@ -3,7 +3,7 @@
*
* ----------------------------------------------------------------------------
*
* $Id: README,v 1.3 2002-12-20 14:12:51 forbrig Exp $
* $Id: README,v 1.4 2002-12-20 16:39:41 forbrig Exp $
*
* Copyright (c) 2002 by Thomas Forbriger (IMG Frankfurt)
*
......@@ -15,6 +15,8 @@
*
* REVISIONS and CHANGES
* - 08/12/2002 V1.0 copied from libcontxx
* - 20/12/2002 V1.1 (thof)
* - complete revision of this file
*
* ============================================================================
*/
......
......@@ -3,7 +3,7 @@
*
* ----------------------------------------------------------------------------
*
* $Id: sharedheap.h,v 1.11 2002-12-17 19:19:57 forbrig Exp $
* $Id: sharedheap.h,v 1.12 2002-12-20 16:39:41 forbrig Exp $
* \author Thomas Forbriger
* \since 08/12/2002
*
......@@ -21,6 +21,8 @@
* - moved AllocException to error.h
* - 17/12/2002 V1.2 (thof)
* - use access declarations (hint by wolle)
* - 20/12/2002 V1.3 (thof)
* - moved SHeap to namespace util
*
* ============================================================================
*/
......@@ -29,9 +31,9 @@
#ifndef AFF_SHAREDHEAP_H_VERSION
#define AFF_SHAREDHEAP_H_VERSION \
"AFF_SHAREDHEAP_H V1.2"
"AFF_SHAREDHEAP_H V1.3"
#define AFF_SHAREDHEAP_H_CVSID \
"$Id: sharedheap.h,v 1.11 2002-12-17 19:19:57 forbrig Exp $"
"$Id: sharedheap.h,v 1.12 2002-12-20 16:39:41 forbrig Exp $"
#include<new>
#include<aff/lib/error.h>
......@@ -45,6 +47,8 @@ namespace prebuilt {
/*----------------------------------------------------------------------*/
namespace util {
/*! \brief A structure to be shared between different SharedHeap instances.
*
* This is the core part of represented shared heap. Only objects of this
......@@ -78,6 +82,8 @@ namespace prebuilt {
bool Mextern; //!< true if memory allocation is handled elsewhere
}; // struct SHeap
} // namespace util
/*======================================================================*/
/*! \brief A template class to share heap memory for different array
......@@ -156,7 +162,7 @@ namespace prebuilt {
private:
//! Type of SHeap struct to be used in any case
typedef SHeap<T> Theapstruct;
typedef aff::util::SHeap<T> Theapstruct;
public:
//! Create from nothing.
......
......@@ -3,7 +3,7 @@
*
* ----------------------------------------------------------------------------
*
* $Id: sharedheap_def.h,v 1.8 2002-12-16 21:03:27 uid1201 Exp $
* $Id: sharedheap_def.h,v 1.9 2002-12-20 16:39:42 forbrig Exp $
* \author Thomas Forbriger
* \since 08/12/2002
*
......@@ -17,6 +17,8 @@
*
* REVISIONS and CHANGES
* - 08/12/2002 V1.0 copied from libcontxx
* - 20/12/2002 V1.1 (thof)
* - moved SHeap to namespace util
*
* ============================================================================
*/
......@@ -29,9 +31,9 @@
#ifndef AFF_SHAREDHEAP_DEF_H_VERSION
#define AFF_SHAREDHEAP_DEF_H_VERSION \
"AFF_SHAREDHEAP_DEF_H V1.0 "
"AFF_SHAREDHEAP_DEF_H V1.1"
#define AFF_SHAREDHEAP_DEF_H_CVSID \
"$Id: sharedheap_def.h,v 1.8 2002-12-16 21:03:27 uid1201 Exp $"
"$Id: sharedheap_def.h,v 1.9 2002-12-20 16:39:42 forbrig Exp $"
namespace aff {
......@@ -47,6 +49,8 @@ namespace prebuilt {
/*----------------------------------------------------------------------*/
namespace util {
//! create counted reference object
template <typename T>
inline
......@@ -80,6 +84,8 @@ namespace prebuilt {
}
}
} // namespace util
/*----------------------------------------------------------------------*/
//! create representation from nothing
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment