xref: /aosp_15_r20/external/rappor/analysis/cpp/run.sh (revision 2abb31345f6c95944768b5222a9a5ed3fc68cc00)
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