#[repr(i32)]pub enum CanonicalForm {
Unitary = 0,
LU = 1,
CI = 2,
}Expand description
Canonical form for tensor train / tree tensor network.
Specifies the mathematical form of the canonical representation. Each form uses a specific factorization algorithm internally.
§C API Representation
T4A_CANONICAL_UNITARY= 0T4A_CANONICAL_LU= 1T4A_CANONICAL_CI= 2
Variants§
Unitary = 0
Unitary (orthogonal/isometric) canonical form.
Each tensor is isometric towards the orthogonality center. Uses QR decomposition internally. Properties:
- Numerically stable
- Easy norm computation
- Standard canonical form for DMRG
LU = 1
LU-based canonical form.
Uses rank-revealing LU decomposition. Properties:
- Faster than QR
- One factor has unit diagonal
CI = 2
Cross Interpolation (CI) canonical form.
Uses CI/skeleton decomposition. Properties:
- Adaptive rank selection
- Efficient for low-rank structures
Implementations§
Trait Implementations§
Source§impl Clone for CanonicalForm
impl Clone for CanonicalForm
Source§fn clone(&self) -> CanonicalForm
fn clone(&self) -> CanonicalForm
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 moreSource§impl Debug for CanonicalForm
impl Debug for CanonicalForm
Source§impl Default for CanonicalForm
impl Default for CanonicalForm
Source§fn default() -> CanonicalForm
fn default() -> CanonicalForm
Returns the “default value” for a type. Read more
Source§impl Hash for CanonicalForm
impl Hash for CanonicalForm
Source§impl PartialEq for CanonicalForm
impl PartialEq for CanonicalForm
impl Copy for CanonicalForm
impl Eq for CanonicalForm
impl StructuralPartialEq for CanonicalForm
Auto Trait Implementations§
impl Freeze for CanonicalForm
impl RefUnwindSafe for CanonicalForm
impl Send for CanonicalForm
impl Sync for CanonicalForm
impl Unpin for CanonicalForm
impl UnsafeUnpin for CanonicalForm
impl UnwindSafe for CanonicalForm
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>,
Casts
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
Mutably borrows from an owned value. Read more
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<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
Checks if this value is equivalent to the given key. Read more
§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
Compare self to
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>
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 more