61 lines
1.2 KiB
Perl
Executable File
61 lines
1.2 KiB
Perl
Executable File
#!/usr/bin/env perl
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use Math::Trig;
|
|
use Math::BigRat lib => 'GMP';
|
|
use Data::Dumper;
|
|
|
|
BEGIN {
|
|
push @INC, '..'
|
|
}
|
|
|
|
use Manticore::Num::Trig;
|
|
use Manticore::Num::ContinuedFraction;
|
|
|
|
my $pi = Math::BigRat->new(3);
|
|
|
|
my $poly = 10;
|
|
|
|
for(1..5) {
|
|
$pi = $pi + Manticore::Num::Trig::proxSinCF($poly,$pi);
|
|
print "===\ns: $pi\n";
|
|
$pi = Manticore::Num::ContinuedFraction::roundSteps($poly,$pi);
|
|
print "r: $pi\n";
|
|
}
|
|
|
|
my $pi1 = Manticore::Num::ContinuedFraction->new($pi);
|
|
|
|
$pi = $pi + Manticore::Num::Trig::proxSinCF($poly+2,$pi);
|
|
print "===\ns: $pi\n";
|
|
$pi = Manticore::Num::ContinuedFraction::roundSteps($poly,$pi);
|
|
print "r: $pi\n";
|
|
|
|
my $pi2 = Manticore::Num::ContinuedFraction->new($pi);
|
|
|
|
#print $pi->child();
|
|
#
|
|
#print Data::Dumper::Dumper($pi);
|
|
|
|
my $c = $pi1->commonk($pi2, 2500);
|
|
|
|
print "[[ @$c ]]\n";
|
|
|
|
#my $max = 1;
|
|
#for(1..200000) {
|
|
# my $r = Manticore::Num::ContinuedFraction->new(rand 1);
|
|
# my $l = $r->firstk(50);
|
|
# for(@$l) { $max = $_ if $_>$max }
|
|
# print "[[ @$l ]]\n";
|
|
#}
|
|
#print "M: $max\n";
|
|
|
|
while(<>) {
|
|
my $cf = Manticore::Num::ContinuedFraction::roundSteps(10,$_);
|
|
my $f = Math::BigRat->new(0+$_);
|
|
my $r = Math::BigRat->new($_);
|
|
print "$cf $f $r\n";
|
|
}
|
|
|