LCOV - code coverage report
Current view: top level - Tools - DecimationFilter.hxx (source / functions) Hit Total Coverage
Test: coverage.info.cleaned Lines: 16 17 94.1 %
Date: 2021-02-18 20:07:22 Functions: 3 3 100.0 %

          Line data    Source code
       1             : /**
       2             :  * \file DecimationFilter.hxx
       3             :  */
       4             : 
       5             : #include "DecimationFilter.h"
       6             : 
       7             : #include <cassert>
       8             : 
       9             : namespace ATK
      10             : {
      11             :   template<class DataType>
      12          17 :   DecimationFilter<DataType>::DecimationFilter(gsl::index nb_channels)
      13          17 :   :TypedBaseFilter<DataType>(nb_channels, nb_channels)
      14             :   {
      15          17 :   }
      16             :   
      17             :   template<class DataType>
      18          34 :   void DecimationFilter<DataType>::setup()
      19             :   {
      20          34 :     Parent::setup();
      21          34 :     if(output_sampling_rate == 0 || input_sampling_rate % output_sampling_rate != 0)
      22             :     {
      23           0 :       decimation = 0;
      24             :     }
      25             :     else
      26             :     {
      27          34 :       decimation = static_cast<int>(input_sampling_rate / output_sampling_rate);
      28             :     }
      29          34 :   }
      30             :   
      31             :   template<class DataType>
      32          17 :   void DecimationFilter<DataType>::process_impl(gsl::index size) const
      33             :   {
      34          17 :     assert(nb_input_ports == nb_output_ports);
      35             : 
      36          34 :     for(gsl::index channel = 0; channel < nb_input_ports; ++channel)
      37             :     {
      38          17 :       const DataType* ATK_RESTRICT input = converted_inputs[channel];
      39          17 :       DataType* ATK_RESTRICT output = outputs[channel];
      40      341297 :       for(gsl::index i = 0; i < size; ++i)
      41             :       {
      42      341280 :         output[i] = input[i*decimation];
      43             :       }
      44             :     }
      45          17 :   }
      46             : }

Generated by: LCOV version TK-3.3.0-4-gdba42eea