diff options
Diffstat (limited to 'gfsm/gfsm/src/libgfsm/tests/labcount.perl')
-rwxr-xr-x | gfsm/gfsm/src/libgfsm/tests/labcount.perl | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gfsm/gfsm/src/libgfsm/tests/labcount.perl b/gfsm/gfsm/src/libgfsm/tests/labcount.perl new file mode 100755 index 0000000..4086797 --- /dev/null +++ b/gfsm/gfsm/src/libgfsm/tests/labcount.perl @@ -0,0 +1,28 @@ +#!/usr/bin/perl -w + +use Gfsm; + +if (!@ARGV) { + print STDERR "Usage: $0 LABFILE [DATA_FILE(s)...]\n"; + exit 1; +} + +$labfile = shift; +$labs = Gfsm::Alphabet->new(); +$labs->load($labfile) or die("$0: load failed for labels file '$labfile': $!"); +$sym2id = $labs->asHash; + +##-- read data +%labf = qw(); +$ftotal = 0; +while (defined($line=<>)) { + chomp($line); + @labs = grep {defined($_)} @$sym2id{split(//,$line)}; + $ftotal += scalar(@labs); + foreach (@labs) { ++$labf{$_}; } +} + +##-- write data vector +#print map { pack('d', (defined($_) ? $_ : 0)/$ftotal) } @labf; + +print map {pack('Sd',$_,$labf{$_}/$ftotal)} sort(keys(%labf)); |