686 |
686 |
687 double real() { |
687 double real() { |
688 return real<double>(); |
688 return real<double>(); |
689 } |
689 } |
690 |
690 |
691 /// \brief Returns a random real number the range [0, b) |
|
692 /// |
|
693 /// It returns a random real number from the range [0, b). |
|
694 template <typename Number> |
|
695 Number real(Number b) { |
|
696 return real<Number>() * b; |
|
697 } |
|
698 |
|
699 /// \brief Returns a random real number from the range [a, b) |
|
700 /// |
|
701 /// It returns a random real number from the range [a, b). |
|
702 template <typename Number> |
|
703 Number real(Number a, Number b) { |
|
704 return real<Number>() * (b - a) + a; |
|
705 } |
|
706 |
|
707 /// \brief Returns a random real number from the range [0, 1) |
691 /// \brief Returns a random real number from the range [0, 1) |
708 /// |
692 /// |
709 /// It returns a random double from the range [0, 1). |
693 /// It returns a random double from the range [0, 1). |
710 double operator()() { |
694 double operator()() { |
711 return real<double>(); |
695 return real<double>(); |
712 } |
696 } |
713 |
697 |
714 /// \brief Returns a random real number from the range [0, b) |
698 /// \brief Returns a random real number from the range [0, b) |
715 /// |
699 /// |
716 /// It returns a random real number from the range [0, b). |
700 /// It returns a random real number from the range [0, b). |
717 template <typename Number> |
701 double operator()(double b) { |
718 Number operator()(Number b) { |
702 return real<double>() * b; |
719 return real<Number>() * b; |
|
720 } |
703 } |
721 |
704 |
722 /// \brief Returns a random real number from the range [a, b) |
705 /// \brief Returns a random real number from the range [a, b) |
723 /// |
706 /// |
724 /// It returns a random real number from the range [a, b). |
707 /// It returns a random real number from the range [a, b). |
725 template <typename Number> |
708 double operator()(double a, double b) { |
726 Number operator()(Number a, Number b) { |
709 return real<double>() * (b - a) + a; |
727 return real<Number>() * (b - a) + a; |
|
728 } |
710 } |
729 |
711 |
730 /// \brief Returns a random integer from a range |
712 /// \brief Returns a random integer from a range |
731 /// |
713 /// |
732 /// It returns a random integer from the range {0, 1, ..., b - 1}. |
714 /// It returns a random integer from the range {0, 1, ..., b - 1}. |