+#/bin/bash
+
+TEST=short
+if test $# -ge 1; then
+ TEST=$1
+fi
+
+if test "x$TEST" = "xshort"; then
+ PR=165; PV=144; IX=115; IY=$IX
+ NSAMPLE=2
+elif test "x$TEST" = "xmedium"; then
+ PR=901; PV=600; IX=500; IY=$IX
+ NSAMPLE=4
+elif test "x$TEST" = "xlong"; then
+ PR=1651; PV=1440; IX=1151; IY=$IX
+ NSAMPLE=5
+else
+ echo "usage: $0 [test-size]"
+ echo "test-size -- either short, medium, or long"
+ exit
+fi
+TIME=
+
+DIR=/tmp
+BIN_SNG=$DIR/sng/ctsimtext
+BIN_OMP=$DIR/omp/ctsimtext
+
+RUNTIME_REGEX="sed -r 's/^[^0-9]* ([0-9\.]+)[ a-z]*/\1/'"
+for PHAN in herman; do
+ fbase=${DIR}/${PHAN}
+ phmbase=$fbase
+ rm -rf ${phmbase}-*
+
+ ts=`sh -c "$BIN_SNG phm2if ${phmbase}-sng.if $IX $IY --phantom $PHAN --nsample $NSAMPLE --verbose | tail -1 | $RUNTIME_REGEX"`
+ tm=`sh -c "$BIN_OMP phm2if ${phmbase}-omp.if $IX $IY --phantom $PHAN --nsample $NSAMPLE --verbose | tail -1 | $RUNTIME_REGEX"`
+ ratio=`bc <<< "scale=2; $ts / $tm"`
+ diff=`$BIN_SNG if2 ${phmbase}-omp.if ${phmbase}-sng.if --comp`
+ echo "Phantom,$PHAN,$tm,$ts,$ratio,\"$diff\""
+
+ for GEOM in equilinear equiangular parallel; do
+ ifbase=${phmbase}-${GEOM}
+ ts=`sh -c "$BIN_SNG phm2pj ${ifbase}-sng.pj $PR $PV --phantom $PHAN --verbose | tail -1 | $RUNTIME_REGEX"`
+ tm=`sh -c "$BIN_OMP phm2pj ${ifbase}-omp.pj $PR $PV --phantom $PHAN --verbose | tail -1 | $RUNTIME_REGEX"`
+ ratio=`bc <<< "scale=2; $ts / $tm"`
+ echo "Projection,$PHAN,$GEOM,$tm,$ts,$ratio"
+
+ for BP in idiff diff table trig; do
+ for INT in nearest linear cubic; do
+ recbase=${ifbase}-${BP}-${INT}
+ ts=`sh -c "$BIN_SNG pjrec ${ifbase}-sng.pj $recbase-sng.if $IX $IY --verbose --interp $INT --backproj $BP | tail -1 | $RUNTIME_REGEX"`
+ tm=`sh -c "$BIN_OMP pjrec ${ifbase}-omp.pj $recbase-omp.if $IX $IY --verbose --interp $INT --backproj $BP | tail -1 | $RUNTIME_REGEX"`
+ ratio=`bc <<< "scale=2; $ts / $tm"`
+ diff=`$BIN_SNG if2 $recbase-omp.if $recbase-sng.if --comp`
+ echo "Reconstruction,$PHAN,$GEOM,$BP,$INT,$tm,$ts,$ratio,\"$diff\""
+ done
+ done
+ done
+done