packages feed

speculate-0.4.1: test/diff

#!/bin/bash
top=`dirname $0`/..
eg=$top/eg
model=$top/test/model

case "$1" in
	-*) sz="$1"
	    shift
		;;
esac

diff-() {
	$1 $sz | diff -rud $model/$2$sz.out - || exit 1
}

update-diff-() {
	$1 $sz > $model/$2$sz.out
}

tym() {
	/usr/bin/time -f%e "$@"
}

spc() {
	/usr/bin/time -f%M "$@"
}

mean() {
	sum="`echo -n $* | sed -e "s/ / + /g"`"
	mean="`echo "scale = 3; ($sum) / $#" | bc`"
	printf "%3.3f\n" $mean
}
export -f mean

div1024() {
	printf "%3.0f\n" "`echo "$1 / 1024" | bc`"
}
export -f div1024

benchmark-() {
	[ -x $1 ] || { echo "$0: not found $1"; return 1; }
	printf "%-18s  " "$2$sz"
	for run in {1..3}
	do
		tym $1 $sz 2>&1 >/dev/null
	done | xargs bash -c 'mean "$@"' mean
}

memory-benchmark-() {
	[ -x $1 ] || { echo "$0: not found $1"; return 1; }
	printf "%-18s  " "$2$sz"
	for run in {1..3}
	do
		spc $1 $sz 2>&1 >/dev/null
	done | xargs bash -c 'mean    "$@"' mean |
	       xargs bash -c 'div1024 "$@"' div1024
}

benchmark-cmp-() {
	[ -x $1 ] || { echo "$0: not found $1"; return 1; }
	grep "^ *$2$sz " bench/runtime-$HOSTNAME | tr '\n' ' '
	echo -n ' '
	for run in {1..1}
	do
		tym $1 $sz 2>&1 >/dev/null
	done | xargs bash -c 'mean "$@"' mean
}

find $* | sed -e "s/^bench/     /;s/^eg/  /" |
sort -b | sed -e "s/^     /bench/;s/^  /eg/" |
while read e
do
	`basename $0`- $top/$e `basename $e`
done