From 218462bd456ba2881d140c1439b8f22f1c660fd1 Mon Sep 17 00:00:00 2001 From: Josh Carmichael Date: Wed, 10 Dec 2025 15:04:14 -0500 Subject: [PATCH 1/3] override scikit inverse_transform to allow for complex values --- src/aspire/numeric/complex_pca/complex_pca.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/aspire/numeric/complex_pca/complex_pca.py b/src/aspire/numeric/complex_pca/complex_pca.py index e38820c702..7c2f20fc03 100644 --- a/src/aspire/numeric/complex_pca/complex_pca.py +++ b/src/aspire/numeric/complex_pca/complex_pca.py @@ -15,6 +15,7 @@ import scipy.sparse as sp from sklearn.decomposition import PCA from sklearn.utils._array_api import get_namespace +from sklearn.utils.validation import check_is_fitted from .validation import check_array @@ -78,3 +79,26 @@ def _fit(self, X): raise ValueError( "Unrecognized svd_solver='{0}'" "".format(self._fit_svd_solver) ) + + def inverse_transform(self, X): + """Transform data back to its original space.""" + + xp, _ = get_namespace(X, self.components_, self.explained_variance_) + + check_is_fitted(self) + + X = check_array( + X, + dtype=[np.complex128, np.complex64, np.float64, np.float32], + ensure_2d=True, + copy=self.copy, + allow_complex=True, + ) + + if self.whiten: + scaled_components = ( + xp.sqrt(self.explained_variance_[:, np.newaxis]) * self.components_ + ) + return X @ scaled_components + self.mean_ + else: + return X @ self.components_ + self.mean_ From 91306e835379edac700ae1fe6739b770ecf8c8d3 Mon Sep 17 00:00:00 2001 From: Josh Carmichael Date: Wed, 10 Dec 2025 15:33:13 -0500 Subject: [PATCH 2/3] update macos runner to 15 --- .github/workflows/workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 4eae25111b..4c52cefd00 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -156,7 +156,7 @@ jobs: shell: bash -el {0} strategy: matrix: - os: [ubuntu-latest, ubuntu-22.04, macOS-latest, macOS-13] + os: [ubuntu-latest, ubuntu-22.04, macOS-latest, macOS-15] backend: [default, openblas] python-version: ['3.9'] include: From 91fa39a716c236bfb3f5cdc230c220812934c30f Mon Sep 17 00:00:00 2001 From: Josh Carmichael Date: Thu, 11 Dec 2025 08:37:29 -0500 Subject: [PATCH 3/3] macos 14 --- .github/workflows/workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 4c52cefd00..2bf5a462dc 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -156,7 +156,7 @@ jobs: shell: bash -el {0} strategy: matrix: - os: [ubuntu-latest, ubuntu-22.04, macOS-latest, macOS-15] + os: [ubuntu-latest, ubuntu-22.04, macOS-latest, macOS-14] backend: [default, openblas] python-version: ['3.9'] include: