1*2abb3134SXin Li#!/bin/bash 2*2abb3134SXin Li# 3*2abb3134SXin Li# Usage: 4*2abb3134SXin Li# ./run.sh <function name> 5*2abb3134SXin Li 6*2abb3134SXin Liset -o nounset 7*2abb3134SXin Liset -o pipefail 8*2abb3134SXin Liset -o errexit 9*2abb3134SXin Li 10*2abb3134SXin Li# Call gcc with the flags we like. 11*2abb3134SXin Li# NOTE: -O3 does a lot for fast_em. (More than 5x speedup over unoptimized) 12*2abb3134SXin Li 13*2abb3134SXin Licpp-compiler() { 14*2abb3134SXin Li g++ -Wall -Wextra -O3 "$@" 15*2abb3134SXin Li #clang++ -Wall -Wextra -O3 "$@" 16*2abb3134SXin Li} 17*2abb3134SXin Li 18*2abb3134SXin Libuild-find-cliques() { 19*2abb3134SXin Li mkdir -p _tmp 20*2abb3134SXin Li # C++ 11 for unordered_{map,set} 21*2abb3134SXin Li cpp-compiler -std=c++0x -o _tmp/find_cliques find_cliques.cc 22*2abb3134SXin Li} 23*2abb3134SXin Li 24*2abb3134SXin Lifind-cliques() { 25*2abb3134SXin Li _tmp/find_cliques "$@" 26*2abb3134SXin Li} 27*2abb3134SXin Li 28*2abb3134SXin Litest-bad-edge() { 29*2abb3134SXin Li # Edge should go from lesser partition number to greater 30*2abb3134SXin Li find-cliques <<EOF 31*2abb3134SXin Linum_partitions 3 32*2abb3134SXin Lingram_size 2 33*2abb3134SXin Liedge 1.ab 0.cd 34*2abb3134SXin LiEOF 35*2abb3134SXin Li} 36*2abb3134SXin Li 37*2abb3134SXin Litest-bad-size() { 38*2abb3134SXin Li # Only support n =2 now 39*2abb3134SXin Li find-cliques <<EOF 40*2abb3134SXin Linum_partitions 3 41*2abb3134SXin Lingram_size 3 42*2abb3134SXin Liedge 0.ab 1.cd 43*2abb3134SXin LiEOF 44*2abb3134SXin Li} 45*2abb3134SXin Li 46*2abb3134SXin Lidemo() { 47*2abb3134SXin Li local graph=${1:-testdata/graph1.txt} 48*2abb3134SXin Li build-find-cliques 49*2abb3134SXin Li 50*2abb3134SXin Li time cat $graph | find-cliques 51*2abb3134SXin Li} 52*2abb3134SXin Li 53*2abb3134SXin Liget-lint() { 54*2abb3134SXin Li mkdir -p _tmp 55*2abb3134SXin Li wget --directory _tmp \ 56*2abb3134SXin Li http://google-styleguide.googlecode.com/svn/trunk/cpplint/cpplint.py 57*2abb3134SXin Li chmod +x _tmp/cpplint.py 58*2abb3134SXin Li} 59*2abb3134SXin Li 60*2abb3134SXin Lilint() { 61*2abb3134SXin Li _tmp/cpplint.py find_cliques.cc fast_em.cc 62*2abb3134SXin Li} 63*2abb3134SXin Li 64*2abb3134SXin Libuild-fast-em() { 65*2abb3134SXin Li mkdir -p _tmp 66*2abb3134SXin Li local out=_tmp/fast_em 67*2abb3134SXin Li 68*2abb3134SXin Li cpp-compiler -o $out fast_em.cc 69*2abb3134SXin Li ls -l $out 70*2abb3134SXin Li} 71*2abb3134SXin Li 72*2abb3134SXin Lifast-em() { 73*2abb3134SXin Li build-fast-em 74*2abb3134SXin Li time _tmp/fast_em "$@" 75*2abb3134SXin Li} 76*2abb3134SXin Li 77*2abb3134SXin Li"$@" 78