You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Per earlier discussions, this ticket is to track the integration of the (C++11) Qrack quantum computer simulator as an optional back end, via the qook Rust bindings: https://crates.io/crates/qook.
Firstly, Qrack needs to simulate the CNOT, NOT, and MCX quantum instructions of the oracle, (all of which it can do natively).
Qrack also needs to track and internally mirror allocation of every qubit that participates in a given system of qubits that can potentially interact among each other. If the qubits are in different simulator instances, they cannot interact, though simulator instances or "registers" can be readily composed and decomposed along separable qubit subsystem bounds, (without guarantee that "decompose" operations will not denormalize, but Qrack internals do not denormalize, and it is the resposibility of user code to not denormalize when "decomposing," as can be achieved by measuring first). However, notably, the Qrack simulator is designed for easy dynamic bounds resizing and dynamic allocation (and deallocation) of qubits, by the user.
Whatever the oracle inputs are, Qrack also needs to simulate the preparation of the input, whether this is simply via parallel Hadamard gates to all input qubits.
I suspect those are the three major "ingredients." I'm trying my hand at this, but all input is welcome. (I can't assign myself to this issue ticket on GitHub, by the way, but I have created a fork.)
[EDITED above, for clarity and specificity.]
The text was updated successfully, but these errors were encountered:
Per earlier discussions, this ticket is to track the integration of the (C++11) Qrack quantum computer simulator as an optional back end, via the
qook
Rust bindings: https://crates.io/crates/qook.(The Qrack library and utility binary installer is updated with each subsequent release: https://github.com/unitaryfund/qrack/releases)
@smml1996 and I have discussed a plan.
Firstly, Qrack needs to simulate the
CNOT
,NOT
, andMCX
quantum instructions of the oracle, (all of which it can do natively).Qrack also needs to track and internally mirror allocation of every qubit that participates in a given system of qubits that can potentially interact among each other. If the qubits are in different simulator instances, they cannot interact, though simulator instances or "registers" can be readily composed and decomposed along separable qubit subsystem bounds, (without guarantee that "decompose" operations will not denormalize, but Qrack internals do not denormalize, and it is the resposibility of user code to not denormalize when "decomposing," as can be achieved by measuring first). However, notably, the Qrack simulator is designed for easy dynamic bounds resizing and dynamic allocation (and deallocation) of qubits, by the user.
Whatever the oracle inputs are, Qrack also needs to simulate the preparation of the input, whether this is simply via parallel Hadamard gates to all input qubits.
I suspect those are the three major "ingredients." I'm trying my hand at this, but all input is welcome. (I can't assign myself to this issue ticket on GitHub, by the way, but I have created a fork.)
[EDITED above, for clarity and specificity.]
The text was updated successfully, but these errors were encountered: