Skip to content

bloqade.analog.builder.pragmas.BatchAssignable

← Module overview

classBatchAssignablesource

bloqade.analog.builder.pragmas.BatchAssignable

class BatchAssignable

methodbatch_assignsource

bloqade.analog.builder.pragmas.BatchAssignable.batch_assign

Signature
def batch_assign(__batch_params: List[Dict[str, ParamType]] = [], **assignments: List[ParamType] = {}) -> Union[BatchAssign, ListAssign]

Assign multiple values to variables for creating a parameter sweep.

>>> reg = start.add_position([(0,0), (0, "atom_distance")])
>>> prog = reg.rydberg.rabi.amplitude.uniform.constant("value", 5.0)
>>> var_assigned_prog = prog.batch_assign(value=[1.0, 2.0, 3.0],
atom_distance=[1.0, 2.0, 3.0])
  • Next steps:
    • ...batch_assign(assignments).bloqade: select the bloqade local emulator backend
    • ...batch_assign(assignments).braket: select braket local emulator or QuEra hardware
    • ...batch_assign(assignments).device(specifier_string): select backend by specifying a string
    • ...batch_assign(assignments).parallelize(cluster_spacing): parallelize the program register
    • ...batch_assign(assignments).args([previously_defined_vars]): defer value assignment to runtime

Parameters

NameTypeDefaultDescription
__batch_paramsList[Dict[str, ParamType]][]List of dictionaries where each dictionary contains variable assignments for one set of parameters.
**assignmentsList[ParamType]{}

Returns

Union[BatchAssign, ListAssign]A new instance of BatchAssign or ListAssign class with the specified assignments.

Raises

TypeDescription
ValueErrorIf both __batch_params and assignments are provided.

Note

Bloqade handles the multiple programs generated by this method and treats them as a unified object for easy post-processing. Ensure all lists of values are of the same length as Bloqade will not perform a Cartesian product.

source