Commit 50ff838
Refactor n memory (#155)
* reviewfix: angles only needed in QOp
* reviewfix: convert RZZ to I during phir -> pypmir conversion
* Adding very simple depolarizing error model. (#24)
* changing the dev version number from 0.5.dev1 to 0.5.0.dev1 to be more specific (#25)
* Version bump to fix pypi issue.
* Bug phir if statement (#27)
* Fixed issue with yielding instructions of blocks
* bump to 0.5.0.dev3 + avoiding [] buffer yielding
* Fixing linting because my pre-commit hook was off
* add external phir dependency + remove Python 3.8 + test both required… (#19)
* add external phir dependency + remove Python 3.8 + test both required and optional dependencies
* Updating workflow to include diff OSs. Added skipping of tests based on optional dependency OS/Python version support.
* Skip wasmer tests on for Python >= 3.11
* Skipping test if Wasmer could not be imported.
* More robust method for skipping tests of Wasmer due to unsupported systems
* Add simple test of extern phir
* Requirement update to phir 0.1.6
* Included PHIR model validation and related tests
* small bump for requirements.txt
---------
Co-authored-by: Ciaran Ryan-Anderson <ciaranra@gmail.com>
* Added support for qparallel. (#33)
* Added support for qparallel.
* Bumping to 0.5.0.dev4
* Bug out of order seq (#35)
* Fixed buggy yielding of Sequence/QParallel blocks
* Add a test of the sequence of op buffers.
* Reworked recursive iteration through blocks to be more elegant
* Marked test using state-vec sim as optional dependency
* Added Clifford Bell qparallel test and silence tz warning
* Bumping version to 0.5.0.dev5 and updating requirements
* Fixing support of PHIR's multi-assignment (#36)
* Fixing support of PHIR's multi-assignment
* bump version to 0.5.0.dev6
* Adding coder owners file
* Fixing code owners file typo
* build: add typed marker for pecos
* Initial support for barriers (skips barriers for now). (#38)
* Initial support for barriers (skips barriers for now).
* Additional barrier testing and associated fixes
* bumping version to 0.5.0.dev7
* Update requirements
* Bumping phir req (#39)
* updating requirements to phir ~= 0.3.0
* Fixes rare test error
* Bumping version to 0.5.0.dev8 and updating requirements.txt
* Broadening wasmtime req. + simplifying [all] (#42)
* Add wasmtime support for engines/cvm/wasm (#43)
* bumping to version 0.5.0.dev9 (#44)
* Update docs (#47)
* Various small updates of docs including autogen of API docs
* Small doc tweaks + fixing FT checking file issue that was detected by generating docs automatically
---------
Co-authored-by: Ciaran Ryan-Anderson <ciaranra@gmail.com>
* Feature more simulators (#21)
* CoinToss simulator implemented.
* Replaced the old CuStateVec simulator (C API) with a version using the Python API.
* Updated README with installation instructions for CuStateVec.
---------
Co-authored-by: PabloAndresCQ <pablo.andres-martinez@cambridgequantum.com>
Co-authored-by: Kartik Singhal <kartik.singhal@quantinuum.com>
* Cumulative development update (#54)
* Added .sim_name to QOps. Added angle info to QOp.angle
* Added code to identify Clifford gates from more general gates
* Added conversion to Clifford support for RZ , RZZ, and R1XY
* Tweaking generic machine to clear state
* Add test of operation type before running qsims.
* Adding general Instr type and list types
* Adding slr code
* Updated linting/formatting
* Moving slr down to reduce nesting
* fix slr __version__
* Creating a slr.std folder to hold common extension to core to the DSL
* Fixing std import
* Adding in duration for MOps in PyPMIR
* Modifying qargs in mops appropriately.
* Moving the old cuquantum code to cuquantum_old for now...
* Updating actions/setup-python from v4 to v5
* Adding tests of SLR and gate name resolving + some fixes due to those
* Update .pre-commit-config.yaml
Co-authored-by: Kartik Singhal <kartik.singhal@quantinuum.com>
* Apply suggestions from code review
Co-authored-by: Kartik Singhal <kartik.singhal@quantinuum.com>
* Updating pre-commit / running ruff/black
* Updating the docs using autodoc
* Changing PHIR test to only have bits set by 1 or 0 (not bool)
---------
Co-authored-by: Ciaran Ryan-Anderson <ciaran.ryan-anderson@quantinuum.com>
Co-authored-by: Ciarán Ryan-Anderson <70174051+qciaran@users.noreply.github.com>
Co-authored-by: Kartik Singhal <kartik.singhal@quantinuum.com>
* Bumping version number to 0.5.0.dev10
* Feat hybrid noise (#60)
* Allows noise model to generate hybrid errors (classical and quantum instructions)
* Adding internal cinterp registers for error models
* removing internally generated measurements from results
* Converts conditionals into COps
---------
Co-authored-by: Ciaran Ryan-Anderson <ciaran.ryan-anderson@quantinuum.com>
* version bump 0.5.0.dev11
* Adding specific error messaging and enforced maximum duration to WASM calls (#62)
Preventing infinite looping of WASM calls and providing additional details to users when WASM errors occur.
---------
Co-authored-by: Ciarán Ryan-Anderson <70174051+qciaran@users.noreply.github.com>
* 64 bit signed arithmetic support (#57)
* feat: add support for negative integers to phir
* feat: add hypothesis-enabled unit tests for BinArray2
Also, clamp only for unsigned integer types
* lint: fix typos and exclude cuquantum_old
* feat: replace BinArray with BinArray2
* fix: set BinArray2's value correctly, or it can convert to ndarray
* build: bump patch version to distinguish in testing
* feat: partition data_types into signed and unsigned
also make size optional for signed integer type
* build: update to correct phir version
Co-authored-by: Ciarán Ryan-Anderson <70174051+qciaran@users.noreply.github.com>
---------
Co-authored-by: Ciarán Ryan-Anderson <ciaranra@gmail.com>
* cuStateVec bugfixes and slight refactor (#64)
* Updated argument names for new API (cuStateVec 1.6.0)
* Bumped up version requirements
* Fixing a bug in CuStateVec in the implementation of the RYY gate
* Refactor of state.vector so that it returns a numpy array for easier testing and integration
* Adding some of the changes from Dominic's PR #58
* Added more bindings requested by @dlucchetti
* Bumping version number to 0.6.0.dev3 (#65)
* Adding a numpy-based basic statevector simulator for more exhaustive testing (#55)
* Adding a basic numpy statevector simulator
* Adding more exhaustive tests against BasicSV
* Adding a reset method
* [feature] Adding support for QuEST and Qulacs statevector simulators (#68)
* Added Qulacs simulator
* Added wrapper for QuEST
* Updated readme with simulator installation instructions
* Adding tests for HybridEngine on statevector simulators
* Supporting new statevector sims on HybridEngine
* Fixed a bug in CuStateVec relating to HybridEngine
* [feature] Adding support for MPS simulation (#63)
* Adding an MPS simulator
* Adding tests for MPS
* Using non-destructive measurements
* Added a reset method to MPS
* Including MPS as a qsim backend for HybridEngine
* Adding more bindings for initialisation that are needing for the tests
* Allowing users to provide parameters for the MPS simulation from HybridEngine
* Add HybridEngine tests for MPS
* Bumping version number to 0.6.0.dev4
* [Bugfixes] Solving some issues for qemulator MPS release (#73)
* Added angles vs angle parameter handling to hybrid_engine_old
* The reset methods in simulators must return self.
* If import fails, create dummy NoneType simulator
* Updated bindings of CoinToss
* Removed filter of simulation parameters, since it is not necessary
* Using a more sensible import approach in the test file
* Debug message converted to info message.
* Bump to 0.6.0.dev5
* Feat qeclib steane (#75)
* Initial dump of qeclib code + SLR updates
* Add teleportation/application of the Tdg gate to Steane code class.
* fix register naming bug (#70)
* Add qasm regression tests
* Refactor qasm generation
* Removed some test print statements
* Use `default_rus_limit` in `Steane` class (#74)
* use default_rus_limit
* Revert "use default_rus_limit"
This reverts commit c186dd9.
* set rus_limit to None by default
* Allow passing ancillas to `Steane` class (#72)
* allow ancilla recycling in Steane class
* raise error if ancilla register is too small
* add only new variables
* Revert "add only new variables"
This reverts commit a0d8e4f.
* Fixing regression qasm issues
* lint fixes
---------
Co-authored-by: Ciaran Ryan-Anderson <ciaranra@gmail.com>
Co-authored-by: Michael A. Perlin <mika.perlin@gmail.com>
* Typo fixed in the implementation of `p` and `tdg` in `steane_class.py` (#76)
* Typo fixed
* Another typo in definition of tdg
* Fixing regression issue due to typo fix + fixing inconsistent creg use
---------
Co-authored-by: Ciaran Ryan-Anderson <ciaran.ryan-anderson@quantinuum.com>
* fix Steane.prep_tdg_plus_state (#78)
* Fixing measurement noise causing only 0 measurement
* adding llvmlite requirement and gen qir file
* adding llvmlite requirement and gen qir file
* starting with basic structure for QIR support
* starting with basic structure for QIR support
* adding generator base class
* adding generator base class
* Some progress, circular refs causing issues
* Some progress, circular refs causing issues
* more stuff
* more stuff
* reworking generation workflow
* reworking generation workflow
* changes towards adding measurement support
* changes towards adding measurement support
* cx gate
* cx gate
* syntax fixes, test runs
* syntax fixes, test runs
* Measure supported
* Measure supported
* fleshing out documentation bettter
* fleshing out documentation bettter
* adding result tagging
* adding result tagging
* cleanup dead code
* cleanup dead code
* working
* working
* clean up results handling into another method, slightly
* clean up results handling into another method, slightly
* refactored into easier method
* refactored into easier method
* Result class working
* Result class working
* correct code generation for bell example
* correct code generation for bell example
* progress
* progress
* fixing icmp usage; conditionals
* fixing icmp usage; conditionals
* updates
* updates
* test changes
* test changes
* fixed comparison rhs code
* fixed comparison rhs code
* Fixing If block back to standard
* Fixing If block back to standard
* Adding gate decomposition, handling for adj in QIR
* Adding gate decomposition, handling for adj in QIR
* Reworking decomposition, added barrier
* First stage of converting old general color code construction to new form
* Add code block class
* Finishing out gates
* Move qeclib/color488 to correct new place
* refactoring Steane and Qubit to classmethod
* new surface stub
* Add initial surface code plotting for new qeclib
* Adding license notice
* polishing fig gen
* polish mz()
* Switching to *qargs for PhysicalQubits
* refactoring surface code
* linting
* Refactoring surface code and visualization
* Added direct surface patch visualization
* refactoring to smaller files
* Simplifying code
* further simplification/refactoring
* test added + small polishing
* Improved flexibility of visualization
* Small polishing of visualization
* Rough draft implementation of classical operator support is added. Will try to extract a program with classical operations to QIR as test of rough draft code, but existing tests work.
* First binary operator test passed.
* Compiled steane successfully
* Merged successfully
* Fixed some linting
* ruff unsafe fixes applied
* Linter happy :)
* Removing failing asserts from QIR tests
* Precommit happy after tests use qir variable
* Trying to remove circular QReg import in gen_qasm.py.
* Hopefully getting QIR testing supported in CI :D
* Ruff ruff
* Let's try to install LLVM in workflows, surely nothing could go wrong.
* Things went wrong.
* Weird yaml spacing issues in emacs
* PyCharm any better???
* Github happy now?
* Fixing circular import issues
* Black linting fix
* some qasm tests failing but overall fixed many tests
* some qasm tests failing but overall fixed many tests
* Adding a method to generate bitcode
* Adding SX, SXdg, and SY + fixing a qir test
* Introduces CReg size check for QIR + linting
* fixing test regex issue
* hopefully fixes pecos.slr issue with optional QIR/LLVM
* Making sure the llvm module gets a fresh context each time
* explicit initalization of llvmlite.binding.initialize on QIR conversion object creation
* Using binding.shutdown() at the end of each compilation to prevent new Qubit types from being introduced
* Getting permute working for both QASM and QIR (#130)
* Getting permute working for both QASM and QIR
* Attempting to fix Issue #116
* Add some QASMGenerator arguments back
* Moved new qasm functionality from slr_converter.py to gen_qasm.py and moving SLR tests together.
* Refactor to simplify gen_qir.py
* linting
* removed conditional statement in _create_qgate_call focused on unrolling set of args as it missed corner cases where the set of qargs and size of desired arg is the same
* Fixing F'd F gates
* Commenting decompositions
* F4dg experiment
* fixed RZ call on qir gate mapping
* Reduce requirements for numpy...
* Removing pyquest as it has been causing some issues...
* Add StateVecRs as a fallback for "state-vector" in Python PECOS.
* Python cleanup...
* More cleaning
* More cleaning
* More cleaning
* More cleaning
* improved simulation output with formatter
* Refactor new result code into module
* Using BitVec as the basic creg data type in pecos-qasm
* Simplifying byte_message/
* More cleaning
* Fix QIR testing?
* Simplify the parser for pecos-qasm
* Adding const folding
* adding run_qasm_sim to Python
* lint
* Make lint helping
* Update some docs + cleanup of ByteMessage to use .add_outcomes and .outcomes for measurement result related things
* Simplify ByteMessage
* Update builder pattern Python doc
* Removing biased measurement noise since biased depolarizing noise give equivalent behavior
* Update p_idle_linear_rate to use validate_non_negative + switched p_idle_coherent_to_incoherent_factor` to be 1.5 by default
* Add binary output formatting to qasm_sim
* lint
* Improve qasm_sim Python API
* Add config to qasm_sim
* Fixing some qasm include issues
* Fixed issue with quadratic idling sometimes issuing gates with no qubits
* Fix permute issue?
* Improve general noise config
* Changed general noise model parameter from p2_idle_quadratic_rate to p2_idle, which is just linear noise
* Fixed recursive Permute issue
* Refactoring noise configuration for qasm_sim + making noise builders return unboxed noise models
* Added scaling to p_idle_linear_rate (fix #143)
* Correcting mistake from previous commit: p_idle_linear_rate needs not be a probability, the product of it with the duration in seconds is what needs to be a probability.
* Fix `with_p_average` scaling (#148)
* Removed sqrt and changed names so that they match the with_average pattern (assuming typo)
* Fixed problem with quadratic idling
* Rust needs help with types
* Fix naming issues
* Qasm wasmtime (#150)
* Add .wasm() to qasm_sim() in crates/pecos-qasm
* Add wasm() to pecos-rslib
* Minimal Rust wrapper for PCG
* Add TODO to the rng_model.py
* Renaming clibs/ to clib/ since a library is already a collection of things
* Fixing more clibs to clib references
* Resolving maturin build failure due to not including C files for sdist
* Remove sdist building for pecos-rslib due to external C source issues. Users can just use the repo to build from source.
* Adding external LDPC decoders project support in PECOS
* Update color code
---------
Co-authored-by: Kartik Singhal <kartik.singhal@quantinuum.com>
Co-authored-by: Ciaran Ryan-Anderson <ciaranra@gmail.com>
Co-authored-by: nealerickson-qtm <146495165+nealerickson-qtm@users.noreply.github.com>
Co-authored-by: Michael A. Perlin <mika.perlin@gmail.com>
Co-authored-by: Pete Campora <petecampora@gmail.com>
Co-authored-by: Neal Erickson <neal.erickson@quantinuum.com>
Co-authored-by: Jonhas Colina <jonhas.colina@quantinuum.com>
Co-authored-by: PabloAndresCQ <pablo.andresmartinez@quantinuum.com>1 parent 0c49566 commit 50ff838
File tree
495 files changed
+56785
-8736
lines changed- .github/workflows
- clib/pecos-rng
- crates
- pecos-build-utils
- src
- pecos-clib-pcg
- pecos-cli
- src
- tests
- pecos-core
- src
- bitvec
- tests
- pecos-decoder-core
- src
- pecos-decoders
- src
- pecos-engines
- examples
- src
- byte_message
- hybrid
- monte_carlo
- noise
- general
- shot_results
- tests
- pecos-ldpc-decoders
- examples
- include
- src
- tests
- ldpc
- pecos-phir
- src
- v0_1
- tests
- common
- pecos-qasm
- examples
- includes
- src
- parser
- tests
- api
- core
- features
- gates
- integration
- operations
- wat
- pecos-qir/src
- platform
- pecos-qsim/src
- pecos
- src
- tests
- docs
- development
- user-guide
- examples
- python_examples
- python
- pecos-rslib
- examples
- rust
- src
- src/pecos_rslib
- tests
- quantum-pecos
- src/pecos
- circuits
- classical_interpreters
- decoders/mwpm2d
- engines
- cvm
- error_models
- old
- qeccs
- color_488
- surface_4444
- surface_medial_4444
- qeclib
- color488
- gates_sq
- gates_tq
- meas
- syn_extract
- generic
- qubit
- steane
- gates_tq
- surface
- gate_sets
- layouts
- macrolibs
- preps
- syn_extract
- patches
- visualization
- reps/pypmir
- simulators
- basic_sv
- cointoss
- custatevec
- mps_pytket
- paulifaultprop
- projectq
- qulacs
- sparsesim
- slr
- gen_codes
- transforms
- tools
- slr-tests
- pecos
- regression/random_cases
- unit/slr
- tests
- pecos
- integration
- example_tests
- regression
- test_engines
- test_qasm
- examples
- pecos/qeclib
- qubit
- steane
- decoders
- gates_sq
- gates_tq
- meas
- preps
- qec
- syn_extract
- random_cases
- test_qeclib/test_surface
- unit
- reps/pymir
- slr/pecos/unit/slr
- scripts/docs
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
495 files changed
+56785
-8736
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
99 | 108 | | |
100 | 109 | | |
101 | 110 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | 12 | | |
20 | 13 | | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
| 14 | + | |
28 | 15 | | |
29 | 16 | | |
30 | 17 | | |
| |||
51 | 38 | | |
52 | 39 | | |
53 | 40 | | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
54 | 47 | | |
55 | 48 | | |
56 | 49 | | |
| |||
62 | 55 | | |
63 | 56 | | |
64 | 57 | | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
| 58 | + | |
71 | 59 | | |
72 | | - | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
73 | 63 | | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
| 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 | + | |
85 | 95 | | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | | - | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
108 | 122 | | |
109 | | - | |
| 123 | + | |
| 124 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
142 | | - | |
| 142 | + | |
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
| |||
149 | 149 | | |
150 | 150 | | |
151 | 151 | | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
152 | 167 | | |
153 | 168 | | |
154 | 169 | | |
| |||
214 | 229 | | |
215 | 230 | | |
216 | 231 | | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
217 | 238 | | |
218 | 239 | | |
219 | 240 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
44 | 61 | | |
45 | 62 | | |
46 | 63 | | |
| |||
60 | 77 | | |
61 | 78 | | |
62 | 79 | | |
| 80 | + | |
| 81 | + | |
63 | 82 | | |
| 83 | + | |
64 | 84 | | |
65 | 85 | | |
66 | 86 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
| 28 | + | |
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
| 39 | + | |
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
0 commit comments