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

          Line data    Source code
       1             : /**
       2             :  * \file VolumeFilter.hxx
       3             :  */
       4             : 
       5             : #include "VolumeFilter.h"
       6             : #include <ATK/Core/TypeTraits.h>
       7             : 
       8             : namespace ATK
       9             : {
      10             :   template<typename DataType_>
      11          40 :   VolumeFilter<DataType_>::VolumeFilter(gsl::index nb_channels)
      12          40 :   :Parent(nb_channels, nb_channels)
      13             :   {
      14          40 :   }
      15             :   
      16             :   template<typename DataType_>
      17           3 :   void VolumeFilter<DataType_>::set_volume_db(double volume_db)
      18             :   {
      19           3 :     set_volume(TypeTraits<DataType_>::One() * static_cast<typename TypeTraits<DataType_>::Scalar>(std::pow(10., volume_db/20)));
      20           3 :   }
      21             :   
      22             :   template<typename DataType_>
      23          39 :   void VolumeFilter<DataType_>::set_volume(DataType_ volume)
      24             :   {
      25          39 :     this->volume = volume;
      26          39 :   }
      27             :   
      28             :   template<typename DataType_>
      29           1 :   DataType_ VolumeFilter<DataType_>::get_volume() const
      30             :   {
      31           1 :     return volume;
      32             :   }
      33             : 
      34             :   template<typename DataType_>
      35        2085 :   void VolumeFilter<DataType_>::process_impl(gsl::index size) const
      36             :   {
      37        4170 :     for(gsl::index channel = 0; channel < nb_input_ports; ++channel)
      38             :     {
      39        2085 :       const DataType* ATK_RESTRICT input = converted_inputs[channel];
      40        2085 :       DataType* ATK_RESTRICT output = outputs[channel];
      41     2139745 :       for(gsl::index i = 0; i < size; ++i)
      42             :       {
      43     2137662 :         output[i] = volume * input[i];
      44             :       }
      45             :     }
      46        2085 :   }
      47             : }

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