Skip to content

Conversation

chriseclectic
Copy link
Member

@chriseclectic chriseclectic commented Mar 2, 2018

Description

WIP on refactoring simulator backends (related to issues #281, and #314).

It's still in progress but I'm putting the WIP here so @ajavadia and others can push to my fork.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Current changes

  • Added TensorIndex C++ class (tensor_index.hpp) for multi-partite qubit vector indexing
  • Added QubitVector C++ class (qubit_vector.hpp) for multi-partite qubit vector algebra
  • Reworked C++ simulator backends to use QubitVector class and methods instead of std::vector.
  • Added snapshot command for simulator for caching a copy of the current simulator state and returning in the output
  • Added snapshot circuit extension as Gate (will introduce pragmas after this release)
  • Removed the ability to return the cached states from the save command (use snapshot instead)
  • Removed the ability to return the final quantum state of the simulator (use snapshot instead)
  • Includes pull request Fix bug with auto-generated CNOT coherent error matrix in C++ simulator #318 for fixing coherent error bug

Still TODO:

  • Modify qiskit backend classes for special simulator cases @ajavadia
  • Write qiskit circuit-level tests for simulator backends.

ajavadia and others added 27 commits December 26, 2017 23:01
…ror matrices from cpp simulator to python code

- qiskit_simulator now only takes a U_error matrix
- parameters ‘calibration_error’, ‘detuning_error’, ‘zz_error’ for CX
and X90 gates are now converted to U_error matrices in python before
being passed to simulator
- fixed incorrect matrix used for CX calibration errors
- added check in C++ code that U_error is unitary
- added python unit tests to test U_error building matrices
- fixed directory change in makefile
Modification is so that pretty printing of arrays doesn’t add new lines.
- Encapsulated multi-partite qubit state vector updates in a
QubitVector class
- Added TensorIndex class used for indexing in the QubitVector class.
- Reworked ideal_backend and qubit_backend to use QubitVector methods
- removed ability to display final and saved quantum states
- added “snapshot” instruction and added ability to display snapshots
of quantum state
…iskit-sdk-py into chriseclectic-simulator-refactor
@chriseclectic
Copy link
Member Author

Closing to add new WIP pull request of rebased branched in #351

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants