/***************************************************************************** TestWhiteNoiseGen.hpp Copyright (c) 2005 Laurent de Soras --- Legal stuff --- This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *Tab=3***********************************************************************/ #if defined (TestWhiteNoiseGen_CURRENT_CODEHEADER) #error Recursive inclusion of TestWhiteNoiseGen code header. #endif #define TestWhiteNoiseGen_CURRENT_CODEHEADER #if ! defined (TestWhiteNoiseGen_CODEHEADER_INCLUDED) #define TestWhiteNoiseGen_CODEHEADER_INCLUDED /*\\\ INCLUDE FILES \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ /*\\\ PUBLIC \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ template TestWhiteNoiseGen
::TestWhiteNoiseGen () : _rand_state (0) { _rand_state = reinterpret_cast (this); } template void TestWhiteNoiseGen
::generate (DataType data_ptr [], long len) { assert (data_ptr != 0); assert (len > 0); const DataType one = static_cast (1); const DataType mul = one / static_cast (0x80000000UL); long pos = 0; do { const DataType x = static_cast (_rand_state & 0xFFFFFFFFUL); data_ptr [pos] = x * mul - one; _rand_state = _rand_state * 1234567UL + 890123UL; ++ pos; } while (pos < len); } /*\\\ PROTECTED \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ /*\\\ PRIVATE \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/ #endif // TestWhiteNoiseGen_CODEHEADER_INCLUDED #undef TestWhiteNoiseGen_CURRENT_CODEHEADER /*\\\ EOF \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/