Actions

icon Post
text/html Subscribe
text/html Unsubscribe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Parallel Reduction bits


  • To: vsipl++@xxxxxxxxxxxxxxxx
  • Subject: Parallel Reduction bits
  • From: Jules Bergmann <jules@xxxxxxxxxxxxxxxx>
  • Date: Wed, 11 Jan 2006 11:09:50 -0500

This patch does the following:

* Implement and test get/put for distributed blocks.

* Implement an 'assign_local' function to convert between distributed and local views; implement a Working_view_holder to either create a local copy of a distributed view or an alias of a local view.

* Modify solvers (lu, qr, svd, toepsol) and signal processing objects to use assign_local and/or working_view_holder.

* Refactor reductions to use general dispatch. Implement an evaluator for parallel reductions.

* Add missing traits and functions so that scalars can be used in parallel expressions.

* Have random to return views that can be used in local or distributed contexts.

                           -- Jules
Index: ChangeLog
===================================================================
RCS file: /home/cvs/Repository/vpp/ChangeLog,v
retrieving revision 1.364
diff -u -r1.364 ChangeLog
--- ChangeLog	10 Jan 2006 21:35:53 -0000	1.364
+++ ChangeLog	11 Jan 2006 15:58:52 -0000
@@ -1,3 +1,3735 @@
+2006-01-11 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: Check if -lblas is necessary for generic lapack.
+	* src/vsip/map.hpp (impl_subblock_from_global_index): New par
+	  support function to convert from global index to subblock.
+	* src/vsip/map_fwd.hpp: Add forward decls for Global_map and
+	  Local_or_global_map.
+	* src/vsip/math.hpp: Include global_map.hpp.
+	* src/vsip/impl/view_traits.hpp (Is_const_view_type): New trait.
+	* src/vsip/matrix.hpp (Is_const_view_type): New trait.
+	* src/vsip/tensor.hpp: Likewise.
+	* src/vsip/vector.hpp: Likewise.
+	* src/vsip/par-services.cpp (procesor_set): Memoize processor
+	  set returned from communicator pvec.
+	* src/vsip/parallel.hpp: Add headers for map and working-view.
+	  Move processor_set decl to ...
+	* src/vsip/impl/par-util.hpp: ... to here.
+	* src/vsip/random.hpp: Change return type to have Local_or_global_map.
+	* src/vsip/impl/block-traits.hpp (Choose_peb): New trait to
+	  choose the appropriate Par_expr_block variant when evaluating
+	  parallel expressions.
+	* src/vsip/impl/dispatch-assign.hpp: Update check for legal
+	  mixing local/global blocks.
+	* src/vsip/impl/distributed-block.hpp: Implement distribute get/put.
+	  Forward direct data interface calls.
+	* src/vsip/impl/expr_scalar_block.hpp: Add traits and functions
+	  necessary for parallel expressions.
+	* src/vsip/impl/general_dispatch.hpp: Change usage of Op_list_3
+	  to not hard-code assumption of which args are blocks.  Add
+	  Parallel_tag.
+	* src/vsip/impl/eval-blas.hpp: Update to new Op_list_3 usage.
+	* src/vsip/impl/matvec.hpp: Likewise.
+	* src/vsip/impl/global_map.hpp: Implement processor_begin/end
+	  and impl_local_from_global_index.
+	* src/vsip/impl/metaprogramming.hpp (Int_type): Utility to convert
+	  integral value to type.
+	* src/vsip/impl/par-chain-assign.hpp: Reorder allocations/deallocations
+	  to have mirrored order.
+	* src/vsip/impl/par-expr.hpp: Extend Par_expr_block to have multiple
+	  impl tags.  Add variant of Par_expr_block to directly reuse block.
+	* src/vsip/impl/par-services-mpi.hpp: Add additional MPI datatypes.
+	  New broadcast and allreduce communicator functions.  Memoize pvec.
+	* src/vsip/impl/par-services-none.hpp: New broadcast and allreduce
+	  communicator functions.  Memoize pvec.
+	* src/vsip/impl/reductions-idx.hpp: Apply general dispatch treatment.
+	* src/vsip/impl/reductions.hpp: Likewise.  Provide an evaluator for
+	  reductions on
+	* src/vsip/impl/reductions-types.hpp: New file, enumeration of
+	  reductions.
+	* src/vsip/impl/signal-conv-common.hpp: Use assign_local and woring
+	  view to work correctly with distributed arguments.
+	* src/vsip/impl/signal-conv-ext.hpp: Likewise.
+	* src/vsip/impl/solver-lu.hpp: Likewise.
+	* src/vsip/impl/solver-qr.hpp: Likewise.
+	* src/vsip/impl/solver-svd.hpp: Likewise.
+	* src/vsip/impl/vector-iterator.hpp: New file, iterate over values
+	  in a vector.
+	* src/vsip/impl/working-view.hpp: New file, helpers for converting
+	  between distributed and local views.
+	* tests/convolution.cpp: Add distributed cases.
+	* tests/reductions.cpp: Likewise.
+	* tests/solver-lu.cpp: Likewise.
+	* tests/solver-qr.cpp: Likewise.
+	* tests/solver-toepsol.cpp: Likewise.
+	* tests/distributed-getput.cpp: New test for distributed get/put.
+	* tests/expression.cpp: Add map include.
+	* tests/par_expr.cpp: Add coverage for expressions with scalars.
+	* tests/ref_conv.hpp: New file, reference implementation of conv.
+	* tests/solver-common.hpp: In-place version of test_ramp.
+	* tests/test-storage.hpp (Create_map): create maps of given type
+	  and dimension.  Add map parameter to Storage classes.
+	* tests/test.hpp: Make TEST_STRING work with cygwin.
+
+2006-01-10 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* GNUmakefile.in: Include lib/GNUmakefile.inc
+	* configure.ac (with-g2c-copy): New option to copy libg2c.a into
+	  libdir.
+	* lib/GNUmakefile.inc.in: New file, install libs from libdir.
+
+2006-01-10  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* GNUmakefile.in: Add (packagesuffix) variable.
+	* tests/GNUmakefile.inc.in: expect qmtest to exit with 0 or 2.
+	* scripts/package: Use a config file for package layout info.
+
+2006-01-09 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* tests/GNUmakefile.inc.in (check): Fix dependency on libs.
+	* vendor/GNUmakefile.inc.in (install): Add dependency to vendor_LIBS.
+
+2006-01-07  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: Revert Nathan's change from 2005-12-26 as as that
+	causes build failures due to MPI misconfiguration.
+	* src/vsip/impl/par-services-mpi.hpp: Likewise.
+	* GNUmakefile.in: Add 'mostlyclean' target.
+	* doc/GNUmakefile.inc.in: Make more rules dependent on $(srcdir) != '.'.
+	* tests/GNUmakefile.inc.in: Rename 'check-installed' to 'installcheck'
+	for standard conformance.
+	* vendor/GNUmakefile.inc.in: Make 'install' dependent on libs.
+	* scripts/package: Do a 'mostlyclean' before each new config build.
+
+2006-01-06  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: Allow (suffix) to be set during configuration.
+	* GNUmakefile.in: Honor (suffix) variable from configure, and better
+	handle binary package creation.
+	* doc/GNUmakefile.inc.in: Make doc2src dependent on doc.
+	* vsipl++.pc.in: Allow (suffix) to be set during configuration.
+	* scripts/package: New packaging driver script.
+
+2006-01-05  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* GNUmakefile.in: Make $(objects) and $(deps) lazy variables.
+	* tests/GNUmakefile.inc.in: Cleanup.
+
+2006-01-04  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: Test for synopsis.
+	* vsipl++.pc.in: Use PACKAGE_VERSION instead of VERSION.
+	* GNUmakefile.in: Add new targets 'sdist' and 'bdist',
+	and add support for $(DESTDIR).
+	* doc/GNUmakefile.inc.in: Add new 'doc2src' target and generally
+	enhance documentation generation.
+	* doc/Doxyfile.in: Build reference into doc/reference/reference.
+	* src/vsip/GNUmakefile.inc.in: Use $(DESTDIR).
+	* vendor/GNUmakefile.inc.in: Likewise.
+	* examples/GNUmakefile.inc.in: Likewise.
+	
+2005-12-28  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* GNUmakefile.in (PACKAGE_TARNAME): New variable.
+	(PACKAGE_VERSION): Likewise.
+	(pkgdatadir): Likewise.
+	(datarootdir): Likewise.
+	(docdir): Use it.
+	(htmldir): New variable.
+	(pdfdir): Likewise.
+	(pdf_manuals): Likewise.
+	(html_manuals): Likewise.
+	(doc): Depend on html, pdf.
+	(html): New target.
+	(pdf): Likewise.
+	(install): Depend on install-pdf, install-html.
+	(install-pdf): New target.
+	(install-html): Likewise.
+	* configure.ac (AC_INIT): Set PACKAGE_TARNAME, correct
+	PACKAGE_NAME.
+	* doc/GNUmakefile.in: Adjust for improvements to csl-docbook,
+	toplevel GNUmakefile.
+	* examples/GNUmakefile.inc.in (examples/example1$(EXEEXT)): Depend
+	on $(libs).
+	(install): Use $(pkgdatadir).
+	* src/vsip/GNUmakefile.inc.in (libs): Make it a variable, not a
+	target.
+	* vendor/GNUmakefile.inc.in (libs): Likewise.
+	
+2005-12-26  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* configure.ac, src/vsip/impl/par-services-mpi.hpp: find native MPI
+	  installations, correctly extract build options using C-only libs.
+
+2005-12-23  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* tests/GNUmakefile.inc.in: Add new check-installed target.
+	* tests/context-installed.pre.in: New context file for testing
+	installed packages.
+
+2005-12-23  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+	
+	* configure.ac, vendor/GNUmakefile.inc.in: Add configure options
+	  --disable-fft-double etc., and arrange not to build/install/clean
+	  built-in FFTW3 libs so disabled.
+
+2005-12-23  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* doc/GNUmakefile.inc.in: Fix typo.
+
+2005-12-22  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* GNUmakefile.in: Define and use 'suffix' during installation.
+	* vsipl++.pc.in: Process during configuration and post-process during
+	installation to set suffix variable.
+	* src/vsip/GNUmakefile.inc.in: Use suffix variable for the final
+	library name.
+
+2005-12-21  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: added --with-fft=none option.
+
+2005-12-21  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/fft-core.hpp: mention long double in comments
+	* src/vsip/fft-ldouble.cpp: new file, long-double element FFTs
+	* tests/fft.cpp, tests/fftm.cpp: add tests for long double.
+	* tests/fft.cpp: typo; test variant data organizations & axes
+	  with float, double or long double, whichever is first found 
+	  to be supported.
+
+2005-12-21  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* configure.ac, vendor/GNUmakefile.inc.in: fix "make clean"
+	  for fftw libs, other cleanup, install in $(libdir).
+
+2005-12-21 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* benchmarks/main.cpp: Add sanity check if library is configured
+	  with usable profile timer.
+	* benchmarks/mcopy.cpp: Add plainblock case.
+	* benchmarks/prod.cpp: Add plainblock case.
+	* benchmarks/prod_var.cpp: Renumber benchmark cases from (not 0).
+	* benchmarks/vmul.cpp: Add scalar*vector case.
+	* src/vsip/dense.hpp: Implement 2-arg and 3-arg get/put directly
+	  instead of abstracting through Point. 
+	* src/vsip/impl/dispatch-assign.hpp: Use Serial_dispatch for
+	  matrices.  Decompose tensor assignment to matrix when dimension
+	  ordering consistent.
+	* src/vsip/impl/expr_serial_dispatch.hpp: Add transpose tag to
+	  LibraryTagList.
+	* src/vsip/impl/expr_serial_evaluator.hpp: Add general loop-fusion
+	  matrix expression evaluator.  Add matrix transpose evaluator.
+	* src/vsip/impl/fast-transpose.hpp: New file, cache-oblivious
+	  transpose algorithm.
+	* src/vsip/impl/ipp.cpp: Add wrappers for IPP scalar-view add, sub,
+	  mul, div.
+	* src/vsip/impl/ipp.hpp: Add evaluators for IPP scalar-view add, sub
+	  mul, div.
+	* src/vsip/impl/profile.hpp: Define DefaultTime::valid to indicate
+	  if profile timer is enabled.
+	* src/vsip/impl/vmmul.hpp: Add general evaluator for vector-matrix
+	  multiply.  Decomposes into individual vector-vector or scalar-vector
+	  multiplies.
+	* tests/matvec-prod.cpp: Remove unnecessary include.
+	* tests/scalar-view.cpp: New file, coverage tests for scalar-view
+	  operators (+, -, *, /).
+
+2005-12-21 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: Don't build builtin FFTW3 when asked to use another
+	  FFT library than FFTW3.
+
+2005-12-21  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* configure.ac, vendor/fftw/simd/sse.c, vendor/fftw/simd/sse2.c:
+	  enable using SSE/SSE2 on x86-64.
+	* vendor/GNUmakefile.inc.in: improve build status reports.
+	* configure.ac, GNUmakefile.in, tests/context.in:
+	  rearrange -I, -L so compiler will find internal includes & libs
+	  first, installed ones second, environment ones last.
+
+2005-12-20  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* synopsis.py.in: Additional code not yet part of the last (0.8) release.
+
+2005-12-20  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: Integrate FFTW3 configure.
+	* vendor/GNUmakefile.inc.in: Integrate FFTW3 build and install.
+
+2005-12-20  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+
+	* GNUmakefile.in: moved variables for detecting libraries to here.
+	* configure.ac: create additional output varibles for same.
+	* benchmarks/GNUmakefile.inc.in: modified to remove tests that are
+	  dependent on libraries that are not available.  fixed 'bench' to
+	  only build those tests.  deleted debugging target.
+	* benchmarks/dot.cpp: corrected evaluator tag for vector-vector 
+	  dot product.
+	* src/vsip/GNUmakefile.inc.in: moved variables to top-level makefile.
+	* vendor/lapack/make.inc: removed.
+
+2005-12-20 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Add missing conversions for Lvalue_proxy.  Fixes issue #51.
+	* src/vsip/impl/lvalue-proxy.hpp: Add operator= specializations
+	  for lvalues of complex.
+	* tests/test.hpp: Add equal specialization for Lvalue_proxies.
+
+	* tests/*.{hpp,cpp}: Use test_assert() instead of assert().
+	* tests/output.hpp: Move definitions into vsip namespace.
+	* src/vsip/impl/signal-fir.hpp: Fix Wall warnings.
+
+2005-12-19 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/signal.hpp: Include signal-iir.
+	* src/vsip/impl/signal-iir.hpp: New file, direct implementation of
+	  IIR filter.
+	* tests/iir.cpp: New file, unit tests for IIR filter.
+
+	* src/vsip/impl/signal-fir.hpp: Move obj_state enum to ...
+	* src/vsip/impl/signal-types.hpp: ... here.
+
+2005-12-19 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* benchmarks/fastconv.cpp: Add new case using out-of-place FFT to
+	  perform in-place FFTM.  Parallel this case and single-loop case.
+	* benchmarks/fftm.cpp: New file, benchmarks for Fftm.
+	* benchmarks/loop.hpp: Print case number to output.
+	* benchmarks/main.cpp: Likewise.
+	* benchmarks/vmmul.cpp: New file, benchmarks for vector-matrix mul.
+	* benchmarks/vmul_ipp.cpp: Add benchmarks for in-place element-wise
+	  vector multiply.
+	* src/vsip/impl/dist.hpp: Add constructor taking number of subblocks.
+
+2005-12-19  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* GNUmakefile.in: Generate vsipl++.pc during installation.
+	* vsipl++.pc.in: Adjust template to be used during installation.
+
+2005-12-14  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* GNUmakefile.in (maintainer_mode): New variable.  Do not define
+	documentation variables in maintainer mode.
+	(subdirs): Remove doc/tutorial.
+	* configure.ac (maintainer-mode): New variable.
+	(cpu_mhz): Fix typo in help string.
+	* doc/GNUmakefile.inc.in: Build the tutorial here too.
+	* doc/tutorial/tutorial.css: Remove.
+	* doc/tutorial/GNUmakefile.inc.in: Likewise.
+
+2005-12-14  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* doc/tutorial/images/corner-turn.png: New file.
+	* doc/tutorial/images/corner-turn.svg: New file.
+	* doc/tutorial/src/corner-turn.hpp: New file.
+	* doc/tutorial/src/user_block.hpp: New file.
+	* doc/tutorial/optimization.xml: New file.
+	* doc/tutorial/tutorial.css: Highlight remarks.
+	* doc/tutorial/overview.xml: Center images.
+	
+2005-12-13 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* benchmarks/GNUmakefile.inc.in: Use EXEEXT and OBJEXT.
+	* benchmarks/loop.hpp: Add missing include, use parallel.hpp
+	  instead of impl/global_map.
+	* src/vsip/impl/setup-assign.hpp: Make Holder_base destructor
+	  inline.
+	* tests/test.hpp: Fix test_assert to work with Greenhills.
+
+2005-12-12  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* GNUmakefile.in: Rely on csl-docbook/GNUmakefile.inc for DocBook
+	rules.
+	* doc/tex.dsl: Remove.
+	* doc/wraptex: Likewise.
+
+2005-12-12 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Implement 2-D correlation.
+	* src/vsip/impl/signal-corr-common.hpp: Extend Is_corr_impl_avail
+	  to include dimension.  Compute unbiased scaling factor directly
+	  rather than by accumulation.  Implement 2-D correlation.
+	* src/vsip/impl/signal-corr-ext.hpp: Implement 2-D correlation.
+	* src/vsip/impl/signal-corr-opt.hpp: Update Is_corr_impl_avail.
+	* src/vsip/impl/signal-corr.hpp: Implement 2-D correlation.
+	* tests/corr-2d.cpp: New file, tests for 2-D correlation.
+	* tests/correlation.cpp: Move common functionality into error_db
+	  and ref_corr headers.
+	* tests/error_db.hpp: New file, common impl of error_db function.
+	* tests/ref_corr.hpp: New file, reference implementation of 1-D
+	  and 2-D correlation.
+	* tests/test.hpp (test_assert): New macro for assertions, not
+	  disabled by NDEBUG.
+
+	* src/vsip/impl/fns_scalar.hpp: Add scalar ite.
+	* src/vsip/impl/fns_elementwise.hpp: Add element-wise ite.
+
+2005-12-12  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* GNUmakefile.in: Adjust for more robust 'install' target.
+	* doc/tutorial/GNUmakefile.inc.in: Robustify 'install' target.
+	* src/vsip/GNUmakefile.inc.in: Likewise.
+	* doc/csl-docbook/xsl/html/csl.xsl: Remove debug output.
+
+2005-12-06  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/signal-window.cpp: replaced ramp, clip and frequency
+	  swap inline code with library functions.
+	* src/vsip/signal-window.hpp: deleted unneeded function
+	  impl::frequency_swap().
+
+2005-12-06 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* doc/quickstart/quickstart.xml: Fix typo.  Bump version to 0.95.
+
+2005-12-05 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* configure.ac (CPPFLAGS): Add -I for ATLAS include directory.
+
+2005-12-05 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: Use with-lapack=PKGS to set lapack_trypkg.
+	  Fix bug in determining my_abs_top_srcdir.
+
+2005-12-05 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* doc/quickstart/quickstart.xml: Document configure options.
+	* src/vsip/parallel.hpp: Put processor_set decl in vsip namespace.
+	* tests/ref-impl/selgen.cpp: Use clip/invclip API in current spec.
+
+2005-12-05  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/signal.hpp: new header for histograms.
+	* src/vsip/impl/signal-histogram.hpp: implements Histogram class
+	  [signal.histo].
+	* tests/histogram: new tests for above.
+
+2005-12-05  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/signal.hpp: added new header for freqswap.
+	* src/vsip/impl/signal-freqswap.hpp: implements frequency
+	  swapping functions [signal.freqswap].
+	* tests/freqswap.cpp: tests for above.
+
+2005-12-05 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/support.hpp: Correct return type in declaration of
+	  num_processors().  Move processor_set() declaration to ...
+	* src/vsip/parallel.hpp: ... here.
+	
+2005-12-05 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Fix issue #96
+	* src/vsip/impl/eval-blas.hpp: Perform row-major outer product
+	  without changing input vectors.
+
+2005-12-05 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Update parallel support functions to match parallel specification
+	version 0.9.
+	* src/vsip/map.hpp: Include global_map.  Change map interface
+	  to match par spec version 0.9.
+	* src/vsip/impl/global_map.hpp: Likewise.
+	* src/vsip/impl/local_map.hpp: Likewise.
+	* src/vsip/par-services.cpp: Add processor_set and local_processor
+	  PSF functions.
+	* src/vsip/support.hpp: Remove subblock_type.  Add distribution_type
+	  other.
+	* src/vsip/impl/dist.hpp: Add impl_global_from_local_index
+	  members.  Use index_type instead of subblock_type.
+	* src/vsip/impl/distributed-block.hpp: Remove subblocks_begin/end.
+	  PSF name changes.
+	* src/vsip/impl/view_traits.hpp: Add local() member function to views.
+	* src/vsip/dense.hpp: Use index_type instead of subblock_type.
+	* src/vsip/impl/expr_generator_block.hpp: Likewise.
+	* src/vsip/impl/subblock.hpp: Likewise
+	* src/vsip/impl/par-assign.hpp: PSF name changes.
+	* src/vsip/impl/par-chain-assign.hpp: Likewise.
+	* src/vsip/impl/par-expr.hpp: Likewise.
+	* src/vsip/impl/par-foreach.hpp: Add in-place variation.  PSF name
+	  changes.
+	* src/vsip/impl/par-util.hpp: PSF name changes and updates.
+	* src/vsip/impl/setup-assign.hpp: PSF name changes.
+
+	Update tests to match parallel spec.
+	* tests/appmap.cpp: PSF name changes.
+	* tests/distributed-block.cpp: Likewise.
+	* tests/distributed-subviews.cpp: Likewise.
+	* tests/distributed-user-storage.cpp: Likewise.
+	* tests/map.cpp: Likewise.
+	* tests/par_expr.cpp: Likewise.
+	* tests/util-par.hpp: Likewise.
+	* tests/vmmul.cpp: Likewise.
+
+	* benchmarks/loop.hpp: Support for parallel benchmarks.
+	* benchmarks/fastconv.hpp: New file, benchmark for fast convolution.
+	* benchmarks/mcopy.hpp: New file, benchmark for matrix copy.
+	* benchmarks/prod_var.hpp: New file, benchmark for prod() variations.
+
+2005-12-04 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* autogen.sh: check if vendor/atlas/autogen.sh is present before
+	  running.
+	* configure.ac: Always pull in IPP image-processing library
+	  when IPP enabled.  Fix typo: with-atlas-libdir should enable
+	  lapack.  Fix -I.../vendor/atlas/include for INT_CPPFLAGS to
+	  be correct when srcdir is relative.
+	* src/vsip/matrix.hpp (view_domain): New function, return domain
+	  of view.
+	* src/vsip/tensor.hpp: Likewise.
+	* src/vsip/impl/ipp.cpp (conv_full_2d, conv_valid_2d): New
+	  functions, wrappers for 2-D IPP convolutions.
+	* src/vsip/impl/ipp.hpp: Likewise.
+	* src/vsip/impl/signal-conv-common.hpp (Is_conv_impl_avail):
+	  Add template parameter for convolution dimension.
+	  (conv_kernel): New function overload for 2D kernels.
+	  (conv_full, conv_same, conv_min): New functions, generic
+	  2D convolutions for different regions of support.
+	  (conv_same_edge): New function, perform edge portion of
+	  same-support convolution.
+	  (conv_same_example): New function, example of using
+	  conv_min and conv_same_edge to perform conv_same.
+	* src/vsip/impl/signal-conv-ext.hpp: Implement 2-D convolution.
+	* src/vsip/impl/signal-conv-ipp.hpp: Likewise.
+	* src/vsip/impl/signal-conv-sal.hpp: Update Is_conv_impl_avail.
+	* src/vsip/impl/signal-conv.hpp: Likewise.
+	* tests/conv-2d.cpp: New file, unit tests for 2-D convolution.
+	
+	* src/vsip/impl/eval-blas.hpp: Fix Wall warnings.
+	* src/vsip/impl/matvec.hpp: Likewise.
+	
+2005-12-02 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: Cleanup handling of lapack options by
+	  merging --enable-lapack functionality into --with-lapack.
+
+2005-12-01 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* configure.ac (with-mkl-arch): New option to set MKL arch library
+	  sub-directory.  Default is to deduce arch based on host_cpu.
+	  (--disable-cblas): New option to disable use of CBLAS API and
+	  use fortran BLAS API instead.  Default is to use CBLAS API,
+	  which avoids problems with calling fortran functions from C++.
+	  (--with-g2c-path): New option to specify path for libg2c.a.
+	  (VSIP_IMPL_FORTRAN_FLOAT_RETURN): New AC_DEFINE for the C
+	  return type of a fortran real function.
+	  (--with-mkl-prefix): Change behavior, previously PATH was
+	  the library directory, now it is the prefix above library
+	  and include directories.  Old help string was correct.
+	* GNUmakefile.in: Substitute INT_CPPFLAGS.
+	* tests/context.in: Likewise.
+	* src/vsip/impl/lapack.hpp: Support CBLAS API.
+	* vendor/GNUmakefile.inc.in: Install ATLAS cblas header.
+	* vendor/lapack/make.inc.in: Substitute FFLAGS.
+
+2005-12-01 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Integrate ATLAS and LAPACK into VSIPL++ source tree.
+	* autogen.sh: process configure.ac in vendor/atlas directory.
+	* configure.ac: Configuration support for builtin lapack library.
+          (disable-builtin-lapack): New option to disable
+	  consideration of builtin lapack (ATLAS).
+	  (--with-lapack): New option to specify lapack library(libraries)
+	  to consider.
+	* GNUmakefile.in (LDFLAGS): Add internal ld flags (@INT_LDFLAGS@).
+	  (libs): New target for libraries necessary to build executables.
+	* src/vsip/GNUmakefile.inc.in (libs): Add dependency to
+	  src/vsip/libvsip.a
+	* examples/GNUmakefile.inc.in: Add dependency to 'libs' target.
+	* tests/GNUmakefile.inc.in (check): Add dependency to libs.
+	* tests/context.in (cxx_options): Add internal ld flags (@INT_LDFLAGS@)
+	* vendor/GNUmakefile.inc.in: New file, brige from VSIPL++
+	  integrate makefile to ATLAS and LAPACK build/make.
+
+	Autoconf for ATLAS.
+	* vendor/atlas/autogen.sh: New file, generate vendor/atlas
+	  configure scripts.
+	* vendor/atlas/configure.ac: New file, autoconf script for ATLAS.
+	* vendor/atlas/csl-scripts/convert-makefile.pl: New file, convert
+	  ATLAS makes/Make.xxx files to CSL Makefile.in files.
+	* vendor/atlas/csl-scripts/create-makeinc.pl: New file, create
+	  per-directory Make.inc files.
+	* vendor/atlas/csl-scripts/convert.sh: New file, wrapper around
+	  convert-makefile.pl and create-makeinc.pl.  Called by autogen.sh.
+	* vendor/atlas/GNUmakefile.in: New file, top-level makefile for
+	  ATLAS.
+	* vendor/atlas/Make.ARCH.in: New file, template Make.ARCH file.
+	* vendor/atlas/bin/ATLrun.sh.in: New file, script to run executable.
+
+	* vendor/atlas/tune/blas/gemm/tfc.c: Fix bug causing heap
+	  corruption.
+
+	Misc. changes to build atlas out of the source directory
+	and prevent compiler warnings.
+	* vendor/atlas/makes/Make.bin: Support build dir different from
+	  source dir.
+	* vendor/atlas/tune/blas/gemm/emit_mm.c: Increase string size to
+	  avoid overrun.  Support build dir different from source dir.
+	* vendor/atlas/bin/atlas_install.c: Assert that defaults are found.
+	* vendor/atlas/bin/atlas_tee.c: Add missing include.
+	* vendor/atlas/bin/atlas_waitfile.c: Likewise.
+	* vendor/atlas/bin/ccobj.c: Likewise.
+	* vendor/atlas/include/contrib/ATL_gemv_ger_SSE.h: Likewise.
+	* vendor/atlas/src/auxil/ATL_buildinfo.c: Likewise.
+	* vendor/atlas/tune/blas/gemm/usercomb.c: Likewise.
+	* vendor/atlas/tune/blas/gemv/gemvtune.c: Likewise.
+	* vendor/atlas/tune/blas/ger/ger1tune.c: Likewise.
+	* vendor/atlas/tune/blas/gemv/mvsearch.c: Add missing include,
+	  automatically rerun if variation exceeds tolerance.
+	* vendor/atlas/tune/blas/ger/r1search.c: Likewise.
+	* vendor/atlas/tune/blas/gemm/ummsearch.c: Support build dir
+	  different from source dir.
+	* vendor/atlas/tune/blas/gemm/userindex.c: Likewise.
+	* vendor/atlas/tune/blas/level1/asumsrch.c: Likewise.
+	* vendor/atlas/tune/blas/level1/axpbysrch.c: Likewise.
+	* vendor/atlas/tune/blas/level1/axpysrch.c: Likewise.
+	* vendor/atlas/tune/blas/level1/copysrch.c: Likewise.
+	* vendor/atlas/tune/blas/level1/cpscsrch.c: Likewise.
+	* vendor/atlas/tune/blas/level1/dotsrch.c: Likewise.
+	* vendor/atlas/tune/blas/level1/iamaxsrch.c: Likewise.
+	* vendor/atlas/tune/blas/level1/nrm2srch.c: Likewise.
+	* vendor/atlas/tune/blas/level1/rotsrch.c: Likewise.
+	* vendor/atlas/tune/blas/level1/scalsrch.c: Likewise.
+	* vendor/atlas/tune/blas/level1/setsrch.c: Likewise.
+	* vendor/atlas/tune/blas/level1/swapsrch.c: Likewise.
+	* vendor/atlas/tune/sysinfo/masearch.c: Add missing headers.
+	  Put missing headers in generated programs.
+
+	Fit LAPACK into autoconf build.
+	* vendor/lapack/make.inc.in: LAPACK make include template.
+	* vendor/lapack/SRC/GNUmakefile.in: New file, Makefile
+	  template for LAPACK.
+
+2005-11-30  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/matvec.hpp: added modulate function [math.matvec.misc].
+	* tests/matvec.cpp: new tests for same.
+
+2005-11-28  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: corrected macro for detecting presence of SAL
+	* src/vsip/impl/sal.hpp: added convolution function overloaded
+	  for float and complex<float>.
+	* src/vsip/impl/signal-conv-sal.hpp: new file.  implements 
+	  convolution using Mercury SAL library.
+	* src/vsip/impl/signal-conv.hpp: searches for SAL tag when
+	  choosing convolution functions.
+	* tests/convolution.cpp: added new tests for support of 
+	  non-unit stride data.
+
+2005-11-28 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/extdata.hpp (is_direct_ok): Merge if statements to
+	  avoid GHS warnings about unreachable statements.
+	* configure.ac: Set configure's internal variables for object and
+	  executable extenions.
+	
+2005-11-22  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/complex.hpp: Fix for ghs.
+
+2005-11-17  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/fns_elementwise.hpp: Fix for ghs.
+	* src/vsip/complex.hpp: Add missing functions.
+	* tests/complex.cpp: Test them.
+
+2005-11-16  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* tests/QMTest/vxworks.py: New infrastructure for cross-testing.
+
+	* src/vsip/support.hpp: Qualify call to fatal_exception()
+	* src/vsip/impl/fns_userelt.hpp: Fix use of 
+	std::pointer_to_unary_function
+	* tests/util-par.hpp: Replace use of cbrt(x) by exp(log(x)/3)
+	
+2005-11-15  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+
+	* tests/matvec-prod.cpp: added tests for special cases such
+	  as split complex layout and subviews (different strides).
+	* src/vsip/impl/eval-sal.hpp: new file.  dispatch routines
+	  for matrix/vector products, outer and gemp.
+	* src/vsip/impl/matvec-prod.hpp: include eval-sal.hpp.
+	* src/vsip/impl/matvec.hpp: include eval-sal.hpp and math-enum.hpp.
+	* src/vsip/impl/sal.hpp: added new overloaded translation 
+	  functions for matrix/vector products, outer and gemp.
+
+2005-11-14  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/map.hpp: Change case ordering in switch statement to always have
+	a return value.
+	* src/vsip/support.hpp: Enable __attribute__((__noreturn__)) for ghs.
+	* src/vsip/impl/dist.hpp: Remove obsolete dummy return statements.
+
+2005-11-11  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/fns_elementwise.hpp: Enable unary operators only for
+	view types.
+	* tests/vector.cpp: Add missing tests for unary operators.
+
+2005-11-11 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* configure.ac (VSIP_IMPL_FIX_MISSING_ABS): New define, set if
+	  missing std::abs overloads for float and double.
+	* src/vsip/impl/fns_scalar.hpp (mag, magsq): Use abs_detail::abs
+	  instead of std::abs.  Set abs_detail::abs based on
+	  VSIP_IMPL_FIX_MISSING_ABS.
+	* src/vsip/impl/general_dispatch.hpp: When dispatch fail, throw
+	  exception rather than assert.
+	* tests/test.hpp: Use vsip::mag instead of std::abs.
+	
+2005-11-11  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+
+	* tests/sal-assumptions.cpp: corrected unconditional dependency on SAL.
+
+2005-11-11  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/vector.hpp: Work around ghs bug.
+	* doc/csl-docbook/xsl/html/csl.xsl: Fix tutorial building outside the
+	source tree.
+
+2005-11-10  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* doc/tutorial/*: New tutorial sources.
+	* GNUmakefile.in: Build it.
+	* doc/csl-docbook/xsl/html/csl.xsl: Fine tune xslt parameters.
+	* configure.ac: Allow to explicitely set object and executable extensions.
+	* src/vsip/map.hpp: Add missing exception-specifiers.
+	* src/vsip/impl/fns_scalar.hpp: Include <cstdlib> to work around ghs issue.
+	
+2005-11-10  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+
+	* tests/matvec-prod.cpp: Re-arranged tests to avoid running tests
+	  repeatedly with the same ordering.  Added tests for vector-matrix
+	  and matrix-vector products.
+	* tests/matvec.cpp: added test for outer().
+	* tests/ref_matvec.hpp: modified ref::outer() to conjugate complex
+	  values.  Added vector-vector product to use for matrix-matrix
+	  product.  Added v-m and m-v products as well.
+	* src/vsip/impl/eval-blas.hpp: Added evaluators for BLAS outer,
+	  m-v prod, v-m prod and general matrix multiply (gemm).  Fixed
+	  a bug in the runtime check for m-m prod that only affected
+	  col-major cases.
+	* src/vsip/impl/general_dispatch.hpp: Added operation tags for
+	  m-v and v-m products.  New implementation tag for SAL.  New
+	  wrapper classes for operand lists of 3 and 4 arguments along
+	  with the corresponding dispatch classes.
+	* src/vsip/impl/lapack.hpp: Included prototypes for gemv and ger
+	  BLAS functions with overloaded wrappers for calling them.
+	* src/vsip/impl/matvec-prod.hpp: Added generic evaluators for
+	  m-v and v-m products.  Added dispatch functions for same.
+	* src/vsip/impl/matvec.hpp: Same as above for outer and gemp.
+
+2005-11-02 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/block-copy.hpp: Extend Block_fill to handle
+	  distributed blocks and 1-dim blocks.
+	* src/vsip/impl/block-traits.hpp: Add Is_par_reorg_ok trait.
+	* src/vsip/impl/dispatch-assign.hpp: Use Is_par_reorg_ok to determine
+	  if parallel expression can be reorganized.
+	* src/vsip/impl/dist.hpp: Add missing body for Whole_dist constructor.
+	* src/vsip/impl/distributed-block.hpp: Implement release and find
+	  for Distributed_block.
+	* src/vsip/impl/expr_binary_block.hpp: Specialize Is_par_reorg_ok
+	  for binary expressions.
+	* src/vsip/impl/expr_ternary_block.hpp: Define parallel traits
+	  and functions (Distributed_local_block, get_local_block,
+	  Combine_return_type, apply_combine, apply_leaf, Is_par_same_map,
+	  and Is_par_reorg_ok).
+	* src/vsip/impl/expr_unary_block.hpp: Likewise.
+	* src/vsip/impl/global_map.hpp: Specialize Is_global_only and
+	  Map_equal for Global_maps.
+	* src/vsip/impl/local_map.hpp: Specialize Is_local_only and
+	  Is_global_only for Local_maps.
+	* src/vsip/impl/map-traits.hpp: New file, traits for maps.
+	* src/vsip/impl/subblock.hpp (Diag_block): Use size() to compute
+	  size(1, 0).
+	* src/vsip/impl/vmmul.hpp: Use expression template block to evaluate
+	  vmmul.
+	* src/vsip/map.hpp: Add map_equiv, like op== but only requires
+	  processors match upto number of subblocks.  Use for Map_equal.
+	* src/vsip/vector.hpp: Use Block_fill for scalar assignment.
+	* tests/distributed-subviews.cpp (dump_map): Move from ...
+	* tests/util-par.hpp: ... to here.
+	* tests/util-par.hpp: Update dump_view to single subblock per
+	  processor.  Fix Check_identity to work with negative k.
+	* tests/extdata-output.hpp: Recognize Global_map, Local_map, and
+	  Local_or_global_map.
+	* tests/par_expr.cpp: Extend coverage to parallel expressions with
+	  unary and ternary operators.
+	* tests/vmmul.cpp: Add coverage for parallel vmmul cases.
+
+2005-10-31  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* synopsis.py.in: New synopsis driver script.
+	* GNUmakefile.in: Add rules for ref manual generation via synopsis.
+	* configure.ac: Fix typo in help string.
+	* src/vsip/impl/subblock.hpp: Adjust code to make it synopsis-parsable.
+	* tests/QMTest/vpp_database.py: Fix typo.
+	
+2005-10-28 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/lapack.hpp: Treat FORTRAN functions returning
+	  complex values as subroutines.
+
+2005-10-27  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/ipp.cpp, sal.cpp: remove inglorious #ifdefs, defer
+	  to src/vsip/GNUmakefile.in.inc.
+	* src/vsip/impl/signal-fir.hpp: document FIR driver control flags,
+	  remove FIXME for logged spec bug.
+
+2005-10-25  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/ipp.cpp, src/vsip/impl/signal-fir.hpp:
+	  Use native C++ FIR code for all types and modes not supported 
+	  by IPP FIR.  Confine Intel ipp*.h includes to ipp.cpp where
+	  users' code will not be exposed to them.
+
+2005-10-24  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: fix help for "--enable-profile-timer".
+	* src/vsip/impl/sal.cpp: #if out if SAL not configured.
+	* src/vsip/impl/signal-fir.hpp: robustify assertions; make copy-ctor
+	  copy output size, fix overload ambiguity copying state_ member; 
+	  make op= return *this; make reset() clear state more thoroughly. 
+	* tests/fir.cpp: test copy ctor more thoroughly.
+	* benchmarks/fir.cpp: new.
+	* benchmarks/loop.hpp: quiet printf-format warnings.
+
+2005-10-14  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/ipp.hpp: Explicitely test for Cmplx_inter_fmt as IPP
+	doesn't support Cmplx_split_fmt.
+	* doc/Doxyfile: Transformed into...
+	* doc/Doxyfile.in: ...this to generate the correct path to the sources
+	during configure.
+	* doc/GNUmakefile.inc.in: Use the generated Doxyfile.
+
+2005-10-14  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+
+	* configure.ac (--enable-sal, --with-sal-include, --with-sal-lib):
+	  New options to add support for SAL.
+	* src/vsip/GNUmakefile.inc.in: conditionally added sal.cpp.
+	* src/vsip/impl/expr_serial_dispatch.hpp: added mercury SAL tag.
+	* src/vsip/impl/expr_serial_evaluator.hpp: likewise.
+	* src/vsip/impl/sal.cpp: new file, wrappers for +-*/ incl. for
+	  real, complex and complex-split types.
+	* src/vsip/impl/sal.hpp: likewise.
+	* tests/elementwise.cpp: new tests for external libraries providing
+	  elementwise funtions.
+	* tests/sal-assumptions.cpp: verifies assumptions regarding complex
+	  split layout when using SAL library.
+
+2005-10-13  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/signal-fir.hpp: use IPP FIR support where available.
+	* tests/fir.cpp: forgive FFT noise on big samples.
+
+2005-10-12 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* configure.ac (--with-atlas-prefix, --with-atlas-libdir): New
+	  options to specify ATLAS prefix and/or libdir.  Add support to use
+	  ATLAS for BLAS and LAPACK.  Change trypkg search order for mkl7
+	  and mkl5.
+
+2005-10-12 Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Implement General_dispatch (similar to Serial_expr_dispatch),
+	Use for dot- and matrix-matrix products.
+	* configure.ac (VSIP_IMPL_HAVE_BLAS, VSIPL_IMPL_HAVE_LAPACK):
+	  Define if if BLAS/LAPACK libraries present.
+	* src/vsip/impl/eval-blas.hpp: New file, BLAS evaluators for
+	  dot-product and matrix-matrix product.
+	* src/vsip/impl/general_dispatch.hpp: New file, generalized
+	  dispatch of functions to various implementations.
+	* src/vsip/impl/lapack.hpp: Add dot-product and matrix-matrix
+	  product functions.  Mover error handler xerbla_ into lapack.cpp
+	* src/vsip/impl/matvec.hpp: Use general dispatch for dot products.
+	  Provide default generic evaluator.
+	* src/vsip/impl/matvec-prod.hpp: Use general dispatch for
+	  matrix-matrix products.  Provide default generic evaluator.
+	* src/vsip/impl/signal-conv-common.hpp (Generic_tag, Opt_tag: Change 
+	  to forward decls.
+	* src/vsip/lapack.cpp: New file, contains xerbla_.
+	* tests/matvec-dot.cpp: New file, tests for dot() and cvjdot().
+	* tests/matvec-prod.cpp: Extend to cover different dimension-orders.
+	  (row-major and col-major).  Move reference routines to ref_matvec.
+	* tests/ref_matvec.hpp: New file, reference matvec routines.
+	* tests/test-random.hpp (randv): New function, fill a vector
+	  with random values.
+	* tests/extdata-output.hpp: Optionally use typeid, handle const
+	  types, provide more details for Dense, and handle Unary_expr_block
+	  type.
+
+	* benchmarks/dot.cpp: New file, benchmark for dot product.
+	* benchmarks/prod.cpp: New file, benchmark for matrix-matrix products.
+
+2005-10-09  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/signal-fir.hpp: support Fir<>::impl_performance()
+	  command "count".
+	* tests/fir.cpp: add tests for accessors, default template arg.
+
+2005-10-09  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	Implement FIR filter, all modes.
+	* src/vsip/impl/signal-fir.hpp, tests/fir.cpp: New.
+	* src/vsip/signal.hpp: Include new impl/signal-fir.hpp.
+
+2005-10-06  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Implement 1-D correlation.
+	* src/vsip/impl/signal-conv-common.hpp (Opt_tag): Add optimized
+	  implementation tag.
+	* src/vsip/impl/signal-corr-common.hpp: New file, common routines
+	  and decls for correlation.
+	* src/vsip/impl/signal-corr-ext.hpp: New file, generic correlation
+	  implementation using Ext_data interface.
+	* src/vsip/impl/signal-corr-opt.hpp: New file, optimized correlation
+	  implementation using FFT overlap-add.
+	* src/vsip/impl/signal-corr.hpp: New file, correlation class.
+	* src/vsip/signal.hpp: Include signal-corr.hpp.
+	* src/vsip/impl/signal-types.hpp (bias_type): New type for correlation.
+	* src/vsip/matrix.hpp: Pass view by value to op-assign operators.
+	* src/vsip/tensor.hpp: Likewise.
+	* src/vsip/vector.hpp: Likewise.
+	* src/vsip/impl/domain-utils.hpp (normalize): New functions to
+	  normalize a domain to offset=0, stride=1, and length=same.
+	* src/vsip/impl/metaprogramming.hpp (Complex_of): Convert a type
+	  to complex.
+	* tests/correlation.cpp: New file, unit tests for correlation.
+	* benchmarks/corr.cpp: New file, benchmark correlation cases.
+
+2005-10-05  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Support symmetric convolution kernels.
+	* src/vsip/impl/signal-conv-common.hpp (conv_kernel): Build
+	  convolution kernel from symmetry and coefficients.
+	  (VSIP_IMPL_CONV_CORRECT_MIN_SUPPORT_SIZE): control whether
+	  convolution minimum support output size should be defined
+	  to not require elements outsize of input vector or follow spec.
+	  (conv_output_size): Use ^ when computing output size.
+	  (conv_min): Use safe algorithm when ^ indicates to follow spec.
+	* src/vsip/impl/signal-conv-ext.hpp: Use conv_kernel to apply
+	  symmetry to coefficients.
+	* src/vsip/impl/signal-conv-ipp.hpp: Likewise.
+	* tests/convolution.cpp: Generalize test to symmetric kernels
+	  and to decimations other than 1.
+	
+	* tests/matvec.cpp: Fix Wall warning.
+
+2005-10-03  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+	
+	* src/vsip/impl/matvec.hpp: added outer product, gemp,
+	  gems and cumsum.
+	* tests/matvec.cpp: added tests for gemp, gems and
+	  cumsum which are not covered in ref-impl tests.
+	
+2005-10-03  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Work arounds for ICC 9.0 compilation errors.
+	* src/vsip/selgen.hpp: Determine clip and invclip return type
+	  through helper classes.
+	* src/vsip/impl/fns_elementwise.hpp: Use single function and
+	  operator^().  Have functor distinguish bxor and lxor cases.
+	* src/vsip/impl/fns_userelt.hpp: For function object overloads of
+	  unary, binary, and ternary functions, determine return values
+	  through helper classes.
+
+2005-09-30  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Implement LU linear system solver.
+	* src/vsip/impl/solver-lu.hpp: New file, LU solver.
+	* src/vsip/solvers.hpp: Include solver-lu.
+	* src/vsip/impl/lapack.hpp: Add LAPACK routines for LU solver
+	  (getrf and getrs).
+	* tests/solver-lu.cpp: New file, unit tests for LU solver.
+
+	* tests/load_view.hpp: New file, load view utility.
+	* tests/save_view.hpp: New file, save view utility.
+
+	* src/vsip/impl/solver-cholesky.hpp: Use stride to determine
+	  leading dimension.
+
+2005-09-30  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Implement toeplitz linear system solver.
+	* src/vsip/solvers.hpp: Include solver-toepsol.
+	* src/vsip/impl/fns_scalar.hpp: Implement impl_conj, impl_real,
+	  and impl_imag functions that work with both scalar and complex.
+	* src/vsip/impl/fns_elementwise.hpp: Likewise.
+	* src/vsip/impl/solver-toepsol.hpp: New file, toeplitz solver.
+	* tests/solver-toepsol.cpp: New file, test for toeplitz solver.
+
+2005-09-28  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+	
+	* src/vsip/impl/matvec-prod.hpp: added prod3, prod4,
+	  prodh, prodj and prodt.
+	* tests/matvec-prod.cpp: added tests for same.
+	
+2005-09-28  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/fft-core.hpp: Make IPP FFT work for 2D FFT. 
+	  Make unimplemented IPP driver functions report failure.
+	* src/vsip/signal-fft.hpp: Initialize scale member early enough 
+	  for IPP create_plan use.
+	* tests/fftm.cpp: Enable tests for complex->real, real->complex.
+	* tests/fft.cpp: Add comprehensive testing:
+	   (2D, 3D) x ((cx->cx fwd, inv), ((re->cx, cx->re) x (all axes))) 
+	   x (Dense/row-major, Dense/column-major, Fast_block)
+	   x (single,double) x (in-place, by_reference, by_value) 
+	   x (unscaled, arbitrary-scaled, scaled by N)
+	Tested with gcc-3.4/em64t/IPP and gcc-4.0.1/x86/FFTW3.
+
+2005-09-28  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/block-traits.hpp (View_block_storage):
+	  Add 'With_rp' template typedef to specify ref-count policy.
+	* src/vsip/impl/extdata.hpp: Use View_block_storage::With_rp to
+	  apply ref-count policy for block being held.
+
+2005-09-27  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* tests/extdata-fft.cpp, tests/fft.cpp, tests/fftm-par.cpp,
+	  tests/fftm.cpp: #if out tests that depend on FFT where FFT
+	  is not enabled; add tests for double-precision; return 0
+	  at end of main().
+
+2005-09-27  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/signal-fft.hpp: fix compilation/instantiation typo
+	  in 2D by-value FFT.
+	* src/vsip/impl/fft-core.hpp: fix IPP FFT scaling-request flag.
+
+2005-09-27  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/dense.hpp: Remove redundant header inclusion.
+	* src/vsip/impl/expr_functor.hpp: Add missing header inclusion.
+	* src/vsip/impl/matvec.hpp: Add missing header inclusions.
+	* src/vsip/impl/view_traits.hpp: Fix view forward-declarations.
+	* src/vsip/vecor.hpp: Add generic get/put functions.
+	* src/vsip/matrix.hpp: Likewise.
+	* src/vsip/tensor.hpp: Likewise.
+	* tests/test.hpp: Add view_equal functions.
+	* src/vsip/selgen.hpp: Implement [selgen] functions.
+	* tests/selgen.cpp: Test them.
+
+2005-09-27  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: Add -lpthread for MKL 5.x.
+	* src/vsip/solvers.hpp: Include solver-svd.
+	* src/vsip/impl/lapack.hpp: Add LAPACK routines for SVD (gebrd,
+	  orgbr/ungbr, sbdsqr).  Replace assertions on LAPACK info with
+	  exceptions.
+	* src/vsip/impl/matvec.hpp: Add trans_or_herm() function.
+	* src/vsip/impl/metaprogramming.hpp: Add Bool_type to encapsulate
+	  a bool as a type.
+	* src/vsip/impl/solver-svd.hpp: New file, implement SVD solver.
+	* src/vsip/impl/subblock.hpp (Diag::size): Check block_d argumment.
+	* tests/solver-common.hpp: Add compare_view functions.  Define
+	  perferred tranpose for value type (regular or conjugate) in
+	  Test_traits.
+	* tests/solver-svd.cpp: New file, unit tests for SVD solver.
+
+2005-09-26  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/math.hpp: Include expr_generator_block.hpp
+	* src/vsip/selgen.hpp: New file, implement ramp.
+	* src/vsip/impl/expr_generator_block.hpp: New file, generator
+	  expression block.
+	* tests/selgen-ramp.cpp: New file, tests for ramp().
+
+2005-09-26  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/vmmul.hpp: New file, implements vmmul.
+	* src/vsip/math.hpp: Inlcude vmmul.hpp.
+	* tests/vmmul.cpp: New file, unit tests for vmmul.
+
+	* apps/sarsim/sarsim.hpp: Align frame buffers.  Report signal
+	  processing object performance.
+	* benchmarks/conv.cpp: Make kernel length a command-line parameter.
+	* benchmarks/fft.cpp: Benchmark in-place vs out-of-place FFTs.
+	* src/vsip/parallel.hpp: New file, single header to pull in
+	  parallel bits.
+	* src/vsip/vector.hpp: Have op-assigns go through dispatch
+	  when possible.
+	* src/vsip/impl/par-foreach.hpp: New file, implement parallel
+	  foreach.
+	* src/vsip/impl/signal-conv.hpp: Add 'time' query to impl_perf.
+	* src/vsip/impl/signal-fft.hpp: Likewise.
+	* src/vsip/impl/solver-covsol.hpp: Throw computation error
+	  if decomposition fails.
+	* src/vsip/impl/subblock.hpp (get_local_block): Properly handle
+	  a Subset_block with a by-value superblock.
+	* tests/extdata-output.hpp: Specializations for subblocks and
+	  layout.
+
+2005-09-26  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/fns_elementwise.hpp: Define binary operator^.
+	* tests/view_operators.cpp: Test it.
+
+2005-09-23  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* VERSIONS: New file, describes varius CVS tagged versions of
+	  the software.  Recorded V_0_9 tag.
+
+2005-09-21  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+	
+	Corrections to pass fft_ext tests.
+	* src/vsip/signal-window.cpp: cleaned up an unneeded type
+	* tests/window.cpp: added conditional directive for FFT.
+	* tests/fft_ext/fft_ext.cpp: cleaned up so that it will
+	  deduce the fft type from the first two letters of filename.
+	  Also now runs on single and double precision by default.
+
+2005-09-21  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/ipp.cpp (vsub, vdiv): Swap operands (IPP operands in
+	  in "reverse" order).
+	* src/vsip/impl/ipp.hpp (Serial_evaluator_base): Check that all
+	  operands have the same type.
+	
+	* src/vsip/profile.cpp (No_time::clocks_per_sec): Define it when
+	  VSIP_IMPL_PROFILE_TIMER == 0.
+
+	* configure.ac: Make MPI, IPP, FFTW2, FFTW3, LAPACK, MKL, and
+	  profile timer disabled by default.  Make --with-ipp-suffix
+	  optional.
+	* src/vsip/impl/signal-window.cpp: Remove unused variable, use
+	  index_type to iterate over blackman indices.
+	* src/vsip/impl/signal-fft.hpp: Move definition of member scale_
+	  outside #if to allow compilation with no FFT engines defined.
+
+2005-09-20  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* tests/QMTest/vpp_database.py: Make qmtest properly scan
+	  subdirectories.
+
+2005-09-19  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+	
+	Implemented functions from [signal.windows]
+	* src/vsip/signal.hpp: includes impl/signal-window.hpp.
+	* src/vsip/impl/signal-window.hpp: new file.
+	* src/vsip/signal-window.cpp: new file.
+	* tests/window.cpp: new unit tests.
+
+2005-09-19  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/fft-core.hpp: minor format cleanup, documentation
+	  improvements.
+
+2005-09-19  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: replace all --enable-fftw* and --enable-ipp-fft with
+	  --with-fft={fftw3,fftw2-float,fftw2-double,fftw2-generic,ipp}.
+	  Enable building with fftw2-double.  Add --with-ipp-suffix, and 
+	  require it if using IPP.
+
+2005-09-19  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+
+	Added support for dot, trans and kron functions in [math.matvec]
+	* src/vsip/math.hpp: included impl/matvec.hpp
+	* src/vsip/impl/matvec.hpp: new file
+	* tests/matvec.cpp: new file 
+
+2005-09-18  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/copy_chain.cpp, src/vsip/domain.hpp,
+	  src/vsip/impl/fft-core.hpp, src/vsip/impl/global_map.hpp,
+	  src/vsip/impl/local_map.hpp, src/vsip/impl/signal-conv.hpp,
+	  src/vsip/impl/signal-fft.hpp, tests/distributed-subviews.cpp,
+	  tests/expression.cpp, tests/extdata-matadd.cpp,
+	  tests/extdata-subviews.cpp, tests/extdata.cpp, tests/fft.cpp,
+	  tests/fftm-par.cpp, tests/fftm.cpp, tests/initfini.cpp,
+	  tests/solver-cholesky.cpp, tests/solver-common.hpp,
+	  tests/solver-llsqsol.cpp, tests/solver-qr.cpp,
+	  tests/static_assert.cpp, tests/tensor_subview.cpp,
+	  tests/fft_ext/fft_ext.cpp: Cleanup.
+
+2005-09-18  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* tests/tensor-tranpose.cpp (USE_TRANSPOSE_VIEW_TYPEDEF): Work
+	  around conflicting GCC/ICC requirements for 'typename' keyword.
+	  (HAVE_TRANSPOSE): remove it.
+	* tests/test-precision.hpp: Make temporaries volatile to avoid
+	  ICC FP optimization that artificially increases precision
+	  while measuring precision.
+
+2005-09-18  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/signal-fft.hpp: Fix signatures to allow temporary
+	  views as destinations for Fft and Fftm.
+	* tests/regr_fft_temp_view.cpp: New file, regression for above bug.
+
+2005-09-17  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* tests/fftm-par.cpp: robustify against mysterious behavior
+	  in sethra lam mpi.
+	
+2005-09-17  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* doc/quickstart/quickstart.xml: Mention FFTW, IPP, MKL, and
+	ATLAS.
+
+	* scripts/src-release: Add -v parameter.
+	* GNUmakefile.in: Adjust default HTML rule.
+	* doc/GNUmakefile.inc.in: Do not conditionalize manual
+	generation. 
+
+	* configure.ac (XEP): Just look for "xep".
+	* GNUmakefile.in (XSLTPROCFOFLAGS): Fix typo.
+	(%.pdf): Do not use -out with XEP.
+
+	* GNUmakefile.in (JADE): Define to empty.
+	(PDFJADETEX): Likewise.
+	(XSLTPROCFLAGS): Rename to ...
+	(XSLTPROCFOFLAGS): ... this.
+	(%/html/index.html): Rename to ...
+	(%.html): ... this.
+	(%.fo): Use XLSTPROCFOFLAGS.
+	(%.pdf): Provide rule to copy from the srcdir.
+	(%.html): Likewise.
+	(GNUmakefile): Add more dependencies.
+	* configure.ac (JADE): Don't check for it.
+	(PDFJADETEX): Likewise.
+	* doc/GNUmakefile.inc.in (install): Handle chunked HTML files.
+	
+	* GNUmakefile.in (DOCBOOK_DTD): Remove.
+	(%/html/index.html): New rule.
+	* configure.ac: Remove conflicts.
+
+	* doc/quickstart/quickstart.xml: Add version variable.
+	Use it throughout.  Adjust formatting.  Remove FIXMEs.
+
+2005-09-17  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/fft-core.hpp: '-Wall' cleanup.
+	* tests/fft_ext/fft_ext.cpp: Likewise.
+
+2005-09-17  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: Fix typo.
+
+2005-09-17  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/signal-fft.hpp: fix a real->complex FFTM
+	  stride bug detected by ref-impl/fft-coverage.hpp.
+
+2005-09-16  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+	
+	* src/vsip/impl/aligned_allocator.hpp (VSIP_IMPL_ALLOC_ALIGNMENT):
+	  Macro for default alignment.
+	* src/vsip/impl/signal-conv-common.hpp: Use accumulation trait.
+	* src/vsip/complex.hpp: Cleanup.
+	* src/vsip/matrix.hpp: Cleanup.
+	* src/vsip/tensor.hpp: Cleanup.
+	* src/vsip/vector.hpp: Cleanup.
+	* src/vsip/impl/block-copy.hpp: Cleanup.
+	* src/vsip/impl/extdata.hpp: Cleanup.
+	* src/vsip/impl/lvalue-proxy.hpp: Cleanup.
+	* src/vsip/impl/par-assign.hpp: Cleanup.
+	* src/vsip/impl/par-chain-assign.hpp: Cleanup.
+	* src/vsip/impl/par-expr.hpp: Cleanup.
+	* src/vsip/impl/par-services-mpi.hpp: Cleanup.
+	* src/vsip/impl/reductions.hpp: Cleanup.
+	* src/vsip/impl/refcount.hpp: Cleanup.
+	* src/vsip/impl/signal-conv-ext.hpp: Cleanup.
+	* src/vsip/impl/signal-conv-ipp.hpp: Cleanup.
+	* src/vsip/impl/solver-qr.hpp: Cleanup.
+	* src/vsip/impl/subblock.hpp: Cleanup.
+	
+2005-09-16  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Implement distributed user-storage.
+	* src/vsip/impl/distributed-block.hpp: User-storage functionality,
+	  pass admit, release through to subblock.
+	* src/vsip/dense.hpp: Add user-storage constructor for distributed
+	  blocks.
+	* tests/distributed-user-storage.cpp: Unit tests for distributed
+	  user-storage.
+
+	* src/vsip/impl/copy_chain.hpp (append_offset): New member function,
+	  append a chain, with an offset to each member.
+	* src/vsip/copy_chain.cpp (append_offset): Implement it.
+	* src/vsip/impl/par-chain-assign.hpp: Build send and recv lists
+	  relative to the base address of the subblock.  Offset those lists
+	  when message is sent.  Allows chain to be used even if location of
+	  storage changes, necessary for distributed user-storage blocks.
+	  Use dimension-ordering when building chain.  Clear req_list.
+	* src/vsip/impl/par-services-mpi.hpp (Chain_builder::add): Take
+	  offset instead of address for new chain element.
+	* src/vsip/impl/par-services-none.hpp (Chain_builder::add): Likewise.
+
+	* src/vsip/map.hpp (impl_local_only, impl_global_only): Delineate
+	  local vs global maps.
+	* src/vsip/impl/global_map.hpp (Local_or_global_map): New map
+	  for blocks that can be local or global, depending on how used.
+	* src/vsip/impl/local_map.hpp: Add constructor taking a
+	  Local_or_global_map.
+	
+	* src/vsip/impl/par-expr.hpp (Par_expr_block): Add missing block
+	  bits: dim, inc/decrement_count.
+	* src/vsip/impl/par-util.hpp: Add parallel support functions to
+	  get domain of local subblock and number of patches.
+
+	* src/vsip/impl/setup-assign.hpp: New file, implements early
+	  binding of serial and parallel assignments.
+
+	* tests/util.hpp (create_view): Add variant for user-storage views.
+	 
+	
+2005-09-16  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* tests/QMTest/vpp_database.py: Reimplement the test database.
+	* tests/QMTest/classes.qmc: Adjust to new extension classes.
+
+	* src/vsip/impl/fns_elementwise.hpp: Fix (work around)
+	issues with elementwise operator implementation.
+
+	* src/vsip/impl/ipp.hpp: Add support for binary
+	elementwise operators *, /, +, and -.
+	* src/vsip/impl/ipp.cpp: Likewise.
+
+	* src/vsip/impl/expr_binary_block.hpp: Cleanup.
+	* src/vsip/impl/expr_unary_block.hpp: Cleanup.
+	* src/vsip/impl/expr_scalar_block.hpp: Cleanup.
+	* tests/fns_scalar.cpp: Cleanup.
+
+2005-09-15  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: add --enable-ipp-fft
+	* src/vsip/impl/fft-core.hpp: add IPP FFT driver
+	* src/vsip/impl/signal-fft.hpp: adapt to IPP driver details
+
+2005-09-15  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/fns_elementwise.hpp: Implement unary / binary operators.
+	* tests/view_operators.cpp: Test them.
+
+2005-09-15  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/dispatch-assign.hpp (Tag_serial_assign): Cast
+	  value on assignment.
+
+2005-09-15  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/length.hpp (extent): Take dim as explicit template
+	  parameter.
+	* src/vsip/impl/expr_binary_operators.hpp: Pass explicit dim template
+	  parameter to extent.
+	* src/vsip/impl/expr_functor.hpp: Fix scalar_blocks to be constructed
+	  from extent, pass explicit dimension.
+	* src/vsip/impl/fns_scalar.hpp: Fix expoavg to avoid promotion to
+	  double.
+	* tests/expr-coverage.cpp: Generalize coverage to scalar-view
+	  expressions.
+	* tests/test-storage.hpp: Support for testing scalar-view expressions.
+
+2005-09-15  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/random.hpp (Rand_base<complex<T>>::randu): Force order
+	  of real and imag randu calls.
+	
+2005-09-15  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Use View_block_storage trait for expression blocks.
+	* src/vsip/impl/block-traits.hpp: Add By_value_block_storage
+	  and By_reference_block_storage trait bases.
+	  (View_block_storage) Use By_reference_block_storage as default.
+	  (Expr_block_storage) Remove.
+	* src/vsip/impl/expr_binary_block.hpp: Use View_block_storage to
+	  determine storage.
+	* src/vsip/impl/expr_scalar_block.hpp: Likewise.
+	* src/vsip/impl/expr_ternary_block.hpp: Likewise.
+	* src/vsip/impl/expr_unary_block.hpp: Likewise.
+	* src/vsip/impl/subblock.hpp: Modify View_block_storage traits.
+	* apps/sarsim/cast-block.hpp: Likewise.
+	* tests/expr-coverage.cpp: New file, coverage testing of expressions.
+	* tests/regr_subview_exprs.cpp: New file, regression test for
+	  expressions using row subview of matrix.
+	* tests/test-storage.hpp: Add additional storage types.
+	
+2005-09-15  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* GNUmakefile.in (DOCBOOK_DTD): Remove.	
+	Use OpenJade to generate PDF if XEP is not available.
+	* configure.ac (DOCBOOK_DTD): Remove.
+	* doc/quickstart/quickstart.xml: Use DocBook 4.2.
+	
+	* GNUmakefile.in (XEP): New variable.
+	(XSLTPROC): Likewise.
+	(docbook_xsl): New internal variable.
+	(docbook_pdf): Likewise.
+	(docbook_html): Likewise.
+	(docbook_dsssl): Likewise.
+	(%.fo): New rule.
+	(%.html): Likewise.
+	(%.pdf): Likewise.
+	* configure.ac: Check for XEP and XSLTPROC.
+	* doc/GNUmakefile.inc.in (doc_pdf_manuals): New variable.
+	(doc_html_manuals): Likewise.
+	(doc_manuals): Define in terms of previous variables.
+	(doc): Revise.
+	* doc/gpl.xml: Remove.
+	* doc/opl.xml: Likewise.
+
+2005-09-14  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+	
+	Implemented random generator class.
+	* src/vsip/random.hpp: New file, implements Rand class.
+	* tests/random.cpp: new unit tests.
+
+2005-09-13  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Use lvalue factory to determine const_View lvalue type and
+	use const_reference_type from Lvalue_factory_type (closes issue #54).
+	* src/vsip/matrix.hpp: Use Lvalue_factory_type to deterine
+	  const_Matrix::operator() return value.  Use factory 
+	  const_reference_type for Matrix and const_Matrix.
+	* src/vsip/tensor.hpp (const_Tensor): Likewise.
+	* src/vsip/vector.hpp (const_Vector): Likewise.
+	* src/vsip/impl/lvalue-proxy.hpp: Add const_reference_type typedef.
+	* tests/lvalue-proxy.cpp: Add const_reference_type to PseudoBlock.
+	* tests/regr-const_view_at_op.cpp: New file, regression test
+	  for const_View operator().
+	
+2005-09-13  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Implement generic matrix/vector products.
+	* src/vsip/math.hpp: Include matvec-prod.
+	* src/vsip/impl/matvec-prod.hpp: New file, implements generic
+	  matrix-matrix, matrix-vector, and vector-matrix products.
+	* tests/matvec-prod.cpp: New file, unit tests for matvec products.
+
+	Reorganize common test utilities for random numbers and precision.
+	* tests/test-precision.hpp: New file, compute precision of datatype.
+	* tests/test-random.hpp: New file, generate random matrix.
+	* tests/solver-common.hpp: Remove above functionality.
+	* tests/solver-cholesky.hpp: Include new files.
+	* tests/solver-covsol.hpp: Likewise.
+	* tests/solver-llsqsol.hpp: Likewise.
+	* tests/solver-qr.hpp: Likewise.
+	
+2005-09-12  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* apps/sarsim/sarsim.hpp: Optimizations: perform range processing
+	  in cube_in_ with explicit corner-turn before azimuth processing.
+	  Move frame shift into azimuth processing loop.
+
+2005-09-12  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/matrix.hpp: Reverse formatting changes.
+
+2005-09-12  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/dispatch-assign.hpp: Avoid Tag_serial_assign for
+	  blocks with split storage.
+	* src/vsip/impl/signal-conv-ext.hpp (impl_performance): Make const.
+	* src/vsip/impl/signal-conv-ipp.hpp: Likewise.
+	* src/vsip/impl/signal-conv.hpp: Likewise.
+
+2005-09-10  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* apps/sarsim/sarsim.hpp
+	  (init_io, fini_io): New functions to move input and output out of
+	  processing loop.
+	  (cube_in_, cube_out_): Store input and output cubes separately.
+	  (read_frame, write_frame): Read and write single frames.
+	  (io_process): Perform multi-buffering of cube_in_ and cube_out_.
+	* apps/sarsim/GNUmakefile: Add option to enable optimization.
+	* apps/sarsim/histcmp.c: Add include for string.h.
+	* apps/sarsim/mit-sarsim.cpp: Add -profile option.
+	* apps/sarsim/sims-48-4: Pass through commandline.
+	* apps/sarsim/sims-8-4: Likewise.
+	* apps/sarsim/vis-sims-8-4: Pass -nframe to dat2xv.
+	
+2005-09-10  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/solver-cholesky.hpp: New file, implement Cholesky
+	  factorization object.
+	* src/vsip/solvers.hpp: Include solver-choleksy.
+	* src/vsip/impl/lapack.hpp: Add veneers for cholesky factorization
+	  and solver routines.
+	* tests/solver-cholesky.cpp: New file, test cases for cholesky.
+
+2005-09-10  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/signal-fft.hpp, src/vsip/impl/fft-core.hpp:
+	  fixes & cleanup for parallel fftm
+	* tests/fftm.cpp: add fifth row/column to help catch alignment
+	  and fencepost sensitivities.
+	* tests/fftm-par.cpp: new; parallel complex-fftm tests.  
+
+2005-09-09  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/matrix.hpp, src/vsip/tensor.hpp, src/vsip/vector.hpp,
+	  src/vsip/impl/par-chain-assign.hpp, src/vsip/impl/subblock.hpp,
+	  src/vsip/impl/dispatch-assign.hpp: Break #include loop.
+	* src/vsip/impl/distributed-block.hpp: Make Distributed_block::
+	  subblock() return the subblock number, not the subblock pointer.
+	* src/vsip/impl/point-fcn.hpp: declare domain() functions inline
+	  to prevent multiple-definitions link error.
+
+2005-09-08  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: Use mpicxx / mpiCC to determine MPI-related
+	build flags.
+
+2005-09-07  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/signal-fft.hpp: Fix compilation errors.
+
+2005-09-07  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/solver-covsol.hpp: New file, implement covsol().
+	* src/vsip/impl/solver-llsqsol.hpp: New file, implement llsqsol().
+	* src/vsip/solvers.hpp: Include solver-{covsol,llsqsol}.hpp.
+	* tests/solver-common.hpp: New file, common bits for solver tests.
+	* tests/solver-covsol.cpp: New file, tests covsol().
+	* tests/solver-llsqsol.cpp: New file, tests llsqsol().
+	* tests/solver-qr.cpp: Use common bits from solver-common.
+
+2005-09-07  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/lapack.hpp: Avoid preprocessor issue with Intel C++.
+
+2005-09-07  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Use IPP to perform Convolution (when available/possible):
+	* src/vsip/signal.hpp: Include signal-types and signal-conv.
+	* src/vsip/impl/ipp.cpp (conv): Shims for IPP convolution functions.
+	* src/vsip/impl/ipp.hpp (conv): Likewise.
+	* src/vsip/impl/signal-conv-common.hpp: New file, common declarations
+	  and functions for convolution.
+	* src/vsip/impl/signal-conv-ext.hpp: Reorganize into
+	  Convolution_impl class, meant to be derived from by Convolution.
+	  Use functionality from signal-conv-common.
+	* src/vsip/impl/signal-conv-ipp.hpp: New file, IPP implementation of
+	  convolution.
+	* src/vsip/impl/signal-conv.hpp: Common Convolution class, derives
+	  implementation from Convolution_impl.
+	* src/vsip/impl/signal-types.hpp: New file, contains common signal
+	  types.
+	* tests/convolution.cpp: Extend tests to cover different input sizes
+	  and additional types.
+
+	New benchmarks and updates.
+	* benchmarks/copy.cpp: New file, benchmark view copy performance.
+	* benchmarks/fft_ext_ipp.cpp: New file, benchmark performance of
+	  IPP FFT using ext_data to access data in VSIPL++ block.
+	* benchmarks/loop.hpp: Optionally dump profile info after each size.
+	* benchmarks/main.cpp: Change test() to return success, profile flag.
+	* benchmarks/conv.cpp: Select region of support to benchmark.
+	* benchmarks/conv_ipp.cpp: Change test() to return success.
+	* benchmarks/fft.cpp: Likewise.
+	* benchmarks/fft_ipp.cpp: Likewise.
+	* benchmarks/qrd.cpp: Likewise.
+	* benchmarks/sumval.cpp: Likewise.
+	* benchmarks/vmul.cpp: Likewise.
+
+	Profile accumulate mode.
+	* src/vsip/profile.cpp: Add profile mode to accumulate timer data
+	  (provide an average for all events rather than a timeline).
+	* src/vsip/impl/profile.hpp: Likewise.
+
+	* configure.ac: Use -lpthreads for MKL 7.x
+	
+2005-09-02  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	Add support for parallel FFTM on FFTW2, FFTW3; transpose FFT 
+	and FFTM arguments where needed.
+
+	* src/vsip/impl/fft-core.hpp: update to support parallel FFTM
+	  for both FFTW2 and FFTW3.  Clean up explicit instantiations. 
+	  Adapt to explicit use of decimation exponent in interface.
+	* src/vsip/impl/signal-fft.hpp: map VSIPL++ "sd" and "dir"
+	  arguments to sane axis and decimation exponent.  Use Dense 
+	  blocks for temporaries until FFT drivers are adapted to
+	  handle gaps in argument arrays.  Handle all necessary
+	  transpositions for 2D, 3D Fft and Fftm.  Perform Fftm on 
+	  local views of arguments, for parallel execution.  Let
+	  FFT engines which can, do their own scaling.  Fix misuse
+	  of temp storage in by_value forms of Fft and Fftm.
+	* src/vsip/impl/local_map.hpp: make Is_par_same_map<> and
+	  Map_equal<> work for local maps.
+	* tests/fftm.hpp: robustify one test.
+
+	Tested on PPC64/gcc-3.4/FFTW3, x86/gcc-4.0/FFTW2, 
+	x86-64/gcc-4.0/FFTW3, x86-64/icc-8.1/FFTW3.  (Parallel FFTM,
+	argument transposition not exercised yet: tests to come next.)
+
+2005-09-01  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Fix bugs with Ext_data for split data and subviews to split data.
+	* src/vsip/impl/extdata.hpp: Use storage_type to determine
+	  pointer type.
+	* src/vsip/impl/layout.hpp (Storage::offset): Shift pointer by
+	  offset.
+	* src/vsip/impl/subblock.hpp (Component_block::impl_stride): Use
+	  complex_type to determine stride adjustment.
+	  (Block_layout<Component_block>): Use complex_type to determine
+	  if block maintains unit-stride.
+	  (Subset_block::impl_data): Use storage_type::offset to adjust
+	  pointer.
+	* src/vsip/impl/fast-block.hpp: Add 3-dim specialization.
+	* tests/extdata-subviews.cpp: Add test coverage for vectors
+	  with split storage.
+	* tests/regr_ext_subview_split.cpp: New file, regression test that
+	  Ext_data access to real/imaginary subviews of split-complex data
+	  is correct.
+
+2005-09-01  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+
+	* tests/fft_ext/*fftop_f*: moved to...
+	* tests/fft_ext/data/*
+
+2005-09-01  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+
+	* tests/fft_ext/fft_ext.cpp: New file, fft on external
+	  data files taken from C VSIPL test suite.
+	* tests/fft_ext/*fftop_f*: New files, data for above.
+	
+2005-08-27  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* tests/tensor-transpose.cpp, src/vsip/tensor.hpp: 
+	  insert "template" and "typename" where gcc-4 wants 'em.
+
+2005-08-27  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Benchmarks for QR, FFT, convolution, and vector-multiply.
+	* configure.ac: Set IPP search libs to ipps and ippsm7.
+	* benchmarks/loop.hpp: Use ops_per_point to control gain.
+	* benchmarks/main.cpp: Call defaults(), new "-param" option.
+	* benchmarks/ops_info.hpp: New file, op count info.
+	* benchmarks/conv.cpp: New file, vsip::Convolution benchmark.
+	* benchmarks/conv_ipp.cpp: New file, IPP convolution benchmark.
+	* benchmarks/fft.cpp: New file, vsip::Fft benchmark.
+	* benchmarks/fft_ipp.cpp: New file, IPP FFT benchmark.
+	* benchmarks/qrd.cpp: New file, vsip::qrd benchmark.
+	* benchmarks/vmul.cpp: Use ops_info.hpp, set defaults.
+	* benchmarks/vmul_ipp.cpp: New file, IPP vector-mult benchmark.
+	* src/vsip/impl/metaprogramming.hpp (Is_complex): New trait.
+
+	Function inlining.
+	* src/vsip/impl/counter.hpp (Checked_counter::operator+=):
+	  declare inline (avoid GCC -Winline warning).
+	  (Checked_counter::operator-=): Likewise.
+	* src/vsip/impl/domain-utils.hpp (block_domain): Inline.
+	* src/vsip/impl/length.hpp (extent): Inline.
+	  (total_size): New function.
+
+	Non-blocked QR support.
+	* src/vsip/impl/lapack.hpp: Add functions for non-blocked QR (geqr2).
+	* src/vsip/impl/solver-qr.hpp (Qrd_impl): Support non-blocked QR.
+
+2005-08-27  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Distributed subset subviews.
+	* src/vsip/impl/dist.hpp (Whole_dist): New class for non-distributed
+	  dimension.
+	* src/vsip/impl/distributed-block.hpp (Distributed_block::subblock):
+	  New member function.
+	* src/vsip/impl/par-expr.hpp (Par_expr_block): Add missing
+	  block typedefs reference_type and const_reference_type.
+	* src/vsip/impl/par-services-mpi.hpp: Support complex data types.
+	* src/vsip/impl/subblock.hpp: Handle maps for Subset_block.
+	* src/vsip/impl/view_traits.hpp: Fixe local_type for complex views.
+	* src/vsip/map_fwd.hpp (Map_subdomain): Forward decl.
+	* src/vsip/map.hpp (Map_subdomain): Implementation.
+	  (Map<>::applied_dom): New member function.
+	  (Map<>::impl_local_from_global_dom): New member function.
+	  (Dist_factory): Support Whole_dist.
+	* src/vsip/support.hpp (distribution_type): New enum 'whole'.
+	* tests/distributed-block.cpp: Coverage for complex types.
+
+	* benchmarks/vmul.cpp: Remove unused variable, fix message.
+	* src/vsip/tensor.hpp: Minor formatting.
+
+2005-08-25  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+	
+	* src/vsip/impl/fns_elementwise.hpp: added expoavg().
+	* src/vsip/impl/fns_scalar.hpp: likewise.
+
+2005-08-25  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: Add disable-exceptions option and check for ghs compiler.
+	* GNUmakefile.in: Use $(CXXDEP) command instead of hardcoding '$(CXX) -M'.
+	* src/vsip/support.hpp: Check whether exceptions are to be used.
+	* src/vsip/copy_chain.hpp: Add missing <cassert> include.
+	* src/vsip/dense.hpp: Fix name collision.
+	* src/vsip/impl/aligned_allocator.hpp: Use THROW macro.
+	* src/vsip/impl/dist.hpp: Add dummy return statements.
+	* src/vsip/impl/fast-block.hpp: Fix name collision.
+	* src/vsip/impl/par-services-none.hpp: Add missing friend declarations.
+
+2005-08-25  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+	* src/vsip/tensor.hpp: added subview type transpose
+	* src/vsip/impl/subblock.hpp: updated Permuted_block
+	  class (store data by-value, added copy constructor).
+	  Fixed specialization macro and reverse permutations.
+	* tests/tensor-transpose.cpp: fixed declarations and
+	  reverse permutations.
+
+2005-08-25  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/domain.hpp: fix improper member specialization
+	* src/vsip/tensor.hpp: add "typename" where required.
+
+2005-08-23  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Implement QR solver.
+	* configure.ac: Detect LAPACK libraries, including Intel MKL.
+	* src/vsip/math.hpp: Include math-enum.hpp.
+	* src/vsip/solvers.hpp: New file.
+	* src/vsip/impl/lapack.hpp: New file, abstracts blas and lapack
+	  APIs.
+	* src/vsip/impl/math-enum.hpp: New file, [math.enum] enumerations.
+	* src/vsip/impl/solver-qr.hpp: New file, implement QR solver.
+	* src/vsip/impl/temp_buffer.hpp: New file, allocate temporary
+	  buffer.
+	* tests/solver-qr.cpp: New file, unit tests for QR solver.
+	* tests/test.hpp (almost_equal): Overload for complex.
+	
+	* vsipl++.pc.in: New variables for cppflags and cxxflags.  Include
+	  LDFLAGS in Libs.
+
+	* src/vsip/dense.hpp: Fix formatting.
+	* tests/regr_prox_lvalue.cpp: Fix file date.
+
+2005-08-23  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/fns_scalar.hpp (mul): Fix bug.
+	* src/vsip/impl/reductions.hpp: Use Block_layout to determine order.
+	* src/vsip/impl/reductions-idx.hpp: Likewise.
+
+2005-08-22  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/signal-fft.hpp: use Dense, not Fast_block
+	for FFTM temporaries until prepared to step around padding.
+	* tests/fftm.cpp: enable tests, remove chatter, avoid
+	trying to make zero-size subviews.
+
+2005-08-18  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* tests/matrix-transpose.cpp: Unit tests for matrix transpose.
+	* tests/tensor-transpose.cpp: Unit tests for tensor transpose.
+
+2005-08-17  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/signal-fft.hpp: remove "#if 0" code.
+	* tests/fftm.cpp: comment out iffy tests until Fftm<> debugged.
+
+2005-08-17  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/signal-fft.hpp, fft-core.hpp: add support for
+	  Fftm<>, on (FFTW2, FFTW3) x (c<->c, r<->c, c<->r).  (Much of
+	  it remains untested.)  Document more.  Fix args to in-place 
+	  FFTW2.  Fix FFTW3 complex->real argument clobbering.
+	  Improve name-mangling conformance ("fft" -> "impl_fft", etc.),
+	  namespace usage ("dimension_type" -> "vsip::dimension_type").
+	* tests/fftm.cpp: New.  Tests complex <-> complex.
+	* src/vsip/domain.hpp: make member impl_at() non-const.
+
+2005-08-16  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/matrix.hpp: Added support for transpose subview. 
+	  Cleaned up type definitions.
+	* src/vsip/impl/subblock.hpp: Updated Transposed_block
+	  class to store by-value.  Added copy constructor.
+	  Fixed references to member holding underlying block
+	  (from blk_. to blk_->).
+
+2005-08-12  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: Check that timers will compile before using.
+	  Fix typo for ipps header detection.
+	* src/vsip/impl/profile.hpp: Add empty timer policy No_timer.
+	  Selectively compile timer code based on VSIP_IMPL_PROFILE_TIMER. 
+	  Rename timer policies for coding standard.
+	* src/vsip/profile.cpp: Likewise.
+
+	* apps/sarsim/sarsim.cpp (report_performance): Fix decl/defn
+	  mixmatch (missing 'const').
+	* src/vsip/impl/signal-fft.hpp (impl_performance): Make 'const'.
+
+2005-08-12  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+	
+	Add performance measurement for sarsim.
+	* apps/sarsim/sarsim.hpp (SarSim): Add processing timers.
+	  (SarSim::report_performance): New function, report performance
+	  measuered by timers.
+	  (SarSim): Fix off-by-one loop conditions for pt_npols.
+	* apps/sarsim/mit-sarsim.cpp: Call report_performance, replace
+	  assertion with exception.
+
+	* configure.ac (VSIP_IMPL_PROFILE_HARDCODE_CPU_SPEED): Define with
+	  CPU speed in MHz if --enable-cpu-mhz option given.
+	* src/vsip/profile.cpp (VSIP_IMPL_PROFILE_HARDCODE_CPU_SPEED): Use it
+	  if defined.
+	  (read_cpu_info): Move /proc/cpuinfo into separate function,
+	  use for both Pentium TSX and x86_64 TSC timers.
+
+	* src/vsip/GNUmakefile.inc.in (install): add dependency on libvsip.a
+	
+2005-08-12  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+	
+	* benchmarks/GNUmakefile.inc.in: New file.
+	* benchmarks/loop.hpp: New file, loop driver for benchmarks with 1-dim.
+	* benchmarks/main.cpp: New file, common main for benchmarks.
+	* benchmarks/sumval.cpp: New file, benchmark for sumval reduction.
+	* benchmarks/vmul.cpp: New file, benchmark for vector multiply.
+	* src/vsip/impl/copy_chain.hpp: Add missing include.
+
+2005-08-11  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/subblock.hpp: Corrected implementation of
+	  the direct data access functions for the diag subview.
+	* tests/extdata-subviews.cpp: Modified diag subview test
+	  to use direct data access.
+	
+2005-08-11  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: Do sanity checks on std::complex and
+	IPP's types.
+
+2005-08-10  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* doc/quickstart/quickstart.xml: Fill in organization section.
+
+	* doc/GNUmakefile.inc.in (doc_manuals): Add dependency on gpl.xml.
+	* doc/gpl.xml: New file.
+	* doc/quickstart/quickstart.xml: Write chapter on VSIPL++
+	licensing.  Add GPL as an appendix.
+
+2005-08-10  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+	
+	* src/vsip/impl/ipp.cpp: Move function calls out of assert predicate.
+
+2005-08-10  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Fix bug preventing nested unary functions.
+	* src/vsip/impl/expr_ternary_block.hpp: Add specialization of
+	  Expr_block_storage to hold Ternar_expr_blocks by value.
+	* src/vsip/impl/expr_unary_block.hpp (Unar_expr_block): Use
+	  Expr_block_storage trait to determine how to hold operand block.
+	  Add specialization of Expr_block_storage for Unary_expr_block.
+
+	* src/vsip/impl/expr_serial_evaluator.hpp: Comment out unused
+	  parameters.
+	* tests/extdata-subviews.cpp: Fix missing 'typename' keyword.
+
+2005-08-10  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+	
+	* apps/sarsim/simd-48-4: New file, run large synthetic data (double).
+	* apps/sarsim/sims-48-4: New file, run large synthetic data (single).
+	* apps/sarsim/sims-real: New file, run large real data.
+	* apps/sarsim/chk-simd-48-4: New file, checks results of simd-48-4.
+	* apps/sarsim/chk-sims-48-4: New file, checks results of sims-48-4.
+	* apps/sarsim/vis-real: New file, visual real data output.
+	* apps/sarsim/vis-sims-48-4: New file, visual large synthetic output.
+
+2005-08-10  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: Check for Intel's IPP.
+	* src/vsip/GNUmakefile.inc.in: Compile IPP wrapper.
+	* src/vsip/impl/expr_serial_evaluator.hpp: New serial expression 
+	dispatcher.
+	* src/vsip/impl/expr_serial_dispatch.hpp: Likewise.
+	* src/vsip/impl/ipp.hpp: New IPP wrapper.
+	* src/vsip/impl/ipp.cpp: Likewise.
+	* src/vsip/impl/metaprogramming.hpp: Add missing <complex> header.
+	* src/vsip/impl/type_list.hpp: New type list templates.
+	* src/vsip/impl/dispatch-assign.hpp: Use new serial dispatch.
+	* tests/expr-test.cpp: Add tests for serial dispatch.
+	
+2005-08-10  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/matrix.hpp: Add impl_diagblock_type to Matrix.
+	* src/vsip/impl/subblock.hpp: Fix typo.
+
+2005-08-09  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/fns_scalar.hpp: fixed bug in euler() function
+
+2005-08-09  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/matrix.hpp: Added diag() functions.
+	* src/vsip/impl/subblock.hpp: Added Diag_block class.
+	* tests/extdata-subviews.cpp: Filled in diag subview test.
+
+2005-08-09  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* tests/regr_proxy_lvalue_conv.cpp: New file, regression test for
+	  proxy lvalue conversion problems.
+
+2005-08-07  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/signal-fft.hpp: fix #ifdefs to use names we define.
+
+2005-08-08  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/index.hpp: Removed. Replaced by...
+	* src/vsip/impl/vertex.hpp: ...this.
+	* src/vsip/domain.hpp: Use new Vertex template.
+	* src/vsip/impl/layout.hpp: Adjust.
+	* tests/index.cpp: Adjust.
+	* tests/view.cpp: Adjust.
+	* src/vsip/impl/length.hpp: New Length template.
+	* src/vsip/impl/expr_scalar_block.hpp: Use it.
+	* src/vsip/impl/expr_binary_operators.hpp: Use it.
+	* src/vsip/impl/expr_functor.hpp: Use it.
+
+2005-08-07  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/signal-fft.hpp: add 1D real->complex,
+	  complex->real, more of 2D, 3D.  Use the correct 
+	  array size.  Make by_value() delegate to by_ref().
+	  Move benchmark timing calls to Fft_imp members.
+	* src/vsip/impl/signal-fft.hpp: add 1D real->complex,
+	  complex->real for FFTW2, FFTW3, most of 2D, 3D.
+	* tests/fft.cpp: test 1D real->complex, complex->real.
+
+2005-08-05  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/fns_elementwise.hpp: Remove stray semicolons.
+
+	* src/vsip/fft-double.cpp: Remove dummy function.
+	* src/vsip/fft-float.cpp: Likewise.
+
+	* apps/sarsim/sarsim.hpp (SarSim<T>::polarity_type): Remove
+	pt_last and pt_size; use pt_npols instead throughout.
+
+2005-08-05  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/signal.hpp: Use signal-conv-ext.
+	* src/vsip/impl/signal-conv-ext.hpp: Bugfix: use stride when
+	  accessing direct data.
+	* tests/regr_conv_to_subview.cpp: New file, regression test
+	  for convolution bug using ext_data.
+
+2005-08-05  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* apps/sarsim/GNUmakefile: Build dat2xv.
+	* apps/sarsim/dat2xv.c: New file, program to generate images
+	  from mit-sarsim output.
+	* apps/sarsim/sarsim.cpp: Add empty write_output_header() function.
+	* apps/sarsim/mit-sarsim.cpp: Separate output of frame header
+	  from frame data.  Bug fixes.
+	* apps/sarsim/sarsim.hpp: Fix off-by-one error with polarizations.
+	  Fix size mismatch when applying equalization weights.
+	* apps/sarsim/simd-8-4: Use mit-sarsim.
+	* apps/sarsim/sims-8-4: Use mit-sarsim.
+	* apps/sarsim/chk-sims-8-4: Script cleanup.
+	* apps/sarsim/vis-sims-8-4: New script, generate image.
+	* src/vsip/signal.hpp: Use signal-conv instead of signal-conv-ext.
+
+2005-08-05  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/point-fcn.hpp (extent): Rename to extent_old.
+	  Eventually replace usage with 'extent' function returning Length.
+	* src/vsip/impl/point.hpp: Likewise.
+	* src/vsip/impl/block-copy.hpp:: Likewise.
+	* src/vsip/impl/extdata.hpp: Likewise.
+	* src/vsip/impl/par-assign.hpp: Likewise.
+	* src/vsip/impl/par-chain-assign.hpp: Likewise.
+	* src/vsip/impl/par-util.hpp: Likewise.
+	* tests/distributed-block.cpp: Likewise.
+	* tests/distributed-subviews.cpp: Likewise.
+	* tests/fast-block.cpp: Likewise.
+	* tests/par_expr.cpp: Likewise.
+	* tests/user_storage.cpp: Likewise.
+	* tests/view.cpp: Likewise.
+
+2005-08-04  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/block-traits.hpp (Flexible_access_tag): New data
+	  access tag.
+	* src/vsip/impl/choose-access.hpp: Distinguish between data may
+	  be copied (use flexible) and must be copied (use copy).
+	* src/vsip/impl/extdata.hpp: Implement flexible access to determine
+	  whether to copy data at runtime.
+	* src/vsip/impl/layout.hpp: Applied_layout specialization for 3-dim
+	  Stride_unit_align.  Separate Storage traits (in Storage) from
+	  implementation (new class Allocated_storage).
+	* src/vsip/impl/fast-block.hpp: Use Allocated_storage.
+	* tests/extdata-output.hpp: Handle additional types.
+	* tests/extdata-runtime.cpp: New file, unit tests for runtime
+	  determination of access method.
+	* tests/plainblock.hpp: Use Allocated_storage.
+	* examples/GNUmakefile.inc.in: Remove space after ld -L option.
+
+2005-08-04  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* apps/sarsim/GNUmakefile: Add mit-sarsim target.
+	* apps/sarsim/mit-sarsim.cpp: Fix typo.
+	* apps/sarsim/sarsim.cpp (SimpleSarSim): New class.
+	* apps/sarsim/sarsim.hpp: Fix typo.
+
+2005-08-03  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* apps/sarsim/sarsim.cpp: Strip all code.
+	* apps/sarsim/sarsim.hpp: New file, containing refactored form of
+	old sarsim.cpp.
+	* apps/sarsim/mit-sarsim.cpp: New file.
+	* GNUmakefile: Remove GCC-isms.
+
+	* apps/sarsim/azimuth-process.hpp: Remove.
+	* apps/sarsim/range-process.hpp: Remove.
+	* apps/sarsim/sarsim.cpp: Fold range-processing and
+	azimuth-processing into a single routine.  Move I/O out of the
+	core routine.
+
+2005-08-02  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Update par-services-none.
+	* src/vsip/copy_chain.cpp: New file, Copy_chain implementation.
+	* src/vsip/impl/copy_chain.hpp: New file, pseudo DMA chain for
+	  par-services-none.
+	* src/vsip/impl/par-assign.hpp: Update to new PSFs (get_local_view).
+	* src/vsip/impl/par-chain-assign.hpp: Add 'disable_copy' to force
+	  local messages (increases test coverage for par-services-none).
+	* src/vsip/impl/par-services-none.hpp: Support pseudo DMA chains.
+	* tests/distributed-block.cpp: Enable testing of old parallel
+	  assigns.
+	* tests/mpi.cpp: Removed.
+
+2005-08-02  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/expr_operations.hpp: Make operators and functors conform with
+	std::unary_function and std::binary_function.
+	* src/vsip/impl/expr_functor.hpp: Likewise.
+	* src/vsip/impl/expr_unary_block.hpp: Likewise.
+	* src/vsip/impl/expr_binary_block.hpp: Likewise.
+	* src/vsip/impl/expr_ternary_block.hpp: Likewise.
+	* src/vsip/impl/fns_elementwise.hpp: Likewise.
+	* src/vsip/impl/reductions.hpp: Likewise.
+	* src/vsip/impl/reductions-idx.hpp: Likewise.
+	* src/vsip/impl/fns_userelt.hpp: Define user extension function mechanism.
+	* src/vsip/math.hpp: Use it.
+	* tests/fns_userelt.cpp: Test it.
+
+2005-08-02  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* apps/sarsim/range-process.hpp (RangeProcess<T>::i_coef_):
+	Remove.
+	(RangeProcess<T>::q_coef_): Likewise.
+	(RangeProcess<T>::RangeProcess): Don't set them.
+
+	* apps/sarsim/range-process.hpp (RangeProcess<T>::vec_iq_): Remove.
+	(RangeProcess<T>:timer_copy1_): Likewise.
+	(RangeProcess<T>::process): Do not read data here.
+	* apps/sarsim/sarsim.cpp (process): Read it here instead.
+
+	* apps/sarsim/GNUmakefile: Remove USE_EXT_FFT logic.
+	(sarsim): Do not link with fft-fftw-impl.o.
+	* apps/sarsim/azimuth-process.hpp: Remove USE_EXT_FFT logic.
+	* apps/sarsim/range-process.hpp: Likewise.
+	(RangeProcess<T>::RangeProcess): Do not use first_.
+	(RangeProcess<T>::process): Remove #if 0'd code.
+	(RangeProcess<T>.first_): Remove.
+	* apps/sarsim/fft-fftw-impl.cpp: Remove.
+	* apps/sarsim/fft-fftw-impl.hpp: Likewise.
+	* apps/sarsim/fft-fftw.hpp: Likewise.
+
+2005-08-01  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* doc/quickstart/quickstart.xml: Correct spelling of <envar>.
+
+2005-07-31  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/fft-core.hpp, signal-fft.hpp: reorganize and
+	simplify to mimimize cut'n'paste to support multiple FFT 
+	implementations.  Enable 1D FFTW2 real->complex transform, 
+	maybe complex->real too.  Change more names "FFT" -> "Fft".
+
+2005-07-31  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* doc/quickstart/quickstart.xml: Use <envvar> around
+	PKG_CONFIG_PATH.
+
+	* src/vsip/profile.cpp (PosixTime::clocks_per_sec): Define.
+	(PosixRealtime::clocks_per_sec): Likewise.
+	(PentiumTSCTime::clocks_per_sec): Likewise.
+	(X86_64_TSCTime::clocks_per_sec): Likewise.
+
+2005-07-28  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* tests/reductions.cpp: Fix how expected value for meansqval is
+	  computed.
+	* tests/test-storage.hpp: Use index_type for get_nth and put_nth
+	  index parameter.
+	* tests/test.hpp: Use relative and absolute error to compare
+	  floating point values.
+
+2005-07-28  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/subblock.hpp: Fix typo, referencing old tuple members.
+
+2005-07-28  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* tests/reduction.cpp: Fix bug computing expected value for meanval.
+
+2005-07-28  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/extdata.hpp (Desired_block_layout): Keep
+	  pack_type same if access_type is direct.
+	* src/vsip/impl/subblock.hpp: Add direct data access for
+	  Component_block, Subset_block, Transpose_block, Sliced2_block.
+	* tests/extdata-subviews.cpp: Tests for subview direct data access.
+	* src/vsip/impl/fast-block.hpp: Make direct data access interface
+	  public.
+	* tests/plainblock.hpp: Likewise.
+
+2005-07-28  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+	
+	* src/vsip/impl/reductions.hpp: fixed meanval to handle
+	  complex types correctly.
+	
+2005-07-27  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+	
+	* src/vsip/dense.hpp: added default argument for update to 
+	  admit()/release().
+
+2005-07-26  Don McCoy  <don@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/dense.hpp: Fixed size(1,0) bug
+	* src/vsip/support.hpp: renamed tuple Dim0/1/2 to impl_dim0/1/2
+	* tests/user_storage.cpp: as above.
+	
+2005-07-26  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/complex.hpp: Remove using directives.  Include
+	  complex-decl.hpp and math.hpp.
+	* src/vsip/impl/complex-decl.hpp: New file, Complex
+	  declarations not covered by fns_elementwise.hpp.
+	* src/vsip/impl/fast-block.hpp: Remove complex.hpp include.
+	* src/vsip/impl/fns_elementwise.hpp: Import vsip::impl::{tan,tanh}
+	  into vsip::.
+	* src/vsip/impl/layout.hpp: Include complex-decl.hpp instead of
+	  complex.hpp.
+	* src/vsip/tensor.hpp: Include dispatch-assign.hpp.
+	* tests/complex.cpp: Test coverage for complex functions ambiguities.
+	* tests/test.hpp: Remove unnecessary include of cmath.
+
+2005-07-23  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* configure.ac (exp10): AC_CHECK_DECL it.
+	(exp10f): Likewise.
+	(exp10l): Likewise.
+	* src/vsip/impl/fns_scalar.hpp (<vsip/impl/config.hpp>): Include
+	it.
+	(::exp10): Do not use it.
+	(exp10): Define, with various overloads, conditionalized on
+	whether exp10, exp10f, and exp10l are available in the standard
+	library.  
+	
+	* src/vsip/impl/allocation.hpp (<vsip/impl/config.hpp>): Include
+	it, instead of ...
+	(<vsip/impl/acconfig.hpp>): .. this.
+	* src/vsip/impl/acconfig.hpp (<vsip/impl/config.hpp>): Include
+	it, instead of ...
+	(<vsip/impl/acconfig.hpp>): .. this.
+
+2005-07-22  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* tests/QMTest/vpp_database.py (VPPDatabase.GetResource): Fix
+	typo.
+
+2005-07-22  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* configure.ac (AR): Substitute it.
+	* GNUmakefile.in: Use @AR@.  Exclude srcdir prefix from norm_dir.
+	* src/vsip/dense.hpp: Reorganize to better vectorize with ICC.
+	  (Dense_storage): New class, similar to Storage that Dense_impl
+	  derives from.
+	* src/vsip/impl/profile.hpp: Determine clocks_per_second at runtime.
+	* src/vsip/profile.cpp: Likewise.
+	* src/vsip/impl/reductions.hpp: New file, implements
+	  [math.fns.reductions]
+	* src/vsip/impl/reductions-idx.hpp: New file, implements
+	  [math.fns.reductidx]
+	* src/vsip/math.hpp: Include reductions{,-idx}.hpp.
+	* src/vsip/support.hpp: Defines for loop vectorization pragmas.
+	* tests/distributed-block.cpp: Use get_np_square.
+	* tests/reductions-bool.cpp: New file, tests for boolean reductions.
+	* tests/reductions.cpp: New file, tests for reductions.
+	* tests/reductions-idx.cpp: New file, tests for index reductions.
+	* tests/test-storage.hpp: Support tensors.
+	* tests/util-par.hpp: Disambiguate call to sqrt().
+
+2005-07-20  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* GNUMakefile.in (check): Move actions into ...
+	* tests/GNUmakefile.inc.in: ... this new file.  Automatically copy
+	QMTest extension classes.
+
+2005-07-19  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/aligned_allocator.hpp: Fix printf format.
+	* src/vsip/impl/expr_binary_block.hpp: Likewise.
+	* src/vsip/impl/par-util.hpp: Remove unnecessary variable.
+	* tests/fft.cpp: Gate sinl(), cosl() with ifdef.  Fix ICC control
+	  flow warning.
+
+2005-07-18  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/dist.hpp (impl_local_from_global_index):
+	  Correct return type.
+	* src/vsip/map.hpp (impl_local_from_global_index): Likewise.
+
+2005-07-15  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/{impl/view_traits,vector,matrix,tensor}.hpp:
+	disambiguate impl_View constructors that take a "T const&"
+	argument in the same position as a length_type, to allow
+	views of blocks with length_type elements.
+
+2005-07-14  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* tests/regr_view_index.cpp: New file, regression test for
+	  vector and matrix views of index_type with initial value.
+
+2005-07-12  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Support empty domains and empty blocks.
+	* src/vsip/domain.hpp: Allow empty domains.
+	* src/vsip/impl/block-copy.hpp: Handle empty blocks.
+	* src/vsip/impl/domain-utils.hpp (empty_domain): New function,
+	  returns empty domain of dimension Dim.
+	* src/vsip/impl/point.hpp (valid): New function to simplify
+	  iterating over empty domains.
+
+	Simplify mappings to 0 or 1 subblock per processor.
+	* src/vsip/dense.hpp (Dense): Use Local_map as default map.
+	  (get_local_block): Remove subblock argument.
+	  (assert_local): New function.
+	* src/vsip/impl/distributed-block.hpp (Distributed_block): Simplify 
+	  to hold 0 or 1 subblocks.
+	  (get_local_block): Remove subblock argument.
+	  (get_local_view): Handle by-value blocks correctly.
+	  (assert_local): New function.
+	  (view_assert_local): New function.
+	* src/vsip/impl/expr_binary_block.hpp (get_local_block): Remove
+	  subblock argument.
+	* src/vsip/impl/global_map.hpp (impl_subblock): New function to
+	  return local subblock.
+	* src/vsip/impl/par-chain-assign.hpp: Handle tensor assignment.
+	  Simplify for 1 subblock per processor.
+	* src/vsip/impl/par-expr.hpp (Par_expr_block): Simplify for
+	  1 subblock per processor.
+	  (get_local_block): Remove subblock arg.
+	* src/vsip/impl/par-util.hpp: New PSF functions.
+	  (foreach_point): Simplify for 1 subblock per processor, handle
+	  empty subblocks.
+
+ 	Local Maps.
+	* src/vsip/impl/local_map.hpp: New file, map for local data.
+	* src/vsip/impl/dispatch-assign.hpp: Dispatch local_maps.  Generate
+	  error if global and local maps mixed.  Handle tensor assigns.
+	* src/vsip/impl/block-traits.hpp: Generalize checking of
+	  map equality.
+	* src/vsip/impl/expr_scalar_block.hpp (Scalar_block): Use Local_map.
+	* src/vsip/impl/fast-block.hpp (Fast_block): Use Local_map as default.
+	* src/vsip/impl/signal-fft.hpp: Use Local_map by default.
+	* src/vsip/support.hpp (Local_map): forward decl.
+	  (no_subblock): New const.
+	  (no_processor): New const.
+
+	Support for distributed subviews.
+	* src/vsip/impl/dist.hpp (impl_subblock_from_index): New function,
+	  returns subblock holding index.
+	  (impl_local_from_global_index): New function, returns local
+	  index corresponding to global index.
+	* src/vsip/impl/extdata.hpp (Desired_block_layout): New functor to
+	  transform a block's native layout to a desired layout.  Used
+	  by Ext_data and Persistent_ext_data.
+	  (Ext_data): Temporarily use View_block_storage to hold block,
+	  necessary to handle by-value blocks correctly.
+	  (Persistent_Ext_data): Likewise.
+	* src/vsip/impl/layout.hpp (Is_unit_stride): New trait to determine
+	  if packing format is unit stride.
+	* src/vsip/impl/refcount.hpp (equiv_type): helper typedef.
+	* src/vsip/impl/subblock.hpp: Handle distributed subviews.
+	  Moved map projection into map.hpp.  Added Distributed_local_block
+	  trait and get_local_block overloads.
+	* src/vsip/map_fwd.hpp: Add forward decls for Map_project_1 and
+	  Map_project_2.
+	* src/vsip/map.hpp: Change subblock ordering to be row-major.
+	  (Map::impl_subblock): New function, return local subblock.
+	  (Map::impl_subblock_from_index): New function, forwarded to
+	  dimension member function.
+	  (Map::impl_local_from_global_index): Likewise.
+	  (Map_project_1): New class to project a map, removing 1 dimension.
+	  (Map_project_2): New class to project a map, removing 2 dimensions.
+
+	Misc.
+	* src/vsip/impl/view_traits.hpp: Add local_type convenience typedef.
+	* src/vsip/par-services.cpp (new_processors): New function to
+	  return number of processor in clique.
+	* src/vsip/tensor.hpp: Move whole_domain_type into vsip:: so that
+	  a single whole_domain can be used for all tensors.
+	  (Tensor): Use dispatch_assign.
+
+	Minor changes.
+	* configure.ac: Fix typo in comment.
+	* src/vsip/impl/choose-access.hpp: Add comments.
+	* src/vsip/vector.hpp: Fix formatting.
+
+	Tests.
+	* tests/distributed-block.cpp: Adjust tests for #subblocks <=
+	  #processors.  Add coverage for tensors.  Check validity of
+	  local views.
+	* tests/distributed-subviews.cpp: New test for whole-dimension
+	  subviews (vector subviews of matrices, vector & matrix subviews
+	  of tensors).
+	* tests/extdata-output.hpp: Handle Sliced_block and Sliced2_block.
+	* tests/appmap.cpp: Adjust tests for #subblocks <= #processors.
+	* tests/map.cpp: Likewise.
+	* tests/par_expr.cpp: Likewise.
+	* tests/plainblock.hpp: Use Local_map by default.
+	* tests/util.hpp (create_view): New overload for tensors.
+	* tests/util-par.hpp: Utility functions to compute subblock
+	  arrangements (squares, cubes, 2 x N).
+
+2005-07-04  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/subblock.hpp (Sliced2_block_base::size): Bug fix,
+	  sometimes returning size for wrong dimension.
+	* tests/tensor_subview.cpp: New file, tests for tensor subviews.
+
+2005-07-04  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Change UPPER_CASE enum, variable, and class names to lower_case
+	for enums and variables, and Lower_case for classes.
+
+2005-06-20  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/map.hpp: Include algorithm, use explicit std::min.
+	* src/vsip/impl/par-services-none.hpp (free_chain): Placine 'inline'
+	  before 'void'.
+
+2005-06-20  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: Fix typo, use enable_fftw3, not enable_mpi.
+	* src/vsip/impl/subblock.hpp: Fix Wall warning in impl_stride().
+
+2005-06-20  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* configure.ac (VSIP_IMPL_PROFILE_TIMER): New acconfig.h define to
+	  select profile timer variant.  Make posix timer the default.
+	* src/vsip/impl/profile.hpp: Use VSIP_IMPL_PROFILE_TIMER.  Add
+	  support for x86_64 TSC timer.
+
+2005-06-20  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	FFTW3 Support.
+	* configure.ac: Configure VSIPL++ to use FFTW3 if present.
+	* src/vsip/impl/fft-core.hpp (FFT_core): Specializations for FFTW3.
+	* src/vsip/impl/signal-fft.hpp: Specializations for FFTW3; change
+	  layout_type to Stride_unit; collect and provide profiling data.
+
+	Fast block fill.
+	* src/vsip/impl/block-copy.hpp (Block_fill): New class, fill a
+	  block with a value in cache-friendly way.
+	* src/vsip/matrix.hpp: Use Block_copy for scalar assigments.
+
+	Ext_data improvements
+	* src/vsip/impl/extdata.hpp: Provide cost without requiring a
+	  complete low-level data access class.  Support access to
+	  const blocks.
+	* src/vsip/dense.hpp: Make direct data interface public, for
+	  subblock use.
+	* src/vsip/impl/layout.hpp (is_ct_unit_stride): New static
+	  member of packing formats to indicate if unit-stride known
+	  at compile time.
+	* src/vsip/impl/subblock.hpp: Ext_data support for Sliced_block.
+
+	Optimize handling of simple assignments.
+	* src/vsip/impl/block-traits.hpp (Is_expr_block): New trait.
+	* src/vsip/impl/expr_binary_block.hpp: Provide dim static member.
+	  Specialize Is_expr_block.
+	* src/vsip/impl/expr_ternary_block.hpp: Likewise.
+	* src/vsip/impl/expr_unary_block.hpp: Likewise.
+	* src/vsip/impl/dispatch_assign.hpp: Separate handling of serial
+	  assignments from expressions.  Use Ext_data when possible for
+	  vector serial assignments.
+
+	* src/vsip/tensor.hpp: Fix whole_domain submatrix operator() to
+	  return an impl_type.
+	* src/vsip/impl/profile.hpp (Time_in_scope): New class, use RAII
+	  to start/stop a timer.
+	* src/vsip/impl/refcount.hpp: Add impl_debug_count function.
+	* src/vsip/impl/signal-conv-ext.hpp: New file, alternate
+	  implementation of Convolution using Ext_data.
+	* src/vsip/signal.hpp: Use signal-conv-ext.hpp.
+
+	SAR example program updates.
+	* apps/sarsim/GNUmakefile: Determine CC from CXX; Use vsip::FFT
+	  by default.
+	* apps/sarsim/azimuth-process.hpp: Use vsip::FFT; Use aligned
+	  allocation for io_buf_.
+	* apps/sarsim/range-process.hpp: Use vsip::FFT; record additional
+	  profiling data.
+	* apps/sarsim/sarsim.cpp: Store polarizations in Tensor.
+
+	Test updates.
+	* tests/convolution.cpp: Measure performance of convolution.  Not
+	  enabled for regression testing.
+	* tests/fft.cpp: Test FFT accessors.
+
+2005-06-18  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/fns_elementwise.hpp: Scalar return types for
+	  mag, magsq, maxmgsq, minmgsq.
+	* src/vsip/impl/fns_scalar.hpp: Likewise.
+	* tests/fns_scalar.cpp: Testcases for above functions.
+	* tests/test-storage.hpp (Storage): Add specialization for scalar
+	  values.
+
+2005-06-18  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/signal-fft.hpp: Fix compilation errors for
+	  by-value FFT.
+	* tests/fft.cpp: New file, test case for FFT.
+
+2005-06-18  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* tests/(lots): normalize header date format.
+
+2005-06-18  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/signal-fft.hpp: switch to Fast_block for temporary
+	  storage & return result; use mapped blocks (more) correctly.
+	* src/vsip/impl/fft-core.hpp: quiet signed/unsigned warnings
+
+2005-06-18  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: Check if FFTW2 headers are present.
+	
+2005-06-17  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/(lots): normalize header date format correctly.
+
+2005-06-17  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/(lots): normalize header date format.
+	* src/vsip/impl/signal-conv.hpp: inline dim_output_size.
+
+2005-06-17  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/support.hpp: use ptrdiff_t and size_t for index types.
+
+2005-06-17  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/fft-float.cpp, src/vsip/fft-double.cpp,
+	  src/vsip/impl/fft-core.hpp: minor cleanups
+	* src/vsip/support.hpp: move out Scalar_of and Is_same_type
+	* src/vsip/impl/metaprogramming.hpp: add Scalar_of, add 
+	  Is_same_type functionality to Type_equal.
+	* src/vsip/signal.hpp: include new impl/signal-fft.hpp
+	* src/vsip/impl/signal-fft.hpp: new; incorporate minor cleanups,
+	  use Ext_data correctly.
+	* src/vsip/signal-fft.hpp: remove
+	* src/vsip/impl/signal-conv.hpp: fix includes
+
+2005-06-17  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* apps/sarsim/frm_hdr.c: Remove Id and Log keywords.
+	* apps/sarsim/histcmp.c: Likewise.
+	* apps/sarsim/misc.c: Likewise.
+	* apps/sarsim/read_adts.c: Likewise.
+	* apps/sarsim/read_tbv.c: Likewise.
+	* apps/sarsim/sarx.h: Likewise.
+	
+2005-06-17  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	1D complex-complex float FFT using FFTW2; most of 2D, 3D, 
+	double, real->complex, complex->real
+
+	* src/vsip/fft-float.cpp, src/vsip/fft-double.cpp,
+	  src/vsip/signal-fft.hpp, src/vsip/impl/fft-core.hpp: new.
+	* src/vsip/domain.hpp: add lvalue indexed accessor
+	* src/vsip/support.hpp: add utility templates Is_same_type<T1,T2>,
+	  Scalar_of<>; change index typedefs from long to int.
+	* configure.ac: add FFT build options.
+
+2005-06-16  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	SAR example application.
+	* apps/sarsim/sarsim.cpp: New file, SAR simulation, derived from
+	  MIT/LL RASSP SarSim demo program.
+	* apps/sarsim/fft-fftw-impl.cpp: New file, FFT bits that depend
+	  on FFTW3 headers.
+	* apps/sarsim/azimuth-process.hpp: New file, implements SAR azimuth
+	  processing.
+	* apps/sarsim/cast-block.hpp: New file, utility for mixed precision
+	  expressions.
+	* apps/sarsim/fft-common.hpp: New file, common elements for fft.
+	* apps/sarsim/fft-fftw.hpp: New file, Vector_FFT using FFTW3.
+	* apps/sarsim/fft-fftw-impl.hpp: New file, interface to FFT bits
+	  that depend on FFTW3 headers.
+	* apps/sarsim/fft.hpp: New file, plan C++ FFT.
+	* apps/sarsim/loadview.hpp: New file, utility to load file into view.
+	* apps/sarsim/range-process.hpp: New file, implements SAR range
+	  processing.
+	* apps/sarsim/saveview.hpp: New file, utility to save file from view.
+	* apps/sarsim/frm_hdr.c: New file, SarSim C support.
+	* apps/sarsim/histcmp.c: New file, likewise.
+	* apps/sarsim/misc.c: New file, likewise.
+	* apps/sarsim/read_adts.c: New file, likewise.
+	* apps/sarsim/read_tbv.c: New file, likewise.
+	* apps/sarsim/util_io.c: New file, likewise.
+	* apps/sarsim/read_adts.h: New file, likewise.
+	* apps/sarsim/read_tbv.h: New file, likewise.
+	* apps/sarsim/sarx.h: New file, likewise.
+	* apps/sarsim/util_io.h: New file, likewise.
+	* apps/sarsim/GNUmakefile: New file, makefile for SAR example.
+
+	Test data for SAR application.
+	* apps/sarsim/sims-8-4: New file, run single-precision SAR test.
+	* apps/sarsim/simd-8-4: New file, run double-precision SAR test.
+	* apps/sarsim/chk-sims-8-4: New file, check single-precision SAR test.
+	* apps/sarsim/chk-simd-8-4: New file, check single-precision SAR test.
+	* apps/sarsim/test-8/data/: New directory, containing input
+	  data for SAR program.
+	* apps/sarsim/test-8/ref-plan/: New directory, containing reference
+	  output data for SAR program.
+
+	Profiling support:
+	* src/vsip/profile.cpp: New file, basic profiling support.
+	* src/vsip/impl/profile.hpp: New file, likewise.
+	
+	* src/vsip/impl/signal-conv.hpp: New function impl_performance() to
+	  report on measured performance.
+	
+2005-06-15  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/vector.hpp: Add missing argument for parent's
+	  constructor.
+
+	Implement Convolution.
+	* src/vsip/signal.hpp: New file, wrapper for signal processing
+	  objects.
+	* src/vsip/vector.hpp (view_domain): New function, return extent
+	  of view as domain.
+	* src/vsip/impl/signal-conv.hpp: New file, Convolution class.
+	* src/vsip/impl/signal-types.hpp: New file, common enums for
+	  signal processing.
+	* tests/convolution.cpp: New file, test cases for convolution.
+
+	Implement Global_map.
+	* src/vsip/support.hpp (Global_map): Change from definition of
+	  Serial_map to forward declaration of Global_map.
+	* src/vsip/dense.hpp: Include global_map header, apply it at
+	  dense construction, specialize get_local_block for serial
+	  blocks.
+	* src/vsip/impl/distributed-block.hpp: New parallel support
+	  functions subblocks_begin and subblocks_end.
+	* src/vsip/impl/par-assign.hpp: Use buf_send/recv from par-util.
+	* src/vsip/impl/par-chain-assign.hpp: Check if subblock is
+	  replicated destination processor before sending.
+	* src/vsip/impl/par-services-mpi.hpp: Move functions
+	  with view parameters to par-util.
+	* src/vsip/impl/par-services-none.hpp: Likewise.
+	* src/vsip/impl/par-util.hpp: New file, send/recv functions
+	  with view parameters, parallel foreach functions.
+	* src/vsip/impl/global_map.hpp: New file, implements Global_map.
+	* src/vsip/map.hpp: Add 'impl_working_size' function to determine
+	  number of processors owning distributed data.
+	* tests/distributed-block.cpp: Add tests for Global_map.  Move
+	  common functions to util-par.hpp.
+	* tests/par_expr.cpp: Move common function to util.hpp and
+	  util-par.hpp.
+	* tests/util.hpp: New file, common test functions for cloning
+	  views.
+	* tests/util-par.hpp: New file, common parallel test functions
+	  and classes.
+	
+	* src/vsip/impl/dispatch-assign.hpp: Use Global_map instead of
+	  Serial_map.
+	* src/vsip/impl/expr_scalar_block.hpp: Likewise.
+	* src/vsip/impl/fast-block.hpp: Likewise.
+	* src/vsip/impl/subblock.hpp: Likewise.
+	* tests/plainblock.hpp: Likewise.
+
+2005-06-13  Zack Weinberg  <zack@xxxxxxxxxxxxxxxx
+
+	* src/vsip/impl/lvalue-proxy.hpp: Delete True_lvalue_callop_factory;
+	rename True_lvalue_implref_factory to True_lvalue_factory.
+	(Lvalue_proxy [all specializations]): Hold an uncounted reference
+	to the block, not a View_block_storage instance.
+	* src/vsip/impl/block-traits.hpp: Delete True_lvalue_callop_factory;
+	rename True_lvalue_implref_factory to True_lvalue_factory.
+	(Lvalue_factory_type): Add Rebind nested class.
+	* src/vsip/dense.hpp: Rename all operator()(index_type, ...) to
+	impl_ref(). Update Lvalue_factory_type specialization.
+	* src/vsip/impl/subblock.hpp: Add impl_ref() functions to all
+	classes that can implement them, and matching Lvalue_factory_type
+	specializations.
+
+	* tests/plainblock.hpp: Add impl_ref functions, conditional on
+	PLAINBLOCK_ENABLE_IMPL_REF.
+	* tests/lvalue-proxy.cpp: Refer to True_lvalue_factory, not
+	True_lvalue_callop_factory nor True_lvalue_implref_factory.
+	* tests/dense.cpp: Test impl_ref, not operator().
+	* tests/view_lvalue.cpp: Include plainblock.hpp.  Do all tests with
+	both Dense<n> and Plain_block<n> (except <3>).  Add some tests of
+	subblocks.
+
+2005-06-13  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/view_traits: add vsip::impl_[const_]View
+	  specializations for std::complex<>
+	* src/vsip/{vector,matrix,tensor}.hpp: remove Vector, Matrix,
+	  Tensor specializations, also Vector_base etc. apparatus.
+
+2005-06-11  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/complex.hpp, map.hpp, impl/distributed-block.hpp,
+	  impl/expr_binary_block.hpp, impl/par-expr.hpp;
+	  tests/appmap.cpp, distributed-block.cpp,
+	  par_expr.cpp: Clean up "-W -Wall" warnings.
+
+2005-06-09  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/par-services-none.hpp: Add missing include.
+
+	Evaluate parallel expressions with different RHS mappings.
+	* src/vsip/impl/block-traits.hpp (Is_par_same_map): New trait.
+	  Combination compile-time/run-time check if maps are same.
+	  (Combine_return_type): New trait to determine return type of
+	  expression tree transformations.
+	  (apply_combine): Function set to transform expression trees.
+	  (apply_leaf): Function set to perform action at expression trees
+	  leaves.
+	* src/vsip/dense.hpp (Combine_return_type): Add specialization.
+	  (apply_combine): Likewise.
+	* src/vsip/impl/distributed-block.hpp: Likewise.
+	* src/vsip/impl/dispatch-assign.hpp: Use 'par_expr()' and
+	  'par_expr_simple()' (from par-expr.hpp) to evalute
+	  distributed expressions.
+	* src/vsip/impl/domain-utils.hpp (block_domain): New function.
+	  Return block extent as domain.
+	* src/vsip/impl/expr_binary_block.hpp
+	  (Expr_block_storage): specialization to store Binary_expr_block
+	  by-value.
+	  (Combine_return_type): Specialization for traversing
+	  Binary_expr_block's.
+	  (apply_combine): Likewise.
+	  (apply_leaf): Likewise.
+	  (Is_par_same_map): Likewise.
+	* src/vsip/impl/par-expr.hpp: New file, provides classes and
+	  functions to evaluate simple and complex distributed
+	  expressions.
+	* src/vsip/impl/par-services-mpi.hpp: Free buffer.
+	* src/vsip/map.hpp (operator==): Compare maps with different types.
+	* tests/par_expr.cpp: Extend to cover expressions with
+	  different RHS maps, and expressions with more than one
+	  operator.
+
+	Merge App_map functionality into Map.
+	* src/vsip/map.hpp: Assume App_map functionality.
+	* src/vsip/impl/appmap.hpp: Remove file.
+	* src/vsip/impl/dispatch-assign.hpp: Use map instead of App_map.
+	* src/vsip/impl/distributed-block.hpp: Likewise.
+	* src/vsip/impl/par-assign.hpp: Likewise.
+	* src/vsip/impl/par-chain-assign.hpp: Likewise.
+	* tests/appmap.cpp: Likewise.
+	* tests/distributed-block.cpp: Likewise.
+	* tests/par_expr.cpp: Likewise.
+
+	Store grid function in std::vector.
+	* src/vsip/map.hpp: Store grid function as std::vector,
+	  provide additional interface to limit external assumptions
+	  on how grid function is stored.
+	* src/vsip/impl/appmap.hpp: Likewise.
+	* src/vsip/impl/par-services-mpi.hpp (Communicator): Return
+	  default processor vector as std::vector.
+	* src/vsip/impl/par-services-none.hpp (Communicator): Likewise.
+	* src/vsip/impl/par-assign.hpp: Access grid function through
+	  general interface.
+	* src/vsip/impl/par-chain-assign.hpp: Likewise.
+
+2005-06-08  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/allocation.hpp: add "return" to fix syntax
+	  error for the case of no posix_memalign() and no memalign().
+
+2005-06-08  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/view_traits.hpp: Add vsip::impl_View<View,Block>
+	  and vsip::impl_const_View<View,Block> base class templates
+	  for views.  Also, forward-declare views, and add
+	  impl::Const_of_view<V,B> and impl::Dim_of_view<V> utility
+	  templates.
+	* src/vsip/vector.hpp, matrix.hpp, tensor.hpp: Derive views from
+	  vsip::impl_View<> or vsip::impl_const_View<> as appropriate;
+	  sanitize member typedef names; eliminate unnecessary member
+	  using-directives.
+
+2005-06-06  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* doc/GNUmakefile.inc.in ($(doc_manuals): Depend on opl.xml.
+	* opl.xml: New file.
+	* doc/quickstart/quickstart.xml: Use it.
+
+2005-06-03  Zack Weinberg  <zack@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: Add probe for xml.dcl.
+	* GNUmakefile.in: Set XML_DCL to the location of xml.dcl as
+	determined by configure.  Don't generate documentation if it
+	wasn't found.  Use $(XML_DCL) in Jade invocation.  Use wraptex
+	in pdfjadetex invocation.
+	* doc/wraptex: New file.
+
+2005-06-03  Zack Weinberg  <zack@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/lvalue-proxy.hpp: New file.
+	* src/vsip/impl/block_traits.hpp (Proxy_lvalue_factory)
+	(True_lvalue_callop_factory, True_lvalue_implref_factory): Declare.
+	(Lvalue_factory_type): New traits class.
+	* src/vsip/dense.hpp: Specialize Lvalue_factory_type appropriately.
+	* src/vsip/matrix.hpp, src/vsip/tensor.hpp, src/vsip/vector.hpp:
+	Include vsip/impl/lvalue-proxy.hpp.  Add 'factory_type'
+	private typedef to Matrix_base, Tensor_base, Vector_base
+	respectively. Change those classes' 'reference_type' to
+	factory_type::reference_type.  Implement operator() with
+	appropriate number of index_type arguments for those classes.
+
+	* tests/lvalue-proxy.cpp, tests/view_lvalue.cpp: New tests.
+
+2005-06-03  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/refcount.hpp (noincrement_t): Rename to
+	noincrement_type.
+	(Ref_counted_ptr::Ref_counted_ptr): Adjust accordingly.
+	(RPPtr::RPPtr): Likewise.
+	(Mutable): New template.
+	(Stored_value): Use it, instead of storing the object directly.
+
+2005-06-03  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/allocation.hpp: Update malloc.h and memalign
+	  decl to match configure.
+	* src/vsip/impl/dispatch-assign.hpp: -Wall cleanup.
+
+2005-06-02  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* COPYRIGHT: Rebrand VSIPL++Pro as Sourcery VSIPL++.
+	* README: Likewise.
+	* vsipl++.pc.in: Likewise.
+	* doc/quickstart/quickstart.xml: Likewise.
+	* scripts/src-release: Likewise.
+
+2005-06-02  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/metaprogramming.hpp (Compare): New class to
+	  compare compile-time values against run-time values, while
+	  avoiding -Wall warnings.
+	* src/vsip/impl/subblock.hpp (Sliced_block_base): Use Compare for
+	  unsigned comparison against zero.
+	  (Sliced2_block_base): Likewise.
+	* tests/tensor.cpp (tc_assign): Fix unused parameter.
+
+2005-06-02  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/map.hpp: Include <vsip/impl/dist.hpp>.
+	(vsip::impl::segment_size): Move to vsip/impl/dist.hpp.
+	(vsip::impl::segment_chunks): Likewise.
+	(vsip::impl::segment_chunk_size): Likewise.
+	(vsip::impl::segment_start): Likewise.
+	(vsip::Block_dist): Likewise.
+	(vsip::Cyclic_dist): Likewise.
+	* src/vsip/impl/subblock.hpp: Include <vsip/impl/dist.hpp>.
+	* src/vsip/impl/dist.hpp: New file.
+
+	* configure.ac: Use AS_HELP_STRING.  Remove check for
+	std::complex<T>::real() and std::comlpex<T>::imag() being
+	lvalues.
+	* src/vsip/impl/subblock.hpp (Real_extractor::set): Do not expect
+	std::complex<T>::real() to be an lvalue.
+	(Imag_extractor::set): Likewise, for std::complex<T>::imag().
+
+2005-06-02  Zack Weinberg  <zack@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: Specify prerequisite headers for AC_CHECK_HEADERS
+	and AC_CHECK_DECLS tests.
+	Set vsip_impl_avoid_posix_memalign explicitly to the empty string,
+	before checking for MPI libs, and to "yes" instead of "true" if
+	using LAM-MPI.
+	Test vsip_impl_avoid_posix_memalign with test -n, not by executing it.
+
+2005-06-02  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* vsipl++.pc.in (cxx): New variable, compiler used to build library.
+	  (Cflags): Get includes from configure.
+	* doc/quickstart/quickstart.xml: Document getting compiler from
+	  pkg-config.
+
+2005-06-02  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/fns_elementwise.hpp: Provide specialized overloads
+	for binary view functions where V1 == V2 to solve issue 40.
+	* tests/view_functions.cpp: Test it.
+
+2005-06-02  Nathan Myers  <ncm@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/refcount.hpp: put "mutable" where gcc-4 wants it.
+
+2005-06-02  Zack Weinberg  <zack@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/expr_scalar_block.hpp (class Scalar_block_base):
+	Add missing 'dim' static member.
+
+2005-06-02  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* doc/quickstart/quickstart.xml: Add instructions for using pkg-config.
+	* vsipl++.pc.in: New file, pkg-config metadata.
+	* GNUmakefile.in (install): Install vsipl++.pc .
+
+2005-06-02  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/fns_scalar.hpp: Complete functions as of Table 8.1
+	of the spec.
+	* src/vsip/impl/fns_elementwise.hpp: Likewise.
+	* tests/view_functions.cpp: Test the new functions.
+
+2005-06-02  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* doc/release/README: Move to ...
+	* README: ... here.
+	* doc/release/COPYRIGHT: Move to ...
+	* COPYRIGHT: ... here.
+	* doc/release/COPYING: Move and rename to ...
+	* LICENSE: ... this.
+
+2005-06-01  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Distributed Dense blocks.
+	* src/vsip/dense.hpp: Derive Dense blocks with non-serial maps
+	  from Distributed_block.  Add speclializations/overloads for
+	  Distributed_local_block, Is_simple_distributed_block, and
+	  get_local_block().
+	* tests/distributed-block.cpp: Use Dense to name distributed blocks.
+
+	Distributed expressions w/o communication.
+	* src/vsip/impl/dispatch-assign.hpp (par_expr): Use
+	  Distributed_local_block trait to determine local block type.
+	* src/vsip/impl/distributed-block.hpp: Add get_local_block
+	  function general case and specialization for
+	  Distributed_block.
+	* src/vsip/impl/expr_binary_block.hpp: Add Distributed_local_block
+	  and get_local_block specializations for Binary_expr_block.
+	* tests/par_expr.cpp: New file, tests for parallel expressions.
+
+2005-06-01  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/allocation.cpp (impl_free_align): Return "void".
+	* src/vsip/impl/application.hpp (impl_free_align): Likeiwse.
+
+2005-05-27  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* GNUmakefile.in (docdir): New variable.
+	(DOXYGEN): Likewise.
+	(all): Depend on doc.
+	(doc): Remove.
+	* configure.ac (doxygen): Check for it.
+	* doc/GNUmakefile.inc.in (doc/html/index.html): New target.
+	(clean): Remove it.
+	(install): Install manuals.
+
+2005-05-26  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* doc/quickstart/quickstart.xml: Adjust name of source directory.
+	* scripts/src-release: New script.
+
+2005-05-26  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	* doc/quickstart/quickstart.xml: Add paragraphs on compilers known
+	  to work/not work, recommended options for LAM/MPI.  Document
+	  configure '--with-mpi-prefix' option.
+	* examples/GNUmakefile.inc.in (examples/example1$(EXEEXT)): Use
+	  $(LDFLAGS) and $(LIBS).
+	* doc/release/COPYING: New file, license for source releases.
+	* doc/release/COPYRIGHT: New file, copyright for source releases.
+	* doc/release/README: New file, top-level readme for source releases.
+
+2005-05-25  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* GNUmakefile.in (datadir): New variable.
+	* doc/quickstart/quickstart.xml: Add section on building first
+	VSIPL++ program.
+	* examples/GNUmakefile.inc.in: Fix typos in variable naming
+	convention.
+	(install): New rule.
+	* src/vsip/GNUmakefile.inc.in (install): Simplify slightly.
+
+	* GNUmakefile.in (prefix): Put it first.
+	(EXEEXT): New variable.
+	(OBJEXT): Likewise.
+	(objects): Use $(OBJEXT).
+	(%.o): Rename to ...
+	(%.$(OBJEXT)): ... this.
+	(%.d): Use $(OBJEXT).
+	(check): Fix for objdir != srcdir.
+	* src/vsip/GNUmakefile.inc.in (src_vsip_cxx_objects): Use $(OBJEXT).
+	* examples/GNUmakefile.inc.in: New file.
+	* examples/example1.cpp: Likewise.
+
+	Issue #38
+	* src/vsip/initfini.cpp: Rename to ...
+	* src/vsip/initfin.cpp: ... this.
+	* src/vsip/initfini.hpp: Rename to ...
+	* src/vsip/initfin.hpp: ... this.
+	* tests/distributed-block.cpp: Include <vsip/initfin.hpp>, not
+	<vsip/initfini.hpp>.
+	* tests/initfini.cpp: Likewise.
+	* tests/map.cpp: Likewise.
+
+2005-05-25  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Aligned memory allocation.
+	* configure.ac: Add checks for memalign and posix_memalign.
+	* src/vsip/allocation.cpp: New file, aligned memory allocation
+	  routines.
+	* src/vsip/impl/allocation.hpp.hpp: Likewise.
+	* src/vsip/impl/aligned_allocator.hpp: New file, aligned allocator.
+	* src/vsip/impl/layout.hpp (Storage): Template parameter for
+	  allocator.
+	* src/vsip/dense.hpp: Call storage deallocate() prior to destruction.
+	* src/vsip/impl/extdata.hpp: Likewise.
+	* src/vsip/impl/fast-block.hpp: Likewise.
+	* tests/plainblock.hpp: Likewise.
+
+2005-05-24  Stefan Seefeld  <stefan@xxxxxxxxxxxxxxxx>
+
+	* src/vsip/impl/expr_functions.hpp: Removed, replaced by...
+	* src/vsip/impl/fns_elementwise.hpp: ...this new file.
+	* src/vsip/impl/expr_functor.hpp: New function dispatching framework.
+	* src/vsip/impl/fns_scalar.hpp: Provide more scalar functions.
+	* src/vsip/math.hpp: Use fns_elementwise.hpp.
+	* src/vsip/impl/view_traits.hpp: Enhance Is_view_type trait.
+	* src/vsip/matrix.hpp: Use it.
+	* src/vsip/vector.hpp: Likewise.
+	* src/vsip/tensor.hpp: Likewise.
+	* src/vsip/impl/expr_binary_operators.hpp: Likewise.
+	* src/vsip/impl/expr_ternary_block.hpp: Likewise.
+	* src/vsip/impl/expr_unary_block.hpp: Likewise.
+	* tests/view_operators.cpp: Move function tests into...
+	* tests/view_functions.cpp: ...this file.
+
+2005-05-21  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* doc/GNUmakefile.inc.in: New file.
+	* doc/README: Likewise.
+	* doc/tex.dsl: Likewise.
+	* doc/quickstart/quickstart.xml: Likewise.
+
+	* GNUmakefile.in (.DELETE_ON_ERROR): Set it.
+	(all): Move to top of file.
+	(exec_prefix): New variab.e
+	(prefix): Likewise.
+	(includedir): Likewise.
+	(libdir): Likewise.
+	(INSTALL): Likewise.
+	(INSTALL_DATA): Likewise.
+	(JADE): Likewise.
+	(PDFJADETEX): Likewise.
+	(docbook): Likewise.
+	(%.xml): Add to vpath.
+	(%.o): Do not rm files on error.
+	(%.d): Likewise.
+	(%.jtex): New rule.
+	(%.pdf): Likewise.
+	(GNUmakefile): Refine dependencies.
+	(config.status): New rule.
+	* configure.ac (JADE): Set it.
+	(PDFJADETEX): Likewise.
+	(AC_PROG_INSTALL): Use it.
+	* src/vsip/GNUmakefile.inc.in (install): New rule.
+
+2005-05-20  Mark Mitchell  <mark@xxxxxxxxxxxxxxxx>
+
+	* GNUmakefile.in (all): Depend on GNUmakefile.
+	($(srcdir)/configure): New target.
+	(GNUmakefile): Likewise.
+
+2005-05-20  Zack Weinberg  <zack@xxxxxxxxxxxxxxxx>
+
+	* configure.ac: If we cannot find the MPI libraries, fall back
+	to --disable-mpi mode, unless the user explicitly said either
+	--enable-mpi or --with-mpi-prefix=something.  Look for -lmpich
+	before -lmpi.
+
+2005-05-19  Jules Bergmann  <jules@xxxxxxxxxxxxxxxx>
+
+	Implement user-storage (admit/release)
+	* src/vsip/dense.hpp: Add Dense_impl base class that implements
+	  user-storage (admit/release).
+	* src/vsip/impl/layout.hpp (Storage): add rebind() and
+	  is_alloc() members.
+	* src/vsip/impl/point.hpp: Add 3-dim specializations for next,
+	  block get, and block put.
+	* tests/dense.cpp: Add tests for user-storage functions when
+	  user-storage is not being used.
+	* tests/user_storage.cpp: New file, test cases for user-storage.
+
+	* src/vsip/math.hpp: Fix filename in header.
+
+2005-05-18  Zack Weinberg  <zack@xxxxxxxxxxxxxxxx>
+
+	* .cvsignore: New file.
+	* src/vsip/impl/.cvsignore: Also ignore acco