Eigendecomposition¶
Functions
-
template<typename T, typename = std::enable_if_t<std::is_same_v<T, double> || std::is_same_v<T, float>>>
auto eigh(T wl, std::size_t nAntenna, std::size_t nBeam, const std::complex<T> *s, std::size_t lds, const std::complex<T> *w, std::size_t ldxyz, T *d, std::complex<T> *v, std::size_t ldv) -> std::pair<std::size_t, T>¶ Compute eigenvalues.
- Parameters:
ctx – [in] Context handle.
wl – [in] Wavelength.
nAntenna – [in] Number of antenna.
nBeam – [in] Number of beam.
s – [in] Optional 2D sensitivity array of size (nBeam, nBeam). May be null.
lds – [in] Leading dimension of s.
w – [in] 2D beamforming array of size (nAntenna, nBeam).
ldw – [in] Leading dimension of w.
d – [out] Eigenvalues. Size nBeam. Zero padded if number of computed eigenvalues < nBeam.
v – [out] Eigenvectors. Size (nAntenna, nBeam). Zero padded if number of computed eigenvalues < nBeam.
- Returns:
A pair consisting of the number of computed eigenvalues and a scaling factor required for processing visibilities.
-
template<typename T, typename = std::enable_if_t<std::is_same_v<T, double> || std::is_same_v<T, float>>>
auto eigh_gram(T wl, std::size_t nAntenna, std::size_t nBeam, const std::complex<T> *s, std::size_t lds, const std::complex<T> *w, std::size_t ldw, const T *xyz, std::size_t ldxyz, T *d, std::complex<T> *v, std::size_t ldv) -> std::pair<std::size_t, T>¶ Compute eigenvalues.
- Parameters:
ctx – [in] Context handle.
wl – [in] Wavelength.
nAntenna – [in] Number of antenna.
nBeam – [in] Number of beam.
s – [in] Optional 2D sensitivity array of size (nBeam, nBeam). May be null.
lds – [in] Leading dimension of s.
w – [in] 2D beamforming array of size (nAntenna, nBeam).
ldw – [in] Leading dimension of w.
xyz – [in] 2D antenna position array of size (nAntenna, 3).
ldxyz – [in] Leading dimension of xyz.
d – [out] Eigenvalues. Size nBeam. Zero padded if number of computed eigenvalues < nBeam.
v – [out] Eigenvectors. Size (nAntenna, nBeam). Zero padded if number of computed eigenvalues < nBeam.
- Returns:
A pair consisting of the number of computed eigenvalues and a scaling factor required for processing visibilities.