pub struct QrOptions {
pub rtol: Option<f64>,
/* private fields */
}Expand description
Options for QR decomposition with truncation control.
§Examples
use tensor4all_core::qr::{QrOptions, qr_with};
use tensor4all_core::{DynIndex, TensorDynLen};
let i = DynIndex::new_dyn(3);
let j = DynIndex::new_dyn(3);
let data: Vec<f64> = (0..9).map(|x| x as f64).collect();
let tensor = TensorDynLen::from_dense(vec![i.clone(), j.clone()], data).unwrap();
let opts = QrOptions::new().with_rtol(1e-10);
let (q, r) = qr_with::<f64>(&tensor, &[i], &opts).unwrap();
// Q * R recovers the original tensor
let recovered = q.contract(&r);
assert!(tensor.distance(&recovered) < 1e-12);Fields§
§rtol: Option<f64>Relative tolerance for QR row-norm truncation.
If None, uses the global default.
Implementations§
Trait Implementations§
impl Copy for QrOptions
Auto Trait Implementations§
impl Freeze for QrOptions
impl RefUnwindSafe for QrOptions
impl Send for QrOptions
impl Sync for QrOptions
impl Unpin for QrOptions
impl UnsafeUnpin for QrOptions
impl UnwindSafe for QrOptions
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>,
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