pub struct PhotonicGate {
pub gate_type: PhotonicGateType,
pub target_modes: Vec<usize>,
pub parameters: HashMap<String, f64>,
}Expand description
Photonic quantum gate
Fields§
§gate_type: PhotonicGateTypeGate type
target_modes: Vec<usize>Target modes
parameters: HashMap<String, f64>Gate parameters
Implementations§
Source§impl PhotonicGate
impl PhotonicGate
Sourcepub fn beam_splitter(mode1: usize, mode2: usize, reflectivity: f64) -> Self
pub fn beam_splitter(mode1: usize, mode2: usize, reflectivity: f64) -> Self
Create beam splitter gate
Sourcepub fn phase_shifter(mode: usize, phase: f64) -> Self
pub fn phase_shifter(mode: usize, phase: f64) -> Self
Create phase shifter gate
Sourcepub fn mach_zehnder(
mode1: usize,
mode2: usize,
phase1: f64,
phase2: f64,
) -> Self
pub fn mach_zehnder( mode1: usize, mode2: usize, phase1: f64, phase2: f64, ) -> Self
Create Mach-Zehnder interferometer
Sourcepub fn apply(&self, system: &mut PhotonicSystem) -> QuantRS2Result<()>
pub fn apply(&self, system: &mut PhotonicSystem) -> QuantRS2Result<()>
Apply gate to photonic system
Trait Implementations§
Source§impl Clone for PhotonicGate
impl Clone for PhotonicGate
Source§fn clone(&self) -> PhotonicGate
fn clone(&self) -> PhotonicGate
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for PhotonicGate
impl RefUnwindSafe for PhotonicGate
impl Send for PhotonicGate
impl Sync for PhotonicGate
impl Unpin for PhotonicGate
impl UnwindSafe for PhotonicGate
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.