diff --git a/src/proximalMaps/ProxLLR.jl b/src/proximalMaps/ProxLLR.jl index 9745b2c0..79880ebb 100644 --- a/src/proximalMaps/ProxLLR.jl +++ b/src/proximalMaps/ProxLLR.jl @@ -30,7 +30,7 @@ LLRRegularization(λ; shape::NTuple{N,TI}, blockSize::NTuple{N,TI} = ntuple(_ - performs the proximal map for LLR regularization using singular-value-thresholding """ -function prox!(reg::LLRRegularization{TR, N, TI}, x::AbstractArray{Tc}, λ::T) where {TR, N, TI, T, Tc <: Union{T, Complex{T}}} +function prox!(reg::LLRRegularization, x::Union{AbstractArray{T}, AbstractArray{Complex{T}}}, λ::T) where {T <: Real} reg.fullyOverlapping ? proxLLROverlapping!(reg, x, λ) : proxLLRNonOverlapping!(reg, x, λ) end @@ -101,7 +101,7 @@ end """ norm(reg::LLRRegularization, x, λ) -returns the value of the LLR-regularization term. The norm is only implemented for 2D, non-fully overlapping blocks. +returns the value of the LLR-regularization term. The norm is only implemented for 2D, non-fully overlapping blocks. """ function norm(reg::LLRRegularization, x::Union{AbstractArray{T}, AbstractArray{Complex{T}}}, λ::T) where {T <: Real} shape = reg.shape @@ -171,7 +171,7 @@ performs the proximal map for LLR regularization using singular-value-thresholdi function proxLLROverlapping!(reg::LLRRegularization{TR, N, TI}, x::AbstractArray{Tc}, λ::T) where {TR, N, TI, T, Tc <: Union{T, Complex{T}}} shape = reg.shape blockSize = reg.blockSize - + x = reshape(x, tuple(shape..., length(x) ÷ prod(shape))) block_idx = CartesianIndices(blockSize)