aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-006/ruben-westerberg/perl5/ch-2.pl5
-rwxr-xr-xchallenge-006/ruben-westerberg/perl6/ch-2.p627
2 files changed, 32 insertions, 0 deletions
diff --git a/challenge-006/ruben-westerberg/perl5/ch-2.pl b/challenge-006/ruben-westerberg/perl5/ch-2.pl
new file mode 100755
index 0000000000..73928169ae
--- /dev/null
+++ b/challenge-006/ruben-westerberg/perl5/ch-2.pl
@@ -0,0 +1,5 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use bigrat qw<bexp bpi>;
+print bexp(bpi(50)*sqrt(163),50);
diff --git a/challenge-006/ruben-westerberg/perl6/ch-2.p6 b/challenge-006/ruben-westerberg/perl6/ch-2.p6
new file mode 100755
index 0000000000..a82f43c516
--- /dev/null
+++ b/challenge-006/ruben-westerberg/perl6/ch-2.p6
@@ -0,0 +1,27 @@
+#!/usr/bin/env perl6
+
+my $bigPi=FatRat.new(31415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679,10**100);
+
+sub factorial($n) {
+ constant @f= (1.FatRat, |[\*] 1.FatRat..*);
+ @f[$n];
+}
+sub taylor-e ($atVal) {
+
+ my $sum=0.FatRat;
+ my $x=$atVal.FatRat;
+ for 0..200 {
+ $sum+=($x**$_)/factorial($_);
+ say "Iteration $_: " ~ $sum.Str.substr(0,50);
+ }
+ $sum;
+}
+
+sub newton-sqrt($val, $target, $repeat){
+ my $guess=$val.FatRat;
+ for ^$repeat {
+ $guess:=($guess - ($guess**2 -$target)/(2*$guess));
+ }
+ $guess;
+}
+say taylor-e($bigPi*newton-sqrt(10,163,6)).Str.substr(0,50);