Advanced quantum computation simulator, written in Rust
```rust use qvnt::prelude::*;
// create quantum register, called 'x', with 10 qubits let mut qreg = QReg::new(10).aliaschar('x'); // or with initial state, where 3 qubits are already in state |1> // let qreg = QReg::new(10).aliaschar('x').init_state(0b0011100000);
// get virtual register 'x', to interact with specified qubits let x = qreg.getvregbychar('x').unwrap();
// create qft operation, acting on first 5 qubits in q_reg let op = Op::qft(x[0] | x[1] | x[2] | x[3] | x[4]);
// apply operation q_reg.apply(&op);
// measure and write first 3 qubit, which leads to collapse of qreg wave function println!("{}", qreg.measure_mask(x[0] | x[1] | x[2])); ```
ALL operators have inverse versions, accessing by .dgr()
method:
rust
let usual_op = op::s(0b1);
// Inverse S operator
let inverse_op = op::s(0b1).dgr();
Also, ALL these operators could be turned into controlled ones, using .c(...)
method:
rust
let usual_op = op::x(0b001);
// NOT gate, controlled by 2 qubits, aka CCNOT gate, aka Toffoli gate
let controlled_op = op::x(0b001).c(0b110);