Sacado Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Sacado_Random.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Sacado Package
4 //
5 // Copyright 2006 NTESS and the Sacado contributors.
6 // SPDX-License-Identifier: LGPL-2.1-or-later
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef SACADO_RANDOM_HPP
11 #define SACADO_RANDOM_HPP
12 
13 #include "Sacado_ConfigDefs.h"
14 
15 #include <string>
16 
17 namespace Sacado {
18 
23  template <typename ScalarT>
24  class Random {
25  public:
26 
28  Random();
29 
31  Random(ScalarT a_, ScalarT b_);
32 
34  Random(ScalarT a_, ScalarT b_, int s);
35 
37  ~Random();
38 
40  void setSeed(int s);
41 
43  ScalarT number();
44 
45  protected:
46 
47  // Check seed is valid
48  int checkSeed(const std::string& func, int s);
49 
50  protected:
51 
53  ScalarT a;
54 
56  ScalarT b;
57 
59  ScalarT seed;
60 
61  }; // class Random
62 
63 } // namespace Sacdo
64 
65 #ifdef HAVE_SACADO_COMPLEX
66 #include <complex>
67 
68 namespace Sacado {
69 
75  template <typename T>
76  class Random< std::complex<T> > {
77  public:
78 
80  Random();
81 
83  Random(const std::complex<T>& a, const std::complex<T>& b);
84 
86  Random(const std::complex<T>& a, const std::complex<T>& b, int s);
87 
89  ~Random();
90 
92  void setSeed(int s);
93 
95  std::complex<T> number();
96 
97  protected:
98 
100  Random<T> rand_real;
101 
103  Random<T> rand_imag;
104 
105  }; // class Random
106 
107 } // namespace Sacado
108 
109 #endif // HAVE_SACADO_COMPLEX
110 
111 #include "Sacado_RandomImp.hpp"
112 
113 #endif // SACADO_RANDOM_HPP
ScalarT seed
Random number seed
int checkSeed(const std::string &func, int s)
ScalarT a
Lower bound of interval.
ScalarT number()
Get random number.
~Random()
Destructor.
void setSeed(int s)
Set seed to s.
Random()
Constructor.
ScalarT b
Upper bound of interval.
const T func(int n, T *x)
Definition: ad_example.cpp:29
A random number generator that generates random numbers uniformly distributed in the interval (a...