Decoherence
QCGPU provides a way to easily simulate the effects of decoherence on the quantum computer. The effects are simulated by a random gate, corresponding to a random rotation around the \(z\) axis of the bloch sphere.
The angle of the rotation is a normal distrobuted value, with the varience as the strength factor d
.
To avoid performance costs when not being used, decoherence can be enabled via a feature.
Change the dependency in cargo.toml
to
[dependencies]
qcgpu = { version = "0.1", features = ["decoherence"] }
Now you can add decoherence to your simulator.
To set the amount of decoherence, the set_decoherence
method is used. Its arguments are the strength of the decoherence.
This will affect all following gate applications.
# #![allow(unused_variables)] #fn main() { use qcgpu::State; let mut register = State::new(5, 0); register.set_decoherence(0.4); #}
You can also manually decohere the register based on the previously set strength value. This method is automatically called by all gate applications.
# #![allow(unused_variables)] #fn main() { register.decohere(); #}