Math-PlanePath
view release on metacpan or search on metacpan
lib/Math/PlanePath/ChanTree.pm view on Meta::CPAN
# Copyright 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Kevin Ryde
# This file is part of Math-PlanePath.
#
# Math-PlanePath is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 3, or (at your option) any later
# version.
#
# Math-PlanePath is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# for more details.
#
# You should have received a copy of the GNU General Public License along
# with Math-PlanePath. If not, see <http://www.gnu.org/licenses/>.
# digit_direction LtoH
# digit_order HtoL
# reduced = bool
# points = even, all_mul, all_div
# points=all wrong
#
# Chan corollary 3 taking frac(2n) = b(2n) / b(2n+1)
# frac(2n+1) = b(2n+1) / 2*b(2n+2)
# at N odd multiply 2 into denominator,
# which is divide out 2 from numerator since b(2n+1) odd terms are even
#
package Math::PlanePath::ChanTree;
use 5.004;
use strict;
#use List::Util 'max';
*max = \&Math::PlanePath::_max;
use vars '$VERSION', '@ISA';
$VERSION = 129;
use Math::PlanePath;
@ISA = ('Math::PlanePath');
use Math::PlanePath::Base::Generic
'is_infinite',
'round_nearest';
use Math::PlanePath::Base::Digits
'round_down_pow',
'digit_split_lowtohigh',
'digit_join_lowtohigh';
*_divrem = \&Math::PlanePath::_divrem;
*_divrem_mutate = \&Math::PlanePath::_divrem_mutate;
use Math::PlanePath::CoprimeColumns;
*_coprime = \&Math::PlanePath::CoprimeColumns::_coprime;
use Math::PlanePath::GcdRationals;
*_gcd = \&Math::PlanePath::GcdRationals::_gcd;
# uncomment this to run the ### lines
# use Smart::Comments;
use constant parameter_info_array =>
[ { name => 'k',
display => 'k',
type => 'integer',
default => 3,
minimum => 2,
},
# Not sure about these yet.
# { name => 'reduced',
# display => 'Reduced',
# type => 'boolean',
# default => 0,
# },
# { name => 'points',
# share_key => 'points_ea',
# display => 'Points',
# type => 'enum',
# default => 'even',
# choices => ['even','all_mul','all_div'],
# choices_display => ['Even','All Mul','All Div'],
# when_name => 'k',
# when_condition => 'odd',
# },
( run in 2.703 seconds using v1.01-cache-2.11-cpan-df04353d9ac )