Skip to content

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:

  • EndToStart alignment produces a serial loop where each iteration begins after the previous completes
  • StartToStart alignment 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.