#[repr(i32)]pub enum CompressionAlgorithm {
SVD = 0,
LU = 1,
CI = 2,
Variational = 3,
}Expand description
Algorithm for tensor train compression.
These algorithms compress a tensor train to reduce bond dimensions.
§C API Representation
T4A_COMPRESS_SVD= 0T4A_COMPRESS_LU= 1T4A_COMPRESS_CI= 2T4A_COMPRESS_VARIATIONAL= 3
Variants§
SVD = 0
SVD-based compression (orthogonalization + truncation).
Sweeps through the tensor train, applying SVD at each bond. Optimal truncation for given tolerance.
LU = 1
LU-based compression.
Uses LU decomposition instead of SVD. Faster but may not give optimal truncation.
CI = 2
Cross Interpolation based compression.
Uses CI/skeleton decomposition for compression.
Variational = 3
Variational compression.
Optimizes the compressed tensor train using sweeping. Useful when target bond dimension is known.
Implementations§
Trait Implementations§
Source§impl Clone for CompressionAlgorithm
impl Clone for CompressionAlgorithm
Source§fn clone(&self) -> CompressionAlgorithm
fn clone(&self) -> CompressionAlgorithm
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 CompressionAlgorithm
impl Debug for CompressionAlgorithm
Source§impl Default for CompressionAlgorithm
impl Default for CompressionAlgorithm
Source§fn default() -> CompressionAlgorithm
fn default() -> CompressionAlgorithm
Returns the “default value” for a type. Read more
Source§impl Hash for CompressionAlgorithm
impl Hash for CompressionAlgorithm
Source§impl PartialEq for CompressionAlgorithm
impl PartialEq for CompressionAlgorithm
impl Copy for CompressionAlgorithm
impl Eq for CompressionAlgorithm
impl StructuralPartialEq for CompressionAlgorithm
Auto Trait Implementations§
impl Freeze for CompressionAlgorithm
impl RefUnwindSafe for CompressionAlgorithm
impl Send for CompressionAlgorithm
impl Sync for CompressionAlgorithm
impl Unpin for CompressionAlgorithm
impl UnsafeUnpin for CompressionAlgorithm
impl UnwindSafe for CompressionAlgorithm
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