symop.polynomial.channels.models.amplifier

Amplifier channels for symbolic density polynomials.

Implements a quantum-limited phase-insensitive bosonic amplifier as a Bogoliubov transformation on a signal mode and a vacuum environment mode, followed by tracing out the environment.

Convenience helpers are provided for applying amplification to a single mode, multiple modes sequentially, or via mappings from modes to gains.

Functions

amplifier_bogoliubov_xy(*, gain)

Return the Bogoliubov matrices for a two-mode amplifier dilation.

amplifier_densitypoly(rho, *, signal_mode, ...)

Apply a single-mode quantum-limited amplifier channel.

amplifier_densitypoly_by_mode(rho, *, ...[, ...])

Apply amplification to several modes specified by mappings.

amplifier_densitypoly_many(rho, *, specs[, ...])

Apply multiple amplifier channels sequentially.

Classes

AmplifierSpec(signal_mode, env_mode, gain)

Per-mode specification for amplifier application.

class AmplifierSpec(signal_mode: ModeOp, env_mode: ModeOp, gain: float) None

Bases: object

Per-mode specification for amplifier application.

Parameters:
  • signal_mode (ModeOp)

  • env_mode (ModeOp)

  • gain (float)

signal_mode

Mode to be amplified.

env_mode

Environment mode used for the dilation.

gain

Power gain \(G \ge 1\).

env_mode: ModeOp
gain: float
signal_mode: ModeOp
amplifier_bogoliubov_xy(*, gain: float) tuple[ndarray, ndarray]

Return the Bogoliubov matrices for a two-mode amplifier dilation.

The ordered mode basis is assumed to be (signal_mode, env_mode). For gain \(G \ge 1\), the quantum-limited amplifier is realized by

\[ \begin{align}\begin{aligned}a_{\mathrm{sig}} \mapsto \sqrt{G}\, a_{\mathrm{sig}} + \sqrt{G-1}\, a_{\mathrm{env}}^\dagger,\\a_{\mathrm{env}} \mapsto \sqrt{G-1}\, a_{\mathrm{sig}}^\dagger + \sqrt{G}\, a_{\mathrm{env}}.\end{aligned}\end{align} \]

In the primitive convention

\[a_k^\dagger \mapsto \sum_j X_{j k} a_j^\dagger + Y_{j k} a_j,\]

this corresponds to diagonal X and off-diagonal Y.

Parameters:

gain (float) – Power gain \(G\).

Returns:

The pair (X, Y), each of shape (2, 2).

Return type:

tuple[ndarray, ndarray]

amplifier_densitypoly(rho: DensityPoly, *, signal_mode: ModeOp, env_mode: ModeOp, gain: float, normalize_trace: bool = True, eps: float = 1e-14, check_ccr: bool = False, atol: float = 1e-10) DensityPoly

Apply a single-mode quantum-limited amplifier channel.

Channel definition

The phase-insensitive amplifier with gain \(G \ge 1\) can be realized by a two-mode-squeezing Bogoliubov transformation acting on the signal mode and an environment mode prepared in vacuum, followed by tracing out the environment.

type rho:

DensityPoly

param rho:

Input symbolic density polynomial.

type signal_mode:

ModeOp

param signal_mode:

Signal mode to be amplified.

type env_mode:

ModeOp

param env_mode:

Environment mode used for the dilation and traced out at the end.

This should be a fresh mode not otherwise part of the retained system.

type gain:

float

param gain:

Power gain \(G \ge 1\).

type normalize_trace:

bool

param normalize_trace:

If True, trace-normalize the reduced output density.

type eps:

float

param eps:

Threshold used by trace normalization when enabled.

type check_ccr:

bool

param check_ccr:

If True, validate the Bogoliubov CCR constraints.

type atol:

float

param atol:

Tolerance for optional CCR validation.

returns:

Reduced density polynomial after applying the amplifier dilation and tracing out the environment.

rtype:

DensityPoly

Notes

This implementation is the active-Gaussian analogue of the pure-loss dilation model. The environment is treated as vacuum implicitly in the same sense as the other channel primitives.

Parameters:
  • rho (DensityPoly)

  • signal_mode (ModeOp)

  • env_mode (ModeOp)

  • gain (float)

  • normalize_trace (bool)

  • eps (float)

  • check_ccr (bool)

  • atol (float)

Return type:

DensityPoly

amplifier_densitypoly_by_mode(rho: DensityPoly, *, gain_by_mode: Mapping[ModeOp, float], env_by_signal_mode: Mapping[ModeOp, ModeOp], normalize_trace: bool = True, eps: float = 1e-14, check_ccr: bool = False, atol: float = 1e-10) DensityPoly

Apply amplification to several modes specified by mappings.

Parameters:
  • rho (DensityPoly) – Input density polynomial.

  • gain_by_mode (Mapping[ModeOp, float]) – Mapping from signal mode to amplifier gain.

  • env_by_signal_mode (Mapping[ModeOp, ModeOp]) – Mapping from signal mode to corresponding environment mode.

  • normalize_trace (bool) – If True, trace-normalize after each application.

  • eps (float) – Threshold used by trace normalization when enabled.

  • check_ccr (bool) – If True, validate the Bogoliubov CCR constraints for each step.

  • atol (float) – Tolerance for optional CCR validation.

Returns:

Output density polynomial.

Return type:

DensityPoly

Raises:

KeyError – If an environment mode is missing for a signal mode.

amplifier_densitypoly_many(rho: DensityPoly, *, specs: Iterable[AmplifierSpec], normalize_trace: bool = True, eps: float = 1e-14, check_ccr: bool = False, atol: float = 1e-10) DensityPoly

Apply multiple amplifier channels sequentially.

Parameters:
  • rho (DensityPoly) – Input density polynomial.

  • specs (Iterable[AmplifierSpec]) – Iterable of amplifier specifications.

  • normalize_trace (bool) – If True, trace-normalize after each application.

  • eps (float) – Threshold used by trace normalization when enabled.

  • check_ccr (bool) – If True, validate the Bogoliubov CCR constraints for each step.

  • atol (float) – Tolerance for optional CCR validation.

Returns:

Output density polynomial after all channel applications.

Return type:

DensityPoly