in reply to Re^6: Decimal Floating Point (DFP) and does Perl needs DFP?
in thread Decimal Floating Point (DFP) and does Perl needs DFP?
I could be wrong, of course. (It's happened before ;-)#!perl -l use strict; use warnings; use Math::MPFR qw(:mpfr); my $e=107; my $v = "5.34"; Rmpfr_set_default_prec(1000); mpfr($v, $e); print lanx($v, $e); # Wins for 5.34 ** 107 & 5.34 ** 100. print menezes($v, $e); # Wins for 5.231 ** 107 & 5.231 ** 100. print by_mul($v, $e); # Wins for 5.35 ** 107 & 5.35 ** 100. sub mpfr { my $val = shift; my $exp = shift; my $ret = Math::MPFR->new($val); $ret **= $e; Rmpfr_out_str($ret, 10, 15, MPFR_RNDN); printf "\n"; } sub lanx { my $val = shift; $val += 0; my $exp = shift; my $ret = 1; for my $bit (reverse split //,sprintf '%b',$exp) { $ret *= $val if $bit; $val **= 2; } return $ret; } sub menezes { my $val = shift; $val += 0; my $exp = shift; my $ret = 1; for my $bit (split //,sprintf '%b',$exp) { $ret **= 2; $ret *= $val if $bit; } return $ret; } sub by_mul { my $val = shift; $val += 0; my $exp = shift; my $ret = 1; $ret *= $val for 1..$exp; return $ret; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^8: Decimal Floating Point (DFP) and does Perl needs DFP?
by LanX (Saint) on Jan 20, 2015 at 15:10 UTC | |
by syphilis (Archbishop) on Jan 21, 2015 at 06:44 UTC | |
by LanX (Saint) on Jan 21, 2015 at 10:10 UTC | |
by syphilis (Archbishop) on Jan 21, 2015 at 11:39 UTC | |
by BrowserUk (Patriarch) on Jan 21, 2015 at 11:48 UTC | |
| |
by LanX (Saint) on Jan 21, 2015 at 12:02 UTC |