ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/staticperl/perl/lib/Math/BigFloat/Trace.pm
Revision: 1.1
Committed: Thu Jun 30 14:27:13 2005 UTC (21 years, 4 months ago) by root
Branch: MAIN
CVS Tags: PERL-5-8-7, HEAD
Branch point for: PERL
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 #!/usr/bin/perl -w
2    
3     package Math::BigFloat::Trace;
4    
5     require 5.005_02;
6     use strict;
7    
8     use Exporter;
9     use Math::BigFloat;
10     use vars qw($VERSION @ISA $PACKAGE @EXPORT_OK
11     $accuracy $precision $round_mode $div_scale);
12    
13     @ISA = qw(Exporter Math::BigFloat);
14    
15     $VERSION = 0.01;
16    
17     use overload; # inherit overload from BigFloat
18    
19     # Globals
20     $accuracy = $precision = undef;
21     $round_mode = 'even';
22     $div_scale = 40;
23    
24     sub new
25     {
26     my $proto = shift;
27     my $class = ref($proto) || $proto;
28    
29     my $value = shift;
30     my $a = $accuracy; $a = $_[0] if defined $_[0];
31     my $p = $precision; $p = $_[1] if defined $_[1];
32     my $self = Math::BigFloat->new($value,$a,$p,$round_mode);
33    
34     # remember, downgrading may return a BigInt, so don't meddle with class
35     # bless $self,$class;
36    
37     print "MBF new '$value' => '$self' (",ref($self),")";
38     return $self;
39     }
40    
41     sub import
42     {
43     print "MBF import ",join(' ',@_);
44     my $self = shift;
45    
46     # we catch the constants, the rest goes go BigFloat
47     my @a = ();
48     foreach (@_)
49     {
50     push @a, $_ if $_ ne ':constant';
51     }
52     overload::constant float => sub { $self->new(shift); };
53    
54     Math::BigFloat->import(@a); # need it for subclasses
55     # $self->export_to_level(1,$self,@_); # need this ?
56     }
57    
58     1;