pub struct NltvParams {
pub lambda: f64,
pub rho: Option<f64>,
pub mu: f64,
pub tol: f64,
pub max_iter: usize,
pub tol_newton: f64,
pub max_iter_newton: usize,
pub b0: f64,
pub echo_times: Vec<f64>,
pub te: EchoTime,
pub pad: [i64; 3],
}Expand description
NLTV algorithm parameters (QSM.jl nltv defaults)
Fields§
§lambda: f64TV regularisation parameter
rho: Option<f64>ADMM penalty for the TV term; None uses QSM.jl’s default, 100 * lambda
mu: f64ADMM penalty for the data term
tol: f64Stopping tolerance on ||x - x_prev|| / ||x||
max_iter: usizeMaximum ADMM iterations
tol_newton: f64Stopping tolerance for the Newton iterations of the data subproblem
max_iter_newton: usizeMaximum Newton iterations per ADMM iteration
b0: f64Field strength in Tesla (scan parameter, for the radian conversion)
echo_times: Vec<f64>Echo times in seconds, in acquisition order (scan parameter, for the radian conversion).
te: EchoTimeWhich echo time the radian conversion uses. Default EchoTime::First: QSM.jl’s nltv
(src/inversion/nltv.jl, fde4b92) takes the field or phase of each echo separately and
gives no rule for a field combined over echoes, so the first echo time, the default where
the reference does not say.
pad: [i64; 3]Zero padding per axis, QSM.jl’s pad (default [0, 0, 0], QSM.jl’s): < 0 does not
pad that axis, ≥ 0 pads it by at least that many voxels, rounded up to QSM.jl’s fast
FFT size (see with_qsmjl_padding).
Trait Implementations§
Source§impl Clone for NltvParams
impl Clone for NltvParams
Source§fn clone(&self) -> NltvParams
fn clone(&self) -> NltvParams
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for NltvParams
impl Debug for NltvParams
Source§impl Default for NltvParams
impl Default for NltvParams
Auto Trait Implementations§
impl Freeze for NltvParams
impl RefUnwindSafe for NltvParams
impl Send for NltvParams
impl Sync for NltvParams
impl Unpin for NltvParams
impl UnsafeUnpin for NltvParams
impl UnwindSafe for NltvParams
Blanket Implementations§
Source§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
impl<T> CloneAny for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for 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> ⓘ
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