... | ... |
@@ -679,75 +679,57 @@ |
679 | 679 |
/// |
680 | 680 |
/// @{ |
681 | 681 |
|
682 | 682 |
/// \brief Returns a random real number from the range [0, 1) |
683 | 683 |
/// |
684 | 684 |
/// It returns a random real number from the range [0, 1). The |
685 | 685 |
/// default Number type is \c double. |
686 | 686 |
template <typename Number> |
687 | 687 |
Number real() { |
688 | 688 |
return _random_bits::RealConversion<Number, Word>::convert(core); |
689 | 689 |
} |
690 | 690 |
|
691 | 691 |
double real() { |
692 | 692 |
return real<double>(); |
693 | 693 |
} |
694 | 694 |
|
695 |
/// \brief Returns a random real number the range [0, b) |
|
696 |
/// |
|
697 |
/// It returns a random real number from the range [0, b). |
|
698 |
template <typename Number> |
|
699 |
Number real(Number b) { |
|
700 |
return real<Number>() * b; |
|
701 |
} |
|
702 |
|
|
703 |
/// \brief Returns a random real number from the range [a, b) |
|
704 |
/// |
|
705 |
/// It returns a random real number from the range [a, b). |
|
706 |
template <typename Number> |
|
707 |
Number real(Number a, Number b) { |
|
708 |
return real<Number>() * (b - a) + a; |
|
709 |
} |
|
710 |
|
|
711 | 695 |
/// @} |
712 | 696 |
|
713 | 697 |
///\name Uniform distributions |
714 | 698 |
/// |
715 | 699 |
/// @{ |
716 | 700 |
|
717 | 701 |
/// \brief Returns a random real number from the range [0, 1) |
718 | 702 |
/// |
719 | 703 |
/// It returns a random double from the range [0, 1). |
720 | 704 |
double operator()() { |
721 | 705 |
return real<double>(); |
722 | 706 |
} |
723 | 707 |
|
724 | 708 |
/// \brief Returns a random real number from the range [0, b) |
725 | 709 |
/// |
726 | 710 |
/// It returns a random real number from the range [0, b). |
727 |
template <typename Number> |
|
728 |
Number operator()(Number b) { |
|
729 |
|
|
711 |
double operator()(double b) { |
|
712 |
return real<double>() * b; |
|
730 | 713 |
} |
731 | 714 |
|
732 | 715 |
/// \brief Returns a random real number from the range [a, b) |
733 | 716 |
/// |
734 | 717 |
/// It returns a random real number from the range [a, b). |
735 |
template <typename Number> |
|
736 |
Number operator()(Number a, Number b) { |
|
737 |
|
|
718 |
double operator()(double a, double b) { |
|
719 |
return real<double>() * (b - a) + a; |
|
738 | 720 |
} |
739 | 721 |
|
740 | 722 |
/// \brief Returns a random integer from a range |
741 | 723 |
/// |
742 | 724 |
/// It returns a random integer from the range {0, 1, ..., b - 1}. |
743 | 725 |
template <typename Number> |
744 | 726 |
Number integer(Number b) { |
745 | 727 |
return _random_bits::Mapping<Number, Word>::map(core, b); |
746 | 728 |
} |
747 | 729 |
|
748 | 730 |
/// \brief Returns a random integer from a range |
749 | 731 |
/// |
750 | 732 |
/// It returns a random integer from the range {a, a + 1, ..., b - 1}. |
751 | 733 |
template <typename Number> |
752 | 734 |
Number integer(Number a, Number b) { |
753 | 735 |
return _random_bits::Mapping<Number, Word>::map(core, b - a) + a; |
0 comments (0 inline)