3 个不稳定版本
0.2.0 | 2022年10月26日 |
---|---|
0.1.1 | 2022年8月7日 |
0.1.0 | 2021年10月30日 |
#14 in #gate
36 每月下载量
1MB
25K SLoC
Qurs
Qurs 是用 Rust 实现的 Qulacs。Qurs 目前只支持单个处理器,并且只依赖于 Qulacs 的 C 代码 (qulacs/src/csim
)。
Qulacs: https://github.com/qulacs
Qurs 使用 MIT 许可证。
构建
Qurs 使用 cc 和 bindgen 来构建 Qulacs 代码。bindgen 的要求列在 https://rust-lang.github.io/rust-bindgen/requirements.html
cargo build
示例
use num::{Complex, Zero};
use qurs::gate::{ry_gate, x_gate};
use qurs::prelude::*;
use qurs::{self, StateVec};
use std::f64::consts::PI;
fn main() {
const N: usize = 5;
//With array
let mut state = [Complex::zero(); 2usize.pow(N as u32)];
assert_eq!(state.qubit_count(), N);
// initialize to |00000>
state.set_zero_state();
// initialize to |00101>
state.set_computational_basis(0b00101);
// initialize with a random quantum state
state.set_haar_random_state();
// Apply x_gate for state
x_gate(0, &mut state);
// Rotate PI/2 with respect to Y
let angle = PI / 2.0;
ry_gate(0, angle, &mut state);
//With StateVec
let mut state = StateVec::new(N);
assert_eq!(state.qubit_count(), N);
state.set_zero_state();
state.set_computational_basis(0b00101);
state.set_haar_random_state();
x_gate(0, state.as_mut());
ry_gate(0, angle, state.as_mut());
}
依赖项
~0.7–3MB
~56K SLoC