#!/usr/bin/perl -w

use lib "d:/Programs/Perl/lib";

use strict;
use Sci::Science;

my $n = 20;
my $pi = Sci::pi();

my @y;
for(my $i = 0 ; $i <= $n ; $i++) {
	$y[$i] = sin($pi * $i / $n);
}
my $h = $pi / $n;

my $S = IntegrateByConstantStepSimpson($n+1, $h, \@y);

print "Integral sin(x) from x=0 to pi\n";
print "  n=", $n+1, "\n";
print "  S=$S\n";

exit;

sub IntegrateByConstantStepSimpson
{
	my ($nData, $h, $pY) = @_;

	if($nData < 3 or $nData % 2 == 0 or $h <= 0.0) {
		return undef;
	}

	my $w = 0.0;
	for(my $i = 1 ; $i < $nData-1 ; $i += 2) {
		$w += $y[$i-1] + 4.0 * $y[$i] + $y[$i+1];
	}
	my $S = $w * $h / 3.0;
	return $S;
}
