|Function||Initialize a vector with "white" noiseLC|
|Syntax C/C++||#include <VFstd.h>
void VF_noiseLC( fVector X, ui size, long seed, float Amp, V_RANDOMLCSTATE *state );
|C++ VecObj||#include <OptiVec.h>
void vector<T>::noiseLC( long seed, const T& Amp, V_RANDOMLCSTATE *state);
procedure VF_noiseLC( X:fVector; size:UIntSize; Seed:LongInt; Amp:Single; state:PV_RANDOMLCSTATE );
|CUDA function C/C++||#include <cudaVFstd.h>
int cudaVF_noiseLC( fVector X, ui size, long seed, float Amp, V_RANDOMLCSTATE );
|CUDA function Pascal/Delphi||uses VFstd;
function cudaVF_noiseLC( X:fVector; size:UIntSize; Seed:LongInt; Amp:Single; state:PV_RANDOMLCSTATE ): IntBool;
|Description||White noise is generated with the amplitude Amp, i.e., the output values are between -Amp/2 and +Amp/2 (both extrema included). "seed" may be completely arbitrary. A non-zero value of seed leads to the start of a new series, whereas seed=0 leads to the series whose state is stored in the variable state to be continued.
Internally, these functions employ a linear-congruential (hence the name component "LC") 32-bit integer random number generator by H.W.Lewis, with additional steps (so-called "Bays-Durham shuffle") to break sequential correlations.
A simplified form of this function is available as VF_noise.
Because the random numbers are only 32-bit, there is some granularity in the VD_ and VE_ versions. If higher resolution is desired, use VD_randomLC instead.
There is no VFcu_ version of this function, as the random numbers are generated on the CPU anyway.
VectorLib Table of Contents OptiVec home