Algorithm-Heapify-XS

 view release on metacpan or  search on metacpan

ppport.h  view on Meta::CPAN

sv_2pvbyte_nolen|5.006000||p
sv_2pvbyte|5.006000||p
sv_2pvutf8_nolen||5.006000|
sv_2pvutf8||5.006000|
sv_2pv|||
sv_2uv_flags||5.009001|
sv_2uv|5.004000||p
sv_add_arena|||
sv_add_backref|||
sv_backoff|||
sv_bless|||
sv_cat_decode||5.008001|
sv_catpv_flags||5.013006|
sv_catpv_mg|5.004050||p
sv_catpv_nomg||5.013006|
sv_catpvf_mg_nocontext|||pvn
sv_catpvf_mg|5.006000|5.004000|pv
sv_catpvf_nocontext|||vn
sv_catpvf||5.004000|v
sv_catpvn_flags||5.007002|
sv_catpvn_mg|5.004050||p

t/max_heap.t  view on Meta::CPAN


    my %agent_array;
    my @arrays1;
    my @arrays2;
    my @sequence1;
    my @sequence2;
    foreach my $agent_id (@agents) {
        my @agent_jobs1;
        my @agent_jobs2;
        foreach my $job (@jobs) {
            my $j= bless [ int(rand(1000)), $job_id++ ], "OloadAry";
            push @agent_jobs1, $j;
            push @agent_jobs2, $j;

        }
        push @arrays1, bless \@agent_jobs1, "OloadAry";
        push @arrays2, bless \@agent_jobs2, "OloadAry";
        $agent_array{0+ $arrays1[-1]}= $agent_id;
        $agent_array{0+ $arrays2[-1]}= $agent_id;

    }

    my $max_heap_elapsed= 0 - time();
    {
        my $constructed_count;
        for (@arrays1) {
            max_heapify(@$_);

t/min_heap.t  view on Meta::CPAN


    my %agent_array;
    my @arrays1;
    my @arrays2;
    my @sequence1;
    my @sequence2;
    foreach my $agent_id (@agents) {
        my @agent_jobs1;
        my @agent_jobs2;
        foreach my $job (@jobs) {
            my $j= bless [ int(rand(1000)), $job_id++ ], "OloadAry";
            push @agent_jobs1, $j;
            push @agent_jobs2, $j;

        }
        push @arrays1, bless \@agent_jobs1, "OloadAry";
        push @arrays2, bless \@agent_jobs2, "OloadAry";
        $agent_array{0+ $arrays1[-1]}= $agent_id;
        $agent_array{0+ $arrays2[-1]}= $agent_id;

    }

    my $min_heap_elapsed= 0 - time();
    {
        my $constructed_count;
        for (@arrays1) {
            min_heapify(@$_);

t/overload_precision.t  view on Meta::CPAN

{
    package Local::BigNumOnly;

    use overload
        '0+' => sub { ${$_[0]} },
        '""' => sub { ${$_[0]} },
        fallback => 1;

    sub new {
        my ($class, $value) = @_;
        return bless \$value, $class;
    }
}

{
    package Local::BigNumCmp;

    use overload
        '<=>' => sub {
            my ($left, $right, $swap) = @_;
            ($left, $right) = ($right, $left) if $swap;
            return ${$left} <=> ${$right};
        },
        '""' => sub { ${$_[0]} },
        fallback => 1;

    sub new {
        my ($class, $value) = @_;
        return bless \$value, $class;
    }
}

{
    package Local::BigStrCmp;

    use overload
        'cmp' => sub {
            my ($left, $right, $swap) = @_;
            ($left, $right) = ($right, $left) if $swap;
            return ${$left} cmp ${$right};
        },
        '""' => sub { ${$_[0]} },
        fallback => 1;

    sub new {
        my ($class, $value) = @_;
        return bless \$value, $class;
    }
}

my $nv_preserves_64bit_uv =
    ($Config{nvsize} * 8) >= 64
    && (~0 <= 9_007_199_254_740_992);

plan skip_all => 'needs UV values larger than NV can exactly represent'
    if $nv_preserves_64bit_uv;



( run in 1.297 second using v1.01-cache-2.11-cpan-f0ff5d10edf )