NAME

Math::Basic::XS - basic math faster

VERSION

Version 0.02

SYNOPSIS

use Math::Basic::XS qw/all/;

my $sum = sum { $_->value } @objects;

EXPORT

min

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

max

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

sum

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

mean

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

median

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

mode

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

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)

AUTHOR

LNATION, <email at lnation.org>

BUGS

Please report any bugs or feature requests to bug-math-basic-xs at rt.cpan.org, or through the web interface at 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.

SUPPORT

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

perldoc Math::Basic::XS

You can also look for information at:

ACKNOWLEDGEMENTS

LICENSE AND COPYRIGHT

This software is Copyright (c) 2025 by LNATION.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)