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. |