Sujet : Re: Fortran, no RAN ?
De : arne (at) *nospam* vajhoej.dk (Arne Vajhøj)
Groupes : comp.os.vmsDate : 19. Jun 2024, 21:49:33
Autres entêtes
Organisation : SunSITE.dk - Supporting Open source
Message-ID : <6673445d$0$708$14726298@news.sunsite.dk>
References : 1 2 3 4 5
User-Agent : Mozilla Thunderbird
On 6/17/2024 7:49 PM, Arne Vajhøj wrote:
But if RNDOM is REAL*4 then my guess would be:
RAN_LONGER_CYCLE(SEED1, SEED2)
Example:
real*4 function ran2arg(seed1, seed2)
implicit none
integer*4 seed1, seed2
integer*4 temp
real*4 dummy
temp = xor(seed1, seed2)
ran2arg = ran(temp)
seed1 = xor(ishc(seed1, 1), temp)
seed2 = xor(ishc(seed2, -1), temp)
end
Disclaimer: I do not know if the cycle from this one is actual longer.
I did an experiment with start seeds 1234567 and 7654321.
I aborted after burning a little over 2 CPU hours.
No cycle detected after 1281 billion calls.
That doesn't prove that cycle will always be longer.
But it does not provide any basis for pessimism either.
Arne