FilterNormalForm

FilterNormalForm is a function that computes the filter normal form of a bipartite operator RHO (see Section IV.D of for an introductory discussion of the filter normal form). Note that if RHO is not full rank, it may not have a filter normal form and hence an error may be produced by this function.

Syntax

 * XI = FilterNormalForm(RHO)
 * [XI,GA,GB] = FilterNormalForm(RHO)
 * [XI,GA,GB,FA,FB] = FilterNormalForm(RHO,DIM)
 * [XI,GA,GB,FA,FB] = FilterNormalForm(RHO,DIM,TOL)

Input arguments

 * RHO: An positive semidefinite operator (typically a density matrix) that acts on a bipartite Hilbert space. This operator will have its filter normal form computed.
 * DIM</tt> (optional, default has RHO</tt> acting on two subsystems of equal size): A vector containing the dimensions of the two subsystems on which RHO</tt> acts.
 * TOL</tt> (optional, default sqrt(eps)</tt>): The numerical tolerance used when computing the filter normal form.

Output arguments

 * XI</tt>: A vector containing the coefficients of the filter normal form of RHO</tt>, as defined in.
 * GA,GB</tt> (optional): Cells of mutually orthonormal matrices in the filter normal form of RHO</tt>.
 * FA,FB</tt> (optional): The local filtering operations used to convert RHO</tt> into its filter normal form.

To be explicit, the relationship between RHO</tt> and the output arguments is that kron(FA,FB)*RHO*kron(FA,FB)' == (eye(length(RHO)) + TensorSum(XI,GA,GB))/length(RHO)</tt>. In usual math notation, this means that

$$(F_A \otimes F_B)\rho(F_A \otimes F_B)^\dagger = \frac{1}{d_A d_B}\big(I + \displaystyle\sum_{k} \xi_k G_k^A \otimes G_k^B\big).$$

Finding and verifying the filter normal form
The following code computes the filter normal form of a random density matrix. The fact that FA</tt> and FB</tt> implement a local filter to this form is then verified (within reasonable numerical error).

Using the filter normal form to detect entanglement
As noted in, the coefficients XI</tt> of the filter normal form provide useful information about the entanglement of <tt>RHO</tt>. For example, if both subsystems have the same dimension <tt>D</tt> then we can conclude that <tt>RHO</tt> is entangled if <tt>sum(XI) > D^2 - D</tt>. Thus the following code generates a random two-qutrit density matrix and then determines that it is entangled:

Low-rank states may not have a filter normal form
It is known that all full-rank density matrices have a filter normal form. However, low-rank density matrices may not have a filter normal form (although they usually do) – an error will be produced by this script when low-rank problems occur. The following code generates a random rank-2 density matrix in $$M_3 \otimes M_3$$ just fine, but is unable to compute the filter normal form of a low-rank state that is constructed specifically so that it does not have a filter normal form: