[
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