Ranges
Range types represent ordered collections of values. They are used as output registers, loop sources, and post-processing inputs.
For a summary of the range type hierarchy, see Abstract Types.
Numeric Ranges
LiteralNumericRange
Defines a range of literal numeric values.
Inherits from: NumericRangeExpression
Fields
| name | type | description |
|---|---|---|
| Values | NumericExpression[] | The values in the range. |
NumericRangeRegister
Defines a named register that accumulates a range of numeric values during job execution.
Inherits from: NumericRangeExpression
SteppedRange
Defines a linearly increasing numeric range in terms of a start, step, and stop value.
Inherits from: NumericRangeExpression
Fields
| name | type | description |
|---|---|---|
| InclusiveStart | NumericExpression | First value of the range. |
| Step | NumericExpression | Increment between range values. |
| ExclusiveEnd | NumericExpression | The range ends when a value would otherwise reach or exceed this number. |
NumericAverageOver
Defines an averaging operation on a numeric range.
Inherits from: NumericRangeExpression
This expression is valid as an input for Job.NumericRangeOutputs. The user specifies which axes to average over by first reshaping the input range with BufferDimensions and then selecting the averaging axes with AveragingAxis.
Fields
| name | type | description |
|---|---|---|
| Name | string | The name of the resulting register. |
| Range | NumericRangeExpression | The range to average over. |
| BufferDimensions | NumericLiteral[] | Defines the number of axes and their sizes. |
| AveragingAxis | NumericLiteral | Defines which axis index to average over. |
NumericRangeElement
Defines an indexing operation on a numeric range, producing a scalar numeric value.
Inherits from: NumericExpression
Fields
| name | type | description |
|---|---|---|
| Source | NumericRangeExpression | The range to index. |
| Index | NumericExpression | Index value; must be a non-negative integer. |
Complex Ranges
LiteralComplexRange
Defines a range of literal complex values.
Inherits from: ComplexRangeExpression
Fields
| name | type | description |
|---|---|---|
| Values | Complex[] | The values in the range. |
ComplexRangeRegister
Defines a named register that accumulates a range of complex values during job execution.
Inherits from: ComplexRangeExpression
AcquisitionComplexRangeResult
Defines the register holding the raw results of an ADC acquisition.
Inherits from: ComplexRangeExpression
Can be used as input for post-processing, e.g. demodulation via Demodulation or ComplexDotProduct.
Demodulation
Defines a demodulation operation on an ADC acquisition with respect to a specified frame.
Inherits from: ComplexRangeExpression
The demodulation frequency and phase are taken from the specified frame.
Fields
| name | type | description |
|---|---|---|
| Trace | AcquisitionComplexRangeResult | The time trace to demodulate. |
| Frame | Frame | The frame to demodulate the trace with respect to. |
ComplexAverageOver
Defines an averaging operation on a complex range.
Inherits from: ComplexRangeExpression
This expression is valid as an input for Job.ComplexRangeOutputs. The user specifies which axes to average over by first reshaping the input range with BufferDimensions and then selecting the averaging axes with AveragingAxis.
Fields
| name | type | description |
|---|---|---|
| Name | string | The name of the resulting register. |
| Range | ComplexRangeExpression | The range to average over. |
| BufferDimensions | NumericLiteral[] | Defines the number of axes and their sizes. |
| AveragingAxis | NumericLiteral | Defines which axis index to average over. |
ComplexRangeElement
Defines an indexing operation on a complex range, producing a scalar complex value.
Inherits from: ComplexExpression
Fields
| name | type | description |
|---|---|---|
| Source | ComplexRangeExpression | The range to index. |
| Index | NumericExpression | Index value; must be a non-negative integer. |
Boolean Ranges
BooleanRangeRegister
Defines a named register that accumulates a range of boolean values during job execution.
Inherits from: BooleanRangeExpression
BooleanRangeElement
Defines an indexing operation on a boolean range, producing a scalar boolean value.
Inherits from: BooleanExpression
Fields
| name | type | description |
|---|---|---|
| Source | BooleanRangeExpression | The range to index. |
| Index | NumericExpression | Index value; must be a non-negative integer. |
Loop Constructs
ForEachNumeric
Defines a for-loop that iterates a block body over a numeric range.
Inherits from: Instruction
The Relationship field determines how the block of each iteration is aligned with the next:
EndToStartalignment produces a serial loop where each iteration begins after the previous completesStartToStartalignment produces a parallel loop where iterations can run simultaneously
Fields
| name | type | description |
|---|---|---|
| Source | NumericRangeExpression | The numeric range to iterate over. |
| Relationship | InstructionRelationship | The alignment relationship between consecutive iterations. |
| Body | NumericToBlockFunction | The body of the loop. |