/*! \file README.changelog * \brief ChangeLog for C++ containers for numbers (libaff) * * ---------------------------------------------------------------------------- * * $Id: README.changelog,v 1.64 2007-12-11 08:36:55 tforb Exp $ * * Copyright (c) 2002 by Thomas Forbriger (IMG Frankfurt) * * C++ containers for numbers (libaff) * * This file contains: * - \ref page_changelog * - \ref page_project_status * * REVISIONS and CHANGES * - 17/12/2002 V1.0 Thomas Forbriger * * ============================================================================ */ /*! \page page_changelog ChangeLog (AFF) $Id: README.changelog,v 1.64 2007-12-11 08:36:55 tforb Exp $ \sa \ref page_project_status Major changes in the interface of the library are marked by \b !!. - \b 11/12/2007 (thof) - the library compiles well on a 64bit system (Fenoglio) - test programs (including g77 and f2c version of f77test) compile well and provide the same results as previously on 32bit systems - \b 13/06/2007 (thof) - added aff::func::sum() and aff::func::sqrsum() - \b 20/06/2006 (thof) - aff::Series objects may now be initialized with size zero defined by aff::LinearShape - \b 19/06/2006 (thof) - \b !! aff::ConstArray as well as aff::ConstSeries now offer the typedefs Tvalue, Tpointer, and Treference as non-const types - \b 28/04/2006 (thof) - classes with virtual functions (here exception classes) require the explicit definition of a virtual destructor - \b 27/04/2006 (thof) - Constructor of aff::LinearShape (shape class for aff::Series) was asserting last index > first index, which is to strict. One-element arrays will have last=first, which is perfectly reasonable. Assertion is now: last >= first - \b 05/07/2005 (thof) - track down design decision for const container data modification (04/07/2005) to operators - provide index shifting in LinearShape - \b 04/07/2005 (thof) - \b !! removed lib/range.h, since the was no kind of array container. Range classes already exist elsewhere (libtfxx, libpgplotxx). - \b !! data modification is allowed through instances being declared const (\ref sec_design_const_approach). - aff::Series provides pointer access to underlying C-style array. - \b 28/04/2005 (thof) - added code for aff::func::histo() - introduced Tretval to all collector help classes and to collect function itself - \b 21/04/2005 (thof) - aff::func::avg() and underlying code works. - added code for functions aff::func::rms(), aff::func::min(), aff::func::max() - \b 20/03/2005 (thof) - Added function templates to scan and map values in containers. They are collected in subdirectory functions and use collector.h and mapper.h - \b 10/02/2004 (thof) - removed lib/iteratable.h - explained this decision: \ref sec_design_interface_nobaseclass - started with operators: arrayoperators.h, seriesoperators.h, and lib/operators.h - introduced tests/operatortest.h - basic operators work for aff::Array and aff::Series - added operators combining containers - \b 07/02/2004 (thof) - index limit set operations available through aff::Series - \b 13/01/2004 (thof) - added shrink function to aff::LinearShape so that aff::subarray is applicable to aff::Series - corrected constructor from shape and representation in aff::Series to initialize base class first - \b 11/01/2004 (thof) - added index range modifiers to aff::LinearShape - \b 23/12/2003 (thof) - defined Browser - made Browser run with Series class (involves updates to SeriesStepper) - created lib/linearshape.h to allow correct include order within series.h - \b 19/12/2003 (thof) - TConstSharedHeap now allocates one element in the default constructor. - \b !! cleaned all constructors of aff::ConstSeries and aff::Series - \b !! parameters of constructor of aff::LinearShape have a new meaning - index check now should work (aff::SharedHeap) - \b 27/06/2003 (thof) - introduced aff::Iteratable - documentation now works for doxygen-1.3.2 - \b 09/01/2003 (thof) - aff::Shaper, aff::util::Subarray, and aff::util::Slice now throw exceptions in case the user tries to specify too many dimensions by bracket operators. - \b 04/01/2003 (thof) - aff::deepcopy now converts to Tcontainer. And aff::util::Subarray and aff::util::Slice therefore provide a Tcontainer typedef. See also \ref sec_design_interface_tcontainer. - \b 03/01/2003 (thof) - introduced lib/checkedcast.h and aff::util::SizeCheckedCast - \b !! aff::FortranArray now takes container type as template argument - copyout function now returns an aff::Array rather than an aff::ConstArray - aff::Array inherits copyout from aff::ConstArray - copyout now tested by tests/arraytest.cc - \b !! aff::deepcopy is now placed in namespace aff, because it may prove useful to external user together with slices and subarrays - \b 31/12/2002 (thof) - NULL is deprecated as pointed out by Wolfgang (replaced by literal 0 in lib/error.cc and lib/sharedheap_def.h) - Removed non-initializing constructors in aff::ConstArray and aff::ConstSeries (except default constructor, which is needed, when object is a container's element) as suggested by Wolfgang. - removed constructor from Theadstruct in aff::ConstSharedHeap - made the non-initializing constructor aff::ConstSharedHeap protected. Default constructor remains public (it is needed if we construct a container for ConstSharedHeap elements). - \b 29/12/2002 (thof) - aff::ConstArray and aff::ConstSeries now inherit from aff::ConstSharedHeap. See \ref sec_design_replicated. - added section about sparse interface (\ref sec_design_interface_sparse) - added section about accessing internals (\ref sec_design_interface_internals) - \b !! reworked class aff::util::Subarray and introduced aff::subarray - \b !! reworked class aff::util::Slice and introduced aff::slice - use "using" syntax for access declarations - overloaded, protected versions of write-access operators lead to conflicts in derived classes. Resolved that conflicts and made shared heap objects data members in container classes. - aff::Strided now provides Fortran style constructor - reworked array classes to use shared heap member data and correct set of access operators - looks much more natural now - explain concept of member data representation (\ref sec_design_hierarchy) - reworked series classes in the same way as array classes - introduced lib/deepcopy.h - factored out common code in copyin functions to aff::util::deepcopy - now and aff::Array should be able to copy in the values of an aff::Series - \b 28/12/2002 (thof) - \b !! Wolfgang pointed out a fundamental design error: Classes aff::Array, aff::Series and aff::SharedHeap used a specialization of themselves as base class to implement a version for const element type (see \ref sec_design_const). Since specialization may only be declared after the general template itself, the base class definition is not available at the point it is used in the declaration of the general class template. We made the base class a completely independent class template. Base classes aff::ConstArray, aff::ConstSeries, and aff::ConstSharedHeap are introduced. - reworked documentation in -# lib/README -# lib/sharedheap.h -# array_dec.h - \b 27/12/2002 (thof) - completed Fortran interface documentation (\ref page_fortran) - \b 23/12/2002 (thof) - coded class aff::Subarray - coded class aff::Slice - introduced tests/helpertest.cc to test aff::Iterator, aff::Subarray and aff::Slice and tested helper classes - reorganized aff::Iterator code. Inheritance from Stepper does not work. - aff::Array::copyin() and aff::Array::copyout() work - introduced fortranshape.h and fortranshape.cc and herein aff::FortranArray and aff::util::FortranShape - Test of Fortran 77 interface works - \b 22/12/2002 (thof) - started test for interface to Fortran 77 code - \b 20/12/2002 (thof) - introduced aff/lib/seriesstepper.h and aff/lib/seriesstepper.cc which define aff::util::SeriesStepper - Access declarations are nor useable with functions that return a reference to *this. They must be reimplemented. - introduced class aff::LinearShape - provide appropriate Tstepper typedef in shape classes (requires forward declarations of stepper classes, because we do not like to include the full stepper header if we don't use it). - introduced aff::Iterator class template - reworked lib/README - moved SHeap to namespace util - reviewed README entirely - Remove unresolvable doxygen links in documentation parts of the code. Notice: There remain doxygen warning. Doxygen cannot deal with access declarations and has problems with member typedefs. - \b 19/12/2002 (thof) - \b !! aff::Array provides access to base classes through access functions and not through conversion operators. - Factored out header files for dump functions for different classes. This is necessary to use the SimpleRigidArray dump function within the Array class definition. - introduced function aff::util::StridedStepper::valid() - aff::Array is now tested and works in its basic functionality (no subarrays, no slices, no deep copy, etc.) - \b 18/12/2002 (thof) - defined dump function for Strided - started with tests/shapetest.cc - reworked stridedstepper to fit into new concept - essential correction in aff::Strided::collapse() - aff::Strided, aff::Shaper, and aff::util::StridedStepper passed basic tests - additionally aff::SharedHeap and aff::SimpleRigidArray passed their basic tests - activated scalar assignment with aff::Array::operator=() - \b 17/12/2002 (thof) - introduced class Series - \b !! Array now inherits privately from Strided - use access declarations to declare base class functions that should be visible in the public interface of aff::Array and aff::SharedHeap - introduced tests/seriestest.cc - introduced dump function for class Series */ /*======================================================================*/ /*! \page page_project_status Project status (AFF) $Id: README.changelog,v 1.64 2007-12-11 08:36:55 tforb Exp $ \sa \ref page_changelog
Filename | code is complete | documentation is complete | code is tested | revision is required |
libaff/README | has no code | has no code | Explain Wolle's concept of multidimensional arrays. The HOWTO page needs a revision and many more examples. | |
libaff/array.h | 8/12/02 | 20/12/02 | 19/12/02 | |
libaff/array_dec.h | 19/12/2002 | 28/12/2002 | 19/12/2002 | |
libaff/array_def.h | 19/12/2002 | 20/12/2002 | 19/12/2002 | |
libaff/arrayoperators.h | 10/02/2004 | 10/02/2004 | ||
libaff/binarray.h | 8/12/02 | 20/12/2002 | ||
libaff/dump.cc | 18/12/2002 | 20/12/2002 | 18/12/2002 | |
libaff/dump.h | 19/12/2002 | 20/12/2002 | ||
libaff/fortranshape.cc | 23/12/02 | 23/12/02 | There appear problems when using this without shifting the index range (BaseOne=false) and arrays that have negative index values. | |
libaff/fortranshape.h | 23/12/02 | 23/12/02 | ||
libaff/iterator.h | 20/12/2002 | 23/12/02 | ||
libaff/series.h | 19/12/2003 | |||
libaff/seriesoperators.h | 10/02/2004 | 10/02/2004 | ||
libaff/shaper.h | 12/12/02 | 18/12/02 | ||
libaff/slice.h | 23/12/02 | 23/12/02 | ||
libaff/subarray.h | 23/12/02 | 23/12/02 | ||
subdirectory "lib" | ||||
libaff/lib/README | has no code | 20/12/02 | has no code | |
libaff/lib/checkedcast.h | 03/01/2003 | 03/01/2003 | 03/01/2003 | |
libaff/lib/collector.h | 21/04/2005 | 21/04/2005 | 21/04/2005 | |
libaff/lib/deepcopy.h | 29/12/02 | 29/12/2002 | 29/12/02 | |
libaff/lib/error.cc | 16/12/02 | 20/12/2002 | 18/12/02 | |
libaff/lib/error.h | 16/12/02 | 20/12/2002 | 18/12/02 | |
libaff/lib/iteratable.h | removed 10/02/2004 | |||
libaff/lib/linearshape.h | 23/12/2003 | 27/04/2006 | 23/12/2003 | |
libaff/lib/operators.h | 10/02/2004 | 10/02/2004 | ||
libaff/lib/rawarfun.h | 13/12/02 | 15/12/02 | ||
libaff/lib/sharedheap.h | 13/12/02 | 13/12/02 | 16/12/02 | |
libaff/lib/sharedheap_def.h | 13/12/02 | 13/12/02 | 16/12/02 | |
libaff/lib/simplearray.h | 13/12/02 | 15/12/02 | ||
libaff/lib/strided.cc | 13/12/02 | 23/12/02 | 18/12/02 | |
libaff/lib/strided.h | 13/12/02 | 18/12/02 | ||
libaff/lib/seriesstepper.cc | 20/12/02 | 20/12/02 | ||
libaff/lib/seriesstepper.h | 20/12/02 | 20/12/02 | ||
libaff/lib/stridedstepper.cc | 18/12/02 | 23/12/02 | 18/12/02 | |
libaff/lib/stridedstepper.h | 18/12/02 | 18/12/02 | ||
libaff/lib/types.h | 13/12/02 | 23/12/02 | 15/12/02 | |
libaff/lib/dump_macros.h | 19/12/02 | 19/12/02 | 19/12/02 | |
libaff/lib/dump_sharedheap.h | 19/12/02 | 19/12/02 | ||
libaff/lib/dump_series.h | 19/12/02 | 19/12/02 | ||
libaff/lib/dump_array.h | 19/12/02 | 19/12/02 | ||
libaff/lib/dump_strided.h | 19/12/02 | 19/12/02 | ||
libaff/lib/dump_simplerigidarray.h | 19/12/02 | 19/12/02 | ||
libaff/lib/mapper.h | ||||
subdirectory "functions" | ||||
libaff/functions/avg.h | 21/04/2005 | 21/04/2005 | 21/04/2005 | |
libaff/functions/histo.h | 28/04/2005 | 28/04/2005 | 28/04/2005 | |
libaff/functions/max.h | 21/04/2005 | 21/04/2005 | 21/04/2005 | |
libaff/functions/min.h | 21/04/2005 | 21/04/2005 | 21/04/2005 | |
libaff/functions/rms.h | 21/04/2005 | 21/04/2005 | 28/04/2005 | |
libaff/functions/sqrsum.h | 13/06/2007 | 13/06/2007 | 13/06/2007 | |
libaff/functions/sum.h | 13/06/2007 | 13/06/2007 | 13/06/2007 | |
libaff/functions/valmap.h | 28/04/2005 | 28/04/2005 | 28/04/2005 | |
tests and examples | ||||
libaff/tests/arraytest.cc | 19/12/2002 | 19/12/2002 | ||
libaff/tests/binarraytest.cc | ||||
libaff/tests/functionstest.cc | 21/04/2005 | 21/04/2005 | 21/04/2005 | complete as soon as other functions are provided |
libaff/tests/helpertest.cc | 23/12/02 | 23/12/02 | ||
libaff/tests/reprtest.cc | 16/12/02 | 16/12/02 | does not check pathological cases | |
libaff/tests/seriestest.cc | ||||
libaff/tests/shapetest.cc | 18/12/02 | 18/12/02 | does not check pathological cases | |
libaff/tests/simplearraytest.cc | 15/12/02 | 15/12/02 | does not check pathological cases | |
libaff/tests/f77common.inc | 23/12/02 | 27/12/02 | 23/12/02 | |
libaff/tests/f77interface.cc | 23/12/02 | 27/12/02 | 23/12/02 | |
libaff/tests/f77procs.f | 23/12/02 | 27/12/02 | 23/12/02 | |
libaff/tests/f77proto.h | 23/12/02 | 27/12/02 | 23/12/02 | |
libaff/tests/f77test.cc | 23/12/02 | 27/12/02 | 23/12/02 |