This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Re: RFC: bigint et. al exporting PI method? [PATCH]
[perl5.git] / lib / bignum.pm
index 5ebb904..f8814f9 100644 (file)
@@ -4,7 +4,7 @@ use 5.006002;
 $VERSION = '0.22';
 use Exporter;
 @ISA           = qw( bigint );
-@EXPORT_OK     = qw( ); 
+@EXPORT_OK     = qw( PI e ); 
 @EXPORT        = qw( inf NaN ); 
 
 use strict;
@@ -166,7 +166,10 @@ sub import
       splice @a, $j, 1; $j --;
       $oct = \&bigint::_oct_global;
       }
-    else { die "unknown option $_[$i]"; }
+    elsif ($_[$i] !~ /^(PI|e)\z/)
+      {
+      die ("unknown option $_[$i]");
+      }
     }
   my $class;
   $_lite = 0;                                  # using M::BI::L ?
@@ -237,6 +240,9 @@ sub import
   }
   }
 
+sub PI { Math::BigFloat::bpi(@_); }
+sub e  { Math::BigFloat->bone->bexp(@_); }
+
 1;
 
 __END__
@@ -488,6 +494,14 @@ handle bareword C<inf> properly.
 A shortcut to return Math::BigInt->bnan(). Useful because Perl does not always
 handle bareword C<NaN> properly.
 
+=item e()
+
+Returns Euler's number C<e>, aka exp(1), to the given number of digits.
+
+=item PI()
+
+Returns PI to the given number of digits.
+
 =item upgrade()
 
 Return the class that numbers are upgraded to, is in fact returning