pub trait RotationTwo<T>where
T: Config,{
Show 19 methods
// Required method
fn rotate_2(
&mut self,
axis_a: [u8; 2],
axis_b: [u8; 2],
a: usize,
b: usize,
theta: <T as Config>::Coeff,
);
// Provided methods
fn rxx(
&mut self,
a: usize,
b: usize,
theta: impl Into<<T as Config>::Coeff>,
) { ... }
fn rxx_many(
&mut self,
pairs: &[(usize, usize)],
theta: impl Into<<T as Config>::Coeff>,
) { ... }
fn rxy(
&mut self,
a: usize,
b: usize,
theta: impl Into<<T as Config>::Coeff>,
) { ... }
fn rxy_many(
&mut self,
pairs: &[(usize, usize)],
theta: impl Into<<T as Config>::Coeff>,
) { ... }
fn rxz(
&mut self,
a: usize,
b: usize,
theta: impl Into<<T as Config>::Coeff>,
) { ... }
fn rxz_many(
&mut self,
pairs: &[(usize, usize)],
theta: impl Into<<T as Config>::Coeff>,
) { ... }
fn ryx(
&mut self,
a: usize,
b: usize,
theta: impl Into<<T as Config>::Coeff>,
) { ... }
fn ryx_many(
&mut self,
pairs: &[(usize, usize)],
theta: impl Into<<T as Config>::Coeff>,
) { ... }
fn ryy(
&mut self,
a: usize,
b: usize,
theta: impl Into<<T as Config>::Coeff>,
) { ... }
fn ryy_many(
&mut self,
pairs: &[(usize, usize)],
theta: impl Into<<T as Config>::Coeff>,
) { ... }
fn ryz(
&mut self,
a: usize,
b: usize,
theta: impl Into<<T as Config>::Coeff>,
) { ... }
fn ryz_many(
&mut self,
pairs: &[(usize, usize)],
theta: impl Into<<T as Config>::Coeff>,
) { ... }
fn rzx(
&mut self,
a: usize,
b: usize,
theta: impl Into<<T as Config>::Coeff>,
) { ... }
fn rzx_many(
&mut self,
pairs: &[(usize, usize)],
theta: impl Into<<T as Config>::Coeff>,
) { ... }
fn rzy(
&mut self,
a: usize,
b: usize,
theta: impl Into<<T as Config>::Coeff>,
) { ... }
fn rzy_many(
&mut self,
pairs: &[(usize, usize)],
theta: impl Into<<T as Config>::Coeff>,
) { ... }
fn rzz(
&mut self,
a: usize,
b: usize,
theta: impl Into<<T as Config>::Coeff>,
) { ... }
fn rzz_many(
&mut self,
pairs: &[(usize, usize)],
theta: impl Into<<T as Config>::Coeff>,
) { ... }
}Expand description
Two-qubit Pauli rotations, generated by P_a ⊗ P_b for any pair of
non-identity Paulis. Provides the named convenience methods
rxx, rxy, …, rzz on top of the generic rotate_2.
Required Methods§
Provided Methods§
Sourcefn rxx(&mut self, a: usize, b: usize, theta: impl Into<<T as Config>::Coeff>)
fn rxx(&mut self, a: usize, b: usize, theta: impl Into<<T as Config>::Coeff>)
exp(-i θ/2 · X_a X_b).
Sourcefn rxx_many(
&mut self,
pairs: &[(usize, usize)],
theta: impl Into<<T as Config>::Coeff>,
)
fn rxx_many( &mut self, pairs: &[(usize, usize)], theta: impl Into<<T as Config>::Coeff>, )
Explicit batched form of [rxx].
Sourcefn rxy(&mut self, a: usize, b: usize, theta: impl Into<<T as Config>::Coeff>)
fn rxy(&mut self, a: usize, b: usize, theta: impl Into<<T as Config>::Coeff>)
exp(-i θ/2 · X_a Y_b).
Sourcefn rxy_many(
&mut self,
pairs: &[(usize, usize)],
theta: impl Into<<T as Config>::Coeff>,
)
fn rxy_many( &mut self, pairs: &[(usize, usize)], theta: impl Into<<T as Config>::Coeff>, )
Explicit batched form of [rxy].
Sourcefn rxz(&mut self, a: usize, b: usize, theta: impl Into<<T as Config>::Coeff>)
fn rxz(&mut self, a: usize, b: usize, theta: impl Into<<T as Config>::Coeff>)
exp(-i θ/2 · X_a Z_b).
Sourcefn rxz_many(
&mut self,
pairs: &[(usize, usize)],
theta: impl Into<<T as Config>::Coeff>,
)
fn rxz_many( &mut self, pairs: &[(usize, usize)], theta: impl Into<<T as Config>::Coeff>, )
Explicit batched form of [rxz].
Sourcefn ryx(&mut self, a: usize, b: usize, theta: impl Into<<T as Config>::Coeff>)
fn ryx(&mut self, a: usize, b: usize, theta: impl Into<<T as Config>::Coeff>)
exp(-i θ/2 · Y_a X_b).
Sourcefn ryx_many(
&mut self,
pairs: &[(usize, usize)],
theta: impl Into<<T as Config>::Coeff>,
)
fn ryx_many( &mut self, pairs: &[(usize, usize)], theta: impl Into<<T as Config>::Coeff>, )
Explicit batched form of [ryx].
Sourcefn ryy(&mut self, a: usize, b: usize, theta: impl Into<<T as Config>::Coeff>)
fn ryy(&mut self, a: usize, b: usize, theta: impl Into<<T as Config>::Coeff>)
exp(-i θ/2 · Y_a Y_b).
Sourcefn ryy_many(
&mut self,
pairs: &[(usize, usize)],
theta: impl Into<<T as Config>::Coeff>,
)
fn ryy_many( &mut self, pairs: &[(usize, usize)], theta: impl Into<<T as Config>::Coeff>, )
Explicit batched form of [ryy].
Sourcefn ryz(&mut self, a: usize, b: usize, theta: impl Into<<T as Config>::Coeff>)
fn ryz(&mut self, a: usize, b: usize, theta: impl Into<<T as Config>::Coeff>)
exp(-i θ/2 · Y_a Z_b).
Sourcefn ryz_many(
&mut self,
pairs: &[(usize, usize)],
theta: impl Into<<T as Config>::Coeff>,
)
fn ryz_many( &mut self, pairs: &[(usize, usize)], theta: impl Into<<T as Config>::Coeff>, )
Explicit batched form of [ryz].
Sourcefn rzx(&mut self, a: usize, b: usize, theta: impl Into<<T as Config>::Coeff>)
fn rzx(&mut self, a: usize, b: usize, theta: impl Into<<T as Config>::Coeff>)
exp(-i θ/2 · Z_a X_b).
Sourcefn rzx_many(
&mut self,
pairs: &[(usize, usize)],
theta: impl Into<<T as Config>::Coeff>,
)
fn rzx_many( &mut self, pairs: &[(usize, usize)], theta: impl Into<<T as Config>::Coeff>, )
Explicit batched form of [rzx].
Sourcefn rzy(&mut self, a: usize, b: usize, theta: impl Into<<T as Config>::Coeff>)
fn rzy(&mut self, a: usize, b: usize, theta: impl Into<<T as Config>::Coeff>)
exp(-i θ/2 · Z_a Y_b).
Sourcefn rzy_many(
&mut self,
pairs: &[(usize, usize)],
theta: impl Into<<T as Config>::Coeff>,
)
fn rzy_many( &mut self, pairs: &[(usize, usize)], theta: impl Into<<T as Config>::Coeff>, )
Explicit batched form of [rzy].
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".