Well it is me again

First of all I apoligize to everybody on the board who is not interessed in this topic, because it is not really OpenGL related (but I think somebody could use it).

Second, I bow my head because I figured that my definition of randomess wasn’t probably correct.

Third, I think I forget to write that I don’t pass the values from my function to a rand() function. I just perform a windowing and scaling on them so there a always between 0.0f and 1.0f (saturated). I run a boundingbox routine at programm startup to determine the borders of the windowing/scaling.

My question to you all is, would you classify the function as a pseudo-random-generator, or is it somethink else?

To Bob: Sorry if I had been rude, but I still think -+ 50Mhz for a 1Ghz system is true. But, due to the lack of a system like that I can’t proof it to you (remember the error is multiplied times 10).



Sorry again,

I just wrote an email to Mr. Marsaglia informing him about our discussion, and
asking him for advice.

Maybe we will get an answer from him.

To Bryan: would you mind writing me an “hello” email so I have your email address?

Kind regards,


LG: Hehe, no worries. The reason why i didn’t quite believed you was that in a course here at the university (telecommunication) we leanred that the reason we use crystals, is that they are extremely (no, EXTREMELY) frequencystable. We are talking way less that ±50Mhz for 1GHz. But since I dont have a doctors degree in todays microcomputers, I really dont know the truth . I do believe you telling the truth, so don’t get me wrong.

It has been funny fo follow this thread, and even though it has nothing to do with OpenGL, it has quite a lot to do with gameprogramming (and other kind of apps as well)…

So now that the big argument is over…

how exactly is the way you guys decided on to get real randomized numbers?


PC frequency is derived from a crystal with a PLL (Phase Locked Loop) multiplier. So there is always a little jitter from cycle to cycle, even if the overall frequency is always stable and defined.

BUT it cannot be considered as a “true” random generator, because the distribution of “randomness” over time is gaussian and can be well guessed, and is subject to go under the measurment limits if technology improves.

YES you can use it as a seed to pseudo random function, but it will not be considered as a real white noise function (which is a perfect random generator). Because two identical seeds can happend in a correlated time.

One step in this direction is the random number generator found in Pentium III processors (but unfortunaly only on them ). It use shot noise in a polysilicon resistor and a serie of serial/parallel register to give you a true 64 bit random number.