Accepting request 1153130 from devel:languages:python:numeric

Forwarded request #1152767 from bnavigator

- 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"

OBS-URL: https://build.opensuse.org/request/show/1153130
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-quimb?expand=0&rev=8
This commit is contained in:
Dominique Leuenberger 2024-03-01 22:36:15 +00:00 committed by Git OBS Bridge
commit be6860b4fc
4 changed files with 205 additions and 17 deletions

View File

@ -1,3 +1,186 @@
-------------------------------------------------------------------
Tue Feb 27 20:12:07 UTC 2024 - Ben Greiner <code@bnavigator.de>
- 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 <https://pradyunsg.me/furo/>_
theme, myst_nb <https://myst-nb.readthedocs.io/en/latest/>_ 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 <steven.kowalik@suse.com> Thu Jun 1 07:31:29 UTC 2023 - Steve Kowalik <steven.kowalik@suse.com>

View File

@ -1,7 +1,7 @@
# #
# spec file for package python-quimb # 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 # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -17,27 +17,28 @@
Name: python-quimb Name: python-quimb
Version: 1.4.2 Version: 1.7.3
Release: 0 Release: 0
Summary: Python library for quantum information and many-body calculations Summary: Python library for quantum information and many-body calculations
License: Apache-2.0 License: Apache-2.0
URL: https://quimb.readthedocs.io/ 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 pip}
BuildRequires: %{python_module setuptools_scm}
BuildRequires: %{python_module setuptools} BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel} BuildRequires: %{python_module wheel}
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: python-rpm-macros BuildRequires: python-rpm-macros
Requires: python-autoray >= 0.6.7
Requires: python-cotengra >= 0.5.6
Requires: python-cytoolz >= 0.8.0 Requires: python-cytoolz >= 0.8.0
Requires: python-numba >= 0.39 Requires: python-numba >= 0.39
Requires: python-numpy >= 1.17 Requires: python-numpy >= 1.17
Requires: python-opt-einsum >= 3.2
Requires: python-psutil >= 4.3.1 Requires: python-psutil >= 4.3.1
Requires: python-scipy >= 1.0.0 Requires: python-scipy >= 1.0.0
Requires: python-tqdm >= 4 Requires: python-tqdm >= 4
Requires(post): update-alternatives Requires(post): update-alternatives
Requires(postun):update-alternatives Requires(postun): update-alternatives
Recommends: python-autoray >= 0.5.1
Recommends: python-diskcache >= 3.0 Recommends: python-diskcache >= 3.0
Recommends: python-matplotlib >= 2 Recommends: python-matplotlib >= 2
Recommends: python-networkx Recommends: python-networkx
@ -48,21 +49,22 @@ Suggests: python-slepc4py
# This package does not support 32 bit arch, s390x fails too # This package does not support 32 bit arch, s390x fails too
ExcludeArch: %{ix86} %{arm} ppc s390x ExcludeArch: %{ix86} %{arm} ppc s390x
# SECTION test # SECTION test
# extra BuildRequires: %{python_module autoray >= 0.6.7}
BuildRequires: %{python_module autoray >= 0.5.1} BuildRequires: %{python_module cotengra >= 0.5.6}
# runtime
BuildRequires: %{python_module cytoolz >= 0.8.0} BuildRequires: %{python_module cytoolz >= 0.8.0}
BuildRequires: %{python_module diskcache >= 3.0} BuildRequires: %{python_module diskcache >= 3.0}
BuildRequires: %{python_module matplotlib >= 2} BuildRequires: %{python_module matplotlib >= 2}
BuildRequires: %{python_module networkx >= 2.3} BuildRequires: %{python_module networkx >= 2.3}
BuildRequires: %{python_module numba >= 0.39} BuildRequires: %{python_module numba >= 0.39}
BuildRequires: %{python_module numpy >= 1.17} BuildRequires: %{python_module numpy >= 1.17}
BuildRequires: %{python_module opt-einsum >= 3.2}
BuildRequires: %{python_module psutil >= 4.3.1} BuildRequires: %{python_module psutil >= 4.3.1}
BuildRequires: %{python_module pytest-rerunfailures}
BuildRequires: %{python_module pytest-xdist}
BuildRequires: %{python_module pytest} BuildRequires: %{python_module pytest}
BuildRequires: %{python_module scipy >= 1.0.0} BuildRequires: %{python_module scipy >= 1.0.0}
BuildRequires: %{python_module tqdm >= 4} BuildRequires: %{python_module tqdm >= 4}
# /SECTION # /SECTION
BuildArch: noarch
%python_subpackages %python_subpackages
%description %description
@ -71,9 +73,11 @@ many-body calculations, including with tensor networks.
%prep %prep
%setup -q -n quimb-%{version} %setup -q -n quimb-%{version}
sed -i '/addopts/d' setup.cfg
sed -i '/addopts/d' pyproject.toml
%build %build
export SETUPTOOLS_SCM_PRETEND_VERSION=%{version}
%pyproject_wheel %pyproject_wheel
%install %install
@ -88,11 +92,12 @@ sed -i '/addopts/d' setup.cfg
%python_uninstall_alternative quimb-mpi-python %python_uninstall_alternative quimb-mpi-python
%check %check
# precision comparison slightly out of tolerance # precision comparison slightly out of tolerance: this one is permament, others are flaky (rerun them)
%pytest -k "not (test_subtract_update and float32)" donttest="(test_subtract_update and float32)"
%pytest -n auto --reruns 3 -k "not ($donttest)"
%files %{python_files} %files %{python_files}
%doc README.rst %doc README.md
%license LICENSE.txt %license LICENSE.txt
%python_alternative %{_bindir}/quimb-mpi-python %python_alternative %{_bindir}/quimb-mpi-python
%{python_sitelib}/quimb-%{version}.dist-info %{python_sitelib}/quimb-%{version}.dist-info

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5dc5148228ab12cf8a466e569f59d63bcf098475bbe22605eb666eeb6f8b90b5
size 6714052

3
quimb-1.7.3.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9f021b549a82b225f1beadcdd26e89ce8c9c9c6af21d0a6f45e0b3bb778b3d3a
size 12202705