0.5.0 -- Limit Processed Beamlets, Add Test Cases, Numerous Small Fixes/QOL
Features:
A subset of the beamlets in the input ports can now be selected, such that when 488 beamlets are recorded, we can process all of them or just a subset on the range [lower, upper). The docs/newProcessingMode.md
has been updated to reflect the changes in the kernels to support this.
Implemented a set of test cases in the makefile under target test
, which generates outputs and compares them to a set of hashes. The hashes on hand were generated using -ffast-math, so debug builds will not pass tests.
The lofar_udp_reader option can now be set up using a struct rather than a large number of input parameters.
The CLIs can now start processing data from a non-0 base port
Some default structs have been provided for configuring the reader
Fixes:
Documentation pass across the repo
Makefile will no longer always try to use ICC if it is available, and will default to whatever is passed in by CC and CXX.
GCC compiles now use -ffast-math as well
Makefile not uses -command
syntax rather than command; exit 0
to work around calls expected to fail
Fixed lofar_udp_extractor passing the wrong number of beamlets to mockHeader for some processing modes
CLIs now determine the number of output files from the lofar_udp_reader struct rather than trying (and often failing. whoops.) to predict it themselves
CLIs will now raise an error if the input filename does not update when iterating over input filepaths
Removed inconsistent documentation about the GUPPI RAW CLI
Fixed some of the "Full Stokes Vector" processing modes (151-153) generating garbage on ICC by splitting the loop into two separate sets of function calls. (A compiler bug?)
Fixed an incorrect base offset in some of the Stokes decimation modes (1,2,3)
Fixed the Time-Major, Dual Pols (32) mode incorrectly calculating the output offset for the second half of data (missing bracket)
The main processing loop is now a compile-time fixed if-else statement rather than a runtime switch (I thought it was fixed at compile time, I was mistaken).
Added safeguards to prevent memory leaks from the CLI
Fixed the Useful Stokes mode (160, did not effect decimated versions) having an incorrect number of output files
Fixed the reader_step return value not being updated due to a missing OMP pragma
Fixed reader_step attempting to iterate when there was no work to perform (cosmetic change)