Home | Back
2005-10-17  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* blitz/tinyvec.cc: Fixed major screwup in blitz 0.9 release.
Changed beginfast to beginFast!
2005-10-14  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

        Tagging repository contents with Blitz_0_9 tag.
* m4/ac_compiler_specific_header.m4: Added support for PathScale
pathCC compiler.
* doc/download.texi: Added reference to the newer blitz project
page on SourceForge.
* doc/help.texi: Updated the Help page to refer to the newer
SourceForge project page and mailing lists for blitz.
* doc/install.texi: Minor updates to the notes on configuration
and installation of blitz.
* doc/platforms.texi: Updates to platform and compiler notes.  I
tried to add a comment for every platform/compiler combination
that has active or historical support.

2005-10-13  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* doc/faq.texi: Added a few items that have been asked about a lot
over the past year, including configuration under Mac OS X, the
Fortran compiler requirement, and the need to include the
<blitz/tinyvec-et.h> header.
* doc/arrays-globals.texi: Added information on the newer global
Array functions swap() and find().
* blitz/array-impl.h: Slight simplification of swap() function.
* configure.ac: Changed blitz version number from 0.8.1 to 0.9 as
we agreed upon.  We will reserve use of the patch number only when
providing a single critical patch.
* examples/random.cpp: Added a few lines of code to briefly
exercise the new get/set state interface.
* random/mt.h: Added implementation of get/set state for the
MersenneTwister IRNG, as suggested by Patrik Jonsson
(patrik@ucolick.org), with minor corrections and modifications.
* random/default.h: Added interface for getting or setting the
state of the IRNG, as suggested by Patrik Jonsson
(patrik@ucolick.org).

2005-10-13  Patrick Guio <patrick.guio@bccs.uib.no>

* doc/Makefile.am: Changed options to texi2html for compatibility
to both v1.64 and v.176.


2005-10-11  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* examples/.cvsignore: Added matlab output files to cvs ignore
list.
* doc/doxygen/.cvsignore: Added doxygen-warning message file to
ignore list.
* .cvsignore: Added older ChangeLog_ files to ignore list.
* blitz/.cvsignore: Oops!  I put the ChangeLog_ stuff in the wrong
cvsignore file.
* blitz/.cvsignore: Added old ChangeLog_ files and pathscale
compiler directory.
* blitz/memblock.h: Removed the restrict qualifier from a few
places where it was being used inappropriately with pointers as
function parameters.  These were flagged by the IBM xlC compiler.
Basically, you cannot assign a restricted pointer to another
pointer that is in an outer (containing) scope because you may be
creating an alias outside of the current scope.

2005-10-11  Patrick Guio <patrick.guio@bccs.uib.no>

* doc/Makefile.am: Added option to specify the . location for
HTML files generated by texi2html since the newer texi2html v1.76
provided by Fedore Core 4 creates a subdirectory to put these
files by default.
* doc/random.texi: Fixed @math expression that caused trouble
to newer texi2html v1.76 into conditional expression statements
@iftex/@ifinfo/@ifhtml.
* doc/blitz.texi: Moved texinfo's @setcontentsaftertitlepage
command into @iftex block since it caused trouble to newer
texi2html v1.76.


2005-10-10  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* benchmarks/loopstruct.cpp: Added hack for Compaq cxx compiler,
which does not provide support for writing out the long double
type in std ansi mode.
* blitz/timer.h: Added hack for Compaq cxx compiler, which does
not provide support for writing out the long double type in std
ansi mode.
* doc/doxygen/Makefile.am: Added an uninstall-hook target to clean
up doxygen install dir.
* configure.ac: Added Pathscale compilers to default compiler
search lists.  Bumped blitz package version number to 0.8.1.  A
few more minor fixes and doc updates before we actually release
the new version, but we're close now!
* blitz/bzconfig.h: Added section for Pathscale compiler-specific
header.
* m4/ac_fortran_flags_preset.m4: Added support for Pathscale
pathf90 compiler.
* m4/ac_cxx_flags_preset.m4: Added support for Pathscale C++
compiler (pathCC).
* blitz/Makefile.am: Added list of compiler-specific header files
to list of files to be removed by distclean.  One
compiler-specific header file will always be present within the
distribution.
* Makefile.am: Added pkgconfig data files to list of files to be
removed by distclean.

2005-10-07  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* blitz/array/newet-macros.h: Greatly simplified the definitions
of the BZ_DECLARE_FUNCTION macros by utilizing the previously
defined macros BZ_DEFINE_UNARY_FUNC, BZ_DEFINE_BINARY_FUNC, etc.
This follows a suggestion from Peter Kummel
(syntheticpp@gmx.net).
* blitz/funcs.h: Added macros BZ_DEFINE_TERNARY_FUNC and
BZ_DEFINE_TERNARY_FUNC_RET for completeness, although there are no
standard library math functions that require such macros.
Reordered to list complex unary funcs after all ordinary unary
funcs and complex binary funcs after all ordinary binary funcs.
Renamed macro BZ_DEFINE_BINARY_CFUNC2 to
BZ_DEFINE_BINARY_FUNC_CRET in order to (hopefully) clarify that
this is for a binary func that takes ordinary floating-point args
and returns a complex type.
* blitz/array-impl.h: Added a find() function along the lines of
what was suggested by Jonathan Stickel (jjstickel@sbcglobal.net)
as an analogue to the Matlab find().  This function takes a 1d
Array of TinyVector indices and an Array or _bz_ArrayExpr, and it
stores all the index positions where the Array or expression is
true.  Also, I removed the annoying external include guards here
(need to do this universally throughout blitz at some point).
* testsuite/tinyvec.cpp: Added minimal testing of begin()/end()
method and TinyVector iterators.
* m4/ac_cxx_flags_preset.m4: Remove flag that was disabling use of
new type promotion system with icpc compiler.  This problem should
now be fixed.
* blitz/promote.h: Substituted for defaultPromotion in expression
for promoteToT1 in order to eliminate an error from the Intel
compiler on this file.  The icpc compiler thought the expression
was not a compile-time constant value.  This will allow us to once
again use the newer type promotion system with icpc.

2005-10-06  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

* blitz/bzconfig.h: Modify include paths to have the blitz/
prefix.  Use angled brackets instead of quotes around header file
name.  Added error message if compiler unknown.
* lib/Makefile.am: Simplified include file search path flags.
* blitz/array/domain.h: Introduces an empty constructor and a
constructor from a vector of Ranges.  New typedef used to simplify
the code. Constification of many methods.  Added non-const ubound
and lbound methods for RectDomain.  Removed external include
guards.
* blitz/array-impl.h: Allow components to be referred with
unsigned.

2005-10-06  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* blitz/generate/genpromote.cpp: Eliminate gcc-4.0.0 compiler
warning about using an anonymous struct (thanks Theo!).
* blitz/generate/Makefile.am: Repaired clean-local target.  Added
header file dependencies.
* blitz/generate/operands.h: Changed initialization method for
vector types from begin() to beginFast() to avoid conflict with
standard begin() method that is expected to produce an STL
iterator.
* blitz/vecexpr.h: Change begin() to beginFast().
* blitz/vecpick.cc: Change begin() to beginFast().
* blitz/vecpick.h: Change begin() to beginFast().
* blitz/vector.cc: Replaced begin() with beginFast().
* blitz/vector.h: Changed begin() to beginFast().  Need to add an
STL-compliant iterator for Vector.
* blitz/tinyvec.cc: Replace begin() with beginFast().
* blitz/tinyvec.h: Renamed pre-existing begin() method beginFast()
to avoid conflict with standard begin() method that is presumed to
deliver an STL-compliant iterator.  TinyVectorIter and
TinyVectorIterConst are not STL compliant at all and are really
just glorified indices.  Define begin() and end() to return raw
data pointers instead, since these will have the STL iterator
semantics automatically.

2005-10-03  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* README-VS.NET.txt: Updated README file for VS.NET stuff to
mention new Blitz-Examples solution file.
2005-09-29  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

    * blitz/tinyvec.h: Constified many methods. Added a end() method.
    Returning const references insteadof copies for operator() const
    and operator[] const.

    * blitz/tinyvec.cc: Constified many methods accordingly.
    
2005-08-23  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* testsuite/complex-test.cpp: Added some tests of math ops with
complex<long double> type.

* blitz/array/ops.h: Added missing support for math operations
between complex<long double> Array and scalar types.

2005-07-27  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* blitz/memblock.h: Fixed problem with the deleteDataWhenDone
policy.  It was not actually deleting the data as expected.
Solution was to set dataBlockAddress_ pointer to the address of
the preexisting memory in MemoryBlock constructor.  In subclass
UnownedMemoryBlock constructor, we reset this pointer to 0 to
indicate that any preexisting memory is not our responsibility.
* Makefile.am: Use new FORTRAN_ENABLED conditional to only build
in the benchmarks directory if Fortran compilation is enabled.
* configure.ac: Added conditional to indicate whether Fortran
compilation (needed for the benchmark codes) has been enabled.
* blitz/array/map.h: Added return of dummy T_numtype object in
generic version of map method to eliminate possible compiler
warning about no return statement in non-void function.

2005-07-07  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* blitz/memblock.h: Removed the swap() method that was added here.
The Array method reference() uses the existing
MemoryBlockReference method changeBlock() to implement a swap of
the memory block in a safer manner with reference counting.
* blitz/array-impl.h: Modified Theo's implementation of the swap()
function to use the existing reference() method.  This is easier
and does not require the swap() function to be a friend of the
Array class.  The MS VS.NET C++ compiler was confused by the
tricky syntax for templated functions that are friended and using
the friend feature of C++ is a bad idea anyway.  There may be a
tiny bit more overhead with this implementation because it
constructs a null temporary Array, but the temporary allocates no
space for data elements, only for Array metadata and the Array
ordering description.

2005-06-16  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* m4/ac_cxx_template_qualified_base_class.m4: Fixed up the
compiler test for support of template-qualified base classes to
work properly under the new gcc 4.0.0 compiler by adding the full
template specialization syntax and explicitly qualifying the call
to f in the base class as required by the ANSI standard.

2005-06-16  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

    * blitz/memblock.h: Added support for swapping memblocks.
    * blitz/array-impl.h: Added support for swapping arrays using the
    memblock swapping.

2005-06-02  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* blitz/vecmax.cc: Put parentheses around "max" in definitions of
max() function for Vector-like objects, to avoid triggering any
max macro that may be defined.  A workaround for sloppiness in
boost and Windows header files.

* blitz/vecmin.cc: Put parentheses around "min" in definitions of
min() function for Vector-like objects, to avoid triggering any
min macro that may be defined.  A workaround for sloppiness in
boost and Windows header files.

2005-05-24  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* blitz/array/ops.h: Use new BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC
macro to declare the standard binary math operations between an
Array-like object and a TinyVector.  The TinyVector is treated
like a scalar in these operations, interacting with each element
of the Array separately.
* blitz/array/newet-macros.h: Added macro
BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC to generate code for binary
math operations between any Array-like type and a TinyVector.  The
TinyVector is treated as a scalar-like type and the operation is
performed between the TinyVector and each element of the
Array-like object.  The definitions for binary operations between
the TinyVector and the Array element type should be provided
elsewhere in <blitz/vector-et.h>.

* blitz/array/iter.h: Modified postfix operator++ for
ConstArrayIterator and ArrayIterator to return the iterator object
by value rather than by const reference, since you are returning a
local copy of the iterator before it was incremented.  Some
compilers such as the MS VS.NET 2003 C++ compiler would crash if
you tried to use the const reference that was returned previously.
2005-05-18  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* blitz/mathfunc.h: Replaced broken test "#ifdef isnan" with a
test for the preprocessor symbol defined by the new
AC_CXX_ISNAN_IN_NAMESPACE_STD autoconf macro.  If the isnan
function is provided in namespace std, we invoke it as std::isnan
in order to avoid problems with using the C99 isnan macro from
within the blitz namespace.
* blitz/funcs.h: Replaced broken test "#ifdef isnan" with a test
for the preprocessor symbol defined by the new
AC_CXX_ISNAN_IN_NAMESPACE_STD autoconf macro.  If the isnan
function is provided in namespace std, we invoke it as std::isnan
in order to avoid problems with using the C99 isnan macro from
within the blitz namespace.
* blitz/blitz.h: Only include <math.h> header explicitly if the
test for standard math functions in the std namespace failed.
Otherwise, it will normally be included implicitly by the <cmath>
header.
* m4/ac_cxx_math_fn_in_namespace_std.m4: Added an AC_REQUIRE of
AC_CXX_NAMESPACES here, since C++ namespaces are a prerequisite
for this test.

* m4/ac_cxx_standard_library.m4: Added invocation of new macro
AC_CXX_ISNAN_IN_NAMESPACE_STD that checks if the isnan function is
provided in the std namespace when you include the <cmath> header.
If it is, we will use std::isnan when calling this function from
within the blitz namespace to avoid problems with the C99 isnan
macro.
2005-05-13  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* testsuite/promote.cpp: Used cpp directives to skip some code
that will not work under the old type promotion system.

* m4/ac_cxx_flags_preset.m4: Just discovered that the Intel C++
compiler is unhappy with the change from unnamed enums to static
const bool.  It gives an error on one particular initialization in
<blitz/promote.h>.  I have reported this to Intel as a bug in the
compiler, since other compilers seem to accept it.  As a temporary
solution, I am adding -DBZ_DISABLE_NEW_PROMOTE to the preset flags
for icpc.  This will force the usage of the older code in
promote-old.h.  This is just to allow the library and testsuite
codes to compile under icpc again.  I will undo this change as
soon as we determine what's going wrong here.

* blitz/promote.h: Some additional cleanup after migrating from
anonymous enum types to static const types.  Changed promoteToT1
from int to bool and simplified expression for promoteToT1.
2005-05-06  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* blitz/array-impl.h: Converted most unnamed enums into static const
int or bool types where appropriate, in order to resolve compilation
problems under gcc-4.0.0.  This new compiler complains whenever it
sees an unnamed enum being used in an expression where there has been
a templated version of the operator in the expression already declared.
It tries to instantiate the templated operator with the unnamed enum,
which is illegal and results in a compile error.  Very annoying!  In
any case, I also removed the usages of BZ_ENUM_CAST that were no longer
necessary, since we are now using real types.  This is probably a safer
way to write the code anyway...
2005-04-20  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* m4/ac_fortran_flags_preset.m4: Added the proper flag for Fortran
external symbol translation when using the Intel Fortran compiler.
Moved the AM_CONDITIONAL for F90_COMPILER into configure.ac so
that it is always defined.
* m4/ac_cxx_flags_preset.m4: Use -ansi flag with Intel compiler
for now.  The -strict_ansi flag does not work with the newer gcc
header files, but -ansi is better than nothing.  Also fixed the
profiling flag for the Intel compiler.

* configure.ac: Added option --disable-fortran that allows user to
skip the Fortran compiler configuration.  With this option, the
banchmarks directory will not be configured.  The default is
--enable-fortran.  I also moved the C++ compiler configuration
ahead of the Fortran configuration, in case Fortran is skipped.
2005-04-14  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* m4/ac_cxx_flags_preset.m4: A few modidfications to the GNU and
IBM XL C++ compiler optimization flags.

* m4/ac_fortran_flags_preset.m4: Added cases to specifically
handle the darwin build target.  Added cases for F77=g95, which
can be useful on Darwin platform.  Generalized all Fortran
compiler names.  A few modifications to the GNU and IBM XL Fortran
compiler optimization options.

* configure.ac: Added g95 compiler to the Fortran 77 compiler
search list.  This is primarily for the benefit of users running
on the Darwin (Mac OS X) platform.  These systems often do not
come with the g77 compiler installed, and it can be difficult to
install g77 and g++ at the same version level.  Mixing different
versions of g77 and g++ can lead to link-time errors in the blitz
benchmark codes.  Using g95 as both the Fortran 77 and Fortran 90
compiler offers another solution.  Note that use of the g95
compiler under Mac OS X requires cctools-528.  Info on how to
install this is at www.g95.org.
2005-04-06  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* m4/ac_cxx_flags_preset.m4: Added case for solaris target with CC
compiler (SunPRO).  The preset flags have been verified to work
with Sun Studio 10, C++ version 5.7.  Also added handling of c++
compiler name as pseudonym for g++ and reordered the cases
somewhat.  I am also removing the -strict_ansi flag with the Intel
C++ compiler for now, since this has been reported to cause
trouble with newer versions of icc and gcc.
* m4/ac_compiler_specific_header.m4: Added case for SunPRO CC
compiler (CC on solaris target) and handling of c++ compiler name.
Generalized all compiler names.
* configure.ac: Inserted c++ into C++ compiler search list, so
that Darwin systems (which are case-insensitive) will pick up c++
(a symbolic link to g++) rather than CC (which is really cc, a
symbolic link to gcc).  We need c++ in front of CC in the search list.
* blitz/bzconfig.h: Added case to check for SunPRO CC compiler and
defer to sun/bzconfig.h.

2005-04-01  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* testsuite/reduce.cpp: Added test of count() function.
* blitz/array/expr.h: Use typedef T_expr consistently inside
ArrayExpr class definition.

2005-02-23  Patrick Guio  <patrick.guio@bccs.uib.no>

* blitz/numinquire.h: Added config header file <blitz/blitz.h> so
that numerical inquiries stuff can be used by just including
<blitz/numinquire.h>.


2005-02-08  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* configure.ac: Added g95 to the list of FC compilers that are
tried and reordered the list to prefer g95 over gfortran.  Also,
reordered the compiler macros to do our compiler flag presets
first, before any other macros that may add more flags.
* m4/ac_fortran_flags_preset.m4: On many Linux systems, f77 points
to the g77 compiler.  So I've added a test for this possibility,
instead of just assuming that f77 on Linux systems is the Absoft
compiler.  If $G77 equals yes, use the g77 flag presets.  Added
flag presets for the PGI F77 and F90 compilers, and for the g95
compiler.  Reverted to the practice of overwriting the default
values of FFLAGS and FCFLAGS because the default values are not
appropriate for benchmark codes.
* doc/stencils/Makefile.am: Removed explicit -lm flag from LDADD.
This is now inserted into the LIBS variable automatically if
needed for standard math functions like sin().
* benchmarks/Makefile.am: Simplified settings for F90 compilation,
taking advantage of the improved F90 support in automake 1.9 using
the FC variables.
* m4/ac_lib_blas.m4: Replaced FORTLIBS with standard autoconf
variable FLIBS.
* m4/ac_env.m4: Print out settings of FLIBS and FCLIBS rather than
FORTLIBS, which is now obsolete.
* m4/ac_fortran_flags_preset.m4: Removed settings for FORTLIBS
variable.  Fortran library loader flags are now handled using
standard autoconf macros.  Separated settings for F77 and FC
variables and only set FC variables if FC has been set.  Ensure
that we add to FFLAGS and FCFLAGS rather than overwriting them.
Added gfortran case for F77 and FC on Linux platform.  Added g77
case for all Unix platforms.
* configure.ac: Advanced required automake version number to 1.9,
which has improved support for F90 compilers via the FC variables.
Added gfortran to the list of supported F77 and F90 compilers.
Use standard autoconf macros to determine the Fortran library
flags to pass to the loader, rather than our ad-hoc variable
FORTLIBS.  Simplified test for whether FC has been set.  Improved
test for standard math functions like sin() so that -lm is only
explicitly included on the link line if necessary.  Removed test
for existence of lib directory, since this is now guaranteed.
2005-02-07  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* m4/ac_compilers_64bits.m4: Generalized names of a few other
compilers, notably the SGI and IBM compilers.

* m4/ac_compiler_specific_header.m4: Generalized names of some C++
compilers.

* m4/ac_compilers_64bits.m4: Generalized name of g++ compiler in
case statements.

* m4/ac_cxx_flags_preset.m4: Generalized name of g++ compiler in
case statements.

2005-01-28  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* doc/stencils/Makefile.am: Modified compilation rules to provide
separate -D flag for defining stencilargs symbol.  Breaking this
into two separate preprocessor symbols eliminates confusion that
some compilers were having with parentheses embedded in a -D flag.
Should fix problems with pgCC and xlC.
* doc/stencils/dump-stencil.cpp: Introduce stencilargs symbol to
represent argument(s) of stenciltoapply.

* blitz/mathfunc.h: Regenerated using genmathfunc.cpp program to
include PGI compiler hacks.

* blitz/generate/genmathfunc.cpp: Added some lines to skip
pow(float,float) and all transcendental functions acting on
complex<long double> if we are using PGI compiler.  PGI does not
support complex<long double> math functions because of issues with
how some Linux systems define the long double type.  The
pow(float,float) function fails because of the presence of
overloaded versions of pow() taking the combination of a float and
a complex<float>.  PGI does not provide an explicit
pow(float,float) overload to call powf().
2005-01-06  Julian Cummings  <cummings@valhalla.cacr.caltech.edu>

* benchmarks/stencilf2.f: Added explicit declaration for local
loop counter variable.

* benchmarks/stencilf.f: Added explicit declaration for local loop
counter variables.

* Makefile.am: Removed unneeded compile rules for suffix ".f90.f"
which is not used.


2005-01-07  Patrick Guio  <patrick.guio@bccs.uib.no>

* blitz/array/ops.h: Completed ET(array,scalar) for scalar
of all integral types.

2004-11-17  Patrick Guio  <patrick.guio@bccs.uib.no>

* doc/doxygen/Makefile.am: Fixed install related targets to take into
account a possible DESTDIR.


2004-11-04  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

        Tagging repository contents with Blitz_0_8 tag.
2004-11-04  Patrick Guio  <patrick.guio@bccs.uib.no>

* m4/ac_prog_doxygen.m4: Added test on doxygen version. In order
to be used doxygen must be at least 1.3.x.


2004-11-03  Patrick Guio  <patrick.guio@bccs.uib.no>

* m4/ac_prog_doxygen.m4 doc/doxygen/Makefile.am: Renamed automake
conditional tag 'DOC' into more explicit 'DOXYGEN_DOC' as well as
references.

* doc/doxygen/Doxyfile.in: Upgraded config file to doxygen 1.3.6.
Replaced ../.. by autoconf variables in INPUT tag.
Removed *.cc from the FILE_PATTERNS tag since they are just
implementation. Limited the class to document by explicitly exclude
concerned files using the EXCLUDE tag. Fine tuned some doxygen and
dot behaviour tags.

* doc/doxygen/Makefile.am: Set docdir to be
$(datadir)/doc/$(PACKAGE)-$(VERSION)/doxygen, indeed a
subdirectory of the blitz root document directory.
Use more systematically available variables.
Cosmetic Changes.

* TODO: new item: make available RPM as a dist medium.


2004-10-29  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* doc/doxygen/Makefile.am: Set docdir to
$(datadir)/doc/$(PACKAGE)-doc-$(VERSION) for the doxygen generated
documentation, to distinguish from the texinfo generated docs.
Removed $(VERSION) from names of PS and PDF manuals.  There is
still something wrong with the ps and pdf targets.  How do you get
doxygen to generate the manuals?  Patrick, please fix!
* doc/Makefile.am: Changed docdir to standard value
$(datadir)/doc/$(PACKAGE)-$(VERSION).

* doc/doxygen/Doxyfile.in: Changed FILE_PATTERNS from *.cpp to
*.cc, since that is the extension used for blitz template
implementation header files.

2004-10-26  Patrick Guio  <patrick.guio@ii.uib.no>

* doc/Makefile.am: Assigned variable docdir the value
$(prefix)/doc/$(PACKAGE) in order to gather blitz documentation in a
subdirectory of the generic doc directory.
* doc/doxygen/Makefile.am: New variable docdir assigned the value
$(prefix)/doc/$(PACKAGE)/doxygen. Used when installing doxygen-generated
documentation in install-data-hook and make-install-dirs targets.

2004-10-26  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* doc/Makefile.am: Added blitz.dvi to EXTRA_DIST, so we don't need
to rebuild it from the blitz.texi file after unpacking the
distribution tarball.

2004-10-25  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/generate/Makefile.am: Move header-generating programs to
EXTRA_PROGRAMS so they are not built by the default target.  They
will only be built if a generated header file needs to be updated.
* blitz/generate/Makefile.am: Made generated header files depend
directly on the source code file needed to generate header, rather
than the executable.  Modified build rules for generated headers
to build executable first and then run it to create header.  This
should allow the tarball distribution to skip generation of header
files if they are already provided in distribution and are
up-to-date.

* doc/examples/Makefile.am: Made .out output files depend on .cpp
source file rather than executable.  Modified build rule for
output files to first build executable, then run it to produce
output file.  With these changes, the tarball distribution can use
the given output files without having to rebuild all the
executables.

* doc/Makefile.am: Added HTML and image files to doc_DATA and to
EXTRA_DIST, so HTML documentation will be installed and included
in distribution tarball.

2004-10-22  Patrick Guio  <patrick.guio@ii.uib.no>

* doc/Makefile.am: Added blitz.info and blitz.pdf in EXTRA_DIST.  
Those files ought to be in the dist tarball since they might not be able
to be regenerated due to not available 'tex' and 'makeinfo' commands.
Added blitz.ps and blitz.pdf in doc_DATA since they are now distributed.
* doc/doxygen/Makefile.am: Removed search option '-s' for doxytag and
replaced by tag option '-t' since '-s' is deprecated in recent doxygen
version.

2004-10-21  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* doc/Makefile.am: Added new PDF versions of the figures to
EXTRA_DIST.  Moved blitz.ps from doc_DATA to EXTRA_DIST, so that
TeX is not required for installation.

2004-10-16  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* .cvsignore: Removed _configs.sed.  This file is no longer
created.
* m4/ax_prefix_config_h.m4: Removed line that copied sed script to
_configs.sed.  The sed script is not needed after the
AX_PREFIX_CONFIG_H macro has executed.

2004-10-15  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* doc/Makefile.am: Added doxygen to SUBDIRS list.  Added build
rules for blitz_TEXINFOS files in stencils and examples
subdirectories.  This is needed so that the top-level dist-gzip
build target can work properly.
* doc/platforms.texi: Updated information on various
platforms/compilers.  Current info on Intel and GNU compilers.
Added section on Microsoft VS.NET 2003.  Noted that support for
Metrowerks and Cray C++ compiler is no longer being maintained.
* doc/install.texi: Updated installation and porting instructions
to refer to current approach using autoconf and configure script.
* doc/version.texi: Updated version info.
* blitz/README: Added note and caveat about the new
compiler-specific header file.
* blitz/Makefile.am: Removed the EXTRA_DIST list, since it
referred to files that are no longer in the distribution.
* configure.ac: Bumped version number to 0.8.  Added icc to list
of program names for C++ compiler that we try.  This name of the
Intel C++ compiler is now deprecated in favor of the name icpc,
which we try first.

2004-10-14  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* configure.ac: Modification suggested by Derrick Bass
(derrick@caltech.edu) that disables use of the F90 compiler if it
does not support free format source code or source code files with
a .f90 extension.
* testsuite/newet.cpp: Fixed typo reported by Derrick Bass
(derrick@caltech.edu).

2004-10-14  Patrick Guio  <patrick.guio@ii.uib.no>

* config/texinfo.tex: Removed from repository since it is generated
when running 'autoreconf -vif'.

* doc/blitz.info: Removed from repository since it is generated when
making doc.


2004-10-13  Patrick Guio  <patrick.guio@ii.uib.no>

* m4/ac_compiler_specific_header.m4: New macro "extracted" from
configure.ac to set the compiler-specific header. Added
COMPILER_SPECIFIC_HEADER as a precious variable. Added icc as a
supported compiler (together with icpc).

* configure.ac: Moved compiler specific-header handling in
m4/ac_compiler_specific_header.m4.

* blitz/config-ICL.h blitz/config-KCC.h blitz/config-SC4.0.h
blitz/config-SGi.h blitz/config-g++2.7.2.h blitz/config-g++3.h
blitz/config-mwerks.h blitz/config-xlC.h: Removed as rendered
obsolete due to the new form of preprocessor symbol BZ_HAVE_*.


2004-10-06  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/Makefile.am: Modified to install the compiler-specific
header file that was created.  Added definition of EXTRA_HEADERS
with list of all possible header files of this sort.  Seems to be
required by automake.

* configure.ac: Modified compiler-specific header file logic to
define the name of the header file that is produced as
COMPILER_SPECIFIC_HEADER.  We need this in order to tell the blitz
subdirectory Makefile which header to install.
* random/mt.h: Changed BZ_NAMESPACES to BZ_HAVE_NAMESPACES.
* examples/cfd.cpp: Changed BZ_NAMESPACES to BZ_HAVE_NAMESPACES.
* examples/simple.cpp: Use blitz macro for using directive.
* examples/slicing.cpp: Use blitz macro for using directive.
Changed BZ_PARTIAL_ORDERING to BZ_HAVE_PARTIAL_ORDERING.
* examples/tiny.cpp: Use blitz macro for using directive.
* examples/transform.cpp: Use blitz macro for using directive.
* examples/where.cpp: Use blitz macro for using directive.
* testsuite/complex-test.cpp: Changed BZ_HAVE_COMPLEX_MATH to
BZ_HAVE_COMPLEX_FCNS.

* testsuite/promote.cpp: Changed to new form of preprocessor
symbols.

* blitz/generate/genvecuops.cpp: Changed to new form of
preprocessor symbol for complex<T> methods.

* blitz/generate/genmathfunc.cpp: Changed one more instance of
BZ_HAVE_COMPLEX_MATH to BZ_HAVE_COMPLEX.

* blitz/array/newet-macros.h: Changed preprocessor symbols to new
form.

* blitz/array/multi.h: Changed BZ_HAVE_COMPLEX_MATH to
BZ_HAVE_COMPLEX.

* blitz/array/funcs.h: Changed BZ_HAVE_COMPLEX_MATH to
BZ_HAVE_COMPLEX_FCNS.

* blitz/array/asexpr.h: Changed preprocessor symbols to new form.
* blitz/promote.h: Changed BZ_ preprocessor symbols to new form.
* blitz/numtrait.h: Changed BZ_BOOL to BZ_HAVE_BOOL.
* blitz/generate/genmathfunc.cpp: Fixed up usage of various
preprocessor symbols related to complex type and math functions.
* blitz/funcs.h: Fixed up usage of various preprocessor symbols
related to complex type and math functions.
* blitz/array-impl.h: Changed BZ_PARTIAL_ORDERING to
BZ_HAVE_PARTIAL_ORDERING.

* blitz/bzdebug.h: Changed BZ_RTTI to BZ_HAVE_RTTI and added use
of BZ_HAVE_STDLIB_H.

* blitz/Makefile.am: Replaced config.h with bzconfig.h in
blitz_HEADERS list.

* blitz/compiler.h: Use new master file <blitz/bzconfig.h> to
include a compiler-specific config file.  Use new version of
preprocessor symbols defined by autoconf macros.
* m4/ac_check_cxx_features.m4: Removed superfluous include guard
insertion into config.h file.  Autoconf already adds such an
include guard.

* m4/ac_cxx_general.m4: Changed AC_CXX_NAMESPACE to standard
AC_CXX_NAMESPACES.

* m4/ac_cxx_standard_library.m4: Replacing autoconf macro
AC_CXX_HAVE_COMPLEX_MATH with AC_CXX_HAVE_COMPLEX_FCNS and two
macros from the GNU autoconf macro archive,
AC_CXX_HAVE_COMPLEX_MATH1 and AC_CXX_HAVE_COMPLEX_MATH2.  The
AC_CXX_HAVE_COMPLEX_FCNS macro tests only for the standard methods
of the complex<T> class such as real() and conj().  The math
function tests are now handled by the standard macros from the GNU
autoconf macro archive.
* m4/ac_cxx_type_promotion.m4: Added a real program to properly
test for the vector type promotion mechanism.  Modified to follow
format of m4 macros in GNU autoconf macro archive.  Defines
HAVE_TYPE_PROMOTION instead of BZ_HAVE_TYPE_PROMOTION.  The BZ_
prefix will be added using the AX_PREFIX_CONFIG_H autoconf macro.

* m4/ac_cxx_nceg_restrict_egcs.m4: Modified to follow format of m4
macros in GNU autoconf macro archive.  The BZ_ prefix will be
added to the defined preprocessor symbol using the
AX_PREFIX_CONFIG_H autoconf macro.

* m4/ac_cxx_math_fn_in_namespace_std.m4: Modified to follow format
of m4 macros in GNU autoconf macro archive.  The BZ_ prefix will
be added to the defined preprocessor symbol using the
AX_PREFIX_CONFIG_H autoconf macro.

* m4/ac_cxx_have_rusage.m4: Modified to follow format of m4 macros
in GNU autoconf macro archive.  Defines HAVE_RUSAGE instead of
BZ_HAVE_RUSAGE.  The BZ_ prefix will be added using the
AX_PREFIX_CONFIG_H autoconf macro.

* m4/ac_cxx_have_climits.m4: Modified to follow format of m4
macros in GNU autoconf macro archive.  Defines HAVE_CLIMITS
instead of BZ_HAVE_CLIMITS.  The BZ_ prefix will be added using
the AX_PREFIX_CONFIG_H autoconf macro.

* m4/ac_cxx_flags_preset.m4: Added default flag settings for xlc++
compiler, which is a version of the IBM C++ compiler made for
Darwin systems.  Added -D flags for the IBM and Fujitsu compilers
so we can detect use of these compilers at compile time.  Most
other C++ compilers already define a distinctive preprocessor
symbol.

2004-10-05  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* compiler/promote.cpp: This file contained an empty program, so I
wrote an actual test for the vector type promotion mechanism using
traits, as described in "Using C++ Traits Classes for Scientific
Computing" by Todd Veldhuizen (1996).
2004-10-01  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/array/indirect.h: Changes corresponding to those recently
made in cartesian.h and eval.cc.  Extended indexSet() method to
accept up to 11 parameters.  Replaced data[i] with *data++ in
expression evaluation loops using unit stride.

2004-09-17  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* manual/Makefile.am: Corrected name of arrays-types.yo file.
Added README file to EXTRA_DIST.  Moved all of the .yo files and
the helper files used to create the old blitz manual from doc_DATA
to EXTRA_DIST.  We install only the old blitz manual itself from
this directory.  It is no longer maintained.

* blitz/array/eval.cc: Replaced data[i] with *data++ in unit
stride loops over data inside various Array expression evaluation
mechanisms.  This tends to optimize better under some compilers,
and this change eliminates some unusual bugs in expression
evaluation when using the KCC compiler in optimized mode.  This is
an old patch which I forgot to check in.
* blitz/array/resize.cc: Changed precondition on resize() method
to allow extent arguments with the value 0.  This will allow the
user to resize an existing Array to size 0, which will cause the
MemoryBlockReference class to call the changeToNullBlock() method
and release its reference to any pre-existing allocated memory
block.  We continue to reject an extent of 0 in the
resizeAndPreserve() method, since presumably the user wishes to
preserve some pre-existing elements.
* blitz/array/slicing.cc: Use default value of zero for second
argument in call to changeBlock method of class
MemoryBlockReference.  No need to set data_ pointer to
array.dataZero(), as this is already done by changeBlock.
* blitz/array/methods.cc: Use default value of zero for second
argument in call to changeBlock method of class
MemoryBlockReference.  Removed commented out line setting
data_=array.data_, as this is now already taken care of by
changeBlock.  When constructing an Array, only allocate new memory
block if numElements>0.  If numElements==0, call
changeToNullBlock.  This ensures that the begin() and end()
iterators are equal for an Array with size 0.
* blitz/vector.cc: Use default value of zero for second argument
in call to changeBlock method of class MemoryBlockReference.
* blitz/memblock.h: Reset data_ pointer equal to data_ pointer of
original MemoryBlockReference rather than data_ pointer of
MemoryBlock itself when constructing a new MemoryBlockReference
from an old one or changing the MemoryBlock that it refers to.
The MemoryBlock data_ pointer points to the beginning of the
usable portion of the allocated memory block, whereas the data_
pointer for a MemoryBlockReference points to the zeroth element of
the Array allocated in this MemoryBlock.  Note that the zeroth
element may not be within the valid range of the Array and the
MemoryBlockReference data_ pointer may point to an address outside
of the memory block.  I've given the offset parameter for the
changeBlock method a default value of zero.  Any offset value
given will indicate an offset in memory between the zeroth element
of the original Array and the modified or new Array.  Normally, we
can just accept the default offset value of zero and then adjust
the position of the Array data_ pointer afterwards if needed.
2004-08-24  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/array/methods.cc: Commented out an unnecessary line of
code in Array::reference() method.

* blitz/array/slicing.cc: Modified slice() method to flip the
ascendingFlag inside the Array storage if slicing with a backwards
Range.  Factored expression for computing offset of data_ pointer.
Corrected sign error in adjustment of zeroOffset_ value.  It
should move in the same direction as the data_ pointer.
2004-07-28  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

    * blitz/array-impl.h: Made the return type of operator()(XXX) const
    be const references instead of values. Added constant case for
    multicomponent_traits.

2004-06-23  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* m4/ac_fortran_flags_preset.m4: Tuned up some of the optimization
flags and cleaned up file formatting.  Allow modified forms of
compiler name for KCC, SGI and IBM compilers, so we can use
special scripts to invoke these compilers (e.g., mpxlC or newKCC).

* m4/ac_cxx_flags_preset.m4: Tuned up some of the optimization
flags and cleaned up file formatting.  Allow modified forms of
compiler name for KCC, SGI and IBM compilers, so we can use
special scripts to invoke these compilers (e.g., mpxlC or newKCC).

* m4/ac_compilers_64bits.m4: Added special 64-bit flags for the
archiver and loader as needed.  Allow modified forms of compiler
name for KCC, SGI and IBM compilers, so we can use special scripts
to invoke these compilers (e.g., mpxlC or newKCC).

* configure.in: Moved test for 64-bit option ahead of libtool
configuration, so that libtool will pick up the proper 64-bit
flags for the archiver tool, if requested.

2004-06-18  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* testsuite/iter.cpp: Added testing of standard iterator interface
for blitz Array iterator types and run a couple of STL algorithms
using Array iterators if BZ_HAVE_STL is defined.
* blitz/array-impl.h: Eliminated the use of the _bz_endTag struct
to request an end iterator for an Array.  Just use the default
iterator constructor to do this.
* blitz/array/iter.h: Modified behavior of ArrayIterator and
ConstArrayIterator to be more STL compliant.  Specifically, the
postfix operator++ now returns a const reference to the iterator
object as it was before the increment.  Users should expect the
postfix operator++ to be slower than prefix operator++ and code
accordingly.  If BZ_HAVE_STL is defined, we provide
specializations of the struct std::iterator_traits<> to provide
the standard interface for the Array iterator types.

* INSTALL: Updated to describe present configuration procedure
using standardized autoconf configure script.  Added note on
running autoreconf when obtaining blitz from the cvs repository.
* README: Added information about the new Blitz++ website hosted
by SourceForge.  Updated the listing and explanation of the
directory structure.

2004-06-15  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/array/reduce.h: Added new private method computeOrdering()
to class _bz_ArrayExprReduce that properly computes the ordering
values for each dimension of the reduction expression and stores
them in a data member.  The computeOrdering() method checks that
ordering values from the expression to be reduced are not invalid
and are unique.  This is similar to a patch submitted by Derrick
Bass for the code that constructs an Array from a _bz_ArrayExpr.
I have also eliminated the use of "rank" as a local variable name
to avoid possible confusion with the _bz_ArrayExprReduce enum of
the same name.

2004-06-04  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/array/stencilops.h: Added missing typename keyword.
* blitz/array/stencils.h: Added blitz:: qualifier to use of
TinyVector type.

2004-05-06  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

    * configure.in: Do not execute the AC_FC_FREEFORM and AC_FC_SRCEXT
    macros if no fortran 90 compiler was found.

    * benchmarks/Makefile.am: search source files in $(srcdir) for
    compilation speed tests.

2004-05-05  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* lib/Makefile.am: Restored -I$(top_builddir) flag needed to find
generated config.h file when building in a separate directory.
* testsuite/Makefile.am: Restored -I$(top_builddir) flag needed to
find generated config.h file when building in a separate
directory.
* examples/Makefile.am: Restored -I$(top_builddir) flag needed to
find generated config.h file when building in a separate
directory.
* benchmarks/Makefile.am: Restored -I$(top_builddir) flag needed
to find generated config.h file when building in a separate
directory.
* doc/examples/Makefile.am: Restored -I$(top_builddir) flag needed
to find generated config.h file when building in a separate
directory.
* doc/stencils/Makefile.am: Restored -I$(top_builddir) flag needed
to find generated config.h file when building in a separate
directory.  Also fixed problem with building dump-stencil
executable in wrong directory.  I did this by explicitly creating
dump-stencil in the current (build) directory.
* manual/examples/Makefile.am: Restored -I$(top_builddir) flag
needed to find generated config.h file when building in a separate
directory.
* manual/stencils/Makefile.am: Restored -I$(top_builddir) flag
needed to find generated config.h file when building in a separate
directory.

* benchmarks/Makefile.am: Moved -I flags from AM_CXXFLAGS to
AM_CPPFLAGS.  Cleaned up LIBS list.
* examples/Makefile.am: Moved -I flags from AM_CXXFLAGS to
AM_CPPFLAGS.
* testsuite/Makefile.am: Moved -I flags from AM_CXXFLAGS to
AM_CPPFLAGS.
* doc/stencils/Makefile.am: Moved -I flags from AM_CXXFLAGS to
AM_CPPFLAGS. Removed use of deprecated INCLUDES variable.
* doc/examples/Makefile.am: Moved -I flags from AM_CXXFLAGS to
AM_CPPFLAGS.
* manual/examples/debug.cpp: Restored indexing bug, which is
apparently there for illustrative purposes.
* doc/examples/debug.cpp: Restored indexing bug, which is
apparently there for illustrative purposes.
* doc/examples/debug.cpp: Fixed indexing bug.
* doc/examples/cast.cpp: Cosmetic change.
* manual/stencils/Makefile.am: Moved -I flags from AM_CXXFLAGS to
AM_CPPFLAGS.
* manual/examples/Makefile.am: Activated several example codes
that had been commented out.  Cleaned up list of extra files.
Moved -I flags from AM_CXXFLAGS to AM_CPPFLAGS.
* manual/examples/debug.cpp: Fixed indexing bug in this example,
just so it will run without crashing.  Not sure what this code is
supposed to illustrate.
* manual/examples/cast.cpp: Corrected this example code to use
new-style blitz cast syntax.
* lib/Makefile.am: Moved -I flags from AM_CXXFLAGS to AM_CPPFLAGS.
* Makefile.am: Removed src from list of SUBDIRS because there is
nothing to do there.
* configure.in: Replaced deprecated AC_LANG_CXX and AC_LANG_F77
with calls to AC_LANG.  Reordered AC_LANG calls so we don't need
to call AC_LANG_CXX twice.  Removed some superfluous m4 macro
argument quoting.  Removed compiler and src subdirectories from
list of directories to configure.  The compiler area is obsolete
now that autoconf does this work for us.  We don't need to visit
the src directory, since the blitz library is built from the lib
directory.

2004-04-25  Patrick Guio <patrick.guio@fys.uio.no>

* m4/ac_cxx_flags_preset.m4: Fixed initialisation and test of ac_cxx_flags_preset variable.

2004-04-17  Patrick Guio <patrick.guio@fys.uio.no>

* m4/ax_dirname.m4 m4/ax_create_pkgconfig_info.m4: New files. Macros to generate
necessary files to use in conjunction with pkg-config tool (see
http://www.freedesktop.org/Software/pkgconfig).  Files copied from
http://ac-archive.sourceforge.net.
* m4/ac_cxx_lib_blitz.m4: New file. Macro to check whether Blitz is installed on the
system. Useful when writing configure file for package using Blitz.
* configure.in Makefile.am: Added support for generating .pc files to use in conjunction
with pkg-config.

2004-04-09  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* benchmarks/Makefile.am: Added AM_CXXFLAGS to compile command for
compile-time benchmarks.

* configure.in: Reordered lists of C++ and Fortran compilers we
search for to avoid common conflicts on systems that might have
more than one compiler set installed.

* m4/ac_cxx_flags_preset.m4: Minor formatting change.
* m4/ac_cxx_flags_preset.m4: Changed use of "match" operator
within expr commands to more standard ":" operator, since "match"
is not recognized by the implementation of expr on Darwin systems.
* lib/Makefile.am: Removed CXXFLAGS from AM_CXXFLAGS, since this
gets added separately to the compile command already.
* testsuite/Makefile.am: Removed CXXFLAGS from AM_CXXFLAGS, since
this gets added separately to the compile command already.
* examples/Makefile.am: Removed CXXFLAGS from AM_CXXFLAGS, since
this gets added separately to the compile command already.
* benchmarks/Makefile.am: Removed CXXFLAGS from AM_CXXFLAGS, since
this gets added separately to the compile command already.
* doc/examples/Makefile.am: Removed CXXFLAGS from AM_CXXFLAGS,
since this gets added separately to the compile command already.
* doc/stencils/Makefile.am: Use AM_CXXFLAGS macro for -I flags
rather than deprecated INCLUDES macro.

2004-04-07  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/Makefile.am: Removed new-config.h from list of
blitz_HEADERS.

* blitz/compiler.h: Changed <blitz/new-config.h> back to
<blitz/config.h>.

* Makefile.am: Removed compiler from list of SUBDIRS and deleted
the check-compiler target.  This work is now done by autoconf and
the configure script, so we don't need to do it again.

* configure.in: Bumped AC_PREREQ value to 2.59.  Changed
blitz/new-config.h back to standard name blitz/config.h.  This
will now replace the old file that was generate with the bzconfig
script.  Added nostdinc to list of automake options to prevent
automake from adding -I../blitz to set of default include flags.
This causes problems with Compaq cxx and is unnecessary because
blitz header files are always included as <blitz/foo.h> anyway.
* examples/random.cpp: Added workaround for problem with streams
when using Compaq cxx compiler.  Sending a long double to an
ostream causes a core dump, so cast to double before sending
value.

* examples/rand2.cpp: Added workaround for problem with streams
when using Compaq cxx compiler.  Sending a long double to an
ostream causes a core dump, so cast to double before sending
value.

* lib/Makefile.am: Corrected setting of include flags.
* testsuite/Makefile.am: Corrected setting of include flags.
* examples/Makefile.am: Corrected setting of include flags.
* benchmarks/Makefile.am: Corrected setting of include flags.
* doc/examples/Makefile.am: Corrected setting of include flags.
* doc/stencils/Makefile.am: Corrected setting of include flags.
* blitz/generate/Makefile.am: Removed incorrect and unneeded
definition of generatedir.

* m4/ac_cxx_flags_preset.m4: Modified default flags for Compaq cxx
compiler to allow use of restrict keyword and simplified the set
of optimization flags.

2004-03-24  Patrick Guio <patrick.guio@fys.uio.no>

* doc/doxygen/Makefile.am doc/doxygen/Doxyfile.in: New files. Handles doxygen
documentation. Mostly "cut and paste" from tvmet project (tvmet.sourceforge.net).
* configure.in: Added generation of doc/doxygen/Doxyfile from
doc/doxygen/Doxyfile.in and doc/doxygen/Makefile.
* doc/doxygen/blitz.doxygen: Removed. Replaced by doc/doxygen/Doxyfile.


2004-03-22  Patrick Guio <patrick.guio@fys.uio.no>

* m4: New directory containing m4 macros files that replace acinclude.m4.
* m4/ac_check_cxx_features.m4 m4/ac_compilers_64bits.m4 m4/ac_cxx_bool.m4
m4/ac_cxx_complex_math_in_namespace_std.m4 m4/ac_cxx_const_cast.m4
m4/ac_cxx_default_template_parameters.m4 m4/ac_cxx_dynamic_cast.m4
m4/ac_cxx_enable_debug.m4 m4/ac_cxx_enable_optimize.m4
m4/ac_cxx_enum_computations.m4 m4/ac_cxx_enum_computations_with_cast.m4
m4/ac_cxx_exceptions.m4 m4/ac_cxx_explicit.m4
m4/ac_cxx_explicit_template_function_qualification.m4 m4/ac_cxx_flags_preset.m4
m4/ac_cxx_full_specialization_syntax.m4 m4/ac_cxx_function_nontype_parameters.m4
m4/ac_cxx_general.m4 m4/ac_cxx_have_climits.m4 m4/ac_cxx_have_complex.m4
m4/ac_cxx_have_complex_math.m4 m4/ac_cxx_have_ieee_math.m4
m4/ac_cxx_have_numeric_limits.m4 m4/ac_cxx_have_rusage.m4 m4/ac_cxx_have_std.m4
m4/ac_cxx_have_stl.m4 m4/ac_cxx_have_system_v_math.m4 m4/ac_cxx_have_valarray.m4
m4/ac_cxx_keywords.m4 m4/ac_cxx_math_fn_in_namespace_std.m4
m4/ac_cxx_member_constants.m4 m4/ac_cxx_member_templates.m4
m4/ac_cxx_member_templates_outside_class.m4 m4/ac_cxx_mutable.m4
m4/ac_cxx_namespace.m4 m4/ac_cxx_nceg_restrict.m4 m4/ac_cxx_nceg_restrict_egcs.m4
m4/ac_cxx_old_scoping.m4 m4/ac_cxx_partial_ordering.m4
m4/ac_cxx_partial_specialization.m4 m4/ac_cxx_reinterpret_cast.m4
m4/ac_cxx_rtti.m4 m4/ac_cxx_standard_library.m4 m4/ac_cxx_static_cast.m4
m4/ac_cxx_template_keyword_qualifier.m4
m4/ac_cxx_template_qualified_return_type.m4
m4/ac_cxx_template_qualifier_base_class.m4
m4/ac_cxx_template_scoped_argument_matching.m4 m4/ac_cxx_templates.m4
m4/ac_cxx_templates_as_template_arguments.m4 m4/ac_cxx_templates_features.m4
m4/ac_cxx_type_casts.m4 m4/ac_cxx_type_promotion.m4 m4/ac_cxx_typename.m4
m4/ac_cxx_use_numtrait.m4 m4/ac_env.m4 m4/ac_fortran_flags_preset.m4 m4/ac_info.m4
m4/ac_lib_blas.m4 m4/ac_prog_doxygen.m4 m4/ac_send_config.m4: New files.
M4 macros containing functions definitions for the configure.in autoconf file.
* acinclude.m4: Removed. Renamed m4/blitz.m4.
* m4/blitz.m4: New file. Old acinclude.m4.
* Makefile.am configure.in: Updated to use the new m4 macros in m4 directory.
configure.in now integrates all the C++ feature tests handled earlier by
compiler/bzconfig.
It creates the file blitz/new-config.h from the template file
blitz/new-config.h.in. blitz/new-config.h replaces blitz/config.h earlier
generated by compiler/bzconfig.
The --with-cxx option is removed and replaced by standard variable parsing.
The C++ compiler flags preset can be overwritten with the new option
--disable-cxx-flags-preset.
Fortran 77/90 compilers and flags can be overwritten with the new option
--disable-fortran-flags-preset.
For more help check configure --help.
* blitz/compiler.h: Include blitz/new-config.h instead of blitz/config.h.
* blitz/Makefile.am: Added new-config.h as a file to install.
* blitz/benchext.cc blitz/benchext.h: Added optional argument for
saveMatlabGraph to be able to plot 2d graph with requested Matlab command (other
type than the earlier default semilogx).
* benchmarks/Makefile.am: Cleaned the Fortran 77/90 variables definitions.
Make use of the new FC* variables system introduced in configure.in.
* benchmarks/loop25.cpp: Corrected number of arithmetic operations to be 6.
* benchmarks/plot_benchmarks.m.in: Added information about compiler set up and
flags in the front page.
* benchmarks/stencil.cpp: Replaced Matlab semilogx command by a linear
plot command.
* config: New directory containing generated configuration files.
* config/texinfo.tex config/mdate-sh: New file. Replace doc/texinfo.tex
doc/mdate-sh.
* doc/texinfo.tex doc/mdate-sh: Removed. Replaced by config/texinfo.tex
config/mdate-sh.
* m4/ac_cxx_flags_preset.m4 m4/ac_fortran_flags_preset.m4: Fixed
unsupported syntax variable assignement of several strings on several
lines to one long string.
* benchmarks/Makefile.am: Fixed clean-local target core* into core.[0-9]*.
* m4/ac_cxx_flags_preset.m4: Fixed CXXFLAGS flag for Compaq cxx ver.>=6.3.
Actually tested just for cxx ver. 6.5.
* Makefile.am: Added so_locations cxx_repository in the clean-local target.

2004-03-16  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/blitz.h: Added C++ tag for Emacs.  I am testing the cvs
commit notification system.

2004-03-15  Patrick Guio <patrick.guio@fys.uio.no>

* configure.in: Replaced "echo" commands by autoconf AC_MSG_NOTICE calls.
* acinclude.m4: Quote-protected function definition names.

2004-03-09  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/prettyprint.h: Eliminated compiler warnings by adding
explicit casts in nextArrayOperandSymbol and
nextScalarOperandSymbol methods.
* blitz/mathfunc.h: Use BZ_STD_SCOPE macro to insert std::
qualifier in front of string type where needed.  Regenerated from
genmathfunc.cpp code.
* blitz/generate/genmathfunc.cpp: Use BZ_STD_SCOPE macro to insert
std:: qualifier in front of string type where needed.
* blitz/funcs.h: Use BZ_STD_SCOPE macro to insert std:: qualifier
in front of string type where needed.
* blitz/indexexpr.h: Use BZ_STD_SCOPE macro to insert std::
qualifier in front of string type where needed.
* blitz/mathf2.h: Use BZ_STD_SCOPE macro to insert std:: qualifier
in front of string type where needed.
* blitz/ops.h: Use BZ_STD_SCOPE macro to insert std:: qualifier in
front of string type where needed.
* blitz/update.h: Use BZ_STD_SCOPE macro to insert std:: qualifier
in front of string type where needed.
* blitz/array/expr.h: Use BZ_STD_SCOPE macro to insert std::
qualifier in front of string type where needed.
* blitz/array/fastiter.h: Use BZ_STD_SCOPE macro to insert std::
qualifier in front of string type where needed.
* blitz/array/functorExpr.h: Use BZ_STD_SCOPE macro to insert
std:: qualifier in front of string type where needed.
* blitz/array/map.h: Use BZ_STD_SCOPE macro to insert std::
qualifier in front of string type where needed.
* blitz/array/newet-macros.h: Use BZ_STD_SCOPE macro to insert
std:: qualifier in front of string type where needed.
* blitz/array/reduce.h: Use BZ_STD_SCOPE macro to insert std::
qualifier in front of string type where needed.
* blitz/array/stencil-et.h: Use BZ_STD_SCOPE macro to insert std::
qualifier in front of string type where needed.
* blitz/array/where.h: Use BZ_STD_SCOPE macro to insert std::
qualifier in front of string type where needed.
* blitz/array/zip.h: Use BZ_STD_SCOPE macro to insert std::
qualifier in front of string type where needed.
* blitz/array/eval.cc: Use BZ_STD_SCOPE macro to insert std::
qualifier in front of string type where needed.
* blitz/array/reduce.cc: Use BZ_STD_SCOPE macro to insert std::
qualifier in front of string type where needed.

2004-03-01  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* doc/examples/Makefile.am: Added $(EXEEXT) to program names when
listed as prerequisites for .out files, so these executables get
built properly on platforms where executables do have a filename
extension.

2004-02-09  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/array/newet-macros.h: Added new macro
BZ_DECLARE_FUNCTION2_SCALAR, which allows the user to declare that
a user-defined binary function may be applied to a combination of
an Array type and the given scalar type.  This macro is intended
to be used in conjunction with either BZ_DECLARE_FUNCTION2 or
BZ_DECLARE_FUNCTION2_RET, which declare a user-defined binary
function applicable to a pair of Array types.  The arguments for
BZ_DECLARE_FUNCTION2_SCALAR are the function name and the scalar
argument type.

2004-02-05  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/array/newet-macros.h: Added space between macro argument
"sca" and closing angled bracket ">" to accommodate the use of a
scalar type that is a template, such as complex<double>.  This
eliminates errors reported by the Intel icc compiler.

2004-01-20  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/array/ops.cc: Removed inline keyword from
Array::initialize() member function, since this triggers a bug in
the gcc optimizer when repeatedly assigning a scalar to an Array
slice.
* blitz/memblock.cc: Changed argument type for member function
allocate() from int to size_t and made type usage consistent
throughout this function.

* blitz/memblock.h: Changed argument type for member function
allocate() from int to size_t to eliminate unintended type
conversion.  Also fixed internal include guard, removed external
include guards and added Emacs C++ tag.

* blitz/vector.h: Consolidated multiple versions of copy
constructor with const and non-const reference argument into a
single version to eliminate compiler warning.  Also eliminated
external include guards and added Emacs C++ tag.

2004-01-08  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* examples/prettyprint.cpp: Replaced use of obsolete macro kludge
_bz_true with ANSI C++ boolean value true.

2004-01-06  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/array/iter.h: Fixed bug in ConstPointerStack assignment
operator.

2003-12-30  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* testsuite/extract.cpp: Use new BZ_DECLARE_ARRAY_ET_SCALAR_OPS
macro to provide binary operators that combine an Array and an
RGB24 object.  This is needed here to provide the definition for
operator==.  This is an example of how to place a user-defined
concrete data type into the blitz ET system.

* testsuite/newet.cpp: Removed the final test in this testsuite
code, which was attempting to invoke a ternary functor with one of
the arguments being a scalar int.  This no longer works because
the ternary operator definition has been modified to accept only
Array-like ETBase<T> objects.  This seems like a more reasonable
behavior.  One could define ternary combinations that involve one
or two scalar objects and convert them into _bz_ArrayExprConstant
objects, but I'm not sure there is any real need for such
operators.

* blitz/array/funcs.h: Added new macro
BZ_DECLARE_ARRAY_ET_SCALAR_FUNCS that provides binary functions
for combinations of an ETBase<T> and a scalar type.  This macro is
used to provide binary funcs for Array-like objects interacting
with all the common built-in scalar types.  It can also be used to
define similar functions with a user-defined scalar type.

* blitz/array/ops.h: Added new macro
BZ_DECLARE_ARRAY_ET_SCALAR_OPS that provides binary operators for
combinations of an ETBase<T> and a scalar type.  This macro is
used to provide binary ops for Array-like objects interacting with
all the common built-in scalar types.  It can also be used to
define similar operators with a user-defined scalar type.

* blitz/array/zip.h: Renamed class _bz_ArrayExprOp to
_bz_ArrayExprBinaryOp for imporoved clarity.

* blitz/array/newet-macros.h: Renamed class _bz_ArrayExprOp to
_bz_ArrayExprBinaryOp for imporoved clarity.  Reduced the
complexity of the BZ_DECLARE_ARRAY_ET_BINARY macro.  This macro
now applies only to the combination of an ETBase<T1> and an
ETBase<T2>, so the operands must be Arrays or Array
expression-like objects.  Interactions between an ETBase<T> and a
scalar type are handled by a new macro called
BZ_DECLARE_ARRAY_ET_BINARY_SCALAR, which converts the scalar into
an expression object using the asExpr class.  The advantage of
this approach is that we have fewer combinations to handle and we
can avoid ambiguities that might arise with general function
templates.

* blitz/array/asexpr.h: Renamed class _bz_ArrayExprOp to
_bz_ArrayExprBinaryOp for imporoved clarity.  Added static method
getExpr() to asExpr class to convert the given type into the
T_expr type needed for expression evaluation.  This allows us to
reduce the number of specializations of binary operators by
treating all ETBase<T> objects in a uniform fashion.

* blitz/array/expr.h: Renamed class _bz_ArrayExprOp to
_bz_ArrayExprBinaryOp for imporoved clarity.  Some other cosmetic
changes as well.

* blitz/array/bops.cc: Regenerated blitz/array/bops.cc header
file.

* blitz/array/uops.cc: Regenerated blitz/array/uops.cc header
file.

* blitz/generate/genarruops.cpp: Renamed _bz_ArrayExprOp class to
_bz_ArrayExprBinaryOp for improved clarity.

* blitz/generate/genarrbops.cpp: Renamed _bz_ArrayExprOp class to
_bz_ArrayExprBinaryOp for improved clarity.

* blitz/array/where.h: Removed some previously commented out code.
Added Emacs C++ tag.
* blitz/array/ops.cc: Replaced static_cast of ETBase objects with
call to unwrap() member function.  Also removed external include
guards.

* blitz/array/newet-macros.h: Replaced static_cast of ETBase
objects with call to unwrap() member function.  Also added Emacs
C++ tag at top of file.

* blitz/array/functorExpr.h: Replaced static_cast of ETBase
objects with call to unwrap() member function.  Also added Emacs
C++ tag and Blitz file header at top of file.

* blitz/array/funcs.h: Replaced static_cast of ETBase objects with
call to unwrap() member function.  Also added Emacs C++ tag at top
of file and removed external include guards.

* blitz/etbase.h: Added unwrap() member function to ETBase class
that performs the static cast to produce the wrapped type.  Also
added Emacs C++ tag at top of file.

2003-12-17  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* doc/blitz.texi: Patch from Peter Bienstman to add directory info
to this file, so it can be incorporated in a global texinfo index.

2003-12-17 Patrick Guio <patrick.guio@fys.uio.no>
* doc/stencils/Makefile.am: Updated to make full use of libtool to
compile stencil generator.

2003-12-16  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* testsuite/newet.cpp: Added some testing of support for
user-defined ternary functions.

* blitz/array/Makefile.am: Removed newet-macros-old.h from
array_HEADERS list.

* blitz/array/newet-macros.h: Added macros
BZ_DECLARE_ARRAY_ET_TERNARY, BZ_DECLARE_FUNCTION3, and
BZ_DECLARE_FUNCTION3_RET to provide support for creating
user-defined ternary functions that act on Arrays.  This code was
originally provided by Navneet Dalal.  Also folded in to this file
the macros from the file newet-macros-old.h, using the old
versions only if template template arguments are not supported.  I
will be eliminating newet-macros-old.h, since it contained many
macros that were identical to the ones given here.
* blitz/array/asexpr.h: Added definition of struct template
BzTernaryExprResult, which provides the type of the result of a
ternary operator or function acting on three Arrays.

* blitz/array/expr.h: Added definition of class template
_bz_ArrayExprTernaryOp to handle ternary operators and functions
acting on blitz Arrays.  It is modeled after the where operator,
which is a very special kind of ternary operator.

2003-12-15  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/array/functorExpr.h: Added missing typename keyword (using
_bz_typename macro) in a few places where derived types were being
passed to the BZ_PROMOTE macro.

2003-12-12  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* configure.in: Patch from Theodore Papadopoulo to test for flags
needed to set the runtime library search path and to use dynamic
linking.
* acinclude.m4: Patch from Theodore Papadopoulo to provide
functions that test for flags needed to set the runtime library
search path and to use dynamic linking.
* doc/Makefile.am: Patch from Theodore Papadopoulo to fix problem
with building docs from a different directory than the source
directory.

2003-12-10  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/applics.h blitz/array-impl.h blitz/bench.cc blitz/bench.h
blitz/benchext.cc blitz/benchext.h blitz/blitz.h blitz/bzdebug.h
blitz/compiler.h blitz/etbase.h blitz/extremum.h blitz/funcs.h
blitz/indexexpr.h blitz/limits-hack.h blitz/listinit.h blitz/matbops.h
blitz/matdiag.h blitz/matexpr.h blitz/matgen.h blitz/mathf2.h
blitz/mathfunc.h blitz/matltri.h blitz/matref.h blitz/matrix.cc
blitz/matrix.h blitz/matsymm.h blitz/mattoep.h blitz/matuops.h
blitz/matutri.h blitz/memblock.cc blitz/memblock.h blitz/minmax.h
blitz/mstruct.h blitz/numinquire.h blitz/numtrait.h blitz/ops.h
blitz/prettyprint.h blitz/promote-old.h blitz/promote.h
blitz/rand-dunif.h blitz/rand-normal.h blitz/random.h blitz/randref.h
blitz/range.h blitz/reduce.h blitz/shapecheck.h blitz/tinymat.h
blitz/tinymatexpr.h blitz/tinyvec.cc blitz/tinyvec.h blitz/tinyvecio.cc
blitz/tinyveciter.h blitz/tvcross.h blitz/tvecglobs.h blitz/update.h
blitz/vecaccum.cc blitz/vecall.cc blitz/vecany.cc blitz/vecbfn.cc
blitz/vecbops.cc blitz/veccount.cc blitz/vecdelta.cc blitz/vecdot.cc
blitz/vecexpr.h blitz/vecexprwrap.h blitz/vecio.cc blitz/veciter.h
blitz/vecmax.cc blitz/vecmin.cc blitz/vecnorm.cc blitz/vecnorm1.cc
blitz/vecpick.cc blitz/vecpick.h blitz/vecpickio.cc blitz/vecpickiter.h
blitz/vecsum.cc blitz/vector.cc blitz/vector.h blitz/vecuops.cc
blitz/vecwhere.cc blitz/vecwhere.h blitz/zero.cc blitz/zero.h
blitz/array/bops.cc blitz/array/cartesian.h blitz/array/cgsolve.h
blitz/array/complex.cc blitz/array/convolve.cc blitz/array/convolve.h
blitz/array/cycle.cc blitz/array/eval.cc blitz/array/expr.h
blitz/array/fastiter.h blitz/array/funcs.h blitz/array/functorExpr.h
blitz/array/geometry.h blitz/array/indirect.h blitz/array/interlace.cc
blitz/array/io.cc blitz/array/iter.h blitz/array/map.h
blitz/array/methods.cc blitz/array/misc.cc blitz/array/multi.h
blitz/array/newet-macros-old.h blitz/array/ops.cc blitz/array/reduce.cc
blitz/array/reduce.h blitz/array/resize.cc blitz/array/slice.h
blitz/array/slicing.cc blitz/array/stencil-et.h
blitz/array/stencilops.h blitz/array/stencils.cc blitz/array/stencils.h
blitz/array/storage.h blitz/array/uops.cc blitz/array/where.h
blitz/array/zip.h blitz/generate/genmathfunc.cpp
blitz/generate/genpromote.cpp blitz/meta/dot.h blitz/meta/matassign.h
blitz/meta/matmat.h blitz/meta/matvec.h blitz/meta/metaprog.h
blitz/meta/product.h blitz/meta/sum.h blitz/meta/vecassign.h
testsuite/extract.cpp testsuite/loop1.cpp
testsuite/peter-nordlund-2.cpp testsuite/promote.cpp examples/diff.cpp
examples/pauli.cpp examples/random.cpp examples/tiny2.cpp
examples/tiny3.cpp: Patch from Theodore Papadopoulo that removes the
use of some outdated macros such as _bz_bool, _bz_true, _bz_false, and
_bz_explicit, and replaces them directly with the standard C++
keywords.  These keywords should now be implemented in virtually all
C++ compilers, and this change makes the code much more standardized
and readable.  This patch also replaces class with typename when
specifying a template argument that is a type.  I have extended the
patch to the codes in the testsuite and examples subdirectories.

2003-11-25  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/array/eval.cc: Fixed stack traversal evaluation routines
to properly handle the case of negative strides.  Simply change
comparison "i < ubound" to "i != ubound".  This fixes a bug
reported quite a while ago regarding the failure of the copy()
method when applied to a reversed Array.

2003-11-11  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/array/newet-macros-old.h: Removed the superfluous
combination of ETBase<T1> and T2.  If the first operand in a
binary function or operator is not an Array, ArrayExpr or
IndexPlaceholder, it is assumed to be a POD type.  The combination
of T1 and ETBase<T2> handles all combinations of a POD type with a
Blitz Array or Array-like type.
* blitz/array/newet-macros.h: Removed the superfluous combination
of ETBase<T1> and T2.  If the first operand in a binary function
or operator is not an Array, ArrayExpr or IndexPlaceholder, it is
assumed to be a POD type.  The combination of T1 and ETBase<T2>
handles all combinations of a POD type with a Blitz Array or
Array-like type.  Also cleaned up the file formatting.
* blitz/array/Makefile.am: Removed newbops.cc from list of array
header files for distribution.

* blitz/Makefile.am: Added config-g++3.h to list of extra files to
include in distribution.

2003-09-26 Patrick Guio <patrick.guio@fys.uio.no>
* blitz/applics.h: Added TwoOperandApplicativeTemplatesBase's
_bz_Min and _bz_Max.
* blitz/generate/genvecbfn.cpp: New file. Generate file blitz/vecbfn.cc
with support for C=min(A,B) and C=max(A,B) for TinyVectors. min(A,B) and
max(A,B) return an elementwise min/max of two TinyVectors of same length.
Comparable to STL min() and max() but rquires Blitz to be STL-compliant.
* blitz/generate/genarrbops.cpp blitz/generate/genmatbops.cpp: Generate
support for min() and max() applics.
The min() and max() are elementwise as for TinyVectors. Now available for
Array, Matrix and Vector.
* blitz/generate/Makefile.am: Added necessary stuff for the generation of
blitz/vecbfn.cc from blitz/generate/genvecbfn.
* blitz/array/ops.h blitz/array/newbops.cc: Added elementwise min() and
max() functions for the new ET for Arrays.
* blitz/vecbfn.cc blitz/array/bops.cc blitz/matbops.h:
Regenerated with support for elementwise min() and max().


2003-09-17  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* compiler/Makefile.am: Separate targets for local config.h file
and the BZ_CONFIG_H file in blitz/config.h.  The distribution
contains a default blitz/config.h file, but this should be rebuilt
when the distribution is first unpacked.
* doc/stencils/Makefile.am: Removed texinfo files from EXTRA_DIST
list, since these files are included in the distribution by the
parent directory already.
* doc/examples/Makefile.am: Removed source code files for examples
from EXTRA_DIST, since SOURCES get included in distribution
automatically.  Added a few missing files to the EXTRA_DIST list.
* doc/Makefile.am: Added files containing figures for the
documentation to the distribution.
* doc/version.texi: Updated date in version.texi file.
* Makefile.am: Added manual to list of SUBDIRS to be processed by
automake.  This is needed to include source files for the Blitz
html manual in the distribution.
* random/Makefile.am: Removed Makefile.am from list of header
files for subdirectory random.  This file is part of the
distribution but not part of the installation.
* benchmarks/Makefile.am: Comment out the compile target, so that
it is not included in distdir target.  We don't need to compile
benchmark codes in order to create a distribution.
* blitz/Makefile.am: Added file config-VS.NET2003.h to EXTRA_DIST
for inclusion in distribution.
* Makefile.am: Deleted old file config.h.in from EXTRA_DIST list
and added new files README-VS.NET and Blitz-VS.NET.zip for
inclusion in distribution.
* configure.in: Switched the optimization flag for the SGI CC
compiler back to -Ofast instead of -O3.  This setting includes the
-IPA option, which seems to make a large difference in code
performance.  Also, using the -IPA option does not seem to cause
problems when using a static libblitz.a, which is now once again
the default behavior of the configure script.  Also, bumped the
version number to 0.7 in anticipation of a new tarball
distribution.

2003-09-09  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* configure.in: Activated automake macro that disables building of
shared libraries by default.  Shared libraries support can be
turned on with the --enable-shared option.  Changed SGI compiler
default optimization flag from -Ofast to -O3 to avoid issues with
the use of interprocedural analysis (-IPA) during compilation and
linking.  Removed some defunct compiler options such as KCCdev and
the old API-specific SGI32 and SGI64 options (use --enable-64bit
instead).  Removed linking with SGI libCio.a, which should now be
obsolete.  Deleted a few unused autoconf/automake macros.
Corrected instruction message at end of script.

* blitz/vecexpr.h: Corrected a dependency problem noted by
Matthias Schillinger that was causing some test codes to fail to
compile.  This is an example of the problem with having ET support
for the Vector and TinyVector types convolved together.

2003-09-08  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/rand-mt.h: Replaced use of &S[0] syntax with call to
S.begin() to avoid issues with the return type of
std::vector<>::operator[].  Added call to reload() at the end of
the seed() function.
* blitz/tinyveciter.h: Changed from use of unsigned to int type to
avoid gcc compiler warnings about comparisons between unsigned and
signed integer types.  Extended BZPRECONDITION checks to test that
int argument value is non-negative.

2003-09-02  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/array/methods.cc: Fixed bug in code that constructs an
Array from an array expression.  The default value for the
ordering and ascending variables when there is no Array with a
defined shape in the expression is INT_MIN, not INT_MAX.
* blitz/vecuops.cc: Freshly generated vecuops.cc header with new
support for conj() function.
* blitz/generate/genvecuops.cpp: Added support for complex math
operations and added conj() to list of generated unary operations
for vector types.
* blitz/vecexpr.h: Added missing unary minus operator for
VectorPick and TinyVector types.

2003-07-22  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/array/methods.cc: Patch from Derrick Bass to correct a bug
that could lead to incorrect Array ordering data when performing
reductions.

2003-06-25  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/array/fastiter.h: FastArrayIterator now uses
ConstPointerStack helper class.
* blitz/array/iter.h: Added helper class ConstPointerStack that
manages an array of saved const data pointers used in array
iterators.  Moving the array of saved pointers into a separate
class eliminates compiler warnings about potentially unsafe
assignments between restricted and unrestricted pointers in the
same scope.  ArrayIterator and ConstArrayIterator now have
ConstPointerStack data members.
* blitz/memblock.cc: Allocate memory block using unrestricted
pointer dataBlocxkAddress_ and then assign to restricted pointer
data_ to eliminate compiler warnings about assignments between
restricted pointers.
* blitz/memblock.h: Removed restrict label from dataBlockAddress_
pointer, since only the data_ pointer is used in expression
evaluation and needs to be restricted.
* configure.in: Added -qhot to list of C++ optimization flags for
IBM xlC compiler, since it now supports higher-order transforms as
of version 6.0.

2003-06-16  Patrick Guio <patrick.guio@fys.uio.no>
* configure.in: Fixed 2 flags setting for CC/SGI.

2003-05-16  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/array/map.h: Fixed error in ascending() method reported by
Derrick Bass.  The name of the corresponding method in the Array
class is isRankStoredAscending().  This method returns a bool, but
it is treated here as an int for the purposes of doing a reduction
across operands.

2003-05-16 Patrick Guio <patrick.guio@fys.uio.no>
        * configure.in: Fixed several bugs for CC/SGI setup. Library Cio should be
included as well as -ptused.

2003-05-09 Patrick Guio <patrick.guio@fys.uio.no>
* doc/stencils/Makefile.am: Fixed lib path to be used with libtool stuff

2003-04-02 Patrick Guio <patrick.guio@fys.uio.no>
* blitz/array/resize.cc: Added the definition of the Array class member
function resize(...) with Range argument as it was declared already
present in the Array class declaration.

2003-03-31 Patrick Guio <patrick.guio@fys.uio.no>
* lib/Makefile.am: Enable required libtool library target libblitz.la since
AC_PROG_LIBTOOL is now in use.

2003-03-28 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

    * configure.in: Re-enable AC_PROG_LIBTOOL and disable AC_PROG_RANLIB
    since now libtool is used.

2003-03-28 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

    * doc/examples/Makefile.am: Added $(top_builddir) in include path
    for compilation in separate directory. Link against $(top_builddir)
    instead of $(top_srcdir) for the same reason.
    * doc/stencils/Makefile.am: Ditto.

2003-03-13  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/range.h: Corrected my silly typo.
* blitz/range.h: Modified Range::isAscendingContiguous() to return
true for the case of a Range that contains just a single element,
since this is a valid Range for constructing an Array.
2003-02-27  Patrick Guio <patrick.guio@fys.uio.no>
* blitz/array/Makefile.am: Added newet-macros-old.h in the headers
list to install.

2003-02-20  Julian Cummings  <cummings@artemis.cacr.caltech.edu>
* blitz/bzdebug.h: Added BZ_DEBUG_PARAM macro to suppress argument
name if it is only used within optional debugging code.  This will
allow us to eliminate compiler warnings about unused parameters
that occur when debugging code is disabled.  Also tidied up
formatting of some of the other macro definitions.
* blitz/array-impl.h: Use BZ_DEBUG_PARAM macro to eliminate
compiler warnings about unused parameters that appear only in
optional debugging code.
* blitz/array/expr.h: Use BZ_DEBUG_PARAM macro to eliminate
compiler warnings about unused parameters that appear only in
optional debugging code.
* blitz/array/stencils.cc: Use BZ_DEBUG_PARAM macro to eliminate
compiler warnings about unused parameters that appear only in
optional debugging code.
* blitz/array/indirect.h: Use BZ_DEBUG_PARAM macro to eliminate
compiler warnings about unused parameters that appear only in
optional debugging code.
* examples/rand2.cpp: Corrected mismatch between printf format
string and argument type.
* examples/tiny2.cpp: Include tinyvec-et.h header rather than
tinyvec.h to get ET support.
* examples/curldiv.cpp: Made some repairs to this example code so
that it properly uses stencil ops.

2003-02-14  Julian Cummings  <cummings@artemis.cacr.caltech.edu>
* testsuite/matthias-troyer-2.cpp: Uncommented line which applies
the user-defined stencil.  With the recent fixes to
blitz/array/stencilops.h, this code now works as expected.
* blitz/array/stencilops.h: Changed A to (*A) as needed in stencil
op definitions.  This is necessary because A is an iterator type,
and the conversion operator is not automatically called when
T_numtype is not a built-in type.  Also made stencil op
definitions a bit more readable and fixed a typo in backward42
multicomponent stencil.  Factorized the central difference
expressions.
* blitz/array/stencils.cc: Removed names of unused parameters in
calcStencilExtent to eliminate gcc compiler warnings.
* blitz/array/stencil-et.h: Removed name of unused parameter to
eliminate gcc compiler warning.

2003-02-07  Julian Cummings  <cummings@artemis.cacr.caltech.edu>
* blitz/indexexpr.h: Eliminated gcc compiler warnings about
explicitly initializing base class ETBase in IndexPlaceholder copy
constructor.
* blitz/array/expr.h: Removed names of some unused parameters in
_bz_ArrayExprConstant member functions to eliminate gcc compiler
warnings.  Eliminated gcc compiler warnings about explicitly
initializing base class ETBase in _bz_ArrayExpr copy constructor.
* blitz/array/reduce.h: Removed names of some unused parameters in
_bz_ArrayExprReduce member functions to eliminate warnings from
gcc compiler.
* blitz/array/map.h: Removed names of unused parameters in some
ArrayIndexMapping member functions to eliminate warnings from gcc.
* blitz/array-impl.h: Removed names of unused parameters in
slice() function to eliminate compiler warnings from gcc.
Eliminated gcc compiler warnings about explicitly initializing
base classes MemoryBlockReference and ETBase in Array copy
constructor.
* blitz/array/slicing.cc: Removed name of an unused parameter in
slice() function to eliminate a warning from gcc compiler.
* blitz/array/iter.h: Removed name of unused Array parameter when
constructing a ConstArrayIterator with a _bz_endTag specifier.
Eliminates a warning from gcc.
* blitz/benchext.cc: Changed type of some loop variables from int
to unsigned to avoid comparisons between int and unsigned
expressions.  Eliminated some unnecessary comparisons of unsigned
quantities with zero.
* blitz/benchext.h: Changed type of data members numParameters_
and parameterNumber_ from int to unsigned, since these can never
be negative.
* blitz/array/stencils.cc: Removed names of unused parameters in
function getStencilExtent() to eliminate gcc warnings.
* blitz/meta/matassign.h: Removed names of some unused parameters
in fully specialized versions of _bz_meta_matAssign::f() to
eliminate gcc warnings.
* blitz/blitz.h: Added "mutable" keyword (if available) to macro
definition for declaring a mutex object.  Need to make mutex
mutable when it is a member of a class with const member functions
that use the mutex, as is the case with the MemoryBlock class when
using threads.  This addresses a problem noted by Patrik Jonsson
<patrik@ucolick.org>.

2003-02-05 Patrick Guio <patrick.guio@fys.uio.no>
        * depcomp install-sh mkinstalldirs missing: Removed from repository
since generated running `autoreconf -v -i'.
* Makefile.am: Added a guard to avoid overwriting COPYING and INSTALL
files when running `autoreconf -v -i -f'.
* benchmarks/Makefile.am doc/Makefile.am doc/examples/Makefile.am
doc/stencils/Makefile.am examples/Makefile.am testsuite/Makefile.am:
Do not install anything from these directories except blit.info into
$prefix/info and  blitz.ps into $prefix/doc.
* config.guess config.sub: Removed from repository. Added automatically
when running `autoreconf -v -i' for recent versions of autoconf or copied
manually from the `share' directory of automake for earlier version of
autoconf.

2003-01-23 Patrick Guio <patrick.guio@fys.uio.no>
* blitz/Makefile.am blitz/generate/Makefile.am: Added dependencies
and building rule for the generated .cc and .h files.

2003-01-22  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* blitz/array/asexpr.h: Placed a guard around new
BzUnaryExprResult and BzBinaryExprResult code so it is only used
if compiler supports templates as template arguments.

2003-01-22 Patrick Guio <patrick.guio@fys.uio.no>
* doc/stencils/*.texi: Removed from repository since generated by `make'.
* doc/examples/*.{texi,out}: Likewise.
* doc/stencils/Makefile.am: Added *.texi in clean-local target
* doc/examples/Makefile.am: Added *.texi and *.out in clean-local target.
Prefix ./ to $<  in .out building rule.
* configure.in: Removed unecessary AC_PROG_MAKE_SET.
* blitz/generate/genmathfunc.cpp: Fixed the generation of a few functions:
the `isnan' function into `blitz_isnan' to avoid trouble with the macro
definition of `isnan' on some platforms like Compaq/cxx and HP/aCC,
added prettyPrint template member function for class template _bz_negate,
added condition BZ_HAVE_COMPLEX_MATH for the specialization of _bz_sqr for
complex<T>.
* blitz/generate/genmatuops.cpp: Undo blitz_isnan to isnan.
* blitz/generate/genvecuops.cpp: Undo blitz_isnan to isnan.
* blitz/generate/genmathfunc.cpp: Removed implicit conversion from string
literal to char* in `one' and `two' functions by `const' the function
prototypes.

2003-01-21  Julian Cummings  <cummings@artemis.cacr.caltech.edu>
* blitz/generate/genmathfunc.cpp: Fixed categorization and scoping
problems with fmod, ilogb and isnan.
* blitz/generate/genvecuops.cpp: Renamed blitz_isnan to isnan.
* blitz/generate/genmatuops.cpp: Renamed blitz_isnan to isnan.
* Makefile.am: Commented out references to demos subdirectory.
* doc/stencils/Makefile.am: Prefix ./ to dump-stencils command.
* blitz/generate/genarrbops.cpp: Generate bops.cc header file in
blitz/array subdirectory.
* blitz/generate/genmatbops.cpp: Generate matbops.h header file in
parent directory.
* blitz/generate/genmathfunc.cpp: Generate mathfunc.h header file
in parent directory.
* blitz/generate/genvecbops.cpp: Generate vecbops.cc header file
in parent directory.
* blitz/generate/genvecwhere.cpp: Generate vecwhere.cc header file
in parent directory.
* blitz/generate/genarruops.cpp: Generate uops.cc in blitz/array
subdirectory.
* blitz/generate/genmatuops.cpp: Generate matuops.h in parent
directory.  Added missing implementation of function two().
* blitz/generate/genvecuops.cpp: Generate vecuops.cc in parent
directory.  Added missing implementation of function two().
* blitz/generate/genpromote.cpp: Generate promote-old.h header in
parent directory.  Fixed return code.
* blitz/generate/Makefile.am: Added generate-headers target to run
programs in blitz/generate subdirectory.
* blitz/array/Makefile.am: Added genheaders target to handle blitz
headers that are generated in blitz/generate subdirectory.
* blitz/Makefile.am: Added genheaders target to handle blitz
headers that are generated in blitz/generate subdirectory.
* blitz/Makefile.am: Reorder subdirectories so that necessary
header files are generated prior to building in array
subdirectory.

2003-01-21 Patrick Guio <patrick.guio@fys.uio.no>
* doc/stencils/Makefile.am: Removed an important comment.
* doc/stencils/Makefile.in: Regenerated by "autoreconf -v" (autoconf 2.53
and automake 1.6.2).
* doc/examples/.cvsignore: Added programs.
* doc/doxygen/.cvsignore: New file.
* doc/examples/range.cpp: Fixed a bug in the initialisation of array A.
* doc/examples/range.texi: Regenerated.
* doc/blitz.info: Regenerated.

2003-01-21 Patrick Guio <patrick.guio@fys.uio.no>
* doc: New directory that should contain any form of documentation; Currently
the Texinfo documentation files were ported from the original documentation
written for the `yodl' documentation program.
* doc/blitz.info: New file. Generated by makeinfo when running make. Added
to avoid problem is makeinfo not present.
* doc/about.texi doc/arrays-stencils.texi doc/install.texi
doc/arrays-ctors.texi doc/arrays-storage.texi doc/legal.texi
doc/arrays-debug.texi doc/arrays-types.texi doc/numinquire.texi
doc/arrays-expr.texi doc/arrays-usertype.texi doc/parallel.texi
doc/arrays-globals.texi doc/blitz.texi doc/platforms.texi
doc/arrays-indirect.texi doc/compiling.texi doc/random.texi
doc/arrays-intro.texi doc/constants.texi doc/tau.texi doc/arrays-io.texi
doc/copyright.texi doc/tinymatrix.texi doc/arrays-members.texi
doc/download.texi doc/tinyvector.texi doc/arrays-multi.texi doc/faq.texi
doc/tuning.texi doc/arrays-slicing.texi doc/help.texi doc/version.texi:
New files. the Texinfo documentation files.
* doc/blitz.gif doc/sinsoid.eps doc/slice.txt doc/tensor1.gif
doc/blitztiny.jpg doc/sinsoid.gif doc/strideslice.eps doc/tensor1.txt
doc/indirect.eps doc/sinsoid.txt doc/strideslice.gif doc/indirect.gif
doc/slice.eps doc/strideslice.txt doc/indirect.txt doc/slice.gif
doc/tensor1.eps doc/indirect.fig doc/slice.fig doc/strideslice.fig
doc/tensor1.fig: New files. Pictures in different format for the
documentation.
* doc/texinfo.tex: New file. Texinfo definition file.
* doc/Makefile.am: New file.  
* doc/makedatestring doc/mdate-sh doc/Makefile.in: New files. Generated by
"autoreconf -v" (autoconf 2.53 and automake 1.6.2).
* doc/stamp-vti: New file. Date and version of the doc. Generated by
running `make stamp-vti'.
* doc/.cvsignore: New file.
* doc/stencils: New directory. Contains stencil Texinfo documentation.
* doc/stencils/backward11.texi doc/stencils/central34.texi
doc/stencils/backward12.texi doc/stencils/central42.texi
doc/stencils/backward21.texi doc/stencils/central44.texi
doc/stencils/backward22.texi doc/stencils/forward11.texi
doc/stencils/backward31.texi doc/stencils/forward12.texi
doc/stencils/backward32.texi doc/stencils/forward21.texi
doc/stencils/backward41.texi doc/stencils/forward22.texi
doc/stencils/backward42.texi doc/stencils/forward31.texi
doc/stencils/central12.texi doc/stencils/forward32.texi
doc/stencils/central14.texi doc/stencils/forward41.texi
doc/stencils/central22.texi doc/stencils/forward42.texi
doc/stencils/central24.texi doc/stencils/Laplacian2D4.texi
doc/stencils/central32.texi doc/stencils/Laplacian2D.texi: New files.  Can
be generated by making target `stencils'.
* doc/stencils/dump-stencil.cpp: New file. To generate the stencils
documentation files.
* doc/stencils/Makefile.am: New file.
* doc/stencils/Makefile.in: New file. Generated by "autoreconf -v"
(autoconf 2.53 and automake 1.6.2).
* doc/stencils/.cvsignore: New file.
* doc/examples: New directory. Contains codes and output that are included
in the documentation.
* doc/examples/cast.cpp doc/examples/output.cpp doc/examples/debug.cpp
doc/examples/range.cpp doc/examples/dump.cpp doc/examples/simple.cpp
doc/examples/fixed-class.cpp doc/examples/slicing.cpp
doc/examples/fixed.cpp doc/examples/storage.cpp doc/examples/io.cpp
doc/examples/strideslice.cpp doc/examples/outer.cpp doc/examples/xor.cpp:
New files. Code samples to be used to include in the documentation.
* doc/examples/cast.texi doc/examples/output.texi
doc/examples/debug.texi doc/examples/range.texi
doc/examples/dump.texi doc/examples/simple.texi
doc/examples/fixed-point.texi doc/examples/slicing.texi
doc/examples/fixed.texi doc/examples/storage.texi
doc/examples/io.texi doc/examples/strideslice.texi
doc/examples/outer.texi doc/examples/xor.texi: New files. Files to be
included in the documentation. Can be generated from the .cpp files by
making target `texi'.
* doc/examples/makefile.example: New file. Makefile sample to be included
in the documentation.
* doc/examples/cast.out doc/examples/outer.out
doc/examples/storage.out doc/examples/debug.out doc/examples/output.out
doc/examples/strideslice.out doc/examples/dump.out
doc/examples/range.out doc/examples/xor.out doc/examples/fixed.out
doc/examples/simple.out doc/examples/io.out doc/examples/slicing.out: New
files. Sample output to be included in the documentation. Can be generated
by making target `out'.
* doc/examples/fixed-point.h doc/examples/io.data: New files. Needed to
generate the documentation.
* doc/examples/Makefile.am: New file.
* doc/examples/Makefile.in: New file. Generated by "autoreconf -v"
(autoconf 2.53 and automake 1.6.2).
* doc/examples/.cvsignore: New file.
* doc/doxygen: New directory for doxygen documentation.
* doc/doxygen/blitz.doxygen: New file. Configuration file needed by
doxygen to generate html and latex documentations. The command is then
`doxygen blitz.doxygen'.
* configure.in: Added creation of Makefiles in doc directory in
AC_CONFIG_FILES. Updated version of Blitz in AM_INIT_AUTOMAKE.
* Makefile.am: Removed `demos' and `manual' and added `doc' in SUBDIRS.
* configure: Regenerated by `autoreconf -v'
(autoconf 2.53 and automake 1.6.2).
* Makefile.in: Likewise.

2003-01-14 Patrick Guio <patrick.guio@fys.uio.no>
* blitz/applics.h blitz/array-impl.h blitz/array-old.h blitz/array.h
blitz/bench.[cc,h] blitz/benchext.[cc,h] blitz/blitz.h blitz/bzdebug.h
blitz/compiler.h blitz/etbase.h blitz/extremum.h blitz/funcs.h
blitz/indexexpr.h blitz/limits-hack.h blitz/listinit.h blitz/matdiag.h
blitz/matexpr.h blitz/matgen.h blitz/mathf2.h blitz/matltri.h
blitz/matref.h blitz/matrix.[cc,h] blitz/matsymm.h blitz/mattoep.h
blitz/matutri.h blitz/memblock.[cc,h] blitz/minmax.h blitz/mstruct.h
blitz/numinquire.h blitz/numtrait.h blitz/ops.h blitz/prettyprint.h
blitz/promote.h blitz/rand-dunif.h blitz/rand-normal.h blitz/rand-tt800.h
blitz/rand-uniform.h blitz/random.h blitz/randref.h blitz/range.h
blitz/reduce.h blitz/shapecheck.h blitz/tau.h blitz/timer.h  blitz/tiny.h
blitz/tinymat.h blitz/tinymatexpr.h blitz/tinymatio.cc blitz/tinyvec-et.h
blitz/tinyvecio.cc blitz/tinyveciter.h blitz/traversal.cc traversal.h
blitz/tuning.h blitz/tvcross.h blitz/tvecglobs.h blitz/update.h
blitz/vecaccum.cc blitz/vecall.cc blitz/vecany.cc vecbops.cc
blitz/veccount.cc blitz/vecdelta.cc blitz/vecdot.cc blitz/vecexpr.h
blitz/vecexprwrap.h blitz/vecglobs.[cc,h] blitz/vecio.cc blitz/veciter.h
blitz/vecmax.cc blitz/vecmin.cc blitz/vecnorm.cc blitz/vecnorm1.cc
blitz/vecpick.[cc,h] blitz/vecpickio.cc blitz/vecpickiter.h
blitz/vecsum.cc blitz/vector-et.h blitz/vector.[cc,h] blitz/vecuops.cc
blitz/vecwhere.[cc,h] blitz/zero.[cc,h]: Removed the cvs log and added
them to the ChangeLog  

2003-01-13 Patrick Guio <patrick.guio@fys.uio.no>
* benchmarks/acou3df2.f benchmarks/acou3df90.f90
benchmarks/acou3df902.f90: Removed the cvs log and added them to the
ChangeLog
* random/mt.h: Likewise
* manual/examples/storage.cpp: Likewise
* manual/blitz02.html: Likewise
* compiler/bzconfig: Likewise
* examples/array.cpp examples/cast.cpp examples/deriv.cpp examples/erf.cpp
examples/fixed.cpp examples/matmult.cpp examples/numinquire.cpp
examples/outer.cpp examples/pick.cpp examples/qcd.cpp examples/rangexpr.cpp
examples/reduce.cpp examples/simple.cpp examples/slicing.cpp
examples/storage.cpp examples/tiny.cpp examples/where.cpp: Likewise
* blitz/meta/dot.h blitz/meta/matassign.h blitz/meta/matmat.h
blitz/meta/matvec.h blitz/meta/metaprog.h blitz/meta/product.h
blitz/meta/sum.h blitz/meta/vecassign.h: Likewise
* blitz/generate/bzfstream.h blitz/generate/genarrbops.cpp
* blitz/generate/genmatbops.cpp blitz/generate/genmatuops.cpp
* blitz/generate/genvecbops.cpp: Likewise
* blitz/tinyvec.[cc,h]: Likewise
* blitz/tinyvec.[cc,h]: Added a templated constructor for TinyVector that
construct from another TinyVector with the same length but a different
element type

2003-01-10 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
    * blitz/array/*.h: Removed the cvs log and added them to the ChangeLog.

2003-01-08 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
    * configure.in: Removed demos/Makefile from the generated files since this
    directory is empty for now.
    * blitz/array/asexpr.h: Introduce BzUnaryExprResult and BzBinaryExprResult
    to describe the type of an expression.
    * blitz/array/newet-macros.h: Use it here. Add a cast in
BZ_DECLARE_FUNCTION2 to avoid a warning.

2003-01-07 Patrick Guio <patrick.guio@fys.uio.no>
* Makefile.in benchmarks/Makefile.in bin/Makefile.in
blitz/array/Makefile.in blitz/generate/Makefile.in blitz/meta/Makefile.in
compiler/Makefile.in examples/Makefile.in lib/Makefile.in
manual/examples/Makefile.in manual/stencils/Makefile.in random/Makefile.in
src/Makefile.in testsuite/Makefile.in: Regenerated with "autoreconf -v"
(autoconf 2.53 and automake 1.6.2).
* configure.in: Likewise.
* blitz/generate/arroperands.h blitz/generate/genmathfunc.cpp: Added
#include <string> (as in blitz/generate/operands.h and
blitz/generate/operands2.h) that was needed for strcmp() and strlen()
functions call.
* blitz/generate/.cvsignore: Added .deps and gen* progs
* manual/examples/.cvsignore manual/stencils/.cvsignore: Added .deps
* benchmarks/Makefile.am lib/Makefile.am blitz/generate/Makefile.am:
the clean-local target should remove recursively template directories like
cxx_repository and ti_files.
* benchmarks/Makefile.in lib/Makefile.in blitz/generate/Makefile.in:
Regenerated with "autoreconf -v" (autoconf 2.53 and automake 1.6.2).
* compiler/.cvsignore benchmarks/.cvsignore blitz/generate/.cvsignore
lib/.cvsignore: Added template directory cxx_repository.

2003-01-06 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
    * configure.in: Do not substitute the variable SUBDIRS. Created
      a new old-gcc compiler option. Updated the gcc compiler option
      for modern gcc (at least >=3.1).
    * All Makefiles.am: Remove SUBDIRS where appropriate.
    * testsuite/Makefile.am, examples/Makefile.am: Use top_builddir
      instead of top_srcdir to allow building in a separate directory.
    * blitz/generate/Makefile.am: Partial rewrite to allow the build
      of the generation programs.

2003-01-06 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
    * testsuite/reduce.cpp: Bug correction.

2003-01-06 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
    * blitz/generate/*.[h,cpp]: Update to ISO C++.
    * blitz/compiler/tempkey.cpp: Update to ISO C++ (and g++-3.4).
    * blitz/array-impl.h: Partial update to ISO C++ syntax (needed for g++-3.4).
    
2002-12-21 Patrick Guio <patrick.guio@fys.uio.no>
* benchmarks/daxpy.cpp: prefer new C++ cast to old C style cast

2002-12-19  Julian Cummings  <cummings@artemis.cacr.caltech.edu>
* blitz/meta/vecassign.h: Removed names of function arguments in
the static methods of the _bz_meta_vecAssign<0,0> specialization
to eliminate compiler warnings about unused variables.
* blitz/array/eval.cc: Several changes to eliminate compiler
warnings about unused variables.
* testsuite/extract.cpp: Uncommented a couple of additional tests.
* testsuite/free.cpp: Removed an unused variable.
* blitz/range.h: Removed name of an unused function argument.
* testsuite/module1.cpp: Removed an unused variable.

2002-12-17 Patrick Guio <patrick.guio@fys.uio.no>
* benchmarks/acousticf2.f: fixed in commented test prog call to
echo_f77Tuned instead of echo_f77, duplicate echo_f77_set into echo_f77_set2
to allow independant compilation of test prog
* benchmarks/acou3df.f: Added support for test prog
* benchmarks/acou3df2.f: Added support for test prog, added explicit INTEGER
declaration for i,j,k in subroutine acoustic3d_f77Tuned_stencil
* benchmarks/acou3d.cpp: number of operations in variable Mflops corrected
from 9 (in acoustic.cpp) to 11  
* benchmarks/ctime3v.cpp benchmarks/ctime4v.cpp benchmarks/ctime5v.cpp: Added
necessary overloaded math functions for float type argument for gcc 2.95.3
* benchmarks/ctime5.cpp: replaced in macro BZ_USING_NAMESPACE

2002-12-16 Patrick Guio <patrick.guio@fys.uio.no>
* configure.in: Added as suggested by Zane Dodson <zdodson@zdodson.com>
the AM_MAINTAINER_MODE automake macro to avoid generating the rules to
rebuild these out-of-date maintainer files by default. To rebuild them run
configure with the option --enable-maintainer-mode
* aclocal.m4: Regenerated by autoreconf 2.53
* configure: Regenerated by autoreconf 2.53
* Makefile.in benchmarks/Makefile.in bin/Makefile.in blitz/Makefile.in
blitz/array/Makefile.in blitz/generate/Makefile.in blitz/meta/Makefile.in
compiler/Makefile.in examples/Makefile.in lib/Makefile.in
manual/Makefile.in manual/examples/Makefile.in manual/stencils/Makefile.in
random/Makefile.in src/Makefile.in testsuite/Makefile.in: Regenerated by
autoreconf 2.53

2002-12-12 Patrick Guio <patrick.guio@fys.uio.no>
* aclocal.m4: updated using the autoconf tool autoreconf 2.53 that is
dedicated to update generated configuration files

2002-12-10 Patrick Guio <patrick.guio@fys.uio.no>
* benchmarks/loops.data: New file. Input file for benchmarks/makeloop
* configure.in: Added flag -fno-second-underscore for GNU g77 and
fixed CXXFFLAGS for that compiler.
When using g77 and linux assume no Fortran 90 compiler  is available.
Added AM_CONDITIONAL call to allow benchmarking without Fortran 90
compiler available.
Fixed AC_CHECK_LIB(blas, ...), added extra arguments to take into account
necessary extra libs (needed for linux)
* benchmarks/Makefile.am: Added conditional compilation code using
automake conditional flag generated by AM_CONDITIONAL() in configure.in
* configure: Rebuilt with autoconf 2.53
* Makefile.in benchmarks/Makefile.in bin/Makefile.in blitz/Makefile.in
blitz/array/Makefile.in blitz/generate/Makefile.in blitz/meta/Makefile.in
compiler/Makefile.in examples/Makefile.in lib/Makefile.in
manual/Makefile.in manual/examples/Makefile.in manual/stencils/Makefile.in
random/Makefile.in src/Makefile.in testsuite/Makefile.in: Rebuilt with
automake 1.6.2
* benchmarks/makeloops.cpp: Modified to allow the generation of loops
kernel benchmark without Fortran 90 compiler available. Do not generate
makefile.inc. Generate Fortran 90 routines with .f90 extension
* benchmarks/loop?.cpp: Regenerated from makeloop program and loops.data
* benchmarks/.cvsignore: Added qcd.m and makeloops
* benchmarks/daxpy.cpp: bench conditionnaly valarray and f90 routines if
C++ header and Fortran 90 are availabel respectively
* benchmarks/qcd.cpp: use /#if/#elif/#endif/ syntax for FORTRAN_SYMBOLS
check
* benchmarks/stencil.cpp: bench conditionnaly f90 routines if Fortran 90
is available
* benchmarks/haney.cpp: bench conditionnaly valarray and f90 routines if
  C++ header and Fortran 90 are availabel respectively. Conditional
compilation added to avoid a crash with GNU g++
* benchmarks/acoustic.cpp: cosmetic changes. int cast added where necessary
to avoid warnings from g++
* benchmarks/acou3df.f: Added declaration of k as INTEGER
* benchmarks/acou3d.cpp: bench conditionnaly f90 routines if Fortran 90 is
available. Reorganised in a way similar to benchmarks/acoustic.cpp
* benchmarks/benchext.cc: Removed Blitz assert that could not be fullfiled
in template BenchmarkExt<P_parameter>::setNumParameters(int numParameters)

2002-11-26  Julian Cummings  <cummings@artemis.cacr.caltech.edu>

* benchmarks/qcdf.f: Corrected declaration of double precision
complex arrays in subroutine qcdf.  Use type complex*16 and make
site number the final (slowest varying) dimension.

Fri Oct 25 10:56:21 CEST 2002 Patrick Guio <patrick.guio@fys.uio.no>
* configure.in: fixed Fortran compiler message for linux
* configure: Rebuilt with autoconf 2.53

2002-10-17 Julian Cummings  <cummings@artemis.cacr.caltech.edu>
* benchmarks/acou3df2.f: Removed some extraneous semicolons that were
inhibiting compilation of these Fortran sources with some compilers.

2002-10-09 Patrick Guio <patrick.guio@fys.uio.no>
* src/Makefile.am: Moved library target libblitz.a into lib directory
to avoid unecessary and not so clean target like making a copy into lib
directory
* src/Makefile.in: Rebuilt with automake 1.6.2
* lib/Makefile.am: Added library target libblitz.a
* lib/Makefile.in: Rebuilt with automake 1.6.2
* Makefile.am: Modified src targets into lib where necessary
* Makefile.in: Rebuilt with automake 1.6.2

2002-09-19  Julian Cummings  <cummings@artemis.cacr.caltech.edu>
* testsuite/Adnene-Ben-Abdallah-2.cpp: Skip part of this test when
using IBM xlC compiler, since it can't handle it.
* testsuite/extract.cpp: Added workaround for IBM xlC compiler
bug.
* compiler/ieeemath.cpp: Commented out unused variable.  Added
test to skip over testing of lgamma() function if building on AIX
platform in threaded mode.  This test causes a failure in this
case because the lgamma function has a slightly different
interface in thread-safe mode on AIX.
* src/Makefile.am: Added explicit command for building libblitz.a
that utilizes $AR_FLAGS.
* src/Makefile.in: Regenerated from Makefile.am using automake.
* configure.in: Cleaned up some of the settings of compiler flags
and added use of the C++ compiler as the archiver for KCC and SGI
CC.  Added new --enable-64bit option to trigger 64-bit
configuration and builds.  This currently works for the SGI and
IBM platforms with the native compilers or with KCC or gcc.  Note:
I have left the old SGI64 and SGI32 compiler options in for now,
but there is also a new plain old SGI option that will build with
the default ABI.  Using the --enable-64bit option should then
force 64-bit compiles.
* configure: Regenerated from configure.in using autoconf.
* blitz/array/fastiter.h: Removed meaningless restrict qualifier
inside const_cast that generates compiler warnings under SGI and
KCC compilers.

2002-09-05  Julian Cummings  <cummings@artemis.cacr.caltech.edu>
* configure: Regenerated from configure.in using autoconf.
* configure.in: Added flag -qrtti=all when using IBM's xlC
compiler to enable RTTI support.

2002-08-30  Julian Cummings  <cummings@artemis.cacr.caltech.edu>
* testsuite/storage.cpp: Modified construction of one Array to
test new setStorage() method.
* blitz/array/methods.cc: Added definition of setStorage() method,
which lets user set Array storage format after construction.  We
check that Array is not allocated first.
* blitz/array-impl.h: Added declaration of setStorage() method,
which lets user set Array storage format after construction.
* blitz/array/storage.h: Added explicit assignment operator for
GeneralArrayStorage class.

2002-07-24 Patrick Guio <patrick.guio@fys.uio.no>
* configure.in: Removed occurences of -DBZ_DISABLE_XOPEN_SOURCE, this is
the default and changed to -DBZ_ENABLE_XOPEN_SOURCE for DECcxx6.2 and
DECcxx6.3 required for scoping of ilogb.
* configure: Rebuilt from configure.in using autoconf 2.53
* all Makefile.in: Rebuilt from Makefile.am using automake 1.6.2

2002-07-23  Julian Cummings  <cummings@artemis.cacr.caltech.edu>
* blitz/array/functorExpr.h: Changed _bz_FunctorExpr classes to
store user-defined functor by value rather than by const
reference.  This fixes a problem under certain compilers with the
state of the user-defined functor being corrupted prior to
evaluation of the Array expression.  Also, cleaned up remnants
from previous use of Blitz minmax function.
* blitz/array/expr.h: Added a four-argument templated constructor
for _bz_ArrayExpr, which is needed when building an Array
expression containing a functor that takes three arguments.  This
is needed to support functorExpr.h, which allows functors with up
to three arguments.
* testsuite/newet.cpp: Changed expressions used in final test to
ensure that two-argument pow() function is called with first
argument being non-negative.  Otherwise, the results of the
function call are undefined.

2002-07-19  Julian Cummings  <cummings@artemis.cacr.caltech.edu>
* blitz/blitz.h: Put ending semicolon into definition of
BZ_MUTEX_* macros so that you don't need to add a semicolon after
invoking the macro.
* blitz/memblock.h: Removed ending semicolon after invocations of
BZ_MUTEX_* macros.  This is now handled within the definition of
these macros.  This should get rid of compiler warnings from SGI
CC and others about extra semicolons being ignored, which happened
when these macros were defined as blank.

2002-07-19 Patrick Guio <patrick.guio@fys.uio.no>
* blitz/mathfunc.h: Added missing template member function prettyPrint
in template class _bz_negate (HP aCC complained during library
compilation).
* blitz/array/functorExpr.h: minmax::max(a,b) replaced by (a>b?a:b) due to
namespacing trouble with HP/aCC

2002-07-17  Julian Cummings  <cummings@artemis.cacr.caltech.edu>
* blitz/memblock.h: Added missing semicolon after use of
BZ_MUTEX_DECLARE macro.

2002-07-16  Julian Cummings  <cummings@artemis.cacr.caltech.edu>
* Makefile.am: Added line to specify subdirectories and insure
that compiler subdirectory is visited before blitz subdirectory.
This is necessary because the compiler subdirectory generates the
config.h header file needed in blitz subdirectory.
* Makefile.in: Rebuilt from Makefile.am.
* configure: Rebuilt from configure.in.  Includes changes to IBM
xlf90 flags.
* aclocal.m4: Rebuilt using aclocal 1.6.2.
* blitz/Makefile.am: Added config.h to blitz_HEADERS list and
removed all the compiler-specific config files.  These
compiler-specific files should no longer be needed because we
normally generate the config.h file automatically.  Moved the
compiler-specific headers to the EXTRA_DIST list so they will
still be included in the distribution tarball.
* blitz/Makefile.in: Rebuilt from Makefile.am.
* blitz/array/funcs.h: Removed ET support for Array expressions
involving ldexp(), jn() and yn() functions.  These functions
require specialized macros that allow one of the function
arguments to be an ordinary int.  Such macros have not yet been
added to <blitz/funcs.h>.

2002-07-02  Julian Cummings  <cummings@artemis.cacr.caltech.edu>
* examples/cast.cpp: Added check for use of new-style expression
templates.  I changed the syntax for casting the type of a blitz
Array to make it simpler.  Instead of giving a second argument
that is an instance of the new element type, just provide the new
element type as a template parameter.
* examples/array.cpp examples/deriv.cpp examples/erf.cpp examples/fixed.cpp
examples/matmult.cpp examples/outer.cpp examples/pick.cpp examples/qcd.cpp
examples/rangexpr.cpp examples/reduce.cpp examples/simple.cpp
examples/slicing.cpp examples/storage.cpp examples/tiny.cpp
examples/where.cpp: Updated to use new header file names that avoid
capitalization.
* testsuite/newet.cpp: Added testing of functorExpr.h header file,
which provides support for declaring user-defined functors and
class methods that act on Array types.  The code for this support
originated from Derrick Bass of Caltech.
* testsuite/tinyvec.cpp: Include blitz/tinyvec-et.h here to get ET
support.
* blitz/vecexpr.h: Undid the previous change to this file.  Vector
ET support is now gotten by including blitz/vector-et.h
explicitly.
* blitz/promote.h: Added BZ_BLITZ_SCOPE to promote_trait in
BZ_PROMOTE macro definition so that this macro works correctly
outside the blitz namespace.
* blitz/Makefile.am: Removed Array.h, Vector.h, TinyVec.h and
TinyMat.h from blitz_HEADERS.  Added array-old.h, vector-et.h
tinyvec-et.h and funcs.h.
* blitz/Makefile.in: Rebuilt from Makefile.am to update
blitz_HEADERS.
* blitz/tinyvec-et.h: This is the new name for the TinyVec.h file, which
includes the TinyVector class implementation and ET support using the old
style expression templates.
* blitz/array.h: This file used to be called Array.h but has been
renamed to avoid name clashes on Windows-based systems.  This file
includes only the Array class implementation files.
* blitz/array-old.h: This is the new name for the old array.h header file
that included all of the Array, TinyVector and Vector stuff along with
Vector ET support. It is now deprecated.
* blitz/array/newet-macros.h: Renamed and reorganized new style
macros for declaring unary and binary functions/operators that act
on Array types.
* blitz/array/newet.h: Added #include of blitz/array/functorExpr.h
to support user-defined functors and class methods acting on Array
types.
* blitz/array/funcs.h: Use new style of Array ET macros to declare
unary and binary math functions that act on Array types.
* blitz/array/ops.h: Use new style of Array ET macros to create
unary and binary operators that act on Array types.
* blitz/ops.h: Rewrote and reorganized this file to make better
use of macros to generate all the functor classes needed to
provide unary and binary operators for the "new" style of
expression templates.
* blitz/array/Makefile.am: Added functorExpr.h to list of
array_HEADERS.
* blitz/array/Makefile.in: Rebuilt from Makefile.am to include new
header file.

2002-06-28  Julian Cummings  <cummings@artemis.cacr.caltech.edu>
* blitz/mathfunc.h: Corrected categorization of fmod and ilogb
math functions.
* blitz/vecuops.cc: Freshly generated from genvecuops.cpp.
Changed BZ_HAVE_SYSV_MATH to BZ_HAVE_SYSTEM_V_MATH to match what
is in config.h and elsewhere.  Corrected categorization of a few
math functions.  Otherwise, no changes.
* blitz/matuops.h: Freshly generated matuops.h header file with
definitions for unary math functions operating on Matrix types.
This file was previously empty.  I followed a style similar to
that of vecuops.
* blitz/matbops.h: Rebuilt from latest genmatbops.cpp.  Same
content as before with slightly different formatting.  Also,
binary combinations with complex<T> are now handled with a single
templated ComplexOperand type as with vecbops.
* blitz/generate: Added support for generating matuops.h header
file borrowing heavily from the existing genvecuops code.  Also
made a few corrections in categorization of math functions.
* configure.in: Added -qstrict flag to F77 and F90 optimization
flags on AIX platforms to avoid optimizations that might alter the
code semantics, as suggested by the compiler.  Added flag for
xlf90 compiler to allow f90 file suffix.
* config.guess: Undo previous change to this script regarding use
of oslevel script on AIX.  This was a mistake based on an error in
my environment variable settings.

2002-06-27  Julian Cummings  <cummings@artemis.cacr.caltech.edu>
* compiler/sysvmath.cpp: Removed ilogb() and fmod() from this
test.  ilogb() is now in the IEEE math test and fmod() should be
in the standard C math library.
* compiler/ieeemath.cpp: Added tests for cbrt() and ilogb() here.
* compiler/getruse.cpp: Added code to check if getrusage() is
available.
* blitz/benchext.cc: Changed loop variable j to unsigned to
eliminate signed/unsigned comparisons.
* testsuite/complex-test.cpp: Added some explicit casts to float
to eliminate precision loss warnings from implicit conversions of
double to float.  Changed abs() to fabs() for floating-point
arguments.  abs() is for ints or complex numbers, while fabs() is
for floating-point numbers.
* testsuite/chris-jeffery-1.cpp: Slight change to eliminate
precision loss warning from double/float conversion.
* blitz/array/storage.h: Use _bz_bool and _bz_true where
appropriate to avoid int/bool conversions.
* blitz/array/fastiter.h: Changed order of ctor initializers to
match order of member data declarations, eliminating warning from
gcc compiler.
* blitz/array/slicing.cc: Modified valid indexing check to avoid
casting to unsigned.
* blitz/shapecheck.h: Changed loop variable i to unsigned to avoid
unsigned/signed comparisons.
* blitz/array-impl.h: Modified the isInRange() methods to check
that each index value is greater than or equal to the base index
value, rather than just casting (index-base) to an unsigned int.
The latter gives unpredictable results if index<base and produces
compiler warnings about comparisons between unsigned and signed
quantities.
* blitz/tinyvec.h: Changed return type of lengthCheck() method
from int to _bz_bool.
* testsuite/extract.cpp: Undid previous change and went back to
using static const int data members instead of enums for red,
green and blue.  These have to be actual ints, or else the Array
operator[] does not work properly.  Need to investigate further
the link-time error that occurs with this test code when using
xlC.

2002-06-26  Julian Cummings  <cummings@artemis.cacr.caltech.edu>
* configure: Rebuilt from configure.in.
* configure.in: Moved package and version arguments back to
AM_INIT_AUTOMAKE macro call.  The new style suggested in the
automake documentation doesn't seem to work right when the tarball
name contains uppercase letters and is not trivially derived from
the package name.
* configure.in: Added section to handle xlC as a valid C++
compiler option.  Moved package name and version number arguments
to AC_INIT macro.  Moved AC_CANONICAL_TARGET macro call higher up
in file to eliminate autoconf warning.
* config.guess: Commented out use of oslevel command on AIX
platform to get OS version and release info, since it does not
always seem to report the right thing and can send confusing
output to config.sub.
* examples/Makefile.in: Rebuilt from examples/Makefile.am.
* examples/Makefile.am: Added profile.cpp, tiny2.cpp and tiny3.cpp
to EXTRA_DIST, so that these files will be included in the
distribution tarball.  This is necessary because these files are
not include in SOURCES and are not normally compiled.
* testsuite/extract.cpp: Changed members red, green and blue of
class RGB24 from static const int's to enumerators in order to
avoid a link-time error with xlC compiler.
* blitz/tinyvec.h: Changed P_numtype to T_numtype inside class
definition consistently.
* blitz/array-impl.h: Changed template parameter name T_numtype2
to P_numtype2 in member function template declarataions for
consistency with definitions and to avoid any confusion with
typedef T_numtype.
* blitz/array/slicing.cc: Changed T_numtype to P_numtype when used
outside the argument list or body of a member function definition
(i.e., outside the class scope).  Inside the class scope, we can
use the typedef T_numtype.  The IBM xlC compiler gets confused if
P_numtype is used as a template parameter name in a member
function declaration and then T_numtype is used as the parameter
name in the member function definition.  Fixed usage to be more
consistent.
* blitz/array/methods.cc: Likewise.
* blitz/array/ops.cc: Likewise.
* blitz/tinyvec.cc: Likewise.
* blitz/array/et.h: Added #include of blitz/array/misc.cc if not
using new expression templates.
* blitz/array-impl.h: Explicitly specify second template argument
for ListInitializationSwitch, rather than relying on the default
value.  This eliminates a compilation problem using the xlC
compiler.  Also removed #include of misc.cc, which is now handled
in blitz/array/et.h.
* blitz/tinymat.h: Likewise.
* blitz/tinyvec.h: Likewise.

2002-05-27  Julian Cummings  <cummings@tis-sa-ack.cacr.caltech.edu>
* blitz/array-impl.h: Removed use of this-> as means of accessing
members of templated base class.  Instead provided using
declarations for these members within the derived class
definitions to bring them into the scope of the derived class.
* blitz/array/slicing.cc: Likewise.
* blitz/array/eval.cc: Likewise.
* blitz/array/methods.cc: Likewise.
* blitz/array/storage.h: Likewise.
* blitz/array/stencil-et.h: Likewise.
* blitz/array/iter.h: Likewise.
* blitz/matrix.cc: Likewise.
* blitz/vector.cc: Likewise.
* blitz/memblock.h: Likewise. Changed this->addReference() to
MemoryBlock<P_type>::addReference(). Use base class name as scoping
qualifier rather than "this" pointer.
* blitz/matrix.h: Likewise.
* blitz/vector.h: Likewise.

2002-05-24 Patrick Guio <patrick.guio@fys.uio.no>
* INSTALL: Added instruction for cvs repository installation in case a
problem should occur with the build system.
* configure.in: Removed some unecessary check
* configure: Regenerated with autoconf 2.53, automake 1.6.1, libtool 1.4.2
* every Makefile.in: Likewise

2002-05-23 Patrick Guio <patrick.guio@fys.uio.no>
* configure.in: Added support for ranlib on SGI that failed and a few
other tests. The variable RANLIB is set to "ar ts" for SGI as well as for
DECcxx.
* blitz/Makefile.am: Added tinymatio.cc in the blitz_HEADERS variable
* configure: Regenerated with autoconf 2.53, automake 1.6.1, libtool 1.4.2
* every Makefile.in: Likewise

2002-05-22  Julian Cummings  <cummings@artemis.cacr.caltech.edu>
* blitz/array/eval.cc: Fixed bug in
Array::evaluateWithIndexTraversal1() by removing cast of second
argument to T_numtype in call to T_update::update().  This cast
will occur automatically when the update operation is performed.
This fixes a problem reported by Masahiro Tatsumi
<tatsumi@nfi.co.jp> in which one could not assign a double to an
Array of TinyVectors of double without explicitly constructing a
TinyVector of doubles on the right-hand side.  Also fixed an
unused variable warning emanating from the function
Array::evaluateWithFastTraversal() by moving the definition of
local variable "last" so that it is only seen if it is used.
* blitz/tinymatio.cc: New file (I/O operations for blitz TinyMatrix)
* blitz/tinymat.h: Added #include of <blitz/tinymatio.cc>

2002-05-10 Patrick Guio <patrick.guio@fys.uio.no>
* blitz/randref.h: private constructor for template class _bz_VecExprRandom
did not had an explicit initialiser for the private member random_, added
it.
Compaq C++ V6.5-014 for Compaq Tru64 UNIX V5.1A (Rev. 1885) complained
about this.
* blitz/array/map.h: Likewise for template class ArrayIndexMapping

2002-05-08 Patrick Guio <patrick.guio@fys.uio.no>
* configure.in: Regenerated by running the command autoupdate from
autoconf 2.53
* configure: Regenerated by running the command autoreconf --force --install
with autoconf 2.53, automake 1.6.1, libtool 1.4.2
* COPYING: Likewise
* Makefile.in: Likewise
* benchmarks/Makefile.in: Likewise
* bin/Makefile.in: Likewise
* blitz/Makefile.in: Likewise
* blitz/array/Makefile.in: Likewise
* blitz/generate/Makefile.in: Likewise
* blitz/meta/Makefile.in: Likewise
* compiler/Makefile.in: Likewise
* examples/Makefile.in: Likewise
* lib/Makefile.in: Likewise
* manual/Makefile.in: Likewise
* manual/examples/Makefile.in: Likewise
* manual/stencils/Makefile.in: Likewise
* random/Makefile.in: Likewise
* src/Makefile.in: Likewise
* testsuite/Makefile.in: Likewise
* aclocal.m4: Likewise
* install-sh: Likewise
* missing: Likewise
* mkinstalldirs: Likewise
* depcomp: New file generated by running autoreconf --force --install
with autoconf 2.53, automake 1.6.1, libtool 1.4.2
* config.guess: imported from automake 1.6.1
* config.sub: Likewise
* benchmarks/Makefile.am: Removed target 'compile' that caused trouble when
'make dist'
* benchmarks/Makefile.in: Regenerated with automake
* examples/Makefile.am: Removed targes 'compile' and 'all' that caused
trouble when 'make dist'
* examples/Makefile.in: Regenerated with automake

2002-04-17 Patrick Guio <patrick.guio@fys.uio.no>
* blitz/array/stencil-et.h: replaced T_numtype with P_numtype in
every macros definitions. Fixed a compilation problem with aCC/HP
in the stencils examples (stencils2.cpp, stencil3.cpp, stencilet.cpp)
in the directory examples.
Suggested by Robert W. Techentin <techentin.robert@mayo.edu>

2002-03-21 Patrick Guio <patrick.guio@fys.uio.no>
* examples/io.cpp: Added #ifdef BZ_HAVE_STD for #include <fstream>
* examples/polymorph.cpp: corrected polymorph container declaration
Array<Material&,1> by Array<Material*,1>
* examples/prettyprint.cpp: Removed unecessary #include <iostream.h>
* examples/rand2.cpp: Likewise
* examples/rand2.cpp: Added return 0; to function int main2()
* examples/tiny3.cpp: fixed typo #include <blitz/TinyMath.> into
#include <blitz/TinyMat.h>
* examples/Makefile.{am,in}: Removed targets tiny2.cpp (no int main()),
tiny3.cpp (no int main()) and profile.cpp (requires tau profiling)
* array/stencil-et.h: replaced iter_ by this->iter_ in derived template
classes of StencilExpr template class

2002-03-07 Patrick Guio <patrick.guio@fys.uio.no>
* configure.in: f90 optimisation flag set to O3 for platform *hp-hpux*
* blitz/array/io.cc: cosmetic change
* blitz/traversal.h: moved
template<int N_dimensions>
_bz_typename TraversalOrderCollection<N_dimensions>::T_set
    TraversalOrderCollection<N_dimensions>::traversals_;
after the declaration of
template<int N_dimensions> class TraversalOrderCollection
* TODO: New file
* blitz/array/expr.h:
line 124
#ifdef BZ_NEW_EXPRESSION_TEMPLATES replaced by
#if defined(BZ_NEW_EXPRESSION_TEMPLATES) && ! defined(__MWERKS__)
line 134 added
#if !defined(__MWERKS__)
#endif
as suggested by Xavier Warin <xavier.warin@der.edfgdf.fr>
for Metrowerks code warrior compiler
* random/mt.h: fixed use of STL iterator as suggested by
Julian Cummings <cummings@cacr.caltech.edu> and
Osamu Ogasawara <oogasawa@ims.u-tokyo.ac.jp>
* blitz/config-mwerks.h: New file, configuration file for Metrowerks code
warrior compiler proposed by Xavier Warin <xavier.warin@der.edfgdf.fr>
* INSTALL: updated with the new make targets
* Makefile.am (in each directory): fixed a bug for the target dist
* configure.in: Added support for Intel icf (Fortran 90 compiler) when
target is *linux* and CXX is Intel icc
* benchmarks/Makefile: Added work.pc* in clean target, these files are
generated when running Intel Fortran 90 compiler ifc
* benchmarks/plot_benchmarks.m.in: New file to generate m-file
benchmarks/plot_benchmarks.m to plot benchmarks results
* configure.in: Added benchmarks/plot_benchmarks.m to be generated from
benchmarks/plot_benchmarks.m.in
* configure.in: output correctly the available DEC (actually now Compaq:-)
compilers
* INSTALL: Likewise

2002-03-06 Patrick Guio <patrick.guio@fys.uio.no>
* ChangeLog: New file.
* testsuite/mattias-lindstroem-1: Removed (executable)
* configure.in: updated with autoupdate (GNU autoconf) 2.49c, added support
for HP-UX aCC and Intel icc.
* aclocal.m4: renamed to acinclude.m4. It contains the *_BZ_* declarations
* acinclude.m4: New file generated by running aclocal (GNU automake) 1.4a
* Makefile.am (in each directory): New files (to generate a Makefile.in with
automake)
* bin/Makefile.in, blitz/Makefile.in, blitz/array/Makefile.in,
* blitz/generate/Makefile.in, blitz/meta/Makefile.in, lib/Makefile.in,
* manual/Makefile.in, manual/examples/Makefile.in,
* manual/stencils/Makefile.in, random/Makefile.in,: New files generated
from Makefile.am generated by running automake (GNU automake) 1.4a
* .cvsignore (in each directory): New files
* missing: New file generated when running the script autoconf -a -c -i
(GNU autoconf) 2.49c
* mkinstalldirs: Likewise
* config.guess: updated from automake 1.4a
* config.sub: Likewise
* GPL: renamed to COPYING according to GNU standard
* AUTHORS, COPYING, NEWS: New files to follow the GNU standard
* benchmarks/*f90.f: renamed to benchmarks/*f90.f90
* examples/complex.cpp: renamed to examples/complex-test.cpp
* testsuite/complex.cpp: renamed to testsuite/complex-test.cpp due to
interference with #include<complex>
* Makefile.in, aclocal.m4, configure, benchmarks/Makefile.in,
bin/Makefile.in, blitz/Makefile.in, blitz/array/Makefile.in,
blitz/generate/Makefile.in, blitz/meta/Makefile.in, compiler/Makefile.in,
demos/Makefile.in, examples/Makefile.in, lib/Makefile.in,
manual/Makefile.in, manual/examples/Makefile.in,
manual/stencils/Makefile.in, random/Makefile.in, src/Makefile.in,
testsuite/Makefile.in: Regenerated files from Makefile.am generated by
running automake (GNU automake) 1.4a
* manual/examples/Makefile, manual/stencils/Makefile: Removed, now generated
by configure
* CHANGELOG: renamed to ChangeLog.1
* manual/examples/*.out: renamed to manual/examples/*.log due to
interference with automake
* compiler/elabbase.cpp: bar() replaced by this->bar() in zowee() const for
ANSI C++ correctness (14.6.2(3) in the C++ Standard)
* src/globals.cpp: char* _blitz_id replaced by char _blitz_id[]
* random/uniform.h: irng_.random() replaced by this->irng_.random()
everywhere for ANSI C++ correctness (14.6.2(3) in the C++ Standard)
* random/discrete-uniform.h: Likewise
* random/normal.h: getUniform() replaced by this->getUniform()
* blitz/array-impl.h: data_ replaced by this->data_ everywhere,
changeToNullBlock() replaced by this->changeToNullBlock(),
class _bz_endTag replaced by struct _bz_endTag { } declaration
* blitz/array/resize.cc: for (d=0; d < N_rank; ++d) replaced by for (int
d=0; d < N_rank; ++d) (for scoping)
* blitz/array/iter.h:
data_ replaced by this->data_ in
template<class T, int N>
class ArrayIterator : public ConstArrayIterator<T,N> {},
removed struct _bz_endTag { }; declaration
* blitz/array/io.cc: Added typename (_bz_typename) qualifier to the
iterator and const_iterator of Array<T_numtype,N_rank>
* blitz/ops.h: `os' replaced by `str' in the BitwiseNot template
* blitz/vector.h: data_ replaced by this->data_ everywhere
* blitz/array/slicing.cc: Likewise
* blitz/array/eval.cc: Likewise
* blitz/array/methods.cc: data_ replaced by this->data_ everywhere
numReferences() replaced by this->numReferences()
* blitz/vector.cc: data_ replaced by this->data_ everywhere,
numReferences() by this->numReferences()
* blitz/matrix.cc: data_ replaced by this->data_
* blitz/matrix.h: Likewise everywhere
* blitz/promote.h: typename replaced by _bz_typename
* blitz/array/reduce.cc: TinyVector<int,rank> replaced by
TinyVector<int,T_expr::rank>
* blitz/array/storage.h: in
template<int N_rank>
class FortranArray : public GeneralArrayStorage<N_rank> {} and
template<int N_rank>
class ColumnMajorArray : public GeneralArrayStorage<N_rank> {}
ordering_, ascendingFlag_, base_ replaced by this->ordering_,
this->ascendingFlag_, this->base_
noInitializeFlag() replaced by
GeneralArrayStorage<N_rank>::noInitializeFlag()
* blitz/array/where.h: minmax::max(minmax::max(stride1,stride2),stride3)
replaced by
stride1>(stride2=(stride2>stride3?stride2:stride3))?stride1:stride2
* blitz/transversal.cc, blitz/transversal.h: template declaration
template<int N_dimensions>
_bz_typename TraversalOrderCollection<N_dimensions>::T_set
    TraversalOrderCollection<N_dimensions>::traversals_;
in blitz/transversal.cc moved before template specialisation
template<>
class TraversalOrderCollection<0> {}
in blitz/transversal.h
* blitz/array/fastiter.h: for BZ_HAVE_STD only
#include <strstream> replaced by #include <sstream>
ostrstream ostr replaced by ostringstream ostr
* testsuite/matthias-troyer-1.cpp, testsuite/matthias-troyer-2.cpp:
Removed unnecessary includes for iostream.h and complex.h
* examples/cfd.cpp: Added #ifdef BZ_HAVE_STD for #include <fstream>
* examples/haney.cpp: Likewise for #include<valarray>
* blitz/vecexpr.h: (re)inserted includes for vecbops, vecuops and vecbfn
in order to compile testsuite/tinyvec.cpp
* benchmarks/ct.cpp: Removed (output of g++ -E)
* benchmarks/acou3db4.cpp: corrected typo in
#include <blitz/array/stencil.h>, should be
#include <blitz/array/stencils.h>
* benchmarks/acou3d.cpp: Added #include <blitz/traversal.h> for call to
generateFastTraversalOrder function
* benchmarks/stencil.cpp: Likewise
* blitz/memblock.h: In the constructor
MemoryBlock(size_t length, T_type* _bz_restrict data)
dataBlockAddress_ = data replaced by dataBlockAddress_ = 0
as it was before. (testsuite/extract does not crash then)
* testsuite/matthias-troyer-2.cpp: changed the statement
A = exp(c * (sqr(i-midpoint) + sqr(j-midpoint) + sqr(k-midpoint)));
by
A = zip( exp(c * (sqr(i-midpoint) + sqr(j-midpoint) + sqr(k-midpoint))),
0.0, complex<double>());
Still a problem with the complex stencil, right now the statement
applyStencil(kinEnergy(),A,B); is commented

2002-02-28 tveldhui
* blitz/memblock.h: Fixed extra semicolon problem with KCC.

2001-02-22 tveldhui
* manual/blitz02.html: Fixed minor bug in docs.

2001-02-15 tveldhui
* blitz/array-impl.h: Fixed typo.
* blitz/blitz.h: Fixed problem with BZ_THREADSAFE macros.

2001-02-11 tveldhui
* blitz/array-impl.h: Fixed prototype typos
* blitz/blitz.h: Fixed minor typo.

2001-02-11 Julian Cummings
    * blitz/array/domain.h, blitz/array/slicing.cc: Added StridedDomain class
and more versions of resizeAndPreserve.

2001-02-04 tveldhui
* blitz/blitz.h blitz/memblock.h: Made memory block reference counting
(optionally) threadsafe when BZ_THREADSAFE is defined.  Currently uses
pthread mutex.  When compiling with gcc -pthread, _REENTRANT automatically
causes BZ_THREADSAFE to be enabled.

2001-01-26 tveldhui
    * blitz/array/eval.cc blitz/array/methods.cc blitz/Array.h
examples/array.cpp blitz/benchext.cc blitz/range.h blitz/TinyVec.h
blitz/tuning.h: More source code reorganization to reduce compile times.
    * blitz/array/stencils.cc: Incorporated 1D stencil fix from Derrick Bass.
    * blitz/array/funcs.h, blitz/arrayuops.cc: Changed isnan to blitz_isnan,
to avoid conflicts with implementations that define isnan as a
preprocessor macro.
* random/mt.h: Incorporated changes from Max Domeika for STL
compatibility.
* examples/cast.cpp examples/deriv.cpp examples/erf.cpp examples/fixed.cpp
examples/matmult.cpp examples/outer.cpp examples/pick.cpp
examples/qcd.cpp examples/rangexpr.cpp examples/reduce.cpp
examples/simple.cpp examples/slicing.cpp examples/storage.cpp
examples/tiny.cpp examples/where.cpp: More source code reorganization
to reduce compile times.
* blitz/meta/metaprog.h: Updated docs to reflect isnan -> blitz_isnan
change
* blitz/meta/sum.h: Fixed bug found by Masahiro TATSUMI

2001-01-25 tveldhui
    * blitz/array/asexpr.h blitz/array/cartesian.h blitz/array/cgsolve.h
blitz/array/convolve.h blitz/array/domain.h blitz/array/et.h
blitz/array/funcs.h blitz/array/geometry.h blitz/array/indirect.h
blitz/array/multi.h blitz/array/newet-macros.h blitz/array/newet.h
    blitz/array/ops.h blitz/array/stencil-et.h blitz/array/stencilops.h
blitz/array/stencils.h blitz/array/storage.h blitz/array/where.h
blitz/array/zip.h blitz/array/complex.cc blitz/array/convolve.cc
blitz/array/cycle.cc blitz/array/io.cc blitz/array/misc.cc
blitz/array/newbops.cc blitz/array/ops.cc blitz/array/reduce.cc
blitz/array/resize.cc blitz/array/slicing.cc blitz/array/stencils.cc
blitz/tinyvec.cc blitz/etbase.h blitz/limits-hack.h blitz/mathf2.h
blitz/minmax.h blitz/traversal.cc: Ensured that source files have cvs logs.

2001-01-24 tveldhui
    * Updated copyright date in headers.
* blitz/array/methods.cc examples/array.cpp examples/cast.cpp
examples/deriv.cpp examples/fixed.cpp examples/simple.cpp: Widespread
changes to reduce compile time. For backwards compatibility,
#include <blitz/array.h> enables BZ_GANG_INCLUDE mode which includes
all array and vector functionality (about 120000 lines of code).  
#include <blitz/Array.h> includes a minimal subset of Array functionality;
other features must be included explicitly.
    * blitz/array/eval.cc blitz/Array.h blitz/blitz.h blitz/TinyVec.h
blitz/vecexpr.h blitz/vector.h: Reorganized #include orders to avoid
including the huge Vector e.t. implementation when using Array.

2000-06-19 tveldhui
* manual/examples/storage.cpp: Initial source check-in; added files not
usually released in the distribution.
* manual/blitz02.html: Likewise
* blitz/generate/genarrbops.cpp blitz/generate/genvecbops.cpp: Initial
source check-in; added files not usually released in thedistribution.
* blitz/vecuops.cc: Initial source check-in; added files not usually
released in the distribution.

1999-01-25 allan@stokes.ca (Allan Stokes) www.stokes.ca
* random/mt.h: adapted to STL-like idiom

1998-12-06 tveldhui
* blitz/memblock.h: Prior to adding UnownedMemoryBlock.

1998-06-15 tveldhui
* blitz/memblock.h: When a memory block is created from an existing block
of data, add an additional reference count so that makeUnique() will
create a copy of the data.

1998-04-03 tveldhui
* compiler/bzconfig: Added command-line options, noninteractive mode

1998-03-14 tveldhui
    * 0.2-alpha-05

1998-02-25 tveldhui
    * blitz/array/eval.cc: Initial revision.

1997-08-18 tveldhui
    * Just prior to implementing fastRead() optimization for array
expression evaluation.

1997-08-15 tveldhui
    * Just prior to loop-collapse change

1997-07-16 tveldhui
    * Alpha release 0.2 (Arrays)

1997-07-03 tveldhui
* examples/numinquire.cpp: Initial revision

1997-02-28 tveldhui
* examples/qcd.cpp blitz/rand-tt800.h: Initial revision

1997-01-24 tveldhui
* blitz/bench.h: Prior to rewrite of Bench class; in this version, Bench
contain each benchmark implementation.

1997-01-23 tveldhui
* blitz/vecwhere.h: Initial revision

1997-01-13 tveldhui
* blitz/numtrait.h blitz/vecglobs.h blitz/vecpick.h blitz/vecpickiter.h
blitz/zero.h: Initial revision.

1996-11-11 tveldhui
* blitz/memblock.h blitz/range.h blitz/tuning.h: Initial revision.

1996-11-01 tveldhui
* compiler/bzconfig: Added type promotion check; tidied up.

1996-10-31 tveldhui
* blitz/matrix.h blitz/vector.h: Did away with multiple template parameters.
Only numeric type and structure parameters now.

1996-04-16 todd
* compiler/bzconfig: Initial revision. All important features checked.