File python-quimb.changes of Package python-quimb

-------------------------------------------------------------------
Wed Feb 26 03:56:01 UTC 2025 - Steve Kowalik <steven.kowalik@suse.com>

- Update to 1.10.0:
  * Breaking Changes
    + renamed MatrixProductState.partial_trace and MatrixProductState.ptr to
      MatrixProductState.partial_trace_to_mpo to avoid confusion with other
      partial_trace methods that usually produce a dense matrix.
  * Enhancements:
    + tensor network fitting: add method="tree" for when ansatz is a tree -
      tensor_network_fit_tree
    + tensor network fitting: fix method="als" for complex networks
    + tensor network fitting: allow method="als" to use a iterative solver
      suited to much larger tensors, by default a custom conjugate gradient
      implementation.
    + tensor_network_distance and fitting: support hyper indices explicitly
      via output_inds kwarg
    + add tn.make_overlap and tn.overlap for computing the overlap between
      two tensor networks, ⟨ O | T ⟩ , with explicit handling of outer
      indices to address hyper networks. Add output_inds to tn.norm and
      tn.make_norm also, as well as the squared kwarg.
    + replace all numba based paralellism (prange and parallel vectorize)
      with explicit thread pool based parallelism. Should be more reliable
      and no need to set NUMBA_NUM_THREADS anymore. Remove env var
      QUIMB_NUMBA_PAR.
    + Circuit: add dtype and convert_eager options. dtype specifies what the
      computation should be performed in. convert_eager specifies whether to
      apply this (and any to_backend calls) as soon as gates are applied
      (the default for MPS circuit simulation) or just prior to contraction
      (the default for exact contraction simulation).
    + tn.full_simplify: add check_zero (by default set of "auto") option
      which explicitly checks for zero tensor norms when equalizing norms to
      avoid log10(norm) resulting in -inf or nan. Since it creates a data
      dependency that breaks e.g. jax tracing, it is optional.
    + schematic.Drawing: add shorten kwarg to line drawing and curve drawing
      and examples to {ref}schematic.
    + TensorNetwork: add .backend and .dtype_name properties.
    + add Circuit.sample_gate_by_gate and related methods
      CircuitMPS.reordered_gates_dfs_clustered and
      CircuitMPS.get_qubit_distances for sampling a circuit using the
      'gate by gate' method introduced in https://arxiv.org/abs/2112.08499.
    + add Circuit.draw for drawing a very simple circuit schematic.
    + Circuit: by default turn on simplify_equalize_norms and use a
      group_size=10 for sampling. This should result in faster and more
      stable sampling.
    + Circuit: use numpy.random.default_rng for random number generation.
    + add qtn.circ_a2a_rand for generating random all-to-all circuits.
    + expose qtn.edge_coloring as top level function and allow layers to be
      returned grouped.
    + add docstring for tn.contract_compressed and by default pick up
      important settings from the supplied contraction path optimizer
      (max_bond and compress_late)
    + add Tensor.rand_reduce for randomly removing a tensor index by
      contracting a random vector into it. One can also supply the value "r"
      to isel selectors to use this.
    + add fit-zipup and fit-projector shorthand methods to the general 1d
      tensor network compression function
    + add MatrixProductState.compute_local_expectation for computing many
      local expectations for a MPS at once, to match the interface for this
      method elsewhere. These can either be computed via canonicalization
      (method="canonical"), or via explicit left and right environment
      contraction (method="envs")
    + specialize CircuitMPS.local_expectation to make use of the MPS form.
    + add PEPS.product_state for constructing a PEPS representing a product
      state.
    + add PEPS.vacuum for constructing a PEPS representing the vacuum
      state | 000 … 0 ⟩ .
    + add PEPS.zeros for constructing a PEPS whose entries are all zero.
    + tn.gauge_all_simple: improve scheduling and add damping and
      touched_tids options.
    + qtn.SimpleUpdateGen: add gauge difference update checking and tol and
      equilibrate settings. Update .plot() method. Default to a small cutoff.
    + add psi.sample_configuration_cluster for sampling a tensor network
      using the simple update or cluster style environment approximation.
    + add the new doc {ref}ex-circuit-sampling

-------------------------------------------------------------------
Mon Sep 23 19:48:30 UTC 2024 - Ben Greiner <code@bnavigator.de>

- Switch to testing in multibuild: The obs runtime requirement
  resolver deals with numba/numpy blockage more gracefully than
  trying to resolve a BuildRequires on them. Numba 0.60 is
  restricted to Numpy < 2.1 right now.
* Update requirements

-------------------------------------------------------------------
Sat Aug 31 11:54:18 UTC 2024 - Dirk Müller <dmueller@suse.com>

- update to 1.8.4:
  * support for numpy v2.0 and scipy v1.14
  * add MPS sampling: `MatrixProductState.sample_configuration`
    and `MatrixProductState.sample` (generating multiple samples)
    and use these for `CircuitMPS.sample` and
    `CircuitPermMPS.sample`.
  * add basic `.plot()` method for SimpleUpdate classes
  * add `edges_1d_chain` for generating 1D chain edges
  * operatorbuilder: better coefficient placement for long range
    MPO building
  * `TNOptimizer` can now accept an arbitrary pytree (nested
    combination of dicts, lists, tuples, etc. with
    `TensorNetwork`, `Tensor` or raw `array_like` objects as the
    leaves) as the target object to optimize.
  * `TNOptimizer` can now directly optimize `Circuit` objects,
    returning a new optimized circuit with updated parameters.
  * `Circuit`: add `.copy()`, `.get_params()` and `.set_params()`
    interface methods.
  * Update generic TN optimizer docs.
  * add `tn.gen_inds_loops` for generating all loops of indices
    in a TN.
  * add `tn.gen_inds_connected` for generating all connected sets
    of indices in a TN.
  * make SVD fallback error catching more generic ({pull}`#238`)
  * fix some windows + numba CI issues.
  * `approx_spectral_function` add plotting and tracking
  * add dispatching to various tensor primitives to allow
    overriding
  * `CircuitMPS` now supports multi qubit gates, including
    arbitrary multi-controls (which are treated in a low-rank
    manner), and faster simulation via better orthogonality
    center tracking.
  * add `CircuitPermMPS`
  * add `MatrixProductState.gate_nonlocal` for applying a gate,
    supplied as a raw matrix, to a non-local and arbitrary number
    of sites. The kwarg `contract="nonlocal"` can be used to
    force this method, or the new option `"auto-mps"` will select
    this method if the gate is non-local ({issue}`230`)
  * add `MatrixProductState.gate_with_mpo` for applying an MPO to
    an MPS, and immediately compressing back to MPS form using
    `tensor_network_1d_compress`
  * add `MatrixProductState.gate_with_submpo` for applying an MPO
    acting only of a subset of sites to an MPS
  * add `MatrixProductOperator.from_dense` for constructing MPOs
    from dense matrices, including an only subset of sites
  * add `MatrixProductOperator.fill_empty_sites` for 'completing'
    an MPO which only has tensors on a subset of sites with (by
    default) identities
  *  `MatrixProductState` and `MatrixProductOperator`, now
    support the ``sites`` kwarg in common constructors, enabling
    the TN to act on a subset of the full ``L`` sites.
  * add `TensorNetwork.drape_bond_between` for 'draping' an
    existing bond between two tensors through a third
  * add `Tensor.new_ind_pair_with_identity`
  * TN2D, TN3D and arbitrary geom classical partition function
    builders (`TN_classical_partition_function_from_edges`) now
    all support `outputs=` kwarg specifying non-marginalized
    variables
  * add simple dense 1-norm belief propagation algorithm `D1BP`
  * add `qtn.enforce_1d_like` for checking whether a tensor
    network is 1D-like, including automatically adding strings of
    identities between non-local bonds, expanding applicability
    of `tensor_network_1d_compress`
  * add `MatrixProductState.canonicalize` as (by default *non-
    inplace*) version of `canonize`, to follow the pattern of
    other tensor network methods. `canonize` is now an alias for
    `canonicalize_` [note trailing underscore].
  * add `MatrixProductState.left_canonicalize` as (by default
    *non-inplace*) version of `left_canonize`, to follow the
    pattern of other tensor network methods. `left_canonize` is
    now an alias for `left_canonicalize_` [note trailing
    underscore].
  * add `MatrixProductState.right_canonicalize` as (by default
    *non-inplace*) version of `right_canonize`, to follow the
    pattern of other tensor network methods. `right_canonize` is
    now an alias for `right_canonicalize_` [note trailing
    underscore].
  * add `quimb.tensor.tensor_1d_compress.py` with functions for
    compressing generic
  * fix scipy sparse monkey patch for scipy>=1.13 ({issue}`222`)
  * fix autoblock bug where connected sectors were not being
    merged ({issue}`223`)

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

- Numba now exists for Python 3.11, stop skipping it.

-------------------------------------------------------------------
Thu Mar 23 06:51:10 UTC 2023 - Ben Greiner <code@bnavigator.de>

- Skip python311: no numba yet

-------------------------------------------------------------------
Thu Feb  2 09:37:02 UTC 2023 - Dirk Müller <dmueller@suse.com>

- upgrade opt-einsum to requires as it is imported by tensor/
  unconditionally

-------------------------------------------------------------------
Sat Jan 14 11:35:41 UTC 2023 - Ben Greiner <code@bnavigator.de>

- Update to v1.4.2
  * no relevant code changes for openSUSE users
- Release v1.4.1
  ## Enhancements
  * unify much functionality from 1D, 2D and 3D into general
    arbitrary geometry class
    quimb.tensor.tensor_arbgeom.TensorNetworkGen
  * refactor contraction, allowing using cotengra directly
  * add visualize() for visualizing the actual data entries of an
    arbitrarily high dimensional tensor
  * add Gate class for more robust tracking and manipulation of
    gates in quantum Circuit simulation
  * tweak TN drawing style and layout
  * tweak default gauging options of compressed contraction
  * add compute_hierarchical_grouping()
  * add as_network()
  * add inds_size()
  * add get_hyperinds()
  * add outer_size()
  * improve group_inds()
  * refactor tensor decompositiona and ‘isometrization’ methods
  * begin supporting pytree specifications in TNOptimizer, e.g. for
    constants
  * add experimental submodule for new sharing features
  * register tensor and tensor network objects with jax pytree
    interface (PR150)
  * update CI infrastructure
  ## Bug fixes:
  * fix force atlas 2 and weight_attr bug (GH126)
  * allow unpickling of PTensor objects (GH128, PR131)
- Release v1.4.0
  ## Enhancements
  * Add 2D tensor network support and algorithms
  * Add 3D tensor network infrastructure
  * Add arbitrary geometry quantum state infrastructure
  * Many changes to TNOptimizer
  * Many changes to TN drawing
  * Many changes to Circuit simulation
  * Many improvements to TN simplification
  * Make all tag and index operations deterministic
  * Add tensor_network_sum(), tensor_network_distance() and fit()
  * Various memory and performance improvements
  * Various graph generators and TN builders

-------------------------------------------------------------------
Fri Feb  5 20:13:46 UTC 2021 - Benjamin Greiner <code@bnavigator.de>

- Generalize the ExcludeArch into %ix64 %arm ppc s390x

-------------------------------------------------------------------
Thu Feb  4 22:31:53 UTC 2021 - Benjamin Greiner <code@bnavigator.de>

- Disable build for armv7l and s390x

-------------------------------------------------------------------
Tue Jan 19 09:36:08 UTC 2021 - andy great <andythe_great@pm.me>

- Disable build for python36 because scipy.

-------------------------------------------------------------------
Sat Aug 22 07:04:12 UTC 2020 - andy great <andythe_great@pm.me>

- Clean up spec file.

-------------------------------------------------------------------
Wed Aug 19 13:39:27 UTC 2020 - andy great <andythe_great@pm.me>

- Remove noarch macro from spec file.

-------------------------------------------------------------------
Wed Aug 19 07:07:33 UTC 2020 - andy great <andythe_great@pm.me>

- Disable build for 32-bit arch because numba and parallel does not
  support 32-bit arch. Tried to export variable
  "export QUIMB_NUMBA_PARALLEL=off" does not solve the issue.

-------------------------------------------------------------------
Tue Aug 18 09:36:15 UTC 2020 - andy great <andythe_great@pm.me>

- Initial package release.
openSUSE Build Service is sponsored by