Waveform
Add
Bases: Waveform
flowchart TD
bloqade.analog.ir.control.waveform.Add[Add]
bloqade.analog.ir.control.waveform.Waveform[Waveform]
bloqade.analog.ir.control.traits.hash.HashTrait[HashTrait]
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait[CanonicalizeTrait]
bloqade.analog.ir.control.waveform.Waveform --> bloqade.analog.ir.control.waveform.Add
bloqade.analog.ir.control.traits.hash.HashTrait --> bloqade.analog.ir.control.waveform.Waveform
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait --> bloqade.analog.ir.control.waveform.Waveform
click bloqade.analog.ir.control.waveform.Add href "" "bloqade.analog.ir.control.waveform.Add"
click bloqade.analog.ir.control.waveform.Waveform href "" "bloqade.analog.ir.control.waveform.Waveform"
click bloqade.analog.ir.control.traits.hash.HashTrait href "" "bloqade.analog.ir.control.traits.hash.HashTrait"
click bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait href "" "bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait"
<add> ::= <waveform> '+' <waveform>
AlignedWaveform
Bases: Waveform
flowchart TD
bloqade.analog.ir.control.waveform.AlignedWaveform[AlignedWaveform]
bloqade.analog.ir.control.waveform.Waveform[Waveform]
bloqade.analog.ir.control.traits.hash.HashTrait[HashTrait]
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait[CanonicalizeTrait]
bloqade.analog.ir.control.waveform.Waveform --> bloqade.analog.ir.control.waveform.AlignedWaveform
bloqade.analog.ir.control.traits.hash.HashTrait --> bloqade.analog.ir.control.waveform.Waveform
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait --> bloqade.analog.ir.control.waveform.Waveform
click bloqade.analog.ir.control.waveform.AlignedWaveform href "" "bloqade.analog.ir.control.waveform.AlignedWaveform"
click bloqade.analog.ir.control.waveform.Waveform href "" "bloqade.analog.ir.control.waveform.Waveform"
click bloqade.analog.ir.control.traits.hash.HashTrait href "" "bloqade.analog.ir.control.traits.hash.HashTrait"
click bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait href "" "bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait"
<padded waveform> ::= <waveform> | <waveform> <alignment> <value>
<alignment> ::= 'left aligned' | 'right aligned'
<value> ::= 'left value' | 'right value' | <scalar expr>
Append
Bases: AppendTrait, Waveform
flowchart TD
bloqade.analog.ir.control.waveform.Append[Append]
bloqade.analog.ir.control.traits.append.AppendTrait[AppendTrait]
bloqade.analog.ir.control.waveform.Waveform[Waveform]
bloqade.analog.ir.control.traits.hash.HashTrait[HashTrait]
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait[CanonicalizeTrait]
bloqade.analog.ir.control.traits.append.AppendTrait --> bloqade.analog.ir.control.waveform.Append
bloqade.analog.ir.control.waveform.Waveform --> bloqade.analog.ir.control.waveform.Append
bloqade.analog.ir.control.traits.hash.HashTrait --> bloqade.analog.ir.control.waveform.Waveform
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait --> bloqade.analog.ir.control.waveform.Waveform
click bloqade.analog.ir.control.waveform.Append href "" "bloqade.analog.ir.control.waveform.Append"
click bloqade.analog.ir.control.traits.append.AppendTrait href "" "bloqade.analog.ir.control.traits.append.AppendTrait"
click bloqade.analog.ir.control.waveform.Waveform href "" "bloqade.analog.ir.control.waveform.Waveform"
click bloqade.analog.ir.control.traits.hash.HashTrait href "" "bloqade.analog.ir.control.traits.hash.HashTrait"
click bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait href "" "bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait"
<append> ::= <waveform>+
Constant
Constant(value: ScalarType, duration: ScalarType)
Bases: Instruction
flowchart TD
bloqade.analog.ir.control.waveform.Constant[Constant]
bloqade.analog.ir.control.waveform.Instruction[Instruction]
bloqade.analog.ir.control.waveform.Waveform[Waveform]
bloqade.analog.ir.control.traits.hash.HashTrait[HashTrait]
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait[CanonicalizeTrait]
bloqade.analog.ir.control.waveform.Instruction --> bloqade.analog.ir.control.waveform.Constant
bloqade.analog.ir.control.waveform.Waveform --> bloqade.analog.ir.control.waveform.Instruction
bloqade.analog.ir.control.traits.hash.HashTrait --> bloqade.analog.ir.control.waveform.Waveform
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait --> bloqade.analog.ir.control.waveform.Waveform
click bloqade.analog.ir.control.waveform.Constant href "" "bloqade.analog.ir.control.waveform.Constant"
click bloqade.analog.ir.control.waveform.Instruction href "" "bloqade.analog.ir.control.waveform.Instruction"
click bloqade.analog.ir.control.waveform.Waveform href "" "bloqade.analog.ir.control.waveform.Waveform"
click bloqade.analog.ir.control.traits.hash.HashTrait href "" "bloqade.analog.ir.control.traits.hash.HashTrait"
click bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait href "" "bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait"
<constant> ::= 'constant' <scalar expr>
f(t=0:duration) = value
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
Scalar
|
the constant value |
required |
duration
|
Scalar
|
the time span of the constant waveform. |
required |
Source code in .venv/lib/python3.12/site-packages/bloqade/analog/ir/control/waveform.py
323 324 325 326 | |
Instruction
Bases: Waveform
flowchart TD
bloqade.analog.ir.control.waveform.Instruction[Instruction]
bloqade.analog.ir.control.waveform.Waveform[Waveform]
bloqade.analog.ir.control.traits.hash.HashTrait[HashTrait]
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait[CanonicalizeTrait]
bloqade.analog.ir.control.waveform.Waveform --> bloqade.analog.ir.control.waveform.Instruction
bloqade.analog.ir.control.traits.hash.HashTrait --> bloqade.analog.ir.control.waveform.Waveform
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait --> bloqade.analog.ir.control.waveform.Waveform
click bloqade.analog.ir.control.waveform.Instruction href "" "bloqade.analog.ir.control.waveform.Instruction"
click bloqade.analog.ir.control.waveform.Waveform href "" "bloqade.analog.ir.control.waveform.Waveform"
click bloqade.analog.ir.control.traits.hash.HashTrait href "" "bloqade.analog.ir.control.traits.hash.HashTrait"
click bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait href "" "bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait"
Instruction node in the IR.
- [
<linear>][bloqade.ir.control.waveform.Linear] - [
<constant>][bloqade.ir.control.waveform.Constant] - [
<poly>][bloqade.ir.control.waveform.Poly] - [
<python-fn>][bloqade.ir.control.waveform.PythonFn]
<instruction> ::= <linear>
| <constant>
| <poly>
| <python-fn>
Linear
Linear(
start: ScalarType,
stop: ScalarType,
duration: ScalarType,
)
Bases: Instruction
flowchart TD
bloqade.analog.ir.control.waveform.Linear[Linear]
bloqade.analog.ir.control.waveform.Instruction[Instruction]
bloqade.analog.ir.control.waveform.Waveform[Waveform]
bloqade.analog.ir.control.traits.hash.HashTrait[HashTrait]
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait[CanonicalizeTrait]
bloqade.analog.ir.control.waveform.Instruction --> bloqade.analog.ir.control.waveform.Linear
bloqade.analog.ir.control.waveform.Waveform --> bloqade.analog.ir.control.waveform.Instruction
bloqade.analog.ir.control.traits.hash.HashTrait --> bloqade.analog.ir.control.waveform.Waveform
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait --> bloqade.analog.ir.control.waveform.Waveform
click bloqade.analog.ir.control.waveform.Linear href "" "bloqade.analog.ir.control.waveform.Linear"
click bloqade.analog.ir.control.waveform.Instruction href "" "bloqade.analog.ir.control.waveform.Instruction"
click bloqade.analog.ir.control.waveform.Waveform href "" "bloqade.analog.ir.control.waveform.Waveform"
click bloqade.analog.ir.control.traits.hash.HashTrait href "" "bloqade.analog.ir.control.traits.hash.HashTrait"
click bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait href "" "bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait"
<linear> ::= 'linear' <scalar expr> <scalar expr>
f(t=0:duration) = start + (stop-start)/duration * t
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
start
|
Scalar
|
start value |
required |
stop
|
Scalar
|
stop value |
required |
duration
|
Scalar
|
the time span of the linear waveform. |
required |
Source code in .venv/lib/python3.12/site-packages/bloqade/analog/ir/control/waveform.py
274 275 276 277 278 | |
Negative
Bases: Waveform
flowchart TD
bloqade.analog.ir.control.waveform.Negative[Negative]
bloqade.analog.ir.control.waveform.Waveform[Waveform]
bloqade.analog.ir.control.traits.hash.HashTrait[HashTrait]
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait[CanonicalizeTrait]
bloqade.analog.ir.control.waveform.Waveform --> bloqade.analog.ir.control.waveform.Negative
bloqade.analog.ir.control.traits.hash.HashTrait --> bloqade.analog.ir.control.waveform.Waveform
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait --> bloqade.analog.ir.control.waveform.Waveform
click bloqade.analog.ir.control.waveform.Negative href "" "bloqade.analog.ir.control.waveform.Negative"
click bloqade.analog.ir.control.waveform.Waveform href "" "bloqade.analog.ir.control.waveform.Waveform"
click bloqade.analog.ir.control.traits.hash.HashTrait href "" "bloqade.analog.ir.control.traits.hash.HashTrait"
click bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait href "" "bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait"
<negative> ::= '-' <waveform>
Poly
Poly(coeffs: Container[ScalarType], duration: ScalarType)
Bases: Instruction
flowchart TD
bloqade.analog.ir.control.waveform.Poly[Poly]
bloqade.analog.ir.control.waveform.Instruction[Instruction]
bloqade.analog.ir.control.waveform.Waveform[Waveform]
bloqade.analog.ir.control.traits.hash.HashTrait[HashTrait]
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait[CanonicalizeTrait]
bloqade.analog.ir.control.waveform.Instruction --> bloqade.analog.ir.control.waveform.Poly
bloqade.analog.ir.control.waveform.Waveform --> bloqade.analog.ir.control.waveform.Instruction
bloqade.analog.ir.control.traits.hash.HashTrait --> bloqade.analog.ir.control.waveform.Waveform
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait --> bloqade.analog.ir.control.waveform.Waveform
click bloqade.analog.ir.control.waveform.Poly href "" "bloqade.analog.ir.control.waveform.Poly"
click bloqade.analog.ir.control.waveform.Instruction href "" "bloqade.analog.ir.control.waveform.Instruction"
click bloqade.analog.ir.control.waveform.Waveform href "" "bloqade.analog.ir.control.waveform.Waveform"
click bloqade.analog.ir.control.traits.hash.HashTrait href "" "bloqade.analog.ir.control.traits.hash.HashTrait"
click bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait href "" "bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait"
<poly> ::= <scalar>+
f(t=0:duration) = c[0] + c[1]t + c[2]t^2 + ... + c[n-1]t^n-1 + c[n]t^n
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
coeffs
|
Tuple[Scalar]
|
the coefficients c[] of the polynomial. |
required |
duration
|
Scalar
|
the time span of the waveform. |
required |
Source code in .venv/lib/python3.12/site-packages/bloqade/analog/ir/control/waveform.py
362 363 364 365 | |
PythonFn
Bases: Instruction
flowchart TD
bloqade.analog.ir.control.waveform.PythonFn[PythonFn]
bloqade.analog.ir.control.waveform.Instruction[Instruction]
bloqade.analog.ir.control.waveform.Waveform[Waveform]
bloqade.analog.ir.control.traits.hash.HashTrait[HashTrait]
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait[CanonicalizeTrait]
bloqade.analog.ir.control.waveform.Instruction --> bloqade.analog.ir.control.waveform.PythonFn
bloqade.analog.ir.control.waveform.Waveform --> bloqade.analog.ir.control.waveform.Instruction
bloqade.analog.ir.control.traits.hash.HashTrait --> bloqade.analog.ir.control.waveform.Waveform
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait --> bloqade.analog.ir.control.waveform.Waveform
click bloqade.analog.ir.control.waveform.PythonFn href "" "bloqade.analog.ir.control.waveform.PythonFn"
click bloqade.analog.ir.control.waveform.Instruction href "" "bloqade.analog.ir.control.waveform.Instruction"
click bloqade.analog.ir.control.waveform.Waveform href "" "bloqade.analog.ir.control.waveform.Waveform"
click bloqade.analog.ir.control.traits.hash.HashTrait href "" "bloqade.analog.ir.control.traits.hash.HashTrait"
click bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait href "" "bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait"
<python-fn> ::= 'python-fn' <python function def> <scalar expr>
Record
Bases: Waveform
flowchart TD
bloqade.analog.ir.control.waveform.Record[Record]
bloqade.analog.ir.control.waveform.Waveform[Waveform]
bloqade.analog.ir.control.traits.hash.HashTrait[HashTrait]
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait[CanonicalizeTrait]
bloqade.analog.ir.control.waveform.Waveform --> bloqade.analog.ir.control.waveform.Record
bloqade.analog.ir.control.traits.hash.HashTrait --> bloqade.analog.ir.control.waveform.Waveform
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait --> bloqade.analog.ir.control.waveform.Waveform
click bloqade.analog.ir.control.waveform.Record href "" "bloqade.analog.ir.control.waveform.Record"
click bloqade.analog.ir.control.waveform.Waveform href "" "bloqade.analog.ir.control.waveform.Waveform"
click bloqade.analog.ir.control.traits.hash.HashTrait href "" "bloqade.analog.ir.control.traits.hash.HashTrait"
click bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait href "" "bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait"
<record> ::= 'record' <waveform> <var> <side>
Sample
Bases: Waveform
flowchart TD
bloqade.analog.ir.control.waveform.Sample[Sample]
bloqade.analog.ir.control.waveform.Waveform[Waveform]
bloqade.analog.ir.control.traits.hash.HashTrait[HashTrait]
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait[CanonicalizeTrait]
bloqade.analog.ir.control.waveform.Waveform --> bloqade.analog.ir.control.waveform.Sample
bloqade.analog.ir.control.traits.hash.HashTrait --> bloqade.analog.ir.control.waveform.Waveform
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait --> bloqade.analog.ir.control.waveform.Waveform
click bloqade.analog.ir.control.waveform.Sample href "" "bloqade.analog.ir.control.waveform.Sample"
click bloqade.analog.ir.control.waveform.Waveform href "" "bloqade.analog.ir.control.waveform.Waveform"
click bloqade.analog.ir.control.traits.hash.HashTrait href "" "bloqade.analog.ir.control.traits.hash.HashTrait"
click bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait href "" "bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait"
<sample> ::= 'sample' <waveform> <interpolation> <scalar>
Scale
Scale(scalar, waveform: Waveform)
Bases: Waveform
flowchart TD
bloqade.analog.ir.control.waveform.Scale[Scale]
bloqade.analog.ir.control.waveform.Waveform[Waveform]
bloqade.analog.ir.control.traits.hash.HashTrait[HashTrait]
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait[CanonicalizeTrait]
bloqade.analog.ir.control.waveform.Waveform --> bloqade.analog.ir.control.waveform.Scale
bloqade.analog.ir.control.traits.hash.HashTrait --> bloqade.analog.ir.control.waveform.Waveform
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait --> bloqade.analog.ir.control.waveform.Waveform
click bloqade.analog.ir.control.waveform.Scale href "" "bloqade.analog.ir.control.waveform.Scale"
click bloqade.analog.ir.control.waveform.Waveform href "" "bloqade.analog.ir.control.waveform.Waveform"
click bloqade.analog.ir.control.traits.hash.HashTrait href "" "bloqade.analog.ir.control.traits.hash.HashTrait"
click bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait href "" "bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait"
<scale> ::= <scalar expr> '*' <waveform>
Source code in .venv/lib/python3.12/site-packages/bloqade/analog/ir/control/waveform.py
754 755 756 | |
Slice
Bases: SliceTrait, Waveform
flowchart TD
bloqade.analog.ir.control.waveform.Slice[Slice]
bloqade.analog.ir.control.traits.slice.SliceTrait[SliceTrait]
bloqade.analog.ir.control.waveform.Waveform[Waveform]
bloqade.analog.ir.control.traits.hash.HashTrait[HashTrait]
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait[CanonicalizeTrait]
bloqade.analog.ir.control.traits.slice.SliceTrait --> bloqade.analog.ir.control.waveform.Slice
bloqade.analog.ir.control.waveform.Waveform --> bloqade.analog.ir.control.waveform.Slice
bloqade.analog.ir.control.traits.hash.HashTrait --> bloqade.analog.ir.control.waveform.Waveform
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait --> bloqade.analog.ir.control.waveform.Waveform
click bloqade.analog.ir.control.waveform.Slice href "" "bloqade.analog.ir.control.waveform.Slice"
click bloqade.analog.ir.control.traits.slice.SliceTrait href "" "bloqade.analog.ir.control.traits.slice.SliceTrait"
click bloqade.analog.ir.control.waveform.Waveform href "" "bloqade.analog.ir.control.waveform.Waveform"
click bloqade.analog.ir.control.traits.hash.HashTrait href "" "bloqade.analog.ir.control.traits.hash.HashTrait"
click bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait href "" "bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait"
<slice> ::= <waveform> <scalar.interval>
Smooth
Smooth(radius, kernel, waveform)
Bases: Waveform
flowchart TD
bloqade.analog.ir.control.waveform.Smooth[Smooth]
bloqade.analog.ir.control.waveform.Waveform[Waveform]
bloqade.analog.ir.control.traits.hash.HashTrait[HashTrait]
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait[CanonicalizeTrait]
bloqade.analog.ir.control.waveform.Waveform --> bloqade.analog.ir.control.waveform.Smooth
bloqade.analog.ir.control.traits.hash.HashTrait --> bloqade.analog.ir.control.waveform.Waveform
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait --> bloqade.analog.ir.control.waveform.Waveform
click bloqade.analog.ir.control.waveform.Smooth href "" "bloqade.analog.ir.control.waveform.Smooth"
click bloqade.analog.ir.control.waveform.Waveform href "" "bloqade.analog.ir.control.waveform.Waveform"
click bloqade.analog.ir.control.traits.hash.HashTrait href "" "bloqade.analog.ir.control.traits.hash.HashTrait"
click bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait href "" "bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait"
<smooth> ::= 'smooth' <kernel> <waveform>
Source code in .venv/lib/python3.12/site-packages/bloqade/analog/ir/control/waveform.py
584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 | |
Waveform
Bases: HashTrait, CanonicalizeTrait
flowchart TD
bloqade.analog.ir.control.waveform.Waveform[Waveform]
bloqade.analog.ir.control.traits.hash.HashTrait[HashTrait]
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait[CanonicalizeTrait]
bloqade.analog.ir.control.traits.hash.HashTrait --> bloqade.analog.ir.control.waveform.Waveform
bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait --> bloqade.analog.ir.control.waveform.Waveform
click bloqade.analog.ir.control.waveform.Waveform href "" "bloqade.analog.ir.control.waveform.Waveform"
click bloqade.analog.ir.control.traits.hash.HashTrait href "" "bloqade.analog.ir.control.traits.hash.HashTrait"
click bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait href "" "bloqade.analog.ir.control.traits.canonicalize.CanonicalizeTrait"
Waveform node in the IR.
- [
<instruction>][bloqade.ir.control.waveform.Instruction] - [
<smooth>][bloqade.ir.control.waveform.Smooth] - [
<slice>][bloqade.ir.control.waveform.Slice] - [
<apppend>][bloqade.ir.control.waveform.Append] - [
<negative>][bloqade.ir.control.waveform.Negative] - [
<scale>][bloqade.ir.control.waveform.Scale] - [
<add>][bloqade.ir.control.waveform.Add] - [
<record>][bloqade.ir.control.waveform.Record] - [
<sample>][bloqade.ir.control.waveform.Sample]
<waveform> ::= <instruction>
| <smooth>
| <slice>
| <append>
| <negative>
| <scale>
| <add>
| <record>
| <sample>
figure
figure(**assignments)
get figure of the plotting the waveform.
Returns:
| Name | Type | Description |
|---|---|---|
figure |
a bokeh figure |
Source code in .venv/lib/python3.12/site-packages/bloqade/analog/ir/control/waveform.py
96 97 98 99 100 101 102 | |