2019-06-10 Niv Drory * configure.ac: Bump version to 2.0.22 2019-06-10 Teake Nutma * test/testmasimd.cpp: Fix C++-14 compliance issue. * test/testmasimd2.cpp: Same. 2019-06-10 Niv Drory Teake Nutma * ltl/marray/blas.h: Conditionally set the return type of sdot_ to float or double depending on system. Might need refining based on blas implementation in addition? * test/testmablas.cpp: Fix ddot->sdot in reporting. 2018-08-21 Claus Goessl * ltl/*.h: Removed all "using" statements to keep global namespace clean and reformatted to emacs ellemtel mode. * ltl/*.cpp: Removed all "using" statements to keep global namespace clean and reformatted to emacs ellemtel mode. * configure.ac: added test for additional IEEE math in namespace std or not * ltl/wcs.h: changed code to call either std::hypot or ::hypot depending on test * ltl/misc/applicops.h: declaring additional IEEE math from std or global * ltl/util/utdate.*: Added support for microsecond precision which is new default for FitsDate.toString() output. Added MJDate class. * ltl/util/option_parser.* : Added method logConfig() to allow for automated option logging into syslog. * configure.ac: Bump version to 2.0.21 2018-04-11 Randy Bryant * test/testfitsextensionio.cpp: Add in-memory extension tests * ltl/fits.h: Add FitsExtensionOut for in-memory files * ltl/io/fits_header.h: Add FitsHeader for in-memory files * ltl/io/fits.cpp: Add code to support FitsExtensionOut for in-memory files * ltl/io/fits_header.cpp: Add FitsHeader for in-memory files 2018-02-05 Jan Snigula * ltl/misc/mdebug.h: Add define LTL_ABORT_ON_ASSERT. If defined, LTL_ASSERT aborts execution (like before). By default LTL_ASSERT now throws an exception with a shortened error message (without the file name). 2017-12-01 Niv Drory * ltl/fmatrix/mrqfuncs.h (DegMoffat::fill): Add missing fill() function 2017-11-30 Niv Drory * ltl/fmatrix/mrqfuncs.h (DegMoffat): add fill() function. 2017-11-06 Niv Drory * util/option.cpp (ShellOption::setValue): close pipe using pclose(), not fclse(). 2017-08-04 Jan Snigula * configure.ac: Added --enable-libc++ flag * ltl/fmatrix/*.h: Removed flycheck compiler warnings * ltl/fvector/fvexpr.h: Same * ltl/fmatrix.h: Same * ltl/marray/{blas,lapack.h}: Same 2016-11-22 Niv Drory * ltl/io/fits_card.cpp (FitsFloatCard::toString): Output float-valued keywords at precision 16 to avoid loss of information. * ltl/io/fits_header.{h,cpp} (FitsHeader::writeHeader): Add option to keep the original timestamp when returning a string-copy of the header. 2016-09-02 Niv Drory * ltl/util/option.cpp (ShellOption): handle case where we fork a sh with a builtin echo that does not support -n 2016-09-02 Niv Drory * ltl/marray/shape.h (operator>>): Include the character that violated syntax in exception message. * ltl/marray_io.h: Same. 2016-08-29 Niv Drory * ltl/misc/exceptions.h (SingularMatrixException): Do not redefine whatStr in derived class. It is defined in LinearAlgebraException : std::exception. * ltl/misc/exceptions.h (DivergenceException): Same. * ltl/util/option.h (ShellOption.getTypeName): Replace STRING with SHELLSTRING to disambiguate from the StrongOption. 2016-06-06 Niv Drory * ltl/util/option.{h,cpp}: New class ShellOption : Option which implements a string option which is processed by a shell to evaluate expressions containint shell/environment variables. For example a string containing "$HOME/bin" will be expanded to the correct path at runtime 2016-07-01 Francesco Montesano * ltl: ignore some more file * ltl/io: same * ltl/util: same * ltl/io/fits_data.cpp: fix misleading-indentation warning (issue #1525) * ltl/io/fits_data.h: same 2016-06-06 Niv Drory * ltl/marray/blas.h: Do not place cdot_ and zdot_ inside extern "C" to avoid warning about C-linkage with std::complex. 2016-02-23 Jan Snigula * test/testascio.cpp: Added test for ascio string specialization * ltl/io/ascio.{h,cpp}: Added specialization for string MArrays * configure.ac: Added subdir-objects to quiet automake 2015-12-08 Francesco Montesano * svn:ignore: ignore doxigen products 2015-09-16 Niv Drory * configure.ac: Improve detection of Intel compiler "features". Turn off SIMD vectorization for now. It's broken in newer Intel compilers. * acinclude.m4: Fix detection of MKL blas/lapack implementation on modern versions of Intel's compilers. * ltl/config.h: Fix handling of restrict keyword since Intel reversed the meaning of compiler options. * test/testmatvec2.cpp: Fix test result checking for Intel compilers. * test/testmatvec.cpp: Same. * configure.ac: Bump version to 2.0.20. Sigh. I hate Intel's compilers. 2015-07-10 Niv Drory * ltl/marray/expr.h: Fix call to getAlignment() for unary operands when vectorizing expressions. 2015-06-11 Niv Drory * ltl/marray/lapack.h: Add interface to getri() and getrf(). * ltl/marray/lapack.h: Return the permuatation matrix from gesv() calls. * ltl/marray/blas.h: Declare sdot_ as returning double. * ltl/test/testmablas.h: Additional testcase for non-unity stride dot(). 2015-04-30 Niv Drory * test/testmarray.cpp (main): Add more complex tests for list initialization. * test/testfvector.cpp (main): Add more complex tests for list initialization. * test/testfvector2.cpp (main): Add more complex tests for list initialization. * test/testfmatrix.cpp (main): Add more complex tests for list initialization. * test/testfmatrix2.cpp (main): Add more complex tests for list initialization. * ltl/fmatrix.h (nelements): Add nelements() for compatibility with MArrays. * ltl/fvecrtor.h (nelements): Add nelements() for compatibility with MArrays. * test/testmasimd.cpp: (TEST_ARITHMETIC): do not use fabs for integer comparisons. * ltl/fmatrix/fmbool.cpp (allof): Fix bug in loop termination. 2015-04-30 Niv Drory * ltl/fmatrix/mrqfuncs.h (partofit): throw exception if amplitude is 0. 2015-03-10 Niv Drory * ltl/marray/marray_methods.h (makeReferenceWithDims): Add error checking when LTL_RANGE_CHECKING is enabled. * doc/marray_doc.h: Add documentation for this feature. 2015-03-09 Niv Drory * ltl/marray.h (makeReferenceWithDims): New. Make a reference to another MArray reinterpreting it as having different rank. Be careful with this ... * ltl/marray/marray_methods.h (makeReferenceWithDims): Implementation. * test/testmarray.cpp (test_referenceN): Add test. * ltl/misc/applicops_sse.h: Include Accelerate.h instead of vfp.h on Mavericks and later. * configure.ac: Bump version to 2.0.19. 2015-03-06 Martin Landriau ltl/marray/blas.h: corrected assertion tests for gbmv. 2015-02-23 Jan Snigula Claus Goessl Niv Drory * configure.ac: Bump version to 2.0.18. * doc/ltl_doxygen.css: update to work with newer Doxygen versions. * doc/mainpage_doc.h, maio_doc.h, utility_doc.h: Update. Add missing documentation. 2015-02-10 Randy Bryant * ltl/util/option_parser.h: Add a function to return a list of the option names * ltl/util/option_parser.h: Same. 2015-02-03 Niv Drory * ltl/convolve.h: Add a simple Gaussian kernel as an example to the documentation of the convolution framework. * test/testconvolve.cpp (test_gaussian): Test for proper normalization. 2015-02-02 Niv Drory * acinclude.m4: switch from -framework vecLib to -framework Accelerate for MacOS X Mavericks as things have been consolidated there. 2015-02-02 Niv Drory * test/testconvolve.cpp (test_gaussian): Add test of 1D convolution with a small Gaussian kernel. 2014-10-24 Francesco Montesano * test/: added to svn:ignore the binaries and the products of the tests * test-driver: added to svn:ignore (link with automake 1.13 and 1.14 on Linux) * compile: added to svn:ignore (link with automake 1.14 on Linux) 2014-08-22 Martin Landriau * ltl/fmatrix/lmfit.h: throws an exception if the number of DoF < 1. 2014-08-01 Randy Bryant * ltl/fits.h: Fix a problem with in-memory allocations. * ltl/io/fits.cpp: Same. * test/testfitsio.cpp: Update test to find above problem. * ltl/util/option.cpp: Fix some comments. 2014-07-09 Niv Drory Get rid of unused variable warnings. * ltl/misc/mdebug.h: Add LTL_UNUSED(x) macro to declare a variable as unused. Use this macro in CHECK_DIM and ASSERT_DIM if range checking is off. * ltl/marray.h: Use LTL_UNUSED() or remove parameter names from function declaration if unused. * ltl/marray/eval.h: Same. * ltl/marray/expr.h: Same. * ltl/marray/expr_iter.h: Same. * ltl/marray/index_iter.h: Same. * ltl/marray/marray_iter.h: Same. * ltl/marray/marray_methods.h: Same. * ltl/marray/shape.h: Same. * ltl/misc/applicops.h: Same. * ltl/fits.h: Same. * ltl/fitsio.h: Same. * ltl/io/fits_card.h: Same. * ltl/io/fits_data.h: Same. * configure.ac: Bump version to 2.0.17 2014-04-07 Jan Snigula * ltl/io/ascio.{h,cpp}: Added functions to read long long integers, (Code provided by Johannes) 2014-03-14 Randy Bryant * ltl/fits.h: Implement writing a fits file to an in-memory buffer. * ltl/io/fits.cpp: Same. * test/testfitsio.cpp: Add a test-case for in-memory FITS file writing. * configure.ac: Bump version to 2.0.16 2014-02-25 Martin Landriau * ltl/marray/lapack.h: removed const attribute from lapack_gesv internal variables. 2014-02-25 Niv Drory * ltl/marray/blas.h: fix typo in blas_gemv () function parameter list. 2014-02-18 Randy Bryant Niv Drory * ltl/fits.h: Implement constructing a fits object from an in-memory pointer to a FITS file (instead of reading from file). * ltl/io/fits.cpp (openData): Same. * ltl/io/fits_header.h: Same. * ltl/io/fits_header.cpp (readHeader): Same. * test/testfitsio.cpp: Add a test-case for in-memory FITS file reading. * configure.ac: Bump version to 2.0.15 2014-02-14 Niv Drory * ltl/fmatrix/mrqfuncs.h: fix explicit references to inherited function calls * configure.ac: Bump version to 2.0.14 2014-02-14 Claus Gössl * ltl/fmatrix/mrqfuncs.h: Add 2-D Moffat function * test/testgaussmarquardt.cpp: Add test case for Moffat fit 22013-12-09 Niv Drory * ltl/fmatrix/lmfit.h: Remove erroneous comment from example code 2013-12-09 Claus Gössl * ltl/misc/applicops.h (ltl): added expression templates for IEEE floating point classification macros / functions * test/testieee.cpp (main): same * ltl/marray/expr_ops.h (ltl): same 2013-11-26 Francesco Montesano * ltl/util/stringfac.{h,cpp} (StringFactory::toString): Added parameter "const char format" in toString(double ...) and toString(float ...) to select the "floatfield format flag" when printing floating point values: - 'd': default floating-point notation (default value in function declaration) - 'f': fixed-point notation - 'e': scientific notation * ltl/util/stringfac.h (StringFactory::floatToString): Same * ltl/util/stringfac.cpp (StringFactory::changeFormat): select between the floatfield format flags 2013-07-24 Jan Snigula * ltl/util/gnuplot.cpp: Fixed variable name bug 2013-06-17 Jan Snigula * ltl/util/gnuplot.{h,cpp}: gnuplot binary can be selected using LTL_GNUPLOT environment variable default: "gnuplot" 2013-04-26 Martin Landriau * ltl/marray/blas.h: Added wrappers for Xgbmv. 2013-02-05 Niv Drory * ltl/test/testmablas.cpp (test_blas1): Fix testcase on MacOS X 10.7 & 10.8 where apple screwed up sdot_ 2013-02-05 Claus Gössl * ltl/fitsio.h: Fixed uninitialised warning in getFitsMarray under gcc4.6. Hopefully also fixed bug with reading slices with this. Should have fixed "no matching function for call to 'ltl::sData::read(const uint8_t*&)" bug under gcc4.7. 2013-02-04 Claus Gössl * ltl/fitsio.h (FitsBinTableIn): Added FitsBinaryTableIn class to read FITS binary tables into MArrays. * ltl/io/fitsio.cpp (FitsBinTableIn): Same. * ltl/fits.h: Added a getExtension() by type and name (and optional version and level) method. Added a little bit of documentation to the FITS Extension classes. * ltl/io/fits.cpp: Fixed bug in FitsIn::getHeader(), no longer reopens file and creates new (primary) header but returns copy of self (i.e. even an extension). And added code for new getExtension(). * ltl/io/fits_header.h: Removed obsolete check on largefile mode defines. Removed obsolete FitsExtensionHeader class. * ltl/io/fits_header.cpp: EXTEND key only first in primary header. * ltl/io/fits_const.h: Added Extension keys for binary tables. * ltl/io/fits_const.cpp: Same and changed code for FitsKnownList::N_KNOWN to automatically hold size of known FITS keys. * ltl/Makefile.am: Changed INCLUDES to AM_CPPFLAGS to comply with new auto tools. * configure.ac: Bump version to 2.0.13. Renamed configure.in to configure.ac to comply with new auto tools. 2013-02-03 Niv Drory * acinclude.m4: Add support for newer Intel and AMD cputypes for use with -march= leave -march=native the default, though. 2013-02-01 Niv Drory * configure.in: bump version to 2.0.12 22013-01-28 Niv Drory * test/testmablas.cpp (test_blas2): Fix bug in transposed gemv test. 2012-12-18 landriau * ltl/marray/blas.h: Added blas_symv (s,d,c,z) for symmetric matrices. * ltl/marray/lapack.h: Added lapack_sbev (s,d) for band-diagonal, symmetric matrices. 2012-12-07 landriau * ltl/marray/blas.h: Corrected assertion in blas_gemv * ltl/marray/lapack.h: Corrected assertion in {s,d}syev 2012-08-13 Martin Landriau * ltl/marray/lapack.h : Add wrapper for {s,d}syev to obtain eigenvalues and eigenvectors of real symmetric matrices. 2012-07-17 Niv Drory * ltl/io/ascio.cpp: add filename to all exceptions. 2011-03-17 Niv Drory * ltl/Makefile.am: Add missing gnuplot.cpp to list of source files to build. 2011-01-17 Niv Drory * ltl/fmatrix/lmfit.h (LMFit): Add template parameter Solver<> to determine the matrix inversion/linear solution method to use. Compatible with GaussJ and LUDecomposition. Default parameter is GaussJ. The former is faster, the latter stable against numerically singular matrices. * ltl/fmatrix/lusolve.h (LUDecomposition): Add invert() method. * ltl/fmatrix/gaussj.h (GaussJ): Same. * test/testlmfit.cpp: Add test of LMFit with LUDecomposition. * ltl/fmatrix/lmfit.h : Update documentation. 2010-11-05 Niv Drory Merge and reintegrate unified-et-branch into trunk. * configure.in: version 2.0.b6 2010-11-05 Niv Drory COMPILE AND TEST WITH CLANG/LLVM COMPILERS * configure.in: version 2.0.b5 Identify clang++ and set compiler options. * ltl/misc/type_promote.h: the intel C++ compiler is being really silly. * ltl/misc/exceptions.h: Remove extra semi-colons after method definitions. * ltl/util/u_exception.h: Same. * ltl/io/fits_card.h: Same. * ltl/fits.h: Same. * ltl/util/region.h: Same. * ltl/util/utdate.h: Same. * test/testuserfuncs.cpp: Same. * test/testcomplex.cpp: Same. * ltl/fmatrix/lmfit.h: Same. * ltl/fmatrix/marquardt.h: Same. * ltl/fmatrix/mrqhesse.h: Same. * ltl/fmatrix/mrqfuncs.h: Same. * ltl/fmatrix/polynomfit.h: Same. * ltl/marray/shape_iter.h: Same. * ltl/util/option_parser.h: Same. * ltl/wcs.h: Same. * ltl/fmatrix/fmatmat.h: Same. * ltl/fmatrix/fmatvec.h: Same. * ltl/fvector/fvdot.h: Same. * ltl/fmatrix/fmbool.h: Same. * ltl/fmatrix/gaussj.h: Same. * ltl/fmatrix/fmexpr_ops.h: Same. * ltl/fvector/fvexpr_ops.h: Same. * ltl/fvector/fvbool.h: Same. * ltl/fmatrix/fmtloops.h: Same. * ltl/fvector/fvtloops.h: Same. * ltl/misc/type_name.h: Same. * ltl/marray/expr_ops.h: Same. * ltl/marray/shape.h: Same. * ltl/marray/lapack.h: Insert assertion that fails for undefined types. * ltl/marray/blas.h: Same. * ltl/marray/index_iter.h (IndexIter::readVec): properly cast 0 to vector type. * ltl/util/option.{h,cpp} (RegionArrayOption): Replace 'struct Region' by Region. 2010-11-03 Niv Drory * ltl/statistics.h (kappa_average_median): Fix typo (e => E). 2010-11-03 Claus Goessl * merge from trunk into ltl-unified-et. IMPLEMENT READ/WRITE SUPPORT FOR FITS IMAGE EXTENSIONS * ltl/fitsio.h: Read/write support for FITS image extensions. * ltl/fits.h: Same. * ltl/io/fits.cpp: Same. * ltl/io/fits_header.h: Same. * ltl/io/fits_header.cpp: Same. * test/testfitsextensionio.cpp: Add testcase. * test/testfitsio.cpp: Same. * test/Makefile.am: Same. 2010-11-03 Niv Drory * doc/marray_doc.h: Improve documentation of new (v 2.0) features. * ltl/convolve.h: Same. 2010-11-02 Niv Drory * doc/marray_doc.h: Document feq() and fneq(). * ltl/misc/applicops.h (fneq): Fix typo. * doc/maio_doc.h: Document output of expressions to streams. * ltl/marray/expr_iter.h: include shape_iter.h. * ltl/marray_io.h: include expr_iter.h. 2010-11-02 Niv Drory * ltl/marray_io.h: Avoid a copy opertion when outputting expressions. * test/testmarrayio.cpp: Improve testcase. * ltl/marray/expr_iter.h (length): New method to inquire the length of the loop over each dimension. * ltl/marray/shape_iter.h: Same. 2010-11-01 Niv Drory * ltl/marray/expr_ops.h: Add safe floating point comparisons feq(a,b) and fneq(a,b). * ltl/misc/applicops.h: Same. * test/testmarray.cpp (main): Add testcase. * ltl/marray_io.h: Allow direct output of expressions to a stream. * test/testmarrayio.cpp: Add testcase. * test/testcomples.cpp: Make tests more safe against excess precision problems. 2010-10-31 Niv Drory * test/testcomplex.cpp (main): Do not execture test_complex() due to a compiler bug causing g++ to segfault on macosx/intel with the apple-supplied g++-4.0 and 4.2. * test/testmasimd.cpp (TEST_ARITHEMTIC): Do not fail on rounding differences between i387 and SSE (IEEE) processing. * configure.in: default to -O2, not -O3 for g++. * acinclude.m4 (AX_GCC_ARCHFLAG): Recognize newer Intel CPUs: core-i[357]. 2010-10-30 Niv Drory * ltl/misc/applicops_sse.h: Fixed issue with SSE4.1 intrinsics. Test with gcc-4.6. * ltl/misc/applicops.h: Make sure round() is defined. 2010-09-21 Jan Snigula * ltl/util/gnuplot.cpp: Fixed filename mangling for print command 2010-09-10 Niv Drory * configure.in: Check for openpty() in libutil and append -lutil to linker flags. needed in Gnuplot. Programs linking agains ltl need also link agains libutil on some systems. 2010-08-25 Niv Drory * ltl/util/gnuplot.h (send): iterate over 2nd axis first when sending 2D-MArray. (sendAsImage): New. Send a 2-D MArray in format ready for plotting as "plot '-' matrix with image". 2010-08-13 Niv Drory * test/testmarrayiter.cpp: New. Test MArray iterators with stl functions. * test/Makefile.am: Add testmarrayiter. 2010-08-12 Niv Drory * ltl/marray.h: Add const versions of beginRA() and endRA(). 2010-08-05 Niv Drory * ltl/misc/applicops_sse.h: Add support for some SSE4.x vector operations. * test/testmasimd.cpp: More exhaustive test coverage. * configure.in: check for -msse3 support. * acinclude.m4: check for -march=native first, then default to specific arch if -march=native not supported 2010-07-29 Niv Drory * Makefile.am: Add fftw.h and convolve.h to distribution files. 2010-07-26 Niv Drory * ltl/marray/index_iter.h: Remove indexPos(). Replace with indexPosInt(). Poison the identifier indexPos(). This is so that the type returned as the index value is always explicit. Fixes problems in unified-et-branch. * doc/marray_doc.h: Adjust documentation. Explicitly mention issues with type promotion involving scalars (literals). * test/*.cpp: Replace indexPos() with indexPos{Int,Flt,Dbl}(). * ltl/fmatrix/mrqfuncs.h: Same. * util/gnuplot.h: Same. 2010-06-18 Niv Drory * ltl/statistics.h: Fix typo in checking for != nan. * ltl/misc/type_promote.h: Assume that non-builtin types, for example compound-types like FVector<> have higher precedence than any built-in scalar type. 2010-06-17 Niv Drory * test/testmarray.cpp (test_expr1): Make sure that type promotion is tested in MArray-Literal expressions. THIS TEST FAILS WITH ltl-unified-et branch! * ltl/marray/expr.h: Make binary operator definitions more symmetric w.r.t. to handling ExprNodeType. 2010-06-15 Jan Snigula * ltl/util/gnuplot.{h,cpp}: Added interactive mode to replace the cin>>a; at the end of the programs. 2010-05-14 Niv Drory * ltl/fmatrix.h: require only MxN*sizeof(T) bytes of storage. * ltl/fmatrix/fmatrix_methods.h: Same. * ltl/fmatrix/fmiter.h: Require only one pointer. * ltl/fvector.h: require only N*sizeof(T) bytes of storage. * ltl/fvector/fvmemory.h: Same. * test/testfvec.cpp (main): Test sizeof(). * test/testfmatrix.cpp (main): Same. 2010-05-12 Niv Drory * configure.in: Move AX_GCC_ARCHFLAG out of conditional for non-g++ targets. * test/testsimdstatistics2.cpp: Fix comparison of signed/unsigned warnings. 2010-05-10 Niv Drory * configure.in: do not enable --fast-math by default! * configure.in: when using g++ try to set -march=native, if not, try -march=XXX using CPUID * acinclude.m4: add AX_CHECK_COMPILER_FLAGS, AX_GCC_ARCHFLAG, AX_GCC_X86_CPUID 2010-05-10 Niv Drory Full support for MArrays of FVector, FMAtrix elements, including expression templates. WORKS, BUT EXPERIMENTAL! * ltl/marray/expr.h (binary operators and functions): Simplify overloads for expressions and literal types. Declare only for the element type of the expression - don't overload for every (builtin) scalar type; this simplifies/enables expression templates on Marrays of complex, FVector<>, FMAtrix<> and user-defined types. * ltl/fvector/fvexpr.h: Same. * ltl/fmatrix/fmexpr.h: Same. Note: These changes may cause more stringent type matching in expressions involving literals/scalars. * test/testmarray.cpp (test_expr[1,2]): Add tests for literals in expressions. * test/testmarrayfvec.cpp: New. Testcase for MArrays of FVectors and expressions thereof. * test/Makefile.am: Add testmarrayfvec. 2010-05-08 Niv Drory * ltl/convolve.h: support for convolution kernels returning different types than their inputs; e.g. grad (nabla-operator). Highly experimental proof of concept. * ltl/test/testconvolve.cpp: Testcase for grad2D. 2010-05-07 Niv Drory Third patch to implement convolution support in expression templates. * ltl/convolve.h: Implement derivatives with forward differences. * ltl/convolve.h: Implement support for kernels that take a dimension as an argument. This simplifies the derivatives by a lot. Now convole(A,cderiv1(dim)). * ltl/marray/eval.h: (LTLIterator): Same. * ltl/marray/marray_iter.h: Same. * ltl/marray/expr.h: Same. * ltl/marray/apply.h: Same. * ltl/marray/merge.h: Same. * ltl/marray/partial_reduc.h: Same. * ltl/marray/index_iter.h: Same. * ltl/marray/eval_reduc.h: Same. * test/testconvolve.cpp: adapt testcases. * doc/mainpage_doc.h: Adapt. * doc/marray_doc.h: Same. * ltl/fftw.h: Improve documentation. * ltl/util/gnuplot.h: Same. 2010-05-06 Niv Drory * ltl/convolve.h: Improve documentation. * doc/mainpage_doc.h: Same. * doc/marray_doc.h: Same. * README: Same. 2010-05-05 Niv Drory Second patch to implement convolution support in expression templates. * ltl/marray/eval.h (eval_with_convolution): Fixes for sub/array slicing and optimizations. * test/testconvolve.cpp: 1,2,3-D testcases with subarrays and slices. * ltl/marray/marray_iter.h: rename advanceN() to advance(). Derive all objects implementing iterator interface from empty base class LTLIterator. * ltl/marray/expr.h: Same. * ltl/marray/apply.h: Same. * ltl/marray/merge.h: Same. * ltl/marray/partial_reduc.h: Same. * ltl/marray/index_iter.h: Same. * ltl/convolve.h: Same. * ltl/marray/eval_reduc.h: Same. * ltl/marray/eval.h: Same. * ltl/convolve.h: Implement Laplacian kernel in 2D and 3D. * ltl/marray/index_iter.h: Implement readWith(out)Stride() and readAtOffset() properly. * ltl/marray/eval.h: optimize evaluation with index iterators. Lift restrictions. * ltl/test/testmarray.h: improve testing of index iterators. * ltl/doc/marray_doc.h: Some documentation for convolutions. * ltl/doc/mainpage_doc.h: Same. * README: mention convolution support. * ltl/Doxyfile: add convolve.cpp. 2010-05-04 Niv Drory First patch to implement convolution support in expression templates. Infrastructure and some working examples. * ltl/marray/marray_iter.h (readAtOffset): Implement reading at offsets along dimensions 1,2,3 for convolutions. * ltl/marray/expr.h (readAtOffset): Add to ExprNodes for evaluating convolution expressions. * ltl/marray/apply.h (readAtOffset): Same. * ltl/marray/merge.h (readAtOffset): Same. * ltl/marray/partial_reduc.h (readAtOffset): Same. * ltl/marray/index_iter.h (readAtOffset): Same. * ltl/convolve.h: New. Convolution expression template support: convolve(Expr, Kernel). * test/Makefile.am: Add testconvolve. * test/testconvolve.cpp: New testcase. 2010-05-04 Niv Drory * configure.in: check for availability of pty.h or util.h * ltl/util/gnuplot.cpp: use. 2010-05-04 Niv Drory * ltl/io/fits_data.h: change abs() to ::abs(). 2010-05-03 Niv Drory * ltl/marray/marray_iter.h: Replace T* first_ with reference to MArray. This is more flexible for future extensions. 2010-04-28 Niv Drory * ltl/misc/type_name.h: Add traits for complex and complex * ltl/fftw.h: document. * ltl/misc/applicops.h: Exclude applicative template classes from Doxygen compound types list. * ltl/misc/exceptions.h (LTLException): New generic LTL exception class. 2010-04-27 Niv Drory * ltl/ascio.h: Fix Doxygen warnings and errors. * doc/mainpage_doc.h: Same. * doc/marray_doc.h: Same. * ltl/marray/index_iter.h: Same. * ltl/marray/cast.h: Same. * ltl/misc/applicops.h: Same. * ltl/marray/marray_iter.h: Same. * ltl/doxyfile: add applicops.h. 2010-04-23 Niv Drory * ltl/fvector/fvexpr.h: Add support for complex in expression templates. * ltl/fvector/fvexpr_ops.h: Add support for complex in expression templates. * ltl/fmatrix/fmexpr.h: Add support for complex in expression templates. * ltl/fmatrix/fmexpr_ops.h: Add support for complex in expression templates. * test/testcomplex.cpp: Add test cases for FVector and FMatrix with complex types. 2010-04-23 Niv Drory * doc/marray_doc.h: Improve documentation of gnuplot, fftw, and complex support. * doc/mainpage_doc.h: Mention gnuplot, fftw, and complex support. * README: Same. * Doxyfile: Add fftw.h and gnuplot.h. 2010-04-22 Niv Drory * first patch to complete complex support. MArrays first, FVector and FMatrix to follow. * ltl/marray/expr.h: Add support for complex in expression templates. * ltl/marray/expr_ops.h: Add support for complex in expression templates. * ltl/misc/applicops.h: Add support for complex in expression templates. * test/testcomplex.cpp: New test cases. * test/testfftw.cpp: New test cases. * ltl/fftw.h: homogenize spelling of method names. * test/Makefile.am: Add testcomplex. * configure.in: Add discovery of complex support. * doc/marray_doc.h: Mention support for complex and related math functions. 2010-04-19 Niv Drory * configure.in: bump version to 2.0.3 finished conversion to ExprBase<> derived expression templates. 2010-04-19 Niv Drory * ltl/statistics.h (kappa_sigma_average): Convert to ExprBase ET. * ltl/statistics.h (kappa_sigma_median): Same. * ltl/statistics.h (kappa_median_average): Same. * test/teststatistics.h: Add test cases. 2010-04-14 Niv Drory * ltl/util/gnuplot.{h,cpp}: New. Interface to gnuplot. Easily plot MArrays and any stdlib containers interactively. Query mouse. * Doxyfile: Add gnuplot.h * Makefile.am: Same. * ltl/Makefile.am: Same. * configure.in: boost version to 2.0.2 2010-03-30 Niv Drory * ltl/fftw.h: New. Provides class FourierTransform that wraps the basic FFT from the fftw library. 2010-03-26 Niv Drory * ltl/statistics.h: Convert to median_estimate, histogram, and kappa_sigma_average to ExprBase ET. * test/teststatistics.cpp: Add tests for medain, median_estimate, and histogram. 2010-03-25 Niv Drory * ltl/statistics.h: (median_exact): Convert to ExprBase ET. * ltl/marray/expr_iter.h (operator !=): Add to allow use in STL algorithms that test for !=end(). * ltl/marray/shape_iter.h (ShapeIter): Make default constructor return a valid end() iterator. * ltl/marray/apply.h: Convert to use new ET ExprBase mechanism. Improve documentation. * test/teststatistics.h: Add tests for median_exact(). 2010-03-22 Niv Drory * test/testmarrayio.cpp (test_fmatrix_io): Add tests with 2 and 3 dim MArrays. * ltl/fmatrix.h: Add operator>> to read from stream. * test/testmarrayio.cpp (test_fmatrix_io): Add. * test/Makefile.am: Remove temporary test files from ascii io test. * ltl/misc/type_name.h: Set string name of unknown types to "T". * ltl/misc/type_name.h: New. Type traits to map between types and string representations or their type names. New macro LTL_TYPE_NAME(T,STR). * ltl/marray_io.h: Use in operator<<. * ltl/FVector: Use in operator<<. * ltl/FMatrix: Use in operator<<. * Makefile.am: Add. * doc/maio_doc.h: Document. 2010-03-18 Jan Snigula * ltl/fmatrix/lmfit.h (getErrors): Cleaned up routine (For whatever reason this didn't work when I tried it like that before...) 2010-03-17 Jan Snigula * ltl/fmatrix/lmfit.h (getErrors): Added getErrors routine. 2010-03-05 Niv Drory * configure.in: bump version to 1.9.10. 2010-03-03 Jan Snigula * ltl/util/option_parser.cpp (OptionParser::addOption): Cleaned character/string conversion. * ltl/util/option_parser.cpp (OptionParser::addOption): Removed bogus output 2010-02-24 Jan Snigula * ltl/util/option_parser.cpp (OptionParser::addOption): Added check to prevent double used option chars. 2009-11-21 Niv Drory * doc/marray_doc.h: Clarify the use of uninitialized MArrays. * ltl/marray/marray_iter.h: Add assertion in ctor to check for uninitialized MArray. * ltl/marray/marray_methods.h: Make safe to use on uninitialized MArray (used in copy-ctor). * test/testmarray.cpp: Add testcase for copy-ctor. 2009-11-18 Niv Drory Jan Snigula * test/testmarray.cpp : Added test for copy function * ltl/marray/marray_methods.h: Fixed copy() to empty the current MArray if the other MArray is empty 2009-08-13 Jan Snigula * test/testrange.cpp: Added test for dynamic Range operators * ltl/misc/range.h: Members of Range are no longer const Added +=, -= and = operators 2009-07-24 Niv Drory * ltl/marray/merge.h: Use standard type promotion for return type of merge() expressions. 2009-06-18 Jan Snigula * ltl/io/ascio.cpp: Fixed bug in row and line counting 2009-11-18 Niv Drory Jan Snigula * test/testmarray.cpp : Added test for copy function * ltl/marray/marray_methods.h: Fixed copy() to empty the current MArray if the other MArray is empty 2009-03-16 Niv Drory * ltl/marray/index_iter.h: Remove versions of expressions taking explicit MArray objects. Replace versions taking ExprNodes with versions taking ExprBase objects. * ltl/marray/where.h: Same. * ltl/marray/cast.h: Same. * ltl/marray/apply.h: Same. * ltl/marray/partial_reduc.h: Same. * ltl/statistics.h: Same (up to kappa_sigma functions; these are left unchanged; they scare me). * ltl/marray/expr.h: Eliminate _et_parse_base class. Documentation of ET machinery still needs update. * test/testmarray.cpp: Improve test cases. * test/testmerge.cpp: Same. * test/testpartialreduc.cpp: Same. * test/teststatistics.cpp: Same. 2009-03-16 Niv Drory * configure.in: Bump version to 1.10 * Doxyfile: Same. Add expr_base.h. 2009-03-16 Niv Drory * ltl/marray/marray.h: replace 'class' with 'typename' in template declarations. * ltl/marray/marray_ops.h: Same. * ltl/marray/marray_methods.h: Same. * ltl/marray/expr.h: Same. * ltl/marray/marray_iter.h: Same. * ltl/marray/index_iter.h: Same. * ltl/marray/expr_iter.h: Same. 2009-03-15 Niv Drory * ltl/marray/expr_base.h: New. Base class for ALL non-literals types that can appear in expression templated expressions. * Makefile.am: Add expr-base.h * ltl/marray/expr.h: Rewrite parse tree with ExprBase types. Number of overloaded global-scope operators per expression-templatable function is smaller by factor of 3. * ltl/marray.h: Derive from new ExprBase class. * ltl/marray/merge.h: Adapt to new parse-tree structure. * ltl/marray/expr_iter.h: Remove forward-declaration of ExprNode. * ltl/marray/eval_reduc.h: Include shape_iter.h from here. This version passes testsuite but is still INCOMPLETE! 2009-03-11 Niv Drory * ltl/marray/expr.h: Fix typos in documentation. * ltl/fvector/* Rename FV expression template parse tree nodes. * ltl/fmatrix/* Rename FM expression template parse tree nodes. 2009-03-04 Jan Snigula * ltl/io/ascio.cpp: Failed to read multiple columns from file with more columns than rows 2008-12-26 Niv Drory * ltl/marray/expr.h: Improve the conceptual part of the documentation. 2008-07-18 Niv Drory * ltl/misc/applicops_sse.h: Do not include Accelerate.h, only vecLib/vfp.h on macosx, since Accelerate.h also pulls in blas and lapack headers. * ltl/misc/applicops_altivec.h: Same. 2008-07-17 Niv Drory * ltl/marray/reductions.h: Distinguish between the return type, the element type and the type of the elements of the corresponding vector type. * ltl/marray/reductions_sse.h: Same. * ltl/statistics.h: For reductions that differ in result types when using SIMD (e.g. bool valued reductions), make sure to use the vector element type as the value type of the Reduction object * test/testmasimd2.cpp: Define LTL_RANGE_CHECKING! * test/testmablas.cpp: Use LTL_ASSERT_ instead of LTL_ASSERT. * test/testuserfuncs.cpp: Same. * ltl/marray/eval.h: Add output of vectorizer info to LTL_DEBUG_EXPRESSIONS output. * ltl/marray/eval_reduc.h: Same. * test/testmasimd.cpp (test_logic): Added tests of logical reductions. * doc/marray_doc.h: Clarified some minor points w.r.t. partial reductions. * ltl/marray/apply.h: Add missing typedef vec_value_type. 2008-07-16 Niv Drory * doc/marray_doc.h: Document partial reductions. * doc/mainpage_doc.h: Update. * ltl/marray/partial_reduc.h: New. Implementation of partial reductions. * test/testpartialreduc.cpp: New testcase. * test/Makefile.am: Add. * ltl/marray/shape_iter.h: New Method to read along dimension N and advance along dimension N. * ltl/marray/marray_iter.h: Same. * ltl/marray/index_iter.h: Same. * ltl/marray/merge.h: Same. * ltl/marray/expr.h: Same. * ltl/marray/shape_iter.h (shape): New Method. Return shape to conform with iterator/expression interface. * ltl/marray/shape.h (getShapeForContraction): New method. Return a shape with one dimension removed. * ltl/statistics.h: include marray/partial_reduc.h. * ltl/marray/reductions.h: Define value_type for all reductions. * ltl/marray/index_iter.h: Remove redundant stride code. 2008-07-14 Niv Drory * ltl/marray/marray_iter.h (operator ++): Implement proper postfix operator++ behavior. * ltl/marray/index_iter.h: Same. * ltl/marray/expr_iter.h: Same. * ltl/marray/shape_iter.h: Same. 2008-07-10 Niv Drory * all-files: Remove copyright years, update email addresses. * test/testmarray.cpp: Add tests of various MArray initializations. 2008-07-09 Niv Drory * ltl/marray/expr.h: Document expression template internals. * Doxyfile: add expr.h. * ltl/misc/staticinit.h: Add support for range checking in Array=1,2,3, ... initializations. * test/testmarray.cpp: Add testcase. * ltl/marray.h: Add size() to conform to STL containers. 2008-07-04 Niv Drory * ltl/marray/expr.h: Rename expression parse tree nodes. Document expression template internals. * ltl/marray.h: Use new expression parse tree node names. * ltl/marray/index_iter.h: Same. * ltl/marray/expr_iter.h: Same. * ltl/marray/eval_reduc.h: Same. * ltl/marray/marray_ops.h: Same. * ltl/marray/marray_methods.h: Same. * ltl/marray/apply.h: Same. * ltl/marray/cast.h: Same. * ltl/marray/where.h: Same. * ltl/marray/merge.h: Same. * ltl/marray/eval.h: Same. * ltl/statistics.h: Same. 2008-07-01 Niv Drory * acinclude.m4: Do not fail if BLAS has not been detected but LAPACK was. * doc/marray_doc.h: Update documnentation. * ltl/marray.h: Initialize data_ to NULL in default constructor. Add empty() consistent with STL containers. Use everywhere instead of checking memBlock_ directly. *ltl/marray/marray_methods.h: Same. * ltl/marray.h: (opreator=): Allow assignment of MArrays and expressions to uninitialized MArrays. In this case, memory is allocated and the contents of the other MArray copied, consistent with the semantics of operator=(). * Doxyfile: Add marray_iter.h, index_iter.h, cast.h. * ltl/marray/marray_iter.h: Document. * ltl/marray/index_iter.h: Document. * ltl/marray/cast.h: Document. * doc/marray_doc: Update. 2008-06-27 Niv Drory * doc/ltl_doxygen.css: Add. Make doxygen output more readable. * Doxyfile: Use custom css. 2008-06-27 Niv Drory * ltl/fmatrix.h: Document. * ltl/fvector.h: Same. * ltl/fvector/fvmemory.h: Same. 2008-06-26 Niv Drory * doc/mainpage_doc.h: Update documentation to reflect recent additions. * doc/marray_doc.h: Update documentation to reflect recent additions. * doc/linalg_doc.h: Document lusolve and svdsolve. * Doxyfile: Add recently added files. * marray/blas.h: Documentation. * marray/lapack.h: Documentation. * marray/fmatrix/lusolve.h: Documentation. * marray/fmatrix/svdsolve.h: Documentation. 2008-06-25 Niv Drory * ltl/marray/lapack.h: New. Interface to LAPACK calls. * Makefile.am: add lapack.h. * test/testmalapack.cpp: testcase (empty for now). * test/Makefile.am: add testmalapack. 2008-06-24 Niv Drory * acinclude.m4: Add AC_CXX_HAVE_COMPLEX. * configure.in: Same. * ltl/marray/blas.h: Add implementation for complex and complex. * ltl/marray/blas.h: Refactor code to be more easily exptendable to furhter data types (complex and complex). * test/testmablas.cpp: Adapt. 2008-06-23 Niv Drory * README: Update for version 1.9 news. * ltl/marray/blas.h: Implemented BLAS level 2 and 3 functions for float and double types. * test/testmablas.cpp: add testcases for BLAS level 2 and 3. * ltl/marray/marray_methods.h (transposeSelf): qualify swap() with std::swap(). 2008-06-23 Ralf Koehler * ltl/fmatrix/lmfit.h: Set ignore_ flag if at least one ignore is true. 2008-06-20 Niv Drory * ltl/marray/blas.h: Implementation of BLAS interface to MArrays. * test/testmablas.cpp: testcase. * test/Makfile.am: Add BLAS testcase. * Makefile.am: Add blas.h. * configure.in: bump version to 1.9.0. * configure.in: Add detection of BLAS and LAPACK libraries. * acinclude.m4: Add ACX_BLAS and ACX_LAPACK. * configure.in: Print configuration summary. 2008-06-20 Niv Drory * configure.in: Bump version to 1.8.2. 2008-06-19 Niv Drory * ltl/fmatrix/svdsolve.h: New. Singular Value Decomposition for FMatrix. * test/testsvdecomp.cpp: New. Testcase. * test/Makefile.am: Add testsvdecomp.cpp to tests. * Makefile.am: Add ltl/fmatrix/svdsolve.h. * ltl/fmatrix.h (operator()): Fix bug in range checking when matrix is not square. 2008-06-18 Niv Drory * ltl/fmatrix/lmfit.h: Change chi2 to always be of type double. Make convergence criteria more robust. Don't fail if initial parameters are perfect. Don't fail if convergence is too rapid. * test/testlmfit.cpp: Fix testcase. 2008-06-17 Niv Drory * ltl/fmatrix/lmfit.h: Change convergence criteria to stop when relative change in chi-square is smaller than some number. Remove extra constructor parameters, supply defaults for all remaining ones. 2008-06-17 Niv Drory * ltl/fmatrix/lusolve.h: New. LU-decomposition for FMatrix. * test/testludecomp.cpp: New. Testcase for LU decomposition. * test/Makefile.am: Add testludecomp.cpp to tests. * ltl/fmatrix/gaussj.h: fix formatting. 2008-06-12 Niv Drory * ltl/fmatrix/marquardt.h (eval): Make input parameters const. 2008-06-10 Ralf Koehler Niv Drory * ltl/marray/simplevec.h: Added << operator. 2008-06-09 Niv Drory * ltl/fmatrix/gaussj.h: Guard against the case that the pivot could not be determined. Throw instead of fail with-out-of-bounds-access. 2008-06-09 Niv Drory * ltl/fmatrix/gaussj.h: Remove extra inlines. * ltl/misc/memblock.h (MemoryBlock): Restore LTL_DEBUG_MEMORY_BLOCK functionality. (~MemoryBlock): Set data pointer = NULL after delete. 2008-06-05 Jan Snigula * ltl/io/ascio.cpp: Added start and nrows parameters to readColumns routines to allow reading of line block. start specifies the starting line from which to read, nrows the number of rows to be read * ltl/ascio.h: same * test/testascio.cpp: Test for above change 2008-05-28 Jan Snigula * ltl/io/ascio.cpp: Fixed missing include 2008-05-26 Jan Snigula * src/io/ascio.cpp: Improved performance on whitespace delimited data * src/ascio.h: same. * src/io/ascio.cpp: Changed readFloatColumns to allow reading of columns in arbitrary order. * src/util/option.cpp: Ported StringArrayOption over from sedfit. * src/util/option.cpp: same. 2008-05-07 Niv Drory * ltl/fmatrix/mrqfuncs.h: Return void instead of TPAR in Gaussian.fill(). 2008-03-11 Niv Drory * ltl/misc/applicops.h: Add typedef vec_value_type to all expression nodes because gcc-4.3 does not accept vector type mismatches anymore. * ltl/misc/applicops_sse.h: same. * ltl/marray/index_iter.h: same. * ltl/marray/merge.h: same. * ltl/marray/expr_iter.h: same. * ltl/marray/marray_iter.h: same. * ltl/marray/expr.h: same. * ltl/marray/apply.h: same. 2008-02-19 Niv Drory * merge vectorizer-devel-branch revisions 267:320 into trunk. * version 1.8.0 * configure.in: Add option tar-ustar to AC_INIT_AUTOMAKE to support long filenames in tar archives * Makefile.am: cleanup. * ltl/misc/memblock.h: Fix posix mutex code. * ltl/config.h: Add support for Intel C/C++ atomic builtins on ia64. 2008-02-19 rkoehler * ltl/fmatrix/lmfit.h: Check length of inputs in eval() when LTL_RANGE_CHECKING. 2008-02-18 Niv Drory * configure.in: Added option --enable-multithread to configure with locked memblock allocations. * ltl/config.h: same. * doc/mainpage_doc.h: document option. 2007-12-14 drory * ltl/io/fits_header.h: Ignore LARGEFILE_SENSITIVE on MacOS X. 2007-12-06 Niv Drory * test/testmarray.cpp: Test anyof/allof/noneof/count before anything else. * test/testsimdstatistics2.cpp: Fix typo in anyof() test. * ltl/marray/reductions_sse.h: Fix bug using SSE _mm_movemask() in anyof/noneof. * ltl/marray/reductions.h: Don't use double negation in anyof() logic. * ltl/marray/reductions_sse.h: Fix overloading __m128i for intel compiler. 2007-12-05 Niv Drory * ltl/marray/reductions_sse.h: Added min/max for all signed types. * ltl/misc/applicops_sse.h: Implement min/max for types that have no intrinsic. * test/testsimdstatistics.cpp: Add test case. * ltl/marray/reductions_sse.h: Added vectorized count(), allof(), noneof(), anyof(). * ltl/marray/reductions.h: Same. * test/testsimdstatistics2.cpp: Add test case. * test/Makefile.am: Same. * ltl/misc/applicops_sse.h: Don't use INTRIN patterns for non-intrinsics. 2007-12-04 Niv Drory * ltl/misc/applicops_sse.h: Add bitwise &,|,^ for integer types. * test/testmasimd2.cpp: Add test. * ltl/misc/applicops_sse.h: Add != (cmpneq) for integer types. * test/testmasimd2.cpp: Add test. * test/testuserfuncs.cpp: Add test of vectorized apply(). * ltl/marray/apply.h: Add documentation. * doc/marray_doc.h: Expand vectorization section. 2007-12-03 Niv Drory * test/testmasimd2.cpp: Added test for vectorized cmp. * test/Makefile.am: Same. * ltl/misc/applicops_sse.h: Vectorized unary not, minus, and many comparison operators on SSE. * ltl/marray/eval.h: Cast vector reads to result type. 2007-12-03 Niv Drory * ltl/misc/applicops_sse.h: Remove implicit conversions between vector types as gcc-4.3 will not accept them anymore. * ltl/marray/reductions_sse.h: Same. * ltl/marray/expr.h: Remove extra ; * ltl/misc/mdebug.h: Add macro LTL_EXPECT_(a,b,mesage). * test/testsimdstatistics.cpp: Use. * test/teststatistics.cpp: Same. * ltl/marray/reductions_sse.h: Count nans more efficiently. Fix vec_not() bug. * ltl/misc/applicops_sse.h: Fixed some incompatibilities with gcc-4.3. Fixed error in vec_not(). 2007-12-02 Niv Drory * test/testuserfuncs.cpp: Add testcase for user-supplied functions. * test/Makefile.am: Same 2007-12-01 Niv Drory * configure.in: Add detection of recent Intel compilers. * ltl/misc/applicops_sse.h: Work around Intel compiler _mm_set1_epi64() weirdness. Intel compiler v10 now passes testsuite. * ltl/misc/applicops_sse.h: Add macro VEC_ZERO(T). * ltl/marray/reductions_sse.h: Use VEC_ZERO(T). 2007-11-30 Niv Drory * Doxyfile: Some configuration changes. * Documentation improved at various places. 2007-11-29 Niv Drory * ltl/marray/reductions_sse.h: Implement vectorized variance(A) and variance(A,nan). * ltl/marray/reductions.h: Same. * test/testsimdstatistics.cpp: Add testcase. * ltl/marray/reductions_sse.h: Implement vectorized average(A) and average(A,nan). * ltl/marray/reductions.h: Same. * test/testsimdstatistics.cpp: Add testcase. * ltl/misc/applicops_sse.h: Add sse_andnot and sse_not patterns. * ltl/marray/eval.h: Fix typo in LTL_UNROLL_EXPRESSIONS_SIMD * ltl/marray/eval_reduc.h: Same. * ltl/marray/expr.h: Implement queryig for the alignment of an expression's data. * ltl/marray/expr_iter.h: Same. * ltl/marray/marray_iter.h: Same. * ltl/marray/index_iter.h: Same. * ltl/marray/merge.h: Same. * ltl/marray/apply.h: Same. * ltl/marray/eval.h: Use new alignment mechanism for vectorized expressions. * ltl/marray/eval_reduc.h: Same. * test/testmasimd.cpp: Test vectorziation of aligned and misaligned expressions. * test/testsimdstatistics.cpp: Same. * test/testsimdstatistics.cpp: Add testcases for sum(A,nan). * ltl/marray/reductions_sse.h: Implement vectorized sum(A,nan). * ltl/misc/applicops_sse.h: Add integer of same size to vector traits. * ltl/marray/reductions.h: Make the vectorized version of the reduction class a friend of the scalar version. * ltl/marray/eval_reduc.h: Pass reduction object to constructor of vectorized reduction object so that private data (like nan value) can be copied. 2007-11-28 Niv Drory * ltl/misc/applicops_sse.h: Define conveniene macros VEC_UNION, VEC_LEN. * ltl/marray/reductions_sse.h: Use. 2007-11-27 Niv Drory * ltl/marray/reductions.h: Add support for reductions that offer vectorized versions only for some input data types. * ltl/marray/reductions_sse.h: Add implementation of vectorized min() and max() for int, float, and double types. * test/testsimdstatistics.cpp: Add testcase. * test/testmarray.cpp: Add more statistics and logical tests. * ltl/marray/eval_reduc.h: Add support for vectorizing reductions. * ltl/marray/reductions.h: Same. * ltl/marray/reductions_sse.h: Add implementation of vectorized reductions (sum). * Makefile.am: Add reductions_sse.h to distribution. * test/testsimdstatistics.cpp: Add testcase. * test/Makefile.am: Same. 2007-11-26 Niv Drory * ltl/misc/applicops_{altivec,sse}.h: define a common interface for loading vector constants. * configure.in,test/Makefile.am: Automatically add appropriate compiler flags (-msse2,-maltivec,-xP, ...) to testmasimd.cpp * ltl/marray/eval_reduc.h: Guard loop unrolling by preprocessor #define LTL_UNROLL_EXPRESIONS. 2007-11-23 Niv Drory * acinclude.m4: Add test for presence of Apple vecLib. Add test for compiler support for GCC-style vector attributes. * configure.in: Add tests for vector support. * test/Makefile.am: Only run SIMD test if vector support is present. * test/testmasimd.cpp: Add to testsuite. * ltl/misc/applicops_sse.h: Add many more vectorized operations. * ltl/marray/eval.h: Improve debug output. * ltl/misc/applicops.h: Improve documentation. 2007-11-22 Niv Drory * ltl/misc/applicops_sse.h: Remove extra #ifdefs. 2007-11-21 Niv Drory * ltl/marray/apply.h: New. Use any unary or binary functor with operator() in MArray expressions: apply( F, Expr ). * ltl/marray.h: include apply.h. * ltl/test/testmerge.h: New. Group tests of merge(), where() and apply(). * ltl/test/Makefile.am: Add testmerge. * ltl/fmatrix/lmfit.h: Allow to retrieve last parameter vector and chi2 even if fit did not succeed. 2007-11-20 Niv Drory * ltl/misc/applicops_sse.h: Added vectorized implementations of pow2 .. pow8. 2007-11-17 Niv Drory * ltl/fmatrix/gaussj.h: Add default constructor with init to 0 to tNMatPivot to avoid annoying compiler warnings. 2007-10-10 Niv Drory * ltl/fmatrix/lmfit.h: Fixed bug handling errors. Changed to require errors squared. 2007-10-10 Niv Drory * ltl/fmatrix/lmfit.h: Removed dependencies on specific containers of data arrays and fit-function parameter types. Almost any container can be used for the data arrays as long as it provides typedefs for const_iterator and value_type. The same value_type must be the parameter type for the function object operator(). This can be a simple type (e.g. float) or a more complex type (e.g. FVector<>) for multi-dimensional data. * ltl/fmatrix/lmfit.h: Write-up the documentation. * ltl/test/testlmfit.cpp: Fix-up the testcase. 2007-10-10 Niv Drory * ltl/misc/exceptions.h: Fixed what() strings in LinAlgebra exceptions. 2007-10-10 Niv Drory * ltl/ascio.h: Fixed signed/unsigned warning. 2007-10-10 Niv Drory * ltl/io/fits_card.cpp (FitsCard::check_syntax): Don't complain about keywords begininng with the same sequence as known keywords but that do not have the necessary following digits. 2007-10-08 Niv Drory * ltl/io/fits_header.h: Added getValuesAsString() to retrieve the value of a FITS header keyword as a string. * ltl/io/fits_header.cpp: same. * ltl/io/fits_card.h: Added pure virtual toString() method to all FitsCards. * ltl/io/fits_card.cpp: same. * ltl/misc/exceptions.h (class FitsException): Fixed what() string. 2007-10-07 Niv Drory * test/testmarrayio.cpp: Added test case for operator<< and operator>> MArray and FVector stream io. * ltl/marray_io.h: Improved error message in operator>>(stream,MArray). * ltl/fvector.h: Improved error message in operator>>(stream,FVector). * ltl/fvector.h: Added operator>> to read FVectors from a stream (compatible with operator<<). 2007-07-26 Niv Drory * ltl/marray/index_iter.h: make operator() and operator* return const references again. 2007-07-13 Niv Drory * ltl/*: gcc-4.3 compatibility work: * ltl/marray.h: remove qualifiers from return types to avoid gcc-4.3 warnings about ignoring these. * ltl/marray/marray_iter.h: same. * ltl/marray/index_iter.h: same. * ltl/fvector/fvmemory.h: same. * ltl/util/region.h: Include for abs(). * ltl/marray/reductions.h: Include . * ltl/misc/mdebug.h: Added some parenthesis around && and || to avoid gcc-4.3 warnings. * ltl/misc/range.h: Explicitly include for INT_MIN to make newer gcc happy. * ltl/config.h: Change loop unrollling macros to LTL_DONT_UNROLL_EXPRESIONS{_SIMD} to have file-by-file control. If these are defined before ltl includes, no unrolling will be done. 2007-07-12 Niv Drory * ltl/marray/eval.h: Guard loop unrolling by preprocessor #define LTL_UNROLL_EXPRESIONS and LTL_UNROLL_EXPRESSIONS_SIMD. * ltl/config.h: Set defaults for these macors. * test/testmasimd.cpp,testsimdperf.cpp: Add test. 2007-07-11 Niv Drory * ltl/misc/applicops_sse.h: Added support for more of SSE1-SSE3 supplied vector functions. Removed any MMX functions. SSE2 or better is now required. * ltl/misc/applicops_sse.h: Added support for vMathLib-supplied vectorized math functions (sin,log,exp, ...) on MacOS X Intel. * test/testmasimd.cpp: Test case for vector math. 2007-07-10 Niv Drory , Claus A. Goessl * ltl/marray/eval.h: Minor cleanup in loop code. * ltl/config.h: add LTL_THREADSAFE_MEMBLOCK, off by default. * ltl/misc/memblock.h (class SynchronizedCounter): Added. Provides thread safe counter. * ltl/misc/memblock.h (class MemoryBlock): Use. * ltl/fmatrix/mrqhesse.h: factored out. * ltl/fmatrix/marquardt.h: cleaned up includes. * ltl/fmatrix/mrqfuncs.h: cleaned up includes. * ltl/fmatrix/mrqfuncs.h: renamed class Function to MRQFunction. * ltl/fmatrix/lmfit.h: added general nonlin fitter. * test/testlmfit.cpp: test case for nonlin fitter. * Makefile.am,test/Makefile.am: added new files. 2005-11-03 Niv Drory * ltl/fvector/fviter.h: Added postfix operator++, operator-- to satisfy bidirectional_iterator. More stuff usable with fvectors. 2005-11-03 Claus A. Goessl * ltl/fits.h, ltl/fitsio.h: MArray& parameters to FitsOut() now can be const. 2005-10-07 Niv Drory * ltl/fvector.h, ltl/fvector/fviter.h: added missing stl iterator traits, end iterators and end() methods, and operator== and operator!= for iterators. Now FVectors can be used with std::algorithm classes. * test/testfvec.cpp: added testcase for the above using std::copy. 2005-10-03 Niv Drory * ltl/io/ascio.cpp,ltl/io/ascio.h: Added readFloatColumns( int*, int ) to read an arbitrary list of (non consecutive) float columns from a file. * test/testascio.cpp: Test case for this routine added. 2005-09-30 Niv Drory * ltl/misc/mdebug.h: Replaced deprecated strstream header by and stringstream objects 2005-04-10 Claus A. Goessl * ltl/io/fits.cpp: off-by-1 error in fits file mapping when used with regions fixed. 22005-01-31 Niv Drory * ltl/misc/mdebug.h: fixed missing 'using std::' stuff when LTL_THROW_ON_RANGE_ERROR is #defined 2005-01-28 Niv Drory * option_parser.cpp: added function deleteOptions() * option_parser.cpp, option_parser.h: printUsage() now prints the options in the order they were added as opposed to alphabetically. This gives more useful usage info as the options can be grouped logically. writeConfig() has a bool option to control the order of the output. 22005-01-04 Claus A. Goessl * fits.cpp, fits_header.cpp, fits_header.h: Reading of image extensions works now. 2004-12-23 Niv Drory * Doxyfile: removed the treeview. documentation is much more concise and compact. 22004-11-25 Niv Drory * test/testmaperf.cpp: simple fmadd and matmul performance tests added - for compiler evaluation more than anyting else 2004-11-23 Niv Drory * ltl/{utdate, stringfac}.cpp, ltl/io/{fits, fits_card}.cpp: remove extra semicolon after method definitions. * ltl now compiles with g++ -pedantic -ansi 2004-11-21 Niv Drory * ltl/io/fits_data.h (struct sData): changed pointer casts to access to union fixing gcc-4.0 miscompilation when -fstrict-aliasing is set. * test/testfitsio.cpp: added tests for char, int, double fits files 2004-07-23 Niv Drory * test/testltl.cpp: removed (unused file). 2004-07-10 Niv Drory * ltl/marray/memblock.h, ltl/config.h: Added switch LTL_DEBUG_MEMORY_BLOCK to log allocation and deallocation. 2004-06-30 Niv Drory * ltl/marray/cast.h: Added cast()( Expr ) operation to provide static_cast semantics to MArrays and expressions. * test/testmarray.cpp: added cast<> test case. * ltl/marray.h, ltl/marray/*, ltl/statistics.h: Removed redundant copying of expressions before calling eval(). Const-correctness is now relying on const_cast<> (ugly, but more efficient) * ltl/fvector.h, ltl/fvector/*: Removed redundant copying of expressions * ltl/fmatrix.h, ltl/fmatrix/*: Removed redundant copying of expressions * configure.in: added -march=k8 flags for gcc x86_64 targets * Version ltl-1.7.10, tagged as ltl-1-7-10 2004-05-26 Niv Drory * ltl/config.h: Fixed undefine __builtin_prefetch for gcc versions before 3.1. Added LTL_EMIT_PREFETCH_GCC preprocessor symbol to control prefetch insn generation. 2004-05-25 Niv Drory * ltl/misc/applicops_sse.h: Added vectorization for x86 processors using MMX/SSE/SSE2/SSE3. Tested with gcc-3.4 on x86_64. * ltl/marray.h, marray/expr.h, marray/eval.h: Fixes for gcc-3.4 and SSE. * updated vectorizer documentation * version ltl-1.7.9, tagged as ltl-1-7-9 2004-05-24 Niv Drory * Initial documentation for auto-vectorizer. * version ltl-1-7.8, tag ltl-1-7-8 2004-05-22 Niv Drory * ltl/marray.h, ltl/marray_ops.h: reimplemented operatorX. Removed Assigner objects. Now operator= and operatorX= use the same underlying operation implementation, in fact A X= B is transformed into A = A X B. This allows a single implementation of all mathematical operations. * version ltl-1.7.7, tagged as ltl-1-7-7 2004-05-06 Niv Drory * marray*: now testmarray.cpp compiles and passes with LTL_USE_SIMD * ltl/marray/eval.h: fixed bug when dealing with misaligned vectorized expressions, fixed handling of non-vectorizable expressions * ltl/misc/applicops.h: handling of non-vectorizable expressions improved, now can be freeliy mixed with vectorizable ones in the same compilation unit * ltl/marray/index_iter.h,merge.h: handling of non-vectorizable expressions improved * version ltl-1.7.6, tagged as ltl-1-7-6 2004-05-05 Niv Drory * marray.h,marray/*: Added support for automatic use of vector units to expression template engine. Currently, only Altivec on PowerPC is supported. * version ltl-1.7.5, tagged as ltl-1-7-5 2004-04-26 Niv Drory * Doxyfile: removed documentation for most of the expression template related internal classes and functions. 2004-04-23 Niv Drory * marray_io.h: fixed type in operator<< dim=7 * marray_iter.h, shape.h, memblock.h, mrqfuncs.h: fixed name lookup issues for gcc-3.4: mainly this-> prefix to members defined in a template base class to make reference template-dependent * version advanced to 1.7.4, tagged ltl-1-7-3_pre-gcc-3-4 for pre commit status Thu Mar 25 2004 Niv Drory * version 1.7.3 * marray.h, mdebug.h, marray_methods.cpp, slice.h, shape.h: extended MArrays to max. 7 dimensions * fits.cpp: removed code that prevented regions with dimensions of length 1 Tue Jan 13 2004 Claus Goessl * version 1.7.2 * added FITS image extension support for FITS file reading (untested) * added mapped memory option for MArrays Sat Nov 15 2003 Claus Goessl * version 1.7.1 * converted documentation to Doxygen * changed namespace statements and includes to obey Doxygen resolution logics * added utility documentation * started with LFS support Wed Oct 8 2003 Claus Goessl * new development branch ltl-1-7 Wed Oct 8 2003 Jan Snigula * version 1.6 * version bump to 1.6 * Merged development tree Wed Aug 27 2003 Niv Drory * version 1.5.3 * ported to Intel icc version 7.1 (tested on ia32/Linux) * configure.in: added support for Intel icc * io/fits_const.cpp: fixed bug in FitsKnownList::end() * io/fits_header.cpp: fixed bug with c_str() for tmp strings * util/* namespace fixes for icc Tue Aug 19 2003 Niv Drory * version 1.5.2 * ported to Sun CC version 5.5 (Sun ONE Studio 8) * marray/*, fvector/*, fmatrix/*, misc/staticinit.h: various little tweaks to support Sun CC version 5.5 * configure.in: added support for Sun CC, *solaris* Sun Aug 17 2003 Niv Drory * version 1.5.1 * ported to IBM xlC version 6 * marray/expr.h, fvector/fvexpr.h, fmatrix/fmexpr.h: changed global operator definitions to explicitly provide specializations for basic types (literals in expressions) to circumvent xlC instantiation bug (?) * configure.in, */Makefile.am: added proper compiler flag determination code Wed Feb 17 2003 Niv Drory * new development branch ltl-1-5 Wed Aug 28 2002 Niv Drory * cvs checkin as module ltl * old sources renamed to module ltl-1.2 in repository Sun Aug 18 2002 Niv Drory * doc/*: moved documentation to texinfo format Thu Aug 8 2002 Claus Goessl * ltl: Version number promoted to ltl-1.4a6 * configure.in: added test on ios header * util/stringfac, util/utdate: updated to sstream, still keeping strstream as spare * fvector.h, fmatrix.h: added template unrolled constructors * gaussj: added Gauss Jordan eliminition algorithm * test: added testutdate and testgaussj Thu Jul 25 2002 Niv Drory * ltl: Version number promoted to ltl-1.4a5 * fmatrix: fixed gcc2 incompatibility Thu Jul 25 2002 Claus Goessl * ltl: Version number promoted to ltl-1.4a4 * fitsio.h, fits.h, fits_data.h: bugfix and implementation of missing methods Wed Jul 24 2002 Niv Drory * ltl: Version number promoted to ltl-1.4a3 * marray/index_iter.h: bug fix Mon Jul 22 2002 Claus Goessl * ltl: Version number promoted to ltl-1.4a2 * ascio: added Jan's contribution * fitsio: finished new data reading and writing methods * bugfix: for gcc2 include where ptrdiff_t is needed Mon Jul 15 2002 Niv Drory * ltl: Version number promoted to ltl-1.4a1 Sat Jul 14 2002 Niv Drory * ltl/fmatrix/*: ltl/fmatrix.h: Changed iterators to allow 2-d access. Changed expresions accordingly. Transpose added. * ltl/fmatrix/fmatmat.h: Matrix-matrix multiplication added. Fri Jul 13 2002 Claus Goessl * fits I/O: New fits byte-swap implementation 2002 Niv Drory Claus Goessl * ltl: Fixed size (compile-time) vectors and matrices added. basic support for dot-product operations added. * ltl: Switched to autoconf/automake build system 2002 Niv Drory * ltl: New development branch ltl-1.3