Skip to content

Releases: Cytnx-dev/Cytnx

v1.0.0

23 Jan 05:05
781486e
Compare
Choose a tag to compare

This is the release of the version v1.0.0, which is the stable version of the project.

Release notes:

  1. [Important] This is the first stable release of the project.
  2. [Change] Merge Contract and Contracts into Contract, and Contract_ and Contracts_ ito Contract_.
  3. [Change] Merge relabel and relabels into relabel, and relabel_ and relabels_ into relabel_.
  4. [New] Add an optional argument min_blockdim to svd_truncate to define a minimum dimension for each block.
  5. [New] Add Eig/Eigh functions for Block UniTensor.
  6. [New] Add Lancos-like algoirthm, Lanczos_Exp, to approximate exponential operator acting on a state.
  7. [Change] Migrate cuTENSOR APIs to the version 2.
  8. [Change] reshape_ and permute_ to return the object itself instead of None.
  9. [Change] Remove the magma dependency.
  10. [Enhance] Optimize the contraction order finding algorithm.

v0.9.7

01 Dec 17:53
Compare
Choose a tag to compare
bump version to 0.9.7

v0.9.6

21 Nov 11:44
0e72819
Compare
Choose a tag to compare
Merge pull request #346 from Cytnx-dev/dev-master

fix conda build does not properly build current commit

v0.9.5

01 Oct 09:28
6fbbfd3
Compare
Choose a tag to compare

Same content as 094, fix CD to conda-forge

v0.9.4

29 Sep 05:44
50e6480
Compare
Choose a tag to compare

This has the same content as v0.9.3

v0.9.3

26 Sep 08:53
ae3fad8
Compare
Choose a tag to compare

This release includes

  1. improvements of GPUs, integrated with cutensor/cuquantum.
  2. extra Svd methods for both CPU and GPU.
  3. Other improvements of user API including conversion between symmetric and non-sym UniTensors.

v0.9.2

16 Jul 14:49
Compare
Choose a tag to compare
This update includes following major changes:

1.[Important] [Change] Remove all deprecated APIs and old SparseUniTensor data structure
2. [Fix] Bugs when batch_matmul when no MKL
3. [Update] Update examples to match new APIs
4. [New] add labels options when creating UniTensor from Tensor.
5. [New] change MKL to mkl_rt instead of fixed interface ilp64/lp64

v0.9.1

13 May 08:46
Compare
Choose a tag to compare

This update includes

  1. [New] Add additional argument share_mem for Tensor.numpy() python API.
  2. [Fix] UniTensor.at() python API not properly wrapped.
  3. [Fix] Bug in testing for BlockUniTensor.
  4. [Fix] Bug in UniTensor print info (duplicate name, is_diag=true BlockUniTensor dimension display)
  5. [Change] Svd now using gesdd instead of gesvd.
  6. [New] Add linalg.Gesvd function, along with Gesvd_truncate.
  7. [Fix] Strict casting rule cause compiling fail when compile with icpc
  8. [New] Add additional argument for Network.PutUniTensor to match the label.
  9. [Fix] Network TOUT string lbl bug
  10. [Fix] #156 storage python wrapper cause not return.
  11. [Add] linalg.Gemm/Gemm_()
  12. [Add] UniTensor.normalize()/normalize_()

v0.7.6

23 May 23:14
Compare
Choose a tag to compare

This update includes several optimization.

  1. [Enhance] Adding alias BD_IN=BD_KET, BD_BRA=BD_OUT, BD_NONE=BD_REG.
  2. [New] Add Contracts for multiple UniTensors contraction.
  3. [Fix] cytnx.cpp_lib for some version of cmake and conda install, libpath is lib64 instead of lib.
  4. [Optimize] SparseUniTensor contiguous (moving elements)
  5. [Optimize] cytnx_error_* will now evaluate the clause first, and then instance the following strings.
  6. [Enhance] Add Global bool variable User_debug, which when set to false some checking will be skipped, which increasing the execution speed
  7. [Enhance] Add Network.getOptimalOrder()

v0.7.4

17 Aug 09:28
Compare
Choose a tag to compare

v0.7.4

  1. [Enhance] Lanczos_ER Lanczos_Gnd not convergence with maxiter will now gives warning instead of error.
  2. [Enhance] Arithmetic of UniTensor(&)constant now preserve the label of input UniTensor.
  3. [New][experiment] Add MPS class with two variant: iMPS, RegularMPS.
  4. [New][experiment] Add MPO class.
  5. [Enhance] Add UniTensor.relabel
  6. [Enhance] Add Network.FromString
  7. [New][experiment] DMRG API
  8. [New][experiment] Add MPS Save/Load, and can now have different phys_dim for each site.
  9. [Fix] SparseUniTensor.permute does not properly update contiguous status when rowrank argument is given.
  10. [Enhance] get_block()/put_block() by qnums now have a new argument "force" to get blocks from non-braket_form UniTensor.
  11. [New] Add SparseUniTensor contract
  12. [New] Add SparseUniTensor linalg::Svd support.
  13. [Enhance] SparseUniTensor print info, add "contiguous" status.
  14. [Enhance] Add print_info for Symmetry descriptor
  15. [Enhance] Add UniTensor.syms()
  16. [Fix] Tensor.set when one of accessor is Singl will cause error.
  17. [Enhance] SparseUniTensor diag x diag, diag x dense are finished.
  18. [Fix] SparseUniTensor when diag permutation issue.
  19. [Fix] Sort does not return out Tensor.
  20. [Fix] Tproxy.item() does not get correct element.
  21. [Fix] Bug for Svd on SparseUniTensor vT is being set by U
  22. [New][experiment] Svd_truncate for SparseUniTensor
  23. [New] add Bond.redirect(), Bond.retype()
  24. [Fix] SparseUniTensor.permute() does not properly update braket_form
  25. [Fix] SparseUniTensor.set_rowrank should track _inner_rowrank not _rowrank bug.
  26. [Enhance] Add UniTensor.change_label() <- [Removed!!] use relabel(s)()
  27. [Fix] Svd_truncate when one of the block has only dim=1 should fill-in the dangling dimension.
  28. [New][experiment] iTEBD with U1 symmetry example for Heisenberg chain
  29. [Change] v0.7.4 [26.] replace change_label() with relabel. Now only have set_label(s) and relabel(s) with *_label() have by_label option.
  30. [Enhance] Add Accessor option Qns, qns()
  31. [Change] Trace now by default trace axis =0 and axis=1 if no argument specify.
  32. [Fix] Compare of two Bonds will now also check qnums.
  33. [New][experiment] SparseUniTensor.Trace() now support rank-2 symmetric UniTensor -> scalar
  34. [New][experiment] Contract of SparseUniTensor with two SUT with same labels -> scalar is now avaliable
  35. [Fix] DMRG initialize does not properly normalize the init state.
  36. [New] Scalar.conj(), Scalar.real(), Scalar.imag(), Scalar.maxval(dtype), Scalar.minval(dtype)
  37. [Enhance] Lanczos internal now written with single general function.
  38. [Enhance] Storage.append() now accept Scalar
  39. [Enhance][Fix] Fix inplace Arithmetic between Tensor +=(-=,*=,/=) Tensor with both non-contiguous leads to inconsistent memory alignment.
  40. [Enhance] from 39. add iAdd(), iDiv(), iMul(), iSub(), this can be called by user but is not recommended.
  41. [Enhance] Modify DMRG kernel for generic UniTensor as state.
  42. [New][experiment] Add Lanczos_Gnd_Ut() which accept Tin as UniTensor
  43. [New][experiment] LinOp now add an matvec option for UniTensor => UniTensor, which can be used together with Lanczos_Gnd_Ut
  44. [Change] Remove LinOp with custom function support, inheritance is forced.
  45. [Enhance] add Tensor.at() without template.
  46. [Change][Enhance] Remove UniTensor.get_elem/set_elem, unify them with at().
  47. [Fix] Trace for SparseUniTensor with is_diag=True.
  48. [New][experiment] MPS.Norm()
  49. [Fix] Lanczos_Gnd_Ut when input dimension is only 2 now check if the beta=0.
  50. [New] Add DMRG U1 example.
  51. [Change] Behavior change for Svd_truncate. SparseUniTensor the keepdim can exceed the current dimension of UniTensor, in such case it is equivalent to Svd.
  52. [New] Add UniTensor.Norm()
  53. [New][experiment] add MPS.Init_Msector(), which initialize the state with specify total magnetization.
  54. [Enhance] Add additional feature Svd_truncate with truncation_err (err) and return_err option for Ten
  55. [Enhance] Add additional feature Svd_truncate with truncation_err (err) and return_err option for DUTen
  56. [Enhance] Add python dmrg example for using tn_algo