ChangeLog.md 8.48 KB
Newer Older
1
## Changelog
2

3
Potentially breaking changes are marked with an exclamation point '!' at the begin of their description.
4

5 6 7 8 9
* 2017-05-31 v3.0.1
 * Added TTNetwork::use_dense_representations() to convert all components to dense representation.
 * Exporting Tensor::dense_copy() and Tensor::sparse_copy() to python.
 * More examples on the homepage and checks for code-coverage.

Ben Huber's avatar
Ben Huber committed
10
* 2017-05-29 v3.0.0
11
 * Python wrapper now stable.
12
 * ! REQUIRE macro now logs as error instead of fatal error.
Ben Huber's avatar
Ben Huber committed
13 14
 * ! All macros and preprocessor defines now use the XERUS_ prefix. The config.mk file changed accordingly.
 * ! TT::find_largest_entry and TT::dyadic_product left the TT scope.
15
 * ! Tensor::modify_diag_elements renamed to Tensor::modify_diagonal_entries for naming consistency.
16
 * Much faster solve of matrix equations Ax=b by exploiting symmetry and definiteness where possible. This directly speeds up the ALS as well.
17
 * Added Tensor.one_norm() and one_norm(Tensor) to calculate the one norm of a Tensor.
Ben Huber's avatar
Ben Huber committed
18
 * New documentation ('make doc') and homepage.
19
 * Some minor bugfixes and performance improvements.
20

21 22 23 24 25 26 27 28
* 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.

Ben Huber's avatar
Ben Huber committed
29
* 2016-04-04 v2.3.0
30
 * Added save_to_file and load_from_file functions to store and restore Tensors and TensorNetworks in/from files.
31
 * Added SVD based calculate_pseudo_inverse function to Tensor.
32
 * Added implementation for perform_trace() for sparse Tensors.
33
 * Fixed the pipe operator for xerus::misc::generic_exception to not destroy the type information.
34
 * Bug fix in the handling of fixed indices in TensorNetworks.
35
 * Several static member function now warn if their return type is not used.
36
 * Initial support for compilation with the intel ICC.
37

Ben Huber's avatar
Ben Huber committed
38
* 2016-03-11 v2.2.1
Ben Huber's avatar
Ben Huber committed
39 40
 * Added support for 32bit systems.

Sebastian Wolf's avatar
Sebastian Wolf committed
41
* 2016-03-08 v2.2.0
42 43
 * Added Sparse solve and sparse QR factorization.
 * ! Xerus now depends on the SuiteSparseQR (-lspqr) library.
44
 * TTNetwork sum now supports sparse components.
45 46
 * TTNetwork entrywise\_product now supports sparse components.
 * ! entrywise\_product (for TTNetworks) now a free function instead of static member.
Sebastian Wolf's avatar
Sebastian Wolf committed
47
 * TTNetwork entrywise\_square now supports sparse components.
48
 * Bugfix in Dense/Sparse conversion factor handling.
Sebastian Wolf's avatar
Sebastian Wolf committed
49

50
* 2016-02-10 v2.1.1
Sebastian Wolf's avatar
Sebastian Wolf committed
51 52
 * Basic support for fixed indices in TensorNetworks.
 * Readded TTNetwork constructor from DimensionTuple.
Sebastian Wolf's avatar
Sebastian Wolf committed
53 54
 * Bugfixes for TTNetwork dyadic_product.

55
* 2016-02-05 v2.1.0
Sebastian Wolf's avatar
Sebastian Wolf committed
56
 * ! fix_slate() now works correctly for TTTensors and (correctly) throws an error for TTOperators.
57
 * Several bug fixes in the handling of TTNetworks of degree zero.
Sebastian Wolf's avatar
Sebastian Wolf committed
58 59
 * 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.
60
 * Several Bugfixes in xerus::misc and a bugfix in TT:dyadic_product.
61

Ben Huber's avatar
Ben Huber committed
62
* 2016-01-26 v2.0.0
63
 * ! Merged FullTensor and SparseTensor into a single Tensor class.
64
 * Implemented several FullTensor functions also for sparse representations (modify(\_diag)_elements, fix\_slate, resize\_dimension,...)
65
 * ! IndexedTensor*s now considered internal.
66 67 68
 * ! Removed all support for stored IndexedTensor*s.
 * ! Reworked the IndexedTensor* index assignment.
 * ! Changed resize_dimension to allow slate insertion at the first position.
69
 * Added TTTensor::random with callback function to manipulate the singular values of all matricisations.
70 71
 * Rewrote the ALS algorithm for better readability.
 * Added fully functional (multi-site) DMRG and alternating steepest descent algorithms.
Sebastian Wolf's avatar
Sebastian Wolf committed
72
 * Support for low level factorisation calls for Tensor class.
73
 * Several bug fixes, including SVD factor handling, SparseTensor summation, Tensor resize_dimension, TN evaluation,....
Sebastian Wolf's avatar
Sebastian Wolf committed
74
 * Added several test cases.
75

76 77 78
* 2016-01-14 v1.5.0
 * 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!)
79
 * TT::random no longer uses size_t to measure the size of the tensor and no longer exceeds maximal ranks.
80
 * Fixed a bug in the ALS that caused the algorithm to always stop after one sweep if called without operator A.
81

Ben Huber's avatar
Ben Huber committed
82 83 84 85
* 2015-10-20 v1.4.2
 * 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.

86
* 2015-10-14 v1.4.1
87
 * Fixed a bug with the recannonicalization of products of TTOperators.
Ben Huber's avatar
Ben Huber committed
88
 * Many improvements for the ADF algorithm for tensor completion.
Ben Huber's avatar
Ben Huber committed
89
 * Added TTTensor::ones and TTOperator::ones to create TTTensors with all entries equal to 1.
90

Ben Huber's avatar
Ben Huber committed
91
* 2015-09-09 v1.4.0
92
 * Added an implementation of the ADF algorithm.
Ben Huber's avatar
Ben Huber committed
93
 * Added a custom allocator to better handle the small allocations of Indices etc. (requires to set the corresponding option in the config.mk).
94
 * Reduced overhead (time not spent in blas) of TensorNetwork contractions.
95 96 97
 * 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.
98
 * Added TN::reduce_representation() to trace out any full-rank edge.
Ben Huber's avatar
Ben Huber committed
99
 * Added TN::transfer_core(...) and TN::round_edge(...) analogously to TT rounding / core movement operations.
100
 * ! renamed class::construct_random to class::random and TTOperator::construct_identity to TTOperator::identity.
Ben Huber's avatar
Ben Huber committed
101
 * Added several named constructors:
102 103 104 105
  * 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.
Ben Huber's avatar
Ben Huber committed
106
 * ! misc::approx_equal now uses a relative difference (for consistency with the tensor variant xerus::approx_equal).
107
 * Several bugfixes for SparseTensors.
108
 * Several minor bugfixes (TN::draw no longer uses temporary files, span-zero indices in assignment, ...).
109

110 111 112 113 114 115 116 117 118
* 2015-07-10 v1.3.0
 * 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.

Ben Huber's avatar
Ben Huber committed
119 120 121 122
* 2015-06-15 v1.2.1
 * entrywise_product for FullTensor and TTNetwork.
 * TensorNetworks now without extraneous factor.

Ben Huber's avatar
Ben Huber committed
123 124 125 126
* 2015-06-15 v1.2.0
 * 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.
127
 * Added algorithm DecompositionALS to approximate a FullTensor by a TTTensor.
Ben Huber's avatar
Ben Huber committed
128 129 130
 * New Quick-Start guide.
 * Several bugfixes, more consistent operator availability and much more documentation.

Sebastian Wolf's avatar
Sebastian Wolf committed
131 132 133 134 135 136 137
* 2015-06-02 v1.1.1
 * 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

Ben Huber's avatar
Ben Huber committed
138
* 2015-06-01 v1.1.0
139
 * ! New representation for the TT tensors: all component tensors are now of degree 3 / 4 (operators).
Ben Huber's avatar
Ben Huber committed
140 141 142 143
 * 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.

144 145
* 2015-05-27 v1.0.2
 * Added support for Clang++
146
 * ! Cleanup of namespace structure
147
 * Several documentation fixes
148

149 150 151 152
* 2015-05-20 v1.0.1
 * fixed a major bug with the handling of shared resources in TensorNetworks
 * added TTTensor/TTOperator::chop() function
 * some minor fixes
153

154 155
* 2015-05-19 v1.0
 * first stable release