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

          Line data    Source code
       1             : /**
       2             :  * \file SumFilter.hxx
       3             :  */
       4             : 
       5             : #include "SumFilter.h"
       6             : 
       7             : #include <cstring>
       8             : 
       9             : namespace ATK
      10             : {
      11             :   template<typename DataType_>
      12          79 :   SumFilter<DataType_>::SumFilter(gsl::index nb_output_channels, gsl::index summed_channels)
      13          79 :   :Parent(summed_channels * nb_output_channels, nb_output_channels), summed_channels(summed_channels)
      14             :   {
      15          79 :   }
      16             :   
      17             :   template<typename DataType_>
      18       10513 :   void SumFilter<DataType_>::process_impl(gsl::index size) const
      19             :   {
      20       10513 :     assert(nb_input_ports == summed_channels * nb_output_ports);
      21             : 
      22       21026 :     for (gsl::index channel = 0; channel < nb_output_ports; ++channel)
      23             :     {
      24       10513 :       const DataType* ATK_RESTRICT input = converted_inputs[summed_channels * channel];
      25       10513 :       DataType* ATK_RESTRICT output = outputs[channel];
      26       10513 :       std::memcpy(output, input, size * sizeof(DataType_));
      27             :       
      28       21041 :       for(gsl::index summed_channel = 1; summed_channel < summed_channels; ++summed_channel)
      29             :       {
      30       10528 :         const DataType* ATK_RESTRICT input = converted_inputs[summed_channels * channel + summed_channel];
      31     6526863 :         for (gsl::index i = 0; i < size; ++i)
      32             :         {
      33     6516328 :           output[i] = output[i] + input[i];
      34             :         }
      35             :       }
      36             :     }
      37       10513 :   }
      38             : }

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