#! /bin/csh -fe # Highly nested, "all" substitutions: set usage = "$0 NV AVGD SEED STAG FLAGS" # AVGD is the average outdegree (or indegree) echo "$0 $*" set NV = "$1"; shift set avgd = "$1"; shift; set seed = "$1"; shift; set tag = "$1"; shift; set flgs = ( $* ) # Building block parameters: @ WS = 2 @ LS = 4 @ NVS = 8 @ NES = 9 # Determine the number of stages and the base size: @ NVX = ${NV} @ NEX = ${NVX} * ${avgd} @ ADX = ${avgd} @ maxADX = ( ${NVX} - 1 ) / 2 if ( ${avgd} > ${maxADX} ) then echo "average degree too large"; exit 1 endif while ( ${NEX} > ${NES} ) @ T = ( ${NEX} + ( ${NES} / 2 ) ) / ${NES} @ NVY = ${NVX} - ( ${T} * ( ${NVS} - 2 ) ) @ NEY = ${T} @ AGY = ( ${NEY} + ( ${NVY} - 1 ) ) / ${NVY} @ maxADY = ( ${NVY} - 1 ) / 2 if ( ${ADY} > ${maxADY} ) break @ NVX = ${NVY} @ NEX = ${NEY} end set substs = ( ) # Initial graph is a squarish network: @ NVG = ${NVX} @ NEG = ${NEX} @ T = ${NVG} - 2 set WG = `apsqrt ${T}` @ LG = ( ${T} / ${WG} ) + 1 # Compute substitutions: @ TMP = ${NVG} + ( ${NEG} * ( ${NVS} - 2 ) ) while ( ${TMP} <= ${NV} ) set substs = ( ${substs} -subst TF -by Rete -NV ${NVS} -NE ${NES} -W ${W} -L ${L} ) @ NVG = ${TMP} @ NEG = ${NEG} * ${NES} @ TMP = ${NVG} + ( ${NEG} * ( ${NVS} - 2 ) ) end set name = "Nest-${NVG}-${NEG}-${seed}${tag}.jcs" set echo MaxFlowProbs \ -seed ${seed} ${flgs} \ ${substs} \ > ${name} check-reps ${name}