import builtins
import collections.abc
import numpy
import numpy.typing
from quil import _quil
from quil._quil import expression
from quil._quil import instructions
import typing
from . import sampling
import sys
if sys.version_info >= (3, 13):
_Real = typing.TypeVar("_Real")
_Complex = typing.TypeVar("_Complex", default = _Real)
__T = typing.TypeVar("__T")
_OtherReal = typing.TypeVar("_OtherReal")
_OtherComplex = typing.TypeVar("_OtherComplex", default = _OtherReal)
else:
_Real = typing.TypeVar("_Real")
_Complex = typing.TypeVar("_Complex")
__T = typing.TypeVar("__T")
_OtherReal = typing.TypeVar("_OtherReal")
_OtherComplex = typing.TypeVar("_OtherComplex")
__all__ = [
"BoxcarKernel",
"BuiltinWaveform",
"CommonBuiltinParameters",
"DragGaussian",
"ErfSquare",
"ExplicitCommonBuiltinParameters",
"Flat",
"Gaussian",
"HermiteGaussian",
"RaisedCosine",
"Waveform",
"WaveformError",
"WaveformInvocationError",
"WaveformParameterError",
"apply_phase_and_detuning",
"sampling",
]
class BoxcarKernel:
def __eq__(self, other: builtins.object) -> builtins.bool: ...
def __new__(cls) -> BoxcarKernel: ...
def __repr__(self) -> builtins.str: ...
def iq_values_at_sample_rate(self, common: CommonBuiltinParameters[builtins.float, __T], sample_rate: builtins.float) -> sampling.IqSamples: ...
class BuiltinWaveform(typing.Generic[_Real, _Complex]):
def __eq__(self, other: builtins.object) -> builtins.bool: ...
def __new__(cls, waveform: Flat[_Real, _Complex] | Gaussian[_Real, _Complex] | DragGaussian[_Real, _Complex] | ErfSquare[_Real, _Complex] | HermiteGaussian[_Real, _Complex] | RaisedCosine[_Real, _Complex] | BoxcarKernel) -> BuiltinWaveform[_Real, _Complex]: ...
def __repr__(self) -> builtins.str: ...
def as_inner(self) -> Flat[_Real, _Complex] | Gaussian[_Real, _Complex] | DragGaussian[_Real, _Complex] | ErfSquare[_Real, _Complex] | HermiteGaussian[_Real, _Complex] | RaisedCosine[_Real, _Complex] | BoxcarKernel: ...
def evaluate(self, real: collections.abc.Callable[[_Real], _OtherReal], complex: collections.abc.Callable[[_Complex], _OtherComplex]) -> BuiltinWaveform[_OtherReal, _OtherComplex]: ...
def iq_values_at_sample_rate(self: BuiltinWaveform[builtins.float, builtins.complex], common: CommonBuiltinParameters[builtins.float, __T], sample_rate: builtins.float) -> sampling.IqSamples: ...
class CommonBuiltinParameters(typing.Generic[_Real, _Complex]):
@property
def detuning(self) -> typing.Optional[_Real]: ...
@detuning.setter
def detuning(self, value: typing.Optional[_Real]) -> None: ...
@property
def duration(self) -> builtins.float: ...
@duration.setter
def duration(self, value: builtins.float) -> None: ...
@property
def phase(self) -> typing.Optional[_Real]: ...
@phase.setter
def phase(self, value: typing.Optional[_Real]) -> None: ...
@property
def scale(self) -> typing.Optional[_Real]: ...
@scale.setter
def scale(self, value: typing.Optional[_Real]) -> None: ...
def __eq__(self, other: builtins.object) -> builtins.bool: ...
def __getnewargs_ex__(self) -> tuple: ...
def __new__(cls, *, duration: builtins.float, scale: typing.Optional[_Real] = None, phase: typing.Optional[_Real] = None, detuning: typing.Optional[_Real] = None) -> CommonBuiltinParameters[_Real, _Complex]: ...
def __repr__(self) -> builtins.str: ...
def evaluate(self, real: collections.abc.Callable[[_Real], _OtherReal], complex: collections.abc.Callable[[_Complex], _OtherComplex]) -> CommonBuiltinParameters[_OtherReal, _OtherComplex]: ...
def resolve_with_sample_rate(self: CommonBuiltinParameters[builtins.float, __T], sample_rate: builtins.float) -> ExplicitCommonBuiltinParameters: ...
class DragGaussian(typing.Generic[_Real, _Complex]):
@property
def alpha(self) -> _Real: ...
@alpha.setter
def alpha(self, value: _Real) -> None: ...
@property
def anh(self) -> _Real: ...
@anh.setter
def anh(self, value: _Real) -> None: ...
@property
def fwhm(self) -> _Real: ...
@fwhm.setter
def fwhm(self, value: _Real) -> None: ...
@property
def t0(self) -> _Real: ...
@t0.setter
def t0(self, value: _Real) -> None: ...
def __eq__(self, other: builtins.object) -> builtins.bool: ...
def __getnewargs_ex__(self) -> tuple: ...
def __new__(cls, *, fwhm: _Real, t0: _Real, anh: _Real, alpha: _Real) -> DragGaussian[_Real, _Complex]: ...
def __repr__(self) -> builtins.str: ...
def evaluate(self, real: collections.abc.Callable[[_Real], _OtherReal], complex: collections.abc.Callable[[_Complex], _OtherComplex]) -> DragGaussian[_OtherReal, _OtherComplex]: ...
def iq_values_at_sample_rate(self: DragGaussian[builtins.float, builtins.complex], common: CommonBuiltinParameters[builtins.float, __T], sample_rate: builtins.float) -> sampling.IqSamples: ...
class ErfSquare(typing.Generic[_Real, _Complex]):
@property
def pad_left(self) -> builtins.float: ...
@pad_left.setter
def pad_left(self, value: builtins.float) -> None: ...
@property
def pad_right(self) -> builtins.float: ...
@pad_right.setter
def pad_right(self, value: builtins.float) -> None: ...
@property
def risetime(self) -> _Real: ...
@risetime.setter
def risetime(self, value: _Real) -> None: ...
def __eq__(self, other: builtins.object) -> builtins.bool: ...
def __getnewargs_ex__(self) -> tuple: ...
def __new__(cls, *, risetime: _Real, pad_left: builtins.float, pad_right: builtins.float) -> ErfSquare[_Real, _Complex]: ...
def __repr__(self) -> builtins.str: ...
def evaluate(self, real: collections.abc.Callable[[_Real], _OtherReal], complex: collections.abc.Callable[[_Complex], _OtherComplex]) -> ErfSquare[_OtherReal, _OtherComplex]: ...
def iq_values_at_sample_rate(self: ErfSquare[builtins.float, builtins.complex], common: CommonBuiltinParameters[builtins.float, __T], sample_rate: builtins.float) -> sampling.IqSamples: ...
class ExplicitCommonBuiltinParameters:
@property
def detuning(self) -> builtins.float:
@detuning.setter
def detuning(self, value: builtins.float) -> None:
@property
def phase(self) -> builtins.float:
@phase.setter
def phase(self, value: builtins.float) -> None:
@property
def sample_count(self) -> builtins.int:
@sample_count.setter
def sample_count(self, value: builtins.int) -> None:
@property
def scale(self) -> builtins.float:
@scale.setter
def scale(self, value: builtins.float) -> None:
def __eq__(self, other: builtins.object, /) -> builtins.bool: ...
def __getnewargs_ex__(self) -> tuple: ...
def __new__(cls, *, sample_count: builtins.int, scale: builtins.float, phase: builtins.float, detuning: builtins.float) -> ExplicitCommonBuiltinParameters: ...
def __repr__(self) -> builtins.str: ...
class Flat(typing.Generic[_Real, _Complex]):
@property
def iq(self) -> _Complex: ...
@iq.setter
def iq(self, value: _Complex) -> None: ...
def __eq__(self, other: builtins.object) -> builtins.bool: ...
def __getnewargs_ex__(self) -> tuple: ...
def __new__(cls, *, iq: _Complex) -> Flat[_Real, _Complex]: ...
def __repr__(self) -> builtins.str: ...
def evaluate(self, real: collections.abc.Callable[[_Real], _OtherReal], complex: collections.abc.Callable[[_Complex], _OtherComplex]) -> Flat[_OtherReal, _OtherComplex]: ...
def iq_values_at_sample_rate(self: Flat[builtins.float, builtins.complex], common: CommonBuiltinParameters[builtins.float, __T], sample_rate: builtins.float) -> sampling.IqSamples: ...
class Gaussian(typing.Generic[_Real, _Complex]):
@property
def fwhm(self) -> _Real: ...
@fwhm.setter
def fwhm(self, value: _Real) -> None: ...
@property
def t0(self) -> _Real: ...
@t0.setter
def t0(self, value: _Real) -> None: ...
def __eq__(self, other: builtins.object) -> builtins.bool: ...
def __getnewargs_ex__(self) -> tuple: ...
def __new__(cls, *, fwhm: _Real, t0: _Real) -> Gaussian[_Real, _Complex]: ...
def __repr__(self) -> builtins.str: ...
def evaluate(self, real: collections.abc.Callable[[_Real], _OtherReal], complex: collections.abc.Callable[[_Complex], _OtherComplex]) -> Gaussian[_OtherReal, _OtherComplex]: ...
def iq_values_at_sample_rate(self: Gaussian[builtins.float, builtins.complex], common: CommonBuiltinParameters[builtins.float, __T], sample_rate: builtins.float) -> sampling.IqSamples: ...
class HermiteGaussian(typing.Generic[_Real, _Complex]):
@property
def alpha(self) -> _Real: ...
@alpha.setter
def alpha(self, value: _Real) -> None: ...
@property
def anh(self) -> _Real: ...
@anh.setter
def anh(self, value: _Real) -> None: ...
@property
def fwhm(self) -> _Real: ...
@fwhm.setter
def fwhm(self, value: _Real) -> None: ...
@property
def second_order_hrm_coeff(self) -> _Real: ...
@second_order_hrm_coeff.setter
def second_order_hrm_coeff(self, value: _Real) -> None: ...
@property
def t0(self) -> _Real: ...
@t0.setter
def t0(self, value: _Real) -> None: ...
def __eq__(self, other: builtins.object) -> builtins.bool: ...
def __getnewargs_ex__(self) -> tuple: ...
def __new__(cls, *, fwhm: _Real, t0: _Real, anh: _Real, alpha: _Real, second_order_hrm_coeff: _Real) -> HermiteGaussian[_Real, _Complex]: ...
def __repr__(self) -> builtins.str: ...
def evaluate(self, real: collections.abc.Callable[[_Real], _OtherReal], complex: collections.abc.Callable[[_Complex], _OtherComplex]) -> HermiteGaussian[_OtherReal, _OtherComplex]: ...
def iq_values_at_sample_rate(self: HermiteGaussian[builtins.float, builtins.complex], common: CommonBuiltinParameters[builtins.float, __T], sample_rate: builtins.float) -> sampling.IqSamples: ...
class RaisedCosine(typing.Generic[_Real, _Complex]):
@property
def pad_left(self) -> builtins.float: ...
@pad_left.setter
def pad_left(self, value: builtins.float) -> None: ...
@property
def pad_right(self) -> builtins.float: ...
@pad_right.setter
def pad_right(self, value: builtins.float) -> None: ...
@property
def rolloff(self) -> _Real: ...
@rolloff.setter
def rolloff(self, value: _Real) -> None: ...
def __eq__(self, other: builtins.object) -> builtins.bool: ...
def __getnewargs_ex__(self) -> tuple: ...
def __new__(cls, *, rolloff: _Real, pad_left: builtins.float, pad_right: builtins.float) -> RaisedCosine[_Real, _Complex]: ...
def __repr__(self) -> builtins.str: ...
def evaluate(self, real: collections.abc.Callable[[_Real], _OtherReal], complex: collections.abc.Callable[[_Complex], _OtherComplex]) -> RaisedCosine[_OtherReal, _OtherComplex]: ...
def iq_values_at_sample_rate(self: RaisedCosine[builtins.float, builtins.complex], common: CommonBuiltinParameters[builtins.float, __T], sample_rate: builtins.float) -> sampling.IqSamples: ...
class Waveform(typing.Generic[_Real, _Complex]):
def __eq__(self, other: builtins.object) -> builtins.bool: ...
def __repr__(self) -> builtins.str: ...
def as_builtin(self) -> typing.Optional[builtins.tuple[BuiltinWaveform[_Real, _Complex], CommonBuiltinParameters[_Real, _Complex]]]: ...
def as_custom(self) -> typing.Optional[builtins.tuple[builtins.str, builtins.dict[builtins.str, _Complex]]]: ...
@staticmethod
def boxcar_kernel(*, duration: builtins.float, scale: typing.Optional[_Real] = None, phase: typing.Optional[_Real] = None, detuning: typing.Optional[_Real] = None) -> Waveform[_Real, _Complex]: ...
@staticmethod
def builtin(waveform: BuiltinWaveform[_Real, _Complex], common_parameters: CommonBuiltinParameters[_Real, _Complex]) -> Waveform[_Real, _Complex]: ...
@staticmethod
def custom(name: builtins.str, parameters: builtins.dict[builtins.str, _Complex]) -> Waveform: ...
@staticmethod
def drag_gaussian(*, duration: builtins.float, scale: typing.Optional[_Real] = None, phase: typing.Optional[_Real] = None, detuning: typing.Optional[_Real] = None, fwhm: _Real, t0: _Real, anh: _Real, alpha: _Real) -> Waveform[_Real, _Complex]: ...
@staticmethod
def erf_square(*, duration: builtins.float, scale: typing.Optional[_Real] = None, phase: typing.Optional[_Real] = None, detuning: typing.Optional[_Real] = None, risetime: _Real, pad_left: builtins.float, pad_right: builtins.float) -> Waveform[_Real, _Complex]: ...
def evaluate(self, real: collections.abc.Callable[[_Real], _OtherReal], complex: collections.abc.Callable[[_Complex], _OtherComplex]) -> Waveform[_OtherReal, _OtherComplex]: ...
@staticmethod
def flat(*, duration: builtins.float, scale: typing.Optional[_Real] = None, phase: typing.Optional[_Real] = None, detuning: typing.Optional[_Real] = None, iq: _Complex) -> Waveform[_Real, _Complex]: ...
@staticmethod
def from_quil(invocation: instructions.WaveformInvocation) -> Waveform[expression.Expression, expression.Expression]: ...
@staticmethod
def gaussian(*, duration: builtins.float, scale: typing.Optional[_Real] = None, phase: typing.Optional[_Real] = None, detuning: typing.Optional[_Real] = None, fwhm: _Real, t0: _Real) -> Waveform[_Real, _Complex]: ...
@staticmethod
def hermite_gaussian(*, duration: builtins.float, scale: typing.Optional[_Real] = None, phase: typing.Optional[_Real] = None, detuning: typing.Optional[_Real] = None, fwhm: _Real, t0: _Real, anh: _Real, alpha: _Real, second_order_hrm_coeff: _Real) -> Waveform[_Real, _Complex]: ...
@staticmethod
def raised_cosine(*, duration: builtins.float, scale: typing.Optional[_Real] = None, phase: typing.Optional[_Real] = None, detuning: typing.Optional[_Real] = None, rolloff: _Real, pad_left: builtins.float, pad_right: builtins.float) -> Waveform[_Real, _Complex]: ...
class WaveformError(_quil.QuilError):
...
class WaveformInvocationError(WaveformError):
...
class WaveformParameterError(WaveformError):
...
def apply_phase_and_detuning(iq_values: numpy.typing.NDArray[numpy.complex128], phase: builtins.float, detuning: builtins.float, sample_rate: builtins.float) -> None: