CQMap#

class discopy.quantum.cqmap.CQMap(dom, cod, array=None, utensor=None)[source]#

Bases: Tensor

Implements classical-quantum maps.

Parameters:
  • dom (CQ) – Domain.

  • cod (CQ) – Codomain.

  • array (list, optional) – Array of size product(utensor.dom @ utensor.cod).

  • utensor (discopy.tensor.Tensor, optional) – Underlying tensor with domain dom.classical @ dom.quantum ** 2 and codomain cod.classical @ cod.quantum ** 2`.

property utensor#

Underlying tensor.

static measure(dim, destructive=True)[source]#

Measure a quantum dimension into a classical dimension.

static encode(dim, constructive=True)[source]#

Encode a classical dimension into a quantum dimension.

static double(utensor)[source]#

Takes a tensor, returns a pure quantum CQMap.

static classical(utensor)[source]#

Takes a tensor, returns a classical CQMap.

static discard(dom)[source]#

Discard a quantum dimension or take the marginal distribution.

round(decimals=0)[source]#

Rounds the entries of a CQMap up to a number of decimals.