~ubuntu-branches/ubuntu/hardy/libbit-vector-perl/hardy

« back to all changes in this revision

Viewing changes to examples/benchmk3.pl

  • Committer: Bazaar Package Importer
  • Author(s): Christian Hammers
  • Date: 2004-12-20 20:00:17 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20041220200017-6jteet1vl3p0okbv
Tags: 6.4-4
Rebuild with adjusted dependencies. 

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!perl -w
 
2
 
 
3
package Bit::Vector;
 
4
 
 
5
use strict;
 
6
 
 
7
sub Pattern_Fill
 
8
{
 
9
    my($vector,$pattern,$length) = @_;
 
10
    my($size,$factor);
 
11
 
 
12
    $size = $vector->Size();
 
13
    $factor = int($size / $length);
 
14
    if ($size % $length) { $factor++; }
 
15
    $vector->Chunk_List_Store($length, ($pattern) x $factor);
 
16
    return $vector;
 
17
}
 
18
 
 
19
package main;
 
20
 
 
21
use strict;
 
22
 
 
23
use Bit::Vector;
 
24
use Benchmark;
 
25
 
 
26
my($i,$n);
 
27
 
 
28
my $b = 1024;
 
29
 
 
30
my(@v) = Bit::Vector->new($b,8);
 
31
 
 
32
$v[1]->Pattern_Fill(0x01,5);
 
33
$v[2]->Pattern_Fill(0x01,3);
 
34
$v[3]->Pattern_Fill(0x01,2);
 
35
$v[4]->Pattern_Fill(0x03,3);
 
36
$v[5]->Pattern_Fill(0x07,4);
 
37
$v[6]->Pattern_Fill(0x0F,5);
 
38
$v[7]->Fill();
 
39
 
 
40
for ( $i = 0; $i < 8; $i++ )
 
41
{
 
42
    $n = $v[$i]->to_Bin();
 
43
    print "\nTiming vector #$i:\n$n\n\n";
 
44
    timethese
 
45
    (
 
46
        500000,
 
47
        {
 
48
            'Norm1' => sub { $n = $v[$i]->Norm(); },
 
49
            'Norm2' => sub { $n = $v[$i]->Norm2(); },
 
50
            'Norm3' => sub { $n = $v[$i]->Norm3(); }
 
51
        }
 
52
    );
 
53
    print "<<< n = $n, b = $b, ", ( int( ($n / $b) * 1000 + 0.5 ) / 10 ), "% >>>\n";
 
54
}
 
55
 
 
56
__END__
 
57