mrpro.operators.models.MonoExponentialDecay

class mrpro.operators.models.MonoExponentialDecay[source]

Bases: SignalModel[Tensor, Tensor]

Signal model for mono-exponential decay.

__init__(decay_time: float | Tensor)[source]

Initialize mono-exponential signal model.

Parameters:

decay_time (float | Tensor) – time points when model is evaluated with shape (time, …)

__call__(*args: Unpack) Tout[source]

Apply the forward operator.

For more information, see forward.

Note

Prefer using operator_instance(*parameters), i.e. using __call__ over using forward.

forward(m0: Tensor, decay_constant: Tensor) tuple[Tensor][source]

Apply mono-exponential signal model.

Parameters:
  • m0 (Tensor) – equilibrium signal / proton density with shape (*other, coils, z, y, x)

  • decay_constant (Tensor) – exponential decay constant (e.g. T2, T2* or T1rho) with shape (*other, coils, z, y, x)

Returns:

signal with shape (time, *other, coils, z, y, x)

__add__(other: Operator[Unpack, Tout]) Operator[Unpack, Tout][source]
__add__(other: Tensor) Operator[Unpack, tuple[Unpack]]

Operator addition.

Returns lambda x: self(x) + other(x) if other is a operator, lambda x: self(x) + other*x if other is a tensor

__matmul__(other: Operator[Unpack, tuple[Unpack]]) Operator[Unpack, Tout][source]

Operator composition.

Returns lambda x: self(other(x))

__mul__(other: Tensor | complex) Operator[Unpack, Tout][source]

Operator multiplication with tensor.

Returns lambda x: self(x*other)

__radd__(other: Tensor) Operator[Unpack, tuple[Unpack]][source]

Operator right addition.

Returns lambda x: other*x + self(x)

__rmul__(other: Tensor | complex) Operator[Unpack, Tout][source]

Operator multiplication with tensor.

Returns lambda x: other*self(x)