Closed ewanbarr closed 2 months ago
PR #15 is now submitted. @vivekvenkris It needs reviewed as even though tests pass, this is changing a lot of base functionality of the code (like math operators) so is potentially risky.
@vivekvenkris I said to hold on this because there was a simpler solution, but it turns out that the simpler solution doesn't really change much. Hence, I think we stick with this PR as it is as it compiles, passes tests and satisfies the requirement of enabling easy additional stokes modes.
Done and merged to pipeline_dev
Currently we support I, Q, U, V and IQUV. There are requests to be able to produce subsets of the stokes parameters, e.g. I,V and Q,U.
Rather than handling these all individually it would make sense to consolidate
SingleStokesBeamformerTraits
andFullStokesBeamformerTraits
into a genericStokesTraits<...>
which can take up to 4 template arguments defining the ordering and types of stokes parameters to be generated.A prototype version of this feature is below.
Adding this feature will require changing the beamformer_utils.cuh file and the pipeline setup for the beamformer will have to be updated. Additionally as the underlying types will be float2, float3 etc. generic math operators for these types will be needed to be added to the types.cuh file to make these types compatible with downstream code.