Line data Source code
1 : /** 2 : * \file WhiteNoiseGeneratorFilter.cpp 3 : */ 4 : 5 : #include "WhiteNoiseGeneratorFilter.h" 6 : 7 : #include <boost/math/constants/constants.hpp> 8 : 9 : namespace ATK 10 : { 11 : template<typename DataType_> 12 4 : WhiteNoiseGeneratorFilter<DataType_>::WhiteNoiseGeneratorFilter() 13 4 : :Parent(0, 1) 14 : { 15 4 : } 16 : 17 : template<typename DataType_> 18 1 : void WhiteNoiseGeneratorFilter<DataType_>::set_volume(DataType_ volume) 19 : { 20 1 : this->volume = volume; 21 1 : dist.param(typename boost::random::uniform_real_distribution<DataType_>::param_type(static_cast<DataType>(offset - volume), static_cast<DataType>(offset + volume))); 22 1 : } 23 : 24 : template<typename DataType_> 25 1 : DataType_ WhiteNoiseGeneratorFilter<DataType_>::get_volume() const 26 : { 27 1 : return volume; 28 : } 29 : 30 : template<typename DataType_> 31 1 : void WhiteNoiseGeneratorFilter<DataType_>::set_offset(DataType_ offset) 32 : { 33 1 : this->offset = offset; 34 1 : dist.param(typename boost::random::uniform_real_distribution<DataType_>::param_type(static_cast<DataType>(offset - volume), static_cast<DataType>(offset + volume))); 35 1 : } 36 : 37 : template<typename DataType_> 38 1 : DataType_ WhiteNoiseGeneratorFilter<DataType_>::get_offset() const 39 : { 40 1 : return offset; 41 : } 42 : 43 : template<typename DataType_> 44 2 : void WhiteNoiseGeneratorFilter<DataType_>::process_impl(gsl::index size) const 45 : { 46 2 : DataType* ATK_RESTRICT output = outputs[0]; 47 8388610 : for(gsl::index i = 0; i < size; ++i) 48 : { 49 8388610 : output[i] = dist(gen); 50 : } 51 2 : } 52 : 53 : #if ATK_ENABLE_INSTANTIATION 54 : template class WhiteNoiseGeneratorFilter<float>; 55 : #endif 56 : template class WhiteNoiseGeneratorFilter<double>; 57 : }