|
|
| |
Math::GSL::Sort(3) |
User Contributed Perl Documentation |
Math::GSL::Sort(3) |
Math::GSL::Sort - Functions for sorting data
use Math::GSL::Sort qw/:all/;
my $x = [ 2**15, 1.67, 20e5, -17, 6900, 1/3 , 42e-10 ];
my $sorted = gsl_sort($x, 1, $#$x+1 );
my $numbers = [ map { rand(100) } (1..100) ];
my ($status, $smallest10) = gsl_sort_smallest($array, 10, $x, 1, $#$x+1);
- gsl_sort_vector($v)
This function sorts the elements of the vector
$v into ascending numerical order.
- gsl_sort_vector_index($p, $v)
This function indirectly sorts the elements of the vector
$v into ascending order, storing the resulting
permutation in $p. The elements of
$p give the index of the vector element which
would have been stored in that position if the vector had been sorted in
place. The first element of $p gives the index
of the least element in $v, and the last element
of $p gives the index of the greatest element in
$v. The vector $v is not
changed.
- gsl_sort_vector_smallest($array, $k,
$vector)
This function outputs 0 if the operation succeeded, 1
otherwise and then the $k smallest elements of
the vector $v. $k must
be less than or equal to the length of the vector
$v.
- gsl_sort_vector_smallest_index($p, $k,
$v)
This function outputs 0 if the operation succeeded, 1
otherwise and then the indices of the $k
smallest elements of the vector $v.
$p must be a prealocated array reference. This
should be removed in further versions. $k must
be less than or equal to the length of the vector
$v.
- gsl_sort_vector_largest($array, $k,
$vector)
This function outputs 0 if the operation succeeded, 1
otherwise and then the $k largest elements of
the vector $v. $k must
be less than or equal to the length of the vector
$v.
- gsl_sort_vector_largest_index($p, $k,
$v)
This function outputs 0 if the operation succeeded, 1
otherwise and then the indices of the $k largest
elements of the vector $v.
$p must be a prealocated array reference. This
should be removed in further versions. $k must
be less than or equal to the length of the vector
$v.
- gsl_sort($data, $stride,
$n)
This function returns an array reference to the sorted
$n elements of the array
$data with stride
$stride into ascending numerical order.
- gsl_sort_index($p, $data,
$stride, $n)
This function indirectly sorts the $n
elements of the array $data with stride
$stride into ascending order, outputting the
permutation in the foram of an array. $p must be
a prealocated array reference. This should be removed in further
versions. The array $data is not changed.
- gsl_sort_smallest($array, $k,
$data, $stride,
$n)
This function outputs 0 if the operation succeeded, 1
otherwise and then the $k smallest elements of
the array $data, of size
$n and stride $stride,
in ascending numerical. The size $k of the
subset must be less than or equal to $n. The
data $src is not modified by this operation.
$array must be a prealocated array reference.
This should be removed in further versions.
- gsl_sort_smallest_index($p, $k,
$src, $stride,
$n)
This function outputs 0 if the operation succeeded, 1
otherwise and then the indices of the $k
smallest elements of the array $src, of size
$n and stride $stride.
The indices are chosen so that the corresponding data is in ascending
numerical order. $k must be less than or equal
to $n. The data $src is
not modified by this operation. $p must be a
prealocated array reference. This should be removed in further
versions.
- gsl_sort_largest($array, $k,
$data, $stride,
$n)
This function outputs 0 if the operation succeeded, 1
otherwise and then the $k largest elements of
the array $data, of size
$n and stride $stride,
in ascending numerical. The size $k of the
subset must be less than or equal to $n. The
data $src is not modified by this operation.
$array must be a prealocated array reference.
This should be removed in further versions.
- gsl_sort_largest_index($p, $k,
$src, $stride,
$n)
This function outputs 0 if the operation succeeded, 1
otherwise and then the indices of the $k largest
elements of the array $src, of size
$n and stride $stride.
The indices are chosen so that the corresponding data is in ascending
numerical order. $k must be less than or equal
to $n. The data $src is
not modified by this operation. $p must be a
prealocated array reference. This should be removed in further
versions.
Here is a complete list of all tags for this module :
- all
- plain
- vector
For more informations on the functions, we refer you to the GSL
official documentation:
<http://www.gnu.org/software/gsl/manual/html_node/>
In the source code of Math::GSL, the file "examples/benchmark/sort"
compares the performance of gsl_sort() to Perl's builtin sort()
function. Its first argument is the number of iterations and the second is the
size of the array of numbers to sort. For example, to see a benchmark of 1000
iterations for arrays of size 50000 you would type
./examples/benchmark/sort 1000 50000
Initial benchmarks indicate just slightly above a 2x performance
increase over sort() for arrays of between 5000 and 50000 elements.
This may mostly be due to the fact that gsl_sort() takes and returns
a reference while sort() takes and returns a plain list.
Jonathan "Duke" Leto <jonathan@leto.net> and Thierry Moisan
<thierry.moisan@gmail.com>
Copyright (C) 2008-2021 Jonathan "Duke" Leto and Thierry Moisan
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |