Tags give the ability to mark specific points in history as being important
- 2016-06-23 v2.4.0
- Introduced nomeclature 'mode'. Marked all functions that will be renamed / removed in v3.0.0 as deprecated.
- Added an experimental python wrapper when 'OTHER += -DXERUS_EXPERIMENTAL_PYTHON_WRAPPER' is defined in the config file.
- Added TT::degrees_of_freedom function to determine the dimension of the current tangent space.
- ! Corrected a typo in the class names of the measurement sets.
- Added constants xerus::VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION and VERSION_COMMIT.
- Improved compilation time and more forgiving default settings for warnings.
- 2016-06-23 v2.4.0
- Added save_to_file and load_from_file functions to store and restore Tensors and TensorNetworks in/from files.
- Added SVD based calculate_pseudo_inverse function to Tensor.
- Added implementation for perform_trace() for sparse Tensors.
- Fixed the pipe operator for xerus::misc::generic_exception to not destroy the type information.
- Bug fix in the handling of fixed indices in TensorNetworks.
- Several static member function now warn if their return type is not used.
- Initial support for compilation with the intel ICC.
- Added Sparse solve and sparse QR factorization.
- ! Xerus now depends on the SuiteSparseQR (-lspqr) library.
- TTNetwork sum now supports sparse components.
- TTNetwork entrywise_product now supports sparse components.
- ! entrywise_product (for TTNetworks) now a free function instead of static member.
- TTNetwork entrywise_square now supports sparse components.
- Bugfix in Dense/Sparse conversion factor handling.
- Basic support for fixed indices in TensorNetworks.
- Readded TTNetwork constructor from DimensionTuple.
- Bugfixes for TTNetwork dyadic_product.
- ! fix_slate() now works correctly for TTTensors and (correctly) throws an error for TTOperators.
- Several bug fixes in the handling of TTNetworks of degree zero.
- Implemented the Tensor CQ function, which is now used where appropriate.
- Added several unit tests to ensure consitent results for dense/sparse Tensors, TensorNetwork and TTNetworks.
- ! Merged FullTensor and SparseTensor into a single Tensor class.
- Implemented several FullTensor functions also for sparse representations (modify(_diag)_elements, fix_slate, resize_dimension,...)
- ! IndexedTensor*s now considered internal.
- ! Removed all support for stored IndexedTensor*s.
- ! Reworked the IndexedTensor* index assignment.
- ! Changed resize_dimension to allow slate insertion at the first position.
- Added TTTensor::random with callback function to manipulate the singular values of all matricisations.
- Rewrote the ALS algorithm for better readability.
- Added fully functional (multi-site) DMRG and alternating steepest descent algorithms.
- Support for low level factorisation calls for Tensor class.
- Several bug fixes, including SVD factor handling, SparseTensor summation, Tensor resize_dimension, TN evaluation,....
- Added several test cases.
- Added the ADF algorithm for rank one measurements instead of point evaluations.
- Parallelized the ADF algorithm using openmp (note: at this point not compatible with the replacement allocator!)
- TT::random no longer uses size_t to measure the size of the tensor and no longer exceeds maximal ranks.
- Fixed a bug in the ALS that caused the algorithm to always stop after one sweep if called without operator A.
- The custom allocator now enforces memory alignment even if the underlying malloc does not.
- Cannonicalized TT tensors can no longer exceed the maximal TT rank.
- Fixed a bug with the recannonicalization of products of TTOperators.
- Many improvements for the ADF algorithm for tensor completion.
- Added TTTensor::ones and TTOperator::ones to create TTTensors with all entries equal to 1.
- Added an implementation of the ADF algorithm.
- Added a custom allocator to better handle the small allocations of Indices etc. (requires to set the corresponding option in the config.mk).
- Reduced overhead (time not spent in blas) of TensorNetwork contractions.
- Tensor decomposition now allow arbitrary index orders in the target as well as the source.
- Added TN::measure(...) to perform a batch of evaluations of the network.
- Added TN::fix_slate(...) to fix a single index to a specific value.
- Added TN::reduce_representation() to trace out any full-rank edge.
- Added TN::transfer_core(...) and TN::round_edge(...) analogously to TT rounding / core movement operations.
- ! renamed class::construct_random to class::random and TTOperator::construct_identity to TTOperator::identity.
- Added several named constructors:
- Tensor::ones(...) to construct tensors filled with all entries equal to 1.
- Tensor::identity(...) to construct a (sparse) tensor equal to the TTOperator::identity.
- Tensor::dirac(...) to construct a (sparse) tensor with a single 1 at a given position and 0 everywhere else.
- Tensor::kronecker(...) to construct a tensor that is 1 when all indices are equal and 0 otherwise.
- ! misc::approx_equal now uses a relative difference (for consistency with the tensor variant xerus::approx_equal).
- Several bugfixes for SparseTensors.
- Several minor bugfixes (TN::draw no longer uses temporary files, span-zero indices in assignment, ...).
meant for use by developers only!
- Added several retractions to allow Riemannian algorithms on TT manifolds.
- Added the basic (Riemannian) steepest descent algorithm.
- Added the (so far untested) CG algorithm for TT tensors.
- ! New PerformanceData class to log stepcount, time and residual of algorithm runs.
- New algorithm to determine the largest entry of a TT tensor.
- Fully rewrote the contraction heuristics, now including a local search for more optimal contraction orders.
- Several bugfixes for order-zero tensors, TT tensors of more than full rank and other rare cases.
- entrywise_product for FullTensor and TTNetwork.
- TensorNetworks now without extraneous factor.
- Rank revealing QR decomposition in TTNetwork:move_core.
- ALS performance improvement by skipping full-rank nodes.
- Added TensorNetwork::draw to get a graphical representation of a given tensor network.
- Added algorithm DecompositionALS to approximate a FullTensor by a TTTensor.
- New Quick-Start guide.
- Several bugfixes, more consistent operator availability and much more documentation.
- Complete documentation for Tensor, FullTensor and SparseTensor
- Added implementation of the projection ALS
- Fixed performance bug in logging system
- ALS now uses energy functional for convergence testing
- Several minor fixes
- ! New representation for the TT tensors: all component tensors are now of degree 3 / 4 (operators).
- TT::get_component and ::set_component functions that handle the meta data.
- More strict ISO c++ conformity: no names starting with '__'.
- More elaborate performance profiling.
- Added support for Clang++
- ! Cleanup of namespace structure
- Several documentation fixes