Difference between revisions of "IsUPB"
Jump to navigation
Jump to search
(Created page with "{{Function |name=IsUPB |desc=Determines whether or a set of product vectors form a UPB |rel=MinUPBSize<br />UPB<br />UPBSepDistinguishable |cat=List of functions...") |
m |
||
| (2 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
{{Function | {{Function | ||
|name=IsUPB | |name=IsUPB | ||
| − | |desc=Determines whether or a set of product vectors form a UPB | + | |desc=Determines whether or not a set of product vectors form a UPB |
|rel=[[MinUPBSize]]<br />[[UPB]]<br />[[UPBSepDistinguishable]] | |rel=[[MinUPBSize]]<br />[[UPB]]<br />[[UPBSepDistinguishable]] | ||
|cat=[[List of functions#Distinguishing_objects|Distinguishing objects]] | |cat=[[List of functions#Distinguishing_objects|Distinguishing objects]] | ||
| − | |upd=October | + | |upd=October 21, 2014 |
|v=0.50}} | |v=0.50}} | ||
<tt>'''IsUPB'''</tt> is a [[List of functions|function]] that determines whether or not a given set of product vectors forms an unextendible product basis (UPB). | <tt>'''IsUPB'''</tt> is a [[List of functions|function]] that determines whether or not a given set of product vectors forms an unextendible product basis (UPB). | ||
| Line 12: | Line 12: | ||
==Argument descriptions== | ==Argument descriptions== | ||
| + | ===Input arguments=== | ||
* <tt>U,V,W,...</tt>: Matrices, each with the same number of columns as each other, whose columns are the local vectors of the supposed UPB. | * <tt>U,V,W,...</tt>: Matrices, each with the same number of columns as each other, whose columns are the local vectors of the supposed UPB. | ||
| + | |||
| + | ===Output arguments=== | ||
| + | * <tt>IU</tt>: A flag (either 1 or 0) specifying that the set of vectors described by <tt>U,V,W,...</tt> is or is not a UPB. | ||
| + | * <tt>WIT</tt> (optional): If <tt>IU = 0</tt> then this is a cell containing local vectors for a product vector orthogonal to every member of the non-UPB described by <tt>U,V,W,...</tt> (thus, it acts as a witness to the fact that it really is not a UPB). If <tt>IU = 1</tt> then <tt>WIT</tt> is meaningless. | ||
==Examples== | ==Examples== | ||
| Line 42: | Line 47: | ||
However, if we remove the fifth vector from this set, then it is no longer a UPB: | However, if we remove the fifth vector from this set, then it is no longer a UPB: | ||
<syntaxhighlight> | <syntaxhighlight> | ||
| − | >> IsUPB(u(:,1:4),v(:,1:4)) | + | >> [iu,wit] = IsUPB(u(:,1:4),v(:,1:4)); |
| + | >> iu | ||
| + | |||
| + | iu = | ||
| − | + | 0 | |
| + | >> celldisp(wit) % display the witness | ||
| + | |||
| + | wit{1} = | ||
| + | |||
| + | 0 | ||
0 | 0 | ||
| + | 1 | ||
| + | |||
| + | |||
| + | |||
| + | wit{2} = | ||
| + | |||
| + | 0.0000 | ||
| + | 0.7071 | ||
| + | 0.7071 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| + | |||
| + | Indeed, it is not difficult to verify that <tt>wit{1}</tt> is orthogonal to <tt>u(:,1)</tt> and <tt>u(:,2)</tt>, and <tt>wit{2}</tt> is orthogonal to <tt>v(:,3)</tt> and <tt>v(:,4)</tt>, so the first four columns of <tt>u,v</tt> do not specify a UPB. | ||
{{SourceCode|name=IsUPB}} | {{SourceCode|name=IsUPB}} | ||
Latest revision as of 18:26, 21 October 2014
| IsUPB | |
| Determines whether or not a set of product vectors form a UPB | |
| Other toolboxes required | none |
|---|---|
| Related functions | MinUPBSize UPB UPBSepDistinguishable |
| Function category | Distinguishing objects |
IsUPB is a function that determines whether or not a given set of product vectors forms an unextendible product basis (UPB).
Syntax
- IU = IsUPB(U,V,W,...)
Argument descriptions
Input arguments
- U,V,W,...: Matrices, each with the same number of columns as each other, whose columns are the local vectors of the supposed UPB.
Output arguments
- IU: A flag (either 1 or 0) specifying that the set of vectors described by U,V,W,... is or is not a UPB.
- WIT (optional): If IU = 0 then this is a cell containing local vectors for a product vector orthogonal to every member of the non-UPB described by U,V,W,... (thus, it acts as a witness to the fact that it really is not a UPB). If IU = 1 then WIT is meaningless.
Examples
The "Tiles" UPB
The following code verifies that the well-known "Tiles" UPB is indeed a UPB:
>> [u,v] = UPB('Tiles') % generate the local vectors of the "Tiles" UPB
u =
1.0000 0.7071 0 0 0.5774
0 -0.7071 0 0.7071 0.5774
0 0 1.0000 -0.7071 0.5774
v =
0.7071 0 0 1.0000 0.5774
-0.7071 0 0.7071 0 0.5774
0 1.0000 -0.7071 0 0.5774
>> IsUPB(u,v)
ans =
1However, if we remove the fifth vector from this set, then it is no longer a UPB:
>> [iu,wit] = IsUPB(u(:,1:4),v(:,1:4));
>> iu
iu =
0
>> celldisp(wit) % display the witness
wit{1} =
0
0
1
wit{2} =
0.0000
0.7071
0.7071Indeed, it is not difficult to verify that wit{1} is orthogonal to u(:,1) and u(:,2), and wit{2} is orthogonal to v(:,3) and v(:,4), so the first four columns of u,v do not specify a UPB.
Source code
Click here to view this function's source code on github.