Skip to content

Commit

Permalink
fix(cross): compute total squared covariance in PC space
Browse files Browse the repository at this point in the history
Before we computed the TSC in the original (physical) space which required computing a large covariance matrix. As a result, we ran out of memory even for datasets of moderate size.
  • Loading branch information
nicrie committed Sep 10, 2024
1 parent 75bbe7a commit 2fdefc4
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions xeofs/cross/cpcca.py
Original file line number Diff line number Diff line change
Expand Up @@ -982,8 +982,8 @@ def _compute_total_squared_covariance(self, C: DataArray) -> DataArray:
Requires the unwhitened covariance matrix which we can obtain by multiplying the whitened covariance matrix with the inverse of the whitening transformation matrix.
"""
C = self.whitener2.inverse_transform_data(C)
C = self.whitener1.inverse_transform_data(C.conj().T)
C = self.whitener2.inverse_transform_data(C, unwhiten_only=True)
C = self.whitener1.inverse_transform_data(C.conj().T, unwhiten_only=True)
# Not necessary to conjugate transpose for total squared covariance
# C = C.conj().T
return (abs(C) ** 2).sum()
Expand Down

0 comments on commit 2fdefc4

Please sign in to comment.