Keep It Simple, Stupid PerlMonks

### Re^7: solve cubic equations (Java)

by vrk (Chaplain)
 on May 05, 2017 at 12:18 UTC ( #1189566=note: print w/replies, xml ) Need Help??

in reply to Re^6: solve cubic equations (Java)
in thread solve cubic equations

That's intriguing. I admit I've never used Perl's bignum or bigint features for anything serious. Are you able to post short benchmark programs for this? It would be interesting to profile and figure out where the bottleneck is. Which version of Perl, by the way?

Replies are listed 'Best First'.
Re^8: solve cubic equations (Java)
by no_slogan (Deacon) on May 05, 2017 at 16:03 UTC
Well, I hate to post a complete solution to one of their problems, so I've changed it around. The question is, given the first 10 outputs of this pseudo-random number generator:
```for (1..10) {
\$s = (\$s*0x5deece66d + 0xb) % 2**48;
say((\$s>>17)%1000);
}
Find the initial value of the seed \$s, which is a randomly-chosen number less than 2**17. Here are the comparisons of a brute-force search using several different modules:
```          s/iter    BigInt BigIntGMP       GMP      Perl
BigInt      25.0        --      -42%      -94%     -100%
BigIntGMP   14.4       73%        --      -90%      -99%
GMP         1.47     1605%      885%        --      -93%
Perl       0.110    22701%    13070%     1238%        --
I'm running perl 5.24.1 on an aging MacBook. I could make the Perl faster, but it would require a 64-bit perl build. You could probably get good performance with Math::Int64, but I'll leave that as an exercise for the reader. Python is running in time comparable to the pure-Perl, and PyPy smokes them all at under a millisecond. Full code is below. You don't need to tell me that my benchmarking methodology is bad.

Create A New User
Node Status?
node history
Node Type: note [id://1189566]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (7)
As of 2020-08-11 16:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
Which rocket would you take to Mars?

Results (62 votes). Check out past polls.

Notices?