source: trunk/demos/spectrum/3rdparty/fftreal/TestWhiteNoiseGen.hpp@ 846

Last change on this file since 846 was 769, checked in by Dmitry A. Kuminov, 15 years ago

trunk: Merged in qt 4.6.3 sources from branches/vendor/nokia/qt.

File size: 2.3 KB
RevLine 
[767]1/*****************************************************************************
2
3 TestWhiteNoiseGen.hpp
4 Copyright (c) 2005 Laurent de Soras
5
6--- Legal stuff ---
7
8This library is free software; you can redistribute it and/or
9modify it under the terms of the GNU Lesser General Public
10License as published by the Free Software Foundation; either
11version 2.1 of the License, or (at your option) any later version.
12
13This library is distributed in the hope that it will be useful,
14but WITHOUT ANY WARRANTY; without even the implied warranty of
15MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16Lesser General Public License for more details.
17
18You should have received a copy of the GNU Lesser General Public
19License along with this library; if not, write to the Free Software
20Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21
22*Tab=3***********************************************************************/
23
24
25
26#if defined (TestWhiteNoiseGen_CURRENT_CODEHEADER)
27 #error Recursive inclusion of TestWhiteNoiseGen code header.
28#endif
29#define TestWhiteNoiseGen_CURRENT_CODEHEADER
30
31#if ! defined (TestWhiteNoiseGen_CODEHEADER_INCLUDED)
32#define TestWhiteNoiseGen_CODEHEADER_INCLUDED
33
34
35
36/*\\\ INCLUDE FILES \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
37
38
39
40/*\\\ PUBLIC \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
41
42
43
44template <class DT>
45TestWhiteNoiseGen <DT>::TestWhiteNoiseGen ()
46: _rand_state (0)
47{
48 _rand_state = reinterpret_cast <StateType> (this);
49}
50
51
52
53template <class DT>
54void TestWhiteNoiseGen <DT>::generate (DataType data_ptr [], long len)
55{
56 assert (data_ptr != 0);
57 assert (len > 0);
58
59 const DataType one = static_cast <DataType> (1);
60 const DataType mul = one / static_cast <DataType> (0x80000000UL);
61
62 long pos = 0;
63 do
64 {
65 const DataType x = static_cast <DataType> (_rand_state & 0xFFFFFFFFUL);
66 data_ptr [pos] = x * mul - one;
67
68 _rand_state = _rand_state * 1234567UL + 890123UL;
69
70 ++ pos;
71 }
72 while (pos < len);
73}
74
75
76
77/*\\\ PROTECTED \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
78
79
80
81/*\\\ PRIVATE \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
82
83
84
85#endif // TestWhiteNoiseGen_CODEHEADER_INCLUDED
86
87#undef TestWhiteNoiseGen_CURRENT_CODEHEADER
88
89
90
91/*\\\ EOF \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
Note: See TracBrowser for help on using the repository browser.