Thanks to @Shivansh20128 for numerous contributions and improvements to toqito. Thanks to @RohitP2005 for adding a pre-commit hook to keep the local development flow clean.
complementary_channel
feature to compute the complementary channel of a provided quantum channel.- Parallelzing the calculation of the classical value of a nonlocal local game.
- Numerous fixes, improvements, corrections, and clarifications both in documentation and in code.
Many thanks to first-time contributors @Shivansh20128 and @FabienGhd as well as returning contributor @tnemoz for their participation in this milestone.
- List of new features: generate random orthonormal basis, compute matrix spark, checks to verify a matrix is anti-hermitian, doubly stochastic, stochastic
- Tensor products now utilize fast exponentiation
- Randomness related functions employ
seed
- Documentation employs a different theme
- toqito is compatible with Numpy 2.0, dependencies for
scikit-image
andqiskit
were removed cyclic_permutation
andrandom_circulant_gram
functions were renamedpure_to_mixed
was removed in favor ofvector_to_density_matrix
vector_to_density_matrix
was renamedinner_product
andoute_product
functions were removed
is_anti_hermitian
to check if a matrix is anti-hermitian was added inmatrix_props
, @tnemoz in #798- Functions that generate randomized matrices now allow a
seed
as input, @tnemoz in #842 random_orthonormal_basis
was added inrand
to generate a random orthonormal basis from the columns of a random unitary matrix, @purva-thakre in #821spark
added inmatrix_props
helps compute the spark of a matrix, @vprusso in #780- Checks to verify if a matrix is stochastic or doubly stochastic were added in
matrix_props
, @purva-thakre in #723 and #723
cyclic_permutation
inmatrices
was renamed tocyclic_permutation_matrix
, @FabienGhd in #682random_circulant_gram
inrand
was renamed torandom_circulant_gram
, @FabienGhd in #682pure_to_mixed
was removed in favor ofvector_to_density_matrix
,vector_to_density_matrix
renamed toto_density_matrix
, @Shivansh20128 in #853- Tensor products now utilize fast exponentiation, @tnemoz in #809
- Documentation employs a different theme, search inside documentation is also fixed, @vprusso and @purva-thakre in #836
- toqito is compatible with Numpy 2.0, @purva-thakre in #754
- Infix operator replaces instances of
*
for matrix multiplication, @vprusso in #797 scikit-image
was removed fromsetup.py
, @vprusso in #819- Deprecated usage of
csr_matrix
anddia_matrix
inperms/permute_systems
was removed, @purva-thakre in #816 - BCS conversion error for upper and lower bounds on the quantum value was corrected, @vprusso in #811
- Unused
cvx_kron
function was removed, @vprusso in #795 inner_product
andoute_product
functions were removed in favor ofnp.vdot
andnp.outer
, @vprusso in #833
- full automated changelog here
- Update pytest requirement from 8.0.0 to 8.0.1 by @dependabot in #475
- Update ruff requirement from 0.2.1 to 0.2.2 by @dependabot in #476
- Update coverage requirement from 7.4.1 to 7.4.2 by @dependabot in #477
- Update qiskit requirement from 1.0.0 to 1.0.1 by @dependabot in #480
- Update ipython requirement from 8.21.0 to 8.22.1 by @dependabot in #481
- Update PR template by @purva-thakre in #483
- Update issue templates by @vprusso in #484
- Fix #478 : Rename shift and clock matrices to gen_pauli_x and gen_pauli_z by @MohitKambli in #479
- Update coverage requirement from 7.4.2 to 7.4.3 by @dependabot in #491
- Update pytest requirement from 8.0.1 to 8.0.2 by @dependabot in #489
- Update pylint requirement from 3.0.3 to 3.1.0 by @dependabot in #490
- test expected output by @Bchass in #486
- Parameterizing swap tests. by @vprusso in #493
- Update ruff requirement from 0.2.2 to 0.3.0 by @dependabot in #496
- Convert reduction to array by @Bchass in #495
- Update pytest requirement from 8.0.2 to 8.1.0 by @dependabot in #500
- Bump sphinx-wagtail-theme from 6.2.0 to 6.3.0 by @dependabot in #499
- Update ipython requirement from 8.22.1 to 8.22.2 by @dependabot in #502
- Bump sphinx-wagtail-theme from 6.2.0 to 6.3.0 by @dependabot in #501
- Update ruff requirement from 0.3.0 to 0.3.1 by @dependabot in #503
- Update qiskit requirement from 1.0.1 to 1.0.2 by @dependabot in #504
- Update mypy requirement from 1.8.0 to 1.9.0 by @dependabot in #506
- Update ruff requirement from 0.3.1 to 0.3.2 by @dependabot in #507
- Moving is distinguishable test to proper location. by @vprusso in #505
- Update pytest requirement from 8.1.0 to 8.1.1 by @dependabot in #508
- Ruff format by @purva-thakre in #510
- Update coverage requirement from 7.4.3 to 7.4.4 by @dependabot in #513
- Update ruff requirement from 0.3.2 to 0.3.3 by @dependabot in #515
- Update ruff requirement from 0.3.3 to 0.3.4 by @dependabot in #516
- Update pytest-cov requirement from 4.1.0 to 5.0.0 by @dependabot in #520
- Minor changes to punctuation and code rendering for documentation. by @vprusso in #517
- Updating and improving README. by @vprusso in #524
- Update ipython requirement from 8.22.2 to 8.23.0 by @dependabot in #525
- Update ruff requirement from 0.3.4 to 0.3.5 by @dependabot in #526
- Update scipy requirement from 1.12.0 to 1.13.0 by @dependabot in #527
- gen_gell_mann refactor by @Bchass in #521
- Refactor antisymmetric_projection by @Bchass in #523
- Pretty good pretty bad measurements by @vprusso in #522
- Make sure doctest job tests examples in tutorials by @purva-thakre in #542
- Doctest examples - output types by @purva-thakre in #540
- pauli refactor by @Bchass in #539
- Update ruff requirement from 0.3.5 to 0.3.7 by @dependabot in #548
- Update cvxpy requirement from 1.4.2 to 1.4.3 by @dependabot in #549
- Update sphinx requirement from 7.2.6 to 7.3.5 by @dependabot in #550
- Update sphinx requirement from 7.3.5 to 7.3.6 by @dependabot in #551
- Update sphinx requirement from 7.3.6 to 7.3.7 by @dependabot in #553
- Update ruff requirement from 0.3.7 to 0.4.0 by @dependabot in #552
- Update ruff requirement from 0.4.0 to 0.4.1 by @dependabot in #564
- Simplifying gitignore file. by @vprusso in #555
- Update coverage requirement from 7.4.4 to 7.5.0 by @dependabot in #568
- Update myst-parser requirement from 2.0.0 to 3.0.0 by @dependabot in #569
- Update documentation instructions by @purva-thakre in #566
- matrices: simplify gen_pauli_x construction by @atomgardner in #545
- Disable
black
by @purva-thakre in #567 - Update mypy requirement from 1.9.0 to 1.10.0 by @dependabot in #570
- Update ipython requirement from 8.23.0 to 8.24.0 by @dependabot in #571
- Update ruff requirement from 0.4.1 to 0.4.2 by @dependabot in #572
- Update pytest requirement from 8.1.1 to 8.2.0 by @dependabot in #574
- Update myst-parser requirement from 3.0.0 to 3.0.1 by @dependabot in #573
- Random doctest failures by @purva-thakre in #575
- Test generalized Pauli matrices by @atomgardner in #544
- Update ruff requirement from 0.4.2 to 0.4.3 by @dependabot in #578
- Update coverage requirement from 7.5.0 to 7.5.1 by @dependabot in #579
- Remove sparse matrix classes by @Bchass in #543
- Update cvxpy requirement from 1.4.3 to 1.5.0 by @dependabot in #580
- Update ruff requirement from 0.4.3 to 0.4.4 by @dependabot in #581
- Update cvxpy requirement from 1.5.0 to 1.5.1 by @dependabot in #582
- Update pylint requirement from 3.1.0 to 3.1.1 by @dependabot in #583
- Update pylint requirement from 3.1.1 to 3.2.0 by @dependabot in #584
- Add
toml
dependency groups by @purva-thakre in #585 - Update qiskit requirement from 1.0.2 to 1.1.0 by @dependabot in #589
- Remove pylint by @purva-thakre in #588
- Update pytest requirement from 8.2.0 to 8.2.1 by @dependabot in #590
- Bump sphinx-autoapi from 3.0.0 to 3.1.0 by @dependabot in #591
- Bump sphinx-autoapi from 3.0.0 to 3.1.0 by @dependabot in #592
- Update scipy requirement from 1.13.0 to 1.13.1 by @dependabot in #593
- Bump sphinx-autoapi from 3.1.0 to 3.1.1 by @dependabot in #594
- Update ruff requirement from 0.4.4 to 0.4.5 by @dependabot in #595
- Bump sphinx-autoapi from 3.1.0 to 3.1.1 by @dependabot in #596
- Update coverage requirement from 7.5.1 to 7.5.2 by @dependabot in #597
- Update ruff requirement from 0.4.5 to 0.4.6 by @dependabot in #599
- Update coverage requirement from 7.5.2 to 7.5.3 by @dependabot in #598
- Update scs requirement from 3.2.4.post1 to 3.2.4.post2 by @dependabot in #603
- Bump sympy from 1.12 to 1.12.1 by @dependabot in #604
- Update README.md by @anushkrishnav in #605
- Fixing misplaced & issue. by @vprusso in #608
- Ensure PSD operators are being optimized over proper space by @golanor in #600
- Bump sympy from 1.12 to 1.12.1 by @dependabot in #609
- Fix for Issue #401 by @Roshan-Thomas in #606
- Regenerated and updated codecov token. by @vprusso in #610
- Code block in
is_separable
by @purva-thakre in #611 - Update ipython requirement from 8.24.0 to 8.25.0 by @dependabot in #615
- Update ruff requirement from 0.4.6 to 0.4.7 by @dependabot in #616
- Upated Indexing from 1 -> 0 by @anushkrishnav in #602
- Update pytest requirement from 8.2.1 to 8.2.2 by @dependabot in #619
- Update ruff requirement from 0.4.7 to 0.4.8 by @dependabot in #622
- Add unambiguous discrimination strategy to state distinguishability and state exclusion by @tnemoz in #614
- Add more conditions for checking
is_separable
by @Yash-10 in #612 - Update more-itertools requirement from 10.2.0 to 10.3.0 by @dependabot in #624
- Based on the closure of 473, fixing import. by @vprusso in #625
- Remove
books.bib
by @purva-thakre in #626 - Update flake8 requirement from 7.0.0 to 7.1.0 by @dependabot in #628
- Update ruff requirement from 0.4.8 to 0.4.9 by @dependabot in #627
- Update cvxpy requirement from 1.5.1 to 1.5.2 by @dependabot in #629
- Update scs requirement from 3.2.4.post2 to 3.2.4.post3 by @dependabot in #630
- Update ruff requirement from 0.4.9 to 0.4.10 by @dependabot in #631
- Bump sphinx-autoapi from 3.1.1 to 3.1.2 by @dependabot in #632
- Update qiskit requirement from 1.1.0 to 1.1.1 by @dependabot in #633
- Bump sphinx-autoapi from 3.1.1 to 3.1.2 by @dependabot in #634
- Update coverage requirement from 7.5.3 to 7.5.4 by @dependabot in #635
- Removed lil sparse matrix for GHZ state. by @vprusso in #637
- Update mypy requirement from 1.10.0 to 1.10.1 by @dependabot in #639
- Update scipy requirement from 1.13.1 to 1.14.0 by @dependabot in #640
- Update scs requirement from 3.2.4.post3 to 3.2.5 by @dependabot in #641
- Update ruff requirement from 0.4.10 to 0.5.0 by @dependabot in #643
- Update numpy requirement from 1.26.4 to 2.0.0 by @dependabot in #642
- Update ipython requirement from 8.25.0 to 8.26.0 by @dependabot in #644
- Removing sparse matrix for symmetric projection. by @vprusso in #638
- Undo numpy upgrade by @purva-thakre in #653
- Update scs requirement from 3.2.5 to 3.2.6 by @dependabot in #655
- Update ruff requirement from 0.5.0 to 0.5.1 by @dependabot in #654
- Add checks for nonnegative, doubly nonnegative and positive matrices by @purva-thakre in #645
- Positive semidefinite rank of a matrix by @vprusso in #647
- Bump sympy from 1.12.1 to 1.13.0 by @dependabot in #657
- Add pytest to unit tests for
update_odometer
by @purva-thakre in #658 - Bump sympy from 1.12.1 to 1.13.0 by @dependabot in #659
- Removing redundant note for doctest. by @vprusso in #651
- @MohitKambli made their first contribution in #479
- @atomgardner made their first contribution in #545
- @anushkrishnav made their first contribution in #605
- @golanor made their first contribution in #600
- @Roshan-Thomas made their first contribution in #606
- @tnemoz made their first contribution in #614
- @Yash-10 made their first contribution in #612
-
Patch for 1.0.7 as prior version was not including new files.
-
Removed deprecated
cvx_kron
function.
-
Numerous improvements to linting and overall improvement in project structure (PR-190, PR-192, PR-193, PR-195, PR-200, PR-205, PR-206 PR-212, PR-223, and others). Thanks to @purva-thakre for a bunch of work here!
-
Improved test coverage in channel fidelity(PR-232), CB norm (PR-234), and KP-norm (PR-246), and more. Thanks to @purva-thakre!
-
Fixed RTD failing builds. PR-253.
-
Optimizations to checking if set of vectors are mutually orthogonal. Improvement from O(n^2) to O(n). PR-250.
-
Feature to generate a set of mutually unbiased bases for a given prime dimension. PR-272.
-
Feature to check whether a given collection of quantum states described as vectors are antidistinguishable. PR-271.
-
Feature to check whether a set of quantum states constitute an unextendible product basis or not. (thanks to @Newtech66 and @smtsjhr).
-
Feature to check if matrix is totally positive PR-274
-
Fix: Bug in state exclusion code PR-292
-
Feature: Determine whether a collection of vectors are linearly independent or not PR-324
-
Feature: Adding the BB84 states PR-327
-
Feature: Integrating the functionality to determine whether a collection of states comprise an unextendible product basis PR-328
-
Feature: Adding the PBR states PR-382
-
Feature: Adding cyclic permutation (thanks to @Bchass) PR-390
-
Feature: Adding support for density matrix and vector input for state distinguishability and exclusion PR-462
-
Adding ability to perform parallel repetition for
XORGame
objects (thanks to @juliusw352) PR-143 -
Thanks to @puva-thakre for updating the installation and contribution guidelines. PR-153
-
Thanks to @ryanprior for providing a CI/CD testing and linting pipeline PR-154
-
Thanks to @georgios-ts for fixing a bug in
apply_channel
PR-155 -
Thanks to @georgios-ts for fixing a bug in
sk_norm
. PR-156 -
Thanks to @georgios-ts for fixing a bug in
is_unitary
for channels. PR-164 -
Thanks to @georgios-ts for fixing an issue in
choi_to_kraus
for non-CP maps. PR-162 -
Thanks for @georgios-ts for adding the
channel_dim
feature to allow one to extract the dimensions of a quantum channel. PR-161 -
Thanks to @AmanieOxana for integrating the completely bounded trace and spectral norms. PR-157
-
Thanks to @ErikQQY for refactoring and simplifying the partial trace and partial transpose functions. PR-158
-
Thanks to @purva-thakre for adding SDPs for calculating the fidelity of separability in
fidelity_of_separability
PR-165 -
Thanks to @elads888 for adding the
is_diagonally_dominant
feature to allow one to determine if a matrix is diagonally dominant. PR-176 -
Thanks to @epelaaez for adding the
bures_angle
feature. PR-181 -
Refactor of
state_exclusion
to take advantage of thepicos
SDP solver with to return both the optimal value and optimal measurements. PR-182 -
Adding feature to determine if a given matrix is circulant with
is_circulant
. PR-184
-
Version bump to fix Python package versioning issue.
-
Adding
outer_product
andinner_product
functions inmatrix_ops
(thanks to @juliusw352) -
Fixing random number generation in
random_density_matrix
function to be obtained from Haar measure (thanks to @BCasale) -
Adding
to_nonlocal_game
function inXORGame
that converts an XOR game definition to aNonlocalGame
object (thanks to @juliusw352) -
Adding
nonsignaling
function inXORGame
that calculates the nonsignaling value of anXORGame
object (thanks to @juliusw352)
- Version bump to fix Python package versioning issue.
-
Enhancement: Update to Python 3.9 from 3.7.
-
Feature: Added
dual_channel.py
underchannel_ops
. This feature allows one to calculate the dual channel of a given input provided as either a list of Kraus operators, or, a Choi matrix that represents a valid quantum channel. -
Fix: Thanks to Jake Xuereb for a fix in the
concurrence.py
function that was incorrectly not taking the transpose. -
Feature: Thanks to Joseph Li (@jli0108) for the ability to calculate the Schmidt decomposition.
-
Feature: Added
diamond_norm.py
underchannel_metrics/
. This feature allows the user to calculate the diamond norm between the Choi representations of two quantum channels. -
Feature: Added
is_npt.py
understate_props/
. This feature allows the user to determine whether a given state is has negative partial transpose (is NPT). -
Fix: Thanks to @iftachyakar for the state distinguishability docs update
-
Fix: Thanks to @georgios-ts for the fix to
symmetric_extension_hierarchy
. -
Feature: Thanks to @georgios-ts for the feature of the
sk_vector_norm
. -
Feature: Thanks to @georgios-ts for the extended nonlocal game version of the NPA hierarchy in
extended_nonlocal_games
. -
Fix: Thanks to @georgios-ts for a fix in the
partial_transpose.py
function. -
Feature: Thanks to @georgios-ts for the
block_positive.py
feature that allows the user to detect if a matrix is block positive. -
Feature: Thanks to @meandmytram for the
is_separable.py
feature that allows the user to test whether a quantum state represented as a density operator is entangled or separable. -
Feature: Added
standard_basis.py
undermatrices/
that allows one to construct the standard basis of dimension "d". -
Feature: Added
is_orthonormal.py
undermatrix_props/
that allows one to determine if a collection of vectors or matrices are orthonormal. -
Feature: Thanks to @AdithyaSireesh for
hilbert_schmidt_inner_product.py
understate_metrics/
that allows one to calculate the Hilbert-Schmidt inner product between two linear operators. -
Enhancement: Updating
Union
syntax using the|
operator instead ofUnion
fromtyping
. -
Enhancement: Linting and stylistic improvements.
-
Feature: Added
bures_distance.py
understate_metrics/
. This feature allows the user to determine whether a given matrix is idempotent. -
Feature: Added
singlet.py
understates/
. This feature allows one to yield a singlet state of dimensiondim
. -
Feature: Added
is_quantum_channel
underchannel_props
. This feature allows one to check whether a given input provided as either a list of Kraus operators, or, a Choi matrix constitutes a valid quantum channel. -
Fix: Permute systems had a bug where if the
inv_perm
option inpermute_systems.py
was selected, the standard permutation was calculated (not the inverse permutation). Further unit tests are included to catch similar failures. -
Fix: The
partial_transpose.py
function did not accurately calculate the partial transpose on matrices of certain dimension. The fix forpermute_systems.py
fixes the issue withpartial_transpose.py
. Further unit tests are included to catch similar failures. -
Fix: The
partial_trace.py
function was not accurately calculating the partial trace when the argument was specified as a list of dimensions for certain cases. This has been fixed and further test cases have been included to prevent this from occurring. -
Fix: The
swap.py
function was not accurately swapping on all sub-systems. Further unit tests are included to catch similar failures. -
Fix: The
hadamard.py
function was not yielding Hadamard matrices of proper size and value. Fixed and added tests to cover this case. -
Fix: The
schmidt_decomposition.py
function was taking an incorrect argument into the SVD function. Fixed and added further tests cases to cover. -
Fix: The
is_product_vector.py
was making use of theschmidt_decomposition.py
function incorrectly. Fixed and added further test cases. -
Enhancement: Adding ability for
schmidt_rank.py
function to process not just vectors, but also matrices. Adding in unit tests to cover this case. -
Enhancement: Adding the ability for
is_product.py
function to process not just vectors, but also matrices. Adding in unit tests to cover this case. -
Enhancement: Simplified code for
nonlocal_game.py
andextended_nonlocal_game.py
-
Enhancement: Some general documentation clean-up.
-
Fix: Various documentation fixes and updates.
-
Fix: Index error for unambiguous quantum state distinguishability.
-
Feature: Added
is_unital.py
underchannel_props/
. This feature allows the user to determine whether a given channel (specified by either its Choi matrix or by its Kraus operators) is unital. -
Feature: Added
is_trace_preserving.py
underchannel_props/
. This feature allows the user to determine whether a given channel (specified by either its Choi matrix or by its Kraus operators) is trace-preserving. -
Feature: Added
log_negativity.py
understate_props
. This feature allows the user to calculate the log negativty of a quantum state. -
Feature: Added
channel_fidelity.py
underchannel_metrics/
. This feature allows the user to calculate the channel fidelity between the Choi representations of two quantum channels. -
Feature: Added
is_idempotent.py
undermatrix_props/
. This feature allows the user to determine whether a given matrix is idempotent. -
Enhancement: Adding
rtol
andatol
tolerance parameters foris_herm_preserving.py
. -
Enhancement: Improving speed of calculating the classical value of nonlocal game. This enhancement is taken from QETLAB which was inspired by pre-print arxiv:2005.13418.
-
Enhancement: Parallel repetitions for the classical value of a nonlocal game is now supported.
-
Fix: The
partial_channel.py
function has been enhanced to deal with completely positive maps specified by Kraus operators as input. -
Fix: The GHZ state now supports either dimension or parameter
1
instead of it previously being2
-
Feature: Added
in_separable_ball.py
understate_props/
. Knowing whether a density matrix (quantum state) is contained in the separable ball centered at the maximally-mixed state is useful for separability testing. Addedtest_in_separable_ball.py
for unit testing. -
Feature: Added in ability to perform both minimum-error and unambiguous state discrimination in
ppt_distinguishability.py
. Adding additional tests toppt_state_distinguishability.py
to cover this extra feature. -
Feature: Added in ability to compute both primal and dual optimization problems in
ppt_distinguishability.py
. This gives the user the capability to obtain the measurement operators and also to use the computationally efficiency of the dual problem to make quicker numeric calculations. -
Feature: Added
unvec.py
undermatrix_ops/
. This feature is the inverse of pre-existing "vec" operation found invec.py
. That is, it allows one to take a vector and transform it to a (possibly square) matrix. -
Feature: Added
choi_to_kraus.py
underchannel_ops/
. This feature allows the user to convert a Choi matrix to a list of Kraus operators. This is the inverse of the existingkraus_to_choi.py
functionality thattoqito
currently offers. -
Feature: Add
is_mutually_orthogonal.py
understate_props/
. This feature allows the user to determine whether a given set of states (vectors) are mutually orthogonal with each other. -
Feature: Add
has_symmetric_extension.py
understate_props/
. This feature is very useful for determining whether a given state is entangled by checking whether there exists a symmetric extension for that state. -
Feature: Add
cvx_kron.py
underhelper/
. This feature allows one to compute the Kronecker product between two entities, where either two may be of typenp.ndarray
or acvxpy
expression. -
Feature: Add
is_identity.py
tostate_props/
. This feature allows one to check if a given matrix is equal to the identity matrix. -
Enhancement: Previously ignore tests for
channel_props/
are now being run as part of the testing suite. -
Enhancement: More robust error checking and adding tolerance arguments for various matrix properties found in
matrix_props/
. -
Doc-Fix: Trailing back-tick quotes removed in
li_norm_coherence.py
. -
Fix: Bug in
symmetric_extension_hierarchy.py
forlevel=1
case. Added test to cover this bug. -
Fix: Bug in
states/tile.py
produced 3-dimensional vectors when they should have in fact been 9-dimensional vectors. -
Fix: Warning in testing suite for
test_symmetric_projection.py
for previously using the deprecatednumpy.matrix
class has since been fixed and the warning hence resolved. -
Fix: The
states/isotropic.py
file no longer requires the use of the deprecatednumpy.matrix
class.
-
Fix: Bug in
swap.py
. Added test to cover bug found. -
Fix: Bug in
ppt_distinguishability.py
that prevented checking for higher dimensions. Added test to cover bug found. -
Fix: Bug in
ppt_distinguishability.py
that prevented checking 2-dimensional cases. -
Fix: Bug in
state_distinguishability.py
. Value returned was being multiplied by an unnecessary factor. Added other tests that would have caught this. -
Fix: Bug in
partial_trace.py
. Added test to cover bug found. -
Fix: Bug in
partial_transpose.py
for non-square matrices. Adding test cases to cover this previously failing case. -
Fix: Bug in
purity.py
. Squaring matrix was using**2
instead ofnp.linalg.matrix_power
-
Fix: Bug in
random_state_vector.py
. Added tests to cover. -
Fix: Bug in
schmidt_rank.py
. Added tests to cover. -
Feature: Added in
symmetric_extension_hierarchy.py
. The function is a hierarchy of semidefinite programs that eventually converge to the separable value for distinguishing an ensemble of quantum states. The first level is just the standard PPT distinguishability probability. Computing higher levels of this hierarchy can become intractable quite quickly. -
Feature: Added in ability to perform both minimum-error and unambiguous state discrimination in
state_distinguishability.py
. Adding additional tests totest_state_distinguishability.py
to cover this extra feature. -
Feature: Added
majorizes.py
; a function to determine whether a vector or matrix majorizes another. This is used as a criterion to determine whether a quantum state can be converted to another via LOCC. Addedtest_majorizes.py
for unit testing. -
Feature: Added
perfect_matchings.py
; a function that calculates all the perfect matchings of a given list of objects. Addedtest_perfect_matchings.py
for unit testing. -
Feature: Added
breuer.py
understates/
; a specific bound-entangled state of interest. Added intest_breuer.py
for unit testing. -
Feature: Added
brauer.py
understates/
. Added intest_brauer.py
for unit testing. -
Feature: Added
entanglement_of_formation.py
understate_props/
. Added intest_entanglement_of_formation.py
for unit testing. -
Feature: Added
l1_norm_coherence.py
understate_props/
. Addedtest_l1_norm_coherence.py
for unit testing. -
Enhancement: Adding further tests for
symmetric_projection.py
. -
Enhancement: Adding further tests for
ppt_distinguishability.py
. -
Enhancement: Adding further tests for
reduction.py
-
Enhancement: Consolidating
conclusive_state_exclusion.py
andunambiguous_state_exclusion.py
to juststate_exclusion.py
. Adding in optional parameter to specify method of exclusion. Consolidated tests intest_state_exclusion.py
.