pub enum ConjState {
Undirected,
Ket,
Bra,
}Expand description
Conjugate state (direction) of an index.
This enum represents whether an index has a direction (bra/ket) or is directionless. The direction is used to determine contractability between indices.
§QSpace Compatibility
In QSpace (extern/qspace-v4-pub), index direction is encoded via trailing * in itags:
- Ket = ingoing index (QSpace: itag without trailing
*) - Bra = outgoing index (QSpace: itag with trailing
*)
§ITensors.jl Compatibility
ITensors.jl uses directionless indices by default (convenient for general tensor operations).
The Undirected variant provides this behavior.
Variants§
Undirected
Directionless index (ITensors.jl-like default).
Undirected indices can contract with other undirected indices if they have the same ID and dimension.
Ket
Ket (ingoing) index.
In QSpace terminology, this corresponds to an index without a trailing * in its itag.
Ket indices can only contract with Bra indices (and vice versa).
Bra
Bra (outgoing) index.
In QSpace terminology, this corresponds to an index with a trailing * in its itag.
Bra indices can only contract with Ket indices (and vice versa).
Trait Implementations§
impl Copy for ConjState
impl Eq for ConjState
impl StructuralPartialEq for ConjState
Auto Trait Implementations§
impl Freeze for ConjState
impl RefUnwindSafe for ConjState
impl Send for ConjState
impl Sync for ConjState
impl Unpin for ConjState
impl UnwindSafe for ConjState
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moreSource§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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> Twhere
Self: Distribution<T>,
§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> Twhere
Self: Distribution<T>,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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>
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>
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 more