OperatorSchmidtRank

From QETLAB
Revision as of 04:01, 27 November 2012 by Nathaniel (talk | contribs) (Created page with "{{Function |name=OperatorSchmidtRank |desc=Computes the operator Schmidt rank of a bipartite operator |req=opt_args<br />PermuteSystems<br />SchmidtRank<br...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
OperatorSchmidtRank
Computes the operator Schmidt rank of a bipartite operator

Other toolboxes required opt_args
PermuteSystems
SchmidtRank
sporth
Swap
Related functions OperatorSchmidtDecomposition
SchmidtNumber

OperatorSchmidtRank is a function that computes the operator Schmidt rank of a bipartite operator. If the operator is full, the operator Schmidt rank is computed using MATLAB's rank function. If the operator is sparse, the operator Schmidt rank is computed using the QR decomposition.

Syntax

  • RNK = OperatorSchmidtRank(X)
  • RNK = OperatorSchmidtRank(X,DIM)

Argument descriptions

  • X: A bipartite operator to have its operator Schmidt rank computed.
  • DIM (optional, by default has both subsystems of equal dimension): A specification of the dimensions of the subsystems that X lives on. DIM can be provided in one of three ways:
    • If DIM is a scalar, it is assumed that the first subsystem has dimension DIM and the second subsystem has dimension length(X)/DIM.
    • If $X \in M_{n_1} \otimes M_{n_2}$ then DIM should be a row vector containing the dimensions (i.e., DIM = [n_1, n_2]).
    • If the subsystems aren't square (i.e., $X \in M_{m_1, n_1} \otimes M_{m_2, n_2}$) then DIM should be a matrix with two rows. The first row of DIM should contain the row dimensions of the subsystems (i.e., the mi's) and its second row should contain the column dimensions (i.e., the ni's). In other words, you should set DIM = [m_1, m_2; n_1, n_2].

Examples

A random example

A random unitary will almost surely have full operator Schmidt rank:

>> OperatorSchmidtRank(RandomUnitary(4))

ans =

     4