The sampling parameter in the csa classes (csa_wt, csa_sada, csa_uncompressed) are template parameter. The original reason for this design decision was that in operator[] and operator() there are modulo and divisions operations which can be optimised by the compiler if the sampling parameter is a power of two.
From todays perspective the loss of flexibility by making the sampling parameter a template parameter does not counterbalance the minor gain of time in some special cases.
Therefore we plan to remove the template parameters for the sample density and add them to the constructor.
The sampling parameter in the csa classes (csa_wt, csa_sada, csa_uncompressed) are template parameter. The original reason for this design decision was that in operator[] and operator() there are modulo and divisions operations which can be optimised by the compiler if the sampling parameter is a power of two.
From todays perspective the loss of flexibility by making the sampling parameter a template parameter does not counterbalance the minor gain of time in some special cases.
Therefore we plan to remove the template parameters for the sample density and add them to the constructor.