⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 update-plot-usage

📁 EM算法的改进
💻
字号:
#!/usr/bin/perl## $Id: update-plot-usage.txt 1339 2006-09-21 19:46:28Z tbailey $# $Log$# Revision 1.3  2006/03/08 20:50:11  nadya# merge chamges from v3_5_2 branch## Revision 1.2.4.1  2006/01/24 20:45:42  nadya# update copyright## Revision 1.2  2005/10/05 06:18:35  nadya# use full path for "rm". Asssume everybody has /bin/rm.## Revision 1.1.1.1  2005/07/30 01:20:36  nadya# Importing from meme-3.0.14, and adding configure/make### AUTHOR: Timothy L. Bailey# CREATE DATE:$PGM = $0;			# name of program$PGM =~ s#.*/##;                # remove part up to last slash@args = @ARGV;			# arguments to program$| = 1;				# flush after all prints$SIG{'INT'} = 'cleanup';	# interrupt handler# Note: so that interrupts work, always use for system calls:# 	if ($status = system($command)) {&cleanup($status)}# requirespush(@INC, split(":", $ENV{'PATH'}));	# look in entire path# defaults$usage = <<USAGE;		# usage message  USAGE:	$PGM <rep_dir> [<pgm> <log> <types>]+	<rep_dir>	directory for report	<pgm> 		program name	<log>		log file name (host:dir/name)	<types>		string containing one letter plot-usage types (rumc)	Move the log files to the current directory, appending	them to files named <pgm>-log.<year>.<month>.	Run plot-usage to create usage figures.	Create usage report combining all figures in file usage-report.ps	and copy it to report directory.        Copyright        (2000-2006) The Regents of the University of California.        All Rights Reserved.        Author: Timothy L. BaileyUSAGE$nargs = 4;			# number of required argsif ($#ARGV+1 < $nargs) { &print_usage("$usage", 1); }# get input arguments$rep_dir = shift;while ($#ARGV >= 0) {  $_ = shift;  if ($_ eq "-h") {                             # help    &print_usage("$usage", 0);  } else {    push(@pgms, $_);    push(@logs, shift);    push(@types, shift);  }}# make file extension using date($sec, $min, $hour, $mday, $mon, $year, @rest) = localtime(time);$date = sprintf "%4d.%02d", 1900+$year, $mon+1;# make the plot postscript filesfor ($i=0; $i<=$#pgms; $i++) {  make_plots($pgms[$i], $logs[$i], $types[$i], $date);}# make the final report make_report($rep_dir, @pgms, @types);# cleanup files&cleanup($status); #################################################################################                       Subroutines                                            ################################################################################# ##################################################################################       print_usage##	Print the usage message and exit.#################################################################################sub print_usage {  local ($usage, $status) = @_;   if (-c STDOUT) {			# standard output is a terminal    open(C, "| more");    print C $usage;    close C;  } else {				# standard output not a terminal    print STDERR $usage;  }  exit $status;}##################################################################################	make_plots#################################################################################sub make_plots {  my($pgm, $log, $types, $date) = @_;  my($log_saved, $tmpfile, $type, @files);  $tmpfile = "$PGM.$$.tmp";  # save log in new file with date appended  $log_saved = "$pgm-log.$date";  # move (or append) the log file to the saved log  print STDERR "Appending $log to $log_saved\n";  ($host, $file) = split(':', $log);  $status = system("scp $log $tmpfile");  #$status = 1;  unless ($status) {				# copy succeded    system("ssh $host \"/bin/rm -f $file\""); 	# remove log file    if (-e $log_saved) {			# append to saved file      system("cat $tmpfile >> $log_saved"); unlink($tmpfile);    } else {      rename($tmpfile, $log_saved)     }  }  # get the log file names  $_ = `ls -1 $pgm-log.*`;  @files0 = split;  @files = @files0;  if (0) {    @files = ();    foreach $file (@files0) {      unless ($file =~ /2004\.(04|05)/) {	push @files, $file      }    }  }  print STDERR "$pgm log files: @files\n";  # make the requested types of plots  foreach $type (split(//, $types)) {    system("cat @files | plot-usage -$pgm -$type");  }} # make_plots##################################################################################	make_report#################################################################################sub make_report {  my($report_dir, @rest) = @_;  my($i, $report, $text, $npgms, $pgm, $types, $users, $runs, $max, $cpu);  $report = "usage-report";  open(REP, ">$report.tex") || die "Can't open file $report.tex for output: $!\n";   $text = << 'EOF'; \documentclass[12pt]{article}\oddsidemargin -0.7in\topmargin -0.25in\textheight 9in\textwidth 7in\usepackage{graphicx}\newcommand{\widtha}{3in}          % rectangular figure\begin{document}EOF  $npgms = @rest/2;  for ($i=0; $i<$npgms; $i++) {    $pgm = $rest[$i];    $types = $rest[$i+$npgms];    # set up the types of figures available    $runs = ($types =~ /r/) ? "\\includegraphics[width=\\widtha]{plot-usage.runs.$pgm.ps}" : "";    $users = ($types =~ /u/) ? "\\includegraphics[width=\\widtha]{plot-usage.users.$pgm.ps}" : "";    $max = ($types =~ /m/) ? "\\includegraphics[width=\\widtha]{plot-usage.max.$pgm.ps}" : "";    $cpu = ($types =~ /c/) ? "\\includegraphics[width=\\widtha]{plot-usage.cpu.$pgm.ps}" : "";    $text .= << 'EOF';\begin{figure}\begin{center}\begin{tabular}{cc}  \multicolumn{2}{c}{\LARGE \scEOF    $text .= "$pgm \} \\\\ \n";    $text .= << 'EOF';  {\em number of users} & {\em number of runs} \\EOF    $text .= "  $users \n    \& $runs \\\\ \n";    $text .= << 'EOF';  {\em cpu time} &    {\em maximum runs} \\EOF    $text .= "  $cpu \n    \& $max \\\\ \n";    $text .= << 'EOF';\end{tabular}\end{center}\caption{{\bf Usage of EOF    $text .= "\{\\sc $pgm} ";    $text .= << 'EOF';as of \today.}The histograms show the number of different users submitting runs, the number of runs, the total cpu time of all runs, and the maximum number of runs for a single useron a month-by-month basis.}\end{figure}EOF  } # pgm  $text .= << 'EOF';\end{document}EOF  #print STDERR $text;  print REP $text;  close(REP);  print "texit $report ;cp $rep_dir\n";  system("texit $report; cp $report.ps $rep_dir");  system("ps2pdf $report.ps; cp $report.pdf $rep_dir");} # make_report #################################################################################       cleanup##       cleanup stuff#################################################################################sub cleanup {  local($status, $msg) = @_;    #$status = system("/bin/rm plot-usage.*.ps");  if ($status && "$msg") {print STDERR "$msg: $status\n";}  exit($status);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -