JayBeams  0.1
Another project to have fun coding.
create_random_sample.hpp
Go to the documentation of this file.
1 #ifndef jb_testing_create_random_sample_hpp
2 #define jb_testing_create_random_sample_hpp
3 
4 #include <complex>
5 
6 namespace jb {
7 namespace testing {
8 
9 /**
10  * Wrap a random number generator so it can be used for both real and
11  * complex numbers.
12  */
13 template <typename T>
15  /// Return a new number using the generator
16  template <typename generator>
17  T operator()(generator& gen) const {
18  return gen();
19  }
20 };
21 
22 /**
23  * Specialize create_random_sample for complex numbers.
24  */
25 template <typename T>
26 struct create_random_sample<std::complex<T>> {
27  /// Return a new complex number using the generator
28  template <typename generator>
29  std::complex<T> operator()(generator& gen) const {
30  return std::complex<T>(gen(), gen());
31  }
32 };
33 
34 } // namespace testing
35 } // namespace jb
36 
37 #endif // jb_testing_create_random_sample_hpp
std::complex< T > operator()(generator &gen) const
Return a new complex number using the generator.
T operator()(generator &gen) const
Return a new number using the generator.
STL namespace.
Wrap a random number generator so it can be used for both real and complex numbers.
The top-level namespace for the JayBeams library.
Definition: as_hhmmss.hpp:7