use overload { # . . . other operators 'atan2' => sub { atan2($_[0]->numify(),$_[1]) }, # . . . the rest of them }; #### --- BigInt.pm~ Sat Jan 1 10:57:35 2005 +++ BigInt.pm Sun Jan 23 22:04:36 2005 @@ -75,7 +75,9 @@ 'cos' => sub { cos($_[0]->numify()) }, 'sin' => sub { sin($_[0]->numify()) }, 'exp' => sub { exp($_[0]->numify()) }, -'atan2' => sub { atan2($_[0]->numify(),$_[1]) }, +'atan2' => sub { $_[2] ? + atan2($_[1],$_[0]->numify()) : + atan2($_[0]->numify(),$_[1]) }, # are not yet overloadable #'hex' => sub { print "hex"; $_[0]; }, #### --- fallback.t~ Thu Dec 11 14:17:58 2003 +++ fallback.t Sun Jan 23 22:36:17 2005 @@ -28,7 +28,7 @@ } print "# INC = @INC\n"; - plan tests => 8; + plan tests => 9; } # The tests below test that cos(BigInt) = cos(Scalar) which is DWIM, but not @@ -46,10 +46,11 @@ ok (exp($bi), exp(1)); ok (atan2($bi,$bi), atan2(1,1)); -my $bf = Math::BigInt->new(1); +my $bf = Math::BigInt->new(0); -ok (cos($bf), cos(1)); -ok (sin($bf), sin(1)); -ok (exp($bf), exp(1)); -ok (atan2($bf,$bf), atan2(1,1)); +ok (cos($bf), cos(0)); +ok (sin($bf), sin(0)); +ok (exp($bf), exp(0)); +ok (atan2($bi,$bf), atan2(1,0)); +ok (atan2($bf,$bi), atan2(0,1)); #### $ perl -e'use bignum;print atan2(1,0), " ", atan2(0,1),$/' 1.5707963267949 0 $