Skip to main content
IBM Quantum Platform

SliceRegisterNode

class samplomatic.samplex.nodes.SliceRegisterNode(input_type: VirtualType, output_type: VirtualType, input_register_name: str, output_register_name: str, slice_idxs: slice | Sequence[int], force_copy: bool = False)

GitHub

Bases: EvaluationNode

A node to slice a register.

Note

Slicing of a register can alternatively be done using a CombineRegistersNode, providing operands of length 1. However, using SliceRegisterNode is recommended because its evaluate() method is optimized for slicing a single register.

Parameters

  • input_type – The type of the input register.
  • output_type – The type of the output register.
  • input_register_name – The name of the input register.
  • output_register_name – The name of the output register.
  • slice_idxs – The indices used to slice the register.
  • force_copy – Whether or not to force output register to be a copy instead of a view of the input register.

Raises

SamplexConstructionError – If slice_idxs has the wrong shape.

Attributes Summary

Column 1
Column 2
outgoing_register_typeThe virtual gate type of outgoing registers.

Methods Summary

Column 1
Column 2
evaluate(registers, *_)Evaluate this node.
get_style()Return the style of this node when plotted.
instantiates()Return a manifest of new virtual registers that this node instantiates.
reads_from()Return a manifest of which virtual register values this node needs to read from.
validate_and_update(register_descriptions)Validate provided register descriptions are compatible, update with changes.

Attributes Documentation

outgoing_register_type

Methods Documentation

evaluate

evaluate(registers, *_)

GitHub

Evaluate this node.

Parameters

  • registers – At least those registers needed by this node to read from or write to.
  • parameter_values – Parameter values to use during evaluation.

Raises

SamplexRuntimeError – If the number of parameter values received does not equal the number required by this node.

get_style

get_style()

GitHub

Return the style of this node when plotted.

instantiates

instantiates()

GitHub

Return a manifest of new virtual registers that this node instantiates.

Note
  • To change the type or size of a register, both instantiate and remove it.
  • Do not specify reads_from() or writes_to() for an instantiated register, these powers are implicit.

reads_from

reads_from()

GitHub

Return a manifest of which virtual register values this node needs to read from.

validate_and_update

validate_and_update(register_descriptions)

GitHub

Validate provided register descriptions are compatible, update with changes.

This method can be used by a samplex to determine when a node execution order has well-defined dependencies before sampling begins.

Parameters

register_descriptions – A map from existing register names to their size and type.

Was this page helpful?
Report a bug, typo, or request content on GitHub.