Impls
Annotate
Bases: MethodTable
flowchart TD
bloqade.analysis.measure_id.impls.Annotate[Annotate]
click bloqade.analysis.measure_id.impls.Annotate href "" "bloqade.analysis.measure_id.impls.Annotate"
Measure-ID analysis implementations for detector and observable annotations.
set_detector
set_detector(
interp_: MeasurementIDAnalysis,
frame: MeasureIDFrame,
stmt: SetDetector,
)
Record a detector and its measurement IDs.
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/measure_id/impls.py
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | |
set_observable
set_observable(
interp_: MeasurementIDAnalysis,
frame: MeasureIDFrame,
stmt: SetObservable,
)
Record an observable and its measurement IDs.
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/measure_id/impls.py
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | |
Func
Bases: MethodTable
flowchart TD
bloqade.analysis.measure_id.impls.Func[Func]
click bloqade.analysis.measure_id.impls.Func href "" "bloqade.analysis.measure_id.impls.Func"
Measure-ID analysis implementations for function statements.
invoke
invoke(
interp_: MeasurementIDAnalysis,
frame: MeasureIDFrame,
stmt: Invoke,
)
Analyze a statically known function invocation.
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/measure_id/impls.py
281 282 283 284 285 286 287 288 289 290 291 292 293 | |
return_
return_(
_: MeasurementIDAnalysis,
frame: MeasureIDFrame,
stmt: Return,
)
Return the abstract value of the function result.
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/measure_id/impls.py
273 274 275 276 277 278 | |
IList
Bases: MethodTable
flowchart TD
bloqade.analysis.measure_id.impls.IList[IList]
click bloqade.analysis.measure_id.impls.IList href "" "bloqade.analysis.measure_id.impls.IList"
Measure-ID analysis implementations for immutable lists.
new_ilist
new_ilist(
interp: MeasurementIDAnalysis,
frame: MeasureIDFrame,
stmt: New,
)
Collect immutable-list elements into a measurement-ID tuple.
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/measure_id/impls.py
142 143 144 145 146 147 148 149 150 151 152 153 154 155 | |
PyAssign
Bases: MethodTable
flowchart TD
bloqade.analysis.measure_id.impls.PyAssign[PyAssign]
click bloqade.analysis.measure_id.impls.PyAssign href "" "bloqade.analysis.measure_id.impls.PyAssign"
Measure-ID analysis implementations for Python assignments.
alias
alias(
interp: MeasurementIDAnalysis,
frame: MeasureIDFrame,
stmt: Alias,
)
Propagate the analysis value through an alias.
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/measure_id/impls.py
224 225 226 227 228 229 230 231 232 | |
PyBinOp
Bases: MethodTable
flowchart TD
bloqade.analysis.measure_id.impls.PyBinOp[PyBinOp]
click bloqade.analysis.measure_id.impls.PyBinOp href "" "bloqade.analysis.measure_id.impls.PyBinOp"
Measure-ID analysis implementations for Python binary operations.
add
add(
interp: MeasurementIDAnalysis,
frame: MeasureIDFrame,
stmt: Add,
)
Concatenate compatible measurement-ID tuples.
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/measure_id/impls.py
239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 | |
PyConstant
Bases: MethodTable
flowchart TD
bloqade.analysis.measure_id.impls.PyConstant[PyConstant]
click bloqade.analysis.measure_id.impls.PyConstant href "" "bloqade.analysis.measure_id.impls.PyConstant"
Measure-ID analysis implementations for Python constants.
constant
constant(
interp: MeasurementIDAnalysis,
frame: MeasureIDFrame,
stmt: Constant,
)
Wrap a Python constant so it can be propagated by the analysis.
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/measure_id/impls.py
209 210 211 212 213 214 215 216 217 | |
PyIndexing
Bases: MethodTable
flowchart TD
bloqade.analysis.measure_id.impls.PyIndexing[PyIndexing]
click bloqade.analysis.measure_id.impls.PyIndexing href "" "bloqade.analysis.measure_id.impls.PyIndexing"
Measure-ID analysis implementations for Python indexing.
getitem
getitem(
interp: MeasurementIDAnalysis,
frame: MeasureIDFrame,
stmt: GetItem,
)
Propagate a measurement ID through constant indexing or slicing.
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/measure_id/impls.py
175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 | |
PyTuple
Bases: MethodTable
flowchart TD
bloqade.analysis.measure_id.impls.PyTuple[PyTuple]
click bloqade.analysis.measure_id.impls.PyTuple href "" "bloqade.analysis.measure_id.impls.PyTuple"
Measure-ID analysis implementations for Python tuples.
new_tuple
new_tuple(
interp: MeasurementIDAnalysis,
frame: MeasureIDFrame,
stmt: New,
)
Collect tuple elements into a measurement-ID tuple.
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/measure_id/impls.py
162 163 164 165 166 167 168 | |
RecordIdxHelperAnalysis
Bases: MethodTable
flowchart TD
bloqade.analysis.measure_id.impls.RecordIdxHelperAnalysis[RecordIdxHelperAnalysis]
click bloqade.analysis.measure_id.impls.RecordIdxHelperAnalysis href "" "bloqade.analysis.measure_id.impls.RecordIdxHelperAnalysis"
Measure-ID analysis for record-index helper statements.
get_rec_idx_from_measurement
get_rec_idx_from_measurement(
interp_: MeasurementIDAnalysis,
frame: MeasureIDFrame,
stmt: GetRecIdxFromMeasurement,
)
Compute a record index from a measurement result.
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/measure_id/impls.py
369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 | |
get_rec_idx_from_predicate
get_rec_idx_from_predicate(
interp_: MeasurementIDAnalysis,
frame: MeasureIDFrame,
stmt: GetRecIdxFromPredicate,
)
Compute a record index from a measurement predicate result.
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/measure_id/impls.py
388 389 390 391 392 393 394 395 396 397 398 399 400 | |
Scf
Bases: Methods
flowchart TD
bloqade.analysis.measure_id.impls.Scf[Scf]
click bloqade.analysis.measure_id.impls.Scf href "" "bloqade.analysis.measure_id.impls.Scf"
Measure-ID analysis implementations for structured control flow.
for_loop
for_loop(
interp_: MeasurementIDAnalysis,
frame: MeasureIDFrame,
stmt: For,
)
Analyze a loop with a compile-time-known iterable.
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/measure_id/impls.py
333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 | |
if_else
if_else(
interp_: MeasurementIDAnalysis,
frame: MeasureIDFrame,
stmt: IfElse,
)
Analyze both branches of an if statement and join their results.
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/measure_id/impls.py
302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 | |
SquinQubit
Bases: MethodTable
flowchart TD
bloqade.analysis.measure_id.impls.SquinQubit[SquinQubit]
click bloqade.analysis.measure_id.impls.SquinQubit href "" "bloqade.analysis.measure_id.impls.SquinQubit"
Measure-ID analysis implementations for squin qubit statements.
measure_qubit_list
measure_qubit_list(
interp: MeasurementIDAnalysis,
frame: MeasureIDFrame,
stmt: Measure,
)
Assign consecutive IDs to the results of a qubit-list measurement.
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/measure_id/impls.py
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | |
measurement_predicate
measurement_predicate(
interp: MeasurementIDAnalysis,
frame: MeasureIDFrame,
stmt: IsLost | IsOne | IsZero,
)
Associate measurement predicates with their source measurement IDs.
Source code in .venv/lib/python3.12/site-packages/bloqade/analysis/measure_id/impls.py
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | |