qubasic 0.7.0__tar.gz → 0.9.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {qubasic-0.7.0 → qubasic-0.9.0}/CHANGELOG.md +21 -0
- {qubasic-0.7.0/qubasic.egg-info → qubasic-0.9.0}/PKG-INFO +66 -3
- {qubasic-0.7.0 → qubasic-0.9.0}/README.md +65 -2
- {qubasic-0.7.0 → qubasic-0.9.0}/pyproject.toml +1 -1
- {qubasic-0.7.0 → qubasic-0.9.0/qubasic.egg-info}/PKG-INFO +66 -3
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic.egg-info/SOURCES.txt +7 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/__init__.py +1 -1
- qubasic-0.9.0/qubasic_core/algos2.py +475 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/analysis.py +158 -0
- qubasic-0.9.0/qubasic_core/benchmarking.py +369 -0
- qubasic-0.9.0/qubasic_core/bosonic.py +175 -0
- qubasic-0.9.0/qubasic_core/dynamics.py +322 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/executor.py +6 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/parser.py +5 -0
- qubasic-0.9.0/qubasic_core/pauliprop.py +130 -0
- qubasic-0.9.0/qubasic_core/qec.py +220 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/qol.py +8 -1
- qubasic-0.9.0/qubasic_core/qudits.py +154 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/statements.py +1 -1
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/terminal.py +46 -3
- {qubasic-0.7.0 → qubasic-0.9.0}/tests/test_qubasic.py +216 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/LICENSE +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/MANIFEST.in +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/examples/bell.qb +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/examples/grover3.qb +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/examples/locc_teleport.qb +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/examples/sweep_rx.qb +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic.egg-info/dependency_links.txt +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic.egg-info/entry_points.txt +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic.egg-info/requires.txt +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic.egg-info/top_level.txt +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/__main__.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/algorithms.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/backend.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/classic.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/cli.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/control_flow.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/debug.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/demos.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/display.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/engine.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/engine_state.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/errors.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/exec_context.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/expression.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/file_io.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/gates.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/help_text.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/io_protocol.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/locc.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/locc_commands.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/locc_display.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/locc_engine.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/locc_execution.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/memory.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/mock_backend.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/noise_mixin.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/patterns.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/profiler.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/program_mgmt.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/protocol.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/scope.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/screen.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/state_display.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/strings.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/subs.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/qubasic_core/sweep.py +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/setup.cfg +0 -0
- {qubasic-0.7.0 → qubasic-0.9.0}/tests/test_features.py +0 -0
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.9.0 (2026-06-19)
|
|
4
|
+
|
|
5
|
+
Frontier and experimental methods. All offline on Qiskit/Aer/numpy; nothing
|
|
6
|
+
needs a cloud backend or an external simulation engine.
|
|
7
|
+
|
|
8
|
+
### Added
|
|
9
|
+
- Hamiltonian dynamics and open systems: `HAMILTONIAN` (Pauli sum, plus `ISING`, `HEISENBERG`, `HUBBARD` Jordan-Wigner, and `RYDBERG` builders), `EVOLVE` (Suzuki-Trotter time evolution, verified to fidelity 1.0 against the exact propagator), `LINDBLAD` (RK4 master-equation open-system evolution), and `CHANNEL`/`APPLYCHANNEL` (user-defined CPTP Kraus channels).
|
|
10
|
+
- Quantum error correction: `QEC` (repetition, Steane, Shor codes with self-verified logical operators), an optimal minimum-weight lookup decoder, `LOGICAL_ERROR_RATE` (Pauli-frame Monte Carlo), and `THRESHOLD` sweeps (the repetition crossing lands at p = 0.5).
|
|
11
|
+
- Frontier benchmarking: `XEB` (cross-entropy benchmarking), `QVOLUME` (quantum volume heavy-output test), `RBINT` (interleaved RB), `MIRROR` (mirror benchmarking), `GST` (1-qubit linear-inversion gate-set-style estimate), and entanglement measures `CONCURRENCE` and `NEGATIVITY`.
|
|
12
|
+
- Advanced algorithms: `IQPE` (iterative phase estimation), `AMPEST` (amplitude estimation), `AMPLIFY` (amplitude amplification), `QWALK` (discrete-time quantum walk), `GRAPHSTATE` (graph/cluster states for measurement-based computing), `FEATUREMAP`/`QKERNEL` (quantum-machine-learning encoding and kernels), `SHOR` (order finding and factoring, factors 15 into 3 x 5), and `HHL` (2x2 linear solver).
|
|
13
|
+
- Pauli propagation: `PAULIPROP` estimates Pauli expectation values by Heisenberg-picture backpropagation with weight truncation (exact when nothing is pruned, matching `EXPECT`).
|
|
14
|
+
- Qudit engine: `QUDIT`, `QX`, `QZ`, `QF`, `QSUM`, `QSTATE`, `QMEASURE` for d-level systems (independent of the qubit engine).
|
|
15
|
+
- Bosonic / continuous-variable engine: `BOSONIC`, `DISPLACE`, `SQUEEZE`, `CAT`, `BS`, `BSTATE` for truncated Fock-space modes.
|
|
16
|
+
|
|
17
|
+
## 0.8.0 (2026-06-19)
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
- Partial measurement: `MEASURE 0, 2` measures a subset of qubits and reports the histogram over just those qubits (the bare `MEASURE` still measures all).
|
|
21
|
+
- Process tomography: `PTOMOGRAPHY` reconstructs the circuit's Pauli Transfer Matrix (the unitary, or the full noisy channel via the superoperator when a noise model is active), and reports the trace-preserving and unital flags plus the average gate fidelity to the identity. Limited to <= 2 qubits.
|
|
22
|
+
- Randomized benchmarking: `RB [max_length] [samples]` runs single-qubit RB over the 24-element Clifford group (each sequence ends with its recovery Clifford), fits the survival decay `p(m) = A f^m + B`, and reports the decay `f` and the error per Clifford `(1 - f)/2`. Reflects the active noise model.
|
|
23
|
+
|
|
3
24
|
## 0.7.0 (2026-06-19)
|
|
4
25
|
|
|
5
26
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: qubasic
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.0
|
|
4
4
|
Summary: Quantum BASIC Interactive Terminal
|
|
5
5
|
Author-email: "Charles C. Norton" <machineelv@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -417,12 +417,21 @@ STATS SHOW Show mean/stddev/min/max per state
|
|
|
417
417
|
STATS CLEAR Reset accumulator
|
|
418
418
|
```
|
|
419
419
|
|
|
420
|
-
###
|
|
420
|
+
### Characterization
|
|
421
421
|
```
|
|
422
422
|
FIDELITY |BELL> State fidelity |<target|psi>|^2 vs a named state
|
|
423
423
|
FIDELITY [0.707,0,0,0.707] ...or an explicit amplitude list
|
|
424
|
-
TOMOGRAPHY
|
|
424
|
+
TOMOGRAPHY State tomography: reconstruct rho from Pauli expectations
|
|
425
425
|
TOMOGRAPHY 2000 Statistical tomography (2000 shots per Pauli basis)
|
|
426
|
+
PTOMOGRAPHY Process tomography: reconstruct the Pauli Transfer Matrix (<=2 qubits)
|
|
427
|
+
RB Single-qubit randomized benchmarking (fits decay -> error/Clifford)
|
|
428
|
+
RB 64 12 Sequence lengths up to 64, 12 random sequences each
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
### Partial measurement
|
|
432
|
+
```
|
|
433
|
+
MEASURE Measure all qubits (the default)
|
|
434
|
+
MEASURE 0, 2 Measure only qubits 0 and 2; histogram is over that subset
|
|
426
435
|
```
|
|
427
436
|
|
|
428
437
|
## Algorithm primitives
|
|
@@ -491,6 +500,60 @@ LOADQASM file.qasm Import OpenQASM as an editable program (2.0 built-in; 3
|
|
|
491
500
|
SAVEPNG out.png hist Save the histogram as a PNG (also: bloch, circuit; needs matplotlib)
|
|
492
501
|
```
|
|
493
502
|
|
|
503
|
+
## Hamiltonian dynamics and open systems
|
|
504
|
+
|
|
505
|
+
```
|
|
506
|
+
HAMILTONIAN H = 1.0 ZZ 0 1 + 0.5 X 0 Declare a Pauli-sum Hamiltonian
|
|
507
|
+
HAMILTONIAN H = ISING 1.0 0.5 Builders: ISING, HEISENBERG, HUBBARD, RYDBERG
|
|
508
|
+
10 EVOLVE H, 1.5, 20 Trotterized e^{-iHt} (time, steps) in a circuit
|
|
509
|
+
LINDBLAD NONE, 1.0, 200, 1.0 SM 0 Open-system master-equation evolution
|
|
510
|
+
CHANNEL AD = [[1,0],[0,0.95]] ; [[0,0.31],[0,0]] Define a Kraus channel
|
|
511
|
+
10 APPLYCHANNEL AD 0 Apply a custom channel
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
## Error correction
|
|
515
|
+
|
|
516
|
+
```
|
|
517
|
+
QEC STEANE Show a code (REP [d], STEANE, SHOR) and its stabilizers
|
|
518
|
+
LOGICAL_ERROR_RATE STEANE 0.02 Monte-Carlo logical error rate at physical p
|
|
519
|
+
THRESHOLD REP 0.0 0.5 11 Sweep p across distances 3/5/7 (crossing at 0.5)
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
## Benchmarking and verification
|
|
523
|
+
|
|
524
|
+
```
|
|
525
|
+
XEB 4 10 20 Cross-entropy benchmarking fidelity
|
|
526
|
+
QVOLUME 4 Quantum volume heavy-output test
|
|
527
|
+
RBINT H Interleaved RB fidelity of a Clifford gate
|
|
528
|
+
MIRROR 16 10 Mirror-circuit benchmarking
|
|
529
|
+
GST 1-qubit gate-set-style process estimate
|
|
530
|
+
CONCURRENCE 0 1 Two-qubit concurrence
|
|
531
|
+
NEGATIVITY 0 Entanglement negativity across a bipartition
|
|
532
|
+
PAULIPROP ZZ 0 1 Pauli-propagation expectation (Heisenberg, truncated)
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
## Advanced algorithms
|
|
536
|
+
|
|
537
|
+
```
|
|
538
|
+
IQPE 4 0 UGATE Iterative phase estimation of a UNITARY eigenphase
|
|
539
|
+
AMPEST 5 0 Amplitude estimation of the marked amplitude
|
|
540
|
+
10 AMPLIFY 101 One amplitude-amplification (Grover) step
|
|
541
|
+
QWALK 5 Discrete-time quantum walk on a cycle
|
|
542
|
+
10 GRAPHSTATE 0-1, 1-2 Prepare a graph/cluster state (MBQC resource)
|
|
543
|
+
10 FEATUREMAP x0 x1 ZZ feature-map data encoding (QML)
|
|
544
|
+
QKERNEL 0.5 0.3 ; 0.4 0.2 Quantum kernel |<phi(x)|phi(y)>|^2
|
|
545
|
+
SHOR 15 Order finding / factoring of small N
|
|
546
|
+
HHL 1 0 0 2 1 1 Solve a 2x2 Hermitian system A x = v
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
## Beyond qubits
|
|
550
|
+
|
|
551
|
+
```
|
|
552
|
+
QUDIT 3 2 d-level systems: QX, QZ, QF, QSUM, QSTATE, QMEASURE
|
|
553
|
+
BOSONIC 1 25 Continuous-variable Fock modes
|
|
554
|
+
DISPLACE 0 1.0 ...DISPLACE, SQUEEZE, CAT, BS, BSTATE
|
|
555
|
+
```
|
|
556
|
+
|
|
494
557
|
## Noise models
|
|
495
558
|
|
|
496
559
|
```
|
|
@@ -384,12 +384,21 @@ STATS SHOW Show mean/stddev/min/max per state
|
|
|
384
384
|
STATS CLEAR Reset accumulator
|
|
385
385
|
```
|
|
386
386
|
|
|
387
|
-
###
|
|
387
|
+
### Characterization
|
|
388
388
|
```
|
|
389
389
|
FIDELITY |BELL> State fidelity |<target|psi>|^2 vs a named state
|
|
390
390
|
FIDELITY [0.707,0,0,0.707] ...or an explicit amplitude list
|
|
391
|
-
TOMOGRAPHY
|
|
391
|
+
TOMOGRAPHY State tomography: reconstruct rho from Pauli expectations
|
|
392
392
|
TOMOGRAPHY 2000 Statistical tomography (2000 shots per Pauli basis)
|
|
393
|
+
PTOMOGRAPHY Process tomography: reconstruct the Pauli Transfer Matrix (<=2 qubits)
|
|
394
|
+
RB Single-qubit randomized benchmarking (fits decay -> error/Clifford)
|
|
395
|
+
RB 64 12 Sequence lengths up to 64, 12 random sequences each
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
### Partial measurement
|
|
399
|
+
```
|
|
400
|
+
MEASURE Measure all qubits (the default)
|
|
401
|
+
MEASURE 0, 2 Measure only qubits 0 and 2; histogram is over that subset
|
|
393
402
|
```
|
|
394
403
|
|
|
395
404
|
## Algorithm primitives
|
|
@@ -458,6 +467,60 @@ LOADQASM file.qasm Import OpenQASM as an editable program (2.0 built-in; 3
|
|
|
458
467
|
SAVEPNG out.png hist Save the histogram as a PNG (also: bloch, circuit; needs matplotlib)
|
|
459
468
|
```
|
|
460
469
|
|
|
470
|
+
## Hamiltonian dynamics and open systems
|
|
471
|
+
|
|
472
|
+
```
|
|
473
|
+
HAMILTONIAN H = 1.0 ZZ 0 1 + 0.5 X 0 Declare a Pauli-sum Hamiltonian
|
|
474
|
+
HAMILTONIAN H = ISING 1.0 0.5 Builders: ISING, HEISENBERG, HUBBARD, RYDBERG
|
|
475
|
+
10 EVOLVE H, 1.5, 20 Trotterized e^{-iHt} (time, steps) in a circuit
|
|
476
|
+
LINDBLAD NONE, 1.0, 200, 1.0 SM 0 Open-system master-equation evolution
|
|
477
|
+
CHANNEL AD = [[1,0],[0,0.95]] ; [[0,0.31],[0,0]] Define a Kraus channel
|
|
478
|
+
10 APPLYCHANNEL AD 0 Apply a custom channel
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
## Error correction
|
|
482
|
+
|
|
483
|
+
```
|
|
484
|
+
QEC STEANE Show a code (REP [d], STEANE, SHOR) and its stabilizers
|
|
485
|
+
LOGICAL_ERROR_RATE STEANE 0.02 Monte-Carlo logical error rate at physical p
|
|
486
|
+
THRESHOLD REP 0.0 0.5 11 Sweep p across distances 3/5/7 (crossing at 0.5)
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
## Benchmarking and verification
|
|
490
|
+
|
|
491
|
+
```
|
|
492
|
+
XEB 4 10 20 Cross-entropy benchmarking fidelity
|
|
493
|
+
QVOLUME 4 Quantum volume heavy-output test
|
|
494
|
+
RBINT H Interleaved RB fidelity of a Clifford gate
|
|
495
|
+
MIRROR 16 10 Mirror-circuit benchmarking
|
|
496
|
+
GST 1-qubit gate-set-style process estimate
|
|
497
|
+
CONCURRENCE 0 1 Two-qubit concurrence
|
|
498
|
+
NEGATIVITY 0 Entanglement negativity across a bipartition
|
|
499
|
+
PAULIPROP ZZ 0 1 Pauli-propagation expectation (Heisenberg, truncated)
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
## Advanced algorithms
|
|
503
|
+
|
|
504
|
+
```
|
|
505
|
+
IQPE 4 0 UGATE Iterative phase estimation of a UNITARY eigenphase
|
|
506
|
+
AMPEST 5 0 Amplitude estimation of the marked amplitude
|
|
507
|
+
10 AMPLIFY 101 One amplitude-amplification (Grover) step
|
|
508
|
+
QWALK 5 Discrete-time quantum walk on a cycle
|
|
509
|
+
10 GRAPHSTATE 0-1, 1-2 Prepare a graph/cluster state (MBQC resource)
|
|
510
|
+
10 FEATUREMAP x0 x1 ZZ feature-map data encoding (QML)
|
|
511
|
+
QKERNEL 0.5 0.3 ; 0.4 0.2 Quantum kernel |<phi(x)|phi(y)>|^2
|
|
512
|
+
SHOR 15 Order finding / factoring of small N
|
|
513
|
+
HHL 1 0 0 2 1 1 Solve a 2x2 Hermitian system A x = v
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
## Beyond qubits
|
|
517
|
+
|
|
518
|
+
```
|
|
519
|
+
QUDIT 3 2 d-level systems: QX, QZ, QF, QSUM, QSTATE, QMEASURE
|
|
520
|
+
BOSONIC 1 25 Continuous-variable Fock modes
|
|
521
|
+
DISPLACE 0 1.0 ...DISPLACE, SQUEEZE, CAT, BS, BSTATE
|
|
522
|
+
```
|
|
523
|
+
|
|
461
524
|
## Noise models
|
|
462
525
|
|
|
463
526
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: qubasic
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.0
|
|
4
4
|
Summary: Quantum BASIC Interactive Terminal
|
|
5
5
|
Author-email: "Charles C. Norton" <machineelv@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -417,12 +417,21 @@ STATS SHOW Show mean/stddev/min/max per state
|
|
|
417
417
|
STATS CLEAR Reset accumulator
|
|
418
418
|
```
|
|
419
419
|
|
|
420
|
-
###
|
|
420
|
+
### Characterization
|
|
421
421
|
```
|
|
422
422
|
FIDELITY |BELL> State fidelity |<target|psi>|^2 vs a named state
|
|
423
423
|
FIDELITY [0.707,0,0,0.707] ...or an explicit amplitude list
|
|
424
|
-
TOMOGRAPHY
|
|
424
|
+
TOMOGRAPHY State tomography: reconstruct rho from Pauli expectations
|
|
425
425
|
TOMOGRAPHY 2000 Statistical tomography (2000 shots per Pauli basis)
|
|
426
|
+
PTOMOGRAPHY Process tomography: reconstruct the Pauli Transfer Matrix (<=2 qubits)
|
|
427
|
+
RB Single-qubit randomized benchmarking (fits decay -> error/Clifford)
|
|
428
|
+
RB 64 12 Sequence lengths up to 64, 12 random sequences each
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
### Partial measurement
|
|
432
|
+
```
|
|
433
|
+
MEASURE Measure all qubits (the default)
|
|
434
|
+
MEASURE 0, 2 Measure only qubits 0 and 2; histogram is over that subset
|
|
426
435
|
```
|
|
427
436
|
|
|
428
437
|
## Algorithm primitives
|
|
@@ -491,6 +500,60 @@ LOADQASM file.qasm Import OpenQASM as an editable program (2.0 built-in; 3
|
|
|
491
500
|
SAVEPNG out.png hist Save the histogram as a PNG (also: bloch, circuit; needs matplotlib)
|
|
492
501
|
```
|
|
493
502
|
|
|
503
|
+
## Hamiltonian dynamics and open systems
|
|
504
|
+
|
|
505
|
+
```
|
|
506
|
+
HAMILTONIAN H = 1.0 ZZ 0 1 + 0.5 X 0 Declare a Pauli-sum Hamiltonian
|
|
507
|
+
HAMILTONIAN H = ISING 1.0 0.5 Builders: ISING, HEISENBERG, HUBBARD, RYDBERG
|
|
508
|
+
10 EVOLVE H, 1.5, 20 Trotterized e^{-iHt} (time, steps) in a circuit
|
|
509
|
+
LINDBLAD NONE, 1.0, 200, 1.0 SM 0 Open-system master-equation evolution
|
|
510
|
+
CHANNEL AD = [[1,0],[0,0.95]] ; [[0,0.31],[0,0]] Define a Kraus channel
|
|
511
|
+
10 APPLYCHANNEL AD 0 Apply a custom channel
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
## Error correction
|
|
515
|
+
|
|
516
|
+
```
|
|
517
|
+
QEC STEANE Show a code (REP [d], STEANE, SHOR) and its stabilizers
|
|
518
|
+
LOGICAL_ERROR_RATE STEANE 0.02 Monte-Carlo logical error rate at physical p
|
|
519
|
+
THRESHOLD REP 0.0 0.5 11 Sweep p across distances 3/5/7 (crossing at 0.5)
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
## Benchmarking and verification
|
|
523
|
+
|
|
524
|
+
```
|
|
525
|
+
XEB 4 10 20 Cross-entropy benchmarking fidelity
|
|
526
|
+
QVOLUME 4 Quantum volume heavy-output test
|
|
527
|
+
RBINT H Interleaved RB fidelity of a Clifford gate
|
|
528
|
+
MIRROR 16 10 Mirror-circuit benchmarking
|
|
529
|
+
GST 1-qubit gate-set-style process estimate
|
|
530
|
+
CONCURRENCE 0 1 Two-qubit concurrence
|
|
531
|
+
NEGATIVITY 0 Entanglement negativity across a bipartition
|
|
532
|
+
PAULIPROP ZZ 0 1 Pauli-propagation expectation (Heisenberg, truncated)
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
## Advanced algorithms
|
|
536
|
+
|
|
537
|
+
```
|
|
538
|
+
IQPE 4 0 UGATE Iterative phase estimation of a UNITARY eigenphase
|
|
539
|
+
AMPEST 5 0 Amplitude estimation of the marked amplitude
|
|
540
|
+
10 AMPLIFY 101 One amplitude-amplification (Grover) step
|
|
541
|
+
QWALK 5 Discrete-time quantum walk on a cycle
|
|
542
|
+
10 GRAPHSTATE 0-1, 1-2 Prepare a graph/cluster state (MBQC resource)
|
|
543
|
+
10 FEATUREMAP x0 x1 ZZ feature-map data encoding (QML)
|
|
544
|
+
QKERNEL 0.5 0.3 ; 0.4 0.2 Quantum kernel |<phi(x)|phi(y)>|^2
|
|
545
|
+
SHOR 15 Order finding / factoring of small N
|
|
546
|
+
HHL 1 0 0 2 1 1 Solve a 2x2 Hermitian system A x = v
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
## Beyond qubits
|
|
550
|
+
|
|
551
|
+
```
|
|
552
|
+
QUDIT 3 2 d-level systems: QX, QZ, QF, QSUM, QSTATE, QMEASURE
|
|
553
|
+
BOSONIC 1 25 Continuous-variable Fock modes
|
|
554
|
+
DISPLACE 0 1.0 ...DISPLACE, SQUEEZE, CAT, BS, BSTATE
|
|
555
|
+
```
|
|
556
|
+
|
|
494
557
|
## Noise models
|
|
495
558
|
|
|
496
559
|
```
|
|
@@ -16,14 +16,18 @@ qubasic.egg-info/top_level.txt
|
|
|
16
16
|
qubasic_core/__init__.py
|
|
17
17
|
qubasic_core/__main__.py
|
|
18
18
|
qubasic_core/algorithms.py
|
|
19
|
+
qubasic_core/algos2.py
|
|
19
20
|
qubasic_core/analysis.py
|
|
20
21
|
qubasic_core/backend.py
|
|
22
|
+
qubasic_core/benchmarking.py
|
|
23
|
+
qubasic_core/bosonic.py
|
|
21
24
|
qubasic_core/classic.py
|
|
22
25
|
qubasic_core/cli.py
|
|
23
26
|
qubasic_core/control_flow.py
|
|
24
27
|
qubasic_core/debug.py
|
|
25
28
|
qubasic_core/demos.py
|
|
26
29
|
qubasic_core/display.py
|
|
30
|
+
qubasic_core/dynamics.py
|
|
27
31
|
qubasic_core/engine.py
|
|
28
32
|
qubasic_core/engine_state.py
|
|
29
33
|
qubasic_core/errors.py
|
|
@@ -44,10 +48,13 @@ qubasic_core/mock_backend.py
|
|
|
44
48
|
qubasic_core/noise_mixin.py
|
|
45
49
|
qubasic_core/parser.py
|
|
46
50
|
qubasic_core/patterns.py
|
|
51
|
+
qubasic_core/pauliprop.py
|
|
47
52
|
qubasic_core/profiler.py
|
|
48
53
|
qubasic_core/program_mgmt.py
|
|
49
54
|
qubasic_core/protocol.py
|
|
55
|
+
qubasic_core/qec.py
|
|
50
56
|
qubasic_core/qol.py
|
|
57
|
+
qubasic_core/qudits.py
|
|
51
58
|
qubasic_core/scope.py
|
|
52
59
|
qubasic_core/screen.py
|
|
53
60
|
qubasic_core/state_display.py
|