quantum-sim 0.0.1

Simple Quantum Simulator for Rust
Documentation
use quantum_sim::gates::Gate;
use quantum_sim::random_gate::{RandomDensityMat, RandomUnitary};

fn main() {
    let u = RandomUnitary::<f64>::new(2).is_real(false).dim(3).build();
    let rho = RandomDensityMat::<f64>::new(2).dim(3).build();
    let rho_bures = RandomDensityMat::<f64>::new(2)
        .bures()
        .is_real(true)
        .build();
    println!("{:?}", u);
    println!("{:?}", rho);
    println!("{:?}", rho_bures);
    // let u = random_unitary(3, false);
    // gates::Gate::<f64>::i();
    // // Verify unitarity: U^† U ≈ I
    // let u_adjoint = u.t().mapv(|c| c.conj());
    // let identity = u_adjoint.dot(&u);
    // let mut Utri = identity.clone();
    // Utri.diag_mut().fill(Complex::new(0.0, 0.0));

    // println!("U^† U:\n{:?}", identity.diag());
    // println!("U^† U:\n{:?}", Utri.sum());
}