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

📄 svdrun.mac

📁 svd 算法代码 This directory contains instrumented SVDPACKC Version 1.0 (ANSI-C) programs for compiling
💻 MAC
字号:
# svdrun (MAC version)#############################################################################      This script is used to run SVDPACKC codes on the MAC.  The script# takes as input the parameters described in the sample input file "svdin".# You should invoke the runs specified by svdin via "svdrun svdin".# The ouput file from each execution of a SVDPACKC code, will be named# DATA.outN, where#                    DATA = name of the file containing sparse matrix #			    data structure,#		        N = id of run taken from the svdin file.## This script will execute any SVDPACKC code found # in the paths defined by "las1path, las2path, blspath, sispath, tmspath".# Any changes in the paths of the SVDPACKC source will require changes to# this script  (see comments below).  The user must specify the path to# the datasets (compressed Harwell-Boeing input matrices) via "filepath",# and scratch space via "workarea".# The script "svdsum" can be used to produce summary tables from the# output files generated by "svdrun".## Author: G. O'Brien, Dept. of Computer Science, UTK (March 1993)############################################################################# Set up Paths ------------------------------------------------------------set las1path "CIDER:MPW Folder:svdcodes:"set las2path "CIDER:MPW Folder:svdcodes:"set blspath "CIDER:MPW Folder:svdcodes:"set tmspath "CIDER:MPW Folder:svdcodes:"set sispath "CIDER:MPW Folder:svdcodes:"set filepath "Fritter HD:work:datasets:"set workarea "CIDER:MPW Folder:"# Check command line arguments --------------------------------------------if ({#} == 1)    set inputfile {1}   if Not "`Exists -f {inputfile}`"	 echo "{inputfile} unreadable." 	 exit 1   endelse   echo "Usage: svdrun <filename>"   exitend# Read inputfile ---------------------------------------------------------set id "`streamedit {inputfile} -d -e '!/%#/ && /([\ ]+[0-9]+)(1/Pr -n (1 " "'`"set files "`streamedit {inputfile} -d -e '!/%#/ && /%(" "*[0-9]+)([\ ]+[a-z0-9]+)([\ ]+)([a-z0-9]+)(1/ Pr -n (1 " "'`"# Get files ---------------------------------------------------------------for file in {files}   if Not "`Exists -f {file}`"      echo "------------------------------"      echo "File Name:    {filepath}{file}"      duplicate -n "{filepath}{file}" "{file}"   endend# Beginning of loop -------------------------------------------------------for item in {id}   set file "`streamedit {inputfile} -d -e '!/%#/ && /%(" "*'{item}')([\ ]+[a-z0-9]+)([\ ]+)([a-z0-9]+)(1/ Pr -n (1 '`"   set program "`streamedit {inputfile} -d -e '!/%#/ && /%(" "*'{item}')([\ ]+)([a-z0-9]+)(1/ Pr -n (1 '`"   set iteration "`streamedit {inputfile}  -d -e '!/%#/ && /%(" "*'{item}')([\ ]*[a-z0-9]+)([\ ]*[a-z0-9]+)([\ ]+)([0-9]+)(1/ Pr -n (1'`"   set triplets "`streamedit {inputfile}  -d -e '!/%#/ && /%(" "*'{item}')([\ ]*[a-z0-9]+)([\ ]*[a-z0-9]+)([\ ]+[0-9]+)([\ ]+)([0-9]+)(2/ Pr -n (2'`"   if {program} =~ /bls1/ || {program} =~ /bls2/      set subspace "`streamedit {inputfile}  -d -e '!/%#/ && /%(" "*'{item}')([\ ]*[a-z0-9]+)([\ ]*[a-z0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+)([0-9]+)(2/ Pr -n (2'`"      set blocksize "`streamedit {inputfile}  -d -e '!/%#/ && /%(" "*'{item}')([\ ]*[a-z0-9]+)([\ ]*[a-z0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+)([0-9]+)(2/ Pr -n (2'`"      set accuracy "`streamedit {inputfile}  -d -e '!/%#/ && /%(" "*'{item}')([\ ]*[a-z0-9]+)([\ ]*[a-z0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+)([-.[a-z0-9]+)(2/ Pr -n (2'`"      set vectors "`streamedit {inputfile}  -d -e '!/%#/ && /%(" "*'{item}')([\ ]*[a-z0-9]+)([\ ]*[a-z0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+[-.[a-z0-9]+)([\ ]+[truefals]+)(2/ Pr -n (2'`"   else if {program} =~ /tms1/ || {program} =~ /tms2/     set subspace "`streamedit {inputfile}  -d -e '!/%#/ && /%(" "*'{item}')([\ ]*[a-z0-9]+)([\ ]*[a-z0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+)([0-9]+)(2/ Pr -n (2'`"     set residual "`streamedit {inputfile}  -d -e '!/%#/ && /%(" "*'{item}')([\ ]*[a-z0-9]+)([\ ]*[a-z0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+)([.[0-9De\-+]+)(2/ Pr -n (2'`"     set ritz "`streamedit {inputfile}  -d -e '!/%#/ && /%(" "*'{item}')([\ ]*[a-z0-9]+)([\ ]*[a-z0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+)([.[0-9De\-+]+)([\ ]+)([0-9]+)(2/ Pr -n (2'`"	 set accuracy "`streamedit {inputfile}  -d -e '!/%#/ && /%(" "*'{item}')([\ ]*[a-z0-9]+)([\ ]*[a-z0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+)([.[0-9De\-+]+)([\ ]+)([0-9]+)([\ ]+)([-.[a-z0-9]+)(2/ Pr -n (2'`"     set vectors "`streamedit {inputfile}  -d -e '!/%#/ && /%(" "*'{item}')([\ ]*[a-z0-9]+)([\ ]*[a-z0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+)([.[0-9De\-+]+)([\ ]+[0-9]+)([\ ]+[-.[a-z0-9]+)([\ ]+[truefals]+)(2/ Pr -n (2'`"   else if {program} =~ /sis1/ || {program} =~ /sis2/      set subspace "`streamedit {inputfile}  -d -e '!/%#/ && /%(" "*'{item}')([\ ]*[a-z0-9]+)([\ ]*[a-z0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+)([0-9]+)(2/ Pr -n (2'`"      set accuracy "`streamedit {inputfile}  -d -e '!/%#/ && /%(" "*'{item}')([\ ]*[a-z0-9]+)([\ ]*[a-z0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+)([-.[a-z0-9]+)(2/ Pr -n (2'`"      set vectors "`streamedit {inputfile}  -d -e '!/%#/ && /%(" "*'{item}')([\ ]*[a-z0-9]+)([\ ]*[a-z0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+[-.[a-z0-9]+)([\ ]+[truefals]+)(2/ Pr -n (2'`"      set extravectors `evaluate {subspace} - {triplets}`   else      set accuracy "`streamedit {inputfile}  -d -e '!/%#/ && /%(" "*'{item}')([\ ]*[a-z0-9]+)([\ ]*[a-z0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+)([-.[a-z0-9]+)(2/ Pr -n (2'`"      set vectors "`streamedit {inputfile}  -d -e '!/%#/ && /%(" "*'{item}')([\ ]*[a-z0-9]+)([\ ]*[a-z0-9]+)([\ ]+[0-9]+)([\ ]+[0-9]+)([\ ]+[-.[a-z0-9]+)([\ ]+)([truefals]+)(2/ Pr -n (2'`"   end# Check parameters --------------------------------------------------------   if {iteration} < {triplets}      echo "Iterations must be greater than tripletss."      exit   end # End of if   echo "-----------------------------"echo "Iterations:   {iteration}"echo "Triplets:     {triplets}"echo "Subspace      {subspace}"echo "Blocksize:    {blocksize}"echo "Accuracy:     {accuracy}"echo "Vectors:      {vectors}"echo "Residual:     {residual}"echo "Extravectors: {extravectors}"echo "Ritz:         {ritz}"echo "-----------------------------"# Run programs ------------------------------------------------------------   echo -n "Duplicating {file} to a file called matrix... "   duplicate -y {file} matrix   echo "done."      echo -n "Running {program}... "   if {program} =~ /las1/        echo "'{file}' {iteration} {triplets} -1.e-30 1.e-30 {vectors} {accuracy} 5" > parameters{item} # normally this is 5	  rename -y parameters{item} lap1	  execute "{las1path}"{program}	  rename -y lao1 out1	  delete -c  lap1 lav1   else if {program} =~ /las2/     echo "'{file}' {iteration} {triplets} -1.e-30 1.e-30 {vectors} {accuracy} 5" > parameters{item} # normally this is 5	 rename -y parameters{item} lap2	 execute "{las2path}"{program}	 rename -y lao2 out1	 delete -c lap2 lav2   else if {program} =~ /bls1/      echo "'{file}' {iteration} {subspace} {blocksize} {triplets} {accuracy} {vectors}" > parameters{item}	  rename -y parameters{item} blp1	  execute "{blspath}"{program}	  rename -y blo1 out1	  delete -c blp1 blv1   else if {program} =~ /bls2/      echo "'{file}' {iteration} {subspace} {blocksize} {triplets} {accuracy} {vectors}" > parameters{item}      	  rename -y parameters{item} blp2	  execute "{blspath}"{program}	  rename -y blo2 out1	  delete -c blp2 blv2	else if {program} =~ /sis1/	  echo "'{file}' {triplets} {extravectors} {iteration} {accuracy} {vectors}" > parameters{item}	  rename -y parameters{item} sip1	  execute "{sispath}"{program}	  rename -y sio1 out1	  delete -c sio4 sip1	else if {program} =~ /sis2/	  echo "'{file}' {triplets} {extravectors} {iteration} {accuracy} {vectors}" > parameters{item}	  rename -y parameters{item} sip2	  execute "{sispath}"{program}	  rename -y sio2 out1	  delete -c sio5 sip2	else if {program} =~ /tms1/	   echo "'{file}' {triplets} {subspace} {ritz} {accuracy} {residual} {vectors} {iteration}" > parameters{item}	   rename -y parameters{item} tmp1	   execute "{tmspath}"{program}	   rename -y tmo1 out1	   delete -c -i tmp1 ivec	else if {program} =~ /tms2/	   echo "'{file}' {triplets} {subspace} {ritz} {accuracy} {residual} {vectors} {iteration}" > parameters{item}	   rename -y parameters{item} tmp2	   execute "{tmspath}"{program}	   rename -y tmo2 out1	   delete -c -i tmp2 ivec   end   echo "done."      # duplicate -n "{las1path}{program}" "{workarea}{program}"   # execute {program} -f parameters{item} {file} out1 outw   echo -n "Creating output file... "   echo -n " ... DATE: " > {file}.out{item}   date -a >> {file}.out{item}   catenate out1 >> {file}.out{item}   echo "done."      end # End of loop# Cleanup ------------------------------------------------------------------delete matrixdelete out1for file in {files}   if "`Exists -f {file}`"      echo -n "Deleting {file}... "      delete {file}	  echo "done."   end	  end echo " "echo "**** SVDRUN Complete ****"I have not done final testing for these scripts.  The results I have obtained so far have been produced with this script.  Basically this ismy caveat for future revisions.obrien.---Gavin O'Brien ......................................... a1b Ayres HallDepartment of Computer Science ........... The University of Tennesseeobrien@cs.utk.edu (615) 974-8990 ............ Knoxville, TN 37996-1301

⌨️ 快捷键说明

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