Source code for quchip.extensions.envelopes

"""Reference scheduled envelope authored through the declarative surface."""

from __future__ import annotations

from typing import Any

from quchip.declarative import Envelope, Scalar, parameter, qnp
from quchip.declarative.parameters import UNBOUND


[docs] class CosineEnvelope(Envelope): r"""Raised-cosine pulse with zero endpoints and peak amplitude at mid-pulse. .. math:: E(t) = \frac{A}{2}\left[1-\cos(2\pi t/\tau)\right] """ duration: Scalar = parameter(default=UNBOUND, positive=True, unit="ns") amplitude: Scalar = parameter(default=1.0)
[docs] def value(self, t: Any) -> Any: return qnp.asarray( 0.5 * self.amplitude * (1.0 - qnp.cos(2.0 * qnp.pi * t / self.duration)), dtype=complex, )