Skip to content

Commit e297055

Browse files
dikwickleyaniket singh rawat
andauthored
added Atol and Btol in scipy lsqr for all tests (#486)
* atol botl fixed to 1e-8 in basic op test * atol botl fixed to 1e-8 in test_convolve * atol botl fixed to 1e-8 in test_diagonal * atol botl fixed to 1e-8 in test_dwts * atol botl fixed to 1e-8 in test_ffts * atol botl fixed to 1e-8 in test_fredholm * atol botl fixed to 1e-8 in test_functionoperator * atol botl fixed to 1e-8 in test_kronecker * atol botl fixed to 1e-8 in test_nonstatconvolve * atol botl fixed to 1e-8 in test_shift * atol botl fixed to 1e-8 in test_smoothing --------- Co-authored-by: aniket singh rawat <[email protected]>
1 parent 47b59fc commit e297055

11 files changed

+57
-57
lines changed

pytests/test_basicoperators.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def test_LinearRegression(par):
6363
assert dottest(LRop, par["ny"], 2)
6464

6565
x = np.array([1.0, 2.0], dtype=np.float32)
66-
xlsqr = lsqr(LRop, LRop * x, damp=1e-10, iter_lim=300, show=0)[0]
66+
xlsqr = lsqr(LRop, LRop * x, damp=1e-10, iter_lim=300, atol=1e-8, btol=1e-8, show=0)[0]
6767
assert_array_almost_equal(x, xlsqr, decimal=3)
6868

6969
y = LRop * x
@@ -82,7 +82,7 @@ def test_MatrixMult(par):
8282
assert dottest(Gop, par["ny"], par["nx"], complexflag=0 if par["imag"] == 0 else 3)
8383

8484
x = np.ones(par["nx"]) + par["imag"] * np.ones(par["nx"])
85-
xlsqr = lsqr(Gop, Gop * x, damp=1e-20, iter_lim=300, show=0)[0]
85+
xlsqr = lsqr(Gop, Gop * x, damp=1e-20, iter_lim=300, atol=1e-8, btol=1e-8, show=0)[0]
8686
assert_array_almost_equal(x, xlsqr, decimal=4)
8787

8888

@@ -100,7 +100,7 @@ def test_MatrixMult_sparse(par):
100100
assert dottest(Gop, par["ny"], par["nx"], complexflag=0 if par["imag"] == 1 else 3)
101101

102102
x = np.ones(par["nx"]) + par["imag"] * np.ones(par["nx"])
103-
xlsqr = lsqr(Gop, Gop * x, damp=1e-20, iter_lim=300, show=0)[0]
103+
xlsqr = lsqr(Gop, Gop * x, damp=1e-20, iter_lim=300, atol=1e-8, btol=1e-8, show=0)[0]
104104
assert_array_almost_equal(x, xlsqr, decimal=4)
105105

106106

@@ -133,7 +133,7 @@ def test_MatrixMult_repeated(par):
133133
)
134134

135135
x = (np.ones((par["nx"], 5)) + par["imag"] * np.ones((par["nx"], 5))).ravel()
136-
xlsqr = lsqr(Gop, Gop * x, damp=1e-20, iter_lim=300, show=0)[0]
136+
xlsqr = lsqr(Gop, Gop * x, damp=1e-20, iter_lim=300, atol=1e-8, btol=1e-8, show=0)[0]
137137
assert_array_almost_equal(x, xlsqr, decimal=4)
138138

139139

pytests/test_convolve.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ def test_Convolve1D(par):
133133

134134
x = np.zeros((par["nx"]))
135135
x[par["nx"] // 2] = 1.0
136-
xlsqr = lsqr(Cop, Cop * x, damp=1e-20, iter_lim=200, show=0)[0]
136+
xlsqr = lsqr(Cop, Cop * x, damp=1e-20, iter_lim=200, atol=1e-8, btol=1e-8, show=0)[0]
137137
assert_array_almost_equal(x, xlsqr, decimal=1)
138138

139139
# 1D on 2D
@@ -153,7 +153,7 @@ def test_Convolve1D(par):
153153
int(par["nx"] / 2 - 3) : int(par["nx"] / 2 + 3),
154154
] = 1.0
155155
x = x.ravel()
156-
xlsqr = lsqr(Cop, Cop * x, damp=1e-20, iter_lim=200, show=0)[0]
156+
xlsqr = lsqr(Cop, Cop * x, damp=1e-20, iter_lim=200, atol=1e-8, btol=1e-8, show=0)[0]
157157
assert_array_almost_equal(x, xlsqr, decimal=1)
158158

159159
# 1D on 3D
@@ -175,7 +175,7 @@ def test_Convolve1D(par):
175175
int(par["nx"] / 2 - 3) : int(par["nx"] / 2 + 3),
176176
] = 1.0
177177
x = x.ravel()
178-
xlsqr = lsqr(Cop, Cop * x, damp=1e-20, iter_lim=200, show=0)[0]
178+
xlsqr = lsqr(Cop, Cop * x, damp=1e-20, iter_lim=200, atol=1e-8, btol=1e-8, show=0)[0]
179179
assert_array_almost_equal(x, xlsqr, decimal=1)
180180

181181

@@ -200,7 +200,7 @@ def test_Convolve2D(par):
200200
int(par["nx"] / 2 - 3) : int(par["nx"] / 2 + 3),
201201
] = 1.0
202202
x = x.ravel()
203-
xlsqr = lsqr(Cop, Cop * x, damp=1e-20, iter_lim=200, show=0)[0]
203+
xlsqr = lsqr(Cop, Cop * x, damp=1e-20, iter_lim=200, atol=1e-8, btol=1e-8, show=0)[0]
204204
assert_array_almost_equal(x, xlsqr, decimal=1)
205205

206206
# 2D on 3D
@@ -224,7 +224,7 @@ def test_Convolve2D(par):
224224
int(par["nx"] / 2 - 3) : int(par["nx"] / 2 + 3),
225225
] = 1.0
226226
x = x.ravel()
227-
xlsqr = lsqr(Cop, Cop * x, damp=1e-20, iter_lim=200, show=0)[0]
227+
xlsqr = lsqr(Cop, Cop * x, damp=1e-20, iter_lim=200, atol=1e-8, btol=1e-8, show=0)[0]
228228
# due to ringing in solution we cannot use assert_array_almost_equal
229229
assert np.linalg.norm(xlsqr - x) / np.linalg.norm(xlsqr) < 2e-1
230230

@@ -251,7 +251,7 @@ def test_Convolve3D(par):
251251
] = 1.0
252252
x = x.ravel()
253253
y = Cop * x
254-
xlsqr = lsqr(Cop, y, damp=1e-20, iter_lim=400, show=0)[0]
254+
xlsqr = lsqr(Cop, y, damp=1e-20, iter_lim=400, atol=1e-8, btol=1e-8, show=0)[0]
255255
# due to ringing in solution we cannot use assert_array_almost_equal
256256
assert np.linalg.norm(xlsqr - x) / np.linalg.norm(xlsqr) < 2e-1
257257

pytests/test_diagonal.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def test_Diagonal_1dsignal(par):
2323
assert dottest(Dop, ddim, ddim, complexflag=0 if par["imag"] == 0 else 3)
2424

2525
x = np.ones(ddim) + par["imag"] * np.ones(ddim)
26-
xlsqr = sp_lsqr(Dop, Dop * x, damp=1e-20, iter_lim=300, show=0)[0]
26+
xlsqr = sp_lsqr(Dop, Dop * x, damp=1e-20, iter_lim=300, atol=1e-8, btol=1e-8, show=0)[0]
2727

2828
assert_array_almost_equal(x, xlsqr, decimal=4)
2929

@@ -45,7 +45,7 @@ def test_Diagonal_2dsignal(par):
4545
x = np.ones((par["nx"], par["nt"])) + par["imag"] * np.ones(
4646
(par["nx"], par["nt"])
4747
)
48-
xlsqr = sp_lsqr(Dop, Dop * x.ravel(), damp=1e-20, iter_lim=300, show=0)[0]
48+
xlsqr = sp_lsqr(Dop, Dop * x.ravel(), damp=1e-20, iter_lim=300, atol=1e-8, btol=1e-8, show=0)[0]
4949

5050
assert_array_almost_equal(x.ravel(), xlsqr.ravel(), decimal=4)
5151

@@ -69,7 +69,7 @@ def test_Diagonal_3dsignal(par):
6969
x = np.ones((par["ny"], par["nx"], par["nt"])) + par["imag"] * np.ones(
7070
(par["ny"], par["nx"], par["nt"])
7171
)
72-
xlsqr = sp_lsqr(Dop, Dop * x.ravel(), damp=1e-20, iter_lim=300, show=0)[0]
72+
xlsqr = sp_lsqr(Dop, Dop * x.ravel(), damp=1e-20, iter_lim=300, atol=1e-8, btol=1e-8, show=0)[0]
7373

7474
assert_array_almost_equal(x.ravel(), xlsqr.ravel(), decimal=4)
7575

@@ -91,7 +91,7 @@ def test_Diagonal_2dsignal_unflattened(par):
9191
x = np.ones((par["nx"], par["nt"])) + par["imag"] * np.ones(
9292
(par["nx"], par["nt"])
9393
)
94-
xlsqr = lsqr(Dop, Dop * x, damp=1e-20, niter=300, show=0)[0]
94+
xlsqr = lsqr(Dop, Dop * x, damp=1e-20, niter=300, atol=1e-8, btol=1e-8, show=0)[0]
9595

9696
assert_array_almost_equal(x, xlsqr, decimal=4)
9797

@@ -115,6 +115,6 @@ def test_Diagonal_3dsignal_unflattened(par):
115115
x = np.ones((par["ny"], par["nx"], par["nt"])) + par["imag"] * np.ones(
116116
(par["ny"], par["nx"], par["nt"])
117117
)
118-
xlsqr = lsqr(Dop, Dop * x, damp=1e-20, niter=300, show=0)[0]
118+
xlsqr = lsqr(Dop, Dop * x, damp=1e-20, niter=300, atol=1e-8, btol=1e-8, show=0)[0]
119119

120120
assert_array_almost_equal(x, xlsqr, decimal=4)

pytests/test_dwts.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def test_DWT_1dsignal(par):
3333

3434
y = DWTop * x
3535
xadj = DWTop.H * y # adjoint is same as inverse for dwt
36-
xinv = lsqr(DWTop, y, damp=1e-10, iter_lim=10, show=0)[0]
36+
xinv = lsqr(DWTop, y, damp=1e-10, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
3737

3838
assert_array_almost_equal(x, xadj, decimal=8)
3939
assert_array_almost_equal(x, xinv, decimal=8)
@@ -57,7 +57,7 @@ def test_DWT_2dsignal(par):
5757

5858
y = DWTop * x.ravel()
5959
xadj = DWTop.H * y # adjoint is same as inverse for dwt
60-
xinv = lsqr(DWTop, y, damp=1e-10, iter_lim=10, show=0)[0]
60+
xinv = lsqr(DWTop, y, damp=1e-10, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
6161

6262
assert_array_almost_equal(x.ravel(), xadj, decimal=8)
6363
assert_array_almost_equal(x.ravel(), xinv, decimal=8)
@@ -83,7 +83,7 @@ def test_DWT_3dsignal(par):
8383

8484
y = DWTop * x.ravel()
8585
xadj = DWTop.H * y # adjoint is same as inverse for dwt
86-
xinv = lsqr(DWTop, y, damp=1e-10, iter_lim=10, show=0)[0]
86+
xinv = lsqr(DWTop, y, damp=1e-10, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
8787

8888
assert_array_almost_equal(x.ravel(), xadj, decimal=8)
8989
assert_array_almost_equal(x.ravel(), xinv, decimal=8)
@@ -103,7 +103,7 @@ def test_DWT2D_2dsignal(par):
103103

104104
y = DWTop * x.ravel()
105105
xadj = DWTop.H * y # adjoint is same as inverse for dwt
106-
xinv = lsqr(DWTop, y, damp=1e-10, iter_lim=10, show=0)[0]
106+
xinv = lsqr(DWTop, y, damp=1e-10, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
107107

108108
assert_array_almost_equal(x.ravel(), xadj, decimal=8)
109109
assert_array_almost_equal(x.ravel(), xinv, decimal=8)
@@ -129,7 +129,7 @@ def test_DWT2D_3dsignal(par):
129129

130130
y = DWTop * x.ravel()
131131
xadj = DWTop.H * y # adjoint is same as inverse for dwt
132-
xinv = lsqr(DWTop, y, damp=1e-10, iter_lim=10, show=0)[0]
132+
xinv = lsqr(DWTop, y, damp=1e-10, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
133133

134134
assert_array_almost_equal(x.ravel(), xadj, decimal=8)
135135
assert_array_almost_equal(x.ravel(), xinv, decimal=8)

pytests/test_ffts.py

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ def test_FFT_random_real(par):
269269

270270
# Ensure inverse and adjoint recover x
271271
xadj = FFTop.H * y # adjoint is same as inverse for fft
272-
xinv = lsqr(FFTop, y, damp=0, iter_lim=10, show=0)[0]
272+
xinv = lsqr(FFTop, y, damp=0, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
273273
assert_array_almost_equal(x, xadj, decimal=decimal)
274274
assert_array_almost_equal(x, xinv, decimal=decimal)
275275

@@ -403,7 +403,7 @@ def test_FFT_random_complex(par):
403403

404404
# Ensure inverse and adjoint recover x
405405
xadj = FFTop.H * y # adjoint is same as inverse for fft
406-
xinv = lsqr(FFTop, y, damp=0, iter_lim=10, show=0)[0]
406+
xinv = lsqr(FFTop, y, damp=0, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
407407
assert_array_almost_equal(x, xadj, decimal=decimal)
408408
assert_array_almost_equal(x, xinv, decimal=decimal)
409409

@@ -464,7 +464,7 @@ def test_FFT2D_random_real(par):
464464

465465
# Ensure inverse and adjoint recover x
466466
xadj = FFTop.H * y # adjoint is same as inverse for fft
467-
xinv = lsqr(FFTop, y, damp=0, iter_lim=10, show=0)[0]
467+
xinv = lsqr(FFTop, y, damp=0, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
468468
assert_array_almost_equal(x, xadj, decimal=decimal)
469469
assert_array_almost_equal(x, xinv, decimal=decimal)
470470

@@ -544,7 +544,7 @@ def test_FFT2D_random_complex(par):
544544

545545
# Ensure inverse and adjoint recover x
546546
xadj = FFTop.H * y # adjoint is same as inverse for fft
547-
xinv = lsqr(FFTop, y, damp=0, iter_lim=10, show=0)[0]
547+
xinv = lsqr(FFTop, y, damp=0, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
548548
assert_array_almost_equal(x, xadj, decimal=decimal)
549549
assert_array_almost_equal(x, xinv, decimal=decimal)
550550

@@ -606,7 +606,7 @@ def test_FFTND_random_real(par):
606606

607607
# Ensure inverse and adjoint recover x
608608
xadj = FFTop.H * y # adjoint is same as inverse for fft
609-
xinv = lsqr(FFTop, y, damp=0, iter_lim=10, show=0)[0]
609+
xinv = lsqr(FFTop, y, damp=0, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
610610
assert_array_almost_equal(x, xadj, decimal=decimal)
611611
assert_array_almost_equal(x, xinv, decimal=decimal)
612612

@@ -686,7 +686,7 @@ def test_FFTND_random_complex(par):
686686

687687
# Ensure inverse and adjoint recover x
688688
xadj = FFTop.H * y # adjoint is same as inverse for fft
689-
xinv = lsqr(FFTop, y, damp=0, iter_lim=10, show=0)[0]
689+
xinv = lsqr(FFTop, y, damp=0, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
690690
assert_array_almost_equal(x, xadj, decimal=decimal)
691691
assert_array_almost_equal(x, xinv, decimal=decimal)
692692

@@ -850,7 +850,7 @@ def test_FFT_1dsignal(par):
850850

851851
y = FFTop * x
852852
xadj = FFTop.H * y # adjoint is same as inverse for fft
853-
xinv = lsqr(FFTop, y, damp=1e-10, iter_lim=10, show=0)[0]
853+
xinv = lsqr(FFTop, y, damp=1e-10, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
854854

855855
# check all signal if nt>nfft and only up to nfft if nfft<nt
856856
imax = par["nt"] if par["nfft"] is None else min([par["nt"], par["nfft"]])
@@ -874,7 +874,7 @@ def test_FFT_1dsignal(par):
874874
assert_array_almost_equal(y_fftshift, np.fft.fftshift(y))
875875

876876
xadj = FFTop_fftshift.H * y_fftshift # adjoint is same as inverse for fft
877-
xinv = lsqr(FFTop_fftshift, y_fftshift, damp=1e-10, iter_lim=10, show=0)[0]
877+
xinv = lsqr(FFTop_fftshift, y_fftshift, damp=1e-10, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
878878
assert_array_almost_equal(x[:imax], xadj[:imax], decimal=decimal)
879879
assert_array_almost_equal(x[:imax], xinv[:imax], decimal=decimal)
880880

@@ -930,7 +930,7 @@ def test_FFT_2dsignal(par):
930930

931931
D = FFTop * d.ravel()
932932
dadj = FFTop.H * D # adjoint is same as inverse for fft
933-
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=10, show=0)[0]
933+
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
934934

935935
dadj = np.real(dadj.reshape(nt, nx))
936936
dinv = np.real(dinv.reshape(nt, nx))
@@ -958,7 +958,7 @@ def test_FFT_2dsignal(par):
958958
assert_array_almost_equal(D_fftshift, D2)
959959

960960
dadj = FFTop_fftshift.H * D_fftshift # adjoint is same as inverse for fft
961-
dinv = lsqr(FFTop_fftshift, D_fftshift, damp=1e-10, iter_lim=10, show=0)[0]
961+
dinv = lsqr(FFTop_fftshift, D_fftshift, damp=1e-10, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
962962

963963
dadj = np.real(dadj.reshape(nt, nx))
964964
dinv = np.real(dinv.reshape(nt, nx))
@@ -988,7 +988,7 @@ def test_FFT_2dsignal(par):
988988

989989
D = FFTop * d.ravel()
990990
dadj = FFTop.H * D # adjoint is inverse for fft
991-
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=10, show=0)[0]
991+
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
992992

993993
dadj = np.real(dadj.reshape(nt, nx))
994994
dinv = np.real(dinv.reshape(nt, nx))
@@ -1016,7 +1016,7 @@ def test_FFT_2dsignal(par):
10161016
assert_array_almost_equal(D_fftshift, D2)
10171017

10181018
dadj = FFTop_fftshift.H * D_fftshift # adjoint is same as inverse for fft
1019-
dinv = lsqr(FFTop_fftshift, D_fftshift, damp=1e-10, iter_lim=10, show=0)[0]
1019+
dinv = lsqr(FFTop_fftshift, D_fftshift, damp=1e-10, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
10201020

10211021
dadj = np.real(dadj.reshape(nt, nx))
10221022
dinv = np.real(dinv.reshape(nt, nx))
@@ -1085,7 +1085,7 @@ def test_FFT_3dsignal(par):
10851085

10861086
D = FFTop * d.ravel()
10871087
dadj = FFTop.H * D # adjoint is same as inverse for fft
1088-
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=10, show=0)[0]
1088+
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
10891089

10901090
dadj = np.real(dadj.reshape(nt, nx, ny))
10911091
dinv = np.real(dinv.reshape(nt, nx, ny))
@@ -1125,7 +1125,7 @@ def test_FFT_3dsignal(par):
11251125

11261126
D = FFTop * d.ravel()
11271127
dadj = FFTop.H * D # adjoint is inverse for fft
1128-
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=10, show=0)[0]
1128+
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
11291129

11301130
dadj = np.real(dadj.reshape(nt, nx, ny))
11311131
dinv = np.real(dinv.reshape(nt, nx, ny))
@@ -1165,7 +1165,7 @@ def test_FFT_3dsignal(par):
11651165

11661166
D = FFTop * d.ravel()
11671167
dadj = FFTop.H * D # adjoint is inverse for fft
1168-
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=10, show=0)[0]
1168+
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
11691169

11701170
dadj = np.real(dadj.reshape(nt, nx, ny))
11711171
dinv = np.real(dinv.reshape(nt, nx, ny))
@@ -1193,7 +1193,7 @@ def test_FFT_3dsignal(par):
11931193
assert_array_almost_equal(D_fftshift, D2)
11941194

11951195
dadj = FFTop_fftshift.H * D_fftshift # adjoint is same as inverse for fft
1196-
dinv = lsqr(FFTop_fftshift, D_fftshift, damp=1e-10, iter_lim=10, show=0)[0]
1196+
dinv = lsqr(FFTop_fftshift, D_fftshift, damp=1e-10, iter_lim=10, atol=1e-8, btol=1e-8, show=0)[0]
11971197

11981198
dadj = np.real(dadj.reshape(nt, nx, ny))
11991199
dinv = np.real(dinv.reshape(nt, nx, ny))
@@ -1250,7 +1250,7 @@ def test_FFT2D(par):
12501250

12511251
D = FFTop * d.ravel()
12521252
dadj = FFTop.H * D # adjoint is inverse for fft
1253-
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=100, show=0)[0]
1253+
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=100, atol=1e-8, btol=1e-8, show=0)[0]
12541254

12551255
dadj = np.real(dadj).reshape(par["nt"], par["nx"])
12561256
dinv = np.real(dinv).reshape(par["nt"], par["nx"])
@@ -1296,7 +1296,7 @@ def test_FFT2D(par):
12961296

12971297
D = FFTop * d.ravel()
12981298
dadj = FFTop.H * D # adjoint is inverse for fft
1299-
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=100, show=0)[0]
1299+
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=100, atol=1e-8, btol=1e-8, show=0)[0]
13001300

13011301
dadj = np.real(dadj).reshape(par["nt"], par["nx"])
13021302
dinv = np.real(dinv).reshape(par["nt"], par["nx"])
@@ -1356,7 +1356,7 @@ def test_FFT3D(par):
13561356

13571357
D = FFTop * d.ravel()
13581358
dadj = FFTop.H * D # adjoint is inverse for fft
1359-
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=100, show=0)[0]
1359+
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=100, atol=1e-8, btol=1e-8, show=0)[0]
13601360

13611361
dadj = np.real(dadj).reshape(par["nt"], par["nx"], par["ny"])
13621362
dinv = np.real(dinv).reshape(par["nt"], par["nx"], par["ny"])
@@ -1407,7 +1407,7 @@ def test_FFT3D(par):
14071407

14081408
D = FFTop * d.ravel()
14091409
dadj = FFTop.H * D # adjoint is inverse for fft
1410-
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=100, show=0)[0]
1410+
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=100, atol=1e-8, btol=1e-8, show=0)[0]
14111411

14121412
dadj = np.real(dadj).reshape(par["nt"], par["nx"], par["ny"])
14131413
dinv = np.real(dinv).reshape(par["nt"], par["nx"], par["ny"])
@@ -1454,7 +1454,7 @@ def test_FFT3D(par):
14541454

14551455
D = FFTop * d.ravel()
14561456
dadj = FFTop.H * D # adjoint is inverse for fft
1457-
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=100, show=0)[0]
1457+
dinv = lsqr(FFTop, D, damp=1e-10, iter_lim=100, atol=1e-8, btol=1e-8, show=0)[0]
14581458

14591459
dadj = np.real(dadj).reshape(par["nt"], par["nx"], par["ny"])
14601460
dinv = np.real(dinv).reshape(par["nt"], par["nx"], par["ny"])

pytests/test_fredholm.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,6 @@ def test_Fredholm1(par):
9696
par["nsl"] * par["ny"] * par["nz"],
9797
complexflag=0 if par["imag"] == 0 else 3,
9898
)
99-
xlsqr = lsqr(Fop, Fop * x.ravel(), damp=1e-20, iter_lim=30, show=0)[0]
99+
xlsqr = lsqr(Fop, Fop * x.ravel(), damp=1e-20, iter_lim=30, atol=1e-8, btol=1e-8, show=0)[0]
100100
xlsqr = xlsqr.reshape(par["nsl"], par["ny"], par["nz"])
101101
assert_array_almost_equal(x, xlsqr, decimal=3)

pytests/test_functionoperator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ def adjoint_f(y):
7777

7878
# Only test inversion for square or overdetermined systems
7979
if par["nc"] <= par["nr"]:
80-
xlsqr = lsqr(Fop, F_x, damp=0, iter_lim=100, show=0)[0]
80+
xlsqr = lsqr(Fop, F_x, damp=0, iter_lim=100, atol=1e-8, btol=1e-8, show=0)[0]
8181
assert_array_almost_equal(x, xlsqr, decimal=4)
8282

8383

pytests/test_kronecker.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def test_Kroneker(par):
2929
Kop, par["ny"] ** 2, par["nx"] ** 2, complexflag=0 if par["imag"] == 0 else 3
3030
)
3131

32-
xlsqr = lsqr(Kop, Kop * x, damp=1e-20, iter_lim=300, show=0)[0]
32+
xlsqr = lsqr(Kop, Kop * x, damp=1e-20, iter_lim=300, atol=1e-8, btol=1e-8, show=0)[0]
3333
assert_array_almost_equal(x, xlsqr, decimal=2)
3434

3535
# Comparison with numpy

0 commit comments

Comments
 (0)