diff --git a/python-quimb.changes b/python-quimb.changes index 53441b5..a348493 100644 --- a/python-quimb.changes +++ b/python-quimb.changes @@ -1,3 +1,186 @@ +------------------------------------------------------------------- +Tue Feb 27 20:12:07 UTC 2024 - Ben Greiner + +- Update to 1.7.3 + ## Enhancements: + * qu.randn: support dist="rademacher". + * support dist and other randn options in various TN builders. + ## Bug fixes: + * restore fallback (to scipy.linalg.svd with driver='gesvd') + behavior for truncated SVD with numpy backend. +- Release 1.7.2 + ## Bug fixes: + * removed import of deprecated numba.generated_jit decorator. + ## Enhancements: + * add normalized=True option to tensor_network_distance for + computing the normalized distance between tensor networks, + which is useful for convergence checks. + Tensor.distance_normalized and + TensorNetwork.distance_normalized added as aliases. + * add TensorNetwork.cut_bond for cutting a bond index +- Release v1.7.1 + ## Enhancements: + * add TensorNetwork.visualize_tensors for visualizing the actual + data entries of an entire tensor network. + * add ham.build_mpo_propagator_trotterized for building a + trotterized propagator from a local 1D hamiltonian. This also + includes updates for creating 'empty' tensor networks using + TensorNetwork.new, and building up gates from empty tensor + networks using TensorNetwork.gate_inds_with_tn. + * add more options to Tensor.expand_ind and Tensor.new_ind: + repeat tiling mode and random padding mode. + * tensor decomposition: make eigh_truncated backend agnostic. + * tensor_compress_bond: add reduced="left" and reduced="right" + modes for when the pair of tensors is already in a canonical + form. + * add qtn.TN2D_embedded_classical_ising_partition_function for + constructing 2D (triangular) tensor networks representing + all-to-all classical ising partition functions. + ## Bug fixes: + * fix bug in kruas_op when operator spanned multiple subsystems + (#214) + * fix bug in qr_stabilized when the diagonal of R has significant + imaginary parts. + * fix bug in quantum discord computation when the state was + diagonal (#217) + * Fix empty lines in dimacs by @jjcmoon in #215 +- Release 1.7.0 + ## Breaking Changes + * Circuit : remove target_size in preparation for all contraction + specifications to be encapsulated at the contract level (e.g. + with cotengra) some TN drawing options (mainly arrow options) + have changed due to the backend change detailed below. + ## Enhancements: + * Multi tag drawing support + * TensorNetwork.draw: use quimb.schematic for main + backend="matplotlib" drawing. Enabling: + - multi tag coloring for single tensors + - arrows and labels on multi-edges + - better sizing of tensors using absolute units + - neater single tensor drawing, in 2D and 3D + * add quimb.schematic.Drawing from experimental submodule, add + example docs at schematic. Add methods text_between, wedge, + line_offset and other tweaks for future use by main TN drawing. + * upgrade all contraction to use cotengra as the backend + * Circuit : allow any gate to be controlled by any number of + qubits. + * Circuit : support for parsing openqasm2 specifications now with + custom and nested gate definitions etc. + * add is_cyclic_x, is_cyclic_y) and is_cyclic_z to + TensorNetwork2D and TensorNetwork3D. + * add TensorNetwork.compress_all_1d for compressing generic + tensor networks that you promise have a 1D topology, without + casting as a TensorNetwork1D. + * add MatrixProductState.from_fill_fn for constructing MPS from a + function that fills the tensors. + * add Tensor.idxmin and Tensor.idxmax for finding the index of + the minimum / maximum element. + * 2D and 3D classical partition function TN builders: allow + output indices. + * quimb.experimental.belief_propagation: add various + 1-norm/2-norm dense/lazy BP algorithms. + ## Bug fixes: + * fixed bug where an output index could be removed by squeezing + when performing tensor network simplifications. + * Fix deprecation warnings by @king-p3nguin in #209 +- Release v1.6.0 + ## Breaking Changes + * Quantum circuit RZZ definition corrected (angle changed by -1/2 + to match qiskit). + ## Enhancements: + * add OpenQASM 2.0 parsing support: + :meth:Circuit.from_openqasm2_file + * :class:Circuit: add RXX, RYY, CRX, CRY, CRZ, toffoli, fredkin, + givens gates + * truncate TN pretty html reprentation to 100 tensors for + performance + * add :meth:Tensor.sum_reduce and :meth:Tensor.vector_reduce + * :meth:contract_compressed, default to 'virtual-tree' gauge + * add :func:TN_rand_tree + * experimental.operatorbuilder: fix parallel and heisenberg + builder + * make parametrized gate generation even more robost (ensure + matching types so e.g. tensorflow can be used) + ## Bug fixes: + * fix gauge size check for some backends +- Release 1.5.1 + * add various MPO-MPS gate methods, including zip-up and density + matrix, in the experimental submodule + * some PTensor refactoring + * Circuit: more robust parametrized gate generation + * various new contraction convenience interfaces (incld. + array_contract) + * add Tensor.check() and TensorNetwork.check() for diagnostics + * add TensorNetwork.isconnected(), TensorNetwork.istree() +- Release 1.5.0 + ## Enhancements + * refactor 'isometrize' methods including new "cayley", + "householder" and "torch_householder" methods. See + :func:quimb.tensor.decomp.isometrize. + * add + :meth:~quimb.tensor.tensor_core.TensorNetwork.compute_reduced_factor + and + :meth:~quimb.tensor.tensor_core.TensorNetwork.insert_compressor_between_regions + methos, for some RG style algorithms. + * add the mode="projector" option for 2D tensor network + contractions + * add HOTRG style coarse graining and contraction in 2D and 3D. + See + :meth:~quimb.tensor.tensor_2d.TensorNetwork2D.coarse_grain_hotrg, + :meth:~quimb.tensor.tensor_2d.TensorNetwork2D.contract_hotrg, + :meth:~quimb.tensor.tensor_3d.TensorNetwork3D.coarse_grain_hotrg, + and + :meth:~quimb.tensor.tensor_3d.TensorNetwork3D.contract_hotrg, + * add CTMRG style contraction for 2D tensor networks: + :meth:~quimb.tensor.tensor_2d.TensorNetwork2D.contract_ctmrg + * add 2D tensor network 'corner double line' (CDL) builders: + :func:~quimb.tensor.tensor_builder.TN2D_corner_double_line + * update the docs to use the furo _ + theme, myst_nb _ for + notebooks, and several other sphinx extensions. + * add the 'adabelief' optimizer to + :class:~quimb.tensor.optimize.TNOptimizer as well as a quick + plotter: :meth:~quimb.tensor.optimize.TNOptimizer.plot + * add initial 3D plotting methods for tensors networks ( + TensorNetwork.draw(dim=3, backend='matplotlib3d') or + TensorNetwork.draw(dim=3, backend='plotly') ). The new + backend='plotly' can also be used for 2D interactive plots. + * Update :func:~quimb.tensor.tensor_builder.HTN_from_cnf to + handle more weighted model counting formats. + * Add :func:~quimb.tensor.tensor_builder.cnf_file_parse + * Add :func:~quimb.tensor.tensor_builder.random_ksat_instance + * Add :func:~quimb.tensor.tensor_builder.TN_from_strings + * Add :func:~quimb.tensor.tensor_builder.convert_to_2d + * Add :func:~quimb.tensor.tensor_builder.TN2D_rand_hidden_loop + * Add :func:~quimb.tensor.tensor_builder.convert_to_3d + * Add :func:~quimb.tensor.tensor_builder.TN3D_corner_double_line + * Add :func:~quimb.tensor.tensor_builder.TN3D_rand_hidden_loop + * various optimizations for minimizing computational graph size + and + * construction time. + * add 'lu', 'polar_left' and 'polar_right' methods to + :func:~quimb.tensor.tensor_core.tensor_split. + * add experimental arbitrary hamilotonian MPO building + * :class:~quimb.tensor.tensor_core.TensorNetwork: allow empty + constructor (i.e. no tensors representing simply the scalar 1) + * :meth:~quimb.tensor.tensor_core.TensorNetwork.drop_tags: allow + all tags to be dropped + * tweaks to compressed contraction and gauging + * add jax, flax and optax example + * add 3D and interactive plotting of tensors networks with via + plotly. + * add pygraphiviz layout options + * add :meth:~quimb.tensor.tensor_core.TensorNetwork.combine for + unified handling of combining tensor networks potentially with + structure + * add HTML colored pretty printing of tensor networks for + notebooks + * add quimb.experimental.cluster_update.py + ## Bug fixes: + * fix :func:~quimb.tensor.decomp.qr_stabilized bug for strictly + upper triangular R factors. +- Run tests in parallel (rerun flaky precision errors) + ------------------------------------------------------------------- Thu Jun 1 07:31:29 UTC 2023 - Steve Kowalik diff --git a/python-quimb.spec b/python-quimb.spec index fa82747..e6d4ee0 100644 --- a/python-quimb.spec +++ b/python-quimb.spec @@ -1,7 +1,7 @@ # # spec file for package python-quimb # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,27 +17,28 @@ Name: python-quimb -Version: 1.4.2 +Version: 1.7.3 Release: 0 Summary: Python library for quantum information and many-body calculations License: Apache-2.0 URL: https://quimb.readthedocs.io/ -Source: https://github.com/jcmgray/quimb/archive/%{version}.tar.gz#/quimb-%{version}.tar.gz +Source: https://github.com/jcmgray/quimb/archive/refs/tags/v%{version}.tar.gz#/quimb-%{version}.tar.gz BuildRequires: %{python_module pip} +BuildRequires: %{python_module setuptools_scm} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module wheel} BuildRequires: fdupes BuildRequires: python-rpm-macros +Requires: python-autoray >= 0.6.7 +Requires: python-cotengra >= 0.5.6 Requires: python-cytoolz >= 0.8.0 Requires: python-numba >= 0.39 Requires: python-numpy >= 1.17 -Requires: python-opt-einsum >= 3.2 Requires: python-psutil >= 4.3.1 Requires: python-scipy >= 1.0.0 Requires: python-tqdm >= 4 Requires(post): update-alternatives -Requires(postun):update-alternatives -Recommends: python-autoray >= 0.5.1 +Requires(postun): update-alternatives Recommends: python-diskcache >= 3.0 Recommends: python-matplotlib >= 2 Recommends: python-networkx @@ -48,21 +49,22 @@ Suggests: python-slepc4py # This package does not support 32 bit arch, s390x fails too ExcludeArch: %{ix86} %{arm} ppc s390x # SECTION test -# extra -BuildRequires: %{python_module autoray >= 0.5.1} -# runtime +BuildRequires: %{python_module autoray >= 0.6.7} +BuildRequires: %{python_module cotengra >= 0.5.6} BuildRequires: %{python_module cytoolz >= 0.8.0} BuildRequires: %{python_module diskcache >= 3.0} BuildRequires: %{python_module matplotlib >= 2} BuildRequires: %{python_module networkx >= 2.3} BuildRequires: %{python_module numba >= 0.39} BuildRequires: %{python_module numpy >= 1.17} -BuildRequires: %{python_module opt-einsum >= 3.2} BuildRequires: %{python_module psutil >= 4.3.1} +BuildRequires: %{python_module pytest-rerunfailures} +BuildRequires: %{python_module pytest-xdist} BuildRequires: %{python_module pytest} BuildRequires: %{python_module scipy >= 1.0.0} BuildRequires: %{python_module tqdm >= 4} # /SECTION +BuildArch: noarch %python_subpackages %description @@ -71,9 +73,11 @@ many-body calculations, including with tensor networks. %prep %setup -q -n quimb-%{version} -sed -i '/addopts/d' setup.cfg + +sed -i '/addopts/d' pyproject.toml %build +export SETUPTOOLS_SCM_PRETEND_VERSION=%{version} %pyproject_wheel %install @@ -88,11 +92,12 @@ sed -i '/addopts/d' setup.cfg %python_uninstall_alternative quimb-mpi-python %check -# precision comparison slightly out of tolerance -%pytest -k "not (test_subtract_update and float32)" +# precision comparison slightly out of tolerance: this one is permament, others are flaky (rerun them) +donttest="(test_subtract_update and float32)" +%pytest -n auto --reruns 3 -k "not ($donttest)" %files %{python_files} -%doc README.rst +%doc README.md %license LICENSE.txt %python_alternative %{_bindir}/quimb-mpi-python %{python_sitelib}/quimb-%{version}.dist-info diff --git a/quimb-1.4.2.tar.gz b/quimb-1.4.2.tar.gz deleted file mode 100644 index d934d40..0000000 --- a/quimb-1.4.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5dc5148228ab12cf8a466e569f59d63bcf098475bbe22605eb666eeb6f8b90b5 -size 6714052 diff --git a/quimb-1.7.3.tar.gz b/quimb-1.7.3.tar.gz new file mode 100644 index 0000000..2095509 --- /dev/null +++ b/quimb-1.7.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f021b549a82b225f1beadcdd26e89ce8c9c9c6af21d0a6f45e0b3bb778b3d3a +size 12202705