LCOV - code coverage report
Current view: top level - src/Module/Stateful/Source/Random - Source_random.cpp (source / functions) Hit Total Coverage
Test: streampu_clean.info Lines: 0 18 0.0 %
Date: 2025-01-11 12:25:42 Functions: 0 40 0.0 %

          Line data    Source code
       1             : #include "Module/Stateful/Source/Random/Source_random.hpp"
       2             : 
       3             : using namespace spu::module;
       4             : 
       5             : template<typename B>
       6           0 : Source_random<B>::Source_random(const int max_data_size, const int seed)
       7             :   : Source<B>(max_data_size)
       8           0 :   , rd_engine(seed)
       9           0 :   , uniform_dist(0, 1)
      10             : {
      11           0 :     const std::string name = "Source_random";
      12           0 :     this->set_name(name);
      13           0 :     this->tasks[0]->set_replicability(true);
      14           0 : }
      15             : 
      16             : template<typename B>
      17             : Source_random<B>*
      18           0 : Source_random<B>::clone() const
      19             : {
      20           0 :     auto m = new Source_random(*this);
      21           0 :     m->deep_copy(*this);
      22           0 :     return m;
      23             : }
      24             : 
      25             : template<typename B>
      26             : void
      27           0 : Source_random<B>::_generate(B* out_data, const size_t frame_id)
      28             : {
      29             :     // generate a random k bits vector out_data
      30           0 :     for (auto i = 0; i < this->max_data_size; i++)
      31           0 :         out_data[i] = (B)this->uniform_dist(this->rd_engine);
      32           0 : }
      33             : 
      34             : template<typename B>
      35             : void
      36           0 : Source_random<B>::set_seed(const int seed)
      37             : {
      38           0 :     rd_engine.seed(seed);
      39           0 : }
      40             : 
      41             : // ==================================================================================== explicit template instantiation
      42             : template class spu::module::Source_random<int8_t>;
      43             : template class spu::module::Source_random<uint8_t>;
      44             : template class spu::module::Source_random<int16_t>;
      45             : template class spu::module::Source_random<uint16_t>;
      46             : template class spu::module::Source_random<int32_t>;
      47             : template class spu::module::Source_random<uint32_t>;
      48             : template class spu::module::Source_random<int64_t>;
      49             : template class spu::module::Source_random<uint64_t>;
      50             : template class spu::module::Source_random<float>;
      51             : template class spu::module::Source_random<double>;
      52             : // ==================================================================================== explicit template instantiation

Generated by: LCOV version 1.14