Revision 46d9d2ec

View differences:

latex/note.tex
1
% http://www.ams.jhu.edu/~ers/learn-latex3
1 2
% http://www.ams.jhu.edu/~ers/learn-latex/
2 3

  
3 4
\documentclass[12pt]{article}
......
91 92
    \include{note_w10}
92 93
    \include{note_w11}
93 94
    \include{note_w12}
95
    \include{note_w13}
94 96
    \include{tips}
95 97
    \include{important_commands}
96 98

  
latex/note_w13.tex
27 27

  
28 28
            And we have WBBC ~ NBC.
29 29

  
30
    \subsection{C++ Heuristic BC - CHBC}
31

  
latex/note_w14.tex
1

  
2
%!TEX root = note.tex
3

  
4
%%%%%%%%%%%%%%%%%%
5
% WEEK 14
6
%%%%%%%%%%%%%%%%%%
7
\section{Week 14}
8
    \subsection{C++ Heuristic BC - CHBC}
9
    \subsection{Pattern}
10

  
11
    Out put graph
12
\begin{lstlisting}
13
Graph g;
14
...
15

  
16
// 1st way
17
outops::operator<<(cout, g);
18

  
19
// 2nd way
20
using namespace outops;
21
cout << g;
22
\end{lstlisting}
23

  
24

  
25
\href{http://stackoverflow.com/questions/8175933/to-compare-two-boost-graph-having-same-vertices}{Using boost::spirit::karma to format the output}
26

  
27
\href{http://stackoverflow.com/questions/17595949/boostgraph-add-vertex-compilation-error}{Use graph_manager.h to manage the graph}
28

  
29
    \subsection{Bug: in copy constructor of GraphManger for v_index_std_map}
30

  
31
        I don't know why the size of v_index_std_map got double?!
32

  
33
        Read for explaination: \href{http://stackoverflow.com/questions/1639544/why-does-stdmap-operator-create-an-object-if-the-key-doesnt-exist}{stdmap create an object if the key doesn't exist}
34

  
35
        \lstinline{boost::get()}: when the key doesn't exist, then it automatically create a default value for that key.
36

  
37
        \begin{lstlisting}
38
    Vertex Index Std Map:
39
[
40
  0
41
  0
42
  0
43
  0
44
  0
45
  1
46
  0
47
  2
48
  3
49
  4
50
  5
51
  6
52
  7
53
  0
54
  10
55
  8
56
  9
57
  0
58
  0
59
  0
60
  0
61
  0
62
]
63
        \end{lstlisting}
64

  
65
    \subsection{SubComponent}
66
        How to store \lstinline{art_points_id} for each SubComponent?
67

  
68
    \subsection{Cannot overload cout operator<< for std::map}
69

  
70
        \begin{lstlisting}
71
// Code
72
    template <typename T1, typename T2>
73
    std::ostream& operator<<(std::ostream& os, const std::map<T1, T2>& m)
74
    {
75
        cout << "utility << map\n";
76

  
77
        // using namespace boost::spirit::karma;
78
        // os << format("(" << (auto_ % "\n  ") << ")", m);
79
        // os << endl;
80

  
81
        // return os;
82
    }
83

  
84
// Error
85
sub_component.o: In function `operator<<(std::ostream&, SubComponent const&)':
86
sub_component.cpp:(.text+0x715): undefined reference to `outops::operator<<(std::ostream&, std::map<std::string, int, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >)'
87
        \end{lstlisting}
88

  
89

  
90
    \subsection{Boost Test}
91

  
92
        https://github.com/jsankey/boost.test-examples
93
        http://www.ibm.com/developerworks/aix/library/au-ctools1_boost/
94

  
95
    \subsection{const KEYWORD}
96
        http://stackoverflow.com/questions/15604127/do-a-getter-for-an-object
97

  
98
        http://stackoverflow.com/questions/6299967/what-are-the-use-cases-for-having-a-function-return-by-const-value-for-non-built
99

  
100
    \subsection{boost/betweenness_centrality.hpp}
101
        The structure
102

  
103
        \begin{lstlisting}
104
namespace detail { namespace graph {
105
    struct brandes_dijkstra_visitor : public bfs_visitor<> {};
106
    struct brandes_dijkstra_shortest_paths {};
107
    struct brandes_unweighted_shortest_paths {};
108

  
109
    void init_centrality_map(std::pair<Iter, Iter>, dummy_property_map);
110
    void init_centrality_map(std::pair<Iter, Iter> keys, Centrality centrality_map);
111

  
112
    void update_centrality(dummy_property_map, const Key&, const T&);
113
    void update_centrality(CentralityMap centrality_map, Key k, const T& x);
114
    void divide_centrality_by_two(std::pair<Iter, Iter>, dummy_property_map);
115
    void divide_centrality_by_two(std::pair<Iter, Iter> keys,
116
                           CentralityMap centrality_map);
117

  
118
    void brandes_betweenness_centrality_impl(const Graph& g,
119
                                      CentralityMap centrality,     // C_B
120
                                      EdgeCentralityMap edge_centrality_map,
121
                                      IncomingMap incoming, // P
122
                                      DistanceMap distance,         // d
123
                                      DependencyMap dependency,     // delta
124
                                      PathCountMap path_count,      // sigma
125
                                      VertexIndexMap vertex_index,
126
                                      ShortestPaths shortest_paths);
127
} } // end namespace detail::graph
128

  
129
// For unweighted graph
130
void brandes_betweenness_centrality(...) {
131
    detail::graph::brandes_unweighted_shortest_paths shortest_paths;
132
    detail::graph::brandes_betweenness_centrality_impl(...);
133
};
134

  
135
// For weighted graph
136
void brandes_betweenness_centrality(...) {
137
    detail::graph::brandes_dijkstra_shortest_paths<WeightMap>
138
    shortest_paths(weight_map);
139
    detail::graph::brandes_betweenness_centrality_impl(...);
140
}
141

  
142
namespace detail { namespace graph {
143
    void brandes_betweenness_centrality_dispatch2(...);
144
    void brandes_betweenness_centrality_dispatch2(...);
145

  
146
    struct brandes_betweenness_centrality_dispatch1 {};
147
    struct brandes_betweenness_centrality_dispatch1<param_not_found> {};
148
    struct is_bgl_named_params {};
149
    struct is_bgl_named_params {};
150

  
151
} } // end namespace detail::graph
152

  
153

  
154
        \end{lstlisting}
latex/references.bib
52 52
 keywords = {NIDS placement, communication infrastructure protection, epidemic models},
53 53
}
54 54

  
55
@article{Brandes01afaster,
56
    author = {Ulrik Brandes},
57
    title = {A Faster Algorithm for Betweenness Centrality},
58
    journal = {Journal of Mathematical Sociology},
59
    year = {2001},
60
    volume = {25},
61
    pages = {163--177}
62
}
63

  
64
@article{Brandes2008136,
65
title = "On variants of shortest-path betweenness centrality and their generic computation ",
66
journal = "Social Networks ",
67
volume = "30",
68
number = "2",
69
pages = "136 - 145",
70
year = "2008",
71
note = "",
72
issn = "0378-8733",
73
doi = "http://dx.doi.org/10.1016/j.socnet.2007.11.001",
74
url = "http://www.sciencedirect.com/science/article/pii/S0378873307000731",
75
author = "Ulrik Brandes",
76
keywords = "Betweenness centrality",
77
keywords = "Algorithms",
78
keywords = "Valued networks",
79
keywords = "Load centrality ",
80
abstract = "Betweenness centrality based on shortest paths is a standard measure of control utilized in numerous studies and implemented in all relevant software tools for network analysis. In this paper, a number of variants are reviewed, placed into context, and shown to be computable with simple variants of the algorithm commonly used for the standard case. "
81
}
82

  
latex/report_feb_10.tex
1
\documentclass[12pt]{article}
2
% This first part of the file is called the PREAMBLE. It includes
3
% customizations and command definitions. The preamble is everything
4
% between \documentclass and \begin{document}.
5

  
6
\usepackage[margin=1in]{geometry}  % set the margins to 1in on all sides
7
\usepackage{graphicx}              % to include figures
8
\graphicspath{ {report_images/} }       % '/' is needed
9
\usepackage{epstopdf}              % for the .ps image
10
\epstopdfsetup{update}
11
\DeclareGraphicsExtensions{.eps}
12
\epstopdfDeclareGraphicsRule{.eps}{pdf}{.pdf}{ps2pdf -dEPSCrop -dNOSAFER #1 \OutputFile}
13
\usepackage[noabbrev,capitalise]{cleveref}
14
\usepackage{amsmath}               % great math stuff
15
\usepackage{amsfonts}              % for blackboard bold, etc
16
\usepackage{amsthm}                % better theorem environments
17
\usepackage{listings}              % to add code
18
\lstset{language=Java}
19
\renewcommand{\lstlistingname}{Code} % change "Listing 1.1" to "Code 1.1"
20

  
21
\usepackage[utf8]{inputenc}
22
\usepackage{color}
23

  
24
\usepackage{cite}
25

  
26
\usepackage[colorlinks]{hyperref}       % from http://tex.stackexchange.com/questions/3568/how-does-one-typeset-a-url
27
\hypersetup{citecolor=green}
28
\hypersetup{linkcolor=red}
29
\hypersetup{urlcolor=blue}
30
\usepackage{cleveref}
31

  
32
\definecolor{codegreen}{rgb}{0,0.6,0}
33
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
34
\definecolor{codepurple}{rgb}{0.58,0,0.82}
35
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
36

  
37
\lstdefinestyle{mystyle}{
38
    backgroundcolor=\color{backcolour},
39
    commentstyle=\color{codegreen},
40
    keywordstyle=\color{magenta},
41
    numberstyle=\tiny\color{codegray},
42
    stringstyle=\color{codepurple},
43
    basicstyle=\footnotesize,
44
    breakatwhitespace=false,
45
    breaklines=true,
46
    captionpos=b,
47
    keepspaces=true,
48
    numbers=left,
49
    numbersep=5pt,
50
    showspaces=false,
51
    showstringspaces=false,
52
    showtabs=false,
53
    tabsize=2
54
}
55

  
56
\lstset{style=mystyle}
57
\DeclareMathOperator{\id}{id}
58

  
59
\newcommand{\bd}[1]{\mathbf{#1}}  % for bolding symbols
60
\newcommand{\RR}{\mathbb{R}}      % for Real numbers
61
\newcommand{\ZZ}{\mathbb{Z}}      % for Integers
62
\newcommand{\col}[1]{\left[\begin{matrix} #1 \end{matrix} \right]}
63
\newcommand{\comb}[2]{\binom{#1^2 + #2^2}{#1+#2}}
64

  
65
\usepackage[T1]{fontenc}
66
\AtBeginDocument{%
67
  \begingroup\lccode`~=`_%
68
  \lowercase{\endgroup\let~}_%
69
  \catcode`_=12
70
}
71

  
72
\usepackage{booktabs} % To thicken table lines
73

  
74
\usepackage{algorithm}
75
\usepackage[noend]{algpseudocode} % For pseudocode
76

  
77
\begin{document}
78

  
79
\title{Thesis - Report Feb 10 - Heuristic Betweenness Centrality vs Brandes Betweenness Centrality}
80

  
81
\author{Quynh Nguyen - DISI - University of Trento}
82

  
83
\maketitle
84
\clearpage
85

  
86
\section{The discrepency between Heuristic Betweenness Centrality (HBC) and Brandes Betweenness Centrality (BBC)}
87
    \textbf{Summary:} the gap between the default version (of both networkx and BGL) to calculate BC is due to the inclusion of the source.
88

  
89
    Algorithm 2 in \cite{Brandes2008136} show the variant of calculating betweenness centrality with endpoints included. The paper also mentions that we can "restrict the inclusion of endpoints to either sources or targets".
90

  
91
    \begin{algorithm}
92
    \caption{Including endpoints (both sources + targets)}\label{accumulation_endpoints}
93
        \begin{algorithmic}[1]
94
            \Procedure{accumulation}{}
95
                \State $c_B[s] \leftarrow c_B[s] + (|S| - 1)$
96
                \For{$v \in V$}
97
                    $\delta[v] \leftarrow 0$
98
                \EndFor
99

  
100
                \While{$S$ not empty}
101
                    \State pop $w \leftarrow S$
102
                    \For{$v \in Pred[w]$}
103
                        $\delta[v] \leftarrow \delta[v] + \frac{\sigma[v]}{\sigma[w]} (1 + \delta[w])$
104
                    \EndFor
105
                    \If{$w \neq s$}
106
                        $c_B[w] \leftarrow c_B[w] + \delta[w] + 1$ \Comment{$w$ is target of $s$ once}
107
                    \EndIf
108
                \EndWhile
109
            \EndProcedure
110
        \end{algorithmic}
111
    \end{algorithm}
112

  
113
    \begin{algorithm}
114
    \caption{Including targets}\label{accumulation_targets}
115
        \begin{algorithmic}[1]
116
            \Procedure{accumulation}{}
117
                \For{$v \in V$}
118
                    $\delta[v] \leftarrow 0$
119
                \EndFor
120

  
121
                \While{$S$ not empty}
122
                    \State pop $w \leftarrow S$
123
                    \For{$v \in Pred[w]$}
124
                        $\delta[v] \leftarrow \delta[v] + \frac{\sigma[v]}{\sigma[w]} (1 + \delta[w])$
125
                    \EndFor
126
                    \If{$w \neq s$}
127
                        $c_B[w] \leftarrow c_B[w] + \delta[w] + 1$ \Comment{$w$ is target of $s$ once}
128
                    \EndIf
129
                \EndWhile
130
            \EndProcedure
131
        \end{algorithmic}
132
    \end{algorithm}
133

  
134
    \begin{algorithm}
135
    \caption{Heuristic Betweenness Centrality}\label{accumulation_heuristic}
136
        \begin{algorithmic}[1]
137
            \Procedure{accumulation}{}
138
                \For{$v \in V$}
139
                    $\delta[v] \leftarrow 0$
140
                \EndFor
141
                \While{$S$ not empty}
142
                    \State pop $w \leftarrow S$
143
                    \State $h \leftarrow $ get_the_communication_intensity_between $(w, s)$
144
                    \For{$v \in Pred[w]$}
145
                        $\delta[v] \leftarrow \delta[v] + \frac{\sigma[v]}{\sigma[w]} (h + \delta[w])$
146
                    \EndFor
147
                    \If{$w \neq s$}
148
                        $c_B[w] \leftarrow c_B[w] + \delta[w] + h$
149
                    \EndIf
150
                \EndWhile
151
            \EndProcedure
152
        \end{algorithmic}
153
    \end{algorithm}
154

  
155
    \begin{figure}[h]
156
            \caption{Comparison between 3 different accumulation functions \ref{accumulation_endpoints}, \ref{accumulation_targets}, \ref{accumulation_heuristic}}
157
            \label{fig:comparison_including_either_source_target}
158
            \includegraphics[]{comparison_including_either_source_target.eps}
159
    \end{figure}
160

  
161
\section{The BC inter}
162
Lemma 4.2 in \cite{PuzisZEDB12} shows that the BC for articulation points are the sum of BC in each bi-connected components, subtracted by the \texttt{BC inter}. However, when I subtract the \texttt{BC inter} from the \texttt{BC sum}, the results are not meaningful as shown in figure \ref{fig:substracted_by_bc_inter} and \ref{fig:not_substracted_by_bc_inter}
163

  
164
    \begin{figure}[h]
165
            \caption{Heuristic BC is NOT subtracted by BC inter}
166
            \label{fig:not_substracted_by_bc_inter}
167
            \includegraphics[]{feb10_bc_inter.eps}
168
    \end{figure}
169

  
170
    \begin{figure}[h]
171
            \caption{Heuristic BC is subtracted by BC inter}
172
            \label{fig:substracted_by_bc_inter}
173
            \includegraphics[]{feb10_subtracted_by_bc_inter.eps}
174
    \end{figure}
175

  
176
\clearpage
177

  
178
\bibliography{references}{}
179
\bibliographystyle{plain}
180

  
181
\end{document}
latex/report_feb_16.tex
1
\documentclass[12pt]{article}
2
% This first part of the file is called the PREAMBLE. It includes
3
% customizations and command definitions. The preamble is everything
4
% between \documentclass and \begin{document}.
5

  
6
\usepackage[margin=1in]{geometry}  % set the margins to 1in on all sides
7
\usepackage{graphicx}              % to include figures
8
\graphicspath{ {report_images/} }       % '/' is needed
9
\usepackage{epstopdf}              % for the .ps image
10
\epstopdfsetup{update}
11
\DeclareGraphicsExtensions{.eps}
12
\epstopdfDeclareGraphicsRule{.eps}{pdf}{.pdf}{ps2pdf -dEPSCrop -dNOSAFER #1 \OutputFile}
13
\usepackage[noabbrev,capitalise]{cleveref}
14
\usepackage{amsmath}               % great math stuff
15
\usepackage{amsfonts}              % for blackboard bold, etc
16
\usepackage{amsthm}                % better theorem environments
17
\usepackage{listings}              % to add code
18
\lstset{language=Java}
19
\renewcommand{\lstlistingname}{Code} % change "Listing 1.1" to "Code 1.1"
20

  
21
\usepackage[utf8]{inputenc}
22
\usepackage{color}
23

  
24
\usepackage{cite}
25

  
26
\usepackage[colorlinks]{hyperref}       % from http://tex.stackexchange.com/questions/3568/how-does-one-typeset-a-url
27
\hypersetup{citecolor=green}
28
\hypersetup{linkcolor=red}
29
\hypersetup{urlcolor=blue}
30
\usepackage{cleveref}
31

  
32
\definecolor{codegreen}{rgb}{0,0.6,0}
33
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
34
\definecolor{codepurple}{rgb}{0.58,0,0.82}
35
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
36

  
37
\lstdefinestyle{mystyle}{
38
    backgroundcolor=\color{backcolour},
39
    commentstyle=\color{codegreen},
40
    keywordstyle=\color{magenta},
41
    numberstyle=\tiny\color{codegray},
42
    stringstyle=\color{codepurple},
43
    basicstyle=\footnotesize,
44
    breakatwhitespace=false,
45
    breaklines=true,
46
    captionpos=b,
47
    keepspaces=true,
48
    numbers=left,
49
    numbersep=5pt,
50
    showspaces=false,
51
    showstringspaces=false,
52
    showtabs=false,
53
    tabsize=2
54
}
55

  
56
\lstset{style=mystyle}
57
\DeclareMathOperator{\id}{id}
58

  
59
\newcommand{\bd}[1]{\mathbf{#1}}  % for bolding symbols
60
\newcommand{\RR}{\mathbb{R}}      % for Real numbers
61
\newcommand{\ZZ}{\mathbb{Z}}      % for Integers
62
\newcommand{\col}[1]{\left[\begin{matrix} #1 \end{matrix} \right]}
63
\newcommand{\comb}[2]{\binom{#1^2 + #2^2}{#1+#2}}
64

  
65
\usepackage[T1]{fontenc}
66
\AtBeginDocument{%
67
  \begingroup\lccode`~=`_%
68
  \lowercase{\endgroup\let~}_%
69
  \catcode`_=12
70
}
71

  
72
\usepackage{booktabs} % To thicken table lines
73

  
74
\usepackage{algorithm}
75
\usepackage[noend]{algpseudocode} % For pseudocode
76

  
77
\begin{document}
78

  
79
\title{Thesis - Report Feb 10 - Heuristic Betweenness Centrality for Weighted Graph}
80

  
81
\author{Quynh Nguyen - DISI - University of Trento}
82

  
83
\maketitle
84
\clearpage
85

  
86
\section{Introduction}
87
    \subsection{Notation}
88
        \textbf{BBC}: the score obtained by Brandes Betweenness Centrality
89

  
90
        \textbf{BBCT}: the score obtained by Brandes BC with the inclusion of targets
91

  
92
        \textbf{HBCU}: the heuristic way to obtain BC score, for unweighted graph
93

  
94
        \textbf{HBCW}: the heuristic way to obtain BC score, for weighted graph
95

  
96
    \subsection{Dataset}
97
        There are 5 datasets in total:
98

  
99
        \begin{itemize}
100
            \item Unweighted graphs
101
            \begin{itemize}
102
                \item \emph{simple}: this is the graph getting from paper \cite{PuzisZEDB12}
103
                \item \emph{ninux_unweighted_connected}: all the vertices and edges are the same as \emph{ninux_30_1}, but the costs for all edges are 1. It's
104
            \end{itemize}
105
            \item Weighted graphs
106
            \begin{itemize}
107
                \item \emph{ninux_30_1}
108
                \item \emph{olsr-netjson}
109
                \item \emph{jsoninfo_topo}
110
            \end{itemize}
111
        \end{itemize}
112

  
113
    \subsection{Comparison between BBC, BBCT, HBCU}
114
        We have BBC $\sim$ HBCU, there are constant difference between the scores obtained by these 2 methods.
115

  
116
        And we have BBCT = HBCU. See \ref{fig:feb16_jsoninfo_topo_unweighted}
117

  
118
        \begin{figure}[h]
119
            \caption{BBCT \& HBCU for jsoninfo_topo. Their results are the same}
120
            \label{fig:feb16_jsoninfo_topo_unweighted}
121
            \includegraphics[]{feb16_jsoninfo_topo_unweighted.eps}
122
        \end{figure}
123

  
124
    \subsection{Purpose}
125
        This report will
126
        \begin{itemize}
127
             \item Show how HBCW is obtained
128
             \item Comparing HBCU and HBCW
129
         \end{itemize}
130

  
131
\section{HBC for weighted graph}
132
    \subsection{Method}
133
        When calculating the BC for each bi-connected component, \emph{weight_map} is included. As a result, HBCW will take into account the weight of each edge when calculating the number of shortest paths $\sigma$. And the $\sigma$ will affect the final BC score.
134

  
135
    \subsection{Result}
136
        For \textbf{unweighted graph}, BBCT = HBCW.
137

  
138
        For \textbf{weighted graph}, BBCT = HBCW with these dataset:
139
        \begin{itemize}
140
            \item \emph{ninux_30_1}. See \ref{fig:feb16_ninux_30_1_weighted}
141
            \item \emph{olsr-netjson}
142
        \end{itemize}
143

  
144
        And BBCT != HBCW in the dataset \emph{jsoninfo_topo}. See \ref{fig:feb16_jsoninfo_topo_weighted}. Compare to the result obtained by HBCU in \ref{fig:feb16_jsoninfo_topo_unweighted}
145

  
146
        \begin{figure}[h]
147
                \caption{BBCT \& HBCW for ninux_30_1}
148
                \label{fig:feb16_ninux_30_1_weighted}
149
                \includegraphics[]{feb16_ninux_30_1_weighted.eps}
150
        \end{figure}
151
        \begin{figure}[h]
152
                \caption{BBCT \& HBCW for jsoninfo_topo. Their results are different}
153
                \label{fig:feb16_jsoninfo_topo_weighted}
154
                \includegraphics[]{feb16_jsoninfo_topo_weighted.eps}
155
        \end{figure}
156

  
157
\clearpage
158
\bibliography{references}{}
159
\bibliographystyle{plain}
160

  
161
\end{document}
latex/report_images/comparison_including_either_source_target.eps
1
%!PS-Adobe-2.0 EPSF-2.0
2
%%Title: ./output/centrality_for_edge_list.pdf
3
%%Creator: gnuplot 4.6 patchlevel 4
4
%%CreationDate: Wed Feb 10 11:11:45 2016
5
%%DocumentFonts: (atend)
6
%%BoundingBox: 50 50 410 302
7
%%EndComments
8
%%BeginProlog
9
/gnudict 256 dict def
10
gnudict begin
11
%
12
% The following true/false flags may be edited by hand if desired.
13
% The unit line width and grayscale image gamma correction may also be changed.
14
%
15
/Color true def
16
/Blacktext false def
17
/Solid false def
18
/Dashlength 1 def
19
/Landscape false def
20
/Level1 false def
21
/Rounded false def
22
/ClipToBoundingBox false def
23
/SuppressPDFMark false def
24
/TransparentPatterns false def
25
/gnulinewidth 5.000 def
26
/userlinewidth gnulinewidth def
27
/Gamma 1.0 def
28
/BackgroundColor {-1.000 -1.000 -1.000} def
29
%
30
/vshift -46 def
31
/dl1 {
32
  10.0 Dashlength mul mul
33
  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
34
} def
35
/dl2 {
36
  10.0 Dashlength mul mul
37
  Rounded { currentlinewidth 0.75 mul add } if
38
} def
39
/hpt_ 31.5 def
40
/vpt_ 31.5 def
41
/hpt hpt_ def
42
/vpt vpt_ def
43
/doclip {
44
  ClipToBoundingBox {
45
    newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath
46
    clip
47
  } if
48
} def
49
%
50
% Gnuplot Prolog Version 4.6 (September 2012)
51
%
52
%/SuppressPDFMark true def
53
%
54
/M {moveto} bind def
55
/L {lineto} bind def
56
/R {rmoveto} bind def
57
/V {rlineto} bind def
58
/N {newpath moveto} bind def
59
/Z {closepath} bind def
60
/C {setrgbcolor} bind def
61
/f {rlineto fill} bind def
62
/g {setgray} bind def
63
/Gshow {show} def   % May be redefined later in the file to support UTF-8
64
/vpt2 vpt 2 mul def
65
/hpt2 hpt 2 mul def
66
/Lshow {currentpoint stroke M 0 vshift R 
67
	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
68
/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
69
	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
70
/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
71
	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
72
/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
73
  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
74
/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
75
 {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
76
/BL {stroke userlinewidth 2 mul setlinewidth
77
	Rounded {1 setlinejoin 1 setlinecap} if} def
78
/AL {stroke userlinewidth 2 div setlinewidth
79
	Rounded {1 setlinejoin 1 setlinecap} if} def
80
/UL {dup gnulinewidth mul /userlinewidth exch def
81
	dup 1 lt {pop 1} if 10 mul /udl exch def} def
82
/PL {stroke userlinewidth setlinewidth
83
	Rounded {1 setlinejoin 1 setlinecap} if} def
84
3.8 setmiterlimit
85
% Default Line colors
86
/LCw {1 1 1} def
87
/LCb {0 0 0} def
88
/LCa {0 0 0} def
89
/LC0 {1 0 0} def
90
/LC1 {0 1 0} def
91
/LC2 {0 0 1} def
92
/LC3 {1 0 1} def
93
/LC4 {0 1 1} def
94
/LC5 {1 1 0} def
95
/LC6 {0 0 0} def
96
/LC7 {1 0.3 0} def
97
/LC8 {0.5 0.5 0.5} def
98
% Default Line Types
99
/LTw {PL [] 1 setgray} def
100
/LTb {BL [] LCb DL} def
101
/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
102
/LT0 {PL [] LC0 DL} def
103
/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
104
/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
105
/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
106
/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
107
/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
108
/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
109
/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
110
/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
111
/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
112
/Dia {stroke [] 0 setdash 2 copy vpt add M
113
  hpt neg vpt neg V hpt vpt neg V
114
  hpt vpt V hpt neg vpt V closepath stroke
115
  Pnt} def
116
/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
117
  currentpoint stroke M
118
  hpt neg vpt neg R hpt2 0 V stroke
119
 } def
120
/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
121
  0 vpt2 neg V hpt2 0 V 0 vpt2 V
122
  hpt2 neg 0 V closepath stroke
123
  Pnt} def
124
/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
125
  hpt2 vpt2 neg V currentpoint stroke M
126
  hpt2 neg 0 R hpt2 vpt2 V stroke} def
127
/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
128
  hpt neg vpt -1.62 mul V
129
  hpt 2 mul 0 V
130
  hpt neg vpt 1.62 mul V closepath stroke
131
  Pnt} def
132
/Star {2 copy Pls Crs} def
133
/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
134
  0 vpt2 neg V hpt2 0 V 0 vpt2 V
135
  hpt2 neg 0 V closepath fill} def
136
/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
137
  hpt neg vpt -1.62 mul V
138
  hpt 2 mul 0 V
139
  hpt neg vpt 1.62 mul V closepath fill} def
140
/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
141
  hpt neg vpt 1.62 mul V
142
  hpt 2 mul 0 V
143
  hpt neg vpt -1.62 mul V closepath stroke
144
  Pnt} def
145
/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
146
  hpt neg vpt 1.62 mul V
147
  hpt 2 mul 0 V
148
  hpt neg vpt -1.62 mul V closepath fill} def
149
/DiaF {stroke [] 0 setdash vpt add M
150
  hpt neg vpt neg V hpt vpt neg V
151
  hpt vpt V hpt neg vpt V closepath fill} def
152
/Pent {stroke [] 0 setdash 2 copy gsave
153
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
154
  closepath stroke grestore Pnt} def
155
/PentF {stroke [] 0 setdash gsave
156
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
157
  closepath fill grestore} def
158
/Circle {stroke [] 0 setdash 2 copy
159
  hpt 0 360 arc stroke Pnt} def
160
/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
161
/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
162
/C1 {BL [] 0 setdash 2 copy moveto
163
	2 copy vpt 0 90 arc closepath fill
164
	vpt 0 360 arc closepath} bind def
165
/C2 {BL [] 0 setdash 2 copy moveto
166
	2 copy vpt 90 180 arc closepath fill
167
	vpt 0 360 arc closepath} bind def
168
/C3 {BL [] 0 setdash 2 copy moveto
169
	2 copy vpt 0 180 arc closepath fill
170
	vpt 0 360 arc closepath} bind def
171
/C4 {BL [] 0 setdash 2 copy moveto
172
	2 copy vpt 180 270 arc closepath fill
173
	vpt 0 360 arc closepath} bind def
174
/C5 {BL [] 0 setdash 2 copy moveto
175
	2 copy vpt 0 90 arc
176
	2 copy moveto
177
	2 copy vpt 180 270 arc closepath fill
178
	vpt 0 360 arc} bind def
179
/C6 {BL [] 0 setdash 2 copy moveto
180
	2 copy vpt 90 270 arc closepath fill
181
	vpt 0 360 arc closepath} bind def
182
/C7 {BL [] 0 setdash 2 copy moveto
183
	2 copy vpt 0 270 arc closepath fill
184
	vpt 0 360 arc closepath} bind def
185
/C8 {BL [] 0 setdash 2 copy moveto
186
	2 copy vpt 270 360 arc closepath fill
187
	vpt 0 360 arc closepath} bind def
188
/C9 {BL [] 0 setdash 2 copy moveto
189
	2 copy vpt 270 450 arc closepath fill
190
	vpt 0 360 arc closepath} bind def
191
/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
192
	2 copy moveto
193
	2 copy vpt 90 180 arc closepath fill
194
	vpt 0 360 arc closepath} bind def
195
/C11 {BL [] 0 setdash 2 copy moveto
196
	2 copy vpt 0 180 arc closepath fill
197
	2 copy moveto
198
	2 copy vpt 270 360 arc closepath fill
199
	vpt 0 360 arc closepath} bind def
200
/C12 {BL [] 0 setdash 2 copy moveto
201
	2 copy vpt 180 360 arc closepath fill
202
	vpt 0 360 arc closepath} bind def
203
/C13 {BL [] 0 setdash 2 copy moveto
204
	2 copy vpt 0 90 arc closepath fill
205
	2 copy moveto
206
	2 copy vpt 180 360 arc closepath fill
207
	vpt 0 360 arc closepath} bind def
208
/C14 {BL [] 0 setdash 2 copy moveto
209
	2 copy vpt 90 360 arc closepath fill
210
	vpt 0 360 arc} bind def
211
/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
212
	vpt 0 360 arc closepath} bind def
213
/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
214
	neg 0 rlineto closepath} bind def
215
/Square {dup Rec} bind def
216
/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
217
/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
218
/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
219
/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
220
/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
221
/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
222
/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
223
	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
224
/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
225
/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
226
	2 copy vpt Square fill Bsquare} bind def
227
/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
228
/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
229
/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
230
	Bsquare} bind def
231
/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
232
	Bsquare} bind def
233
/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
234
/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
235
	2 copy vpt Square fill Bsquare} bind def
236
/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
237
	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
238
/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
239
/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
240
/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
241
/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
242
/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
243
/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
244
/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
245
/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
246
/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
247
/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
248
/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
249
/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
250
/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
251
/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
252
/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
253
/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
254
/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
255
/DiaE {stroke [] 0 setdash vpt add M
256
  hpt neg vpt neg V hpt vpt neg V
257
  hpt vpt V hpt neg vpt V closepath stroke} def
258
/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
259
  0 vpt2 neg V hpt2 0 V 0 vpt2 V
260
  hpt2 neg 0 V closepath stroke} def
261
/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
262
  hpt neg vpt -1.62 mul V
263
  hpt 2 mul 0 V
264
  hpt neg vpt 1.62 mul V closepath stroke} def
265
/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
266
  hpt neg vpt 1.62 mul V
267
  hpt 2 mul 0 V
268
  hpt neg vpt -1.62 mul V closepath stroke} def
269
/PentE {stroke [] 0 setdash gsave
270
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
271
  closepath stroke grestore} def
272
/CircE {stroke [] 0 setdash 
273
  hpt 0 360 arc stroke} def
274
/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
275
/DiaW {stroke [] 0 setdash vpt add M
276
  hpt neg vpt neg V hpt vpt neg V
277
  hpt vpt V hpt neg vpt V Opaque stroke} def
278
/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
279
  0 vpt2 neg V hpt2 0 V 0 vpt2 V
280
  hpt2 neg 0 V Opaque stroke} def
281
/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
282
  hpt neg vpt -1.62 mul V
283
  hpt 2 mul 0 V
284
  hpt neg vpt 1.62 mul V Opaque stroke} def
285
/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
286
  hpt neg vpt 1.62 mul V
287
  hpt 2 mul 0 V
288
  hpt neg vpt -1.62 mul V Opaque stroke} def
289
/PentW {stroke [] 0 setdash gsave
290
  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
291
  Opaque stroke grestore} def
292
/CircW {stroke [] 0 setdash 
293
  hpt 0 360 arc Opaque stroke} def
294
/BoxFill {gsave Rec 1 setgray fill grestore} def
295
/Density {
296
  /Fillden exch def
297
  currentrgbcolor
298
  /ColB exch def /ColG exch def /ColR exch def
299
  /ColR ColR Fillden mul Fillden sub 1 add def
300
  /ColG ColG Fillden mul Fillden sub 1 add def
301
  /ColB ColB Fillden mul Fillden sub 1 add def
302
  ColR ColG ColB setrgbcolor} def
303
/BoxColFill {gsave Rec PolyFill} def
304
/PolyFill {gsave Density fill grestore grestore} def
305
/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
306
%
307
% PostScript Level 1 Pattern Fill routine for rectangles
308
% Usage: x y w h s a XX PatternFill
309
%	x,y = lower left corner of box to be filled
310
%	w,h = width and height of box
311
%	  a = angle in degrees between lines and x-axis
312
%	 XX = 0/1 for no/yes cross-hatch
313
%
314
/PatternFill {gsave /PFa [ 9 2 roll ] def
315
  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
316
  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
317
  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
318
  clip
319
  currentlinewidth 0.5 mul setlinewidth
320
  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
321
  0 0 M PFa 5 get rotate PFs -2 div dup translate
322
  0 1 PFs PFa 4 get div 1 add floor cvi
323
	{PFa 4 get mul 0 M 0 PFs V} for
324
  0 PFa 6 get ne {
325
	0 1 PFs PFa 4 get div 1 add floor cvi
326
	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
327
 } if
328
  stroke grestore} def
329
%
330
/languagelevel where
331
 {pop languagelevel} {1} ifelse
332
 2 lt
333
	{/InterpretLevel1 true def}
334
	{/InterpretLevel1 Level1 def}
335
 ifelse
336
%
337
% PostScript level 2 pattern fill definitions
338
%
339
/Level2PatternFill {
340
/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
341
	bind def
342
/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
343
<< Tile8x8
344
 /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
345
>> matrix makepattern
346
/Pat1 exch def
347
<< Tile8x8
348
 /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
349
	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
350
>> matrix makepattern
351
/Pat2 exch def
352
<< Tile8x8
353
 /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
354
	8 8 L 8 0 L 0 0 L fill}
355
>> matrix makepattern
356
/Pat3 exch def
357
<< Tile8x8
358
 /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
359
	0 12 M 12 0 L stroke}
360
>> matrix makepattern
361
/Pat4 exch def
362
<< Tile8x8
363
 /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
364
	0 -4 M 12 8 L stroke}
365
>> matrix makepattern
366
/Pat5 exch def
367
<< Tile8x8
368
 /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
369
	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
370
>> matrix makepattern
371
/Pat6 exch def
372
<< Tile8x8
373
 /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
374
	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
375
>> matrix makepattern
376
/Pat7 exch def
377
<< Tile8x8
378
 /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
379
	12 0 M -4 8 L 12 4 M 0 10 L stroke}
380
>> matrix makepattern
381
/Pat8 exch def
382
<< Tile8x8
383
 /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
384
	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
385
>> matrix makepattern
386
/Pat9 exch def
387
/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
388
/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
389
/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
390
/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
391
/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
392
/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
393
/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
394
} def
395
%
396
%
397
%End of PostScript Level 2 code
398
%
399
/PatternBgnd {
400
  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
401
} def
402
%
403
% Substitute for Level 2 pattern fill codes with
404
% grayscale if Level 2 support is not selected.
405
%
406
/Level1PatternFill {
407
/Pattern1 {0.250 Density} bind def
408
/Pattern2 {0.500 Density} bind def
409
/Pattern3 {0.750 Density} bind def
410
/Pattern4 {0.125 Density} bind def
411
/Pattern5 {0.375 Density} bind def
412
/Pattern6 {0.625 Density} bind def
413
/Pattern7 {0.875 Density} bind def
414
} def
415
%
416
% Now test for support of Level 2 code
417
%
418
Level1 {Level1PatternFill} {Level2PatternFill} ifelse
419
%
420
/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
421
dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
422
currentdict end definefont pop
423
/MFshow {
424
   { dup 5 get 3 ge
425
     { 5 get 3 eq {gsave} {grestore} ifelse }
426
     {dup dup 0 get findfont exch 1 get scalefont setfont
427
     [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
428
     get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
429
     {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
430
     get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
431
     dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
432
     show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
433
     pop aload pop M} ifelse }ifelse }ifelse }
434
     ifelse }
435
   forall} def
436
/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
437
/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
438
 {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
439
     6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
440
/MLshow { currentpoint stroke M
441
  0 exch R
442
  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
443
/MRshow { currentpoint stroke M
444
  exch dup MFwidth neg 3 -1 roll R
445
  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
446
/MCshow { currentpoint stroke M
447
  exch dup MFwidth -2 div 3 -1 roll R
448
  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
449
/XYsave    { [( ) 1 2 true false 3 ()] } bind def
450
/XYrestore { [( ) 1 2 true false 4 ()] } bind def
451
Level1 SuppressPDFMark or 
452
{} {
453
/SDict 10 dict def
454
systemdict /pdfmark known not {
455
  userdict /pdfmark systemdict /cleartomark get put
456
} if
457
SDict begin [
458
  /Title (./output/centrality_for_edge_list.pdf)
459
  /Subject (gnuplot plot)
460
  /Creator (gnuplot 4.6 patchlevel 4)
461
  /Author (quynh)
462
%  /Producer (gnuplot)
463
%  /Keywords ()
464
  /CreationDate (Wed Feb 10 11:11:45 2016)
465
  /DOCINFO pdfmark
466
end
467
} ifelse
468
end
469
%%EndProlog
470
%%Page: 1 1
471
gnudict begin
472
gsave
473
doclip
474
50 50 translate
475
0.050 0.050 scale
476
0 setgray
477
newpath
478
(Helvetica) findfont 140 scalefont setfont
479
BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {BackgroundColor C 1.000 0 0 7200.00 5040.00 BoxColFill} if
480
1.000 UL
481
LTb
482
LCb setrgbcolor
483
770 448 M
484
63 0 V
485
6114 0 R
486
-63 0 V
487
stroke
488
686 448 M
489
[ [(Helvetica) 140.0 0.0 true true 0 ( 0)]
490
] -46.7 MRshow
491
1.000 UL
492
LTb
493
LCb setrgbcolor
494
770 1044 M
495
63 0 V
496
6114 0 R
497
-63 0 V
498
stroke
499
686 1044 M
500
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.05)]
501
] -46.7 MRshow
502
1.000 UL
503
LTb
504
LCb setrgbcolor
505
770 1640 M
506
63 0 V
507
6114 0 R
508
-63 0 V
509
stroke
510
686 1640 M
511
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.1)]
512
] -46.7 MRshow
513
1.000 UL
514
LTb
515
LCb setrgbcolor
516
770 2236 M
517
63 0 V
518
6114 0 R
519
-63 0 V
520
stroke
521
686 2236 M
522
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.15)]
523
] -46.7 MRshow
524
1.000 UL
525
LTb
526
LCb setrgbcolor
527
770 2831 M
528
63 0 V
529
6114 0 R
530
-63 0 V
531
stroke
532
686 2831 M
533
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.2)]
534
] -46.7 MRshow
535
1.000 UL
536
LTb
537
LCb setrgbcolor
538
770 3427 M
539
63 0 V
540
6114 0 R
541
-63 0 V
542
stroke
543
686 3427 M
544
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.25)]
545
] -46.7 MRshow
546
1.000 UL
547
LTb
548
LCb setrgbcolor
549
770 4023 M
550
63 0 V
551
6114 0 R
552
-63 0 V
553
stroke
554
686 4023 M
555
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.3)]
556
] -46.7 MRshow
557
1.000 UL
558
LTb
559
LCb setrgbcolor
560
770 4619 M
561
63 0 V
562
6114 0 R
563
-63 0 V
564
stroke
565
686 4619 M
566
[ [(Helvetica) 140.0 0.0 true true 0 ( 0.35)]
567
] -46.7 MRshow
568
1.000 UL
569
LTb
570
LCb setrgbcolor
571
770 448 M
572
0 63 V
573
0 4108 R
574
0 -63 V
575
stroke
576
770 308 M
577
[ [(Helvetica) 140.0 0.0 true true 0 ( 0)]
578
] -46.7 MCshow
579
1.000 UL
580
LTb
581
LCb setrgbcolor
582
1652 448 M
583
0 63 V
584
0 4108 R
585
0 -63 V
586
stroke
587
1652 308 M
588
[ [(Helvetica) 140.0 0.0 true true 0 ( 20)]
589
] -46.7 MCshow
590
1.000 UL
591
LTb
592
LCb setrgbcolor
593
2535 448 M
594
0 63 V
595
0 4108 R
596
0 -63 V
597
stroke
598
2535 308 M
599
[ [(Helvetica) 140.0 0.0 true true 0 ( 40)]
600
] -46.7 MCshow
601
1.000 UL
602
LTb
603
LCb setrgbcolor
604
3417 448 M
605
0 63 V
606
0 4108 R
607
0 -63 V
608
stroke
609
3417 308 M
610
[ [(Helvetica) 140.0 0.0 true true 0 ( 60)]
611
] -46.7 MCshow
612
1.000 UL
613
LTb
614
LCb setrgbcolor
615
4300 448 M
616
0 63 V
617
0 4108 R
618
0 -63 V
619
stroke
620
4300 308 M
621
[ [(Helvetica) 140.0 0.0 true true 0 ( 80)]
622
] -46.7 MCshow
623
1.000 UL
624
LTb
625
LCb setrgbcolor
626
5182 448 M
627
0 63 V
628
0 4108 R
629
0 -63 V
630
stroke
631
5182 308 M
632
[ [(Helvetica) 140.0 0.0 true true 0 ( 100)]
633
] -46.7 MCshow
634
1.000 UL
635
LTb
636
LCb setrgbcolor
637
6065 448 M
638
0 63 V
639
0 4108 R
640
0 -63 V
641
stroke
642
6065 308 M
643
[ [(Helvetica) 140.0 0.0 true true 0 ( 120)]
644
] -46.7 MCshow
645
1.000 UL
646
LTb
647
LCb setrgbcolor
648
6947 448 M
649
0 63 V
650
0 4108 R
651
0 -63 V
652
stroke
653
6947 308 M
654
[ [(Helvetica) 140.0 0.0 true true 0 ( 140)]
655
] -46.7 MCshow
656
1.000 UL
657
LTb
658
LCb setrgbcolor
659
1.000 UL
660
LTb
661
LCb setrgbcolor
662
770 4619 N
663
770 448 L
664
6177 0 V
665
0 4171 V
666
-6177 0 V
667
Z stroke
668
LCb setrgbcolor
669
112 2533 M
670
currentpoint gsave translate -270 rotate 0 0 moveto
671
[ [(Helvetica) 140.0 0.0 true true 0 (Betweenness Centrality)]
672
] -46.7 MCshow
673
grestore
674
LTb
675
LCb setrgbcolor
676
3858 98 M
677
[ [(Helvetica) 140.0 0.0 true true 0 (Router \(each integer corresponds to one router\))]
678
] -46.7 MCshow
679
LTb
680
3858 4829 M
681
[ [(Helvetica) 140.0 0.0 true true 0 (Centrality for edge)]
682
[(Helvetica) 112.0 -42.0 true true 0 (l)]
683
[(Helvetica) 140.0 0.0 true true 0 (ist)]
684
] -32.7 MCshow
685
1.000 UP
686
1.000 UL
687
LTb
688
LCb setrgbcolor
689
% Begin plot #1
690
1.000 UP
691
1.000 UL
692
LT0
693
LC0 setrgbcolor
694
LCb setrgbcolor
695
6296 4486 M
696
[ [(Helvetica) 140.0 0.0 true true 0 (networkx \(include both source and target\))]
697
] -46.7 MRshow
698
LT0
699
770 640 BoxF
700
814 640 BoxF
701
858 640 BoxF
702
902 640 BoxF
703
946 640 BoxF
704
991 640 BoxF
705
1035 640 BoxF
706
1079 640 BoxF
707
1123 640 BoxF
708
1167 640 BoxF
709
1211 640 BoxF
710
1255 640 BoxF
711
1299 640 BoxF
712
1344 640 BoxF
713
1388 640 BoxF
714
1432 640 BoxF
715
1476 640 BoxF
716
1520 640 BoxF
717
1564 640 BoxF
718
1608 640 BoxF
719
1652 640 BoxF
720
1697 640 BoxF
721
1741 640 BoxF
722
1785 640 BoxF
723
1829 640 BoxF
724
1873 640 BoxF
725
1917 640 BoxF
726
1961 640 BoxF
727
2005 640 BoxF
728
2050 640 BoxF
729
2094 640 BoxF
730
2138 640 BoxF
731
2182 640 BoxF
732
2226 640 BoxF
733
2270 640 BoxF
734
2314 640 BoxF
735
2358 640 BoxF
736
2402 640 BoxF
737
2447 640 BoxF
738
2491 640 BoxF
739
2535 640 BoxF
740
2579 640 BoxF
741
2623 640 BoxF
742
2667 640 BoxF
743
2711 640 BoxF
744
2755 640 BoxF
745
2800 640 BoxF
746
2844 640 BoxF
747
2888 640 BoxF
748
2932 640 BoxF
749
2976 640 BoxF
750
3020 640 BoxF
751
3064 640 BoxF
752
3108 640 BoxF
753
3153 640 BoxF
754
3197 640 BoxF
755
3241 640 BoxF
756
3285 640 BoxF
757
3329 640 BoxF
758
3373 640 BoxF
759
3417 640 BoxF
760
3461 640 BoxF
761
3506 640 BoxF
762
3550 640 BoxF
763
3594 640 BoxF
764
3638 642 BoxF
765
3682 696 BoxF
766
3726 703 BoxF
767
3770 703 BoxF
768
3814 703 BoxF
769
3859 803 BoxF
770
3903 831 BoxF
771
3947 831 BoxF
772
3991 831 BoxF
773
4035 831 BoxF
774
4079 831 BoxF
775
4123 831 BoxF
776
4167 831 BoxF
777
4211 853 BoxF
778
4256 919 BoxF
779
4300 960 BoxF
780
4344 983 BoxF
781
4388 1025 BoxF
782
4432 1025 BoxF
783
4476 1037 BoxF
784
4520 1072 BoxF
785
4564 1092 BoxF
786
4609 1123 BoxF
787
4653 1150 BoxF
788
4697 1151 BoxF
789
4741 1206 BoxF
790
4785 1207 BoxF
791
4829 1207 BoxF
792
4873 1268 BoxF
793
4917 1289 BoxF
794
4962 1386 BoxF
795
5006 1394 BoxF
796
5050 1398 BoxF
797
5094 1419 BoxF
798
5138 1445 BoxF
799
5182 1456 BoxF
800
5226 1506 BoxF
801
5270 1565 BoxF
802
5315 1575 BoxF
803
5359 1656 BoxF
804
5403 1739 BoxF
805
5447 1803 BoxF
806
5491 1805 BoxF
807
5535 1867 BoxF
808
5579 1905 BoxF
809
5623 2034 BoxF
810
5667 2132 BoxF
811
5712 2144 BoxF
812
5756 2175 BoxF
813
5800 2184 BoxF
814
5844 2197 BoxF
815
5888 2311 BoxF
816
5932 2324 BoxF
817
5976 2364 BoxF
818
6020 2752 BoxF
819
6065 2834 BoxF
820
6109 3291 BoxF
821
6153 3468 BoxF
822
6197 3722 BoxF
823
6241 3860 BoxF
824
6285 4288 BoxF
825
6579 4486 BoxF
826
% End plot #1
827
% Begin plot #2
828
0.800 UP
829
1.000 UL
830
LT1
831
LC1 setrgbcolor
832
LCb setrgbcolor
833
6296 4346 M
834
[ [(Helvetica) 140.0 0.0 true true 0 (networkx \(include only target\))]
835
] -46.7 MRshow
836
LT1
837
770 545 CircleF
838
814 545 CircleF
839
858 545 CircleF
840
902 545 CircleF
841
946 545 CircleF
842
991 545 CircleF
843
1035 545 CircleF
844
1079 545 CircleF
845
1123 545 CircleF
846
1167 545 CircleF
847
1211 545 CircleF
848
1255 545 CircleF
849
1299 545 CircleF
850
1344 545 CircleF
851
1388 545 CircleF
852
1432 545 CircleF
853
1476 545 CircleF
854
1520 545 CircleF
855
1564 545 CircleF
856
1608 545 CircleF
857
1652 545 CircleF
858
1697 545 CircleF
859
1741 545 CircleF
860
1785 545 CircleF
861
1829 545 CircleF
862
1873 545 CircleF
863
1917 545 CircleF
864
1961 545 CircleF
865
2005 545 CircleF
866
2050 545 CircleF
867
2094 545 CircleF
868
2138 545 CircleF
869
2182 545 CircleF
870
2226 545 CircleF
871
2270 545 CircleF
872
2314 545 CircleF
873
2358 545 CircleF
874
2402 545 CircleF
875
2447 545 CircleF
876
2491 545 CircleF
877
2535 545 CircleF
878
2579 545 CircleF
879
2623 545 CircleF
880
2667 545 CircleF
881
2711 545 CircleF
882
2755 545 CircleF
883
2800 545 CircleF
884
2844 545 CircleF
885
2888 545 CircleF
886
2932 545 CircleF
887
2976 545 CircleF
888
3020 545 CircleF
889
3064 545 CircleF
890
3108 545 CircleF
891
3153 545 CircleF
892
3197 545 CircleF
893
3241 545 CircleF
894
3285 545 CircleF
895
3329 545 CircleF
896
3373 545 CircleF
897
3417 545 CircleF
898
3461 545 CircleF
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff