Skip to content

Commit c8db234

Browse files
committed
[plot] better split splots
1 parent 84d87d9 commit c8db234

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

smcpp/model.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,16 @@ def for_pop(self, pid):
235235
return self.model1
236236
else:
237237
assert i == 1
238-
return _concat_models(self.model1, self.model2, self.split, pid)
238+
assert self.model1.N0 == self.model2.N0
239+
assert self.model1._spline_class is self.model2._spline_class
240+
k1, k2 = [np.searchsorted(m.knots, self.split) for m in (self.model1, self.model2)]
241+
kts = np.r_[self.model2.knots[:k2], [self.split], self.model1.knots[k1 + 1:]]
242+
m = SMCModel(kts, self.model1.N0, self.model2._spline_class, self.model2.pid)
243+
m[:k2] = self.model2[:k2]
244+
m[k2] = ad.admath.log(self.model1(self.split).item())
245+
m[k2 + 1:] = self.model1[k1 + 1:]
246+
return m
247+
# return _concat_models(self.model1, self.model2, self.split)
239248

240249
# Propagate changes from submodels up
241250
@targets('model update')
@@ -338,7 +347,7 @@ def __setitem__(self, coords, x):
338347
self._models[a][cc] = x
339348

340349

341-
def _concat_models(m1, m2, t, pid):
350+
def _concat_models(m1, m2, t):
342351
if m1.N0 != m2.N0:
343352
raise RuntimeException()
344353
cs1 = np.cumsum(m1.s)

smcpp/plotting.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,6 @@ def g(x, y, label, data=data, **kwargs):
8585
# if not logy:
8686
# y *= 1e-3
8787
series.append([None, x2, y2, ax.scatter, off, m.N0, g])
88-
if split:
89-
for i in 1, 2:
90-
x = series[-i][1]
91-
coords = x <= mb.split
92-
for j in 1, 2:
93-
series[-i][j] = series[-i][j][coords]
9488
else:
9589
x = np.cumsum(d['s'])
9690
x = np.insert(x, 0, 0)[:-1]

0 commit comments

Comments
 (0)