Skip to content

Commit 80d9209

Browse files
authored
Merge pull request #673 from mrava87/release-v2.5.0
release: prepare for v2.5.0
2 parents 777e538 + f8a8531 commit 80d9209

File tree

3 files changed

+330
-2
lines changed

3 files changed

+330
-2
lines changed

CHANGELOG.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,32 @@
11
Changelog
22
=========
33

4+
# 2.5.0
5+
* Added `cuda` engine to `pylops.waveeqprocessing.Kirchhoff`
6+
operator
7+
* Added `Opbasis` and `optimal_coeff` to
8+
`pylops.optimization.cls_sparsity.OMP`
9+
* Added `solver` to the input parameters of the `_oneshot`
10+
internal methods of `pylops.waveeqprocessing.AcousticWave2D`
11+
to avoid recreating it for every shot
12+
* Added `kwargs_fft` to `pylops.signalprocessing.FFT`,
13+
`pylops.signalprocessing.FFT2D`, and
14+
`pylops.signalprocessing.FFTND`
15+
* Fix bug in `pylops.waveeqprocessing.MDD` when using
16+
CuPy arrays for `G` and `d` with `twosided=True` and `add_negative=True`
17+
* Fix bug in `pylops.signalprocessing.FourierRadon3D`
18+
in the default choice of `num_threads_per_blocks`
19+
* Fix bug in `pylops.signalprocessing.Convolve1D`
20+
in the definition of `pad` and `padd` when applying the
21+
operator to a CuPy array
22+
* Fix bug in `pylops.optimization.cls_sparsity.OMP` avoiding
23+
passing `explicit` in the creation of `_ColumnLinearOperator`
24+
* Fix bug in `pylops.optimization.cls_sparsity.OMP` callback
25+
method as `cols` was not passed not allowing ``x`` to be
26+
properly reconstructed
27+
* Fix bug in `pylops.waveeqprocessing.SeismicInterpolation`
28+
in calculation of `sampling` when not passed
29+
430
# 2.4.0
531
* Added `pylops.signalprocessing.FourierRadon2d` and
632
`pylops.signalprocessing.FourierRadon3d` operators

docs/source/changelog.rst

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,37 @@
33
Changelog
44
=========
55

6+
Version 2.5.0
7+
-------------
8+
9+
*Released on: 21/06/2025*
10+
11+
* Added `cuda` engine to :py:class:`pylops.waveeqprocessing.Kirchhoff`
12+
operator
13+
* Added `Opbasis` and `optimal_coeff` to
14+
:py:class:`pylops.optimization.cls_sparsity.OMP`
15+
* Added `solver` to the input parameters of the `_oneshot`
16+
internal methods of :py:class:`pylops.waveeqprocessing.AcousticWave2D`
17+
to avoid recreating it for every shot
18+
* Added `kwargs_fft` to `pylops.signalprocessing.FFT`,
19+
:py:class:`pylops.signalprocessing.FFT2D`, and
20+
:py:class:`pylops.signalprocessing.FFTND`
21+
* Fix bug in :py:func:`pylops.waveeqprocessing.MDD` when using
22+
CuPy arrays for `G` and `d` with `twosided=True` and `add_negative=True`
23+
* Fix bug in :py:class:`pylops.signalprocessing.FourierRadon3D`
24+
in the default choice of `num_threads_per_blocks`
25+
* Fix bug in :py:class:`pylops.signalprocessing.Convolve1D`
26+
in the definition of `pad` and `padd` when applying the
27+
operator to a CuPy array
28+
* Fix bug in :py:class:`pylops.optimization.cls_sparsity.OMP` avoiding
29+
passing `explicit` in the creation of `_ColumnLinearOperator`
30+
* Fix bug in :py:class:`pylops.optimization.cls_sparsity.OMP` callback
31+
method as `cols` was not passed not allowing ``x`` to be
32+
properly reconstructed
33+
* Fix bug in :py:func:`pylops.waveeqprocessing.SeismicInterpolation`
34+
in calculation of `sampling` when not passed
35+
36+
637
Version 2.4.0
738
-------------
839

@@ -189,7 +220,7 @@ Version 1.18.0
189220
* Extended :py:func:`pylops.Laplacian` to N-dimensional arrays
190221
* Added `forward` kind to :py:class:`pylops.SecondDerivative` and
191222
:py:func:`pylops.Laplacian`
192-
* Added `chirp-sliding` kind to :py:class:`pylops.waveeqprocessing.seismicinterpolation.SeismicInterpolation`
223+
* Added `chirp-sliding` kind to :py:func:`pylops.waveeqprocessing.SeismicInterpolation`
193224
* Fixed bug due to the new internal structure of `LinearOperator` submodule introduced in `scipy1.8.0`
194225

195226

@@ -389,7 +420,7 @@ Version 1.9.1
389420
:py:class:`pylops.signalprocessing.FFT2D` to ensure that the type of the input
390421
vector is retained when applying forward and adjoint.
391422
* Added ``dtype`` parameter to the ``FFT`` calls in the definition of the
392-
:py:class:`pylops.waveeqprocessing.MDD` operation. This ensure that the type
423+
:py:func:`pylops.waveeqprocessing.MDD` operation. This ensure that the type
393424
of the real part of ``G`` input is enforced to the output vectors of the
394425
forward and adjoint operations.
395426

docs/source/sg_execution_times.rst

Lines changed: 271 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,271 @@
1+
2+
:orphan:
3+
4+
.. _sphx_glr_sg_execution_times:
5+
6+
7+
Computation times
8+
=================
9+
**00:00.703** total execution time for 79 files **from all galleries**:
10+
11+
.. container::
12+
13+
.. raw:: html
14+
15+
<style scoped>
16+
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet" />
17+
<link href="https://cdn.datatables.net/1.13.6/css/dataTables.bootstrap5.min.css" rel="stylesheet" />
18+
</style>
19+
<script src="https://code.jquery.com/jquery-3.7.0.js"></script>
20+
<script src="https://cdn.datatables.net/1.13.6/js/jquery.dataTables.min.js"></script>
21+
<script src="https://cdn.datatables.net/1.13.6/js/dataTables.bootstrap5.min.js"></script>
22+
<script type="text/javascript" class="init">
23+
$(document).ready( function () {
24+
$('table.sg-datatable').DataTable({order: [[1, 'desc']]});
25+
} );
26+
</script>
27+
28+
.. list-table::
29+
:header-rows: 1
30+
:class: table table-striped sg-datatable
31+
32+
* - Example
33+
- Time
34+
- Mem (MB)
35+
* - :ref:`sphx_glr_tutorials_jaxop.py` (``../../tutorials/jaxop.py``)
36+
- 00:00.703
37+
- 0.0
38+
* - :ref:`sphx_glr_gallery_plot_avo.py` (``../../examples/plot_avo.py``)
39+
- 00:00.000
40+
- 0.0
41+
* - :ref:`sphx_glr_gallery_plot_bayeslinearregr.py` (``../../examples/plot_bayeslinearregr.py``)
42+
- 00:00.000
43+
- 0.0
44+
* - :ref:`sphx_glr_gallery_plot_bilinear.py` (``../../examples/plot_bilinear.py``)
45+
- 00:00.000
46+
- 0.0
47+
* - :ref:`sphx_glr_gallery_plot_blending.py` (``../../examples/plot_blending.py``)
48+
- 00:00.000
49+
- 0.0
50+
* - :ref:`sphx_glr_gallery_plot_causalintegration.py` (``../../examples/plot_causalintegration.py``)
51+
- 00:00.000
52+
- 0.0
53+
* - :ref:`sphx_glr_gallery_plot_cgls.py` (``../../examples/plot_cgls.py``)
54+
- 00:00.000
55+
- 0.0
56+
* - :ref:`sphx_glr_gallery_plot_chirpradon.py` (``../../examples/plot_chirpradon.py``)
57+
- 00:00.000
58+
- 0.0
59+
* - :ref:`sphx_glr_gallery_plot_conj.py` (``../../examples/plot_conj.py``)
60+
- 00:00.000
61+
- 0.0
62+
* - :ref:`sphx_glr_gallery_plot_convolve.py` (``../../examples/plot_convolve.py``)
63+
- 00:00.000
64+
- 0.0
65+
* - :ref:`sphx_glr_gallery_plot_dct.py` (``../../examples/plot_dct.py``)
66+
- 00:00.000
67+
- 0.0
68+
* - :ref:`sphx_glr_gallery_plot_derivative.py` (``../../examples/plot_derivative.py``)
69+
- 00:00.000
70+
- 0.0
71+
* - :ref:`sphx_glr_gallery_plot_describe.py` (``../../examples/plot_describe.py``)
72+
- 00:00.000
73+
- 0.0
74+
* - :ref:`sphx_glr_gallery_plot_diagonal.py` (``../../examples/plot_diagonal.py``)
75+
- 00:00.000
76+
- 0.0
77+
* - :ref:`sphx_glr_gallery_plot_dtcwt.py` (``../../examples/plot_dtcwt.py``)
78+
- 00:00.000
79+
- 0.0
80+
* - :ref:`sphx_glr_gallery_plot_fft.py` (``../../examples/plot_fft.py``)
81+
- 00:00.000
82+
- 0.0
83+
* - :ref:`sphx_glr_gallery_plot_flip.py` (``../../examples/plot_flip.py``)
84+
- 00:00.000
85+
- 0.0
86+
* - :ref:`sphx_glr_gallery_plot_fourierradon.py` (``../../examples/plot_fourierradon.py``)
87+
- 00:00.000
88+
- 0.0
89+
* - :ref:`sphx_glr_gallery_plot_identity.py` (``../../examples/plot_identity.py``)
90+
- 00:00.000
91+
- 0.0
92+
* - :ref:`sphx_glr_gallery_plot_imag.py` (``../../examples/plot_imag.py``)
93+
- 00:00.000
94+
- 0.0
95+
* - :ref:`sphx_glr_gallery_plot_ista.py` (``../../examples/plot_ista.py``)
96+
- 00:00.000
97+
- 0.0
98+
* - :ref:`sphx_glr_gallery_plot_l1l1.py` (``../../examples/plot_l1l1.py``)
99+
- 00:00.000
100+
- 0.0
101+
* - :ref:`sphx_glr_gallery_plot_linearregr.py` (``../../examples/plot_linearregr.py``)
102+
- 00:00.000
103+
- 0.0
104+
* - :ref:`sphx_glr_gallery_plot_matrixmult.py` (``../../examples/plot_matrixmult.py``)
105+
- 00:00.000
106+
- 0.0
107+
* - :ref:`sphx_glr_gallery_plot_mdc.py` (``../../examples/plot_mdc.py``)
108+
- 00:00.000
109+
- 0.0
110+
* - :ref:`sphx_glr_gallery_plot_multiproc.py` (``../../examples/plot_multiproc.py``)
111+
- 00:00.000
112+
- 0.0
113+
* - :ref:`sphx_glr_gallery_plot_nmo.py` (``../../examples/plot_nmo.py``)
114+
- 00:00.000
115+
- 0.0
116+
* - :ref:`sphx_glr_gallery_plot_nonstatconvolve.py` (``../../examples/plot_nonstatconvolve.py``)
117+
- 00:00.000
118+
- 0.0
119+
* - :ref:`sphx_glr_gallery_plot_nonstatfilter.py` (``../../examples/plot_nonstatfilter.py``)
120+
- 00:00.000
121+
- 0.0
122+
* - :ref:`sphx_glr_gallery_plot_pad.py` (``../../examples/plot_pad.py``)
123+
- 00:00.000
124+
- 0.0
125+
* - :ref:`sphx_glr_gallery_plot_patching.py` (``../../examples/plot_patching.py``)
126+
- 00:00.000
127+
- 0.0
128+
* - :ref:`sphx_glr_gallery_plot_phaseshift.py` (``../../examples/plot_phaseshift.py``)
129+
- 00:00.000
130+
- 0.0
131+
* - :ref:`sphx_glr_gallery_plot_prestack.py` (``../../examples/plot_prestack.py``)
132+
- 00:00.000
133+
- 0.0
134+
* - :ref:`sphx_glr_gallery_plot_radon.py` (``../../examples/plot_radon.py``)
135+
- 00:00.000
136+
- 0.0
137+
* - :ref:`sphx_glr_gallery_plot_real.py` (``../../examples/plot_real.py``)
138+
- 00:00.000
139+
- 0.0
140+
* - :ref:`sphx_glr_gallery_plot_regr.py` (``../../examples/plot_regr.py``)
141+
- 00:00.000
142+
- 0.0
143+
* - :ref:`sphx_glr_gallery_plot_restriction.py` (``../../examples/plot_restriction.py``)
144+
- 00:00.000
145+
- 0.0
146+
* - :ref:`sphx_glr_gallery_plot_roll.py` (``../../examples/plot_roll.py``)
147+
- 00:00.000
148+
- 0.0
149+
* - :ref:`sphx_glr_gallery_plot_seislet.py` (``../../examples/plot_seislet.py``)
150+
- 00:00.000
151+
- 0.0
152+
* - :ref:`sphx_glr_gallery_plot_seismicevents.py` (``../../examples/plot_seismicevents.py``)
153+
- 00:00.000
154+
- 0.0
155+
* - :ref:`sphx_glr_gallery_plot_shift.py` (``../../examples/plot_shift.py``)
156+
- 00:00.000
157+
- 0.0
158+
* - :ref:`sphx_glr_gallery_plot_sliding.py` (``../../examples/plot_sliding.py``)
159+
- 00:00.000
160+
- 0.0
161+
* - :ref:`sphx_glr_gallery_plot_slopeest.py` (``../../examples/plot_slopeest.py``)
162+
- 00:00.000
163+
- 0.0
164+
* - :ref:`sphx_glr_gallery_plot_smoothing1d.py` (``../../examples/plot_smoothing1d.py``)
165+
- 00:00.000
166+
- 0.0
167+
* - :ref:`sphx_glr_gallery_plot_smoothing2d.py` (``../../examples/plot_smoothing2d.py``)
168+
- 00:00.000
169+
- 0.0
170+
* - :ref:`sphx_glr_gallery_plot_spread.py` (``../../examples/plot_spread.py``)
171+
- 00:00.000
172+
- 0.0
173+
* - :ref:`sphx_glr_gallery_plot_stacking.py` (``../../examples/plot_stacking.py``)
174+
- 00:00.000
175+
- 0.0
176+
* - :ref:`sphx_glr_gallery_plot_sum.py` (``../../examples/plot_sum.py``)
177+
- 00:00.000
178+
- 0.0
179+
* - :ref:`sphx_glr_gallery_plot_symmetrize.py` (``../../examples/plot_symmetrize.py``)
180+
- 00:00.000
181+
- 0.0
182+
* - :ref:`sphx_glr_gallery_plot_tapers.py` (``../../examples/plot_tapers.py``)
183+
- 00:00.000
184+
- 0.0
185+
* - :ref:`sphx_glr_gallery_plot_tndarray.py` (``../../examples/plot_tndarray.py``)
186+
- 00:00.000
187+
- 0.0
188+
* - :ref:`sphx_glr_gallery_plot_transpose.py` (``../../examples/plot_transpose.py``)
189+
- 00:00.000
190+
- 0.0
191+
* - :ref:`sphx_glr_gallery_plot_tvreg.py` (``../../examples/plot_tvreg.py``)
192+
- 00:00.000
193+
- 0.0
194+
* - :ref:`sphx_glr_gallery_plot_twoway.py` (``../../examples/plot_twoway.py``)
195+
- 00:00.000
196+
- 0.0
197+
* - :ref:`sphx_glr_gallery_plot_wavelet.py` (``../../examples/plot_wavelet.py``)
198+
- 00:00.000
199+
- 0.0
200+
* - :ref:`sphx_glr_gallery_plot_wavest.py` (``../../examples/plot_wavest.py``)
201+
- 00:00.000
202+
- 0.0
203+
* - :ref:`sphx_glr_gallery_plot_wavs.py` (``../../examples/plot_wavs.py``)
204+
- 00:00.000
205+
- 0.0
206+
* - :ref:`sphx_glr_gallery_plot_zero.py` (``../../examples/plot_zero.py``)
207+
- 00:00.000
208+
- 0.0
209+
* - :ref:`sphx_glr_tutorials_bayesian.py` (``../../tutorials/bayesian.py``)
210+
- 00:00.000
211+
- 0.0
212+
* - :ref:`sphx_glr_tutorials_classsolvers.py` (``../../tutorials/classsolvers.py``)
213+
- 00:00.000
214+
- 0.0
215+
* - :ref:`sphx_glr_tutorials_ctscan.py` (``../../tutorials/ctscan.py``)
216+
- 00:00.000
217+
- 0.0
218+
* - :ref:`sphx_glr_tutorials_deblending.py` (``../../tutorials/deblending.py``)
219+
- 00:00.000
220+
- 0.0
221+
* - :ref:`sphx_glr_tutorials_deblurring.py` (``../../tutorials/deblurring.py``)
222+
- 00:00.000
223+
- 0.0
224+
* - :ref:`sphx_glr_tutorials_deghosting.py` (``../../tutorials/deghosting.py``)
225+
- 00:00.000
226+
- 0.0
227+
* - :ref:`sphx_glr_tutorials_dottest.py` (``../../tutorials/dottest.py``)
228+
- 00:00.000
229+
- 0.0
230+
* - :ref:`sphx_glr_tutorials_ilsm.py` (``../../tutorials/ilsm.py``)
231+
- 00:00.000
232+
- 0.0
233+
* - :ref:`sphx_glr_tutorials_interpolation.py` (``../../tutorials/interpolation.py``)
234+
- 00:00.000
235+
- 0.0
236+
* - :ref:`sphx_glr_tutorials_linearoperator.py` (``../../tutorials/linearoperator.py``)
237+
- 00:00.000
238+
- 0.0
239+
* - :ref:`sphx_glr_tutorials_lsm.py` (``../../tutorials/lsm.py``)
240+
- 00:00.000
241+
- 0.0
242+
* - :ref:`sphx_glr_tutorials_marchenko.py` (``../../tutorials/marchenko.py``)
243+
- 00:00.000
244+
- 0.0
245+
* - :ref:`sphx_glr_tutorials_mdd.py` (``../../tutorials/mdd.py``)
246+
- 00:00.000
247+
- 0.0
248+
* - :ref:`sphx_glr_tutorials_poststack.py` (``../../tutorials/poststack.py``)
249+
- 00:00.000
250+
- 0.0
251+
* - :ref:`sphx_glr_tutorials_prestack.py` (``../../tutorials/prestack.py``)
252+
- 00:00.000
253+
- 0.0
254+
* - :ref:`sphx_glr_tutorials_radonfiltering.py` (``../../tutorials/radonfiltering.py``)
255+
- 00:00.000
256+
- 0.0
257+
* - :ref:`sphx_glr_tutorials_realcomplex.py` (``../../tutorials/realcomplex.py``)
258+
- 00:00.000
259+
- 0.0
260+
* - :ref:`sphx_glr_tutorials_seismicinterpolation.py` (``../../tutorials/seismicinterpolation.py``)
261+
- 00:00.000
262+
- 0.0
263+
* - :ref:`sphx_glr_tutorials_solvers.py` (``../../tutorials/solvers.py``)
264+
- 00:00.000
265+
- 0.0
266+
* - :ref:`sphx_glr_tutorials_torchop.py` (``../../tutorials/torchop.py``)
267+
- 00:00.000
268+
- 0.0
269+
* - :ref:`sphx_glr_tutorials_wavefielddecomposition.py` (``../../tutorials/wavefielddecomposition.py``)
270+
- 00:00.000
271+
- 0.0

0 commit comments

Comments
 (0)