Weitere ähnliche Inhalte
Ähnlich wie Perlで任意精度計算 (20)
Kürzlich hochgeladen (20)
Perlで任意精度計算
- 23. use Math::BigFloat;
my $x = Math::BigFloat->new(‘3.1415...’);
my $y = Math::BigFloat->new(‘2.718281...’);
my $z = $x * $y;
- 24. #
my $pi = Math::BigFloat->new(3.141592...);
#
my $pi = Math::BigFloat->new(‘3.141592...’);
- 26. use strict;
use Math::BigFloat;
use Benchmark qw(cmpthese);
cmpthese -1, {
plain => sub {
my $x = rand(10);
my $y = rand(10);
my $z = rand(10);
($x + $y ) * $z;
},
bigfloat => sub {
my $x = rand(10);
my $y = rand(10);
my $z = rand(10);
(Math::BigFloat->new($x)
+ Math::BigFloat->new($y))
* Math::BigFloat->new($z);
},
};
- 27. daisuke@beefcake ~$ perl foo.pl
Rate bigfloat plain
bigfloat 3380/s -- -100%
plain 2383127/s 70403% --
daisuke@beefcake ~$ perl foo.pl
Rate bigfloat plain
bigfloat 3380/s -- -100%
plain 2360644/s 69738% --
daisuke@beefcake ~$ perl foo.pl
Rate bigfloat plain
bigfloat 3380/s -- -100%
plain 2406041/s 71081% --
- 37. my $v = ( $x + $y ) * $z;
#include <mpfr.h>
mpfr_t x, y, z, w;
mpfr_add( w, x, y, MPFR_RNDN );
mpfr_mul( w, w, z, MPFR_RNDN );