LCOV - code coverage report
Current view: top level - Mock - SimpleSinusGeneratorFilter.cpp (source / functions) Hit Total Coverage
Test: coverage.info.cleaned Lines: 15 15 100.0 %
Date: 2021-02-18 20:07:22 Functions: 8 20 40.0 %

          Line data    Source code
       1             : /**
       2             :  * \file SinusGeneratorFilter.cpp
       3             :  */
       4             : 
       5             : #include "SimpleSinusGeneratorFilter.h"
       6             : 
       7             : #include <boost/math/constants/constants.hpp>
       8             : 
       9             : #include <cmath>
      10             : #include <cstdint>
      11             : 
      12             : namespace ATK
      13             : {
      14             :   template<class DataType_>
      15         370 :   SimpleSinusGeneratorFilter<DataType_>::SimpleSinusGeneratorFilter()
      16         370 :   :TypedBaseFilter<DataType_>(0, 1)
      17             :   {
      18         370 :   }
      19             :   
      20             :   template<class DataType_>
      21         354 :   void SimpleSinusGeneratorFilter<DataType_>::set_amplitude(DataType_ amplitude)
      22             :   {
      23         354 :     this->amplitude = amplitude;
      24         354 :   }
      25             :   
      26             :   template<class DataType_>
      27         370 :   void SimpleSinusGeneratorFilter<DataType_>::set_frequency(int frequency)
      28             :   {
      29         370 :     this->frequency = frequency;
      30         370 :   }
      31             :   
      32             :   template<class DataType_>
      33        9080 :   void SimpleSinusGeneratorFilter<DataType_>::process_impl(gsl::index size) const
      34             :   {    
      35        9080 :     double real_increment = 2. / output_sampling_rate * frequency;
      36             :     
      37    67801889 :     for(gsl::index i = 0; i < size; ++i)
      38             :     {
      39    67792760 :       state += real_increment;
      40    67792760 :       outputs[0][i] = static_cast<DataType_>(amplitude * std::sin(state * boost::math::constants::pi<double>()));
      41             :     }
      42        9080 :   }
      43             :   
      44             :   template class SimpleSinusGeneratorFilter<std::int16_t>;
      45             :   template class SimpleSinusGeneratorFilter<std::int32_t>;
      46             :   template class SimpleSinusGeneratorFilter<int64_t>;
      47             :   template class SimpleSinusGeneratorFilter<float>;
      48             :   template class SimpleSinusGeneratorFilter<double>;
      49             : }

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