Math-Basic-XS

 view release on metacpan or  search on metacpan

lib/Math/Basic/XS.pm  view on Meta::CPAN

=head2 sum

        my $sum = sum { $_ } @numbers;

=cut

=head2 mean

        my $mean = mean { $_ } @numbers;

=cut

=head2 median

        my $median = median { $_ } @numbers;

=cut

=head2 mode

        my $mode = mode { $_ } @numbers;

=cut

=head1 BENCHMARK

	use Benchmark qw(:all);
	use lib '.';
	use Math::Basic;
	use Math::Basic::XS;

	my @data = (
		{ value => 1 },
		{ value => 2 },
		{ value => 3 },
		{ value => 4 },
		{ value => 5 },
	);

	timethese(1000000, {
		'Math::Basic' => sub {
			my $min = Math::Basic::min { $_->{value} } @data;
			my $max = Math::Basic::max { $_->{value} } @data;
			my $sum = Math::Basic::sum { $_->{value} } @data;
			my $mean = Math::Basic::mean { $_->{value} } @data;
			my $median = Math::Basic::median { $_->{value} } @data;
			my $mode = Math::Basic::mode { $_->{value} } @data;
		},
		'XS' => sub {
			my $min = Math::Basic::XS::min { $_->{value} } @data;
			my $max = Math::Basic::XS::max { $_->{value} } @data;
			my $sum = Math::Basic::XS::sum { $_->{value} } @data;
			my $mean = Math::Basic::XS::mean { $_->{value} } @data;
			my $median = Math::Basic::XS::median { $_->{value} } @data;
			my $mode = Math::Basic::XS::mode { $_->{value} } @data;
		}
	});

...

	Benchmark: timing 1000000 iterations of Math::Basic, XS...
	Math::Basic:  5 wallclock secs ( 5.00 usr +  0.00 sys =  5.00 CPU) @ 200000.00/s (n=1000000)
		XS:  2 wallclock secs ( 2.21 usr +  0.05 sys =  2.26 CPU) @ 442477.88/s (n=1000000)


=head1 AUTHOR

LNATION, C<< <email at lnation.org> >>

=head1 BUGS

Please report any bugs or feature requests to C<bug-math-basic-xs at rt.cpan.org>, or through
the web interface at L<https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Math-Basic-XS>.  I will be notified, and then you'll
automatically be notified of progress on your bug as I make changes.

=head1 SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Math::Basic::XS


You can also look for information at:

=over 2

=item * RT: CPAN's request tracker (report bugs here)

L<https://rt.cpan.org/NoAuth/Bugs.html?Dist=Math-Basic-XS>

=item * Search CPAN

L<https://metacpan.org/release/Math-Basic-XS>

=back

=head1 ACKNOWLEDGEMENTS

=head1 LICENSE AND COPYRIGHT

This software is Copyright (c) 2025 by LNATION.

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)


=cut

1; # End of Math::Basic::XS



( run in 0.817 second using v1.01-cache-2.11-cpan-71847e10f99 )