=encoding utf8

=head1 NAME

Math::SMA - SMA in object form

=head1 SYNOPSIS

    use Math::SMA;
	my $sma = Math::SMA->new(size => $n);
	$sma->sma($value);

=head1 DESCRIPTION

Implements a simple moving average of N periods with an amortized runtime complexity of < O(n²).

L<http://en.wikipedia.org/wiki/Moving_average>

=head2 new

Create a new SMA object of C<$n> periods.

	my $sma = Math::SMA->new(size => $n);

=head2 sma

Add a value to series and return the current simple moving average

    $sma->sma($current);

C<$current> is the current live value

Returns C<last_avg> if called with no arguments.

=head2 precision

The precision level for decimal places. Defaults to 2.

=head2 last_avg

The current value of the SMA series. 

=head2 values

The current values of the SMA period. If you want to continue a series from a previous time,
then pass an arrayref in during object construction:

	$sma = Math::SMA->new(size => 5, values => [3,2,7,4,9] );

=head1 AUTHORS

Samuel Smith E<lt>esaym@cpan.orgE<gt>

=head1 BUGS

See L<http://rt.cpan.org> to report and view bugs.

=head1 SOURCE

The source code repository for Math::EWMA can be found at
L<https://github.com/smith153/Math-SMA>.

=head1 COPYRIGHT

Copyright 2015 by Samuel Smith E<lt>esaym@cpan.orgE<gt>.

This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.

See L<http://www.perl.com/perl/misc/Artistic.html>