Skip to main content

quantrs2_sim/quantum_reservoir_computing/
quantumreservoircomputer_encoding_2.rs

1//! # QuantumReservoirComputer - encoding Methods
2//!
3//! This module contains method implementations for `QuantumReservoirComputer`.
4//!
5//! 🤖 Generated with [SplitRS](https://github.com/cool-japan/splitrs)
6
7use crate::circuit_interfaces::{
8    CircuitInterface, InterfaceCircuit, InterfaceGate, InterfaceGateType,
9};
10use crate::error::Result;
11use scirs2_core::ndarray::{Array1, Array2};
12use scirs2_core::random::prelude::*;
13
14use super::quantumreservoircomputer_type::QuantumReservoirComputer;
15
16impl QuantumReservoirComputer {
17    /// Phase encoding
18    pub(super) fn encode_phase(&mut self, input: &Array1<f64>) -> Result<()> {
19        let num_inputs = input.len().min(self.config.num_qubits);
20        for i in 0..num_inputs {
21            let angle = input[i] * 2.0 * std::f64::consts::PI;
22            self.apply_single_qubit_rotation(i, InterfaceGateType::RZ(angle))?;
23        }
24        Ok(())
25    }
26}