Main Page

QETLAB: A MATLAB Toolbox for Quantum Entanglement
QETLAB (Quantum Entanglement Theory LABoratory) is a MATLAB toolbox for exploring quantum entanglement theory. While there are many quantum information theory toolboxes that allow the user to perform basic operations such as the partial transposition, new tests are constantly discovered. The goal of QETLAB is to remain up-to-date and contain an ever-growing catalogue of separability criteria, positive maps, and related functions of interest. Furthermore, QETLAB is designed to work well both with full matrices and with large sparse matrices, and makes use of many advanced techniques based on semidefinite programming.

Pure state entanglement and the Schmidt decomposition
The heart of QETLAB is a suite of functions that make working with quantum entanglement quick and easy. Working with pure state entanglement is a breeze, as demonstrated by the following code snippet, which generates a random pure state (according to uniform spherical measure/Haar measure) and computes its Schmidt decomposition:

We could verify that this Schmidt decomposition is correct as follows:

However, QETLAB has a built-in function that acts as the inverse of the Schmidt decomposition, to make this process easier:

Mixed state entanglement and detecting bound entanglement
QETLAB can also handle mixed state entanglement without trouble. To demonstrate these features, let's start by creating a bound entangled state and then detecting its entanglement.

One well-known way to create bound entangled states is via unextendible product bases (UPBs). Let's first generate the "Tiles" UPB in $\mathbb{C}^3 \otimes \mathbb{C}^3$ and construct a bound entangled state from it:

Now rho is a bound entangled state. We can verify this in QETLAB as follows:

QETLAB can also carry out many related functions, such as finding entanglement witnesses that detect entanglement in a given state, determining whether or not a given operator is an entanglement witness, and deciding whether or not a given set of vectors form an unextendible product basis. Furthermore, there are numerous examples scattered throughout the documentation that make learning how to carry out these operations a breeze.