Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Arithmetic circuit library #12

Closed
6 tasks
Cryoris opened this issue Jan 28, 2021 · 6 comments
Closed
6 tasks

Arithmetic circuit library #12

Cryoris opened this issue Jan 28, 2021 · 6 comments
Assignees
Labels
from mentors This project is proposed by mentors type:qiskit-terra

Comments

@Cryoris
Copy link
Collaborator

Cryoris commented Jan 28, 2021

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:

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

@Cryoris Cryoris added from mentors This project is proposed by mentors type:qiskit-terra labels Jan 28, 2021
@HuangJunye
Copy link
Collaborator

@mantcep @ManjulaGandhi Can you comment on this issue so that I can assign you? Please also work with your mentor to refine the project, define scope and deliverables and update the project description in this issue.

@Cryoris
Copy link
Collaborator Author

Cryoris commented Mar 5, 2021

We synced on the project plan and I updated the description accordingly.

@ManjulaGandhi
Copy link

Thanks a lot for selecting! Would be very glad to contribute and be part of the team.

@mantcep
Copy link

mantcep commented Mar 6, 2021

Really glad to be working on this project! Thanks @Cryoris for updating the description!

@desireevl
Copy link

Hey, excited to see these implemented in Qiskit! Was just wondering if this project is similar to this? https://github.com/hkhetawat/QArithmetic

@Cryoris
Copy link
Collaborator Author

Cryoris commented Apr 16, 2021

Some of the operations are the same yeah, though this projects implements them as library circuits with rigorous tests rather than as functions (also we might include some more variants) see e.g. the first part on the adders: Qiskit/qiskit#6164.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
from mentors This project is proposed by mentors type:qiskit-terra
Projects
None yet
Development

No branches or pull requests

5 participants