From 92e745f4146314311653ebeefcd2dee7eb2c16a3 Mon Sep 17 00:00:00 2001 From: henrydingliu <106109320+henrydingliu@users.noreply.github.com> Date: Tue, 30 Jun 2026 09:59:36 -0700 Subject: [PATCH 1/7] Update development.py --- chainladder/development/development.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chainladder/development/development.py b/chainladder/development/development.py index 7a630ff5..3e520a33 100644 --- a/chainladder/development/development.py +++ b/chainladder/development/development.py @@ -431,7 +431,7 @@ def fit(self, X: TriangleLike, y: None = None, sample_weight: None = None): w_reg = params._w_reg params = xp.concatenate((params.slope_, params.sigma_, params.std_err_), 3) - params = xp.swapaxes(params, 2, 3) + params = params.swapaxes(2, 3) self.ldf_ = self._param_property(obj, params, 0) self.sigma_ = self._param_property(obj, params, 1) From f431e9cfb25a6edaadb368bfb3e13b785512145b Mon Sep 17 00:00:00 2001 From: henrydingliu <106109320+henrydingliu@users.noreply.github.com> Date: Wed, 1 Jul 2026 20:42:44 -0700 Subject: [PATCH 2/7] Update capecod.py --- chainladder/methods/capecod.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chainladder/methods/capecod.py b/chainladder/methods/capecod.py index 03139b81..4175e2ae 100644 --- a/chainladder/methods/capecod.py +++ b/chainladder/methods/capecod.py @@ -251,11 +251,11 @@ def _get_capecod_aprioris(self, X, sample_weight): decay_matrix = self.decay ** xp.abs( xp.arange(len_orig)[None].T - xp.arange(len_orig)[None] ) - weighted_exposure = xp.swapaxes(reported_exposure.values, -1, -2) * decay_matrix + weighted_exposure = reported_exposure.values.swapaxes(-1, -2) * decay_matrix trended_ultimate = (latest.values * trend_array * X_olf_array) / ( reported_exposure.values * sw_olf_array ) - trended_ultimate = xp.swapaxes(trended_ultimate, -1, -2) + trended_ultimate = trended_ultimate.swapaxes(-1, -2) apriori = xp.nansum(weighted_exposure * trended_ultimate, -1) / xp.nansum( weighted_exposure, -1 ) From e3d4fab7caba93a2b8064bc834a6d1000adfb2a8 Mon Sep 17 00:00:00 2001 From: henrydingliu <106109320+henrydingliu@users.noreply.github.com> Date: Wed, 1 Jul 2026 20:44:13 -0700 Subject: [PATCH 3/7] Update munich.py --- chainladder/development/munich.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chainladder/development/munich.py b/chainladder/development/munich.py index 7210c822..9e823bf8 100644 --- a/chainladder/development/munich.py +++ b/chainladder/development/munich.py @@ -223,7 +223,7 @@ def _get_MCL_model(self, X): modelsI = modelsI.fit(i, p, 1 / i).sigma_fill(X.sigma_interpolation) q_f = self._p_to_i_concate(modelsP.slope_, modelsI.slope_, xp) rho_sigma = self._p_to_i_concate(modelsP.sigma_, modelsI.sigma_, xp) - return xp.swapaxes(q_f, -1, -2), xp.swapaxes(rho_sigma, -1, -2) + return q_f.swapaxes(-1, -2), rho_sigma.swapaxes(-1, -2) def _get_MCL_resids(self, X): xp = X.get_array_module() From fa8aaea31556e46e0ca762efbb5e4822a2da5391 Mon Sep 17 00:00:00 2001 From: henrydingliu <106109320+henrydingliu@users.noreply.github.com> Date: Wed, 1 Jul 2026 20:44:59 -0700 Subject: [PATCH 4/7] Update clark.py --- chainladder/development/clark.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chainladder/development/clark.py b/chainladder/development/clark.py index 241632b0..6a39e3ad 100644 --- a/chainladder/development/clark.py +++ b/chainladder/development/clark.py @@ -335,7 +335,7 @@ def solver(x: ndarray): if sample_weight: self.elr_ = pd.DataFrame(params[..., 0, 2], index=rows, columns=X.vdims) ultimate_ = ( - xp.swapaxes(self._G(age=(latest_age - age_offset)[::-1]), -1, -2) + self._G(age=(latest_age - age_offset)[::-1]).swapaxes(-1, -2) * ld.values ) self.incremental_fits_ = X.copy() From 37789f24716084b570d9c527f3ea3264129e9d59 Mon Sep 17 00:00:00 2001 From: henrydingliu <106109320+henrydingliu@users.noreply.github.com> Date: Wed, 1 Jul 2026 20:45:36 -0700 Subject: [PATCH 5/7] Update weighted_regression.py --- chainladder/utils/weighted_regression.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chainladder/utils/weighted_regression.py b/chainladder/utils/weighted_regression.py index 925ac5d6..1497587a 100644 --- a/chainladder/utils/weighted_regression.py +++ b/chainladder/utils/weighted_regression.py @@ -174,7 +174,7 @@ def std_err_fill(self): self.std_err_ = xp.nan_to_num(self.std_err_) + xp.nan_to_num( (1 - xp.nan_to_num(self.std_err_ * 0 + 1)) * self.sigma_ - / xp.swapaxes(xp.sqrt(self.x ** (2 - self.exponent_))[..., 0:1, :], -1, -2) + / xp.sqrt(self.x ** (2 - self.exponent_))[..., 0:1, :].swapaxes(-1, -2) ) return self From 1a82f4edc4ea7dccb5d309866c0186710e7870eb Mon Sep 17 00:00:00 2001 From: henrydingliu <106109320+henrydingliu@users.noreply.github.com> Date: Wed, 1 Jul 2026 20:46:14 -0700 Subject: [PATCH 6/7] Update bootstrap.py --- chainladder/adjustments/bootstrap.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chainladder/adjustments/bootstrap.py b/chainladder/adjustments/bootstrap.py index fa9d17b2..344d0035 100644 --- a/chainladder/adjustments/bootstrap.py +++ b/chainladder/adjustments/bootstrap.py @@ -258,7 +258,7 @@ def _get_simulation(self, X, exp_incr_triangle): ) b = xp.repeat(exp_incr_triangle[None, ...], self.n_sims, 0) resampled_triangles = (resampled_residual * xp.sqrt(abs(b)) + b).cumsum(2) - resampled_triangles = xp.swapaxes(resampled_triangles[None, ...], 0, 1) + resampled_triangles = resampled_triangles[None, ...].swapaxes(0, 1) obj = X.copy() if X.key_labels == ['Total']: obj.kdims = np.arange(self.n_sims) From 185190015c636003cf6f013f16b5117eda3e14eb Mon Sep 17 00:00:00 2001 From: henrydingliu <106109320+henrydingliu@users.noreply.github.com> Date: Wed, 1 Jul 2026 20:47:08 -0700 Subject: [PATCH 7/7] Update test_development.py --- chainladder/development/tests/test_development.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chainladder/development/tests/test_development.py b/chainladder/development/tests/test_development.py index ba781a2d..d8bd8c72 100644 --- a/chainladder/development/tests/test_development.py +++ b/chainladder/development/tests/test_development.py @@ -35,7 +35,7 @@ def fit(self, X, y: None = None, sample_weight: None = None): params = cl.WeightedRegression(axis=2, thru_orig=True, xp=xp).fit( reg_x, reg_y, self.w_.values, average_param ) - self.ldf_ = self.dev._param_property(X, xp.swapaxes(params.slope_, 2, 3), 0) + self.ldf_ = self.dev._param_property(X, params.slope_.swapaxes(2, 3), 0) return self def test_full_slice(genins): @@ -856,4 +856,4 @@ def test_sigma1(atol): cl.Development(average='simple').fit(tri).sigma_.values, cl.Development(average='regression').fit(tri).sigma_.values, atol = atol - ) \ No newline at end of file + )