pdft.bases.EntangledQFTBasis#

class pdft.bases.EntangledQFTBasis(m, n, tensors=None, entangle_phases=None, entangle_position='back', code=None, inv_code=None, seed=None)[source]#

Bases: object

QFT + appended entanglement layer on min(m, n) row/col qubit pairs.

Mirror of upstream src/basis.jl:280-500 (entangle_position=:back only).

Parameters:
__init__(m, n, tensors=None, entangle_phases=None, entangle_position='back', code=None, inv_code=None, seed=None)[source]#

Mirror of _init_circuit(::Type{EntangledQFTBasis}, ...) from ParametricDFT.jl/src/training.jl. When seed is provided AND entangle_phases is None, draws phases from np.random.default_rng(seed).normal(0, 0.1, n_entangle) — Julia’s randn(n_gates) * 0.1 convention. This breaks the symmetry-collapse where EntangledQFTBasis initialises identically to QFTBasis when all entanglement phases are zero.

Parameters:

Methods

__init__(m, n[, tensors, entangle_phases, ...])

Mirror of _init_circuit(::Type{EntangledQFTBasis}, ...) from ParametricDFT.jl/src/training.jl.

forward_transform(pic)

inverse_transform(pic)

Attributes

m: int#
n: int#
n_entangle: int#
tensors: list[Array]#
code: object#
inv_code: object#
property inv_tensors: list[Array]#
property image_size: tuple[int, int]#
property num_parameters: int#
forward_transform(pic)[source]#
Parameters:

pic (Array)

Return type:

Array

inverse_transform(pic)[source]#
Parameters:

pic (Array)

Return type:

Array