Algorithm-Networksort-Chooser

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

        $ algorithm-networksort-chooser 9 --algorithms=batcher,bitonic  ## only consider batcher and bitonic algos

        $ algorithm-networksort-chooser 9 --opt=comparators  ## optimise for comparators (default)
        $ algorithm-networksort-chooser 9 --opt=stages  ## optimise for stages
        $ algorithm-networksort-chooser 9 --opt=swaps  ## optimise for average swaps

        $ algorithm-networksort-chooser 9 --median  ## best median network
        $ algorithm-networksort-chooser 9 --selection=4  ## also best median network
        $ algorithm-networksort-chooser 9 --selection=0,1,2  ## top-3 elements selection net

        $ algorithm-networksort-chooser 9 --validate  ## run 0-1 validation test
        $ algorithm-networksort-chooser 9 --show  ## show network as ASCII diagram
        $ algorithm-networksort-chooser 9 --raw  ## show network as raw comparators

DESCRIPTION
    This module uses Algorithm::Networksort to experiment with sorting
    networks.

    Introduction To Sorting Networks
    <http://hoytech.github.io/sorting-networks/>

bin/algorithm-networksort-chooser  view on Meta::CPAN

use Getopt::Long;

use Algorithm::Networksort::Chooser;


my @opt_spec = (
  'opt=s',
  'median',
  'selection=s',
  'all',
  'validate',
  'show',
  'raw',
  'algorithms=s',
  'swap-mode=s',
  'help|h|?',
);

my $opt = {
  'opt' => 'comparators',
  'swap-mode' => 'zero-one',

bin/algorithm-networksort-chooser  view on Meta::CPAN

  Pod::Perldoc->run();
}


my $network_size = shift || die "need network size";


die "unknown swap-mode: $opt->{'swap-mode'}"
  if $opt->{'swap-mode'} ne 'zero-one' && $opt->{'swap-mode'} ne 'permutation';

die "validate not implemented yet" if $opt->{validate};



#### Generate candidate networks

my @algos;

if ($opt->{algorithms}) {
  @algos = split ',', $opt->{algorithms};
} else {

bin/algorithm-networksort-chooser  view on Meta::CPAN

    $ algorithm-networksort-chooser 9 --algorithms=batcher,bitonic  ## only consider batcher and bitonic algos

    $ algorithm-networksort-chooser 9 --opt=comparators  ## optimise for comparators (default)
    $ algorithm-networksort-chooser 9 --opt=stages  ## optimise for stages
    $ algorithm-networksort-chooser 9 --opt=swaps  ## optimise for average swaps

    $ algorithm-networksort-chooser 9 --median  ## best median network
    $ algorithm-networksort-chooser 9 --selection=4  ## also best median network
    $ algorithm-networksort-chooser 9 --selection=0,1,2  ## top-3 elements selection net

    $ algorithm-networksort-chooser 9 --validate  ## run 0-1 validation test
    $ algorithm-networksort-chooser 9 --show  ## show network as ASCII diagram
    $ algorithm-networksort-chooser 9 --raw  ## show network as raw comparators



=head1 DESCRIPTION

This module uses L<Algorithm::Networksort> to experiment with sorting networks.

L<Introduction To Sorting Networks|http://hoytech.github.io/sorting-networks/>



( run in 0.234 second using v1.01-cache-2.11-cpan-4d50c553e7e )