#!/usr/bin/perl -w

use lib "d:/Programs/Perl/lib";

use strict;
use Sci::Science;
use Sci::Algorism;

my $n = 10;
my $pi = Sci::pi();

my @x;
my @y;
for(my $i = 0 ; $i <= $n ; $i++) {
	$x[$i] = $pi * $i / $n * 0.5;
	$y[$i] = sin($x[$i]);
}

my $idx  = @x - 1;
my $idx1 = @x - 2;
my $h = $x[1] - $x[0];
my $p = Algorism::IntegrateByRectangle(\@x, \@y);
print "IntegrateByRectangle: $p->[$idx]\n";
$p = Algorism::IntegrateByTrapezoid(\@x, \@y);
print "IntegrateByTrapezoid: $p->[$idx]\n";
my $S = Algorism::SinglePointIntegrateBySimpson(\@x, \@y);
print "SinglePointIntegrateBySimpson: $S\n";
$p = Algorism::IntegrateByConstantStepSimpson(scalar @x, $h, \@y);
print "IntegrateByConstantStepSimpson: $p->[$idx] / $p->[$idx1]\n";
$p = Algorism::IntegrateBySimpson(\@x, \@y);
print "IntegrateBySimpson: $p->[$idx] / $p->[$idx1]\n";
$p = Algorism::IntegrateByConstantStepBode(scalar @x, $h, \@y);
print "IntegrateByConstantStepBode: $p->[$idx] / $p->[$idx1]\n";
$S = Algorism::IntegrateByCubicSpline(\@x, \@y);
print "IntegrateByCubicSpline: $S\n";

exit;
