Skip to content

Commit 41afcd0

Browse files
m-kowalskaasiaszmek
authored andcommitted
tbasis and regularization method choice update (#62)
* show tbasis with both cross-validation and l-curve in the same figure * updated choice of regularization method
1 parent 1db177f commit 41afcd0

5 files changed

Lines changed: 262 additions & 44 deletions

File tree

figures/kCSD_properties/figure_Tbasis.py

Lines changed: 182 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,16 @@ def set_axis(ax, letter=None):
2828

2929

3030
def make_subplot(ax, true_csd, est_csd, estm_x, title=None, ele_pos=None,
31-
xlabel=False, ylabel=False, letter='', t_max=None):
31+
xlabel=False, ylabel=False, letter='', t_max=None,
32+
est_csd_LC=None):
3233

3334
x = np.linspace(0, 1, 100)
3435
l1 = ax.plot(x, true_csd, label='True CSD', lw=2.)
35-
l2 = ax.plot(estm_x, est_csd, label='kCSD', lw=2.)
36+
if est_csd_LC is not None:
37+
l2 = ax.plot(estm_x, est_csd, label='kCSD_CV', lw=2.)
38+
l3 = ax.plot(estm_x, est_csd_LC, label='kCSD_LC', lw=2.)
39+
else:
40+
l2 = ax.plot(estm_x, est_csd, label='kCSD', lw=2.)
3641
s1 = ax.scatter(ele_pos, np.zeros(len(ele_pos)), 13, 'k', label='Electrodes')
3742
#ax.legend(fontsize=10)
3843
ax.set_xlim([0, 1])
@@ -68,7 +73,8 @@ def generate_figure(R, MU, N_SRC, TRUE_CSD_XLIMS, TOTAL_ELE, SAVE_PATH,
6873
fig = plt.figure(figsize=(15, 12))
6974
widths = [1, 1, 1]
7075
heights = [1, 1, 1]
71-
gs = gridspec.GridSpec(3, 3, height_ratios=heights, width_ratios=widths, hspace=0.45, wspace=0.3)
76+
gs = gridspec.GridSpec(3, 3, height_ratios=heights, width_ratios=widths,
77+
hspace=0.45, wspace=0.3)
7278

7379
ax = fig.add_subplot(gs[0, 0])
7480
xmin = 0
@@ -171,12 +177,177 @@ def generate_figure(R, MU, N_SRC, TRUE_CSD_XLIMS, TOTAL_ELE, SAVE_PATH,
171177
obj = tb.modified_bases(val, pots, ele_pos, N_SRC, h=0.25,
172178
sigma=0.3, gdx=0.01, ext_x=ext_x, xmin=xmin,
173179
xmax=xmax, method=method, Rs=Rs, lambdas=lambdas)
174-
ax = make_subplot(ax, true_csd, obj.values('CSD'), obj.estm_x, ele_pos=ele_pos,
175-
title=None, xlabel=True, ylabel=False, letter='I')
180+
ax = make_subplot(ax, true_csd, obj.values('CSD'), obj.estm_x,
181+
ele_pos=ele_pos, title=None, xlabel=True, ylabel=False,
182+
letter='I')
176183
handles, labels = ax.get_legend_handles_labels()
177184
fig.legend(handles, labels, loc='lower center', ncol=3, frameon=False)
178-
179-
#plt.tight_layout()
185+
186+
fig.savefig(os.path.join(SAVE_PATH, 'targeted_basis_' + method +
187+
'_noise_' + str(noise) + '.png'), dpi=300)
188+
plt.show()
189+
190+
191+
def generate_figure_CVLC(R, MU, N_SRC, TRUE_CSD_XLIMS, TOTAL_ELE, SAVE_PATH,
192+
Rs=None, lambdas=None, noise=None):
193+
194+
m_cv = 'cross-validation'
195+
m_lc = 'L-curve'
196+
method = 'CV_LC'
197+
ELE_LIMS = [0, 1.]
198+
csd_at, true_csd, ele_pos, pots, val = tb.simulate_data(tb.csd_profile,
199+
TRUE_CSD_XLIMS, R,
200+
MU, TOTAL_ELE,
201+
ELE_LIMS,
202+
noise=noise)
203+
204+
fig = plt.figure(figsize=(15, 12))
205+
widths = [1, 1, 1]
206+
heights = [1, 1, 1]
207+
gs = gridspec.GridSpec(3, 3, height_ratios=heights, width_ratios=widths,
208+
hspace=0.45, wspace=0.3)
209+
210+
ax = fig.add_subplot(gs[0, 0])
211+
xmin = 0
212+
xmax = 1
213+
ext_x = 0
214+
obj_CV = tb.modified_bases(val, pots, ele_pos, N_SRC, h=0.25,
215+
sigma=0.3, gdx=0.01, ext_x=ext_x, xmin=xmin,
216+
xmax=xmax, method=m_cv, Rs=Rs, lambdas=lambdas)
217+
obj_LC = tb.modified_bases(val, pots, ele_pos, N_SRC, h=0.25,
218+
sigma=0.3, gdx=0.01, ext_x=ext_x, xmin=xmin,
219+
xmax=xmax, method=m_lc, Rs=Rs, lambdas=lambdas)
220+
make_subplot(ax, true_csd, obj_CV.values('CSD'), obj_CV.estm_x,
221+
ele_pos=ele_pos, title='Basis limits = [0, 1]', xlabel=False,
222+
ylabel=True, letter='A', est_csd_LC=obj_LC.values('CSD'))
223+
224+
ax = fig.add_subplot(gs[0, 1])
225+
xmin = -0.5
226+
xmax = 1
227+
ext_x = -0.5
228+
obj_CV = tb.modified_bases(val, pots, ele_pos, N_SRC, h=0.25,
229+
sigma=0.3, gdx=0.01, ext_x=ext_x, xmin=xmin,
230+
xmax=xmax, method=m_cv, Rs=Rs, lambdas=lambdas)
231+
obj_LC = tb.modified_bases(val, pots, ele_pos, N_SRC, h=0.25,
232+
sigma=0.3, gdx=0.01, ext_x=ext_x, xmin=xmin,
233+
xmax=xmax, method=m_lc, Rs=Rs, lambdas=lambdas)
234+
make_subplot(ax, true_csd, obj_CV.values('CSD'), obj_CV.estm_x,
235+
ele_pos=ele_pos, title='Basis limits = [0, 0.5]',
236+
xlabel=False, ylabel=False, letter='B',
237+
est_csd_LC=obj_LC.values('CSD'))
238+
239+
ax = fig.add_subplot(gs[0, 2])
240+
xmin = 0
241+
xmax = 1.5
242+
ext_x = -0.5
243+
obj_CV = tb.modified_bases(val, pots, ele_pos, N_SRC, h=0.25,
244+
sigma=0.3, gdx=0.01, ext_x=ext_x, xmin=xmin,
245+
xmax=xmax, method=m_cv, Rs=Rs, lambdas=lambdas)
246+
obj_LC = tb.modified_bases(val, pots, ele_pos, N_SRC, h=0.25,
247+
sigma=0.3, gdx=0.01, ext_x=ext_x, xmin=xmin,
248+
xmax=xmax, method=m_lc, Rs=Rs, lambdas=lambdas)
249+
make_subplot(ax, true_csd, obj_CV.values('CSD'), obj_CV.estm_x,
250+
ele_pos=ele_pos, title='Basis limits = [0.5, 1]',
251+
xlabel=False, ylabel=False, letter='C',
252+
est_csd_LC=obj_LC.values('CSD'))
253+
254+
ELE_LIMS = [0, 0.5]
255+
# TOTAL_ELE = 6
256+
csd_at, true_csd, ele_pos, pots, val = tb.simulate_data(tb.csd_profile,
257+
TRUE_CSD_XLIMS, R,
258+
MU, TOTAL_ELE,
259+
ELE_LIMS)
260+
ax = fig.add_subplot(gs[1, 0])
261+
xmin = 0
262+
xmax = 1
263+
ext_x = 0
264+
obj_CV = tb.modified_bases(val, pots, ele_pos, N_SRC, h=0.25,
265+
sigma=0.3, gdx=0.01, ext_x=ext_x, xmin=xmin,
266+
xmax=xmax, method=m_cv, Rs=Rs, lambdas=lambdas)
267+
obj_LC = tb.modified_bases(val, pots, ele_pos, N_SRC, h=0.25,
268+
sigma=0.3, gdx=0.01, ext_x=ext_x, xmin=xmin,
269+
xmax=xmax, method=m_lc, Rs=Rs, lambdas=lambdas)
270+
make_subplot(ax, true_csd, obj_CV.values('CSD'), obj_CV.estm_x,
271+
ele_pos=ele_pos, title=None, xlabel=False, ylabel=True,
272+
letter='D', est_csd_LC=obj_LC.values('CSD'))
273+
274+
ax = fig.add_subplot(gs[1, 1])
275+
xmin = -0.5
276+
xmax = 1
277+
ext_x = -0.5
278+
obj_CV = tb.modified_bases(val, pots, ele_pos, N_SRC, h=0.25,
279+
sigma=0.3, gdx=0.01, ext_x=ext_x, xmin=xmin,
280+
xmax=xmax, method=m_cv, Rs=Rs, lambdas=lambdas)
281+
obj_LC = tb.modified_bases(val, pots, ele_pos, N_SRC, h=0.25,
282+
sigma=0.3, gdx=0.01, ext_x=ext_x, xmin=xmin,
283+
xmax=xmax, method=m_lc, Rs=Rs, lambdas=lambdas)
284+
make_subplot(ax, true_csd, obj_CV.values('CSD'), obj_CV.estm_x,
285+
ele_pos=ele_pos, title=None, xlabel=False, ylabel=False,
286+
letter='E', est_csd_LC=obj_LC.values('CSD'))
287+
288+
ax = fig.add_subplot(gs[1, 2])
289+
xmin = 0
290+
xmax = 1.5
291+
ext_x = -0.5
292+
obj_CV = tb.modified_bases(val, pots, ele_pos, N_SRC, h=0.25,
293+
sigma=0.3, gdx=0.01, ext_x=ext_x, xmin=xmin,
294+
xmax=xmax, method=m_cv, Rs=Rs, lambdas=lambdas)
295+
obj_LC = tb.modified_bases(val, pots, ele_pos, N_SRC, h=0.25,
296+
sigma=0.3, gdx=0.01, ext_x=ext_x, xmin=xmin,
297+
xmax=xmax, method=m_lc, Rs=Rs, lambdas=lambdas)
298+
make_subplot(ax, true_csd, obj_CV.values('CSD'), obj_CV.estm_x,
299+
ele_pos=ele_pos, title=None, xlabel=False, ylabel=False,
300+
letter='F', est_csd_LC=obj_LC.values('CSD'))
301+
302+
ELE_LIMS = [0.5, 1.]
303+
csd_at, true_csd, ele_pos, pots, val = tb.simulate_data(tb.csd_profile,
304+
TRUE_CSD_XLIMS, R,
305+
MU, TOTAL_ELE,
306+
ELE_LIMS)
307+
ax = fig.add_subplot(gs[2, 0])
308+
xmin = 0
309+
xmax = 1
310+
ext_x = 0
311+
obj_CV = tb.modified_bases(val, pots, ele_pos, N_SRC, h=0.25,
312+
sigma=0.3, gdx=0.01, ext_x=ext_x, xmin=xmin,
313+
xmax=xmax, method=m_cv, Rs=Rs, lambdas=lambdas)
314+
obj_LC = tb.modified_bases(val, pots, ele_pos, N_SRC, h=0.25,
315+
sigma=0.3, gdx=0.01, ext_x=ext_x, xmin=xmin,
316+
xmax=xmax, method=m_lc, Rs=Rs, lambdas=lambdas)
317+
make_subplot(ax, true_csd, obj_CV.values('CSD'), obj_CV.estm_x,
318+
ele_pos=ele_pos, title=None, xlabel=True, ylabel=True,
319+
letter='G', est_csd_LC=obj_LC.values('CSD'))
320+
321+
ax = fig.add_subplot(gs[2, 1])
322+
xmin = -0.5
323+
xmax = 1
324+
ext_x = -0.5
325+
obj_CV = tb.modified_bases(val, pots, ele_pos, N_SRC, h=0.25,
326+
sigma=0.3, gdx=0.01, ext_x=ext_x, xmin=xmin,
327+
xmax=xmax, method=m_cv, Rs=Rs, lambdas=lambdas)
328+
obj_LC = tb.modified_bases(val, pots, ele_pos, N_SRC, h=0.25,
329+
sigma=0.3, gdx=0.01, ext_x=ext_x, xmin=xmin,
330+
xmax=xmax, method=m_lc, Rs=Rs, lambdas=lambdas)
331+
make_subplot(ax, true_csd, obj_CV.values('CSD'), obj_CV.estm_x,
332+
ele_pos=ele_pos, title=None, xlabel=True, ylabel=False,
333+
letter='H', est_csd_LC=obj_LC.values('CSD'))
334+
335+
ax = fig.add_subplot(gs[2, 2])
336+
xmin = 0
337+
xmax = 1.5
338+
ext_x = -0.5
339+
obj_CV = tb.modified_bases(val, pots, ele_pos, N_SRC, h=0.25,
340+
sigma=0.3, gdx=0.01, ext_x=ext_x, xmin=xmin,
341+
xmax=xmax, method=m_cv, Rs=Rs, lambdas=lambdas)
342+
obj_LC = tb.modified_bases(val, pots, ele_pos, N_SRC, h=0.25,
343+
sigma=0.3, gdx=0.01, ext_x=ext_x, xmin=xmin,
344+
xmax=xmax, method=m_lc, Rs=Rs, lambdas=lambdas)
345+
ax = make_subplot(ax, true_csd, obj_CV.values('CSD'), obj_CV.estm_x,
346+
ele_pos=ele_pos, title=None, xlabel=True, ylabel=False,
347+
letter='I', est_csd_LC=obj_LC.values('CSD'))
348+
handles, labels = ax.get_legend_handles_labels()
349+
fig.legend(handles, labels, loc='lower center', ncol=4, frameon=False)
350+
180351
fig.savefig(os.path.join(SAVE_PATH, 'targeted_basis_' + method +
181352
'_noise_' + str(noise) + '.png'), dpi=300)
182353
plt.show()
@@ -201,5 +372,7 @@ def generate_figure(R, MU, N_SRC, TRUE_CSD_XLIMS, TOTAL_ELE, SAVE_PATH,
201372
Rs = np.arange(0.1, 0.4, 0.05)
202373
# Rs = np.array([0.2])
203374
lambdas = np.zeros(1)
204-
generate_figure(R, MU, N_SRC, TRUE_CSD_XLIMS, TOTAL_ELE, SAVE_PATH, method,
205-
Rs, lambdas=None, noise=10)
375+
# generate_figure(R, MU, N_SRC, TRUE_CSD_XLIMS, TOTAL_ELE, SAVE_PATH,
376+
# method, Rs, lambdas=None, noise=10)
377+
generate_figure_CVLC(R, MU, N_SRC, TRUE_CSD_XLIMS, TOTAL_ELE, SAVE_PATH,
378+
Rs=Rs, lambdas=None, noise=10)

figures/kCSD_properties/figure_vectors.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,4 +181,4 @@ def generate_figure(csd_profile, R, MU, TRUE_CSD_XLIMS, TOTAL_ELE, ELE_LIMS,
181181
MU = 0.25
182182
generate_figure(CSD_PROFILE, R, MU, TRUE_CSD_XLIMS, TOTAL_ELE, ELE_LIMS,
183183
SAVE_PATH, method='cross-validation',
184-
Rs=np.arange(0.1, 0.5, 0.05), noise=0)
184+
Rs=np.arange(0.1, 0.5, 0.05), noise=None)

figures/kCSD_properties/reconstruction_stability.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ def save_source_code(save_path, timestr):
5353

5454

5555
def stability_M(csd_profile, csd_seed, n_src, ele_lims, true_csd_xlims,
56-
total_ele):
56+
total_ele, noise=None, method='cross-validation', Rs=None,
57+
lambdas=None):
5758
"""
5859
Investigates stability of reconstruction for different number of basis
5960
sources
@@ -97,10 +98,9 @@ def stability_M(csd_profile, csd_seed, n_src, ele_lims, true_csd_xlims,
9798
obj, rms[i], point_error = KK.make_reconstruction(csd_profile,
9899
csd_seed,
99100
total_ele=total_ele,
100-
noise=0,
101-
Rs=np.arange(0.2,
102-
0.5,
103-
0.1))
101+
noise=noise,
102+
Rs=Rs,
103+
lambdas=lambdas)
104104
ss = SpectralStructure(obj)
105105
eigenvectors[i], eigenvalues[i] = ss.evd()
106106
point_error_all.append(point_error)
@@ -419,11 +419,18 @@ def plot_k_pot(k_pot, save_path, n_src):
419419
ELE_LIMS = [0.1, 0.9] # range of electrodes space
420420
TRUE_CSD_XLIMS = [0., 1.]
421421
TOTAL_ELE = 10
422+
noise = None
423+
Rs = np.arange(0.1, 0.5, 0.1)
424+
lambdas = None
425+
method = 'cross-validation'
422426
OBJ, RMS, POINT_ERROR, eigenval, eigenvec = stability_M(CSD_PROFILE,
423427
CSD_SEED,
424428
N_SRC, ELE_LIMS,
425429
TRUE_CSD_XLIMS,
426-
TOTAL_ELE)
430+
TOTAL_ELE, Rs=Rs,
431+
noise=noise,
432+
lambdas=lambdas,
433+
method=method)
427434
k_pot_list = []
428435
k_interp_cross_list = []
429436
lambdas = []

figures/kCSD_properties/targeted_basis.py

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,8 @@ def csd_profile(x, seed):
8181

8282
def targeted_basis(val, csd_at, true_csd, ele_pos, pots, n_src, R, MU,
8383
true_csd_xlims, ele_lims, title, h=0.25, sigma=0.3,
84-
csd_res=100):
84+
csd_res=100, method='cross-validation', Rs=None,
85+
lambdas=None):
8586
'''
8687
Function investigating kCSD analysis for targeted bases.
8788
@@ -125,8 +126,7 @@ def targeted_basis(val, csd_at, true_csd, ele_pos, pots, n_src, R, MU,
125126
ele_lims=ele_lims, est_xres=0.01,
126127
true_csd_xlims=true_csd_xlims, sigma=sigma, h=h,
127128
src_type='gauss')
128-
obj, est_csd = k.recon(pots, ele_pos, method='cross-validation',
129-
Rs=np.arange(0.2, 0.5, 0.1))
129+
obj, est_csd = k.recon(pots, ele_pos, method=method, Rs=Rs, lambdas=lambdas)
130130
test_csd = csd_profile(obj.estm_x, [R, MU])
131131
rms = val.calculate_rms(test_csd, est_csd)
132132
titl = "Lambda: %0.2E; R: %0.2f; RMS_Error: %0.2E;" % (obj.lambd, obj.R,
@@ -191,7 +191,8 @@ def simulate_data(csd_profile, true_csd_xlims, R, MU, total_ele, ele_lims,
191191

192192
def structure_investigation(csd_profile, true_csd_xlims, n_src, R, MU,
193193
total_ele, ele_lims, title, h=0.25, sigma=0.3,
194-
csd_res=100):
194+
csd_res=100, method='cross-validation', Rs=None,
195+
lambdas=None, noise=None):
195196
'''
196197
.
197198
@@ -229,10 +230,12 @@ def structure_investigation(csd_profile, true_csd_xlims, n_src, R, MU,
229230
csd_at, true_csd, ele_pos, pots, val = simulate_data(csd_profile,
230231
true_csd_xlims, R, MU,
231232
total_ele, ele_lims,
232-
h=h, sigma=sigma)
233+
h=h, sigma=sigma,
234+
noise=noise)
233235
obj, k = targeted_basis(val, csd_at, true_csd, ele_pos, pots, n_src, R, MU,
234236
true_csd_xlims, ele_lims, title, h=0.25,
235-
sigma=0.3, csd_res=100)
237+
sigma=0.3, csd_res=100, method=method, Rs=Rs,
238+
lambdas=lambdas)
236239
return obj
237240

238241

@@ -400,16 +403,22 @@ def plot_k_interp_cross_v(k_icross, eigenvectors, save_path, title):
400403
ELE_LIMS = [0, 1.] # range of electrodes space
401404
TRUE_CSD_XLIMS = [0., 1.]
402405
TOTAL_ELE = 12
406+
noise = 0
407+
method = 'cross-validation'
408+
Rs = None
409+
lambdas = None
403410

404411
# A
405412
R = 0.2
406413
MU = 0.25
407414
csd_at, true_csd, ele_pos, pots, val = simulate_data(csd_profile,
408415
TRUE_CSD_XLIMS, R, MU,
409-
TOTAL_ELE, ELE_LIMS)
416+
TOTAL_ELE, ELE_LIMS,
417+
noise=noise)
410418
title = 'A_basis_lims_0_1'
411419
obj, k = targeted_basis(val, csd_at, true_csd, ele_pos, pots, N_SRC, R, MU,
412-
TRUE_CSD_XLIMS, ELE_LIMS, title)
420+
TRUE_CSD_XLIMS, ELE_LIMS, title, method=method, Rs=Rs,
421+
lambdas=lambdas)
413422
ss = SpectralStructure(obj)
414423
eigenvectors, eigenvalues = ss.evd()
415424
plot_eigenvalues(eigenvalues, SAVE_PATH, title)
@@ -419,23 +428,27 @@ def plot_k_interp_cross_v(k_icross, eigenvectors, save_path, title):
419428
# A.2
420429
title = 'A_basis_lims_0_0_5'
421430
modified_bases(val, pots, ele_pos, N_SRC, title, h=0.25, sigma=0.3,
422-
gdx=0.01, ext_x=0, xmin=0, xmax=0.5)
431+
gdx=0.01, ext_x=0, xmin=0, xmax=0.5, method=method, Rs=Rs,
432+
lambdas=lambdas)
423433

424434
# A.2.b
425435
title = 'A_basis_lims_0_0_5_less_sources'
426436
modified_bases(val, pots, ele_pos, N_SRC/2, title, h=0.25, sigma=0.3,
427-
gdx=0.01, ext_x=0, xmin=0, xmax=0.5)
437+
gdx=0.01, ext_x=0, xmin=0, xmax=0.5, method=method, Rs=Rs,
438+
lambdas=lambdas)
428439

429440
# B
430441
TRUE_CSD_XLIMS = [0., 1.5]
431442
R = 0.2
432443
MU = 1.25
433444
csd_at, true_csd, ele_pos, pots, val = simulate_data(csd_profile,
434445
TRUE_CSD_XLIMS, R, MU,
435-
TOTAL_ELE, ELE_LIMS)
446+
TOTAL_ELE, ELE_LIMS,
447+
noise=noise)
436448
title = 'B_basis_lims_0_1'
437449
obj, k = targeted_basis(val, csd_at, true_csd, ele_pos, pots, N_SRC, R, MU,
438-
TRUE_CSD_XLIMS, ELE_LIMS, title)
450+
TRUE_CSD_XLIMS, ELE_LIMS, title, method=method, Rs=Rs,
451+
lambdas=lambdas)
439452
ss = SpectralStructure(obj)
440453
eigenvectors, eigenvalues = ss.evd()
441454
plot_eigenvalues(eigenvalues, SAVE_PATH, title)
@@ -445,14 +458,17 @@ def plot_k_interp_cross_v(k_icross, eigenvectors, save_path, title):
445458
# B.2
446459
title = 'B_basis_lims_1_1_5'
447460
modified_bases(val, pots, ele_pos, N_SRC, title, h=0.25, sigma=0.3,
448-
gdx=0.01, ext_x=0, xmin=1, xmax=1.5)
461+
gdx=0.01, ext_x=0, xmin=1, xmax=1.5, method=method, Rs=Rs,
462+
lambdas=lambdas)
449463

450464
# B.2.b
451465
title = 'B_basis_lims_1_1_5_less_sources'
452466
modified_bases(val, pots, ele_pos, N_SRC/2, title, h=0.25, sigma=0.3,
453-
gdx=0.01, ext_x=0, xmin=1, xmax=1.5)
467+
gdx=0.01, ext_x=0, xmin=1, xmax=1.5, method=method, Rs=Rs,
468+
lambdas=lambdas)
454469

455470
# B.3
456471
title = 'B_basis_lims_0_1_5'
457472
modified_bases(val, pots, ele_pos, N_SRC, title, h=0.25, sigma=0.3,
458-
gdx=0.01, ext_x=0, xmin=0, xmax=1.5)
473+
gdx=0.01, ext_x=0, xmin=0, xmax=1.5, method=method, Rs=Rs,
474+
lambdas=lambdas)

0 commit comments

Comments
 (0)