eigenVis

class eigenVis : public kotekan::Stage

Perform eigen factorization of the visibilities.

This task performs the factorization of the visibility matrix into num_ev eigenvectors and eigenvalues and stores them in reserve space in the VisBuffer. They are stored in descending order of the eigenvalue.

Buffers

  • in_buf The set of buffers coming out the GPU buffers

    • Format: VisBuffer structured

    • Metadata: VisMetadata

  • out_buf The merged and transformed buffer

    • Format: VisBuffer structured

    • Metadata: VisMetadata

Metrics

  • kotekan_eigenvis_comp_time_seconds Time required to find eigenvectors. An exponential moving average over ~10 samples.

  • kotekan_eigenvis_eigenvalue The value of each eigenvalue calculated, or the RMS.

  • kotekan_eigenvis_lapack_failure_total The number of frames skipped due to LAPACK failing (because of bad input data or other reasons).

Author

Kiyoshi Masui

Param num_elements:

Int. The number of elements (i.e. inputs) in the correlator data.

Param block_size:

Int. The block size of the packed data.

Param num_ev:

UInt. The number of eigenvectors to be calculated as an approximation to the visibilities.

Param num_diagonals_filled:

Int, default 0. Number of diagonals to fill with the previous time step’s solution prior to factorization. For example, setting to 1 will replace the main diagonal only. Filled with zero on the first time step.

Param exclude_inputs:

List of UInts, optional. Inputs to exclude (rows and columns to set to zero) in visibilities prior to factorization.

Public Functions

eigenVis(kotekan::Config &config, const std::string &unique_name, kotekan::bufferContainer &buffer_container)
virtual ~eigenVis() = default
virtual void main_thread() override