📄 cfresults.pl.in.new
字号:
#! @PERL@# @configure_input@# Extract final length and time for preprocessing+LK.# All the input files are presented at once, # e.g. out.grid1024.0.deg, out.grid1024.0.no_d, out.grid1024.1.deg...# So we need to keep a parity count.# Assume inputs are gzipped.$progname="cfresults.pl";$pkgname = "@PACKAGE@";$pkgversion = "@VERSION@";$version_banner="$progname ($pkgname) $pkgversion";$usage = <<EOT;$version_bannerCompare results of LK runs, Bentley style.$progname [options] where options can be: --decoptions <list> : list of declustering options to compare "deg no_d" --permnumbers <list> : list of permutation names --instance <name> : name of the instance --massagekey <name> : name of the massage key (see Makefile.am in ../expt) -h --help : Print this message --version : Print a version info, then exitEOT# Set the defaults;@decoptions=("deg","no_d");@permnumbers=("0","1","2","3","4","5");$instance="lin105";$massagekey="";# Parse the command line optionswhile ($#ARGV >= 0 && $ARGV[0] =~ m/^-/) { $option = $_ = shift(@ARGV); if (m/^-h$/ || m/^--help$/) { print $usage; exit; } if (m/^--decoptions$/) { if ( $#ARGV >= 0 ) {@decoptions=split(/ +/,shift(@ARGV)); next;} else { die "$progname: option $option requires a list argument\n";} } if (m/^--permnumbers$/) { if ( $#ARGV >= 0 ) {@permnumbers=split(/ +/,shift(@ARGV)); next;} else { die "$progname: option $option requires a list argument\n";} } if (m/^--instance$/) { if ( $#ARGV >= 0 ) {$instance=shift(@ARGV); next;} else { die "$progname: option $option requires an instance name argument\n";} } if (m/^--massagekey$/) { if ( $#ARGV >= 0 ) {$massagekey=shift(@ARGV); next;} else { die "$progname: option $option requires a massagekey name argument\n";} } if (m/^--version$/) { print "$version_banner\n"; exit; } die "$progname: Unknown option $option\n$usage";}#################################$decoption_count = 0; # Parity count. (Assuming @decoptions is a list of size 2.)$float_expr= "(-?\\d+\\.?\[0-9\]*|\\.\[0-9\]+)"; # See Programming Perl$file_num = 0;for $perm (@permnumbers) { $decoption_count=0; for $decoption (@decoptions) { $filename="out.$instance.$massagekey.$perm.$decoption"; open(IN,"zcat $filename|") || die "Couldn't open $filename for uncompressing"; $outfilename = "$instance.$massagekey.$perm.$decoption.cf.gpl"; open(OUT,">$outfilename"); || die "Couldn't open $filename for uncompressing"; while(<IN>) { if ( m/^LK phase ended with incumbent_len == \(0+\*2\^32\+$float_expr\) after $float_expr sec for LK and $float_expr sec for ds\+LK/o ) { ($len,$lk_sec,$ds_sec)=($1,$2,$3); print STDERR; print STDERR "$len $lk_sec $ds_sec\n"; if ($is_deg==0) { ($deg_len,$deg_lk_sec,$deg_ds_sec) = ($len,$lk_sec,$ds_sec); }; } elsif ( m/^Final milestone: $float_expr\%/o ) { $pct = $1; if ($is_deg) { $deg_pct = $pct; $is_deg = 1; } else { $filename = "cf.$file_num"; open(OUT,">$filename.deg") || die "Can't open $file_num.deg for writing"; open(OUTNIB,">$filename.no_d") || die "Can't open $file_num.no_d for writing"; print OUT "$deg_ds_sec $deg_pct\n"; print OUTNIB "$deg_ds_sec $deg_pct\n$ds_sec $pct\n"; close(OUT); close(OUTNIB); $file_num++; $is_deg = 0; } } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -