I've never been able to work out an algorithm for calculating exp for rationals.
That's probably because
exp(r) is irrational for every rational
r except for 0. However, saying
use bigrat sprinkles some magic crazy dust over the whole program in a way similar to
use bignum; witness:
use bigrat;
use strict;
my $lnev = - 7 / (10 ** 17);
print "lnev is $lnev\n";
my $ev = exp($lnev);
print "ev is $ev\n";
print "1-ev is ", 1-$ev, "\n";
Again, both values are 1.
--
@/=map{[/./g]}qw/.h_nJ Xapou cets krht ele_ r_ra/;
map{y/X_/\n /;print}map{pop@$_}@/for@/