mrpro.operators.ProximableFunctionalSeparableSum
- class mrpro.operators.ProximableFunctionalSeparableSum[source]
Bases:
Operator
[Unpack
[tuple
[Tensor
, …]],tuple
[Tensor
]]Separable Sum of Proximable Functionals.
This is a separable sum of the functionals. The forward method returns the sum of the functionals evaluated at the inputs, \(\sum_i f_i(x_i)\).
- __init__(*functionals: ProximableFunctional) None [source]
Initialize the separable sum of proximable functionals.
- Parameters:
functionals (
ProximableFunctional
) – The proximable functionals to be summed.
- __call__(*args: Unpack) Tout [source]
Apply the forward operator.
For more information, see
forward
.
- forward(*x: Tensor) tuple[Tensor] [source]
Apply the functionals to the inputs.
- Parameters:
x (
Tensor
) – The inputs to the functionals- Returns:
The sum of the functionals applied to the inputs
- prox(*x: Tensor, sigma: float | Tensor = 1) tuple[Tensor, ...] [source]
Apply the proximal operators of the functionals to the inputs.
- prox_convex_conj(*x: Tensor, sigma: float | Tensor = 1) tuple[Tensor, ...] [source]
Apply the proximal operators of the convex conjugate of the functionals to the inputs.
- __or__(other: ProximableFunctional | ProximableFunctionalSeparableSum) Self [source]
Separable sum functionals.
- __ror__(other: ProximableFunctional) Self [source]
Separable sum functionals.
- __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)