573 core.copyState(other.core); |
573 core.copyState(other.core); |
574 } |
574 } |
575 return *this; |
575 return *this; |
576 } |
576 } |
577 |
577 |
|
578 /// \brief Seeding random sequence |
|
579 /// |
|
580 /// Seeding the random sequence. The current number type will be |
|
581 /// converted to the architecture word type. |
|
582 template <typename Number> |
|
583 void seed(Number seed) { |
|
584 _random_bits::Initializer<Number, Word>::init(core, seed); |
|
585 } |
|
586 |
|
587 /// \brief Seeding random sequence |
|
588 /// |
|
589 /// Seeding the random sequence. The given range should contain |
|
590 /// any number type and the numbers will be converted to the |
|
591 /// architecture word type. |
|
592 template <typename Iterator> |
|
593 void seed(Iterator begin, Iterator end) { |
|
594 typedef typename std::iterator_traits<Iterator>::value_type Number; |
|
595 _random_bits::Initializer<Number, Word>::init(core, begin, end); |
|
596 } |
|
597 |
578 /// \brief Returns a random real number from the range [0, 1) |
598 /// \brief Returns a random real number from the range [0, 1) |
579 /// |
599 /// |
580 /// It returns a random real number from the range [0, 1). The |
600 /// It returns a random real number from the range [0, 1). The |
581 /// default Number type is \c double. |
601 /// default Number type is \c double. |
582 template <typename Number> |
602 template <typename Number> |