#!/bin/bash              
ulimit -c 0

ROOTDIR=$HOME/partitioning

if [ $# != 4 ]
then
	echo "usage:  run_alg <alg> <alg_type> <random | geometric> <input_file>"
	echo "ex:     run_alg w_po min_quotient geometric K10000.01.34"
	echo "ex:     run_alg rand_kl max_cut random K10000.01.34"
	echo "ex:     run_alg w_sim_anneal min_quotient geometric K10000.01.34"
	exit
fi

if [ $2 = "max_cut" ]
then
	min_max_option="-a"
else
	if [ $2 = "min_quotient" ]
	then
		min_max_option="-q"
	else
		echo "Error: two valid directories: max_cut, min_quotient"
		exit 2
	fi
fi

options=""
graph_options=""

if [ $3 = "geometric" ]
then
	graph_options="-G"
fi

echo "graph: $3"
echo "graph_options: $graph_options"

in_file="$ROOTDIR/$2/input/$1/$3/$4"

case "$1" in
   w_po)  options="-cls -m";ex_file="bk"; in_file="$ROOTDIR/$2/input/w_po/$3/$4";;
   rand_sim_anneal)     options="-SA";ex_file="kl";in_file="$ROOTDIR/$2/input/rand_sim_anneal/$3/$4";;
   line_sim_anneal)    options="-SA -li";ex_file="kl";in_file="$ROOTDIR/$2/input/line_sim_anneal/$3/$4";;
   w_sim_anneal)    options="-SA -w";ex_file="kl";in_file="$ROOTDIR/$2/input/w_sim_anneal/$3/$4";;
   rand_kl)     options="";ex_file="kl";in_file="$ROOTDIR/$2/input/rand_kl/$3/$4";;
   w_kl)   ex_file="bk"; in_file="$ROOTDIR/$2/input/w_kl/$3/$4";;
   line_kl)     options="-li";ex_file="kl";in_file="$ROOTDIR/$2/input/line_kl/$3/$4";;
   *)      ex_file="$1";;
esac

$ex_file $min_max_option -s -h $options $graph_options -f $in_file -t $ROOTDIR/$2/output/$1/$3/$4
