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:
RT: CPAN's request tracker (report bugs here)
CPAN Ratings
Search CPAN
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)