| 150 | }; |
| 151 | |
| 152 | class UniformFloatRNG : public IIDRNG { |
| 153 | public: |
| 154 | UniformFloatRNG(dt_float32 a, dt_float32 b) : m_dist(a, b) {} |
| 155 | dt_float32 gen_single_val() override; |
| 156 | |
| 157 | protected: |
| 158 | std::uniform_real_distribution<dt_float32> m_dist; |
| 159 | bool has_fast_float32() override; |
| 160 | void fill_fast_float32(dt_float32* dest, size_t size) override; |
| 161 | }; |
| 162 | |
| 163 | //! range must be positive; each value would be negated with prob 0.5 |
| 164 | class UniformFloatNonZeroRNG : public UniformFloatRNG { |