Skip to content

Commit

Permalink
fix: use matvec everywhere
Browse files Browse the repository at this point in the history
  • Loading branch information
cako committed May 8, 2023
1 parent 33e72ec commit 5ee83c4
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions pylops/optimization/cls_sparsity.py
Original file line number Diff line number Diff line change
Expand Up @@ -491,7 +491,7 @@ def step(self, x: NDArray, show: bool = False, **kwargs_solver) -> NDArray:
x = self._step(x, **kwargs_solver)

# compute residual
self.r: NDArray = self.y - self.Op * x
self.r: NDArray = self.y - self.Op.matvec(x)
self.rnorm = self.ncp.linalg.norm(self.r)

self.iiter += 1
Expand Down Expand Up @@ -537,7 +537,7 @@ def run(
nouter = nouter if self.nouter is None else self.nouter
if x is not None:
self.x0 = x.copy()
self.y = self.y - self.Op * x
self.y = self.y - self.Op.matvec(x)
# choose xold to ensure tolerance test is passed initially
xold = x.copy() + np.inf
while self.iiter < nouter and self.ncp.linalg.norm(x - xold) >= self.tolIRLS:
Expand Down Expand Up @@ -1881,7 +1881,7 @@ def run(
"""
pinv, _, _, info = ext_spgl1(
self.Op if self.SOp is None else self.Op * self.SOp.H,
self.Op if self.SOp is None else self.Op @ self.SOp.H,
self.y,
tau=self.tau,
sigma=self.sigma,
Expand Down Expand Up @@ -2248,13 +2248,15 @@ def step(
)[0]
# Shrinkage
self.d = [
_softthreshold(self.RegsL1[ireg] * x + self.b[ireg], self.epsRL1s[ireg])
_softthreshold(
self.RegsL1[ireg].matvec(x) + self.b[ireg], self.epsRL1s[ireg]
)
for ireg in range(self.nregsL1)
]

# Bregman update
self.b = [
self.b[ireg] + self.tau * (self.RegsL1[ireg] * x - self.d[ireg])
self.b[ireg] + self.tau * (self.RegsL1[ireg].matvec(x) - self.d[ireg])
for ireg in range(self.nregsL1)
]

Expand Down

0 comments on commit 5ee83c4

Please sign in to comment.