-
Notifications
You must be signed in to change notification settings - Fork 3
Home
Welcome to the qc-sim wiki!
qc-sim is a program that simulates a quantum computer (eventually both ideal and nonideal). Its advantage over other simulators is its ability to use any gate that is unitary, due to its custom gate function. It is still in development, but progressing quickly.
The program can handle any number of qubits; its only limitation is the processing power of your computer. It can also apply any unitary, appropriately sized gate through the custom gate function. Currently, when it asks if you wish to simulate an ideal or nonideal quantum computer, the ideal version is the only one that works; the nonideal quantum computer simulator will be worked on once I finish the ideal simulator (see problem 3). You can save gates used to a file that can also be imported into the program (see problem 1 before trying to import). Eventually, measurement will be added as a function to the system, as well as the probability of measurement producing the |0> or |1> state at the end (see problem 2 before trying to measure, or if wondering about it printing "Hrm" and "None" at the end).
The system does not have input sanitation. If it is a real problem, you can open an issue about it, but I don't think it will be a huge problem. When creating a custom gate currently the elements can only be numbers; I'm working on making it so there can be constants like pi added (see problem 4).
-
Currently a file with gates can be imported into the program but not used. I need to format the file into a dictionary of numpy matrices with their names that the user can then call from.
-
Measurement and probability functions don't currently do anything; they just print "Hrm" and return nothing. This is a matter of lack of knowledge on the subject on my part.
-
The nonideal simulator currently is not implemented. I will start work on this once I finish problems one and two.
-
A nice improvement would be to allow a wider array of custom gates by allowing pi or other such constants as elements. This is a lower priority, as it doesn't have to do with the program actually working.
-
Input sanitation might be nice, but it's kind of a pain; we'll see whether it actually turns out to be a problem (i.e. if users raise issues over it).
-
The user interface is kind of bad, there's also no information about how the program works in-program. This is low priority, as its the most cosmetic issue.
Feel free to fork and contribute directly or raise issues! Any help is appreciated. The system is entirely Python 3, with numpy being used extensively. If you'd be willing to download the program and run different circuits on it to test the program's results, I'd also appreciate that.