diff --git a/.travis.yml b/.travis.yml index 7e658e4..41f2ce6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,6 @@ language: perl perl: - - "5.16" - - "5.14" - - "5.12" + - "5.18" + - "5.16" + - "5.14" + - "5.12" diff --git a/README b/README index 3096d82..dd1e634 100644 --- a/README +++ b/README @@ -1,75 +1,3 @@ -Math-Function-Interpolator - -Math::Function::Interpolator helps you to do the interpolation calculation with linear, quadratic and cubic methods. - -INSTALLATION - -To install this module, run the following commands: - - perl Makefile.PL - make - make test - make install - -SUPPORT AND DOCUMENTATION - -After installing, you can find documentation for this module with the -perldoc command. - - perldoc Math::Function::Interpolator - -You can also look for information at: - - RT, CPAN's request tracker (report bugs here) - http://rt.cpan.org/NoAuth/Bugs.html?Dist=Math-Function-Interpolator - - AnnoCPAN, Annotated CPAN documentation - http://annocpan.org/dist/Math-Function-Interpolator - - CPAN Ratings - http://cpanratings.perl.org/d/Math-Function-Interpolator - - Search CPAN - http://search.cpan.org/dist/Math-Function-Interpolator/ - - -LICENSE AND COPYRIGHT - -Copyright (C) 2014 Binary.com - -This program is free software; you can redistribute it and/or modify it -under the terms of the the Artistic License (2.0). You may obtain a -copy of the full license at: - -L - -Any use, modification, and distribution of the Standard or Modified -Versions is governed by this Artistic License. By using, modifying or -distributing the Package, you accept this license. Do not use, modify, -or distribute the Package, if you do not accept this license. - -If your Modified Version has been derived from a Modified Version made -by someone other than you, you are nevertheless required to ensure that -your Modified Version complies with the requirements of this license. - -This license does not grant you the right to use any trademark, service -mark, tradename, or logo of the Copyright Holder. - -This license includes the non-exclusive, worldwide, free-of-charge -patent license to make, have made, use, offer to sell, sell, import and -otherwise transfer the Package with respect to any patent claims -licensable by the Copyright Holder that are necessarily infringed by the -Package. If you institute patent litigation (including a cross-claim or -counterclaim) against any party alleging that the Package constitutes -direct or contributory patent infringement, then this Artistic License -to you shall terminate on the date that such litigation is filed. - -Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER -AND CONTRIBUTORS "AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. -THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY -YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR -CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR -CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +empty readme +=for HTML diff --git a/README.md b/README.md index 3cbd48a..576d190 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,32 @@ -Math-Function-Interpolator +**Math-Function-Interpolator** Math::Function::Interpolator helps you to do the interpolation calculation with linear, quadratic and cubic methods. +1. Linear method (needs more than 1 data point) +1. Quadratic method (needs more than 2 data points) +1. Cubic method, it's a Cubic Spline method (needs more than 4 data points) + + [![Build Status](https://travis-ci.org/binary-com/perl-Math-Function-Interpolator.svg?branch=master)](https://travis-ci.org/binary-com/perl-Math-Function-Interpolator) +SYNOPSIS + + use Math::Function::Interpolator; + + my $interpolator = Math::Function::Interpolator->new( + points => {1=>2,2=>3,3=>4,4=>5,5=>6,6=>7} + ); + + # Should have more than 1 data points + $interpolator->linear(2.5); + + # Should have more than 2 data points + $interpolator->quadratic(2.5); + + # Should have more than 4 data points + $interpolator->cubic(2.5); + + INSTALLATION To install this module, run the following commands: diff --git a/lib/Math/Function/Interpolator.pm b/lib/Math/Function/Interpolator.pm index a5d8064..da9526d 100644 --- a/lib/Math/Function/Interpolator.pm +++ b/lib/Math/Function/Interpolator.pm @@ -21,7 +21,7 @@ Math::Function::Interpolator - Interpolation made easy =head1 VERSION -Version 0.09 +Version 1.0 =head1 SYNOPSIS @@ -41,6 +41,10 @@ Version 0.09 Math::Function::Interpolator helps you to do the interpolation calculation with linear, quadratic and cubic methods. +1. Linear method (needs more than 1 data point) +1. Quadratic method (needs more than 2 data points) +1. Cubic method, it's a Cubic Spline method (needs more than 4 data points) + =head1 FIELDS =head2 points (REQUIRED) @@ -49,7 +53,7 @@ HashRef of points for interpolations =cut -our $VERSION = '0.09'; +our $VERSION = '1.0'; =head1 METHODS @@ -99,6 +103,7 @@ sub points { =head2 linear This method do the linear interpolation. It solves for point_y linearly given point_x and an array of points. +This method needs more than 1 data point. =cut @@ -117,6 +122,7 @@ sub linear { =head2 quadratic This method do the quadratic interpolation. It solves the interpolated_y value given point_x with 3 data points. +This method needs more than 2 data point. =cut @@ -135,6 +141,7 @@ sub quadratic { =head2 cubic This method do the cubic interpolation. It solves the interpolated_y given point_x and a minimum of 5 data points. +This method needs more than 4 data point. =cut diff --git a/lib/Math/Function/Interpolator/Cubic.pm b/lib/Math/Function/Interpolator/Cubic.pm index 5dd5610..4c6b8e2 100644 --- a/lib/Math/Function/Interpolator/Cubic.pm +++ b/lib/Math/Function/Interpolator/Cubic.pm @@ -22,7 +22,7 @@ Math::Function::Interpolator::Cubic use Math::Function::Interpolator::Cubic; my $interpolator = Math::Function::Interpolator::Cubic->new( - points => {1=>2,2=>3,3=>4} + points => {1=>2,2=>3,3=>4,4=>5,5=>6,6=>7} ); $interpolator->cubic(2.5); diff --git a/lib/Math/Function/Interpolator/Linear.pm b/lib/Math/Function/Interpolator/Linear.pm index eee61fb..89676f1 100644 --- a/lib/Math/Function/Interpolator/Linear.pm +++ b/lib/Math/Function/Interpolator/Linear.pm @@ -6,7 +6,7 @@ use warnings FATAL => 'all'; our @ISA = qw(Math::Function::Interpolator); -our $VERSION = '0.04'; +our $VERSION = '0.05'; use Carp qw(confess); use Number::Closest::XS qw(find_closest_numbers_around); @@ -29,7 +29,7 @@ Math::Function::Interpolator::Linear - Interpolation made easy =head1 DESCRIPTION Math::Function::Interpolator::Linear helps you to do the interpolation calculation with linear method. -It solves for point_y linearly given point_x and an array of points. +It solves for point_y linearly given point_x and an array of more than 2 data points. =head1 FIELDS diff --git a/lib/Math/Function/Interpolator/Quadratic.pm b/lib/Math/Function/Interpolator/Quadratic.pm index bdb12c5..51e3832 100644 --- a/lib/Math/Function/Interpolator/Quadratic.pm +++ b/lib/Math/Function/Interpolator/Quadratic.pm @@ -4,7 +4,7 @@ use 5.006; use strict; use warnings FATAL => 'all'; -our $VERSION = '0.05'; +our $VERSION = '0.06'; our @ISA = qw(Math::Function::Interpolator); @@ -29,7 +29,7 @@ Math::Function::Interpolator::Quadratic =head1 DESCRIPTION Math::Function::Interpolator::Quadratic helps you to do the interpolation calculation with quadratic method. -It solves the interpolated_y given point_x and a minimum of 5 data points. +It solves the interpolated_y given point_x and a minimum of 3 data points. =head1 FIELDS