Changelog ========= v0.4.8 ------ * Added ``eigh`` method to compute eigenvalues and eigenvectors of a two-leg hermitian tensor. v0.4.7 ------ * Parallel CPU tests. * Added test for version bumps in Gitlab CI/CD pipeline. v0.4.6 ------ * Updates from master `v0.3.15`_. * Deleted Jenkins-related files. * Supporting jax versions above 0.5 which removed `jaxlib.xla_extension`. * Enabled 64 bit precision by default for jax tensors, to allow float64 and complex128 tensors. v0.4.5 ------ * Added ``squeeze_update`` method to the backend implementations. * Adapted to qtealeaves version >= 1.10.0. * Added ``__truediv__`` method to abelian tensors. v0.4.4 ------ * Updates from master `v0.3.14`_. v0.4.3 ------ * Bugfix in slicing in to_dense() v0.4.2 ------ * Added `matmul` method to the abstract tensor class and backend implementations. v0.4.1 ------ * Adapted to qtealeaves version 1.8.2 - Changed naming of observables - Removed tensor method `set_subtensor_entry` in favor of numpy-like indexing and changed code accordingly. * Bugfix for `QteaQTorchTensor`: `QteaQuantizer` is now pickable. * Bugfix for `QteaTFTensor` returning complex singular values. * Changed dockerfile for the build server v0.4.0 ------ * Version bump minor for new branch `develop`. v0.3.17 ------- * Fix a bug in the documentation build configuration. v0.3.16 ------- * Minimal changes to Gitlab CI/CD configuration, to fix some issue for the public version. v0.3.15 ------- * Moved build and deploy stage to Gitlab CI/CD pipeline. * Added optional dependencies for each backend, e.g., ``qredtea[torch]`` to install the torch backend and its dependencies. * Moved the test and deploy pipeline to Gitlab CI/CD, now supporting concurrent testing on different hardware (CPU and GPU). * Adapted abelian tensors ``.split_link_deg_charge`` to ``QteaTensor.set_subtensor_entry`` new logic (qtealeaves v1.7.18) which squeezes links of dimension one. v0.3.14 ------- * Modernized the build system by relying solely on ``pyproject.toml``. ``setup.py`` is now a thin wrapper around ``setuptools.setup()``. This and ``conanfile.py`` will be removed once we switch to Gitlab CI/CD. * Removed ``requirements.txt`` as dependencies are now specified in ``pyproject.toml``. v0.3.13 ------- * Prepare new public version merging `master` and `develop`. One version added from master being `0.2.5`. v0.3.12 ------- * Updated dockerfile. v0.3.11 ------- * Bugfix: Restore agreement between the qtealeves version required in requirements.txt and setup.py. v0.3.10 ------- * `eigvalsh` for tensor APIs. v0.3.9 ------ * Added support for matrix_functions for all backends, implemented `matrix_functions()` for Abelian Tensors. * Small changes to optimizer and backpropagation functions. * Bugfix: removed deepcopy() which obstructed pyTorch's backpropagation. * Bugfix: removed using DenseTensorEigenSolverH as a default option for torch tensor on GPU until the solver is stable. v0.3.8 ------ * Change CI/CD tooling to run unittests on GPU. v0.3.7 ------ * Overwritten __str__() function for `QteaTorchTensor` and `QteaAbelianTensor` to print a cleaner output/all degeneracy tensors. * Added _repr_html_() function for `QteaAbelianTensor` for print output in Jupyter Notebook. v0.3.6 ------ * Import changes from branch master, i.e., v0.2.2 to v0.2.4. * Update qpytorch with necessary changes with respect to v0.2.4. v0.3.5 ------ * Reshuffled methods in tensors a bit; inherit some more methods defined in the base tensor. * Update MPI interface and newer version of qtealeaves required. v0.3.4 ------ * Added `QteaQTorchTensor` backend based on [`qtorch`](https://github.com/Tiiiger/QPyTorch). This emulates numerical quantization on lower-precision devices. * Added tests for `QteaQTorchTensor` backend. * Fixed `pytest` test discovery in `pyproject.toml`. v0.3.3 ------ * Fix bug in `flatten` for symmetric tensors. v0.3.2 ------ * Fix torch tensors `conj_update`. * Use new eigen solver for dense tensors and run its unittests. * Update qtealeaves dependency to v1.6.5 v0.3.1 ------ * Import changes from `v0.2.1`. * Update developers readme. v0.3.0 ------ * Version bump minor for new develop branch. v0.2.5 ------ * Allow `set_missing_link` to project into target sectors before truncating. * Minor fix local symmetry projectors (overwritten variable in loop). v0.2.4 ------ * Allow seed to be set via static method of tensor backend. v0.2.3 ------ * Tensorflow backend: accept device index 0, although no higher device indices for GPUs are accepted. v0.2.2 ------ * Revisions for benchmarking paper (no changes in source code). v0.2.1 ------ * Bugfix sphinx docs * Update to new build server. v0.2.0 ------ * Switching to `python3.11` and upgrading to corresponding qtealeaves version. * Implementing some missing new APIs in the tensor modules. v0.1.20 ------- * Patching `tensordot`` by automatic (warned) switching to left-tensor device. * Preparing for next public release of qtealeaves. * Allowing to skip tests on a specific tensor backend if the associated library is not installed. v0.1.19 ------- * Improve `QteaTorchTensor` towards inheriting from it; fix several methods which would have returned a `QteaTorchTensor` even after inheriting. v0.1.18 ------- * Updates from qtealeaves for ability to select GPU via index and improved mixed-device mode; torch supports GPU via index; tensorflow and jax backend are pending. v0.1.17 ------- * `flatten` for AbelianLinkWeights return native data type of backend (and sorts) * old `flatten` functionality covered in `tolist` v0.1.16 ------- * Implemented a randomize method for all tensor backends. * Updated the required version of qtealeaves to 1.4.25 v0.1.15 ------- * License copyright update and year update v0.1.14 ------- * Activate some unittests. * Enable einsum via tensordot for two tensors without permutation, without batch. * Update qtealeaves version. * Remove property `has_symmetry` and rely on class-wide attribute. v0.1.13 ------- * Fix CI/CD for internal repository (no changes in the library). v0.1.12 ------- * Update streams (pass flag to QR and SVD). * Bugfix normalization after SVD (torch backend) v0.1.11 ------- * Char data type now accepts `I` for int32 * Bugfix resolve max bond dimension * base tensor class can be resolved in `_AbstractQteaBaseTensor` * Bugfix torch sum (via `get_attr`) v0.1.10 ------- * Implemented functions for streams for different backend tensors (streams can be enabled for cupy/GPU by the user, but are not enabled by default). * Implement streams for Abelian tensors and the `tensordot`. v0.1.9 ------ * gitignore local installation files v0.1.8 ------ * Added the datamover to abelian tensors. Now comes from the base_tensor_class. * A bugfix when restricting irreps of symmetric tensors. * Also includes the get_optimizer() and backward() calls for torch tensors. The complete backpropagation support is a part of an upcoming version. v0.1.7 ------ * Update the QteaTorchTensor class to use python built-in logging module, following the [guidelines](https://docs.python.org/3/howto/logging.html#logging-basic-tutorial). v0.1.6 ------ * Update the QteaTorchTensor class to allow for a requires_grad option * Update the copy function to keep the same requires_grad property * Fixed the tensor initialization procedures so that the result torch tensor is always a leaf tensor v0.1.5 ------ * Activate isort tool to manage imports. v0.1.4 ------ * Update qtealeaves dependency to get new abstract test classes for observables * Bugfixes to make unittests for qtealeaves observables pass will all backends v0.1.3 ------ * Added get_default_datamover() methods for all tensor backends. v0.1.2 ------ * Update qtealeaves version for dependency * Add implementation of new abstract interfaces in abstract tensor. * Error detection for torch SVD * Enables TN ML for torch and jax (jax superslow), tensorflow still failing but running through. v0.1.1 ------ * Small bugfixes for the torch backend. v0.1.0 ------ * Version bump minor spliting develop from master * Bugfix `to_dense_singvals` * Bugfix conversion into symmetric tensors if trivial irreps not in local Hilbert space. * Tooling for translating local symmetries in as few global symmetries as possible for TTNs (including an addtion class for symmetry injectors etc.). v0.0.18 ------- * Fix missing argument for `torch.cumsum` by wrapping function; now equal to numpy arguments. v0.0.17 ------- * bugfix conj not returning true copy (torch simulation had problems due to this in correlation measurements). v0.0.16 ------- * Bugfixes initialization, torch (discovered mostly during dynamics) v0.0.15 ------- * Add sphinx files with autodoc for building documentation. * Bugfix ArpackError import and tensorflow vacuum state * Update benchmarking script (mostly postprocessing part). v0.0.14 ------- * Allowing creation of empty tensors (weak symmetries have a valid scenario). * Bugfix `AbelianSymLinkWeights` * Multiple smaller fixes. * Unittest for MPS simulation and TTO (not actived yet). * Change all URLs to public repository; establish mirroring and PyPi. * Disable sanity checks for benchmark. * Update qtealeaves version. v0.0.13 ------- * Implement restricting irreps in tensor link, splitting tensor link in degeneracy and charge. * Passing through initialtization "1" (qtealeaves version must allow). * Fix things for higher-rank tensors (mostly `split_svd`) * Read / write pickle for tensor. * Unittest for finite-T simulation (not actived yet). * Symmetry injector: added `global` keyword for globally selected symmetry sector instead of TTN-specific (0, 0) key. v0.0.12 ------- * Define qtealeaves version via `>=` allowing for more combinations (e.g., with qmatchatea). v0.0.11 ------- * Fixes to inject abs for jax and tensorflow; remove injected when using Arpack interface. v0.0.10 ------- * Fixes for Abelian symmetry with torch, jax, and tensorflow. * Extend benchmarking scripts. v0.0.9 ------ * Implemented try-except on the __init__ level to avoid errors when importing from the library v0.0.8 ------ * Implemented `mask_to_host` for `tensorflow` and `jax` * Implemented the possibility of passing a `np.ndarray` when initializing an arbitrary tensor with `QteaTensor.from_elem_array()` * Implemented `kron` method for all non-symmetric backends v0.0.7 ------ * Update qtealeaves version. * Introduce jax and tensorflow backends * Introduce benchmarks * Update pylint and black version (e.g., exception handling) * Bugfix in setup, `symmetries` was not installed but required by torchapi * Fixes for pytorch for benchmarks * Bugfix in torchapi, the minimum bond dimension was required by a truncation function * Added precise version of `pytorch` that is tested * Bugfix for `astype` not being defined for torch tensors, using `.to` instead to change type v0.0.6 ------ * Bugfixes for torchapi, e.g., mask to device. v0.0.5 ------ * Add Abelian symmetry class. * Fix small issues in pytorch found when running examples simulations with symmetries. v0.0.4 ------ * Enable unittesting for QteaTorchTensors (torch available on build server now) * Update to qtealeaves v1.2.6, e.g., operator sets, block size. * Small bugfixes in QteaTorchTensor v0.0.3 ------ * Enable XLA devices for torch (still a bit bumpy, but well ...) v0.0.2 ------ * Add tensor-class with support for torch. v0.0.1 ------ * Create repository