Use PyTorch instead of NumPy #10

Merged
cfalas merged 5 commits from torch into main 2025-01-30 13:58:26 +02:00
Showing only changes of commit 785021b557 - Show all commits

View File

@ -113,11 +113,12 @@ class AoA:
def evaluate(self, theta: torch.Tensor, tof: torch.Tensor) -> torch.Tensor: def evaluate(self, theta: torch.Tensor, tof: torch.Tensor) -> torch.Tensor:
R = torch.mean(self.historical_autocorr, dim=0) R = torch.mean(self.historical_autocorr, dim=0)
assert (R == torch.conj(R).T).all()
# The smallest eigenvectors span the noise subspace, # The smallest eigenvectors span the noise subspace,
# and the largest span the signal subspace. # and the largest span the signal subspace.
logger.debug(f"Calculating eigenvectors of R: {R.shape}") logger.debug(f"Calculating eigenvectors of R: {R.shape}")
eigvals, eigvecs = torch.linalg.eig(R) eigvals, eigvecs = torch.linalg.eigh(R)
assert isinstance(eigvals, torch.Tensor) assert isinstance(eigvals, torch.Tensor)
assert isinstance(eigvecs, torch.Tensor) assert isinstance(eigvecs, torch.Tensor)
logger.info(f"Eigenvalues: {eigvals}") logger.info(f"Eigenvalues: {eigvals}")