pdft.bases.BlockedBasis#

class pdft.bases.BlockedBasis(inner, block_log_m, block_log_n, code=None, inv_code=None)[source]#

Bases: object

Wraps an inner parametric basis as a within-block transform.

Parameters:
  • inner (any pdft basis (QFTBasis, EntangledQFTBasis, TEBDBasis, MERABasis)) – Within-block parametric circuit at smaller m_inner = inner.m, n_inner = inner.n.

  • block_log_m (int) – Number of block-index qubits per dimension. The image is (2^(inner.m + block_log_m), 2^(inner.n + block_log_n)). block_log_m=0 (and =0) reduces to the inner basis.

  • block_log_n (int) – Number of block-index qubits per dimension. The image is (2^(inner.m + block_log_m), 2^(inner.n + block_log_n)). block_log_m=0 (and =0) reduces to the inner basis.

  • code (object)

  • inv_code (object)

Notes

All learnable parameters live in inner.tensors; BlockedBasis is a pure structural wrapper. Block parameters are SHARED across blocks (one inner basis tiled).

__init__(inner, block_log_m, block_log_n, code=None, inv_code=None)[source]#
Parameters:

Methods

__init__(inner, block_log_m, block_log_n[, ...])

forward_transform(pic)

inverse_transform(pic)

Attributes

block_shape

image_size

inv_tensors

m

n

num_blocks

num_parameters

tensors

Forward to inner — pytree leaves order is inner.tensors.

inner

block_log_m

block_log_n

code

inv_code

inner: Any#
block_log_m: int#
block_log_n: int#
code: object#
inv_code: object#
property m: int#
property n: int#
property tensors: list[Array]#

Forward to inner — pytree leaves order is inner.tensors.

property inv_tensors: list[Array]#
property image_size: tuple[int, int]#
property num_parameters: int#
property num_blocks: int#
property block_shape: tuple[int, int]#
forward_transform(pic)[source]#
Parameters:

pic (Array)

Return type:

Array

inverse_transform(pic)[source]#
Parameters:

pic (Array)

Return type:

Array