Skip to content

UPB and BES

Unextended Product Basis (UPB) and Bounded Entangled States (BES)

Accessible in both numqi.entangle (recommended) and numqi.entangle.upb

numqi.entangle.get_upb_product(upb)

get product of unextendible product basis (UPB)

Parameters:

Name Type Description Default
upb list[ndarray]

unextendible product basis (UPB)

required

Returns:

Name Type Description
upb ndarray

product of unextendible product basis (UPB)

numqi.entangle.load_upb(kind, args=None, return_product=False, return_bes=False, ignore_warning=False)

load unextendible product basis (UPB)

see qetlab-doc/UPB

TODO John2^8 John2^4k CJ4k1 CJBip CJBip46 Feng2x2x5 Feng4m2 Feng2x2x2x4 Feng2x2x2x2x5 AlonLovasz

Parameters:

Name Type Description Default
kind str

UPB name, case insensitive, including: tiles pyramid feng4x4 min4x4 quadres genshifts feng2x2x2x2 sixparam gentiles1 gentiles2 john2^8

required
args (int, tuple)

UPB arguments

None
return_product bool

return product of UPB

False
return_bes bool

return bounding entangled states

False

Returns:

Name Type Description
upb (list[ndarray], ndarray)

If return_product=False, the length of list is the number of partites. Each np.ndarray is of shape (N,dimI) where N is the number of product states, dimI is the dimension of the i-th partite. If return_product=True, the return value is a np.ndarray of shape (N,dim0dim1dim2*...)

bes ndarray

only when return_bes=True, the return value is a np.ndarray of shape (dim0*dim1*dim2*...,dim0*dim1*dim2*...)

numqi.entangle.upb_to_bes(upb)

convert unextendible product basis (UPB) to bound entangled state (BES)

Parameters:

Name Type Description Default
upb (ndarray, list[ndarray])

unextendible product basis

required

Returns:

Name Type Description
bes ndarray

bound entangled state (BES)

numqi.entangle.LocalUnitaryEquivalentModel

numqi.entangle.BESNumEigenModel

numqi.entangle.BESNumEigen3qubitModel