manticore/tests/testCf.pl
2023-12-28 13:01:16 +01:00

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";
}