[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-unattended/var/se3/unattended/install/linuxaux/opt/perl/lib/5.10.0/Math/BigFloat/ -> Trace.pm (source)

   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;


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1