Elementary cellular automaton/Random number generator: Difference between revisions

m
→‎{{header|Pascal}}: counting cpu-cycles on TryItOnline via RDTSC , only 3.2 GHZ on Ryzen
m (→‎{{header|Pascal}}: changed, so that the output ist comparable to C and GO -> 44 at 2000000)
m (→‎{{header|Pascal}}: counting cpu-cycles on TryItOnline via RDTSC , only 3.2 GHZ on Ryzen)
Line 308:
=={{header|Pascal}}==
{{Works with|Free Pascal}}
Using ROR and ROL is nearly as fast as assembler and more portable.<BR>[https://tio.run/##7VVdb@JGFH33r7gPkYCuwXYSrVa4VGLB7FoC2wtOu21VRY49wGiNx5oZh02j/PXSOx7MR8L@gtYPYM8599yPuXOnTESa5N1lme52EWcrnmxgXuXkxnYNy1pLWfYtixS9Lf1GS5LRpMf4ylJfVkC@y/uFTCS5Vxb3ZyabRK63jOdZb8vyJar2UraxtHJvLTe58XzlT8beBCbR6MUAeL6asYzAmOTlmr48Xw0Xs1k49sAPYm@qCWEU@zP/j2HshwGEgTmcImBZChohdTj1PwVQcpYOPpjTMIwGzgt68aYLT9sPoyj@PfJgFAaLcOrVYDD2Jy9GJYhAyuJJ3EmaC9dIWSEkrmyS73NWFZmAAVz/5Ni2Xf@4CHG9js8AHFwxHhOOijqKm2vlUqerawR9uKOFfH@LzGVVpJKyAj4ROYru7mO6IX3Yo/KpJGgbj8oKlTlJGc8MOHk@U4TMs6UpU@w@jLHkmXuESIFfKi4AJEhkKFnXeCArWuBiIjYqzHG8GCmrWfirloBIcvgTqXGvlv7L9IZff0Cow0HCWBFqhwBbKtfaY8bqaDgRVY7@BzrLNhpFdx0Q6xxLBe90Aq5RmxtqC0lWcQJ@QeVpEV1a5LQgxwROQRR33kpc6NJGRBeGV4WJXUMezQKpx11qXCAOKvCzOHA9QpN6PZx/USVpKyGnoyAlpKHpa@isJRSnXZPDufLTga/4omJp8jh0ikpD2358wlSDRNJH4hfSNT42ceoSK03dn4eSt/XrO/3XUc7aZ3EMgzFgeJcO9P86/02d18doURKSSSJkc2xix4xtHCh@UJ8WANqHC1255VSSvGi3DgKwZByE8ibo3wTYElrm@1uzBQ9UilZ9SCzrt4RvoCoVj0uIK/7AFBOHBsITFKAqQcc@juSug7NmW0gGdjN0LuWFwJuhorKxld7JOHb3frSjwzXwAy/Hk1mLORfEmkKc0zunUCt9SnMioCQcFIjVbZnt2OlKu2MdQujb/etTs7d7FSfiW7NNtL5XyIrwC3sSrwlIJIMu@6XCHGvgAGa9v/T2qddCrzLq314KrnFdd0FctxHs42xkWvCzh3f9/BcVDSdJtrfu7Xb/pMs8WYldN7zZdReP/wI Try it online!] counting CPU-Cycles 64 vs 76 one Ryzen Zen1
Using ROR and ROL is nearly as fast as assembler and more portable.<BR>[https://tio.run/##7VVtc5pAEP7Or9gPmUFTIpCkaQq1M8aXxBkDVMn05UuGwKk34sFwR0zM5K/X7oEYNfYXtH7Au9vdZ5/dvd1LAx4G8ck4DVcrL0smWTCHYR6TM8NWdH0qRGrpOmGNBZ3RlEQ0aCTZRJc73SFP4n4kAkHupcX9jsk8ENNFksVRY5HEY0RthMlcL5EbUzGPlZejfq/T7UHPa78qAC9Ht0lEoEPidErLA9fz@7f9Xy2/7zrgOlprMHhFD1LUdjvd1qB/7UCaJWHzUhu4rtc0XxG1Oxh1S/uW5/k/vS60XWfkDrqF0On0e69KzglHldEzvxM05rYSJowLPJkHT8MkZxGHJpwem4ZhFB8bRVl5jr8mmMVJO817uDlrfCKfbUBiw@clYfARzAvDAD/PHhIphOvpUlEegwz9l5zPTiXBMhllBsGCO8rExbmtKDIiEuUZgT6jYlvLpiymjNjKA5lQtgdhIS1bISzagThQpApEMsKwcqZhEsmjxlD1jUblAuUAiL3DA889NCnO3eE3LHRUk0BmXYokUCka7It2YpY6tULZHUo/dfiBC8mlimOcs1DQhBVhlLZXzxiqEwj6SPpM2MpVxZPwPBYFZlmuci9dlMsP5V9dOqvt8Gg5HUB6h@7zf5x/E2e/jUYpIZEgXFRt45uab2DX@h208@m86AlqwYGbucioIDGrqRsQGCcZcOmR0yWBZAyqdnGuqfBABVeLRtH170E2hzyVeplYTxPUbHt3KO4hAJVBmsbblDoxIUoWTCRg4EKRo@pQbCh4N1hkRIbEE@tQpIPSw2Yk/gX@rS0LFHMbpQp9V6@@LdrAY/j4EsUcRDAjmBBkgI9Ild6aenNjOY41GjWWy6Wq@eaJb9R3kNTwOYwJh5RkIN1gdVStVkNNYdSPLy/OMU1yZNf1jU/LsE63Md4X3g/4rKr5zAIcjmRCsgPF9acEmfMZlPU7lOEip7OiaoBZXD8o61QWQHuJss4PkatcF9fJL@4krHlWMCp86Tp@d/hVsslIEK2tG6vV73AcBxO@OnHP/gA Try it online!] I don't know the CPU-frequency.Runtime about 57 ms for 2 million
<lang pascal>Program Rule30;
//http://en.wikipedia.org/wiki/Next_State_Rule_30;
Line 324:
maxRounds = 2*1000*1000;
rounds = 10;
CpuF = 3.7e92e9; // Ryzen 5 1600 no Turbo 3.7 Ghz on my Linux64
 
var
Line 381:
procedure Task;
var
ki: integer;
Begin
writeln('The task ');
InitRule30_State;
For ki := 1 to rounds
write(NextRule30Byte);
writeln;
Line 401:
44
2000000 calls take 00:00:00.049
cycles per Byte : 9078.6540
 
The task
Line 411:
44
2000000 calls take 00:00:00.108
cycles per Byte : 199172.80
 
The task
Anonymous user