http://qs1969.pair.com?node_id=134424


in reply to Help w/ Code Optimization

Can't get your code to work. It dies with message:
Operation `**': no method found, left argument in overloaded package Math::BigFloat, right argument has no overloaded magic at test.pl line 17.

Update:

BTW It seems that using Math::BigFloat methods directly is slighly faster then relying on overloaded operations:

use Benchmark; use Math::BigFloat; timethese(1000, { Methods => sub { Math::BigFloat->new(100)->fmul(Math::BigFloat->ne +w(100)) }, Operations => sub { Math::BigFloat->new(100) * Math::BigFloat->new +(100) }, }); bash-2.05a$ perl test.pl Benchmark: timing 1000 iterations of Methods, Operations... Methods: 2 wallclock secs ( 1.48 usr + 0.01 sys = 1.49 CPU) @ 67 +1.14/s (n=1000) Operations: 1 wallclock secs ( 1.63 usr + 0.00 sys = 1.63 CPU) @ 61 +3.50/s (n=1000)

--
Ilya Martynov (http://martynov.org/)