sciforge-core 0.0.4

Shared engineering primitives: materials, fasteners, fluids, propulsion taxonomies, std components.
Documentation
use sciforge_hub::prelude::maths::complex::Complex;
use sciforge_hub::prelude::physics::quantum as q;

pub fn bell_phi_plus() -> Vec<Complex> {
    q::bell_phi_plus()
}

pub fn bell_phi_minus() -> Vec<Complex> {
    q::bell_phi_minus()
}

pub fn bell_psi_plus() -> Vec<Complex> {
    q::bell_psi_plus()
}

pub fn bell_psi_minus() -> Vec<Complex> {
    q::bell_psi_minus()
}

pub fn concurrence(rho: &[Vec<Complex>]) -> f64 {
    q::concurrence_2qubit(rho)
}

pub fn fidelity_pure(psi: &[Complex], phi: &[Complex]) -> f64 {
    q::fidelity_pure(psi, phi)
}

pub fn fidelity_mixed(rho: &[Vec<Complex>], sigma: &[Vec<Complex>]) -> f64 {
    q::fidelity_mixed(rho, sigma)
}

pub fn von_neumann_entropy(rho: &[Vec<Complex>]) -> f64 {
    q::von_neumann_entropy(rho)
}

pub fn purity(rho: &[Vec<Complex>]) -> f64 {
    q::purity(rho)
}

pub fn entanglement_entropy(state: &[Complex], dim_a: usize) -> f64 {
    q::entanglement_entropy(state, dim_a)
}

pub fn density_matrix(state: &[Complex]) -> Vec<Vec<Complex>> {
    q::density_matrix(state)
}

pub fn partial_trace_b(
    rho: &[Vec<Complex>],
    dim_a: usize,
    dim_b: usize,
) -> Vec<Vec<Complex>> {
    q::partial_trace_b(rho, dim_a, dim_b)
}