Struct roqoqo::operations::BeamSplitter
source · pub struct BeamSplitter {
mode_0: usize,
mode_1: usize,
theta: CalculatorFloat,
phi: CalculatorFloat,
}
Expand description
The 2-mode beam splitter which splits a beam with a transmission amplitude cos(θ) and a reflection amplitude exp(i * φ) * sin(θ).
Fields§
§mode_0: usize
The first mode the beam-splitter is applied to.
mode_1: usize
The second mode the beam-splitter is applied to.
theta: CalculatorFloat
The transmittivity angle of the beam-splitter.
phi: CalculatorFloat
The phase angle of the beam-splitter.
Implementations§
source§impl BeamSplitter
impl BeamSplitter
sourcepub fn theta(&self) -> &CalculatorFloat
pub fn theta(&self) -> &CalculatorFloat
Returns the value of the field theta
.
sourcepub fn phi(&self) -> &CalculatorFloat
pub fn phi(&self) -> &CalculatorFloat
Returns the value of the field phi
.
sourcepub fn new(
mode_0: usize,
mode_1: usize,
theta: CalculatorFloat,
phi: CalculatorFloat
) -> Self
pub fn new( mode_0: usize, mode_1: usize, theta: CalculatorFloat, phi: CalculatorFloat ) -> Self
Creates a new instance of BeamSplitter
.
Trait Implementations§
source§impl Clone for BeamSplitter
impl Clone for BeamSplitter
source§fn clone(&self) -> BeamSplitter
fn clone(&self) -> BeamSplitter
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for BeamSplitter
impl Debug for BeamSplitter
source§impl<'de> Deserialize<'de> for BeamSplitter
impl<'de> Deserialize<'de> for BeamSplitter
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl From<BeamSplitter> for ModeGateOperation
impl From<BeamSplitter> for ModeGateOperation
Implements the From trait from this Operation.
source§fn from(v: BeamSplitter) -> Self
fn from(v: BeamSplitter) -> Self
Performs the conversion.
source§impl From<BeamSplitter> for Operation
impl From<BeamSplitter> for Operation
Implements the From trait from this Operation.
source§fn from(v: BeamSplitter) -> Self
fn from(v: BeamSplitter) -> Self
Performs the conversion.
source§impl From<BeamSplitter> for TwoModeGateOperation
impl From<BeamSplitter> for TwoModeGateOperation
Implements the From trait from this Operation.
source§fn from(v: BeamSplitter) -> Self
fn from(v: BeamSplitter) -> Self
Performs the conversion.
source§impl From<BeamSplitter> for TwoModeOperation
impl From<BeamSplitter> for TwoModeOperation
Implements the From trait from this Operation.
source§fn from(v: BeamSplitter) -> Self
fn from(v: BeamSplitter) -> Self
Performs the conversion.
source§impl InvolveModes for BeamSplitter
impl InvolveModes for BeamSplitter
Implements InvolveModes trait for the bosonic modes involved in this Operation.
source§fn involved_modes(&self) -> InvolvedModes
fn involved_modes(&self) -> InvolvedModes
Returns a list of all involved bosonic modes.
source§impl InvolveQubits for BeamSplitter
impl InvolveQubits for BeamSplitter
source§fn involved_qubits(&self) -> InvolvedQubits
fn involved_qubits(&self) -> InvolvedQubits
Returns all qubits involved in operation.
source§fn involved_classical(&self) -> InvolvedClassical
fn involved_classical(&self) -> InvolvedClassical
source§impl Operate for BeamSplitter
impl Operate for BeamSplitter
Implements the universal basic trait Operate for this Operation.
source§impl OperateTwoMode for BeamSplitter
impl OperateTwoMode for BeamSplitter
Trait for Operations acting on exactly two bosonic modes.
source§impl PartialEq for BeamSplitter
impl PartialEq for BeamSplitter
source§fn eq(&self, other: &BeamSplitter) -> bool
fn eq(&self, other: &BeamSplitter) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl Serialize for BeamSplitter
impl Serialize for BeamSplitter
source§impl Substitute for BeamSplitter
impl Substitute for BeamSplitter
Implements Substitute trait allowing to replace symbolic parameters and to perform qubit mappings.
source§fn substitute_parameters(
&self,
calculator: &Calculator
) -> Result<Self, RoqoqoError>
fn substitute_parameters( &self, calculator: &Calculator ) -> Result<Self, RoqoqoError>
Substitutes symbolic parameters in clone of the operation.
source§fn remap_qubits(
&self,
mapping: &HashMap<usize, usize>
) -> Result<Self, RoqoqoError>
fn remap_qubits( &self, mapping: &HashMap<usize, usize> ) -> Result<Self, RoqoqoError>
Remaps the qubits in clone of the operation.
source§impl SubstituteModes for BeamSplitter
impl SubstituteModes for BeamSplitter
Implements SubstituteModes trait allowing to perform bosonic mode mappings.
source§fn remap_modes(
&self,
mapping: &HashMap<usize, usize>
) -> Result<Self, RoqoqoError>
fn remap_modes( &self, mapping: &HashMap<usize, usize> ) -> Result<Self, RoqoqoError>
Remaps the modes in clone of the operation.
source§impl SupportedVersion for BeamSplitter
impl SupportedVersion for BeamSplitter
source§impl TryFrom<ModeGateOperation> for BeamSplitter
impl TryFrom<ModeGateOperation> for BeamSplitter
Implements the core::convert::TryFrom trait into this Operation.
source§impl TryFrom<Operation> for BeamSplitter
impl TryFrom<Operation> for BeamSplitter
Implements the core::convert::TryFrom trait into this Operation.
source§impl TryFrom<TwoModeGateOperation> for BeamSplitter
impl TryFrom<TwoModeGateOperation> for BeamSplitter
Implements the core::convert::TryFrom trait into this Operation.
source§impl TryFrom<TwoModeOperation> for BeamSplitter
impl TryFrom<TwoModeOperation> for BeamSplitter
Implements the core::convert::TryFrom trait into this Operation.
impl ImplementedIn1point6 for BeamSplitter
impl OperateModeGate for BeamSplitter
impl OperateTwoModeGate for BeamSplitter
impl StructuralPartialEq for BeamSplitter
Auto Trait Implementations§
impl Freeze for BeamSplitter
impl RefUnwindSafe for BeamSplitter
impl Send for BeamSplitter
impl Sync for BeamSplitter
impl Unpin for BeamSplitter
impl UnwindSafe for BeamSplitter
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
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>
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
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
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.