-
Notifications
You must be signed in to change notification settings - Fork 10
Description
Description
Imagine your given the task to write a numerical program on your computer, maybe a simple one like summing certain numbers or a bit more difficult to integrate a function. Now you know an algorithm and you'll start implementing it. Are you writing bit-operations?
No, most certainly not! You'll use fundamental arithmetic operations like * + - / ^
or even an existing library.
But in Quantum computing frameworks we're often restricted to really using low-level qubit operations, like the Pauli gates or the Hadamard gate. This makes writing elaborate algorithms very strenuous and you might find yourself re-implementing the same bits of code again and again.
To allow writing algorithms more quickly and to enable re-use of modular code blocks, we've started a library of useful circuits: Qiskit's circuit library. In this project, you'll add important circuits for basic arithmetic operations like addition or multiplication, including some tests to validate them.
Examples:
- Ripple-carry adder: https://arxiv.org/pdf/quant-ph/0410184.pdf
- QFT-based adder: https://arxiv.org/pdf/quant-ph/0008033.pdf
- Multiplication: https://arxiv.org/pdf/1411.5949.pdf
- and others!
Mentor/s
Julien Gacon (@Cryoris), Pre-Doc researcher at IBM Research Zurich, Qiskit Terra and Aqua core developer
Type of participant
You just need basic knowledge of Python and Qiskit circuits 🙂 Ideally you're familiar with some arithmetic circuits, such as the adder circuits.
Number of participants
2
Deliverable
Depending on how fast we move along there are different levels we can reach:
Level 1:
Basic arithmetic circuits (and tests) added to the circuit library:
- Adders
- Multipliers
- (opt) Tutorial
Level 2:
- Piecewise Polynomials
Level 3:
- Inverse square root
- Arcsine
Progress is tracked here: https://github.com/Cryoris/qiskit-terra/projects/2