use crate::error::Result;
use scirs2_core::random::prelude::*;
use super::quantumreservoircomputer_type::QuantumReservoirComputer;
impl QuantumReservoirComputer {
pub(super) fn evolve_unitary(&mut self) -> Result<()> {
self.simulator
.apply_interface_circuit(&self.reservoir_circuit)?;
Ok(())
}
pub(super) fn evolve_open_system(&mut self) -> Result<()> {
self.evolve_unitary()?;
self.apply_decoherence()?;
Ok(())
}
pub(super) fn evolve_nisq(&mut self) -> Result<()> {
self.evolve_unitary()?;
self.apply_gate_errors()?;
self.apply_measurement_errors()?;
Ok(())
}
pub(super) fn evolve_adiabatic(&mut self) -> Result<()> {
self.evolve_unitary()?;
Ok(())
}
}