VCSBeam
Todo List
Member allocate_input_output_arrays (void **data, void **d_data, size_t size)
Remove the function allocate_input_output_arrays().
Member calc_beam_geom (double ras_hours, double decs_degs, double mjd, beam_geom *bg)
Put the table describing the beam_geom struct where it belongs: with the documentation for the beam_geom struct!
Member create_detected_beam (int npointing, int nsamples, int nchan, int npol)
Remove the function create_detected_beam().
Member create_pinned_data_buffer (size_t size)
Remove the function create_pinned_data_buffer().
Member cu_form_incoh_beam (uint8_t *data, uint8_t *d_data, size_t data_size, float *d_incoh, unsigned int nsample, int nchan, int ninput, float *offsets, float *d_offsets, float *scales, float *d_scales, uint8_t *Iscaled, uint8_t *d_Iscaled, size_t Iscaled_size)
Either generalise the vmBeamformChunk() so that it can also produce incoherent beams (and therefore do away with cu_form_incoh_beam(), or keep cu_form_incoh_beam() and convert it into a bona fide "vm" style fuction.
Member dec2hms (char *out, double in, int sflag)
Figure out whether dec2hms() is actually just for RAs, or whether it is more general than that (and, if so, change the name to reflect this).
Member destroy_vcsbeam_context (vcsbeam_context *vm)
Rename this function to a vm... name
Page File Formats
Write description of the legacy recombined file format
Member free_geometric_delays (geometric_delays *gdelays)
Convert free_geometric_delays() into a "vm" function.
Member free_input_output_arrays (void *data, void *d_data)
Remove the function free_input_output_arrays().
Member free_primary_beam (primary_beam *pb)
Change name to vm...
Member inv2x2S (gpuDoubleComplex *Min, gpuDoubleComplex *Mout)
Does this do the same thing as inv2x2()? Check the code, and delete if not needed.
Member ipfb_kernel (float *in_real, float *in_imag, float *ft_real, float *ft_imag, int ntaps, int npol, float *out)
Revamp this function to use cuComplex.
Member logger_report_all_stats (logger *log)
Fill in an example of stats output for logger_report_all_stats().
Member mjd2lst (double mjd, double *lst)
Consider removing mjd2lst(), since it consists only of a single call to a pal function.
Member populate_psrfits_header (vcsbeam_context *vm, struct psrfits *pf, int max_sec_per_file, int outpol, beam_geom *beam_geom_vals, char *incoh_basename, bool is_coherent)
Merge with populate_spliced_psrfits_header() to avoid code duplication.
Member populate_spliced_psrfits_header (vcsbeam_context *vm, struct psrfits *pf, int max_sec_per_file, int outpol, beam_geom *beam_geom_vals, char *basename, bool is_coherent)
Change the name to conform to standard.
Member renormalise_channels_kernel (float *S, int nstep, float *offsets, float *scales, uint8_t *Sscaled)
Optimise the renormalisation kernel (e.g. by removing the for loop over timesteps.
Page User's Guide – Beamforming

Finish the calibration section (and probably move it all to the Calibration workflow page).

There might be a bug whereby using all the defaults crashes because the default total number of seconds to be processed is more than the number of seconds after the "good" time starts.

Page User's Guide – Overview
Add link to program names once those pages are written.
Member vdif_write_data (struct vdifinfo *vf, int8_t *output)
Make sure that the header file is unneccesarily re-written each time this function is called. If so, put this bit somewhere more sensible.
Member vmBeamformChunk (vcsbeam_context *vm)
Split the beamforming operations into separate steps/kernels.
Member vmCalcJ (vcsbeam_context *vm)
Issue #9
Member vmCalcPhi (vcsbeam_context *vm, beam_geom *beam_geom_vals)
Incorporate the beam_geom struct into the vm struct.
Member vmFFTChunk (vcsbeam_context *vm)
Keep this as a "pure" forward_pfb function, and make a separate "vm" function that's exposed.
Member vmFPGARoundingChunk (vcsbeam_context *vm)
Keep this as a "pure" forward_pfb function, and make a separate "vm" function that's exposed.
Member vmLoadFilter (vcsbeam_context *vm, char *filtername, filter_type type, int nchans)
Change nchans so that it uses vm→nfine_chans
Member vmPackChunk (vcsbeam_context *vm)
Keep this as a "pure" forward_pfb function, and make a separate "vm" function that's exposed.
Member vmSetNumPointings (vcsbeam_context *vm, unsigned int npointings)
Investigate whether this function is really needed
Member vmWOLA_kernel (char2 *indata, int *filter_coeffs, void *weighted_overlap_array)
Add data layout information to this docstring.
Member vmWOLAChunk (vcsbeam_context *vm)
Keep this as a "pure" forward_pfb function, and make a separate "vm" function that's exposed.