<< Actually in this part I was suggesting that it might be a simple typo in the _smalltalk_ and that by comparing the results of the shifts & masks in C with those in Smalltalk you could probably find out something. >>
Oh! Now I understand. All I can tell you is that I actually took the C code and pasted it, verbatim, into the first Smalltalk method. Since this stuff is mostly bit operations, I only had to replace C tokens like '^' with 'bitXOr:' and so on. This approach was an attempt to avoid typographical errors up front.
Since then I have poured over the C and Smalltalk code in parallel and just can't find a single discrepency. Then again, the hardest task is to find fault in one's own work...
<< I'm just looking at making a little plugin of it and wondering which of the varieties of numbers one really wants. The C file I downloaded seems to offer:- array initialisation of seeds plain init of seeds 32 bit int result 0 to 16rFFFFFFFF 31 bit 0 to 16r7FFFFFFF three different reals, [0,1], [0,1), (0,1) and [0,1) 53 bit resolution.
Obviously the simplest would be to drop everything but the plain init and 32 bit int result. One might reasonably cut it to 30bit positive SmallInteger results. >>
I am new to the idea of plugins. I suspect that they are a mechanism to take a foreign code (like these C programs), in whole or in part, and encapsulate it with a Smalltalk interface. Yes?
<< What would be most useful? >>
I really appreciate your help on this problem but I honestly do not have a clue how to answer this question.
-Mark