symop.modes.transfer.gaussian.base

Base classes for Gaussian-closed spectral transfer functions.

This module defines implementation-oriented base classes for transfer functions that admit a closed-form analytic action on Gaussian-closed mode envelopes.

The main class exported here is GaussianClosedTransferBase, which extends TransferBase with support for analytic application to the Gaussian-closed envelope family.

Design

The Gaussian-closed transfer layer captures transfers \(H(\omega)\) for which filtering can be performed without numerical FFT-based sampling. Such transfers preserve a closed analytic description of the envelope and return the transmitted power separately.

Two broad patterns occur in this layer:

  • transfers represented by a Gaussian expansion, delegated through GaussianTransferExpansion

  • transfers that act by directly transforming Gaussian envelope parameters

The base class in this module provides the shared analytic application entry point for the expansion-based case.

Notes

This module is intentionally focused on the Gaussian-closed family only. Transfers that do not admit such a representation should inherit from the generic TransferBase instead and use the numerical filtering path.

Classes

GaussianClosedTransferBase(*args, **kwargs)

Base class for transfers with Gaussian-closed analytic action.

class GaussianClosedTransferBase(*args, **kwargs)

Bases: TransferBase, SupportsGaussianClosedTransfer

Base class for transfers with Gaussian-closed analytic action.

Subclasses of this base represent transfer functions \(H(\omega)\) that can be applied analytically to envelopes in the Gaussian-closed family.

The only method subclasses must implement is _as_expansion(), which converts the transfer into an internal Gaussian expansion representation. The generic apply_to_gaussian() implementation then delegates the actual filtering to that expansion.

_abc_impl = <_abc._abc_data object>
abstractmethod _as_expansion() GaussianTransferExpansion

Convert the transfer into a Gaussian expansion.

Returns:

Internal expansion object representing the same transfer in a form suitable for analytic Gaussian filtering.

Return type:

GaussianTransferExpansion

_is_protocol = False
apply_to_gaussian(env: GaussianClosedEnvelope) tuple[GaussianClosedEnvelope, float]

Apply the transfer analytically to a Gaussian-closed envelope.

Parameters:

env (GaussianClosedEnvelope) – Input envelope belonging to the Gaussian-closed family.

Returns:

Pair (env_out, eta) where env_out is the filtered Gaussian-closed envelope and eta is the transmitted power.

Return type:

tuple[GaussianClosedEnvelope, float]

Notes

This method delegates the actual computation to the Gaussian transfer expansion returned by _as_expansion().

The output envelope is typically another Gaussian-closed descriptor, often a Gaussian mixture if the transfer broadens the representation beyond a single Gaussian atom.