From 90c5d630943ca27e6ed19e347121d03ecaad5913 Mon Sep 17 00:00:00 2001
From: afanfakh <afanfakh@fanfakh.afanfakh>
Date: Tue, 10 May 2016 16:20:31 +0200
Subject: [PATCH] adding the ch3

---
 CHAPITRE_03.tex                               | 1718 ++++++++++++++++-
 fig/ch3/Makefile                              |   12 +
 fig/ch3/commtasks.pdf                         |  Bin 0 -> 12821 bytes
 fig/ch3/compare_EDP.pdf                       |  Bin 0 -> 18711 bytes
 fig/ch3/dist-eps-converted-to.pdf             |  Bin 0 -> 21493 bytes
 fig/ch3/dist.eps                              |  949 +++++++++
 fig/ch3/dist_mc-eps-converted-to.pdf          |  Bin 0 -> 7692 bytes
 fig/ch3/dist_mc.eps                           |  889 +++++++++
 fig/ch3/dist_pow-eps-converted-to.pdf         |  Bin 0 -> 7789 bytes
 fig/ch3/dist_pow.eps                          |  906 +++++++++
 fig/ch3/edp_dist-eps-converted-to.pdf         |  Bin 0 -> 13151 bytes
 fig/ch3/edp_dist.eps                          |  979 ++++++++++
 fig/ch3/edp_eng-eps-converted-to.pdf          |  Bin 0 -> 15214 bytes
 fig/ch3/edp_eng.eps                           |  949 +++++++++
 fig/ch3/edp_per-eps-converted-to.pdf          |  Bin 0 -> 13241 bytes
 fig/ch3/edp_per.eps                           |  897 +++++++++
 fig/ch3/energy-eps-converted-to.pdf           |  Bin 0 -> 9472 bytes
 fig/ch3/energy.eps                            |  868 +++++++++
 fig/ch3/eng_con-eps-converted-to.pdf          |  Bin 0 -> 8910 bytes
 fig/ch3/eng_con.eps                           |  961 +++++++++
 .../eng_con_scenarios-eps-converted-to.pdf    |  Bin 0 -> 9314 bytes
 fig/ch3/eng_con_scenarios.eps                 |  967 ++++++++++
 fig/ch3/eng_pow-eps-converted-to.pdf          |  Bin 0 -> 7951 bytes
 fig/ch3/eng_pow.eps                           |  932 +++++++++
 fig/ch3/eng_s-eps-converted-to.pdf            |  Bin 0 -> 24410 bytes
 fig/ch3/eng_s.eps                             |  949 +++++++++
 fig/ch3/eng_s_mc-eps-converted-to.pdf         |  Bin 0 -> 7889 bytes
 fig/ch3/eng_s_mc.eps                          |  889 +++++++++
 fig/ch3/grid5000-2.pdf                        |  Bin 0 -> 29146 bytes
 fig/ch3/grid5000.pdf                          |  Bin 0 -> 62669 bytes
 fig/ch3/heter-eps-converted-to.pdf            |  Bin 0 -> 6838 bytes
 fig/ch3/heter.eps                             |  659 +++++++
 fig/ch3/heter2-eps-converted-to.pdf           |  Bin 0 -> 7119 bytes
 fig/ch3/heter2.eps                            |  689 +++++++
 fig/ch3/homo.pdf                              |  Bin 0 -> 6975 bytes
 fig/ch3/init_freq.pdf                         |  Bin 0 -> 71016 bytes
 fig/ch3/per_d-eps-converted-to.pdf            |  Bin 0 -> 12915 bytes
 fig/ch3/per_d.eps                             |  897 +++++++++
 fig/ch3/per_d_mc-eps-converted-to.pdf         |  Bin 0 -> 7684 bytes
 fig/ch3/per_d_mc.eps                          |  845 ++++++++
 fig/ch3/per_deg-eps-converted-to.pdf          |  Bin 0 -> 9333 bytes
 fig/ch3/per_deg.eps                           |  820 ++++++++
 fig/ch3/per_pow-eps-converted-to.pdf          |  Bin 0 -> 7911 bytes
 fig/ch3/per_pow.eps                           |  828 ++++++++
 fig/ch3/power_consumption.pdf                 |  Bin 0 -> 42619 bytes
 fig/ch3/sen_comp.pdf                          |  Bin 0 -> 17551 bytes
 fig/ch3/start_freq.pdf                        |  Bin 0 -> 21938 bytes
 fig/ch3/three_scenarios.pdf                   |  Bin 0 -> 14890 bytes
 fig/ch3/three_scenarios2.pdf                  |  Bin 0 -> 14475 bytes
 fig/ch3/time-eps-converted-to.pdf             |  Bin 0 -> 8121 bytes
 fig/ch3/time.eps                              |  935 +++++++++
 fig/ch3/time_scenarios-eps-converted-to.pdf   |  Bin 0 -> 8725 bytes
 fig/ch3/time_scenarios.eps                    |  937 +++++++++
 my_reference.bib                              |   42 +-
 54 files changed, 19515 insertions(+), 2 deletions(-)
 create mode 100644 fig/ch3/Makefile
 create mode 100644 fig/ch3/commtasks.pdf
 create mode 100644 fig/ch3/compare_EDP.pdf
 create mode 100644 fig/ch3/dist-eps-converted-to.pdf
 create mode 100644 fig/ch3/dist.eps
 create mode 100644 fig/ch3/dist_mc-eps-converted-to.pdf
 create mode 100644 fig/ch3/dist_mc.eps
 create mode 100644 fig/ch3/dist_pow-eps-converted-to.pdf
 create mode 100644 fig/ch3/dist_pow.eps
 create mode 100644 fig/ch3/edp_dist-eps-converted-to.pdf
 create mode 100644 fig/ch3/edp_dist.eps
 create mode 100644 fig/ch3/edp_eng-eps-converted-to.pdf
 create mode 100644 fig/ch3/edp_eng.eps
 create mode 100644 fig/ch3/edp_per-eps-converted-to.pdf
 create mode 100644 fig/ch3/edp_per.eps
 create mode 100644 fig/ch3/energy-eps-converted-to.pdf
 create mode 100644 fig/ch3/energy.eps
 create mode 100644 fig/ch3/eng_con-eps-converted-to.pdf
 create mode 100644 fig/ch3/eng_con.eps
 create mode 100644 fig/ch3/eng_con_scenarios-eps-converted-to.pdf
 create mode 100644 fig/ch3/eng_con_scenarios.eps
 create mode 100644 fig/ch3/eng_pow-eps-converted-to.pdf
 create mode 100644 fig/ch3/eng_pow.eps
 create mode 100644 fig/ch3/eng_s-eps-converted-to.pdf
 create mode 100644 fig/ch3/eng_s.eps
 create mode 100644 fig/ch3/eng_s_mc-eps-converted-to.pdf
 create mode 100644 fig/ch3/eng_s_mc.eps
 create mode 100644 fig/ch3/grid5000-2.pdf
 create mode 100644 fig/ch3/grid5000.pdf
 create mode 100644 fig/ch3/heter-eps-converted-to.pdf
 create mode 100644 fig/ch3/heter.eps
 create mode 100644 fig/ch3/heter2-eps-converted-to.pdf
 create mode 100644 fig/ch3/heter2.eps
 create mode 100644 fig/ch3/homo.pdf
 create mode 100644 fig/ch3/init_freq.pdf
 create mode 100644 fig/ch3/per_d-eps-converted-to.pdf
 create mode 100644 fig/ch3/per_d.eps
 create mode 100644 fig/ch3/per_d_mc-eps-converted-to.pdf
 create mode 100644 fig/ch3/per_d_mc.eps
 create mode 100644 fig/ch3/per_deg-eps-converted-to.pdf
 create mode 100644 fig/ch3/per_deg.eps
 create mode 100644 fig/ch3/per_pow-eps-converted-to.pdf
 create mode 100644 fig/ch3/per_pow.eps
 create mode 100644 fig/ch3/power_consumption.pdf
 create mode 100644 fig/ch3/sen_comp.pdf
 create mode 100644 fig/ch3/start_freq.pdf
 create mode 100644 fig/ch3/three_scenarios.pdf
 create mode 100644 fig/ch3/three_scenarios2.pdf
 create mode 100644 fig/ch3/time-eps-converted-to.pdf
 create mode 100644 fig/ch3/time.eps
 create mode 100644 fig/ch3/time_scenarios-eps-converted-to.pdf
 create mode 100644 fig/ch3/time_scenarios.eps

diff --git a/CHAPITRE_03.tex b/CHAPITRE_03.tex
index 82e7fd0..39eb9a8 100644
--- a/CHAPITRE_03.tex
+++ b/CHAPITRE_03.tex
@@ -1,8 +1,1724 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%                          %%
-%%       CHAPTER 06         %%
+%%       CHAPTER 03         %%
 %%                          %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \chapter{Energy Optimization of Heterogeneous Platforms}
 \label{ch3}
 
+\newcommand{\CL}{\Xsub{C}{L}}
+\newcommand{\Dist}{\mathit{Dist}}
+\newcommand{\EdNew}{\Xsub{E}{dNew}}
+\newcommand{\Eind}{\Xsub{E}{ind}}
+\newcommand{\Enorm}{\Xsub{E}{Norm}}
+\newcommand{\Eoriginal}{\Xsub{E}{Original}}
+\newcommand{\Ereduced}{\Xsub{E}{Reduced}}
+\newcommand{\Es}{\Xsub{E}{S}}
+\newcommand{\Fdiff}[1][]{\Xsub{F}{diff}_{\!#1}}
+\newcommand{\Fmax}[1][]{\Xsub{F}{max}_{\fxheight{#1}}}
+\newcommand{\Fnew}{\Xsub{F}{new}}
+\newcommand{\Ileak}{\Xsub{I}{leak}}
+\newcommand{\Kdesign}{\Xsub{K}{design}}
+\newcommand{\MaxDist}{\mathit{Max}\Dist}
+\newcommand{\MinTcm}{\mathit{Min}\Tcm}
+\newcommand{\Ntrans}{\Xsub{N}{trans}}
+\newcommand{\Pd}[1][]{\Xsub{P}{d}_{\fxheight{#1}}}
+\newcommand{\PdNew}{\Xsub{P}{dNew}}
+\newcommand{\PdOld}{\Xsub{P}{dOld}}
+\newcommand{\Pnorm}{\Xsub{P}{Norm}}
+\newcommand{\Ps}[1][]{\Xsub{P}{s}_{\fxheight{#1}}}
+\newcommand{\Scp}[1][]{\Xsub{S}{cp}_{#1}}
+\newcommand{\Sopt}[1][]{\Xsub{S}{opt}_{#1}}
+\newcommand{\Tcm}[1][]{\Xsub{T}{cm}_{\fxheight{#1}}}
+\newcommand{\Tcp}[1][]{\Xsub{T}{cp}_{#1}}
+\newcommand{\TcpOld}[1][]{\Xsub{T}{cpOld}_{#1}}
+\newcommand{\Tnew}{\Xsub{T}{New}}
+\newcommand{\Told}{\Xsub{T}{Old}}
+\newcommand{\Pmax}[1][]{\Xsub{P}{max}_{\fxheight{#1}}}
+\newcommand{\Pidle}[1][]{\Xsub{P}{idle}_{\fxheight{#1}}}
+
+
+\renewcommand{\algorithmicdo}{\textbf{do}}
+\renewcommand{\algorithmicwhile}{\textbf{while}}
+\renewcommand{\algorithmicrequire}{\textbf{Require:}}
+\renewcommand{\algorithmicensure}{\textbf{Ensure:}}
+\renewcommand{\algorithmicend}{\textbf{end}}
+\renewcommand{\algorithmicif}{\textbf{if}}
+\renewcommand{\algorithmicthen}{\textbf{then}}
+
+\section{Introduction}
+\label{ch3:intro}
+
+
+  Computing platforms are consuming more and more energy due to the increasing
+  number of nodes composing them.  In the heterogeneous computing platform composed 
+  of multiple computing   nodes, each node is different in the computing power from 
+  the others.  Accordingly, the fast nodes have to waits to the slow ones to finish 
+  their works. The resulting waiting times is called the idle times that are increased 
+  proportionally to the increase in the heterogeneity between the computing nodes. 
+  This leads to a big waste in the computing power and thus the energy consumed by the fast nodes.   
+  To minimize the operating costs of these  platforms many techniques have been used. 
+  Dynamic voltage and   frequency  scaling (DVFS) is one of them. It reduces the frequency 
+  of a CPU to lower its energy consumption.  However, lowering the frequency of a CPU may 
+  increase the execution time of an application running on that processor.  Therefore,
+  the frequency that gives the best trade-off between the energy consumption and
+  the performance of an application must be selected.
+
+  In this chapter, two new online frequency selecting algorithms for heterogeneous local
+  cluster (heterogeneous CPUs)  and grid platform are presented.  
+  They select the frequencies that tray to give the best
+  trade-off between energy saving and performance degradation, for each node
+  computing the synchronous message passing iterative application. These algorithms have a small
+  overhead and work without training or profiling. They use new energy models
+  for  message passing iterative synchronous applications running on both the heterogeneous
+  local cluster and grid platform. The first proposed algorithm for a heterogeneous local 
+  cluster is evaluated on the SimGrid simulator while running the NAS parallel
+  benchmarks class C. The experiments conducted  over 8 heterogeneous nodes show that it reduces on 
+  average the energy consumption by  29.8\%  while limiting the performance degradation by 3.8\%.  
+  The second proposed algorithm for a grid platform is evaluated on the Grid5000 testbed 
+  platform  while running the NAS parallel benchmarks class D.
+  Its experiments on 16 nodes, distributed on three clusters, show that it reduces  on average the
+  energy consumption by 30\% while  the performance  is on average only degraded
+   by 3.2\%.  
+  Finally, both the two algorithms are compared to an  existing methods, the comparison 
+  results show that they outperform the latter in term of energy and performance trade-off. 
+
+
+This chapter is organized as follows: Section~\ref{ch3:relwork} presents some
+related works from other authors.  Section~\ref{ch3:1} presents the performance and energy 
+models of synchronous message passing programs running over a heterogeneous local cluster.
+It also describes the proposed frequencies selecting algorithm then the precision of the proposed algorithm is verified. 
+Section~\ref{ch3:2} presents the simulation results of applying the algorithm on the NAS parallel 
+benchmarks class C and executing them on a heterogeneous local cluster. It shows the results of running
+three different power scenarios and comparing them. Moreover, it also shows the
+comparison results between the proposed method and an existing method.
+Section~\ref{ch3:3} shows the energy and performance models in addition to the frequencies 
+selecting algorithm of synchronous message passing programs running over a grid platform.
+Section~\ref{ch3:4} presents the results of applying the algorithm on the 
+NAS parallel benchmarks class D and executing them on the Grid'5000 testbed. 
+It also evaluates the algorithm over multi-cores per node architectures and over three different power scenarios. Moreover, it shows the comparison results between the proposed method and an existing method.
+Finally, in Section~\ref{ch3:concl}  the chapter ends with a summary.
+
+\section{Related works}
+\label{ch3:relwork}
+
+DVFS is a technique used in modern processors to scale down both the voltage and
+the frequency of the CPU while computing, in order to reduce the energy
+consumption of the processor. DVFS is also allowed in GPUs to achieve the same
+goal. Reducing the frequency of a processor lowers its number of FLOPS and may
+degrade the performance of the application running on that processor, especially
+if it is compute bound. Therefore selecting the appropriate frequency for a
+processor to satisfy some objectives, while taking into account all the
+constraints, is not a trivial operation.  Many researchers used different
+strategies to tackle this problem. Some of them developed online methods that
+compute the new frequency while executing the application, such
+as~\cite{ref64,ref67}.
+Others used offline methods that may need to run the application and profile
+it before selecting the new frequency, such
+as~\cite{ref58,ref91}.
+The methods could be heuristics, exact or brute force methods that satisfy
+varied objectives such as energy reduction or performance. They also could be
+adapted to the execution's environment and the type of the application such as
+sequential, parallel or distributed architecture, homogeneous or heterogeneous
+platform, synchronous or asynchronous application, \dots{}
+
+In this chapter, we are interested in reducing energy for message passing
+iterative synchronous applications running over heterogeneous platforms.  Some
+works have already been done for such platforms and they can be classified into
+two types of heterogeneous platforms:
+\begin{itemize}
+\item the platform is composed of homogeneous GPUs and homogeneous CPUs.
+\item the platform is only composed of heterogeneous CPUs.
+\end{itemize}
+
+For the first type of platform, the computing intensive parallel tasks are
+executed on the GPUs and the rest are executed on the CPUs.  Luley et
+al.~\cite{ref68}, proposed a
+heterogeneous cluster composed of Intel Xeon CPUs and NVIDIA GPUs. Their main
+goal was to maximize the energy efficiency of the platform during computation by
+maximizing the number of FLOPS per watt generated.
+In~\cite{ref69}, Kai Ma et al. developed a scheduling algorithm that distributes  
+workloads proportional to
+the computing power of the nodes which could be a GPU or a CPU. All the tasks
+must be completed at the same time.  In~\cite{ref70},
+Rong et al. showed that a heterogeneous (GPUs and CPUs) cluster that enables
+DVFS gave better energy and performance efficiency than other clusters only
+composed of CPUs.
+
+The work presented in this chapter concerns the second type of platform, with
+heterogeneous CPUs.  Many methods were conceived to reduce the energy
+consumption of this type of platform.  Naveen et
+al.~\cite{ref71} developed a method that
+minimizes the value of $\mathit{energy}\times \mathit{delay}^2$ (the delay is
+the sum of slack times that happen during synchronous communications) by
+dynamically assigning new frequencies to the CPUs of the heterogeneous cluster.
+Lizhe et al.~\cite{ref72} proposed an
+algorithm that divides the executed tasks into two types: the critical and non
+critical tasks. The algorithm scales down the frequency of non critical tasks
+proportionally to their slack and communication times while limiting the
+performance degradation percentage to less than 10\%.
+In~\cite{ref73}, they developed a
+heterogeneous cluster composed of two types of Intel and AMD processors. They
+use a gradient method to predict the impact of DVFS operations on performance.
+In~\cite{ref74} and
+\cite{ref75}, the best
+frequencies for a specified heterogeneous cluster are selected offline using
+some heuristic.  Chen et
+al.~\cite{ref76} used a greedy dynamic
+programming approach to minimize the power consumption of heterogeneous servers
+while respecting given time constraints.  This approach had considerable
+overhead.  In contrast to the above described works, the work of this chapter presents the
+following contributions:
+\begin{enumerate}
+\item two new energy and two performance models for message passing iterative
+  synchronous applications running over a heterogeneous local cluster and grid platform. 
+  All the models take into account communication and slack times. The models can predict the
+  required energy and the execution time of the application.
+
+\item two new online frequencies selecting algorithms for heterogeneous
+  local cluster and grid platform. The algorithms have a very small overhead and do not need any
+  training or profiling. They use a new optimization function which
+  simultaneously maximizes the performance and minimizes the energy consumption
+  of a message passing iterative synchronous application.
+\end{enumerate}
+
+\section[The energy optimization of heterogeneous cluster]{The energy optimization of parallel iterative applications running over local heterogeneous 
+cluster}
+\label{ch3:1}
+
+\subsection{The execution time of message passing distributed iterative
+  applications on a heterogeneous local cluster}
+\label{ch3:1:1}
+In this section, we are interested in reducing the energy consumption of message
+passing distributed iterative synchronous applications running over
+heterogeneous local cluster. A heterogeneous local cluster is defined as a collection of
+heterogeneous computing nodes interconnected via a high speed homogeneous
+network. Therefore, each node has different characteristics such as computing
+power (FLOPS), energy consumption, CPU's frequency range, \dots{} but they all
+have the same network bandwidth and latency.
+
+\begin{figure}[h!]
+  \centering
+  \includegraphics[scale=0.8]{fig/ch3/commtasks}
+  \caption{Parallel tasks on a heterogeneous platform}
+  \label{fig:task-heter}
+\end{figure}
+
+The overall execution time of a distributed iterative synchronous application
+over a heterogeneous local cluster consists of the sum of the computation time and
+the communication time for every iteration on a node. However, due to the
+heterogeneous computation power of the computing nodes, slack times may occur
+when fast nodes have to wait, during synchronous communications, for the slower
+nodes to finish their computations (see Figure~\ref{fig:task-heter}).  Therefore, the
+overall execution time of the program is the execution time of the slowest task
+which has the highest computation time and no slack time.
+
+The frequency reduction process by applying DVFS operation can be expressed by the scaling
+factor S which is the ratio between  the maximum and the new frequency of a CPU
+as in (\ref{eq:s}).
+The execution time of a compute bound sequential program is linearly
+proportional to the frequency scaling factor $S$.  On the other hand, message
+passing distributed applications consist of two parts: computation and
+communication.  The execution time of the computation part is linearly
+proportional to the frequency scaling factor $S$ but the communication time is
+not affected by the scaling factor because the processors involved remain idle
+during the communications~\cite{ref53}.  The
+communication time for a task is the summation of periods of time that begin
+with an MPI call for sending or receiving a message until the message is
+synchronously sent or received.
+
+Since in a heterogeneous cluster each node has different characteristics,
+especially different frequency gears, when applying DVFS operations on these
+nodes, they may get different scaling factors represented by a scaling vector:
+$(S_1, S_2,\dots, S_N)$ where $S_i$ is the scaling factor of processor $i$. To
+be able to predict the execution time of message passing synchronous iterative
+applications running over a heterogeneous local cluster, for different vectors of
+scaling factors, the communication time and the computation time for all the
+tasks must be measured during the first iteration before applying any DVFS
+operation. Then the execution time for one iteration of the application with any
+vector of scaling factors can be predicted using (\ref{eq:perf_heter}).
+\begin{equation}
+  \label{eq:perf_heter}
+  \Tnew = \max_{i=1,2,\dots,N} ({\TcpOld[i]} \cdot S_{i}) +  \min_{i=1,2,\dots,N} (\Tcm[i])
+\end{equation}
+
+where $\TcpOld[i]$ is the computation time of processor $i$ during the first
+iteration.  The model computes the maximum computation time with
+scaling factor from each node added to the communication time of the slowest
+node. It means only the communication time without any slack time is taken into
+account.  Therefore, the execution time of the iterative application is equal to
+the execution time of one iteration as in (\ref{eq:perf_heter}) multiplied by the
+number of iterations of that application.
+
+This prediction model is developed from the model to predict the execution time
+of message passing distributed applications for homogeneous
+architectures presented in chapter \ref{ch2} section \ref{ch2:3}.  The execution time prediction model is
+used in the method to optimize both the energy consumption and the performance
+of iterative methods, which is presented in the following sections.
+
+\subsection{Energy model for heterogeneous local cluster}
+\label{ch3:1:2}
+In the chapter \ref{ch2}, the dynamic and the static  energy consumption of the  individual 
+processor is computed in \ref{eq:Edyn_new} and \ref{eq:Estatic_new} respectively. Then,
+the total energy consumption of the individual processor is the sum of these two metrics.  
+Therefore, the overall energy consumption for the parallel tasks over  parallel cluster 
+is the  summation of the individual energies consumed for all processors. 
+
+In the considered heterogeneous platform, each processor $i$ may have
+different dynamic and static powers, noted as $\Pd[i]$ and $\Ps[i]$
+respectively.  Therefore, even if the distributed message passing iterative
+application is load balanced, the computation time of each CPU $i$ noted
+$\Tcp[i]$ may be different and different frequency scaling factors may be
+computed in order to decrease the overall energy consumption of the application
+and reduce slack times.  The communication time of a processor $i$ is noted as
+$\Tcm[i]$ and could contain slack times when communicating with slower nodes,
+see Figure~\ref{fig:task-heter}.  Therefore, all nodes do not have equal
+communication times. While the dynamic energy is computed according to the
+frequency scaling factor and the dynamic power of each node as in
+(\ref{eq:Edyn_new}), the static energy is computed as the sum of the execution time
+of one iteration as in \ref{eq:perf_heter}  multiplied by the static power of each processor.  
+The overall energy consumption of a message passing distributed application executed over a
+heterogeneous cluster during one iteration is the summation of all dynamic and
+static energies for each processor.  It is computed as follows:
+\begin{equation}
+  \label{eq:energy-heter}
+ E = \sum_{i=1}^{N} {(S_i^{-2} \cdot \Pd[i] \cdot  \Tcp[i])} + 
+ \sum_{i=1}^{N} (\Ps[i] \cdot (\max_{i=1,2,\dots,N} (\Tcp[i] \cdot S_{i}) +
+  { \min_{i=1,2,\dots,N} (\Tcm[i]) ))}
+\end{equation}
+
+Reducing the frequencies of the processors according to the vector of scaling
+factors $(S_1, S_2,\dots, S_N)$ may degrade the performance of the application
+and thus, increase the static energy because the execution time is
+increased~\cite{ref78}. The overall energy consumption
+for the iterative application can be measured by measuring the energy
+consumption for one iteration as in (\ref{eq:energy-heter}) multiplied by the number
+of iterations of that application.
+
+\subsection{Optimization of both energy consumption and performance}
+\label{ch3:1:3}
+Using the lowest frequency for each processor does not necessarily give the most
+energy efficient execution of an application. Indeed, even though the dynamic
+power is reduced while scaling down the frequency of a processor, its
+computation power is proportionally decreased. Hence, the execution time might
+be drastically increased and during that time, dynamic and static powers are
+being consumed.  Therefore, it might cancel any gains achieved by scaling down
+the frequency of all nodes to the minimum and the overall energy consumption of
+the application might not be the optimal one.  It is not trivial to select the
+appropriate frequency scaling factor for each processor while considering the
+characteristics of each processor (computation power, range of frequencies,
+dynamic and static powers) and the task executed (computation/communication
+ratio). The aim being to reduce the overall energy consumption and to avoid
+increasing significantly the execution time.  In last chapter
+~\ref{ch2}, we proposed a method that selects the optimal
+frequency scaling factor for a homogeneous cluster executing a message passing
+iterative synchronous application while giving the best trade-off between the
+energy consumption and the performance for such applications.  In this section, we
+are interested in heterogeneous clusters as described above.  Due to the
+heterogeneity of the processors, a vector of scaling factors should be selected
+and it must give the best trade-off between energy consumption and performance.
+
+As described before, the  relation between the energy consumption and the execution time for an
+application is complex and nonlinear. Thus, to find the trade-off relation between the energy consumption in \ref{eq:energy-heter} and the performance in \ref{eq:perf_heter}  of the iterative message passing applications, first we need to normalized both of them as follows:
+
+
+\begin{equation}
+  \label{eq:enorm-heter}
+  \Enorm = \frac{\Ereduced}{\Eoriginal} 
+    = \frac{ \sum_{i=1}^{N}{(S_i^{-2} \cdot \Pd[i] \cdot  \Tcp[i])} +
+ \sum_{i=1}^{N} {(\Ps[i] \cdot \Tnew)}}{\sum_{i=1}^{N}{( \Pd[i] \cdot  \Tcp[i])} +
+ \sum_{i=1}^{N} {(\Ps[i] \cdot \Told)}}
+\end{equation}
+
+
+
+\begin{equation}
+  \label{eq:pnorm-heter}
+  \Pnorm = \frac{\Told}{\Tnew}
+          = \frac{\max_{i=1,2,\dots,N}{(\Tcp[i]+\Tcm[i])}}
+            { \max_{i=1,2,\dots,N} (\Tcp[i] \cdot S_{i}) + \min_{i=1,2,\dots,N} (\Tcm[i])}
+\end{equation}
+
+Therefore, the vector of frequency scaling factors $S_1,S_2,\dots,S_N$ of the heterogeneous 
+cluster reduce both the energy and the execution time simultaneously.  
+
+\begin{figure}[!t]
+  \centering
+    \includegraphics[width=.7\textwidth]{fig/ch3/heter}
+  \caption{The energy and performance relation in Heterogeneous cluster}
+  \label{fig:rel-heter}
+\end{figure}
+
+Then, the objective function can be modeled in order to find the maximum
+distance between the energy curve (\ref{eq:enorm-heter}) and the performance curve
+(\ref{eq:pnorm-heter}) over all available sets of scaling factors of the heterogeneous 
+computing cluster.  This represents the minimum energy consumption with minimum execution time (maximum
+performance) at the same time, see Figure~\ref{fig:rel-heter}. Then the objective function has the following form:
+\begin{equation}
+  \label{eq:max-heter}
+  \MaxDist =
+  \mathop{\max_{i=1,\dots F}}_{j=1,\dots,N}
+      (\overbrace{\Pnorm(S_{ij})}^{\text{Maximize}} -
+       \overbrace{\Enorm(S_{ij})}^{\text{Minimize}} )
+\end{equation}
+where $N$ is the number of nodes and $F$ is the number of available frequencies
+for each node.  Then, the optimal set of scaling factors that satisfies
+(\ref{eq:max-heter}) can be selected. 
+
+\subsection[The scaling algorithm for heterogeneous cluster]{The scaling factors selection algorithm for heterogeneous cluster }
+\label{ch3:1:4}
+
+
+\begin{algorithm}[h!]
+  \begin{algorithmic}[1]
+    % \footnotesize
+    \Require ~
+    %\begin{description}
+    \item[{$\Tcp[i]$}] array of all computation times for all nodes during one iteration and with highest frequency.
+    \item[{$\Tcm[i]$}] array of all communication times for all nodes during one iteration and with highest frequency.
+    \item[{$\Fmax[i]$}] array of the maximum frequencies for all nodes.
+    \item[{$\Pd[i]$}] array of the dynamic powers for all nodes.
+    \item[{$\Ps[i]$}] array of the static powers for all nodes.
+    \item[{$\Fdiff[i]$}] array of the differences between two successive frequencies for all nodes.
+    %\end{description}
+    \Ensure $\Sopt[1],\Sopt[2] \dots, \Sopt[N]$ is a vector of optimal scaling factors
+
+    \State $\Scp[i] \gets \frac{\max_{i=1,2,\dots,N}(\Tcp[i])}{\Tcp[i]} $
+    \State $F_{i} \gets  \frac{\Fmax[i]}{\Scp[i]},~{i=1,2,\cdots,N}$
+    \State Round the computed initial frequencies $F_i$ to the closest one available in each node.
+    \If{(not the first frequency)}
+          \State $F_i \gets F_i+\Fdiff[i],~i=1,\dots,N.$
+    \EndIf
+    \State $\Told \gets \max_{i=1,\dots,N} (\Tcp[i]+\Tcm[i])$
+    % \State $\Eoriginal \gets \sum_{i=1}^{N}{( \Pd[i] \cdot  \Tcp[i])} +\sum_{i=1}^{N} {(\Ps[i] \cdot \Told)}$
+    \State $\Eoriginal \gets \sum_{i=1}^{N}{( \Pd[i] \cdot  \Tcp[i] + \Ps[i] \cdot \Told)}$
+    \State $\Sopt[i] \gets 1,~i=1,\dots,N. $
+    \State $\Dist \gets 0 $
+    \While {(all nodes not reach their  minimum  frequency)}
+        \If{(not the last freq. \textbf{and} not the slowest node)}
+        \State $F_i \gets F_i - \Fdiff[i],~i=1,\dots,N.$
+        \State $S_i \gets \frac{\Fmax[i]}{F_i},~i=1,\dots,N.$
+        \EndIf
+       \State $\Tnew \gets  \max_{i=1,2,\dots,N} ({\TcpOld[i]} \cdot S_{i}) +  \min_{i=1,2,\dots,N} (\Tcm[i])$
+%       \State $\Ereduced \gets \sum_{i=1}^{N}{(S_i^{-2} \cdot \Pd[i] \cdot  \Tcp[i])} + \sum_{i=1}^{N} {(\Ps[i] \cdot \rlap{\Tnew)}} $
+       \State $\Ereduced \gets \sum_{i=1}^{N} {(S_i^{-2} \cdot \Pd[i] \cdot  \Tcp[i])} + 
+ \sum_{i=1}^{N} (\Ps[i] \cdot (\max_{i=1,2,\dots,N} (\Tcp[i] \cdot S_{i}) +
+  { \min_{i=1,2,\dots,N} (\Tcm[i]) ))} $
+       \State $\Pnorm \gets \frac{\Told}{\Tnew}$
+       \State $\Enorm\gets \frac{\Ereduced}{\Eoriginal}$
+      \If{$(\Pnorm - \Enorm > \Dist)$}
+        \State $\Sopt[i] \gets S_{i},~i=1,\dots,N. $
+        \State $\Dist \gets \Pnorm - \Enorm$
+      \EndIf
+    \EndWhile
+    \State  Return $\Sopt[1],\Sopt[2],\dots,\Sopt[N]$
+  \end{algorithmic}
+  \caption{Scaling factors selection algorithm for heterogeneous cluster}
+  \label{HSA}
+\end{algorithm}
+
+
+
+\begin{algorithm}[h!]
+  \begin{algorithmic}[1]
+    % \footnotesize
+    \For {$k=1$ to \textit{some iterations}}
+      \State Computations section.
+      \State Communications section.
+      \If {$(k=1)$}
+        \State Gather all times of computation and communication from each node.
+        \State Call Algorithm \ref{HSA}.
+        \State Compute the new frequencies from the returned optimal scaling factors.
+        \State Set the new frequencies to nodes.
+      \EndIf
+    \EndFor
+  \end{algorithmic}
+  \caption{DVFS algorithm of heterogeneous platform}
+  \label{dvfs-heter}
+\end{algorithm}
+
+
+
+In this section, Algorithm~\ref{HSA} is presented. It selects the frequency
+scaling factors vector that gives the best trade-off between minimizing the
+energy consumption and maximizing the performance of a message passing
+synchronous iterative application executed on a heterogeneous local cluster. It works
+online during the execution time of the iterative message passing program.  It
+uses information gathered during the first iteration such as the computation
+time and the communication time in one iteration for each node. The algorithm is
+executed after the first iteration and returns a vector of optimal frequency
+scaling factors that satisfies the objective function (\ref{eq:max-heter}). The
+program applies DVFS operations to change the frequencies of the CPUs according
+to the computed scaling factors.  This algorithm is called just once during the
+execution of the program. Algorithm~\ref{dvfs-heter} shows where and when the proposed
+scaling algorithm is called in the iterative MPI program.
+
+\begin{figure}[!t]
+  \centering
+  \includegraphics[scale=0.75]{fig/ch3/start_freq}
+  \caption{Selecting the initial frequencies in heterogeneous cluster}
+  \label{fig:st_freq-cluster}
+\end{figure}
+
+The nodes in a heterogeneous cluster have different computing powers, thus
+while executing message passing iterative synchronous applications, fast nodes
+have to wait for the slower ones to finish their computations before being able
+to synchronously communicate with them as in Figure~\ref{fig:task-heter}.  These
+periods are called idle or slack times.  The algorithm takes into account this
+problem and tries to reduce these slack times when selecting the frequency
+scaling factors vector. At first, it selects initial frequency scaling factors
+that increase the execution times of fast nodes and minimize the differences
+between the computation times of fast and slow nodes. The value of the initial
+frequency scaling factor for each node is inversely proportional to its
+computation time that was gathered from the first iteration. These initial
+frequency scaling factors are computed as a ratio between the computation time
+of the slowest node and the computation time of the node $i$ as follows:
+\begin{equation}
+  \label{eq:Scp}
+  \Scp[i] = \frac{\max_{i=1,2,\dots,N}(\Tcp[i])}{\Tcp[i]}
+\end{equation}
+Using the initial frequency scaling factors computed in (\ref{eq:Scp}), the
+algorithm computes the initial frequencies for all nodes as a ratio between the
+maximum frequency of node $i$ and the computation scaling factor $\Scp[i]$ as
+follows:
+\begin{equation}
+  \label{eq:Fint}
+  F_{i} = \frac{\Fmax[i]}{\Scp[i]},~{i=1,2,\dots,N}
+\end{equation}
+If the computed initial frequency for a node is not available in the gears of
+that node, it is replaced by the nearest available frequency.  In
+Figure~\ref{fig:st_freq-cluster}, the nodes are sorted by their computing power in
+ascending order and the frequencies of the faster nodes are scaled down
+according to the computed initial frequency scaling factors.  The resulting new
+frequencies are highlighted in Figure~\ref{fig:st_freq-cluster}.  This set of
+frequencies can be considered as a higher bound for the search space of the
+optimal vector of frequencies because selecting scaling factors higher
+than the higher bound will not improve the performance of the application and it
+will increase its overall energy consumption.  Therefore the algorithm that
+selects the frequency scaling factors starts the search method from these
+initial frequencies and takes a downward search direction toward lower
+frequencies. The algorithm iterates on all remaining frequencies, from the higher
+bound until all nodes reach their minimum frequencies, to compute their overall
+energy consumption and performance, and select the optimal frequency scaling
+factors vector. At each iteration the algorithm determines the slowest node
+according to the equation (\ref{eq:perf_heter}) and keeps its frequency unchanged,
+while it lowers the frequency of all other nodes by one gear.  The new overall
+energy consumption and execution time are computed according to the new scaling
+factors.  The optimal set of frequency scaling factors is the set that gives the
+highest distance according to the objective function (\ref{eq:max-heter}).
+
+Figure~\ref{fig:rel-heter} illustrate the normalized performance and
+consumed energy for an application running on a
+heterogeneous cluster  while increasing the scaling factors. It can
+be noticed that in a homogeneous cluster, as in the figure \ref{fig:rel} (a), 
+the search for the optimal scaling
+factor should start from the maximum frequency because the performance and the
+consumed energy decrease from the beginning of the plot. On the other hand, in
+the heterogeneous cluster the performance is maintained at the beginning of the
+plot even if the frequencies of the faster nodes decrease until the computing
+power of scaled down nodes are lower than the slowest node. In other words,
+until they reach the higher bound. It can also be noticed that the higher the
+difference between the faster nodes and the slower nodes is, the bigger the
+maximum distance between the energy curve and the performance curve is while the
+scaling factors are varying which results in bigger energy savings. 
+Finally, in a homogeneous platform the energy consumption is increased when the scaling factor is very high. 
+Indeed, the dynamic energy  saved  by reducing the frequency of the processor is compensated by the significant increase of the execution time and thus the increased of the static energy. On the other hand, in a heterogeneous platform this is not the case.
+
+\subsection{The evaluation of the proposed algorithm}
+\label{ch3:1:5}
+The precision of the proposed algorithm mainly depends on the execution time
+prediction model defined in (\ref{eq:perf_heter}) and the energy model computed by
+(\ref{eq:energy-heter}).  The energy model is also significantly dependent on the
+execution time model because the static energy is linearly related to the
+execution time and the dynamic energy is related to the computation time. So,
+all the works presented in this chapter are based on the execution time model. To
+verify this model, the predicted execution time was compared to the real
+execution time over SimGrid/SMPI simulator,
+v3.10~\cite{ref66}, for all the NAS
+parallel benchmarks NPB v3.3 \cite{ref65}, running class B on
+8 or 9 nodes. The comparison showed that the proposed execution time model is
+very precise, the maximum normalized difference between the predicted execution
+time and the real execution time is equal to 0.03 for all the NAS benchmarks.
+
+Since the proposed algorithm is not an exact method, it does not test all the
+possible solutions (vectors of scaling factors) in the search space. To prove
+its efficiency, it was compared on small instances to a brute force search
+algorithm that tests all the possible solutions. The brute force algorithm was
+applied to different NAS benchmarks classes with different number of nodes. The
+solutions returned by the brute force algorithm and the proposed algorithm were
+identical and the proposed algorithm was on average 10 times faster than the
+brute force algorithm. It has a small execution time: for a heterogeneous
+cluster composed of four different types of nodes having the characteristics
+presented in Table~\ref{table:platform-cluster}, it takes on average  0.04 \textit{ms} for 4
+nodes and 0.15 \textit{ms} on average for 144 nodes to compute the best scaling
+factors vector.  The algorithm complexity is $O(F\cdot N)$, where $F$ is the
+maximum number of available frequencies, and $N$ is the number of computing
+nodes. The algorithm needs from 12 to 20 iterations to select the best vector of
+frequency scaling factors that gives the results of the next sections.
+
+\begin{table}[h!]
+  \caption{Heterogeneous nodes characteristics}
+  % title of Table
+  \centering
+  \begin{tabular}{|*{7}{r|}}
+    \hline
+    Node   & Simulated & Max   & Min   & Diff. & Dynamic    & Static    \\
+    type   & GFLOPS    & Freq. & Freq. & Freq. & power      & power     \\
+           &           & GHz   & GHz   & GHz   &            &           \\
+    \hline
+    1      & 40        & 2.50  & 1.20  & 0.100 & 20 W & 4 W \\
+    \hline
+    2      & 50        & 2.66  & 1.60  & 0.133 & 25 W & 5 W \\
+    \hline
+    3      & 60        & 2.90  & 1.20  & 0.100 & 30 W & 6 W \\
+    \hline
+    4      & 70        & 3.40  & 1.60  & 0.133 & 35 W & 7 W \\
+    \hline
+  \end{tabular}
+  \label{table:platform-cluster}
+\end{table}
+
+\section{Experimental results over heterogeneous  local cluster}
+\label{ch3:2}
+To evaluate the efficiency and the overall energy consumption reduction of
+Algorithm~\ref{HSA}, it was applied to the NAS parallel benchmarks NPB v3.3 which 
+is composed of synchronous message passing applications. The 
+experiments were executed on the simulator SimGrid/SMPI which offers easy tools
+to create a heterogeneous local cluster and run message passing applications over it.
+The heterogeneous cluster that was used in the experiments, had one core per
+node because just one process was executed per node.  The heterogeneous cluster
+was composed of four types of nodes. Each type of nodes had different
+characteristics such as the maximum CPU frequency, the number of available
+frequencies and the computational power, see Table~\ref{table:platform-cluster}. The
+characteristics of these different types of nodes are inspired from the
+specifications of real Intel processors.  The heterogeneous cluster had up to
+144 nodes and had nodes from the four types in equal proportions, for example if
+a benchmark was executed on 8 nodes, 2 nodes from each type were used. Since the
+constructors of CPUs do not specify the dynamic and the static power of their
+CPUs, for each type of node they were chosen proportionally to its computing
+power (FLOPS).  In the initial heterogeneous cluster, while computing with
+highest frequency, each node consumed an amount of power proportional to its
+computing power (which corresponds to 80\% of its dynamic power and the
+remaining 20\% to the static power), the same assumption was made in chapter \ref{ch2} and
+\cite{ref3}.  Finally, These
+nodes were connected via an Ethernet network with 1 \textit{Gbit/s} bandwidth.
+
+
+\subsection{The experimental results of the scaling algorithm }
+\label{ch3:2:1}
+
+The proposed algorithm was applied to the seven parallel NAS benchmarks (EP, CG,
+MG, FT, BT, LU and SP). The benchmarks were executed with class C while being 
+run on different number of nodes, ranging from 8 to 128 or 144 nodes depending 
+on the benchmark being executed. 
+Indeed, the benchmarks CG, MG, LU, EP and FT had to be executed on 1,
+2, 4, 8, 16, 32, 64, or 128 nodes.  The other benchmarks such as BT and SP had
+to be executed on 1, 4, 9, 16, 36, 64, or 144 nodes.
+
+
+  
+ \begin{table}[h!]
+  \caption{Running NAS benchmarks on 8 and 9 nodes }
+  % title of Table
+  \centering
+  \begin{tabular}{|*{7}{r|}}
+    \hline
+    \hspace{-2.2084pt}%
+    Program & Execution & Energy        & Energy   & Performance   & Distance \\
+    name    & time/s    & consumption/J & saving\% & degradation\% &          \\
+    \hline
+    CG      &  36.11    &  3263.49      & 31.25    & 7.12          & 24.13    \\
+    \hline
+    MG      &   8.99    &   953.39      & 33.78    & 6.41          & 27.37    \\
+    \hline
+    EP      &  40.39    &  5652.81      & 27.04    & 0.49          & 26.55    \\
+    \hline
+    LU      & 218.79    & 36149.77      & 28.23    & 0.01          & 28.22    \\
+    \hline
+    BT      & 166.89    & 23207.42      & 32.32    & 7.89          & 24.43    \\
+    \hline
+    SP      & 104.73    & 18414.62      & 24.73    & 2.78          & 21.95    \\
+    \hline
+    FT      &  51.10    &  4913.26      & 31.02    & 2.54          & 28.48    \\
+    \hline
+  \end{tabular}
+  \label{table:res_8n}
+ \end{table}
+
+  \medskip
+ \begin{table}[h!]
+  \caption{Running NAS benchmarks on 16 nodes }
+  % title of Table
+  \centering
+  \begin{tabular}{|*{7}{r|}}
+    \hline
+    \hspace{-2.2084pt}%
+    Program & Execution & Energy        & Energy   & Performance   & Distance \\
+    name    & time/s    & consumption/J & saving\% & degradation\% &          \\
+    \hline
+    CG      &  31.74    &  4373.90      & 26.29    & 9.57          & 16.72    \\
+    \hline
+    MG      &   5.71    &  1076.19      & 32.49    & 6.05          & 26.44    \\
+    \hline
+    EP      &  20.11    &  5638.49      & 26.85    & 0.56          & 26.29    \\
+    \hline
+    LU      & 144.13    & 42529.06      & 28.80    & 6.56          & 22.24    \\
+    \hline
+    BT      &  97.29    & 22813.86      & 34.95    & 5.80          & 29.15    \\
+    \hline
+    SP      &  66.49    & 20821.67      & 22.49    & 3.82          & 18.67    \\
+    \hline
+    FT      &  37.01    &  5505.60      & 31.59    & 6.48          & 25.11    \\
+    \hline
+  \end{tabular}
+  \label{table:res_16n}
+ \end{table}
+
+  \medskip
+ \begin{table}[h!]
+  \caption{Running NAS benchmarks on 32 and 36 nodes }
+  % title of Table
+  \centering
+  \begin{tabular}{|*{7}{r|}}
+    \hline
+    \hspace{-2.2084pt}%
+    Program & Execution & Energy        & Energy   & Performance   & Distance \\
+    name    & time/s    & consumption/J & saving\% & degradation\% &          \\
+    \hline
+    CG      & 32.35     &  6704.21      & 16.15    & 5.30          & 10.85    \\
+    \hline
+    MG      &  4.30     &  1355.58      & 28.93    & 8.85          & 20.08    \\
+    \hline
+    EP      &  9.96     &  5519.68      & 26.98    & 0.02          & 26.96    \\
+    \hline
+    LU      & 99.93     & 67463.43      & 23.60    & 2.45          & 21.15    \\
+    \hline
+    BT      & 48.61     & 23796.97      & 34.62    & 5.83          & 28.79    \\
+    \hline
+    SP      & 46.01     & 27007.43      & 22.72    & 3.45          & 19.27    \\
+    \hline
+    FT      & 28.06     &  7142.69      & 23.09    & 2.90          & 20.19    \\
+    \hline
+  \end{tabular}
+  \label{table:res_32n}
+ \end{table}
+
+  \medskip
+ \begin{table}[h!]
+  \caption{Running NAS benchmarks on 64 nodes }
+  % title of Table
+  \centering
+  \begin{tabular}{|*{7}{r|}}
+    \hline
+    \hspace{-2.2084pt}%
+    Program & Execution & Energy        & Energy   & Performance   & Distance \\
+    name    & time/s    & consumption/J & saving\% & degradation\% &          \\
+    \hline
+    CG      & 46.65     &  17521.83     &  8.13    &  1.68         &  6.45    \\
+    \hline
+    MG      &  3.27     &   1534.70     & 29.27    & 14.35         & 14.92    \\
+    \hline
+    EP      &  5.05     &   5471.11     & 27.12    &  3.11         & 24.01    \\
+    \hline
+    LU      & 73.92     & 101339.16     & 21.96    &  3.67         & 18.29    \\
+    \hline
+    BT      & 39.99     &  27166.71     & 32.02    & 12.28         & 19.74    \\
+    \hline
+    SP      & 52.00     &  49099.28     & 24.84    &  0.03         & 24.81    \\
+    \hline
+    FT      & 25.97     &  10416.82     & 20.15    &  4.87         & 15.28    \\
+    \hline
+  \end{tabular}
+  \label{table:res_64n}
+ \end{table}
+
+  \medskip \begin{table}[h!]
+  \caption{Running NAS benchmarks on 128 and 144 nodes }
+  % title of Table
+  \centering
+  \begin{tabular}{|*{7}{r|}}
+    \hline
+    \hspace{-2.2084pt}%
+    Program & Execution & Energy        & Energy   & Performance   & Distance \\
+    name    & time/s    & consumption/J & saving\% & degradation\% &          \\
+    \hline
+    CG      & 56.92     &  41163.36     &  4.00    &  1.10         &  2.90    \\
+    \hline
+    MG      &  3.55     &   2843.33     & 18.77    & 10.38         &  8.39    \\
+    \hline
+    EP      &  2.67     &   5669.66     & 27.09    &  0.03         & 27.06    \\
+    \hline
+    LU      & 51.23     & 144471.90     & 16.67    &  2.36         & 14.31    \\
+    \hline
+    BT      & 37.96     &  44243.82     & 23.18    &  1.28         & 21.90    \\
+    \hline
+    SP      & 64.53     & 115409.71     & 26.72    &  0.05         & 26.67    \\
+    \hline
+    FT      & 25.51     &  18808.72     & 12.85    &  2.84         & 10.01    \\
+    \hline
+  \end{tabular}
+  \label{table:res_128n}
+\end{table}
+
+\begin{figure}[h!]
+  \centering
+  \centering
+    \includegraphics[width=.7\textwidth]{fig/ch3/energy}\\~ ~ ~ ~ ~(a) \\ 
+    
+    \includegraphics[width=.7\textwidth]{fig/ch3/per_deg}\\~ ~ ~ ~ ~(b) 
+  \caption{NAS benchmarks running with a different number of nodes  (a) the  energy saving and 
+      (b) the performance degradation }
+      \label{fig:res}
+\end{figure}
+
+The overall energy consumption was computed for each instance according to the
+energy consumption model (\ref{eq:energy-heter}), with and without applying the
+algorithm. The execution time was also measured for all these experiments. Then,
+the energy saving and performance degradation percentages were computed for each
+instance.  The results are presented in Tables 
+\ref{table:res_8n}, \ref{table:res_16n}, \ref{table:res_32n},
+\ref{table:res_64n} and \ref{table:res_128n}. All these results are the average
+values from many experiments for energy savings and performance degradation.
+The tables show the experimental results for running the NAS parallel benchmarks
+on different numbers of nodes.  The experiments show that the algorithm
+significantly reduces the energy consumption (up to 34\%) and tries to
+limit the performance degradation.  They also show that the energy saving
+percentage decreases when the number of computing nodes increases.  This
+reduction is due to the increase of the communication times compared to the
+execution times when the benchmarks are run over a higher number of nodes.
+Indeed, the benchmarks with the same class, C, are executed on different numbers
+of nodes, so the computation required for each iteration is divided by the
+number of computing nodes.  On the other hand, more communications are required
+when increasing the number of nodes so the static energy increases linearly
+according to the communication time and the dynamic power is less relevant in
+the overall energy consumption.  Therefore, reducing the frequency with
+Algorithm~\ref{HSA} is less effective in reducing the overall energy savings. It
+can also be noticed that for the benchmarks EP and SP that contain little or no
+communications, the energy savings are not significantly affected by the high
+number of nodes.  No experiments were conducted using bigger classes than D,
+because they require a lot of memory (more than 64 \textit{CB}) when being executed
+by the simulator on one machine.  The maximum distance between the normalized
+energy curve and the normalized performance for each instance is also shown in
+the result tables. It decrease in the same way as the energy saving percentage.
+The tables also show that the performance degradation percentage is not
+significantly increased when the number of computing nodes is increased because
+the computation times are small when compared to the communication times.
+
+Figure~\ref{fig:res} (a) and (b) present the energy saving and
+performance degradation respectively for all the benchmarks according to the
+number of used nodes. As shown in the first plot, the energy saving percentages
+of the benchmarks MG, LU, BT and FT decrease linearly when the number of nodes
+increase. While for the EP and SP benchmarks, the energy saving percentage is
+not affected by the increase of the number of computing nodes, because in these
+benchmarks there are little or no communications. Finally, the energy saving of
+the CG benchmark significantly decreases when the number of nodes increase
+because this benchmark has more communications than the others. The second plot
+shows that the performance degradation percentages of most of the benchmarks
+decrease when they run on a big number of nodes because they spend more time
+communicating than computing, thus, scaling down the frequencies of some nodes
+has less effect on the performance.
+
+\subsection{The results for different power consumption scenarios}
+\label{ch3:2:2}
+
+The results of the previous section were obtained while using processors that
+consume during computation an overall power which is 80\% composed of
+dynamic power and of 20\% of static power. In this section, these ratios
+are changed and two new power scenarios are considered in order to evaluate how
+the proposed algorithm adapts itself according to the static and dynamic power
+values.  The two new power scenarios are the following:
+
+\begin{itemize}
+\item 70\% of dynamic power and 30\% of static power
+\item 90\% of dynamic power and 10\% of static power
+\end{itemize}
+
+The NAS parallel benchmarks were executed again over processors that follow the
+new power scenarios.  The class C of each benchmark was run over 8 or 9 nodes
+and the results are presented in Tables~\ref{table:res_s1} and
+\ref{table:res_s2}. These tables show that the energy saving percentage of the
+70\%-30\% scenario is smaller for all benchmarks compared to the
+energy saving of the 90\%-10\% scenario.  Indeed, in the latter
+more dynamic power is consumed when nodes are running on their maximum
+frequencies, thus, scaling down the frequency of the nodes results in higher
+energy savings than in the 70\%-30\% scenario. On the other hand,
+the performance degradation percentage is smaller in the 70\%-30\%
+scenario compared to the 90\%-\%10 scenario. This is due to the
+higher static power percentage in the first scenario which makes it more
+relevant in the overall consumed energy.  Indeed, the static energy is related
+to the execution time and if the performance is degraded the amount of consumed
+static energy directly increases.  Therefore, the proposed algorithm does not
+really significantly scale down much the frequencies of the nodes in order to
+limit the increase of the execution time and thus limiting the effect of the
+consumed static energy.
+
+Both new power scenarios are compared to the old one in
+Figure~\ref{fig:powers-heter} (a). It shows the average of the performance degradation,
+the energy saving and the distances for all NAS benchmarks of class C running on
+8 or 9 nodes.  The comparison shows that the energy saving ratio is proportional
+to the dynamic power ratio: it is increased when applying the
+90\%-10\% scenario because at maximum frequency the dynamic energy
+is the most relevant in the overall consumed energy and can be reduced by
+lowering the frequency of some processors. On the other hand, the energy saving
+decreases when the 70\%-30\% scenario is used because the dynamic
+energy is less relevant in the overall consumed energy and lowering the
+frequency does not return big energy savings.  Moreover, the average of the
+performance degradation is decreased when using a higher ratio for static power
+(e.g.  70\%-30\% scenario and 80\%-20\% scenario). Since the proposed 
+algorithm optimizes the energy consumption when
+using a higher ratio for dynamic power the algorithm selects bigger frequency
+scaling factors that result in more energy saving but less performance, for
+example see Figure~\ref{fig:powers-heter} (b). The opposite happens when using a
+higher ratio for static power, the algorithm proportionally selects smaller
+scaling values which result in less energy saving but also less performance
+degradation.
+
+\begin{table}[!t]
+  \caption{The results of the 70\%-30\% power scenario}
+  % title of Table
+  \centering
+  \begin{tabular}{|*{6}{r|}}
+    \hline
+    Program & Energy        & Energy   & Performance   & Distance \\
+    name    & consumption/J & saving\% & degradation\% &          \\
+    \hline
+    CG      &  4144.21      & 22.42    & 7.72          & 14.70    \\
+    \hline
+    MG      &  1133.23      & 24.50    & 5.34          & 19.16    \\
+   \hline
+    EP      &  6170.30      & 16.19    & 0.02          & 16.17    \\
+   \hline
+    LU      & 39477.28      & 20.43    & 0.07          & 20.36    \\
+    \hline
+    BT      & 26169.55      & 25.34    & 6.62          & 18.71    \\
+   \hline
+    SP      & 19620.09      & 19.32    & 3.66          & 15.66    \\
+   \hline
+    FT      &  6094.07      & 23.17    & 0.36          & 22.81    \\
+    \hline
+  \end{tabular}
+  \label{table:res_s1}
+\end{table}
+
+\begin{table}[!t]
+  \caption{The results of the 90\%-10\% power scenario}
+  % title of Table
+  \centering
+  \begin{tabular}{|*{6}{r|}}
+    \hline
+    Program & Energy          & Energy      & Performance   & Distance \\
+    name    & consumption/J   & saving\%    & degradation\% &          \\
+    \hline
+    CG      &  2812.38        & 36.36       &  6.80         & 29.56    \\
+    \hline
+    MG      &   825.43        & 38.35       &  6.41         & 31.94    \\
+    \hline
+    EP      &  5281.62        & 35.02       &  2.68         & 32.34    \\
+    \hline
+    LU      & 31611.28        & 39.15       &  3.51         & 35.64    \\
+    \hline
+    BT      & 21296.46        & 36.70       &  6.60         & 30.10    \\
+    \hline
+    SP      & 15183.42        & 35.19       & 11.76         & 23.43    \\
+    \hline
+    FT      &  3856.54        & 40.80       &  5.67         & 35.13    \\
+    \hline
+  \end{tabular}
+  \label{table:res_s2}
+\end{table}
+
+\begin{table}[!t]
+  \caption{Comparing the proposed algorithm}
+  \centering
+  \begin{tabular}{|*{7}{r|}}
+    \hline
+    Program & \multicolumn{2}{c|}{Energy saving \%}
+            & \multicolumn{2}{c|}{Perf.  degradation \%}
+            & \multicolumn{2}{c|}{Distance} \\
+    \cline{2-7}
+    name    & EDP   & MaxDist & EDP  & MaxDist & EDP   & MaxDist \\
+    \hline
+    CG      & 27.58 & 31.25   & 5.82 & 7.12    & 21.76 & 24.13   \\
+    \hline
+    MG      & 29.49 & 33.78   & 3.74 & 6.41    & 25.75 & 27.37   \\
+    \hline
+    LU      & 19.55 & 28.33   & 0.00 & 0.01    & 19.55 & 28.22   \\
+    \hline
+    EP      & 28.40 & 27.04   & 4.29 & 0.49    & 24.11 & 26.55   \\
+    \hline
+    BT      & 27.68 & 32.32   & 6.45 & 7.87    & 21.23 & 24.43   \\
+    \hline
+    SP      & 20.52 & 24.73   & 5.21 & 2.78    & 15.31 & 21.95   \\
+    \hline
+    FT      & 27.03 & 31.02   & 2.75 & 2.54    & 24.28 & 28.48   \\
+    \hline
+  \end{tabular}
+  \label{table:compare_EDP}
+\end{table}
+
+\begin{figure}[h!]
+  \centering
+ 
+    \includegraphics[width=.75\textwidth]{fig/ch3/sen_comp}\\~ ~ ~ ~ ~ (a)\\
+
+    \includegraphics[width=.75\textwidth]{fig/ch3/three_scenarios}\\~ ~ ~ ~ ~ (b)
+ 
+  \caption{(a) Comparison the results of the three power scenarios and
+    (b) Comparison the selected frequency scaling factors of MG benchmark class C running on 8 nodes}
+     \label{fig:powers-heter}
+\end{figure}
+
+\begin{figure}[h!]
+  \centering
+   \includegraphics[scale=0.85]{fig/ch3/compare_EDP.pdf}
+  \caption{Trade-off comparison for NAS benchmarks class C}
+  \label{fig:compare_EDP}
+\end{figure}
+
+
+\subsection{The comparison of the proposed scaling algorithm }
+\label{ch3:2:3}
+In this section, the scaling factors selection algorithm, called MaxDist, is
+compared to Spiliopoulos et al. algorithm
+\cite{ref67}, called EDP.  They developed a
+green governor that regularly applies an online frequency selecting algorithm to
+reduce the energy consumed by a multicore architecture without degrading much
+its performance. The algorithm selects the frequencies that minimize the energy
+and delay products, $\mathit{EDP}=\mathit{energy}\times \mathit{delay}$ using
+the predicted overall energy consumption and execution time delay for each
+frequency.  To fairly compare both algorithms, the same energy and execution
+time models, equations (\ref{eq:energy-heter}) and (\ref{eq:perf_heter}), were used for both
+algorithms to predict the energy consumption and the execution times. Also
+Spiliopoulos et al. algorithm was adapted to start the search from the initial
+frequencies computed using the equation (\ref{eq:Fint}). The resulting algorithm
+is an exhaustive search algorithm that minimizes the EDP and has the initial
+frequencies values as an upper bound.
+
+Both algorithms were applied to the parallel NAS benchmarks to compare their
+efficiency. Table~\ref{table:compare_EDP} presents the results of comparing the
+execution times and the energy consumption for both versions of the NAS
+benchmarks while running the class C of each benchmark over 8 or 9 heterogeneous
+nodes. The results show that our algorithm provides better energy savings than
+Spiliopoulos et al. algorithm, on average it results in 29.76\% energy
+saving while their algorithm returns just 25.75\%. The average of
+performance degradation percentage is approximately the same for both
+algorithms, about 4\%.
+
+For all benchmarks,  our algorithm outperforms Spiliopoulos et  al. algorithm in
+terms of  energy and  performance trade-off, see  Figure~\ref{fig:compare_EDP},
+because it maximizes the distance  between the energy saving and the performance
+degradation values while giving the same weight for both metrics.
+
+\section[The energy optimization of grid]{The energy optimization of parallel iterative applications running over grid}
+\label{ch3:3}
+
+\subsection{The energy and performance models of grid platform}
+\label{ch3:3:1}
+In this section, we are interested in reducing the energy consumption of message
+passing distributed iterative synchronous applications running over
+heterogeneous grid platforms. A heterogeneous grid platform could be defined as a collection of
+heterogeneous computing clusters interconnected via a long distance network which has lower bandwidth 
+and higher latency than the local networks of the clusters. Each computing cluster in the grid is composed of homogeneous nodes that are connected together via a high speed network. Therefore, each cluster has different characteristics such as computing power (FLOPS), energy consumption, CPU's frequency range, network bandwidth and latency.
+
+Since in a heterogeneous grid each cluster has different characteristics,
+especially different frequency gears, when applying DVFS operations on the nodes 
+of these clusters, they may get different scaling factors represented by a scaling vector:
+$(S_{11}, S_{12},\dots, S_{NM})$ where $S_{ij}$ is the scaling factor of processor $j$ in cluster $i$ . To
+be able to predict the execution time of message passing synchronous iterative
+applications running over a heterogeneous grid, for different vectors of
+scaling factors, the communication time and the computation time for all the
+tasks must be measured during the first iteration before applying any DVFS
+operation. Then the execution time for one iteration of the application with any
+vector of scaling factors can be predicted using (\ref{eq:perf-grid}).
+%
+\begin{equation}
+  \label{eq:perf-grid}
+  \Tnew = \mathop{\max_{i=1,\dots N}}_{j=1,\dots,M}({\TcpOld[ij]} \cdot S_{ij}) 
+  +\mathop{\min_{j=1,\dots,M}}  (\Tcm[hj])
+\end{equation}
+%
+where $N$ is the number of  clusters in the grid, $M$ is the number of  nodes in
+each cluster, $\TcpOld[ij]$ is the computation time of processor $j$ in the cluster $i$ 
+and $\Tcm[hj]$ is the communication time of processor $j$ in the cluster $h$ during the 
+first  iteration.  The execution time for one iteration is equal to the sum of the maximum computation time for all nodes with the new scaling factors
+and the slowest communication time without slack time during one iteration.
+The latter is equal to the  communication time of the slowest node in the slowest cluster $h$.
+It means that only the communication time without any slack time is taken into account.
+Therefore, the execution time of the iterative application is equal to
+the execution time of one iteration as in (\ref{eq:perf-grid}) multiplied by the
+number of iterations of that application.
+
+
+In the considered heterogeneous grid platform, each node $j$ in cluster $i$ may have
+different dynamic and static powers from the nodes of the other clusters, 
+noted as $\Pd[ij]$ and $\Ps[ij]$ respectively.  Therefore, even if the distributed 
+message passing iterative application is load balanced, the computation time of each CPU $j$ 
+in cluster $i$ noted $\Tcp[ij]$ may be different and different frequency scaling factors may be
+computed in order to decrease the overall energy consumption of the application
+and reduce slack times.  The communication time of a processor $j$ in cluster $i$ is noted as
+$\Tcm[ij]$ and could contain slack times when communicating with slower nodes,
+see Figure~\ref{fig:task-heter}.  Therefore, all nodes do not have equal
+communication times. While the dynamic energy is computed according to the
+frequency scaling factor and the dynamic power of each node as in
+(\ref{eq:Edyn}), the static energy is computed as the sum of the execution time
+of one iteration multiplied by the static power of each processor.  The overall
+energy consumption of a message passing distributed application executed over a
+heterogeneous grid platform during one iteration is the summation of all dynamic and
+static energies for $M$ processors in $N$ clusters.  It is computed as follows:
+\begin{equation}
+  \label{eq:energy-grid}
+ E = \sum_{i=1}^{N} \sum_{i=1}^{M} {(S_{ij}^{-2} \cdot \Pd[ij] \cdot  \Tcp[ij])} +  
+ \sum_{i=1}^{N} \sum_{j=1}^{M} (\Ps[ij] \cdot 
+  (\mathop{\max_{i=1,\dots N}}_{j=1,\dots,M}({\Tcp[ij]} \cdot S_{ij}) 
+  +\mathop{\min_{j=1,\dots M}} (\Tcm[hj]) ))
+\end{equation}
+
+
+To optimize both of the energy model \ref{eq:energy-grid} and the performance model\ref{eq:perf-grid},
+they must normalizes respectively as in \ref{eq:enorm-heter} and \ref{eq:pnorm-heter}.
+While the original energy consumption is the consumed energy with
+maximum frequency for all  nodes computes as follows:
+
+\begin{equation}
+  \label{eq:eorginal-grid}
+    \Eoriginal = \sum_{i=1}^{N} \sum_{j=1}^{M} ( \Pd[ij] \cdot  \Tcp[ij])  + 
+     \mathop{\sum_{i=1}^{N}} \sum_{j=1}^{M} (\Ps[ij] \cdot \Told)       
+\end{equation}
+
+By the same way, the old execution time with  maximum frequency for all  nodes computes as follows:
+
+\begin{equation}
+  \label{eq:told-grid}
+   \Told = \mathop{\max_{i=1,2,\dots,N}}_{j=1,2,\dots,M} (\Tcp[ij]+\Tcm[ij])             
+\end{equation}
+Therefore, the objective function can be modeled in order to find the maximum
+distance between the normalized energy curve  and the normalized performance curve
+over all available sets of scaling factors as follows:
+
+ \begin{equation}
+  \label{eq:max-grid}
+  \MaxDist =
+\mathop{  \mathop{\max_{i=1,\dots N}}_{j=1,\dots,M}}_{k=1,\dots,F}
+      (\overbrace{\Pnorm(S_{ijk})}^{\text{Maximize}} -
+       \overbrace{\Enorm(S_{ijk})}^{\text{Minimize}} )
+\end{equation}
+
+where $N$ is the number of clusters, $M$ is the number of nodes in each cluster and
+$F$ is the number of available frequencies for each node.  Then, the optimal set 
+of scaling factors that satisfies (\ref{eq:max-grid}) can be selected. 
+
+\subsection{The scaling factors selection algorithm for a grid }
+\label{ch3:3:2}
+
+\begin{algorithm}
+\setstretch{1}
+  \begin{algorithmic}[1]
+    % \footnotesize
+    
+    \Require ~
+
+    \item [{$N$}] number of clusters in the grid. 
+    \item [{$M$}] number of nodes in each cluster.
+    \item[{$\Tcp[ij]$}] array of all computation times for all nodes during one iteration and with the highest frequency.
+    \item[{$\Tcm[ij]$}] array of all communication times for all nodes during one iteration and with the highest frequency.
+    \item[{$\Fmax[ij]$}] array of the maximum frequencies for all nodes.
+    \item[{$\Pd[ij]$}] array of the dynamic powers for all nodes.
+    \item[{$\Ps[ij]$}] array of the static powers for all nodes.
+    \item[{$\Fdiff[ij]$}] array of the differences between two successive frequencies for all nodes.
+
+    \Ensure $\Sopt[11],\Sopt[12] \dots, \Sopt[NM_i]$,  a vector of scaling factors that gives the optimal trade-off between energy consumption and execution time
+
+    \State $\Scp[ij] \gets \frac{ \mathop{\max\limits_{i=1,\dots N}}\limits_{j=1,\dots,M}(\Tcp[ij])} {\Tcp[ij]} $
+    \State $F_{ij} \gets  \frac{\Fmax[ij]}{\Scp[i]},~{i=1,2,\cdots,N},~{j=1,2,\dots,M_i}.$
+    \State Round the computed initial frequencies $F_i$ to the closest  available frequency for each node.
+    \If{(not the first frequency)}
+          \State $F_{ij} \gets F_{ij}+\Fdiff[ij],~i=1,\dots,N,~{j=1,\dots,M_i}.$
+    \EndIf
+    \State $\Told \gets \mathop{\max\limits_{i=1,2,\dots,N}}\limits_{j=1,2,\dots,M} (\Tcp[ij]+\Tcm[ij])     $ 
+    \State $\Eoriginal \gets \sum_{i=1}^{N} \sum_{j=1}^{M} ( \Pd[ij] \cdot  \Tcp[ij])  + 
+     \mathop{\sum_{i=1}^{N}} \sum_{j=1}^{M} (\Ps[ij] \cdot \Told)  $ 
+    \State $\Sopt[ij] \gets 1,~i=1,\dots,N,~{j=1,\dots,M_i}. $
+    \State $\Dist \gets 0 $
+    \While {(all nodes have not reached their  minimum   frequency \textbf{or}  $\Pnorm - \Enorm < 0 $)}
+        \If{(not the last freq. \textbf{and} not the slowest node)}
+        \State $F_{ij} \gets F_{ij} - \Fdiff[ij],~{i=1,\dots,N},~{j=1,\dots,M_i}$.
+        \State $S_{ij} \gets \frac{\Fmax[ij]}{F_{ij}},~{i=1,\dots,N},~{j=1,\dots,M_i}.$
+        \EndIf
+       \State $\Tnew \gets \mathop{\max\limits_{i=1,\dots N}}\limits_{j=1,\dots,M}({\TcpOld[ij]}
+        \cdot S_{ij})  +\mathop{\min\limits_{j=1,\dots,M}}  (\Tcm[hj]) $. 
+       \State $\Ereduced \gets  \sum\limits_{i=1}^{N} \sum\limits_{i=1}^{M} {(S_{ij}^{-2} \cdot \Pd[ij] 
+        \cdot \Tcp[ij])} +  \sum\limits_{i=1}^{N} \sum\limits_{j=1}^{M} (\Ps[ij] \cdot  
+        (\mathop{\max\limits_{i=1,\dots N}}\limits_{j=1,\dots,M}({\Tcp[ij]} \cdot S_{ij}) 
+         +\mathop{\min\limits_{j=1,\dots M}} (\Tcm[hj]) ))$ 
+       \State $\Pnorm \gets \frac{\Told}{\Tnew}$
+  
+       \State $\Enorm \gets \frac{\Ereduced}{\Eoriginal}$
+      \If{$(\Pnorm - \Enorm > \Dist)$}
+        \State $\Sopt[ij] \gets S_{ij},~i=1,\dots,N,~j=1,\dots,M_i. $
+        \State $\Dist \gets \Pnorm - \Enorm$
+      \EndIf
+    \EndWhile
+    \State  Return $\Sopt[11],\Sopt[12],\dots,\Sopt[NM_i]$
+  \end{algorithmic}
+  \caption{Scaling factors selection algorithm for grid}
+  \label{HSA-grid}
+\end{algorithm}
+
+\begin{figure}[!t]
+  \centering
+  \includegraphics[scale=0.7]{fig/ch3/init_freq}
+  \caption{Selecting the initial frequencies in grid}
+  \label{fig:st_freq-grid}
+\end{figure}
+
+\begin{figure}[!t]
+  \centering
+    \includegraphics[width=.7\textwidth]{fig/ch3/heter2}
+  \caption{The energy and performance relation in grid}
+  \label{fig:rel-grid}
+\end{figure}
+
+
+In this section, the scaling factors selection algorithm for a grid, Algorithm~\ref{HSA-grid}, 
+is presented. It selects the vector of the frequency
+scaling factors  that gives the best trade-off between minimizing the
+energy consumption and maximizing the performance of a message passing
+synchronous iterative application executed on a  grid that satisfies the objective function 
+(\ref{eq:max-grid}).
+It has the same  principles and specifications of the frequencies selection algorithm of the heterogeneous 
+local cluster \ref{HSA}. 
+
+The value of the initial frequency scaling factor for each node is inversely proportional to its
+computation time that was gathered from the first iteration. These initial
+frequency scaling factors are computed as a ratio between the computation time
+of the slowest node and the computation time of the node $i$ as follows:
+\begin{equation}
+  \label{eq:Scp-grid}
+  \Scp[ij] =  \frac{ \mathop{\max\limits_{i=1,\dots N}}\limits_{j=1,\dots,M}(\Tcp[ij])} {\Tcp[ij]}
+\end{equation}
+Using the initial frequency scaling factors computed in (\ref{eq:Scp-grid}), the
+algorithm computes the initial frequencies for all nodes as a ratio between the
+maximum frequency of node $i$ and the computation scaling factor $\Scp[i]$ as
+follows:
+\begin{equation}
+  \label{eq:Fint-grid}
+  F_{ij} = \frac{\Fmax[ij]}{\Scp[ij]},~{i=1,2,\dots,N},~{j=1,\dots,M}
+\end{equation}
+Figure \ref{fig:st_freq-grid} shows the selected initial frequencies for a grid composed of three clusters.
+In contrast to algorithm \ref{HSA}, algorithm \ref{HSA-grid} replaces the computed initial frequency for a node by the nearest available frequency if not available in the gears of
+that node.
+The frequency scaling algorithm of the grid stops its iteration if it reaches to lower bound, which is the computed distance between the energy and performance at this frequency if it is less than zero.
+A negative distance means that the performance degradation ratio is higher than the energy saving ratio as in figure \ref{fig:rel-grid}.
+In this situation, the algorithm must stop the downward search because it has reached the lower bound and it is useless to test the lower frequencies. Indeed, they will all give worse distances. 
+Therefore, the algorithm iterates on all remaining frequencies, from the higher
+bound until all nodes reach their minimum frequencies or their lower bounds, to compute the overall
+energy consumption and performance and selects the optimal vector of the frequency scaling
+factors. The DVFS algorithm~\ref{dvfs-heter} is also used to call the algorithm \ref{HSA-grid} in the MPI 
+program executed over grid platform. 
+
+\section{Experimental results over Grid5000 platform}
+\label{ch3:4}
+
+In this section,  real experiments were conducted over the Grid'5000 platform. 
+Grid'5000~\cite{ref21} is a large-scale testbed that consists of ten sites distributed all over  metropolitan France and Luxembourg.  These sites are: Grenoble, Lille, Luxembourg, Lyon, Nancy, Reims, Rennes , Sophia, Toulouse, Bordeaux. Figure \ref{fig:grid5000-dis} shows the geographical distribution of grid'5000 sites over France and Luxembourg. All the sites are connected together via a  special long distance network called RENATER, which is abbreviation of the French
+National Telecommunication Network for Technology. Each site in the grid is
+composed of a few heterogeneous computing clusters and each cluster contains
+many homogeneous nodes. In total, Grid'5000 has about one thousand heterogeneous nodes and eight thousand cores. In each site, the clusters and their nodes
+are connected via high speed local area networks. Two types of local networks
+are used, Ethernet or Infiniband networks, which have different characteristics
+in terms of bandwidth and latency.
+Grid'5000 is dedicated as a test-bed for grid computing and thus users can book the required nodes from different sites. 
+It also gives the opportunity to the users to deploy their configured image of the operating system over the reserved nodes.
+Indeed, many software tools are available for  users in order to control and manage the reservation and deployment processes from their local machines. For example, OAR \cite{ref22} is a  batch scheduler that is used to manage the heterogeneous resources of the grid'5000.
+
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=1]{fig/ch3/grid5000.pdf}
+\caption{Grid5000's sites distribution in France and Luxembourg}
+\label{fig:grid5000-dis}
+\end{figure}
+
+
+ Moreover, the Grid'5000 testbed provides at some sites a power measurement tool to capture 
+the power consumption  for each node in those sites. The measured power is the overall consumed power  by all the components of a node at a given instant, such as CPU, hard drive, main-board, memory, \dots{} For more details refer to \cite{ref79}. 
+In order to correctly measure the CPU power of one core in a node $j$, 
+ firstly,  the power consumed by the node while being idle at instant $y$, noted as $\Pidle[jy]$, was measured. Then, the power was measured while running a single thread benchmark with no communication (no idle time) over the same node with its CPU scaled to the maximum available frequency. The latter power measured at time $x$ with maximum frequency for one core of node $j$ is noted $\Pmax[jx]$. The difference between the two measured power consumptions represents the 
+dynamic power consumption of that core with the maximum frequency, see  Figure~\ref{fig:power_cons}. 
+
+
+The dynamic power $\Pd[j]$ is computed as in Equation~\ref{eq:pdyn}
+\begin{equation}
+  \label{eq:pdyn}
+    \Pd[j] = \max_{x=\beta_1,\dots \beta_2} (\Pmax[jx])  -  \min_{y=\Theta_1,\dots \Theta_2} (\Pidle[jy])
+\end{equation}
+
+where $\Pd[j]$ is the dynamic power consumption for one core of node $j$, 
+$\lbrace \beta_1,\beta_2 \rbrace$ is the time interval for the measured maximum power values, 
+$\lbrace\Theta_1,\Theta_2\rbrace$ is the time interval for the measured  idle power values.
+Therefore, the dynamic power of one core is computed as the difference between the maximum 
+measured value in maximum powers vector and the minimum measured value in the idle powers vector.
+
+On the other hand, the static power consumption by one core is a part of the measured idle power consumption of the node. Since in Grid'5000 there is no way to measure precisely the consumed static power and same as in sections  \ref{ch3:2} and \ref{ch2:6} it was assumed that  the static power  represents a ratio of the dynamic power, the value of the static power is assumed as  20\% of dynamic power consumption of the core.
+
+In the experiments presented in the following sections, two sites of Grid'5000 were used, Lyon and Nancy sites. These two sites have in total seven different clusters as shown on Figure~\ref{fig:grid5000}.
+
+Four clusters from the two sites were selected in the experiments: one cluster from 
+Lyon's site, Taurus, and three clusters from Nancy's site, Graphene, 
+Griffon and Graphite. Each one of these clusters has homogeneous nodes inside, while nodes from different clusters are heterogeneous in many aspects such as: computing power, power consumption, available 
+frequency ranges and local network features: the bandwidth and the latency.  Table~\ref{table:grid5000-1} shows 
+the detailed characteristics of these four clusters. Moreover, the dynamic powers were computed  using Equation~\ref{eq:pdyn} for all the nodes in the 
+selected clusters and are presented in Table~\ref{table:grid5000-1}.
+
+
+\begin{figure}[!t]
+  \centering
+  \includegraphics[scale=1.4]{fig/ch3/grid5000-2}
+  \caption{The selected two sites of Grid'5000}
+  \label{fig:grid5000}
+\end{figure}
+\begin{figure}[!t]
+  \centering
+  \includegraphics[scale=0.8]{fig/ch3/power_consumption.pdf}
+  \caption{The power consumption by one core from the Taurus cluster}
+  \label{fig:power_cons}
+\end{figure}
+
+
+The energy model and the scaling factors selection algorithm were applied to the NAS parallel benchmarks v3.3 \cite{ref65} and evaluated over Grid'5000.
+The benchmark suite contains seven applications: CG, MG, EP, LU, BT, SP and FT. These applications have different computations and communications ratios and strategies which make them good testbed applications to evaluate the proposed algorithm and energy model.
+The benchmarks have seven different classes, S, W, A, B, C, D and E, that represent the size of the problem that the method solves. In this work,  class D was used for all benchmarks in all the experiments presented in the next sections. 
+
+
+  
+\begin{table}[!t]
+  \caption{CPUs characteristics of the selected clusters}
+  % title of Table
+  \centering
+  \begin{tabular}{|*{7}{c|}}
+    \hline
+                &             & Max   & Min   & Diff. &                 &               \\
+    Cluster     & CPU         & Freq. & Freq. & Freq. & Cores           & Dynamic power \\
+    Name        & model       & GHz   & GHz   & GHz   & per CPU         & of one core   \\
+    \hline
+                & Intel       &       &       &         &           &              \\
+    Taurus      & Xeon        & 2.3   & 1.2   & 0.1     & 6         & \np[W]{35}    \\
+                & E5-2630     &       &       &         &           &            \\         
+    \hline
+                & Intel       &       &       &         &           &             \\
+    Graphene    & Xeon        & 2.53  & 1.2   & 0.133   & 4         & \np[W]{23}  \\
+                & X3440       &       &       &         &           &             \\    
+    \hline
+                & Intel       &       &       &         &           &            \\
+    Griffon     & Xeon        & 2.5   & 2     & 0.5     & 4         & \np[W]{46}  \\
+                & L5420       &       &       &         &           &            \\  
+    \hline
+                & Intel       &       &       &         &           &            \\
+     Graphite   & Xeon        & 2     & 1.2   & 0.1     & 8         & \np[W]{35} \\
+                & E5-2650     &       &       &         &           &            \\  
+    \hline
+  \end{tabular}
+  \label{table:grid5000-1}
+\end{table} 
+
+
+
+\subsection{The experimental results of the scaling algorithm of  Grid}
+\label{ch3:4:1}
+In this section, the results of applying  the scaling factors selection algorithm \ref{HSA} 
+to NAS parallel benchmarks are presented. 
+
+As mentioned previously, the experiments 
+were conducted over two sites of Grid'5000,  Lyon and Nancy sites. 
+Two scenarios were considered while selecting the clusters from these two sites :
+\begin{itemize}
+\item In the first scenario, nodes from two sites and three heterogeneous clusters were selected. The two sites are connected 
+ via a long distance network.
+\item In the second scenario nodes from three clusters located in one site, Nancy site, were selected.  
+\end{itemize}
+
+The main reason 
+for using these two scenarios is to evaluate the influence of long distance communications (higher latency) on the performance of the 
+scaling factors selection algorithm. Indeed, in the first scenario the computations to communications ratio 
+is very low due to the higher communication times which reduce the effect of DVFS operations.
+
+The NAS parallel benchmarks are executed over 
+16 and 32 nodes for each scenario. The number of participating computing nodes from each cluster 
+is different because all the selected clusters do not have the same available number of nodes and all benchmarks do not require the same number of computing nodes.
+Table~\ref{tab:sc} shows the number of nodes used from each cluster for each scenario. 
+
+\begin{table}[h]
+
+\caption{The different clusters scenarios}
+\centering
+\begin{tabular}{|*{4}{c|}}
+\hline
+\multirow{2}{*}{Scenario name}        & \multicolumn{3}{c|} {The participating clusters} \\ \cline{2-4} 
+                                      & Cluster & Site           & Nodes per cluster     \\ 
+\hline
+\multirow{3}{*}{Two sites / 16 nodes} & Taurus & Lyon                & 5                      \\ \cline{2-4} 
+                                      & Graphene  & Nancy             & 5                      \\ \cline{2-4} 
+                                      & Griffon       & Nancy        & 6                      \\ 
+\hline
+\multirow{3}{*}{Tow sites / 32 nodes} & Taurus  & Lyon               & 10                     \\ \cline{2-4} 
+                                      & Graphene  & Nancy             & 10                     \\ \cline{2-4} 
+                                      & Griffon     &Nancy           & 12                     \\ 
+\hline
+\multirow{3}{*}{One site / 16 nodes}  & Graphite    & Nancy            & 4                      \\ \cline{2-4} 
+                                      & Graphene     & Nancy           & 6                      \\ \cline{2-4} 
+                                      & Griffon         & Nancy        & 6                      \\ 
+\hline
+\multirow{3}{*}{One site / 32 nodes}  & Graphite   & Nancy             & 4                      \\ \cline{2-4} 
+                                      & Graphene      & Nancy          & 14                     \\ \cline{2-4} 
+                                      & Griffon          & Nancy       & 14                       \\ 
+\hline
+\end{tabular}
+ \label{tab:sc}
+\end{table}
+
+
+The NAS parallel benchmarks are executed over these two platforms
+ with different number of nodes, as in Table~\ref{tab:sc}. 
+The overall energy consumption of all the benchmarks solving the class D instance and
+using the proposed frequency selection algorithm is measured 
+using the equation of the reduced energy consumption, Equation~\ref{eq:energy-grid}. This model uses the measured dynamic power showed in Table~\ref{table:grid5000-1}
+and the static 
+power is assumed to be equal to 20\% of the dynamic power. The execution
+time is measured for all the benchmarks over these different scenarios.  
+
+The energy consumptions  and the execution times for all the benchmarks are 
+presented in Figures~\ref{fig:exp-time-energy} (a) and (b) respectively.
+
+For the majority of the benchmarks, the energy consumed while executing  the NAS benchmarks over one site scenario 
+for  16 and 32 nodes is lower than the energy consumed while using two sites. 
+The long distance communications between the two distributed sites increase the idle time, which leads to more static energy consumption. 
+
+The execution times of these benchmarks 
+over one site with 16 and 32 nodes are also lower when  compared to those of the  two sites 
+scenario. Moreover, most of the benchmarks running over the one site scenario have their execution times  approximately divided by two  when the number of computing nodes is doubled from 16 to 32 nodes (linear speed up according to the number of the nodes).
+
+However, the execution times and the energy consumptions of EP and MG
+benchmarks, which have no or small communications, are not significantly
+affected in both scenarios, even when the number of nodes is doubled.  On the
+other hand, the communication times of the rest of the benchmarks increases when
+using long distance communications between two sites or increasing the number of
+computing nodes.
+
+
+The energy saving percentage is computed as the ratio between the reduced 
+energy consumption, Equation~\ref{eq:energy-grid}, and the original energy consumption,
+Equation~\ref{eq:eorginal-grid}, for all benchmarks as in Figure~\ref{fig:eng_s}. 
+This figure shows that the energy saving percentages of one site scenario for
+16 and 32 nodes are bigger than those of the two sites scenario which is due
+to the higher  computations to communications ratio in the first scenario   
+than in the second one. Moreover, the frequency selecting algorithm selects smaller frequencies when the computation times are bigger than the communication times which
+results in  a lower energy consumption. Indeed, the dynamic  consumed power
+is exponentially related to the CPU's frequency value. On the other hand, the increase in the number of computing nodes can 
+increase the communication times and thus produces less energy saving depending on the 
+benchmarks being executed. The results of benchmarks CG, MG, BT and FT show more 
+energy saving percentage in one site scenario when executed over 16 nodes comparing to 32 nodes. While, LU and SP consume more energy with 16 nodes than 32 in one site  because their computations to communications ratio is not affected by the increase of the number of local communications. 
+\begin{figure}[!t]
+  \centering
+  \centering
+   \includegraphics[width=.7\textwidth]{fig/ch3/eng_con_scenarios.eps}\\~~~~~~~~~(a)\\
+   \includegraphics[width=.7\textwidth]{fig/ch3/time_scenarios.eps}\\~~~~~~~~~(b)
+  \caption{ (a) energy consumption and (b) execution time of NAS  Benchmarks over different scenarios}
+  \label{fig:exp-time-energy}
+  
+\end{figure}
+
+
+The energy saving percentage is reduced for all the benchmarks because of the long distance communications in the two sites 
+scenario, except for the   EP benchmark which has  no communication. Therefore, the energy saving percentage of this benchmark is 
+dependent on the maximum difference between the computing powers of the heterogeneous computing nodes, for example 
+in the one site scenario, the graphite cluster is selected but in the two sites scenario 
+this cluster is replaced with the Taurus cluster which is more powerful. 
+Therefore, the energy savings of the EP benchmark are bigger in the two sites scenario due 
+to the higher maximum difference between the computing powers of the nodes. 
+
+In fact, high differences between the nodes' computing powers make the proposed frequencies selecting  
+algorithm  select smaller frequencies for the powerful nodes which 
+produces less energy consumption and thus more energy saving.
+The best energy saving percentage was obtained in the one site scenario with 16 nodes, the energy consumption was on average reduced up to 30\%.
+
+
+
+\begin{figure*}[t]
+\centering
+\includegraphics[width=.7\textwidth]{fig/ch3/eng_s.eps}
+\caption{The energy reduction while executing the NAS benchmarks over different scenarios}
+\label{fig:eng_s}
+\end{figure*}
+\begin{figure*}[t]
+\centering
+\includegraphics[width=.7\textwidth]{fig/ch3/per_d.eps}
+\caption{The performance degradation of the NAS benchmarks over different scenarios}
+\label{fig:per_d}
+\end{figure*}
+\begin{figure*}[t]
+\centering
+\includegraphics[width=.7\textwidth]{fig/ch3/dist.eps}
+\caption{The trade-off distance between the energy reduction and the performance of the NAS benchmarks  
+      over different scenarios}
+\label{fig:dist-grid}
+\end{figure*}
+
+
+
+Figure \ref{fig:per_d} presents the performance degradation percentages for all benchmarks over the two scenarios.
+The performance degradation percentage for the benchmarks running on two sites  with
+16 or 32  nodes is on average equal to 8.3\% or 4.7\% respectively. 
+For this scenario, the proposed scaling algorithm selects smaller frequencies for the executions with 32 nodes  without significantly degrading their performance because the communication times are higher with 32 nodes which results in smaller  computations to communications ratio.  On the other hand, the performance degradation percentage  for the benchmarks running  on one site  with
+16 or 32  nodes is on average equal to 3.2\% or 10.6\% respectively. In contrary to the two sites scenario, when the number of computing nodes is increased in the one site scenario, the performance degradation percentage is increased. Therefore, doubling the number of computing 
+nodes when the communications occur in high speed network does not decrease the computations to 
+communication ratio. 
+
+The performance degradation percentage of the EP benchmark after applying the scaling factors selection algorithm is the highest in comparison to 
+the other benchmarks. Indeed, in the EP benchmark, there are no communication and slack times and its 
+performance degradation percentage only depends on the frequencies values selected by the algorithm for the computing nodes.
+The rest of the benchmarks showed different performance degradation percentages, which decrease
+when the communication times increase and vice versa.
+
+Figure \ref{fig:dist-grid} presents the  distance percentage between the energy saving  and the performance degradation for each benchmark  over both  scenarios. The trade-off distance percentage can be 
+computed as in Equation~\ref{eq:max-grid}. The one site scenario with 16 nodes gives the best energy and performance 
+trade-off, on average it is equal to  26.8\%. The one site scenario using both 16 and 32 nodes had better energy and performance 
+trade-off comparing to the two sites scenario  because the former has high speed local communications 
+which increase the computations to communications ratio  and the latter uses long distance communications which decrease this ratio. 
+
+ Finally, the best energy and performance trade-off depends on all of the following:
+1) the computations to communications ratio when there are  communications and slack times, 2) the heterogeneity of the computing powers of the nodes and 3) the heterogeneity of the consumed  static and dynamic powers of the nodes.
+
+
+
+
+\subsection{The experimental results over multi-cores clusters}
+\label{ch3:4:2}
+
+The  clusters of Grid'5000 have different number of cores embedded in their nodes
+as shown in Table~\ref{table:grid5000-1}. In 
+this section, the proposed scaling algorithm of the grid is evaluated over the  Grid'5000 platform  while using multi-cores nodes selected according to the one site scenario described in  Section
+~\ref{ch3:4:1}.
+The one site scenario uses  32 cores from multi-cores nodes instead of 32 distinct nodes. For example if 
+the participating number of cores from a certain cluster is equal to 14, 
+in the multi-core scenario the selected nodes is equal to  4 nodes while using 
+3 or 4 cores from each node. The platforms with one  
+core per node and  multi-cores nodes are  shown in Table~\ref{table:sen-mc}. 
+The energy consumptions and execution times of running  class D of the NAS parallel 
+benchmarks over these two different scenarios are presented 
+in Figures \ref{fig:eng-cons-mc} and \ref{fig:time-mc} respectively.
+
+
+\begin{table}[]
+\centering
+\caption{The multicores scenarios}
+\begin{tabular}{|*{4}{c|}}
+\hline
+Scenario name                          & Cluster name & Nodes per cluster & 
+                                       Cores per node  \\ \hline
+\multirow{3}{*}{One core per node}    & Graphite     & 4               & 1                   \\  \cline{2-4}
+                                       & Graphene     & 14              & 1                   \\  \cline{2-4}
+                                       & Griffon      & 14              & 1                   \\ \hline
+\multirow{3}{*}{Multi-cores per node}  & Graphite     & 1               &  4              \\  \cline{2-4}
+                                       & Graphene     & 4               & 3 or 4              \\  \cline{2-4}
+                                       & Griffon      & 4               & 3 or 4                   \\ \hline
+\end{tabular}
+\label{table:sen-mc}
+\end{table}
+
+
+
+
+\begin{figure}[!t]
+ \centering
+ \includegraphics[width=.7\textwidth]{fig/ch3/time.eps}
+ \caption{The execution times of running NAS benchmarks over one core and multicores scenarios}
+  \label{fig:time-mc}
+\end{figure}
+\begin{figure}[!t]
+ \centering
+ \includegraphics[width=.7\textwidth]{fig/ch3/eng_con.eps}
+ \caption{The energy consumptions and execution times of NAS benchmarks over one core and multi-cores per node architectures}
+\label{fig:eng-cons-mc}
+\end{figure}
+
+The execution times for most of  the NAS  benchmarks are higher over the multi-cores per node scenario 
+than over single core per node  scenario. Indeed,  
+ the communication times  are higher in the one site multi-cores scenario than in the latter scenario because all the cores of a node  share  the same node network link which can be  saturated when running communication bound applications. Moreover, the cores of a node share the memory bus which can be also saturated and become a bottleneck.    
+Moreover, the energy consumptions of the NAS benchmarks are lower over the 
+ one core scenario  than over the multi-cores scenario because 
+the first scenario had less execution time than the latter which results in less static energy being consumed.
+The computations to communications ratios of the NAS benchmarks are higher over 
+the one site one core scenario  when compared to the ratio of the multi-cores scenario. 
+More energy reduction can be gained when this ratio is big because it pushes the proposed scaling algorithm to select smaller frequencies that decrease the dynamic power consumption. These experiments also showed that the energy 
+consumption and the execution times of the EP and MG benchmarks do not change significantly over these two
+scenarios  because there are no or small communications. Contrary to EP and MG, the  energy consumptions and the execution times of the rest of the  benchmarks  vary according to the  communication times that are different from one scenario to the other.
+
+  
+\begin{figure*}[!t]
+ \centering
+ \includegraphics[width=.7\textwidth]{fig/ch3/eng_s_mc.eps}
+  \caption{The energy saving of running NAS benchmarks over one core and multicores scenarios}
+  \label{fig:eng-s-mc}
+\end{figure*}   
+\begin{figure*}[!t]
+ \centering
+\includegraphics[width=.7\textwidth]{fig/ch3/per_d_mc.eps}
+  \caption{The performance degradation of running NAS benchmarks over one core and multicores scenarios}
+  \label{fig:per-d-mc}
+\end{figure*}
+\begin{figure*}[!t]
+ \centering
+ \includegraphics[width=.7\textwidth]{fig/ch3/dist_mc.eps}
+  \caption{The trade-off distance of running NAS benchmarks over one core and multicores scenarios}
+  \label{fig:dist-mc}
+\end{figure*}
+  
+The energy saving percentages of all NAS benchmarks running over these two scenarios are presented in Figure~\ref{fig:eng-s-mc}. 
+The figure shows that  the energy saving percentages in the one 
+core and the multi-cores scenarios
+are approximately equivalent, on average they are equal to  25.9\% and 25.1\% respectively.
+The energy consumption is reduced at the same rate in the two scenarios when compared to the energy consumption of the executions without DVFS. 
+
+
+The performance degradation percentages of the NAS benchmarks are presented in
+Figure~\ref{fig:per-d-mc}. It shows that the performance degradation percentages are higher for the NAS benchmarks over the  one core per node scenario  (on average equal to 10.6\%)  than over the  multi-cores scenario (on average equal to 7.5\%). The performance degradation percentages over the multi-cores scenario are lower because  the computations to communications ratios are smaller than the ratios of the other scenario. 
+
+The trade-off distances percentages of the NAS benchmarks over the two scenarios are presented 
+in ~Figure~\ref{fig:dist-mc}. These  trade-off distances between energy consumption reduction and performance  are used to verify which scenario is the best in both terms  at the same time. The figure shows that  the  trade-off distance percentages are on average   bigger over the multi-cores scenario  (17.6\%) than over the  one core per node scenario  (15.3\%).
+
+
+\subsection{Experiments with different static power scenarios}
+\label{ch3:4:3}
+
+In Section~\ref{ch3:4}, since it was not possible to measure the static power consumed by a CPU,   the static power was assumed to be equal to 20\% of the measured dynamic power. This power is consumed during the whole execution time, during computation and communication times. Therefore, when the DVFS operations are applied by the scaling algorithm and the CPUs' frequencies lowered, the execution time might increase and consequently the consumed static energy will be increased too. 
+
+The aim of  this section is to evaluate the scaling algorithm while assuming different values of static powers. 
+In addition to the previously used  percentage of static power, two new static power ratios,  10\% and 30\% of the measured dynamic power of the core, are used in this section.
+The experiments have been executed with these two new static power scenarios  over the one site one core per node scenario.
+In these experiments, class D of the NAS parallel benchmarks are executed over the Nancy site. 16 computing nodes from the three clusters, Graphite, Graphene and Griffon, where used in this experiment. 
+
+
+
+
+\begin{figure}[!t]
+  \centering
+  \includegraphics[width=.7\textwidth]{fig/ch3/eng_pow.eps}
+  \caption{The energy saving percentages for the nodes executing the NAS benchmarks over the three power scenarios}
+  \label{fig:eng-pow}
+\end{figure}
+\begin{figure}[!t]
+  \centering
+   \includegraphics[width=.7\textwidth]{fig/ch3/per_pow.eps}
+  \caption{The performance degradation percentages for the NAS benchmarks over the three power scenarios}
+  \label{fig:per-pow}
+\end{figure}
+\begin{figure}[!t]
+  \centering
+  \includegraphics[width=.7\textwidth]{fig/ch3/dist_pow.eps}
+  \caption{The trade-off distance between the energy reduction and the performance of the NAS benchmarks over the three power scenarios}
+  \label{fig:dist-pow}
+\end{figure}
+
+
+\begin{figure}
+  \centering
+  \includegraphics[scale=0.7]{fig/ch3/three_scenarios2.pdf}
+  \caption{Comparing the selected frequency scaling factors for the MG benchmark over the three static power scenarios}
+  \label{fig:fre-pow}
+\end{figure}
+
+The energy saving percentages of the NAS benchmarks with the three static power scenarios are presented 
+in Figure~\ref{fig:eng-pow}. This figure shows that the  10\% of static power scenario 
+gives the biggest energy saving percentages in comparison to the 20\% and 30\% static power 
+scenarios. The small value of the static power consumption makes the proposed 
+scaling algorithm  select smaller frequencies for the CPUs. 
+These smaller frequencies reduce the dynamic energy consumption more than increasing the consumed static energy which gives 		less overall energy consumption. 
+The energy saving percentages of the 30\% static power scenario is the smallest between the other scenarios, because the scaling algorithm selects bigger frequencies for the CPUs which increases the energy consumption. Figure \ref{fig:fre-pow} demonstrates that the proposed scaling algorithm selects   the best frequency scaling factors   according to the static power consumption ratio being used.
+
+The performance degradation percentages are presented in Figure~\ref{fig:per-pow}.
+The 30\% static power scenario had less performance degradation percentage  because the scaling algorithm
+had  selected big frequencies for the CPUs. While, 
+the inverse happens in the 10\% and 20\% scenarios because the scaling algorithm had selected  CPUs' frequencies smaller than those of the 30\% scenario. The trade-off distance percentage for the NAS benchmarks with these three static power scenarios 
+are presented in Figure~\ref{fig:dist-pow}. 
+It shows that the best  trade-off
+distance percentage is obtained with  the  10\% static power scenario  and this percentage 
+is decreased for the other two scenarios because the scaling algorithm had selected different frequencies according to the static power values.
+
+In the EP benchmark, the energy saving, performance degradation and trade-off 
+distance percentages for these static power scenarios are not significantly different because there is no communication in this benchmark. Therefore, the static power is only consumed during computation and   the proposed scaling algorithm selects similar frequencies for the three scenarios.  On the other hand,  for the rest of the benchmarks,  the scaling algorithm  selects  the values of the frequencies according to the communication times of each benchmark because the static energy consumption increases  proportionally to the  communication times.
+
+
+ 
+\subsection{Comparison of the proposed frequencies selecting algorithm }
+\label{ch3:4:4}
+
+Finding the frequencies that give the best trade-off between the energy consumption and the performance for a parallel 
+application is not a trivial task.  Many algorithms have been proposed to tackle this problem.  
+In this section, the proposed frequencies selecting algorithm is compared to a method that uses the well known  energy and delay product objective function, $EDP=energy \times delay$, that has been used by many researchers  \cite{ref80,ref81,ref82}. 
+This objective function  was also used by Spiliopoulos et al. algorithm \cite{ref67} where they select the frequencies that minimize the EDP product and apply them with DVFS operations to  the multi-cores 
+architecture. Their online algorithm predicts the energy consumption and execution time of a processor before using the EDP method.
+
+To fairly compare the proposed frequencies scaling algorithm to  Spiliopoulos et al. algorithm, called Maxdist and EDP respectively, both algorithms use the same energy model,  Equation~\ref{eq:energy-grid} and
+execution time model, Equation~\ref{eq:perf-grid}, to predict the energy consumption and the execution time for each computing node.
+Moreover, both algorithms start the search space from the upper bound computed as in Equation~\ref{eq:Fint}.
+Finally, the resulting EDP algorithm is an exhaustive search algorithm that tests all the possible frequencies, starting from the initial frequencies (upper bound), 
+and selects the vector of frequencies that minimize the EDP product.
+Both algorithms were applied to class D of the NAS benchmarks over 16 nodes.
+The participating computing nodes are distributed  according to the two scenarios described in  Section~\ref{ch3:4:1}. 
+The experimental results, the energy saving, performance degradation and trade-off distance percentages, are 
+presented in  Figures~\ref{fig:edp-eng}, \ref{fig:edp-perf} and \ref{fig:edp-dist} respectively.
+
+
+
+\begin{figure*}[!t]
+  \centering
+  \includegraphics[width=.7\textwidth]{fig/ch3/edp_eng}
+\caption{The energy reduction induced by the Maxdist method and the EDP method}
+\label{fig:edp-eng}
+\end{figure*}
+\begin{figure*}[!t]
+  \centering
+  \includegraphics[width=.7\textwidth]{fig/ch3/edp_per}
+\caption{The performance degradation induced by the Maxdist method and the EDP method}
+\label{fig:edp-perf}
+\end{figure*}
+\begin{figure*}[!t]
+  \centering
+   \includegraphics[width=.7\textwidth]{fig/ch3/edp_dist}
+\caption{The trade-off distance between the energy consumption reduction and the performance for the Maxdist method and the  EDP method}
+\label{fig:edp-dist}
+\end{figure*}
+
+
+As shown in these figures, the proposed frequencies selection algorithm, Maxdist, outperforms the EDP algorithm in terms of energy consumption reduction and performance for all of the benchmarks executed over the two scenarios. 
+The proposed algorithm gives better results than EDP  because it 
+maximizes the energy saving and the performance at the same time. 
+Moreover, the proposed scaling algorithm gives the same weight for these two metrics.
+Whereas, the EDP algorithm gives sometimes negative trade-off values for some benchmarks in the two sites scenarios.
+These negative trade-off values mean that the performance degradation percentage is higher than the energy saving percentage.
+The high positive values of the trade-off distance percentage mean that the  energy saving percentage is much higher than the performance degradation percentage. 
+The time complexity of both Maxdist and EDP algorithms are $O(N \cdot M \cdot F)$ and 
+$O(N \cdot M \cdot F^2)$ respectively, where $N$ is the number of the clusters, $M$ is the number of nodes and $F$ is the 
+maximum number of available frequencies. When Maxdist is applied to a benchmark that is being executed over 32 nodes distributed between Nancy and Lyon sites, it takes on average  $0.01 ms$  to compute the best frequencies while EDP is on average ten times slower over the same architecture.  
+
+
+\section{Conclusion}
+\label{ch3:concl}
+In this chapter,  two new online frequency scaling factors selecting algorithms have been presented. They select the best possible vectors of frequency scaling factors that give the
+maximum distance (optimal trade-off) between the predicted energy and the
+predicted performance curves for a heterogeneous cluster and grid. Both  algorithms use a
+new energy models for measuring and predicting the energy of distributed
+iterative applications running over a heterogeneous local cluster and a grid platform. 
+Firstly, the  proposed scaling factors selection algorithm for a heterogeneous local cluster  is applied to  NAS parallel benchmarks class C and  simulated by SimGrid.
+The results of the experiments showed  that the algorithm on average reduces by 29.8\% the energy 
+consumption of NAS benchmarks executed over 8 nodes while limiting the degradation of the performance by 3.8\%.  The algorithm also selects different scaling factors according to
+the percentage of the computing and communication times, and according to the
+values of the static and dynamic powers of the CPUs. 
+Secondly, the proposed scaling factors selection algorithm for a grid is applied to  NAS parallel benchmarks class D and  executed over Grid5000 testbed platform.
+The experiments on 16 nodes, distributed over three clusters, showed that the algorithm   on average reduces by 30\% the energy consumption
+for all the NAS benchmarks   while  on average only degrading by 3.2\%   the performance. 
+The  algorithm was also evaluated in different scenarios that vary in the distribution of the computing nodes between different clusters' sites or  use multi-cores per node architecture or consume different static power values. The algorithm selects different vectors of frequencies according to the 
+computations and communication times ratios, and  the values of the static and measured dynamic powers of the CPUs. Thus, the simulation and the real results are comparable in term of energy saving and performance degradation percentages.
+Finally, both the proposed algorithms were compared to another method that uses
+the well known energy and delay product as an objective function. The comparison results showed 
+that the proposed algorithms outperform the latter by selecting vectors of frequencies that give a better 
+trade-off results. 
diff --git a/fig/ch3/Makefile b/fig/ch3/Makefile
new file mode 100644
index 0000000..f8cbf58
--- /dev/null
+++ b/fig/ch3/Makefile
@@ -0,0 +1,12 @@
+EPS = $(wildcard *.eps)
+PDF = $(EPS:%.eps=%.pdf)
+
+.PHONY: all clean
+
+all: $(PDF)
+
+clean:
+	$(RM) $(PDF)
+
+%.pdf: %.eps
+	epstopdf $<
diff --git a/fig/ch3/commtasks.pdf b/fig/ch3/commtasks.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..0e39a6d6e966be2bb2ae57da77b4096c95b5a4c9
GIT binary patch
literal 12821
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

literal 0
HcmV?d00001

diff --git a/fig/ch3/compare_EDP.pdf b/fig/ch3/compare_EDP.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..62b710d6a43fe6018694ad1717b63046b5ef93a3
GIT binary patch
literal 18711
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
QFNlW+m6ldYSsL~K0a%JhL;wH)

literal 0
HcmV?d00001

diff --git a/fig/ch3/dist-eps-converted-to.pdf b/fig/ch3/dist-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..3d2fbbfc7521ed8664ac1b39cbb9c68a67e74185
GIT binary patch
literal 21493
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%0D?7%&1vD&-vVa<nwX<HtoM
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
TXn=4COdzW)T4cR?xyru*OLc%}

literal 0
HcmV?d00001

diff --git a/fig/ch3/dist.eps b/fig/ch3/dist.eps
new file mode 100644
index 0000000..01ffcbc
--- /dev/null
+++ b/fig/ch3/dist.eps
@@ -0,0 +1,949 @@
+%!PS-Adobe-2.0
+%%Creator: gnuplot 4.6 patchlevel 6
+%%CreationDate: Thu Oct 22 12:39:41 2015
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 410
+%%Orientation: Portrait
+%%Pages: (atend)
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -36 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 554 50 lineto 554 410 lineto 50 410 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.6 (September 2012)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+  clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+%
+% Encoding for ISO-8859-1 (also called Latin1)
+%
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+	CharStrings /Idieresis known {
+		/Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/MFshow {
+   { dup 5 get 3 ge
+     { 5 get 3 eq {gsave} {grestore} ifelse }
+     {dup dup 0 get findfont exch 1 get scalefont setfont
+     [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
+     get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
+     {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
+     get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
+     dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
+     show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
+     pop aload pop M} ifelse }ifelse }ifelse }
+     ifelse }
+   forall} def
+/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
+/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
+ {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
+     6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
+/MLshow { currentpoint stroke M
+  0 exch R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MRshow { currentpoint stroke M
+  exch dup MFwidth neg 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MCshow { currentpoint stroke M
+  exch dup MFwidth -2 div 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/XYsave    { [( ) 1 2 true false 3 ()] } bind def
+/XYrestore { [( ) 1 2 true false 4 ()] } bind def
+/Helvetica reencodeISO def
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title ()
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 6)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Thu Oct 22 12:39:41 2015)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.100 0.100 scale
+0 setgray
+newpath
+(Helvetica) findfont 110 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if
+1.000 UL
+LTb
+473 352 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 352 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 0)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 421 M
+31 0 V
+4337 0 R
+-31 0 V
+473 490 M
+31 0 V
+4337 0 R
+-31 0 V
+473 560 M
+31 0 V
+4337 0 R
+-31 0 V
+473 629 M
+31 0 V
+4337 0 R
+-31 0 V
+473 698 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 698 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 5)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 767 M
+31 0 V
+4337 0 R
+-31 0 V
+473 837 M
+31 0 V
+4337 0 R
+-31 0 V
+473 906 M
+31 0 V
+4337 0 R
+-31 0 V
+473 975 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1044 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1044 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 10)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1114 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1183 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1252 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1321 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1391 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1391 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 15)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1460 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1529 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1598 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1668 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1737 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1737 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 20)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1806 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1875 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1945 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2014 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2083 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2083 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 25)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2152 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2222 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2291 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2360 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2429 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2429 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 30)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2499 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2568 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2637 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2706 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2776 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2776 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 35)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2845 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2914 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2983 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3053 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3122 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3122 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 40)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 3191 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3260 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3330 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3399 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3468 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3468 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 45)]
+] -50.0 MRshow
+1.000 UL
+LTb
+1019 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1019 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (CG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1565 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1565 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (MG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2111 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2111 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (EP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2657 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2657 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (LU)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3203 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3203 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (BT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3749 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3749 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (SP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4295 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4295 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (FT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+LCb setrgbcolor
+88 1910 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Helvetica) 180.0 0.0 true true 0 (Tradeoff distance)]
+] -60.0 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2657 77 M
+[ [(Helvetica) 180.0 0.0 true true 0 (NAS parallel benchmarks)]
+] -60.0 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UL
+LT0
+0.10 0.10 0.44 C LCb setrgbcolor
+1816 3264 M
+[ [(Helvetica) 140.0 0.0 true true 0 (One site  / 16 nodes)]
+] -46.7 MRshow
+LT0
+0.10 0.10 0.44 C 1882 3231 327 66 40 45 2 PatternFill
+0.10 0.10 0.44 C 892 352 73 1649 40 45 2 PatternFill
+0.10 0.10 0.44 C 1438 352 73 1986 40 45 2 PatternFill
+0.10 0.10 0.44 C 1984 352 73 1650 40 45 2 PatternFill
+0.10 0.10 0.44 C 2530 352 73 1435 40 45 2 PatternFill
+0.10 0.10 0.44 C 3076 352 73 2301 40 45 2 PatternFill
+0.10 0.10 0.44 C 3622 352 73 2236 40 45 2 PatternFill
+0.10 0.10 0.44 C 4168 352 73 1597 40 45 2 PatternFill
+% End plot #1
+% Begin plot #2
+1.000 UL
+LT1
+0.10 0.10 0.44 C LCb setrgbcolor
+1816 3132 M
+[ [(Helvetica) 140.0 0.0 true true 0 (One site  / 32 nodes)]
+] -46.7 MRshow
+LT1
+0.10 0.10 0.44 C 1.000 1882 3099 327 66 BoxColFill
+0.10 0.10 0.44 C 1.000 983 352 73 505 BoxColFill
+0.10 0.10 0.44 C 1.000 1529 352 73 817 BoxColFill
+0.10 0.10 0.44 C 1.000 2075 352 73 671 BoxColFill
+0.10 0.10 0.44 C 1.000 2621 352 73 1053 BoxColFill
+0.10 0.10 0.44 C 1.000 3167 352 73 918 BoxColFill
+0.10 0.10 0.44 C 1.000 3713 352 73 2622 BoxColFill
+0.10 0.10 0.44 C 1.000 4259 352 73 851 BoxColFill
+% End plot #2
+% Begin plot #3
+1.000 UL
+LT0
+0.00 0.39 0.00 C LCb setrgbcolor
+1816 3000 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Two sites / 16 nodes)]
+] -46.7 MRshow
+LT0
+0.00 0.39 0.00 C 1882 2967 327 66 80 -45 1 PatternFill
+0.00 0.39 0.00 C 1074 352 73 1085 80 -45 1 PatternFill
+0.00 0.39 0.00 C 1620 352 73 572 80 -45 1 PatternFill
+0.00 0.39 0.00 C 2166 352 73 310 80 -45 1 PatternFill
+0.00 0.39 0.00 C 2712 352 73 540 80 -45 1 PatternFill
+0.00 0.39 0.00 C 3258 352 73 1143 80 -45 1 PatternFill
+0.00 0.39 0.00 C 3804 352 73 1764 80 -45 1 PatternFill
+0.00 0.39 0.00 C 4350 352 73 1131 80 -45 1 PatternFill
+% End plot #3
+% Begin plot #4
+1.000 UL
+LT3
+0.94 0.50 0.50 C LCb setrgbcolor
+1816 2868 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Two sites / 32 nodes)]
+] -46.7 MRshow
+LT3
+0.94 0.50 0.50 C 1.000 1882 2835 327 66 BoxColFill
+0.94 0.50 0.50 C 1.000 1165 352 73 475 BoxColFill
+0.94 0.50 0.50 C 1.000 1711 352 73 1414 BoxColFill
+0.94 0.50 0.50 C 1.000 2257 352 73 349 BoxColFill
+0.94 0.50 0.50 C 1.000 2803 352 73 583 BoxColFill
+0.94 0.50 0.50 C 1.000 3349 352 73 547 BoxColFill
+0.94 0.50 0.50 C 1.000 3895 352 73 2430 BoxColFill
+0.94 0.50 0.50 C 1.000 4441 352 73 664 BoxColFill
+% End plot #4
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
diff --git a/fig/ch3/dist_mc-eps-converted-to.pdf b/fig/ch3/dist_mc-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..66a1560751af092833d822221222e9604bae2e9f
GIT binary patch
literal 7692
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
QBH{>!C^fa!>n%|K4-8T)umAu6

literal 0
HcmV?d00001

diff --git a/fig/ch3/dist_mc.eps b/fig/ch3/dist_mc.eps
new file mode 100644
index 0000000..240fa99
--- /dev/null
+++ b/fig/ch3/dist_mc.eps
@@ -0,0 +1,889 @@
+%!PS-Adobe-2.0
+%%Creator: gnuplot 4.6 patchlevel 6
+%%CreationDate: Thu Oct 22 17:45:05 2015
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 410
+%%Orientation: Portrait
+%%Pages: (atend)
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -36 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 554 50 lineto 554 410 lineto 50 410 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.6 (September 2012)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+  clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+%
+% Encoding for ISO-8859-1 (also called Latin1)
+%
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+	CharStrings /Idieresis known {
+		/Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/MFshow {
+   { dup 5 get 3 ge
+     { 5 get 3 eq {gsave} {grestore} ifelse }
+     {dup dup 0 get findfont exch 1 get scalefont setfont
+     [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
+     get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
+     {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
+     get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
+     dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
+     show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
+     pop aload pop M} ifelse }ifelse }ifelse }
+     ifelse }
+   forall} def
+/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
+/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
+ {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
+     6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
+/MLshow { currentpoint stroke M
+  0 exch R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MRshow { currentpoint stroke M
+  exch dup MFwidth neg 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MCshow { currentpoint stroke M
+  exch dup MFwidth -2 div 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/XYsave    { [( ) 1 2 true false 3 ()] } bind def
+/XYrestore { [( ) 1 2 true false 4 ()] } bind def
+/Helvetica reencodeISO def
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title ()
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 6)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Thu Oct 22 17:45:05 2015)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.100 0.100 scale
+0 setgray
+newpath
+(Helvetica) findfont 110 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if
+1.000 UL
+LTb
+473 352 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 352 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 0)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 430 M
+31 0 V
+4337 0 R
+-31 0 V
+473 508 M
+31 0 V
+4337 0 R
+-31 0 V
+473 586 M
+31 0 V
+4337 0 R
+-31 0 V
+473 664 M
+31 0 V
+4337 0 R
+-31 0 V
+473 742 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 742 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 5)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 819 M
+31 0 V
+4337 0 R
+-31 0 V
+473 897 M
+31 0 V
+4337 0 R
+-31 0 V
+473 975 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1053 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1131 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1131 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 10)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1209 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1287 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1365 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1443 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1521 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1521 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 15)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1598 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1676 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1754 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1832 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1910 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1910 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 20)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1988 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2066 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2144 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2222 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2300 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2300 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 25)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2377 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2455 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2533 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2611 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2689 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2689 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 30)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2767 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2845 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2923 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3001 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3079 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3079 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 35)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 3156 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3234 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3312 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3390 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3468 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3468 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 40)]
+] -50.0 MRshow
+1.000 UL
+LTb
+1019 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1019 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (CG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1565 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1565 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (MG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2111 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2111 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (EP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2657 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2657 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (LU)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3203 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3203 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (BT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3749 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3749 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (SP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4295 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4295 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (FT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+LCb setrgbcolor
+88 1910 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Helvetica) 180.0 0.0 true true 0 (Tradeoff distance)]
+] -60.0 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2657 77 M
+[ [(Helvetica) 180.0 0.0 true true 0 (NAS parallel benchmarks)]
+] -60.0 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UL
+LT0
+0.10 0.10 0.44 C LCb setrgbcolor
+2362 3246 M
+[ [(Helvetica) 140.0 0.0 true true 0 (One core per node scenario)]
+] -46.7 MRshow
+LT0
+0.10 0.10 0.44 C 1.000 2428 3213 327 66 BoxColFill
+0.10 0.10 0.44 C 1.000 964 352 111 568 BoxColFill
+0.10 0.10 0.44 C 1.000 1510 352 111 919 BoxColFill
+0.10 0.10 0.44 C 1.000 2056 352 111 755 BoxColFill
+0.10 0.10 0.44 C 1.000 2602 352 111 1184 BoxColFill
+0.10 0.10 0.44 C 1.000 3148 352 111 1033 BoxColFill
+0.10 0.10 0.44 C 1.000 3694 352 111 2938 BoxColFill
+0.10 0.10 0.44 C 1.000 4240 352 111 957 BoxColFill
+% End plot #1
+% Begin plot #2
+1.000 UL
+LT1
+0.94 0.50 0.50 C LCb setrgbcolor
+2362 3114 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Multicores per node scenario)]
+] -46.7 MRshow
+LT1
+0.94 0.50 0.50 C 1.000 2428 3081 327 66 BoxColFill
+0.94 0.50 0.50 C 1.000 1101 352 110 1106 BoxColFill
+0.94 0.50 0.50 C 1.000 1647 352 110 1256 BoxColFill
+0.94 0.50 0.50 C 1.000 2193 352 110 85 BoxColFill
+0.94 0.50 0.50 C 1.000 2739 352 110 1755 BoxColFill
+0.94 0.50 0.50 C 1.000 3285 352 110 1307 BoxColFill
+0.94 0.50 0.50 C 1.000 3831 352 110 2569 BoxColFill
+0.94 0.50 0.50 C 1.000 4377 352 110 1540 BoxColFill
+% End plot #2
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
diff --git a/fig/ch3/dist_pow-eps-converted-to.pdf b/fig/ch3/dist_pow-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..7b069ab9310f901ac771946ec7cf09cf42e93631
GIT binary patch
literal 7789
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
SfyhBb96=AEu5RIIiTEF+;6RiB

literal 0
HcmV?d00001

diff --git a/fig/ch3/dist_pow.eps b/fig/ch3/dist_pow.eps
new file mode 100644
index 0000000..488d6ff
--- /dev/null
+++ b/fig/ch3/dist_pow.eps
@@ -0,0 +1,906 @@
+%!PS-Adobe-2.0
+%%Creator: gnuplot 4.6 patchlevel 6
+%%CreationDate: Thu Oct 22 12:45:35 2015
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 410
+%%Orientation: Portrait
+%%Pages: (atend)
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -36 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 554 50 lineto 554 410 lineto 50 410 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.6 (September 2012)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+  clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+%
+% Encoding for ISO-8859-1 (also called Latin1)
+%
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+	CharStrings /Idieresis known {
+		/Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/MFshow {
+   { dup 5 get 3 ge
+     { 5 get 3 eq {gsave} {grestore} ifelse }
+     {dup dup 0 get findfont exch 1 get scalefont setfont
+     [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
+     get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
+     {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
+     get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
+     dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
+     show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
+     pop aload pop M} ifelse }ifelse }ifelse }
+     ifelse }
+   forall} def
+/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
+/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
+ {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
+     6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
+/MLshow { currentpoint stroke M
+  0 exch R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MRshow { currentpoint stroke M
+  exch dup MFwidth neg 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MCshow { currentpoint stroke M
+  exch dup MFwidth -2 div 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/XYsave    { [( ) 1 2 true false 3 ()] } bind def
+/XYrestore { [( ) 1 2 true false 4 ()] } bind def
+/Helvetica reencodeISO def
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title ()
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 6)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Thu Oct 22 12:45:35 2015)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.100 0.100 scale
+0 setgray
+newpath
+(Helvetica) findfont 110 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if
+1.000 UL
+LTb
+473 352 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 352 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 0)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 430 M
+31 0 V
+4337 0 R
+-31 0 V
+473 508 M
+31 0 V
+4337 0 R
+-31 0 V
+473 586 M
+31 0 V
+4337 0 R
+-31 0 V
+473 664 M
+31 0 V
+4337 0 R
+-31 0 V
+473 742 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 742 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 5)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 819 M
+31 0 V
+4337 0 R
+-31 0 V
+473 897 M
+31 0 V
+4337 0 R
+-31 0 V
+473 975 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1053 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1131 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1131 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 10)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1209 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1287 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1365 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1443 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1521 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1521 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 15)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1598 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1676 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1754 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1832 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1910 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1910 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 20)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1988 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2066 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2144 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2222 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2300 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2300 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 25)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2377 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2455 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2533 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2611 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2689 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2689 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 30)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2767 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2845 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2923 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3001 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3079 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3079 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 35)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 3156 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3234 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3312 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3390 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3468 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3468 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 40)]
+] -50.0 MRshow
+1.000 UL
+LTb
+1019 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1019 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (CG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1565 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1565 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (MG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2111 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2111 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (EP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2657 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2657 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (LU)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3203 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3203 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (BT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3749 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3749 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (SP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4295 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4295 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (FT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+LCb setrgbcolor
+88 1910 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Helvetica) 180.0 0.0 true true 0 (Tradeoff distance)]
+] -60.0 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2657 77 M
+[ [(Helvetica) 180.0 0.0 true true 0 (NAS parallel benchmarks)]
+] -60.0 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UL
+LT0
+0.10 0.10 0.44 C LCb setrgbcolor
+1761 3246 M
+[ [(Helvetica) 140.0 0.0 true true 0 (10% static power)]
+] -46.7 MRshow
+LT0
+0.10 0.10 0.44 C 1.000 1827 3213 327 66 BoxColFill
+0.10 0.10 0.44 C 1.000 921 352 88 2178 BoxColFill
+0.10 0.10 0.44 C 1.000 1467 352 88 2060 BoxColFill
+0.10 0.10 0.44 C 1.000 2013 352 88 1905 BoxColFill
+0.10 0.10 0.44 C 1.000 2559 352 88 2335 BoxColFill
+0.10 0.10 0.44 C 1.000 3105 352 88 2705 BoxColFill
+0.10 0.10 0.44 C 1.000 3651 352 88 2692 BoxColFill
+0.10 0.10 0.44 C 1.000 4197 352 88 2534 BoxColFill
+% End plot #1
+% Begin plot #2
+1.000 UL
+LT1
+0.24 0.70 0.44 C LCb setrgbcolor
+1761 3114 M
+[ [(Helvetica) 140.0 0.0 true true 0 (20% static power)]
+] -46.7 MRshow
+LT1
+0.24 0.70 0.44 C 1.000 1827 3081 327 66 BoxColFill
+0.24 0.70 0.44 C 1.000 1030 352 88 1855 BoxColFill
+0.24 0.70 0.44 C 1.000 1576 352 88 2234 BoxColFill
+0.24 0.70 0.44 C 1.000 2122 352 88 1856 BoxColFill
+0.24 0.70 0.44 C 1.000 2668 352 88 1614 BoxColFill
+0.24 0.70 0.44 C 1.000 3214 352 88 2588 BoxColFill
+0.24 0.70 0.44 C 1.000 3760 352 88 2516 BoxColFill
+0.24 0.70 0.44 C 1.000 4306 352 88 1797 BoxColFill
+% End plot #2
+% Begin plot #3
+1.000 UL
+LT0
+1.00 0.71 0.76 C LCb setrgbcolor
+1761 2982 M
+[ [(Helvetica) 140.0 0.0 true true 0 (30% static power)]
+] -46.7 MRshow
+LT0
+1.00 0.71 0.76 C 1.000 1827 2949 327 66 BoxColFill
+1.00 0.71 0.76 C 1.000 1139 352 88 266 BoxColFill
+1.00 0.71 0.76 C 1.000 1685 352 88 1018 BoxColFill
+1.00 0.71 0.76 C 1.000 2231 352 88 1441 BoxColFill
+1.00 0.71 0.76 C 1.000 2777 352 88 359 BoxColFill
+1.00 0.71 0.76 C 1.000 3323 352 88 1466 BoxColFill
+1.00 0.71 0.76 C 1.000 3869 352 88 1074 BoxColFill
+1.00 0.71 0.76 C 1.000 4415 352 88 650 BoxColFill
+% End plot #3
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
diff --git a/fig/ch3/edp_dist-eps-converted-to.pdf b/fig/ch3/edp_dist-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..afdfc821a5437a681a455eb95378ff325b1afc0f
GIT binary patch
literal 13151
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
aU;e=2j2v+%PJ_XbC_WNaR!K!ElK%s7vdVD)

literal 0
HcmV?d00001

diff --git a/fig/ch3/edp_dist.eps b/fig/ch3/edp_dist.eps
new file mode 100644
index 0000000..8389b5d
--- /dev/null
+++ b/fig/ch3/edp_dist.eps
@@ -0,0 +1,979 @@
+%!PS-Adobe-2.0
+%%Creator: gnuplot 4.6 patchlevel 6
+%%CreationDate: Thu Apr 21 10:02:20 2016
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 410
+%%Orientation: Portrait
+%%Pages: (atend)
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -36 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 554 50 lineto 554 410 lineto 50 410 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.6 (September 2012)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+  clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+%
+% Encoding for ISO-8859-1 (also called Latin1)
+%
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+	CharStrings /Idieresis known {
+		/Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/MFshow {
+   { dup 5 get 3 ge
+     { 5 get 3 eq {gsave} {grestore} ifelse }
+     {dup dup 0 get findfont exch 1 get scalefont setfont
+     [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
+     get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
+     {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
+     get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
+     dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
+     show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
+     pop aload pop M} ifelse }ifelse }ifelse }
+     ifelse }
+   forall} def
+/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
+/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
+ {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
+     6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
+/MLshow { currentpoint stroke M
+  0 exch R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MRshow { currentpoint stroke M
+  exch dup MFwidth neg 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MCshow { currentpoint stroke M
+  exch dup MFwidth -2 div 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/XYsave    { [( ) 1 2 true false 3 ()] } bind def
+/XYrestore { [( ) 1 2 true false 4 ()] } bind def
+/Helvetica reencodeISO def
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title ()
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 6)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Thu Apr 21 10:02:20 2016)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.100 0.100 scale
+0 setgray
+newpath
+(Helvetica) findfont 110 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if
+1.000 UL
+LTb
+473 352 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 352 M
+[ [(Helvetica) 150.0 0.0 true true 0 (-10)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 414 M
+31 0 V
+4337 0 R
+-31 0 V
+473 477 M
+31 0 V
+4337 0 R
+-31 0 V
+473 539 M
+31 0 V
+4337 0 R
+-31 0 V
+473 601 M
+31 0 V
+4337 0 R
+-31 0 V
+473 664 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 664 M
+[ [(Helvetica) 150.0 0.0 true true 0 (-5)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 726 M
+31 0 V
+4337 0 R
+-31 0 V
+473 788 M
+31 0 V
+4337 0 R
+-31 0 V
+473 851 M
+31 0 V
+4337 0 R
+-31 0 V
+473 913 M
+31 0 V
+4337 0 R
+-31 0 V
+473 975 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 975 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 0)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1038 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1100 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1162 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1224 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1287 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1287 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 5)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1349 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1411 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1474 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1536 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1598 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1598 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 10)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1661 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1723 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1785 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1848 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1910 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1910 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 15)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1972 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2035 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2097 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2159 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2222 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2222 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 20)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2284 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2346 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2409 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2471 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2533 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2533 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 25)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2596 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2658 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2720 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2782 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2845 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2845 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 30)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2907 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2969 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3032 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3094 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3156 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3156 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 35)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 3219 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3281 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3343 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3406 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3468 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3468 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 40)]
+] -50.0 MRshow
+1.000 UL
+LTb
+1019 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1019 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (CG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1565 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1565 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (MG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2111 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2111 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (EP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2657 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2657 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (LU)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3203 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3203 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (BT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3749 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3749 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (SP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4295 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4295 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (FT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+LCb setrgbcolor
+88 1910 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Helvetica) 180.0 0.0 true true 0 (Tradeoff distance)]
+] -60.0 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2657 77 M
+[ [(Helvetica) 180.0 0.0 true true 0 (NAS parallel benchmarks)]
+] -60.0 MCshow
+LTb
+1.000 UP
+1.000 UL
+LT1
+473 975 M
+4368 0 V
+stroke
+LTb
+% Begin plot #1
+1.000 UL
+LT0
+0.10 0.10 0.44 C LCb setrgbcolor
+1652 3277 M
+[ [(Helvetica) 140.0 0.0 true true 0 (EDP/ one site)]
+] -46.7 MRshow
+LT0
+0.10 0.10 0.44 C 1718 3244 327 66 40 45 2 PatternFill
+0.10 0.10 0.44 C 892 667 73 309 40 45 2 PatternFill
+0.10 0.10 0.44 C 1438 975 73 343 40 45 2 PatternFill
+0.10 0.10 0.44 C 1984 975 73 642 40 45 2 PatternFill
+0.10 0.10 0.44 C 2530 975 73 274 40 45 2 PatternFill
+0.10 0.10 0.44 C 3076 975 73 385 40 45 2 PatternFill
+0.10 0.10 0.44 C 3622 975 73 452 40 45 2 PatternFill
+0.10 0.10 0.44 C 4168 975 73 682 40 45 2 PatternFill
+% End plot #1
+% Begin plot #2
+1.000 UL
+LT1
+0.10 0.10 0.44 C LCb setrgbcolor
+1652 3145 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Maxdist/ one site)]
+] -46.7 MRshow
+LT1
+0.10 0.10 0.44 C 1.000 1718 3112 327 66 BoxColFill
+0.10 0.10 0.44 C 1.000 983 975 73 1484 BoxColFill
+0.10 0.10 0.44 C 1.000 1529 975 73 1787 BoxColFill
+0.10 0.10 0.44 C 1.000 2075 975 73 1485 BoxColFill
+0.10 0.10 0.44 C 1.000 2621 975 73 1292 BoxColFill
+0.10 0.10 0.44 C 1.000 3167 975 73 2071 BoxColFill
+0.10 0.10 0.44 C 1.000 3713 975 73 2013 BoxColFill
+0.10 0.10 0.44 C 1.000 4259 975 73 1438 BoxColFill
+% End plot #2
+% Begin plot #3
+1.000 UL
+LT0
+0.00 0.39 0.00 C LCb setrgbcolor
+1652 3013 M
+[ [(Helvetica) 140.0 0.0 true true 0 (EDP/ two sites)]
+] -46.7 MRshow
+LT0
+0.00 0.39 0.00 C 1718 2980 327 66 80 -45 1 PatternFill
+0.00 0.39 0.00 C 1074 636 73 340 80 -45 1 PatternFill
+0.00 0.39 0.00 C 1620 975 73 449 80 -45 1 PatternFill
+0.00 0.39 0.00 C 2166 571 73 405 80 -45 1 PatternFill
+0.00 0.39 0.00 C 2712 975 73 186 80 -45 1 PatternFill
+0.00 0.39 0.00 C 3258 975 73 295 80 -45 1 PatternFill
+0.00 0.39 0.00 C 3804 975 73 782 80 -45 1 PatternFill
+0.00 0.39 0.00 C 4350 975 73 732 80 -45 1 PatternFill
+% End plot #3
+% Begin plot #4
+1.000 UL
+LT3
+0.94 0.50 0.50 C LCb setrgbcolor
+1652 2881 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Maxdist/ two sites)]
+] -46.7 MRshow
+LT3
+0.94 0.50 0.50 C 1.000 1718 2848 327 66 BoxColFill
+0.94 0.50 0.50 C 1.000 1165 975 73 977 BoxColFill
+0.94 0.50 0.50 C 1.000 1711 975 73 515 BoxColFill
+0.94 0.50 0.50 C 1.000 2257 975 73 279 BoxColFill
+0.94 0.50 0.50 C 1.000 2803 975 73 469 BoxColFill
+0.94 0.50 0.50 C 1.000 3349 975 73 1029 BoxColFill
+0.94 0.50 0.50 C 1.000 3895 975 73 1588 BoxColFill
+0.94 0.50 0.50 C 1.000 4441 975 73 1018 BoxColFill
+% End plot #4
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
diff --git a/fig/ch3/edp_eng-eps-converted-to.pdf b/fig/ch3/edp_eng-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..c6e22e3f0767d4becfde18ffe79f6ce95e5f3a80
GIT binary patch
literal 15214
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
TUk-xu3J5~5nV96%<gxz`$^hW!

literal 0
HcmV?d00001

diff --git a/fig/ch3/edp_eng.eps b/fig/ch3/edp_eng.eps
new file mode 100644
index 0000000..850de41
--- /dev/null
+++ b/fig/ch3/edp_eng.eps
@@ -0,0 +1,949 @@
+%!PS-Adobe-2.0
+%%Creator: gnuplot 4.6 patchlevel 6
+%%CreationDate: Thu Oct 22 12:36:19 2015
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 410
+%%Orientation: Portrait
+%%Pages: (atend)
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -36 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 554 50 lineto 554 410 lineto 50 410 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.6 (September 2012)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+  clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+%
+% Encoding for ISO-8859-1 (also called Latin1)
+%
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+	CharStrings /Idieresis known {
+		/Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/MFshow {
+   { dup 5 get 3 ge
+     { 5 get 3 eq {gsave} {grestore} ifelse }
+     {dup dup 0 get findfont exch 1 get scalefont setfont
+     [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
+     get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
+     {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
+     get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
+     dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
+     show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
+     pop aload pop M} ifelse }ifelse }ifelse }
+     ifelse }
+   forall} def
+/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
+/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
+ {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
+     6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
+/MLshow { currentpoint stroke M
+  0 exch R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MRshow { currentpoint stroke M
+  exch dup MFwidth neg 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MCshow { currentpoint stroke M
+  exch dup MFwidth -2 div 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/XYsave    { [( ) 1 2 true false 3 ()] } bind def
+/XYrestore { [( ) 1 2 true false 4 ()] } bind def
+/Helvetica reencodeISO def
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title ()
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 6)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Thu Oct 22 12:36:19 2015)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.100 0.100 scale
+0 setgray
+newpath
+(Helvetica) findfont 110 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if
+1.000 UL
+LTb
+473 352 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 352 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 0)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 421 M
+31 0 V
+4337 0 R
+-31 0 V
+473 490 M
+31 0 V
+4337 0 R
+-31 0 V
+473 560 M
+31 0 V
+4337 0 R
+-31 0 V
+473 629 M
+31 0 V
+4337 0 R
+-31 0 V
+473 698 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 698 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 5)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 767 M
+31 0 V
+4337 0 R
+-31 0 V
+473 837 M
+31 0 V
+4337 0 R
+-31 0 V
+473 906 M
+31 0 V
+4337 0 R
+-31 0 V
+473 975 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1044 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1044 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 10)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1114 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1183 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1252 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1321 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1391 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1391 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 15)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1460 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1529 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1598 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1668 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1737 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1737 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 20)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1806 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1875 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1945 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2014 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2083 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2083 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 25)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2152 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2222 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2291 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2360 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2429 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2429 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 30)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2499 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2568 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2637 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2706 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2776 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2776 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 35)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2845 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2914 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2983 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3053 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3122 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3122 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 40)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 3191 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3260 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3330 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3399 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3468 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3468 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 45)]
+] -50.0 MRshow
+1.000 UL
+LTb
+1019 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1019 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (CG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1565 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1565 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (MG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2111 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2111 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (EP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2657 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2657 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (LU)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3203 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3203 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (BT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3749 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3749 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (SP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4295 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4295 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (FT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+LCb setrgbcolor
+88 1910 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Helvetica) 180.0 0.0 true true 0 (Energy saving)]
+] -60.0 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2657 77 M
+[ [(Helvetica) 180.0 0.0 true true 0 (NAS parallel benchmarks)]
+] -60.0 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UL
+LT0
+0.10 0.10 0.44 C LCb setrgbcolor
+1652 3264 M
+[ [(Helvetica) 140.0 0.0 true true 0 (EDP/ one site)]
+] -46.7 MRshow
+LT0
+0.10 0.10 0.44 C 1718 3231 327 66 40 45 2 PatternFill
+0.10 0.10 0.44 C 892 352 73 744 40 45 2 PatternFill
+0.10 0.10 0.44 C 1438 352 73 524 40 45 2 PatternFill
+0.10 0.10 0.44 C 1984 352 73 1053 40 45 2 PatternFill
+0.10 0.10 0.44 C 2530 352 73 375 40 45 2 PatternFill
+0.10 0.10 0.44 C 3076 352 73 664 40 45 2 PatternFill
+0.10 0.10 0.44 C 3622 352 73 541 40 45 2 PatternFill
+0.10 0.10 0.44 C 4168 352 73 831 40 45 2 PatternFill
+% End plot #1
+% Begin plot #2
+1.000 UL
+LT1
+0.10 0.10 0.44 C LCb setrgbcolor
+1652 3132 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Maxdist/ one site)]
+] -46.7 MRshow
+LT1
+0.10 0.10 0.44 C 1.000 1718 3099 327 66 BoxColFill
+0.10 0.10 0.44 C 1.000 983 352 73 2096 BoxColFill
+0.10 0.10 0.44 C 1.000 1529 352 73 2371 BoxColFill
+0.10 0.10 0.44 C 1.000 2075 352 73 1740 BoxColFill
+0.10 0.10 0.44 C 1.000 2621 352 73 1676 BoxColFill
+0.10 0.10 0.44 C 1.000 3167 352 73 2497 BoxColFill
+0.10 0.10 0.44 C 1.000 3713 352 73 2360 BoxColFill
+0.10 0.10 0.44 C 1.000 4259 352 73 1665 BoxColFill
+% End plot #2
+% Begin plot #3
+1.000 UL
+LT0
+0.00 0.39 0.00 C LCb setrgbcolor
+1652 3000 M
+[ [(Helvetica) 140.0 0.0 true true 0 (EDP/ two sites)]
+] -46.7 MRshow
+LT0
+0.00 0.39 0.00 C 1718 2967 327 66 80 -45 1 PatternFill
+0.00 0.39 0.00 C 1074 352 73 176 80 -45 1 PatternFill
+0.00 0.39 0.00 C 1620 352 73 642 80 -45 1 PatternFill
+0.00 0.39 0.00 C 2166 352 73 1755 80 -45 1 PatternFill
+0.00 0.39 0.00 C 2712 352 73 252 80 -45 1 PatternFill
+0.00 0.39 0.00 C 3258 352 73 1115 80 -45 1 PatternFill
+0.00 0.39 0.00 C 3804 352 73 1022 80 -45 1 PatternFill
+0.00 0.39 0.00 C 4350 352 73 903 80 -45 1 PatternFill
+% End plot #3
+% Begin plot #4
+1.000 UL
+LT3
+0.94 0.50 0.50 C LCb setrgbcolor
+1652 2868 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Maxdist/ two sites)]
+] -46.7 MRshow
+LT3
+0.94 0.50 0.50 C 1.000 1718 2835 327 66 BoxColFill
+0.94 0.50 0.50 C 1.000 1165 352 73 1376 BoxColFill
+0.94 0.50 0.50 C 1.000 1711 352 73 1503 BoxColFill
+0.94 0.50 0.50 C 1.000 2257 352 73 2184 BoxColFill
+0.94 0.50 0.50 C 1.000 2803 352 73 547 BoxColFill
+0.94 0.50 0.50 C 1.000 3349 352 73 1560 BoxColFill
+0.94 0.50 0.50 C 1.000 3895 352 73 2211 BoxColFill
+0.94 0.50 0.50 C 1.000 4441 352 73 1186 BoxColFill
+% End plot #4
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
diff --git a/fig/ch3/edp_per-eps-converted-to.pdf b/fig/ch3/edp_per-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..8da5afb8fa69b20c360c36c4fa9adb5e369332c6
GIT binary patch
literal 13241
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

literal 0
HcmV?d00001

diff --git a/fig/ch3/edp_per.eps b/fig/ch3/edp_per.eps
new file mode 100644
index 0000000..1fb48ec
--- /dev/null
+++ b/fig/ch3/edp_per.eps
@@ -0,0 +1,897 @@
+%!PS-Adobe-2.0
+%%Creator: gnuplot 4.6 patchlevel 6
+%%CreationDate: Thu Oct 22 12:36:20 2015
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 410
+%%Orientation: Portrait
+%%Pages: (atend)
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -36 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 554 50 lineto 554 410 lineto 50 410 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.6 (September 2012)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+  clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+%
+% Encoding for ISO-8859-1 (also called Latin1)
+%
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+	CharStrings /Idieresis known {
+		/Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/MFshow {
+   { dup 5 get 3 ge
+     { 5 get 3 eq {gsave} {grestore} ifelse }
+     {dup dup 0 get findfont exch 1 get scalefont setfont
+     [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
+     get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
+     {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
+     get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
+     dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
+     show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
+     pop aload pop M} ifelse }ifelse }ifelse }
+     ifelse }
+   forall} def
+/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
+/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
+ {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
+     6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
+/MLshow { currentpoint stroke M
+  0 exch R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MRshow { currentpoint stroke M
+  exch dup MFwidth neg 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MCshow { currentpoint stroke M
+  exch dup MFwidth -2 div 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/XYsave    { [( ) 1 2 true false 3 ()] } bind def
+/XYrestore { [( ) 1 2 true false 4 ()] } bind def
+/Helvetica reencodeISO def
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title ()
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 6)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Thu Oct 22 12:36:20 2015)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.100 0.100 scale
+0 setgray
+newpath
+(Helvetica) findfont 110 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if
+1.000 UL
+LTb
+473 352 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 352 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 0)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 441 M
+31 0 V
+4337 0 R
+-31 0 V
+473 530 M
+31 0 V
+4337 0 R
+-31 0 V
+473 619 M
+31 0 V
+4337 0 R
+-31 0 V
+473 708 M
+31 0 V
+4337 0 R
+-31 0 V
+473 797 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 797 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 5)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 886 M
+31 0 V
+4337 0 R
+-31 0 V
+473 975 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1064 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1153 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1242 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1242 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 10)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1331 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1420 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1509 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1598 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1687 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1687 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 15)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1776 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1865 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1955 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2044 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2133 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2133 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 20)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2222 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2311 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2400 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2489 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2578 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2578 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 25)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2667 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2756 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2845 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2934 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3023 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3023 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 30)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 3112 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3201 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3290 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3379 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3468 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3468 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 35)]
+] -50.0 MRshow
+1.000 UL
+LTb
+1019 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1019 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (CG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1565 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1565 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (MG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2111 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2111 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (EP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2657 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2657 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (LU)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3203 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3203 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (BT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3749 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3749 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (SP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4295 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4295 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (FT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+LCb setrgbcolor
+88 1910 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Helvetica) 180.0 0.0 true true 0 (Performance degradation)]
+] -60.0 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2657 77 M
+[ [(Helvetica) 180.0 0.0 true true 0 (NAS parallel benchmarks)]
+] -60.0 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UL
+LT0
+0.10 0.10 0.44 C LCb setrgbcolor
+1652 3224 M
+[ [(Helvetica) 140.0 0.0 true true 0 (EDP/ one site)]
+] -46.7 MRshow
+LT0
+0.10 0.10 0.44 C 1718 3191 327 66 40 45 2 PatternFill
+0.10 0.10 0.44 C 892 352 73 1398 40 45 2 PatternFill
+0.10 0.10 0.44 C 1438 352 73 184 40 45 2 PatternFill
+0.10 0.10 0.44 C 1984 352 73 437 40 45 2 PatternFill
+0.10 0.10 0.44 C 2530 352 73 93 40 45 2 PatternFill
+0.10 0.10 0.44 C 3076 352 73 305 40 45 2 PatternFill
+0.10 0.10 0.44 C 3622 352 73 51 40 45 2 PatternFill
+0.10 0.10 0.44 C 4168 352 73 94 40 45 2 PatternFill
+% End plot #1
+% Begin plot #2
+1.000 UL
+LT1
+0.10 0.10 0.44 C LCb setrgbcolor
+1652 3092 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Maxdist/ one site)]
+] -46.7 MRshow
+LT1
+0.10 0.10 0.44 C 1.000 1718 3059 327 66 BoxColFill
+0.10 0.10 0.44 C 1.000 983 352 73 575 BoxColFill
+0.10 0.10 0.44 C 1.000 1529 352 73 496 BoxColFill
+0.10 0.10 0.44 C 1.000 2075 352 73 135 BoxColFill
+0.10 0.10 0.44 C 1.000 2621 352 73 310 BoxColFill
+0.10 0.10 0.44 C 1.000 3167 352 73 253 BoxColFill
+0.10 0.10 0.44 C 1.000 3713 352 73 160 BoxColFill
+0.10 0.10 0.44 C 1.000 4259 352 73 88 BoxColFill
+% End plot #2
+% Begin plot #3
+1.000 UL
+LT0
+0.00 0.39 0.00 C LCb setrgbcolor
+1652 2960 M
+[ [(Helvetica) 140.0 0.0 true true 0 (EDP/ two sites)]
+] -46.7 MRshow
+LT0
+0.00 0.39 0.00 C 1718 2927 327 66 80 -45 1 PatternFill
+0.00 0.39 0.00 C 1074 352 73 712 80 -45 1 PatternFill
+0.00 0.39 0.00 C 1620 352 73 188 80 -45 1 PatternFill
+0.00 0.39 0.00 C 2166 352 73 2833 80 -45 1 PatternFill
+0.00 0.39 0.00 C 2712 352 73 60 80 -45 1 PatternFill
+0.00 0.39 0.00 C 3258 352 73 1013 80 -45 1 PatternFill
+0.00 0.39 0.00 C 3804 352 73 198 80 -45 1 PatternFill
+0.00 0.39 0.00 C 4350 352 73 116 80 -45 1 PatternFill
+% End plot #3
+% Begin plot #4
+1.000 UL
+LT3
+0.94 0.50 0.50 C LCb setrgbcolor
+1652 2828 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Maxdist/ two sites)]
+] -46.7 MRshow
+LT3
+0.94 0.50 0.50 C 1.000 1718 2795 327 66 BoxColFill
+0.94 0.50 0.50 C 1.000 1165 352 73 374 BoxColFill
+0.94 0.50 0.50 C 1.000 1711 352 73 1197 BoxColFill
+0.94 0.50 0.50 C 1.000 2257 352 73 2409 BoxColFill
+0.94 0.50 0.50 C 1.000 2803 352 73 37 BoxColFill
+0.94 0.50 0.50 C 1.000 3349 352 73 538 BoxColFill
+0.94 0.50 0.50 C 1.000 3895 352 73 574 BoxColFill
+0.94 0.50 0.50 C 1.000 4441 352 73 71 BoxColFill
+% End plot #4
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
diff --git a/fig/ch3/energy-eps-converted-to.pdf b/fig/ch3/energy-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..6a37f89f1c9336dfe63fb4516666dc360f30f01d
GIT binary patch
literal 9472
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

literal 0
HcmV?d00001

diff --git a/fig/ch3/energy.eps b/fig/ch3/energy.eps
new file mode 100644
index 0000000..2a54918
--- /dev/null
+++ b/fig/ch3/energy.eps
@@ -0,0 +1,868 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: energy.eps
+%%Creator: gnuplot 4.6 patchlevel 0
+%%CreationDate: Thu Feb 19 16:44:03 2015
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 320 239
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -46 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 320 50 lineto 320 239 lineto 50 239 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.4 (August 2010)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  gsave 1 setgray fill grestore clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title (energy.eps)
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 0)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Thu Feb 19 16:44:03 2015)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {BackgroundColor C 1.000 0 0 5400.00 3780.00 BoxColFill} if
+1.000 UL
+LTb
+602 588 M
+63 0 V
+4482 0 R
+-63 0 V
+/Helvetica findfont 190 scalefont setfont
+518 588 M
+( 0) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+602 948 M
+63 0 V
+4482 0 R
+-63 0 V
+/Helvetica findfont 190 scalefont setfont
+518 948 M
+( 5) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+602 1308 M
+63 0 V
+4482 0 R
+-63 0 V
+/Helvetica findfont 190 scalefont setfont
+-4566 0 R
+( 10) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+602 1668 M
+63 0 V
+4482 0 R
+-63 0 V
+/Helvetica findfont 190 scalefont setfont
+-4566 0 R
+( 15) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+602 2028 M
+63 0 V
+4482 0 R
+-63 0 V
+/Helvetica findfont 190 scalefont setfont
+-4566 0 R
+( 20) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+602 2387 M
+63 0 V
+4482 0 R
+-63 0 V
+/Helvetica findfont 190 scalefont setfont
+-4566 0 R
+( 25) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+602 2747 M
+63 0 V
+4482 0 R
+-63 0 V
+/Helvetica findfont 190 scalefont setfont
+-4566 0 R
+( 30) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+602 3107 M
+63 0 V
+4482 0 R
+-63 0 V
+/Helvetica findfont 190 scalefont setfont
+-4566 0 R
+( 35) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+602 3467 M
+63 0 V
+4482 0 R
+-63 0 V
+/Helvetica findfont 190 scalefont setfont
+-4566 0 R
+( 40) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+604 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+604 448 M
+( 0) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+1088 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+0 -3100 R
+( 16) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+1572 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+0 -3100 R
+( 32) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+2057 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+0 -3100 R
+( 48) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+2541 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+0 -3100 R
+( 64) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+3026 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+0 -3100 R
+( 80) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+3510 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+0 -3100 R
+( 96) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+3995 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+0 -3100 R
+( 112) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+4479 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+0 -3100 R
+( 128) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+4964 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+0 -3100 R
+( 144) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+1.000 UL
+LTb
+602 3611 N
+602 588 L
+4545 0 V
+0 3023 V
+-4545 0 V
+Z stroke
+LCb setrgbcolor
+/Helvetica findfont 210 scalefont setfont
+112 2099 M
+currentpoint gsave translate -270 rotate 0 0 M
+(Energy saving) Cshow
+grestore
+/Helvetica findfont 140 scalefont setfont
+LTb
+LCb setrgbcolor
+/Helvetica findfont 210 scalefont setfont
+2974 98 M
+( Number of nodes) Cshow
+/Helvetica findfont 140 scalefont setfont
+LTb
+1.000 UP
+/Helvetica findfont 190 scalefont setfont
+649 620 M
+(              ) Lshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+% Begin plot #1
+1.500 UP
+2.000 UL
+LT0
+0.00 0.00 1.00 C LCb setrgbcolor
+/Helvetica findfont 190 scalefont setfont
+1259 3443 M
+(CG) Rshow
+/Helvetica findfont 140 scalefont setfont
+LT0
+0.00 0.00 1.00 C 709 3443 M
+298 0 V
+725 3047 M
+846 2838 L
+242 -357 V
+484 -730 V
+969 -578 V
+4479 876 L
+725 3047 Box
+846 2838 Box
+1088 2481 Box
+1572 1751 Box
+2541 1173 Box
+4479 876 Box
+858 3443 Box
+% End plot #1
+% Begin plot #2
+1.500 UP
+2.000 UL
+LT0
+1.00 0.00 0.00 C LCb setrgbcolor
+/Helvetica findfont 190 scalefont setfont
+1893 3443 M
+(MG) Rshow
+/Helvetica findfont 140 scalefont setfont
+LT0
+1.00 0.00 0.00 C 1343 3443 M
+298 0 V
+725 3134 M
+846 3020 L
+242 -93 V
+484 -256 V
+969 24 V
+4479 1940 L
+725 3134 TriD
+846 3020 TriD
+1088 2927 TriD
+1572 2671 TriD
+2541 2695 TriD
+4479 1940 TriD
+1492 3443 TriD
+% End plot #2
+% Begin plot #3
+1.500 UP
+2.000 UL
+LT0
+0.50 0.00 0.50 C LCb setrgbcolor
+/Helvetica findfont 190 scalefont setfont
+2527 3443 M
+(EP) Rshow
+/Helvetica findfont 140 scalefont setfont
+LT0
+0.50 0.00 0.50 C 1977 3443 M
+298 0 V
+725 2519 M
+121 15 V
+242 -13 V
+484 9 V
+969 10 V
+1938 -2 V
+725 2519 Star
+846 2534 Star
+1088 2521 Star
+1572 2530 Star
+2541 2540 Star
+4479 2538 Star
+2126 3443 Star
+% End plot #3
+% Begin plot #4
+1.500 UP
+2.000 UL
+LT0
+0.18 0.31 0.31 C LCb setrgbcolor
+/Helvetica findfont 190 scalefont setfont
+3161 3443 M
+(LU) Rshow
+/Helvetica findfont 140 scalefont setfont
+LT0
+0.18 0.31 0.31 C 2611 3443 M
+298 0 V
+725 3036 M
+846 2620 L
+242 41 V
+484 -374 V
+969 -118 V
+4479 1788 L
+725 3036 TriUF
+846 2620 TriUF
+1088 2661 TriUF
+1572 2287 TriUF
+2541 2169 TriUF
+4479 1788 TriUF
+2760 3443 TriUF
+% End plot #4
+% Begin plot #5
+1.500 UP
+2.000 UL
+LT0
+0.18 0.55 0.34 C LCb setrgbcolor
+/Helvetica findfont 190 scalefont setfont
+3795 3443 M
+(BT) Rshow
+/Helvetica findfont 140 scalefont setfont
+LT0
+0.18 0.55 0.34 C 3245 3443 M
+298 0 V
+725 3133 M
+876 2915 L
+212 189 V
+606 -24 V
+847 -187 V
+4964 2257 L
+725 3133 BoxF
+876 2915 BoxF
+1088 3104 BoxF
+1694 3080 BoxF
+2541 2893 BoxF
+4964 2257 BoxF
+3394 3443 BoxF
+% End plot #5
+% Begin plot #6
+1.500 UP
+2.000 UL
+LT0
+0.85 0.65 0.13 C LCb setrgbcolor
+/Helvetica findfont 190 scalefont setfont
+4429 3443 M
+(SP) Rshow
+/Helvetica findfont 140 scalefont setfont
+LT0
+0.85 0.65 0.13 C 3879 3443 M
+298 0 V
+725 3123 M
+876 2368 L
+212 -161 V
+606 17 V
+847 152 V
+2423 136 V
+725 3123 Circle
+876 2368 Circle
+1088 2207 Circle
+1694 2224 Circle
+2541 2376 Circle
+4964 2512 Circle
+4028 3443 Circle
+% End plot #6
+% Begin plot #7
+1.500 UP
+2.000 UL
+LT0
+0.55 0.00 0.00 C LCb setrgbcolor
+/Helvetica findfont 190 scalefont setfont
+5063 3443 M
+(FT) Rshow
+/Helvetica findfont 140 scalefont setfont
+LT0
+0.55 0.00 0.00 C 4513 3443 M
+298 0 V
+725 3148 M
+846 2821 L
+242 41 V
+484 -612 V
+969 -212 V
+4479 1513 L
+725 3148 CircleF
+846 2821 CircleF
+1088 2862 CircleF
+1572 2250 CircleF
+2541 2038 CircleF
+4479 1513 CircleF
+4662 3443 CircleF
+% End plot #7
+1.000 UL
+LTb
+602 3611 N
+602 588 L
+4545 0 V
+0 3023 V
+-4545 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
diff --git a/fig/ch3/eng_con-eps-converted-to.pdf b/fig/ch3/eng_con-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..638625214a896e9d898eab1fd73db6575df2351f
GIT binary patch
literal 8910
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
QoV2VgOjuamPy_aV0F!%RtN;K2

literal 0
HcmV?d00001

diff --git a/fig/ch3/eng_con.eps b/fig/ch3/eng_con.eps
new file mode 100644
index 0000000..814faa1
--- /dev/null
+++ b/fig/ch3/eng_con.eps
@@ -0,0 +1,961 @@
+%!PS-Adobe-2.0
+%%Creator: gnuplot 4.6 patchlevel 6
+%%CreationDate: Thu Oct 22 17:46:42 2015
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 410
+%%Orientation: Portrait
+%%Pages: (atend)
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -36 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 554 50 lineto 554 410 lineto 50 410 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.6 (September 2012)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+  clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+%
+% Encoding for ISO-8859-1 (also called Latin1)
+%
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+	CharStrings /Idieresis known {
+		/Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/MFshow {
+   { dup 5 get 3 ge
+     { 5 get 3 eq {gsave} {grestore} ifelse }
+     {dup dup 0 get findfont exch 1 get scalefont setfont
+     [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
+     get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
+     {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
+     get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
+     dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
+     show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
+     pop aload pop M} ifelse }ifelse }ifelse }
+     ifelse }
+   forall} def
+/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
+/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
+ {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
+     6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
+/MLshow { currentpoint stroke M
+  0 exch R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MRshow { currentpoint stroke M
+  exch dup MFwidth neg 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MCshow { currentpoint stroke M
+  exch dup MFwidth -2 div 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/XYsave    { [( ) 1 2 true false 3 ()] } bind def
+/XYrestore { [( ) 1 2 true false 4 ()] } bind def
+/Helvetica reencodeISO def
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title ()
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 6)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Thu Oct 22 17:46:42 2015)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.100 0.100 scale
+0 setgray
+newpath
+(Helvetica) findfont 110 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if
+1.000 UL
+LTb
+803 352 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 352 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 0)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 414 M
+31 0 V
+4007 0 R
+-31 0 V
+803 477 M
+31 0 V
+4007 0 R
+-31 0 V
+803 539 M
+31 0 V
+4007 0 R
+-31 0 V
+803 601 M
+31 0 V
+4007 0 R
+-31 0 V
+803 664 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 664 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 300000)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 726 M
+31 0 V
+4007 0 R
+-31 0 V
+803 788 M
+31 0 V
+4007 0 R
+-31 0 V
+803 851 M
+31 0 V
+4007 0 R
+-31 0 V
+803 913 M
+31 0 V
+4007 0 R
+-31 0 V
+803 975 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 975 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 600000)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 1038 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1100 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1162 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1224 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1287 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 1287 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 900000)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 1349 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1411 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1474 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1536 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1598 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 1598 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 1.2e+06)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 1661 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1723 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1785 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1848 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1910 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 1910 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 1.5e+06)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 1972 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2035 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2097 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2159 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2222 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 2222 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 1.8e+06)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 2284 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2346 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2409 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2471 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2533 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 2533 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 2.1e+06)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 2596 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2658 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2720 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2782 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2845 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 2845 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 2.4e+06)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 2907 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2969 M
+31 0 V
+4007 0 R
+-31 0 V
+803 3032 M
+31 0 V
+4007 0 R
+-31 0 V
+803 3094 M
+31 0 V
+4007 0 R
+-31 0 V
+803 3156 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 3156 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 2.7e+06)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 3219 M
+31 0 V
+4007 0 R
+-31 0 V
+803 3281 M
+31 0 V
+4007 0 R
+-31 0 V
+803 3343 M
+31 0 V
+4007 0 R
+-31 0 V
+803 3406 M
+31 0 V
+4007 0 R
+-31 0 V
+803 3468 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 3468 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 3e+06)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+803 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (CG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1476 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1476 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (MG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2149 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2149 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (EP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2822 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2822 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (LU)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3495 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3495 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (BT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4168 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4168 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (SP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4841 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4841 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (FT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1.000 UL
+LTb
+803 3468 N
+803 352 L
+4038 0 V
+0 3116 V
+-4038 0 V
+Z stroke
+LCb setrgbcolor
+88 1910 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Helvetica) 180.0 0.0 true true 0 (Energy consumption [J])]
+] -60.0 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2822 77 M
+[ [(Helvetica) 180.0 0.0 true true 0 (NAS parallel benchmarks)]
+] -60.0 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UP
+1.000 UL
+LT0
+0.10 0.10 0.44 C LCb setrgbcolor
+2767 3298 M
+[ [(Helvetica) 140.0 0.0 true true 0 (One core per node scenario)]
+] -46.7 MRshow
+LT0
+0.10 0.10 0.44 C 2833 3298 M
+327 0 V
+803 768 M
+1476 427 L
+673 92 V
+673 625 V
+3495 610 L
+673 1288 V
+4841 705 L
+803 768 Pls
+1476 427 Pls
+2149 519 Pls
+2822 1144 Pls
+3495 610 Pls
+4168 1898 Pls
+4841 705 Pls
+2996 3298 Pls
+% End plot #1
+% Begin plot #2
+1.000 UP
+1.000 UL
+LT1
+1.00 0.00 0.00 C LCb setrgbcolor
+2767 3166 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Multicores per node scenario)]
+] -46.7 MRshow
+LT1
+1.00 0.00 0.00 C 2833 3166 M
+327 0 V
+803 1231 M
+1476 494 L
+673 48 V
+673 355 V
+3495 718 L
+673 2118 V
+4841 631 L
+803 1231 Crs
+1476 494 Crs
+2149 542 Crs
+2822 897 Crs
+3495 718 Crs
+4168 2836 Crs
+4841 631 Crs
+2996 3166 Crs
+% End plot #2
+1.000 UL
+LTb
+803 3468 N
+803 352 L
+4038 0 V
+0 3116 V
+-4038 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
diff --git a/fig/ch3/eng_con_scenarios-eps-converted-to.pdf b/fig/ch3/eng_con_scenarios-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..ff5a6903d3a5b01535b8b7386de4ca5fbeee89ef
GIT binary patch
literal 9314
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
JG`2B;{6F-+9mW6v

literal 0
HcmV?d00001

diff --git a/fig/ch3/eng_con_scenarios.eps b/fig/ch3/eng_con_scenarios.eps
new file mode 100644
index 0000000..7feac40
--- /dev/null
+++ b/fig/ch3/eng_con_scenarios.eps
@@ -0,0 +1,967 @@
+%!PS-Adobe-2.0
+%%Creator: gnuplot 4.6 patchlevel 6
+%%CreationDate: Thu Oct 22 12:39:18 2015
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 410
+%%Orientation: Portrait
+%%Pages: (atend)
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -36 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 554 50 lineto 554 410 lineto 50 410 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.6 (September 2012)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+  clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+%
+% Encoding for ISO-8859-1 (also called Latin1)
+%
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+	CharStrings /Idieresis known {
+		/Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/MFshow {
+   { dup 5 get 3 ge
+     { 5 get 3 eq {gsave} {grestore} ifelse }
+     {dup dup 0 get findfont exch 1 get scalefont setfont
+     [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
+     get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
+     {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
+     get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
+     dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
+     show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
+     pop aload pop M} ifelse }ifelse }ifelse }
+     ifelse }
+   forall} def
+/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
+/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
+ {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
+     6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
+/MLshow { currentpoint stroke M
+  0 exch R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MRshow { currentpoint stroke M
+  exch dup MFwidth neg 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MCshow { currentpoint stroke M
+  exch dup MFwidth -2 div 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/XYsave    { [( ) 1 2 true false 3 ()] } bind def
+/XYrestore { [( ) 1 2 true false 4 ()] } bind def
+/Helvetica reencodeISO def
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title ()
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 6)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Thu Oct 22 12:39:18 2015)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.100 0.100 scale
+0 setgray
+newpath
+(Helvetica) findfont 110 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if
+1.000 UL
+LTb
+803 352 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 352 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 0)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 427 M
+31 0 V
+4007 0 R
+-31 0 V
+803 502 M
+31 0 V
+4007 0 R
+-31 0 V
+803 576 M
+31 0 V
+4007 0 R
+-31 0 V
+803 651 M
+31 0 V
+4007 0 R
+-31 0 V
+803 726 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 726 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 300000)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 801 M
+31 0 V
+4007 0 R
+-31 0 V
+803 875 M
+31 0 V
+4007 0 R
+-31 0 V
+803 950 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1025 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1100 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 1100 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 600000)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 1175 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1249 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1324 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1399 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1474 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 1474 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 900000)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 1549 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1623 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1698 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1773 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1848 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 1848 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 1.2e+06)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 1922 M
+31 0 V
+4007 0 R
+-31 0 V
+803 1997 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2072 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2147 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2222 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 2222 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 1.5e+06)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 2296 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2371 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2446 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2521 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2596 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 2596 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 1.8e+06)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 2670 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2745 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2820 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2895 M
+31 0 V
+4007 0 R
+-31 0 V
+803 2969 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 2969 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 2.1e+06)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 3044 M
+31 0 V
+4007 0 R
+-31 0 V
+803 3119 M
+31 0 V
+4007 0 R
+-31 0 V
+803 3194 M
+31 0 V
+4007 0 R
+-31 0 V
+803 3269 M
+31 0 V
+4007 0 R
+-31 0 V
+803 3343 M
+63 0 V
+3975 0 R
+-63 0 V
+stroke
+737 3343 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 2.4e+06)]
+] -50.0 MRshow
+1.000 UL
+LTb
+803 3418 M
+31 0 V
+4007 0 R
+-31 0 V
+803 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+803 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (CG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1476 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1476 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (MG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2149 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2149 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (EP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2822 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2822 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (LU)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3495 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3495 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (BT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4168 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4168 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (SP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4841 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4841 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (FT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1.000 UL
+LTb
+803 3468 N
+803 352 L
+4038 0 V
+0 3116 V
+-4038 0 V
+Z stroke
+LCb setrgbcolor
+88 1910 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Helvetica) 180.0 0.0 true true 0 (Energy consumption [J])]
+] -60.0 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2822 77 M
+[ [(Helvetica) 180.0 0.0 true true 0 (NAS parallel benchmarks)]
+] -60.0 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UP
+1.000 UL
+LT0
+0.10 0.10 0.44 C LCb setrgbcolor
+2228 3277 M
+[ [(Helvetica) 140.0 0.0 true true 0 (One site/ 16 nodes)]
+] -46.7 MRshow
+LT0
+0.10 0.10 0.44 C 2294 3277 M
+327 0 V
+803 804 M
+1476 430 L
+673 152 V
+673 1594 V
+673 -817 V
+673 683 V
+4841 731 L
+803 804 Pls
+1476 430 Pls
+2149 582 Pls
+2822 2176 Pls
+3495 1359 Pls
+4168 2042 Pls
+4841 731 Pls
+2457 3277 Pls
+% End plot #1
+% Begin plot #2
+1.000 UP
+1.000 UL
+LT1
+1.00 0.00 0.00 C LCb setrgbcolor
+2228 3145 M
+[ [(Helvetica) 140.0 0.0 true true 0 (One site/ 32 nodes)]
+] -46.7 MRshow
+LT1
+1.00 0.00 0.00 C 2294 3145 M
+327 0 V
+803 851 M
+1476 442 L
+673 111 V
+673 750 V
+3495 661 L
+673 1546 V
+4841 776 L
+803 851 Crs
+1476 442 Crs
+2149 553 Crs
+2822 1303 Crs
+3495 661 Crs
+4168 2207 Crs
+4841 776 Crs
+2457 3145 Crs
+% End plot #2
+% Begin plot #3
+1.000 UP
+1.000 UL
+LT2
+0.00 0.39 0.00 C LCb setrgbcolor
+2228 3013 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Two sites/ 16 nodes)]
+] -46.7 MRshow
+LT2
+0.00 0.39 0.00 C 2294 3013 M
+327 0 V
+803 1202 M
+1476 475 L
+673 78 V
+673 1763 V
+673 -909 V
+673 1111 V
+4841 1228 L
+803 1202 Star
+1476 475 Star
+2149 553 Star
+2822 2316 Star
+3495 1407 Star
+4168 2518 Star
+4841 1228 Star
+2457 3013 Star
+% End plot #3
+% Begin plot #4
+1.000 UP
+1.000 UL
+LT3
+0.72 0.53 0.04 C LCb setrgbcolor
+2228 2881 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Two sites/ 32 nodes)]
+] -46.7 MRshow
+LT3
+0.72 0.53 0.04 C 2294 2881 M
+327 0 V
+803 1704 M
+1476 504 L
+673 45 V
+673 1278 V
+673 -69 V
+673 1532 V
+4841 1258 L
+803 1704 Box
+1476 504 Box
+2149 549 Box
+2822 1827 Box
+3495 1758 Box
+4168 3290 Box
+4841 1258 Box
+2457 2881 Box
+% End plot #4
+1.000 UL
+LTb
+803 3468 N
+803 352 L
+4038 0 V
+0 3116 V
+-4038 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
diff --git a/fig/ch3/eng_pow-eps-converted-to.pdf b/fig/ch3/eng_pow-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..de6f852477ab6752dca5b5b56d359f0c1aedc52c
GIT binary patch
literal 7951
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
Hn;`xN(Z`j7

literal 0
HcmV?d00001

diff --git a/fig/ch3/eng_pow.eps b/fig/ch3/eng_pow.eps
new file mode 100644
index 0000000..d17c80a
--- /dev/null
+++ b/fig/ch3/eng_pow.eps
@@ -0,0 +1,932 @@
+%!PS-Adobe-2.0
+%%Creator: gnuplot 4.6 patchlevel 6
+%%CreationDate: Thu Oct 22 12:43:52 2015
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 410
+%%Orientation: Portrait
+%%Pages: (atend)
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -36 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 554 50 lineto 554 410 lineto 50 410 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.6 (September 2012)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+  clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+%
+% Encoding for ISO-8859-1 (also called Latin1)
+%
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+	CharStrings /Idieresis known {
+		/Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/MFshow {
+   { dup 5 get 3 ge
+     { 5 get 3 eq {gsave} {grestore} ifelse }
+     {dup dup 0 get findfont exch 1 get scalefont setfont
+     [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
+     get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
+     {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
+     get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
+     dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
+     show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
+     pop aload pop M} ifelse }ifelse }ifelse }
+     ifelse }
+   forall} def
+/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
+/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
+ {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
+     6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
+/MLshow { currentpoint stroke M
+  0 exch R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MRshow { currentpoint stroke M
+  exch dup MFwidth neg 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MCshow { currentpoint stroke M
+  exch dup MFwidth -2 div 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/XYsave    { [( ) 1 2 true false 3 ()] } bind def
+/XYrestore { [( ) 1 2 true false 4 ()] } bind def
+/Helvetica reencodeISO def
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title ()
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 6)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Thu Oct 22 12:43:52 2015)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.100 0.100 scale
+0 setgray
+newpath
+(Helvetica) findfont 110 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if
+1.000 UL
+LTb
+473 352 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 352 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 0)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 421 M
+31 0 V
+4337 0 R
+-31 0 V
+473 490 M
+31 0 V
+4337 0 R
+-31 0 V
+473 560 M
+31 0 V
+4337 0 R
+-31 0 V
+473 629 M
+31 0 V
+4337 0 R
+-31 0 V
+473 698 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 698 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 5)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 767 M
+31 0 V
+4337 0 R
+-31 0 V
+473 837 M
+31 0 V
+4337 0 R
+-31 0 V
+473 906 M
+31 0 V
+4337 0 R
+-31 0 V
+473 975 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1044 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1044 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 10)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1114 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1183 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1252 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1321 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1391 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1391 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 15)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1460 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1529 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1598 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1668 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1737 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1737 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 20)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1806 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1875 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1945 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2014 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2083 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2083 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 25)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2152 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2222 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2291 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2360 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2429 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2429 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 30)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2499 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2568 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2637 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2706 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2776 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2776 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 35)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2845 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2914 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2983 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3053 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3122 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3122 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 40)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 3191 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3260 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3330 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3399 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3468 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3468 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 45)]
+] -50.0 MRshow
+1.000 UL
+LTb
+1019 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1019 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (CG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1565 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1565 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (MG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2111 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2111 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (EP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2657 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2657 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (LU)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3203 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3203 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (BT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3749 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3749 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (SP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4295 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4295 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (FT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+LCb setrgbcolor
+88 1910 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Helvetica) 180.0 0.0 true true 0 (Energy saving)]
+] -60.0 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2657 77 M
+[ [(Helvetica) 180.0 0.0 true true 0 (NAS parallel benchmarks)]
+] -60.0 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UL
+LT0
+0.10 0.10 0.44 C LCb setrgbcolor
+1652 3333 M
+[ [(Helvetica) 140.0 0.0 true true 0 (10% static power)]
+] -46.7 MRshow
+LT0
+0.10 0.10 0.44 C 1.000 1718 3300 327 66 BoxColFill
+0.10 0.10 0.44 C 1.000 921 352 88 2602 BoxColFill
+0.10 0.10 0.44 C 1.000 1467 352 88 2605 BoxColFill
+0.10 0.10 0.44 C 1.000 2013 352 88 1788 BoxColFill
+0.10 0.10 0.44 C 1.000 2559 352 88 2310 BoxColFill
+0.10 0.10 0.44 C 1.000 3105 352 88 2771 BoxColFill
+0.10 0.10 0.44 C 1.000 3651 352 88 2706 BoxColFill
+0.10 0.10 0.44 C 1.000 4197 352 88 2566 BoxColFill
+% End plot #1
+% Begin plot #2
+1.000 UL
+LT1
+0.24 0.70 0.44 C LCb setrgbcolor
+1652 3201 M
+[ [(Helvetica) 140.0 0.0 true true 0 (20% static power)]
+] -46.7 MRshow
+LT1
+0.24 0.70 0.44 C 1.000 1718 3168 327 66 BoxColFill
+0.24 0.70 0.44 C 1.000 1030 352 88 2096 BoxColFill
+0.24 0.70 0.44 C 1.000 1576 352 88 2371 BoxColFill
+0.24 0.70 0.44 C 1.000 2122 352 88 1740 BoxColFill
+0.24 0.70 0.44 C 1.000 2668 352 88 1676 BoxColFill
+0.24 0.70 0.44 C 1.000 3214 352 88 2497 BoxColFill
+0.24 0.70 0.44 C 1.000 3760 352 88 2360 BoxColFill
+0.24 0.70 0.44 C 1.000 4306 352 88 1665 BoxColFill
+% End plot #2
+% Begin plot #3
+1.000 UL
+LT0
+1.00 0.71 0.76 C LCb setrgbcolor
+1652 3069 M
+[ [(Helvetica) 140.0 0.0 true true 0 (30% static power)]
+] -46.7 MRshow
+LT0
+1.00 0.71 0.76 C 1.000 1718 3036 327 66 BoxColFill
+1.00 0.71 0.76 C 1.000 1139 352 88 671 BoxColFill
+1.00 0.71 0.76 C 1.000 1685 352 88 942 BoxColFill
+1.00 0.71 0.76 C 1.000 2231 352 88 1468 BoxColFill
+1.00 0.71 0.76 C 1.000 2777 352 88 326 BoxColFill
+1.00 0.71 0.76 C 1.000 3323 352 88 1464 BoxColFill
+1.00 0.71 0.76 C 1.000 3869 352 88 1038 BoxColFill
+1.00 0.71 0.76 C 1.000 4415 352 88 640 BoxColFill
+% End plot #3
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
diff --git a/fig/ch3/eng_s-eps-converted-to.pdf b/fig/ch3/eng_s-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..eb9dd932f64ce5090b557364801317d3464f5268
GIT binary patch
literal 24410
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

literal 0
HcmV?d00001

diff --git a/fig/ch3/eng_s.eps b/fig/ch3/eng_s.eps
new file mode 100644
index 0000000..f944e95
--- /dev/null
+++ b/fig/ch3/eng_s.eps
@@ -0,0 +1,949 @@
+%!PS-Adobe-2.0
+%%Creator: gnuplot 4.6 patchlevel 6
+%%CreationDate: Thu Oct 22 12:40:02 2015
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 410
+%%Orientation: Portrait
+%%Pages: (atend)
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -36 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 554 50 lineto 554 410 lineto 50 410 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.6 (September 2012)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+  clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+%
+% Encoding for ISO-8859-1 (also called Latin1)
+%
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+	CharStrings /Idieresis known {
+		/Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/MFshow {
+   { dup 5 get 3 ge
+     { 5 get 3 eq {gsave} {grestore} ifelse }
+     {dup dup 0 get findfont exch 1 get scalefont setfont
+     [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
+     get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
+     {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
+     get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
+     dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
+     show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
+     pop aload pop M} ifelse }ifelse }ifelse }
+     ifelse }
+   forall} def
+/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
+/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
+ {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
+     6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
+/MLshow { currentpoint stroke M
+  0 exch R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MRshow { currentpoint stroke M
+  exch dup MFwidth neg 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MCshow { currentpoint stroke M
+  exch dup MFwidth -2 div 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/XYsave    { [( ) 1 2 true false 3 ()] } bind def
+/XYrestore { [( ) 1 2 true false 4 ()] } bind def
+/Helvetica reencodeISO def
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title ()
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 6)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Thu Oct 22 12:40:02 2015)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.100 0.100 scale
+0 setgray
+newpath
+(Helvetica) findfont 110 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if
+1.000 UL
+LTb
+473 352 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 352 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 0)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 421 M
+31 0 V
+4337 0 R
+-31 0 V
+473 490 M
+31 0 V
+4337 0 R
+-31 0 V
+473 560 M
+31 0 V
+4337 0 R
+-31 0 V
+473 629 M
+31 0 V
+4337 0 R
+-31 0 V
+473 698 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 698 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 5)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 767 M
+31 0 V
+4337 0 R
+-31 0 V
+473 837 M
+31 0 V
+4337 0 R
+-31 0 V
+473 906 M
+31 0 V
+4337 0 R
+-31 0 V
+473 975 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1044 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1044 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 10)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1114 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1183 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1252 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1321 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1391 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1391 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 15)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1460 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1529 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1598 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1668 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1737 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1737 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 20)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1806 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1875 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1945 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2014 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2083 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2083 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 25)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2152 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2222 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2291 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2360 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2429 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2429 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 30)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2499 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2568 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2637 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2706 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2776 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2776 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 35)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2845 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2914 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2983 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3053 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3122 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3122 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 40)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 3191 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3260 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3330 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3399 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3468 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3468 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 45)]
+] -50.0 MRshow
+1.000 UL
+LTb
+1019 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1019 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (CG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1565 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1565 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (MG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2111 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2111 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (EP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2657 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2657 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (LU)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3203 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3203 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (BT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3749 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3749 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (SP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4295 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4295 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (FT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+LCb setrgbcolor
+88 1910 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Helvetica) 180.0 0.0 true true 0 (Energy saving)]
+] -60.0 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2657 77 M
+[ [(Helvetica) 180.0 0.0 true true 0 (NAS parallel benchmarks)]
+] -60.0 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UL
+LT0
+0.10 0.10 0.44 C LCb setrgbcolor
+1816 3264 M
+[ [(Helvetica) 140.0 0.0 true true 0 (One site  / 16 nodes)]
+] -46.7 MRshow
+LT0
+0.10 0.10 0.44 C 1882 3231 327 66 40 45 2 PatternFill
+0.10 0.10 0.44 C 892 352 73 2096 40 45 2 PatternFill
+0.10 0.10 0.44 C 1438 352 73 2371 40 45 2 PatternFill
+0.10 0.10 0.44 C 1984 352 73 1740 40 45 2 PatternFill
+0.10 0.10 0.44 C 2530 352 73 1676 40 45 2 PatternFill
+0.10 0.10 0.44 C 3076 352 73 2497 40 45 2 PatternFill
+0.10 0.10 0.44 C 3622 352 73 2360 40 45 2 PatternFill
+0.10 0.10 0.44 C 4168 352 73 1665 40 45 2 PatternFill
+% End plot #1
+% Begin plot #2
+1.000 UL
+LT1
+0.10 0.10 0.44 C LCb setrgbcolor
+1816 3132 M
+[ [(Helvetica) 140.0 0.0 true true 0 (One site  / 32 nodes)]
+] -46.7 MRshow
+LT1
+0.10 0.10 0.44 C 1.000 1882 3099 327 66 BoxColFill
+0.10 0.10 0.44 C 1.000 983 352 73 1472 BoxColFill
+0.10 0.10 0.44 C 1.000 1529 352 73 1339 BoxColFill
+0.10 0.10 0.44 C 1.000 2075 352 73 1946 BoxColFill
+0.10 0.10 0.44 C 1.000 2621 352 73 1919 BoxColFill
+0.10 0.10 0.44 C 1.000 3167 352 73 1983 BoxColFill
+0.10 0.10 0.44 C 1.000 3713 352 73 2633 BoxColFill
+0.10 0.10 0.44 C 1.000 4259 352 73 1306 BoxColFill
+% End plot #2
+% Begin plot #3
+1.000 UL
+LT0
+0.00 0.39 0.00 C LCb setrgbcolor
+1816 3000 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Two sites / 16 nodes)]
+] -46.7 MRshow
+LT0
+0.00 0.39 0.00 C 1882 2967 327 66 80 -45 1 PatternFill
+0.00 0.39 0.00 C 1074 352 73 1376 80 -45 1 PatternFill
+0.00 0.39 0.00 C 1620 352 73 1503 80 -45 1 PatternFill
+0.00 0.39 0.00 C 2166 352 73 2184 80 -45 1 PatternFill
+0.00 0.39 0.00 C 2712 352 73 547 80 -45 1 PatternFill
+0.00 0.39 0.00 C 3258 352 73 1560 80 -45 1 PatternFill
+0.00 0.39 0.00 C 3804 352 73 2211 80 -45 1 PatternFill
+0.00 0.39 0.00 C 4350 352 73 1186 80 -45 1 PatternFill
+% End plot #3
+% Begin plot #4
+1.000 UL
+LT3
+0.94 0.50 0.50 C LCb setrgbcolor
+1816 2868 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Two sites / 32 nodes)]
+] -46.7 MRshow
+LT3
+0.94 0.50 0.50 C 1.000 1882 2835 327 66 BoxColFill
+0.94 0.50 0.50 C 1.000 1165 352 73 651 BoxColFill
+0.94 0.50 0.50 C 1.000 1711 352 73 1432 BoxColFill
+0.94 0.50 0.50 C 1.000 2257 352 73 2069 BoxColFill
+0.94 0.50 0.50 C 1.000 2803 352 73 625 BoxColFill
+0.94 0.50 0.50 C 1.000 3349 352 73 741 BoxColFill
+0.94 0.50 0.50 C 1.000 3895 352 73 2471 BoxColFill
+0.94 0.50 0.50 C 1.000 4441 352 73 741 BoxColFill
+% End plot #4
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
diff --git a/fig/ch3/eng_s_mc-eps-converted-to.pdf b/fig/ch3/eng_s_mc-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..386f43dbc1b435223e58dae1175cc0102dda7415
GIT binary patch
literal 7889
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
N;Snk-M%KoN{|9wQh@=1j

literal 0
HcmV?d00001

diff --git a/fig/ch3/eng_s_mc.eps b/fig/ch3/eng_s_mc.eps
new file mode 100644
index 0000000..aa7c105
--- /dev/null
+++ b/fig/ch3/eng_s_mc.eps
@@ -0,0 +1,889 @@
+%!PS-Adobe-2.0
+%%Creator: gnuplot 4.6 patchlevel 6
+%%CreationDate: Thu Oct 22 17:39:34 2015
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 410
+%%Orientation: Portrait
+%%Pages: (atend)
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -36 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 554 50 lineto 554 410 lineto 50 410 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.6 (September 2012)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+  clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+%
+% Encoding for ISO-8859-1 (also called Latin1)
+%
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+	CharStrings /Idieresis known {
+		/Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/MFshow {
+   { dup 5 get 3 ge
+     { 5 get 3 eq {gsave} {grestore} ifelse }
+     {dup dup 0 get findfont exch 1 get scalefont setfont
+     [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
+     get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
+     {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
+     get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
+     dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
+     show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
+     pop aload pop M} ifelse }ifelse }ifelse }
+     ifelse }
+   forall} def
+/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
+/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
+ {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
+     6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
+/MLshow { currentpoint stroke M
+  0 exch R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MRshow { currentpoint stroke M
+  exch dup MFwidth neg 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MCshow { currentpoint stroke M
+  exch dup MFwidth -2 div 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/XYsave    { [( ) 1 2 true false 3 ()] } bind def
+/XYrestore { [( ) 1 2 true false 4 ()] } bind def
+/Helvetica reencodeISO def
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title ()
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 6)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Thu Oct 22 17:39:34 2015)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.100 0.100 scale
+0 setgray
+newpath
+(Helvetica) findfont 110 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if
+1.000 UL
+LTb
+473 352 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 352 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 0)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 430 M
+31 0 V
+4337 0 R
+-31 0 V
+473 508 M
+31 0 V
+4337 0 R
+-31 0 V
+473 586 M
+31 0 V
+4337 0 R
+-31 0 V
+473 664 M
+31 0 V
+4337 0 R
+-31 0 V
+473 742 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 742 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 5)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 819 M
+31 0 V
+4337 0 R
+-31 0 V
+473 897 M
+31 0 V
+4337 0 R
+-31 0 V
+473 975 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1053 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1131 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1131 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 10)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1209 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1287 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1365 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1443 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1521 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1521 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 15)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1598 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1676 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1754 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1832 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1910 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1910 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 20)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1988 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2066 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2144 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2222 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2300 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2300 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 25)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2377 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2455 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2533 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2611 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2689 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2689 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 30)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2767 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2845 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2923 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3001 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3079 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3079 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 35)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 3156 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3234 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3312 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3390 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3468 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3468 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 40)]
+] -50.0 MRshow
+1.000 UL
+LTb
+1019 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1019 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (CG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1565 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1565 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (MG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2111 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2111 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (EP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2657 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2657 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (LU)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3203 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3203 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (BT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3749 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3749 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (SP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4295 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4295 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (FT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+LCb setrgbcolor
+88 1910 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Helvetica) 180.0 0.0 true true 0 (Energy saving)]
+] -60.0 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2657 77 M
+[ [(Helvetica) 180.0 0.0 true true 0 (NAS parallel benchmarks)]
+] -60.0 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UL
+LT0
+0.10 0.10 0.44 C LCb setrgbcolor
+2362 3246 M
+[ [(Helvetica) 140.0 0.0 true true 0 (One core per node scenario)]
+] -46.7 MRshow
+LT0
+0.10 0.10 0.44 C 1.000 2428 3213 327 66 BoxColFill
+0.10 0.10 0.44 C 1.000 964 352 111 1656 BoxColFill
+0.10 0.10 0.44 C 1.000 1510 352 111 1506 BoxColFill
+0.10 0.10 0.44 C 1.000 2056 352 111 2190 BoxColFill
+0.10 0.10 0.44 C 1.000 2602 352 111 2159 BoxColFill
+0.10 0.10 0.44 C 1.000 3148 352 111 2231 BoxColFill
+0.10 0.10 0.44 C 1.000 3694 352 111 2962 BoxColFill
+0.10 0.10 0.44 C 1.000 4240 352 111 1469 BoxColFill
+% End plot #1
+% Begin plot #2
+1.000 UL
+LT1
+0.94 0.50 0.50 C LCb setrgbcolor
+2362 3114 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Multicores per node scenario)]
+] -46.7 MRshow
+LT1
+0.94 0.50 0.50 C 1.000 2428 3081 327 66 BoxColFill
+0.94 0.50 0.50 C 1.000 1101 352 110 1453 BoxColFill
+0.94 0.50 0.50 C 1.000 1647 352 110 1873 BoxColFill
+0.94 0.50 0.50 C 1.000 2193 352 110 2153 BoxColFill
+0.94 0.50 0.50 C 1.000 2739 352 110 2263 BoxColFill
+0.94 0.50 0.50 C 1.000 3285 352 110 1512 BoxColFill
+0.94 0.50 0.50 C 1.000 3831 352 110 2584 BoxColFill
+0.94 0.50 0.50 C 1.000 4377 352 110 1864 BoxColFill
+% End plot #2
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
diff --git a/fig/ch3/grid5000-2.pdf b/fig/ch3/grid5000-2.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..76478ae4ace07085490769d0a3c58bfdb19f0050
GIT binary patch
literal 29146
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
BYbgK#

literal 0
HcmV?d00001

diff --git a/fig/ch3/grid5000.pdf b/fig/ch3/grid5000.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..a276e6a9f1e63232f65149dc7cefcde0c5d61a59
GIT binary patch
literal 62669
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

literal 0
HcmV?d00001

diff --git a/fig/ch3/heter-eps-converted-to.pdf b/fig/ch3/heter-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..a145a721b831f13d8f4d9d8eea7890f9f471f377
GIT binary patch
literal 6838
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
TQn`c3rg$@quCDzu2h9Hfof21W

literal 0
HcmV?d00001

diff --git a/fig/ch3/heter.eps b/fig/ch3/heter.eps
new file mode 100644
index 0000000..b1b59f5
--- /dev/null
+++ b/fig/ch3/heter.eps
@@ -0,0 +1,659 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: heter2.eps
+%%Creator: gnuplot 4.6 patchlevel 0
+%%CreationDate: Thu Feb 19 12:00:04 2015
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 320 239
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -46 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 320 50 lineto 320 239 lineto 50 239 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.4 (August 2010)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  gsave 1 setgray fill grestore clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title (heter2.eps)
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 0)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Thu Feb 19 12:00:04 2015)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {BackgroundColor C 1.000 0 0 5400.00 3780.00 BoxColFill} if
+1.000 UL
+LTb
+686 737 M
+63 0 V
+4398 0 R
+-63 0 V
+/Helvetica findfont 220 scalefont setfont
+602 737 M
+( 0.4) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+686 1456 M
+63 0 V
+4398 0 R
+-63 0 V
+/Helvetica findfont 220 scalefont setfont
+-4482 0 R
+( 0.6) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+686 2174 M
+63 0 V
+4398 0 R
+-63 0 V
+/Helvetica findfont 220 scalefont setfont
+-4482 0 R
+( 0.8) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+686 2893 M
+63 0 V
+4398 0 R
+-63 0 V
+/Helvetica findfont 220 scalefont setfont
+-4482 0 R
+( 1) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+686 3611 M
+63 0 V
+4398 0 R
+-63 0 V
+/Helvetica findfont 220 scalefont setfont
+-4482 0 R
+( 1.2) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+1.000 UL
+LTb
+686 3611 N
+686 378 L
+4461 0 V
+0 3233 V
+-4461 0 V
+Z stroke
+LCb setrgbcolor
+/Helvetica findfont 220 scalefont setfont
+112 1994 M
+currentpoint gsave translate -270 rotate 0 0 M
+(Normalized energy and performance) Cshow
+grestore
+/Helvetica findfont 140 scalefont setfont
+LTb
+LCb setrgbcolor
+/Helvetica findfont 220 scalefont setfont
+3016 98 M
+(Vectors of frequency scaling factors) Cshow
+/Helvetica findfont 140 scalefont setfont
+LTb
+1.000 UP
+/Helvetica findfont 220 scalefont setfont
+1801 558 M
+(Optimal vector of scaling factors) Lshow
+/Helvetica findfont 140 scalefont setfont
+/Helvetica findfont 220 scalefont setfont
+5147 1497 M
+() Lshow
+/Helvetica findfont 140 scalefont setfont
+/Helvetica findfont 190 scalefont setfont
+820 3277 M
+( Upper bound) Lshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+1734 2688 M
+0 -1265 V
+stroke
+LT2
+1702 517 M
+32 -121 V
+32 121 V
+-32 2171 R
+0 -2292 V
+stroke
+gsave [] 0 setdash
+1702 517 M
+32 -121 V
+32 121 V
+stroke
+grestore
+1.000 UL
+LT2
+1355 2976 M
+22 -83 V
+22 83 V
+-22 204 R
+0 -287 V
+stroke
+gsave [] 0 setdash
+1355 2976 M
+22 -83 V
+22 83 V
+stroke
+grestore
+1.000 UL
+LT0
+1623 2688 M
+234 0 V
+1623 1423 M
+234 0 V
+stroke
+LTb
+% Begin plot #1
+1.000 UL
+LT2
+LC2 setrgbcolor
+LCb setrgbcolor
+/Helvetica findfont 220 scalefont setfont
+4496 3443 M
+(Normalized performance) Rshow
+/Helvetica findfont 140 scalefont setfont
+LT2
+LC2 setrgbcolor
+4580 3443 M
+399 0 V
+686 2893 M
+93 0 V
+101 0 V
+110 0 V
+121 0 V
+133 0 V
+146 0 V
+163 -32 V
+183 -173 V
+205 -178 V
+232 -183 V
+266 -190 V
+306 -195 V
+357 -201 V
+423 -129 V
+507 -79 V
+619 -36 V
+% End plot #1
+% Begin plot #2
+stroke
+2.000 UL
+LT0
+1.00 0.00 0.00 C LCb setrgbcolor
+/Helvetica findfont 220 scalefont setfont
+4496 3233 M
+(Normalize energy) Rshow
+/Helvetica findfont 140 scalefont setfont
+LT0
+1.00 0.00 0.00 C 4580 3233 M
+399 0 V
+686 2893 M
+93 -144 V
+880 2494 L
+990 2292 L
+121 -159 V
+133 -203 V
+146 -177 V
+163 -151 V
+183 -177 V
+205 -129 V
+232 -89 V
+266 -67 V
+306 -43 V
+357 -36 V
+423 -33 V
+507 -28 V
+619 0 V
+% End plot #2
+% Begin plot #3
+stroke
+1.000 UL
+LT0
+1.00 1.00 1.00 C 5147 641 M
+% End plot #3
+stroke
+LTb
+686 3611 N
+686 378 L
+4461 0 V
+0 3233 V
+-4461 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
diff --git a/fig/ch3/heter2-eps-converted-to.pdf b/fig/ch3/heter2-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..a128a004d75e0bbcd4349a32da24dfa0812e3493
GIT binary patch
literal 7119
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

literal 0
HcmV?d00001

diff --git a/fig/ch3/heter2.eps b/fig/ch3/heter2.eps
new file mode 100644
index 0000000..e012be1
--- /dev/null
+++ b/fig/ch3/heter2.eps
@@ -0,0 +1,689 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: heter2.eps
+%%Creator: gnuplot 4.6 patchlevel 0
+%%CreationDate: Fri May 15 14:32:08 2015
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 320 239
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -46 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 320 50 lineto 320 239 lineto 50 239 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.4 (August 2010)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  gsave 1 setgray fill grestore clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title (heter2.eps)
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 0)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Fri May 15 14:32:08 2015)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {BackgroundColor C 1.000 0 0 5400.00 3780.00 BoxColFill} if
+1.000 UL
+LTb
+686 737 M
+63 0 V
+4398 0 R
+-63 0 V
+/Helvetica findfont 220 scalefont setfont
+602 737 M
+( 0.4) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+686 1456 M
+63 0 V
+4398 0 R
+-63 0 V
+/Helvetica findfont 220 scalefont setfont
+-4482 0 R
+( 0.6) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+686 2174 M
+63 0 V
+4398 0 R
+-63 0 V
+/Helvetica findfont 220 scalefont setfont
+-4482 0 R
+( 0.8) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+686 2893 M
+63 0 V
+4398 0 R
+-63 0 V
+/Helvetica findfont 220 scalefont setfont
+-4482 0 R
+( 1) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+686 3611 M
+63 0 V
+4398 0 R
+-63 0 V
+/Helvetica findfont 220 scalefont setfont
+-4482 0 R
+( 1.2) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+1.000 UL
+LTb
+686 3611 N
+686 378 L
+4461 0 V
+0 3233 V
+-4461 0 V
+Z stroke
+LCb setrgbcolor
+/Helvetica findfont 220 scalefont setfont
+112 1994 M
+currentpoint gsave translate -270 rotate 0 0 M
+(Normalized energy and performance) Cshow
+grestore
+/Helvetica findfont 140 scalefont setfont
+LTb
+LCb setrgbcolor
+/Helvetica findfont 220 scalefont setfont
+3016 98 M
+(Vectors of frequency scaling factors) Cshow
+/Helvetica findfont 140 scalefont setfont
+LTb
+1.000 UP
+/Helvetica findfont 220 scalefont setfont
+1435 558 M
+(Optimal vector of scaling factors) Lshow
+/Helvetica findfont 140 scalefont setfont
+/Helvetica findfont 220 scalefont setfont
+4255 1497 M
+() Lshow
+/Helvetica findfont 140 scalefont setfont
+/Helvetica findfont 190 scalefont setfont
+793 3277 M
+( Upper bound) Lshow
+/Helvetica findfont 140 scalefont setfont
+/Helvetica findfont 190 scalefont setfont
+3541 1887 M
+( Lower bound) Lshow
+/Helvetica findfont 140 scalefont setfont
+1384 2246 M
+( Max.) Lshow
+1384 2102 M
+( distance) Lshow
+1.000 UL
+LTb
+1378 2821 M
+0 -1153 V
+stroke
+LT2
+1346 517 M
+32 -121 V
+32 121 V
+-32 2304 R
+0 -2425 V
+stroke
+gsave [] 0 setdash
+1346 517 M
+32 -121 V
+32 121 V
+stroke
+grestore
+1.000 UL
+LT2
+1217 2976 M
+22 -83 V
+22 83 V
+-22 204 R
+0 -287 V
+stroke
+gsave [] 0 setdash
+1217 2976 M
+22 -83 V
+22 83 V
+stroke
+grestore
+1.000 UL
+LT2
+4011 1534 M
+30 -114 V
+30 114 V
+-30 281 R
+0 -395 V
+stroke
+gsave [] 0 setdash
+4011 1534 M
+30 -114 V
+30 114 V
+stroke
+grestore
+1.000 UL
+LT0
+1311 2821 M
+142 0 V
+1311 1668 M
+142 0 V
+stroke
+LTb
+% Begin plot #1
+1.000 UL
+LT2
+LC2 setrgbcolor
+LCb setrgbcolor
+/Helvetica findfont 220 scalefont setfont
+4496 3443 M
+(Normalized performance) Rshow
+/Helvetica findfont 140 scalefont setfont
+LT2
+LC2 setrgbcolor
+4580 3443 M
+399 0 V
+686 2893 M
+74 0 V
+81 0 V
+88 0 V
+97 0 V
+106 0 V
+117 0 V
+131 -72 V
+146 -142 V
+164 -135 V
+186 -171 V
+212 -164 V
+245 -148 V
+286 -164 V
+338 -170 V
+406 -135 V
+495 -135 V
+620 -135 V
+312 -63 V
+% End plot #1
+% Begin plot #2
+stroke
+2.000 UL
+LT0
+1.00 0.00 0.00 C LCb setrgbcolor
+/Helvetica findfont 220 scalefont setfont
+4496 3233 M
+(Normalized energy) Rshow
+/Helvetica findfont 140 scalefont setfont
+LT0
+1.00 0.00 0.00 C 4580 3233 M
+399 0 V
+686 2893 M
+74 -248 V
+81 -193 V
+88 -182 V
+97 -170 V
+106 -156 V
+117 -144 V
+131 -129 V
+146 -115 V
+164 -100 V
+186 -82 V
+212 -64 V
+245 -43 V
+286 -20 V
+338 7 V
+406 39 V
+495 80 V
+620 131 V
+312 59 V
+% End plot #2
+% Begin plot #3
+stroke
+1.000 UL
+LT0
+1.00 1.00 1.00 C 5147 641 M
+% End plot #3
+stroke
+LTb
+686 3611 N
+686 378 L
+4461 0 V
+0 3233 V
+-4461 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������%%Trailer
+%%DocumentFonts: Helvetica
diff --git a/fig/ch3/homo.pdf b/fig/ch3/homo.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..2d4cb51c2213e8f66c25e56daa59b0a3e872fae5
GIT binary patch
literal 6975
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
A{{R30

literal 0
HcmV?d00001

diff --git a/fig/ch3/init_freq.pdf b/fig/ch3/init_freq.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..20ec64e149bf5c9f43eab7f93198e435a2cc8dc3
GIT binary patch
literal 71016
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

literal 0
HcmV?d00001

diff --git a/fig/ch3/per_d-eps-converted-to.pdf b/fig/ch3/per_d-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..23205040daaf4a724edb9d33ac07f7a6a7ba4a8c
GIT binary patch
literal 12915
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
NP|_<`l(khz|35;UO`iY&

literal 0
HcmV?d00001

diff --git a/fig/ch3/per_d.eps b/fig/ch3/per_d.eps
new file mode 100644
index 0000000..8fb93bb
--- /dev/null
+++ b/fig/ch3/per_d.eps
@@ -0,0 +1,897 @@
+%!PS-Adobe-2.0
+%%Creator: gnuplot 4.6 patchlevel 6
+%%CreationDate: Thu Oct 22 12:39:50 2015
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 410
+%%Orientation: Portrait
+%%Pages: (atend)
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -36 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 554 50 lineto 554 410 lineto 50 410 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.6 (September 2012)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+  clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+%
+% Encoding for ISO-8859-1 (also called Latin1)
+%
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+	CharStrings /Idieresis known {
+		/Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/MFshow {
+   { dup 5 get 3 ge
+     { 5 get 3 eq {gsave} {grestore} ifelse }
+     {dup dup 0 get findfont exch 1 get scalefont setfont
+     [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
+     get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
+     {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
+     get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
+     dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
+     show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
+     pop aload pop M} ifelse }ifelse }ifelse }
+     ifelse }
+   forall} def
+/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
+/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
+ {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
+     6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
+/MLshow { currentpoint stroke M
+  0 exch R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MRshow { currentpoint stroke M
+  exch dup MFwidth neg 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MCshow { currentpoint stroke M
+  exch dup MFwidth -2 div 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/XYsave    { [( ) 1 2 true false 3 ()] } bind def
+/XYrestore { [( ) 1 2 true false 4 ()] } bind def
+/Helvetica reencodeISO def
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title ()
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 6)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Thu Oct 22 12:39:50 2015)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.100 0.100 scale
+0 setgray
+newpath
+(Helvetica) findfont 110 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if
+1.000 UL
+LTb
+473 352 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 352 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 0)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 441 M
+31 0 V
+4337 0 R
+-31 0 V
+473 530 M
+31 0 V
+4337 0 R
+-31 0 V
+473 619 M
+31 0 V
+4337 0 R
+-31 0 V
+473 708 M
+31 0 V
+4337 0 R
+-31 0 V
+473 797 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 797 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 5)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 886 M
+31 0 V
+4337 0 R
+-31 0 V
+473 975 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1064 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1153 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1242 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1242 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 10)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1331 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1420 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1509 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1598 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1687 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1687 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 15)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1776 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1865 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1955 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2044 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2133 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2133 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 20)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2222 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2311 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2400 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2489 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2578 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2578 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 25)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2667 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2756 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2845 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2934 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3023 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3023 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 30)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 3112 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3201 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3290 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3379 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3468 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3468 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 35)]
+] -50.0 MRshow
+1.000 UL
+LTb
+1019 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1019 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (CG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1565 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1565 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (MG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2111 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2111 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (EP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2657 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2657 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (LU)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3203 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3203 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (BT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3749 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3749 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (SP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4295 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4295 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (FT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+LCb setrgbcolor
+88 1910 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Helvetica) 180.0 0.0 true true 0 (Performance degradation)]
+] -60.0 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2657 77 M
+[ [(Helvetica) 180.0 0.0 true true 0 (NAS parallel benchmarks)]
+] -60.0 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UL
+LT0
+0.10 0.10 0.44 C LCb setrgbcolor
+1816 3224 M
+[ [(Helvetica) 140.0 0.0 true true 0 (One site  / 16 nodes)]
+] -46.7 MRshow
+LT0
+0.10 0.10 0.44 C 1882 3191 327 66 40 45 2 PatternFill
+0.10 0.10 0.44 C 892 352 73 575 40 45 2 PatternFill
+0.10 0.10 0.44 C 1438 352 73 496 40 45 2 PatternFill
+0.10 0.10 0.44 C 1984 352 73 135 40 45 2 PatternFill
+0.10 0.10 0.44 C 2530 352 73 310 40 45 2 PatternFill
+0.10 0.10 0.44 C 3076 352 73 253 40 45 2 PatternFill
+0.10 0.10 0.44 C 3622 352 73 160 40 45 2 PatternFill
+0.10 0.10 0.44 C 4168 352 73 88 40 45 2 PatternFill
+% End plot #1
+% Begin plot #2
+1.000 UL
+LT1
+0.10 0.10 0.44 C LCb setrgbcolor
+1816 3092 M
+[ [(Helvetica) 140.0 0.0 true true 0 (One site  / 32 nodes)]
+] -46.7 MRshow
+LT1
+0.10 0.10 0.44 C 1.000 1882 3059 327 66 BoxColFill
+0.10 0.10 0.44 C 1.000 983 352 73 1243 BoxColFill
+0.10 0.10 0.44 C 1.000 1529 352 73 671 BoxColFill
+0.10 0.10 0.44 C 1.000 2075 352 73 1640 BoxColFill
+0.10 0.10 0.44 C 1.000 2621 352 73 1115 BoxColFill
+0.10 0.10 0.44 C 1.000 3167 352 73 1369 BoxColFill
+0.10 0.10 0.44 C 1.000 3713 352 73 28 BoxColFill
+0.10 0.10 0.44 C 1.000 4259 352 73 585 BoxColFill
+% End plot #2
+% Begin plot #3
+1.000 UL
+LT0
+0.00 0.39 0.00 C LCb setrgbcolor
+1816 2960 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Two sites / 16 nodes)]
+] -46.7 MRshow
+LT0
+0.00 0.39 0.00 C 1882 2927 327 66 80 -45 1 PatternFill
+0.00 0.39 0.00 C 1074 352 73 374 80 -45 1 PatternFill
+0.00 0.39 0.00 C 1620 352 73 1197 80 -45 1 PatternFill
+0.00 0.39 0.00 C 2166 352 73 2409 80 -45 1 PatternFill
+0.00 0.39 0.00 C 2712 352 73 37 80 -45 1 PatternFill
+0.00 0.39 0.00 C 3258 352 73 538 80 -45 1 PatternFill
+0.00 0.39 0.00 C 3804 352 73 574 80 -45 1 PatternFill
+0.00 0.39 0.00 C 4350 352 73 71 80 -45 1 PatternFill
+% End plot #3
+% Begin plot #4
+1.000 UL
+LT3
+0.94 0.50 0.50 C LCb setrgbcolor
+1816 2828 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Two sites / 32 nodes)]
+] -46.7 MRshow
+LT3
+0.94 0.50 0.50 C 1.000 1882 2795 327 66 BoxColFill
+0.94 0.50 0.50 C 1.000 1165 352 73 227 BoxColFill
+0.94 0.50 0.50 C 1.000 1711 352 73 28 BoxColFill
+0.94 0.50 0.50 C 1.000 2257 352 73 2212 BoxColFill
+0.94 0.50 0.50 C 1.000 2803 352 73 54 BoxColFill
+0.94 0.50 0.50 C 1.000 3349 352 73 250 BoxColFill
+0.94 0.50 0.50 C 1.000 3895 352 73 54 BoxColFill
+0.94 0.50 0.50 C 1.000 4441 352 73 100 BoxColFill
+% End plot #4
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
diff --git a/fig/ch3/per_d_mc-eps-converted-to.pdf b/fig/ch3/per_d_mc-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..4bc6d6c31fdb901a5d6b536dd366379d524ca7c1
GIT binary patch
literal 7684
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
Yw-tN=l_wAeNCS(<AQTl1t&I@>4>aHvJ^%m!

literal 0
HcmV?d00001

diff --git a/fig/ch3/per_d_mc.eps b/fig/ch3/per_d_mc.eps
new file mode 100644
index 0000000..19d87f1
--- /dev/null
+++ b/fig/ch3/per_d_mc.eps
@@ -0,0 +1,845 @@
+%!PS-Adobe-2.0
+%%Creator: gnuplot 4.6 patchlevel 6
+%%CreationDate: Thu Oct 22 17:36:36 2015
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 410
+%%Orientation: Portrait
+%%Pages: (atend)
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -36 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 554 50 lineto 554 410 lineto 50 410 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.6 (September 2012)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+  clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+%
+% Encoding for ISO-8859-1 (also called Latin1)
+%
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+	CharStrings /Idieresis known {
+		/Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/MFshow {
+   { dup 5 get 3 ge
+     { 5 get 3 eq {gsave} {grestore} ifelse }
+     {dup dup 0 get findfont exch 1 get scalefont setfont
+     [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
+     get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
+     {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
+     get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
+     dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
+     show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
+     pop aload pop M} ifelse }ifelse }ifelse }
+     ifelse }
+   forall} def
+/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
+/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
+ {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
+     6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
+/MLshow { currentpoint stroke M
+  0 exch R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MRshow { currentpoint stroke M
+  exch dup MFwidth neg 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MCshow { currentpoint stroke M
+  exch dup MFwidth -2 div 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/XYsave    { [( ) 1 2 true false 3 ()] } bind def
+/XYrestore { [( ) 1 2 true false 4 ()] } bind def
+/Helvetica reencodeISO def
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title ()
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 6)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Thu Oct 22 17:36:36 2015)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.100 0.100 scale
+0 setgray
+newpath
+(Helvetica) findfont 110 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if
+1.000 UL
+LTb
+473 352 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 352 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 0)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 449 M
+31 0 V
+4337 0 R
+-31 0 V
+473 547 M
+31 0 V
+4337 0 R
+-31 0 V
+473 644 M
+31 0 V
+4337 0 R
+-31 0 V
+473 742 M
+31 0 V
+4337 0 R
+-31 0 V
+473 839 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 839 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 5)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 936 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1034 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1131 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1228 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1326 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1326 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 10)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1423 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1521 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1618 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1715 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1813 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1813 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 15)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1910 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2007 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2105 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2202 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2300 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2300 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 20)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2397 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2494 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2592 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2689 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2786 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2786 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 25)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2884 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2981 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3079 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3176 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3273 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3273 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 30)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 3371 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3468 M
+31 0 V
+4337 0 R
+-31 0 V
+1019 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1019 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (CG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1565 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1565 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (MG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2111 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2111 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (EP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2657 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2657 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (LU)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3203 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3203 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (BT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3749 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3749 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (SP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4295 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4295 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (FT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+LCb setrgbcolor
+88 1910 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Helvetica) 180.0 0.0 true true 0 (Performance degradation)]
+] -60.0 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2657 77 M
+[ [(Helvetica) 180.0 0.0 true true 0 (NAS parallel benchmarks)]
+] -60.0 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UL
+LT0
+0.10 0.10 0.44 C LCb setrgbcolor
+2362 3305 M
+[ [(Helvetica) 140.0 0.0 true true 0 (One core per node scenario)]
+] -46.7 MRshow
+LT0
+0.10 0.10 0.44 C 1.000 2428 3272 327 66 BoxColFill
+0.10 0.10 0.44 C 1.000 964 352 111 1359 BoxColFill
+0.10 0.10 0.44 C 1.000 1510 352 111 734 BoxColFill
+0.10 0.10 0.44 C 1.000 2056 352 111 1794 BoxColFill
+0.10 0.10 0.44 C 1.000 2602 352 111 1219 BoxColFill
+0.10 0.10 0.44 C 1.000 3148 352 111 1498 BoxColFill
+0.10 0.10 0.44 C 1.000 3694 352 111 30 BoxColFill
+0.10 0.10 0.44 C 1.000 4240 352 111 640 BoxColFill
+% End plot #1
+% Begin plot #2
+1.000 UL
+LT1
+0.94 0.50 0.50 C LCb setrgbcolor
+2362 3173 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Multicores per node scenario)]
+] -46.7 MRshow
+LT1
+0.94 0.50 0.50 C 1.000 2428 3140 327 66 BoxColFill
+0.94 0.50 0.50 C 1.000 1101 352 110 434 BoxColFill
+0.94 0.50 0.50 C 1.000 1647 352 110 771 BoxColFill
+0.94 0.50 0.50 C 1.000 2193 352 110 2586 BoxColFill
+0.94 0.50 0.50 C 1.000 2739 352 110 636 BoxColFill
+0.94 0.50 0.50 C 1.000 3285 352 110 258 BoxColFill
+0.94 0.50 0.50 C 1.000 3831 352 110 20 BoxColFill
+0.94 0.50 0.50 C 1.000 4377 352 110 406 BoxColFill
+% End plot #2
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
diff --git a/fig/ch3/per_deg-eps-converted-to.pdf b/fig/ch3/per_deg-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..821f861df737eb39cd535e8739a850c0ac32188e
GIT binary patch
literal 9333
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
PP%<)*qer!kbRho+XG>;}

literal 0
HcmV?d00001

diff --git a/fig/ch3/per_deg.eps b/fig/ch3/per_deg.eps
new file mode 100644
index 0000000..e1ef706
--- /dev/null
+++ b/fig/ch3/per_deg.eps
@@ -0,0 +1,820 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: per_deg.eps
+%%Creator: gnuplot 4.6 patchlevel 0
+%%CreationDate: Thu Feb 19 16:42:46 2015
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 320 239
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -46 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 320 50 lineto 320 239 lineto 50 239 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.4 (August 2010)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  gsave 1 setgray fill grestore clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title (per_deg.eps)
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 0)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Thu Feb 19 16:42:46 2015)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Helvetica) findfont 140 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {BackgroundColor C 1.000 0 0 5400.00 3780.00 BoxColFill} if
+1.000 UL
+LTb
+602 674 M
+63 0 V
+4482 0 R
+-63 0 V
+/Helvetica findfont 190 scalefont setfont
+518 674 M
+( 0) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+602 1538 M
+63 0 V
+4482 0 R
+-63 0 V
+/Helvetica findfont 190 scalefont setfont
+-4566 0 R
+( 5) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+602 2402 M
+63 0 V
+4482 0 R
+-63 0 V
+/Helvetica findfont 190 scalefont setfont
+-4566 0 R
+( 10) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+602 3266 M
+63 0 V
+4482 0 R
+-63 0 V
+/Helvetica findfont 190 scalefont setfont
+-4566 0 R
+( 15) Rshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+604 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+604 448 M
+( 0) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+1088 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+0 -3100 R
+( 16) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+1572 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+0 -3100 R
+( 32) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+2057 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+0 -3100 R
+( 48) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+2541 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+0 -3100 R
+( 64) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+3026 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+0 -3100 R
+( 80) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+3510 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+0 -3100 R
+( 96) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+3995 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+0 -3100 R
+( 112) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+4479 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+0 -3100 R
+( 128) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+4964 588 M
+0 63 V
+0 2960 R
+0 -63 V
+/Helvetica findfont 190 scalefont setfont
+0 -3100 R
+( 144) Cshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+1.000 UL
+LTb
+602 3611 N
+602 588 L
+4545 0 V
+0 3023 V
+-4545 0 V
+Z stroke
+LCb setrgbcolor
+/Helvetica findfont 210 scalefont setfont
+112 2099 M
+currentpoint gsave translate -270 rotate 0 0 M
+(Performance degradation) Cshow
+grestore
+/Helvetica findfont 140 scalefont setfont
+LTb
+LCb setrgbcolor
+/Helvetica findfont 210 scalefont setfont
+2974 98 M
+( Number of nodes) Cshow
+/Helvetica findfont 140 scalefont setfont
+LTb
+1.000 UP
+/Helvetica findfont 190 scalefont setfont
+649 752 M
+(              ) Lshow
+/Helvetica findfont 140 scalefont setfont
+1.000 UL
+LTb
+% Begin plot #1
+1.500 UP
+2.000 UL
+LT0
+0.00 0.00 1.00 C LCb setrgbcolor
+/Helvetica findfont 190 scalefont setfont
+1259 3443 M
+(CG) Rshow
+/Helvetica findfont 140 scalefont setfont
+LT0
+0.00 0.00 1.00 C 709 3443 M
+298 0 V
+725 1835 M
+121 70 V
+242 423 V
+484 -737 V
+2541 965 L
+4479 865 L
+725 1835 Box
+846 1905 Box
+1088 2328 Box
+1572 1591 Box
+2541 965 Box
+4479 865 Box
+858 3443 Box
+% End plot #1
+% Begin plot #2
+1.500 UP
+2.000 UL
+LT0
+1.00 0.00 0.00 C LCb setrgbcolor
+/Helvetica findfont 190 scalefont setfont
+1893 3443 M
+(MG) Rshow
+/Helvetica findfont 140 scalefont setfont
+LT0
+1.00 0.00 0.00 C 1343 3443 M
+298 0 V
+725 1424 M
+121 359 V
+242 -63 V
+484 483 V
+969 951 V
+4479 2469 L
+725 1424 TriD
+846 1783 TriD
+1088 1720 TriD
+1572 2203 TriD
+2541 3154 TriD
+4479 2469 TriD
+1492 3443 TriD
+% End plot #2
+% Begin plot #3
+1.500 UP
+2.000 UL
+LT0
+0.50 0.00 0.50 C LCb setrgbcolor
+/Helvetica findfont 190 scalefont setfont
+2527 3443 M
+(EP) Rshow
+/Helvetica findfont 140 scalefont setfont
+LT0
+0.50 0.00 0.50 C 1977 3443 M
+298 0 V
+725 1199 M
+846 760 L
+242 12 V
+484 -94 V
+969 534 V
+4479 680 L
+725 1199 Star
+846 760 Star
+1088 772 Star
+1572 678 Star
+2541 1212 Star
+4479 680 Star
+2126 3443 Star
+% End plot #3
+% Begin plot #4
+1.500 UP
+2.000 UL
+LT0
+0.18 0.31 0.31 C LCb setrgbcolor
+/Helvetica findfont 190 scalefont setfont
+3161 3443 M
+(LU) Rshow
+/Helvetica findfont 140 scalefont setfont
+LT0
+0.18 0.31 0.31 C 2611 3443 M
+298 0 V
+725 1739 M
+846 676 L
+242 1132 V
+484 -709 V
+969 211 V
+4479 1082 L
+725 1739 TriUF
+846 676 TriUF
+1088 1808 TriUF
+1572 1099 TriUF
+2541 1310 TriUF
+4479 1082 TriUF
+2760 3443 TriUF
+% End plot #4
+% Begin plot #5
+1.500 UP
+2.000 UL
+LT0
+0.18 0.55 0.34 C LCb setrgbcolor
+/Helvetica findfont 190 scalefont setfont
+3795 3443 M
+(BT) Rshow
+/Helvetica findfont 140 scalefont setfont
+LT0
+0.18 0.55 0.34 C 3245 3443 M
+298 0 V
+725 2140 M
+876 2038 L
+212 -362 V
+606 6 V
+847 1114 V
+4964 896 L
+725 2140 BoxF
+876 2038 BoxF
+1088 1676 BoxF
+1694 1682 BoxF
+2541 2796 BoxF
+4964 896 BoxF
+3394 3443 BoxF
+% End plot #5
+% Begin plot #6
+1.500 UP
+2.000 UL
+LT0
+0.85 0.65 0.13 C LCb setrgbcolor
+/Helvetica findfont 190 scalefont setfont
+4429 3443 M
+(SP) Rshow
+/Helvetica findfont 140 scalefont setfont
+LT0
+0.85 0.65 0.13 C 3879 3443 M
+298 0 V
+725 1658 M
+876 1155 L
+212 180 V
+606 -64 V
+2541 680 L
+2423 3 V
+725 1658 Circle
+876 1155 Circle
+1088 1335 Circle
+1694 1271 Circle
+2541 680 Circle
+4964 683 Circle
+4028 3443 Circle
+% End plot #6
+% Begin plot #7
+1.500 UP
+2.000 UL
+LT0
+0.55 0.00 0.00 C LCb setrgbcolor
+/Helvetica findfont 190 scalefont setfont
+5063 3443 M
+(FT) Rshow
+/Helvetica findfont 140 scalefont setfont
+LT0
+0.55 0.00 0.00 C 4513 3443 M
+298 0 V
+725 847 M
+121 267 V
+242 680 V
+484 -617 V
+969 339 V
+4479 1166 L
+725 847 CircleF
+846 1114 CircleF
+1088 1794 CircleF
+1572 1177 CircleF
+2541 1516 CircleF
+4479 1166 CircleF
+4662 3443 CircleF
+% End plot #7
+1.000 UL
+LTb
+602 3611 N
+602 588 L
+4545 0 V
+0 3023 V
+-4545 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
diff --git a/fig/ch3/per_pow-eps-converted-to.pdf b/fig/ch3/per_pow-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..472848b59aa09735a3bf00225391954637c80ca3
GIT binary patch
literal 7911
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

literal 0
HcmV?d00001

diff --git a/fig/ch3/per_pow.eps b/fig/ch3/per_pow.eps
new file mode 100644
index 0000000..6f42b28
--- /dev/null
+++ b/fig/ch3/per_pow.eps
@@ -0,0 +1,828 @@
+%!PS-Adobe-2.0
+%%Creator: gnuplot 4.6 patchlevel 6
+%%CreationDate: Thu Oct 22 12:44:35 2015
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 410
+%%Orientation: Portrait
+%%Pages: (atend)
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -36 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 554 50 lineto 554 410 lineto 50 410 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.6 (September 2012)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+  clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+%
+% Encoding for ISO-8859-1 (also called Latin1)
+%
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+	CharStrings /Idieresis known {
+		/Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/MFshow {
+   { dup 5 get 3 ge
+     { 5 get 3 eq {gsave} {grestore} ifelse }
+     {dup dup 0 get findfont exch 1 get scalefont setfont
+     [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
+     get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
+     {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
+     get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
+     dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
+     show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
+     pop aload pop M} ifelse }ifelse }ifelse }
+     ifelse }
+   forall} def
+/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
+/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
+ {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
+     6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
+/MLshow { currentpoint stroke M
+  0 exch R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MRshow { currentpoint stroke M
+  exch dup MFwidth neg 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MCshow { currentpoint stroke M
+  exch dup MFwidth -2 div 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/XYsave    { [( ) 1 2 true false 3 ()] } bind def
+/XYrestore { [( ) 1 2 true false 4 ()] } bind def
+/Helvetica reencodeISO def
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title ()
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 6)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Thu Oct 22 12:44:35 2015)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.100 0.100 scale
+0 setgray
+newpath
+(Helvetica) findfont 110 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if
+1.000 UL
+LTb
+473 352 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 352 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 0)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 477 M
+31 0 V
+4337 0 R
+-31 0 V
+473 601 M
+31 0 V
+4337 0 R
+-31 0 V
+473 726 M
+31 0 V
+4337 0 R
+-31 0 V
+473 851 M
+31 0 V
+4337 0 R
+-31 0 V
+473 975 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 975 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 3)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1100 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1224 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1349 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1474 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1598 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1598 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 6)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 1723 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1848 M
+31 0 V
+4337 0 R
+-31 0 V
+473 1972 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2097 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2222 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2222 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 9)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2346 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2471 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2596 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2720 M
+31 0 V
+4337 0 R
+-31 0 V
+473 2845 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2845 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 12)]
+] -50.0 MRshow
+1.000 UL
+LTb
+473 2969 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3094 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3219 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3343 M
+31 0 V
+4337 0 R
+-31 0 V
+473 3468 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3468 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 15)]
+] -50.0 MRshow
+1.000 UL
+LTb
+1019 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1019 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (CG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1565 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1565 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (MG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2111 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2111 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (EP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2657 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2657 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (LU)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3203 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3203 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (BT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3749 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3749 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (SP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4295 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4295 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (FT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+LCb setrgbcolor
+88 1910 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Helvetica) 180.0 0.0 true true 0 (Performance degradation)]
+] -60.0 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2657 77 M
+[ [(Helvetica) 180.0 0.0 true true 0 (NAS parallel benchmarks)]
+] -60.0 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UL
+LT0
+0.10 0.10 0.44 C LCb setrgbcolor
+1652 3194 M
+[ [(Helvetica) 140.0 0.0 true true 0 (10% static power)]
+] -46.7 MRshow
+LT0
+0.10 0.10 0.44 C 1.000 1718 3161 327 66 BoxColFill
+0.10 0.10 0.44 C 1.000 921 352 88 1999 BoxColFill
+0.10 0.10 0.44 C 1.000 1467 352 88 2321 BoxColFill
+0.10 0.10 0.44 C 1.000 2013 352 88 302 BoxColFill
+0.10 0.10 0.44 C 1.000 2559 352 88 705 BoxColFill
+0.10 0.10 0.44 C 1.000 3105 352 88 1100 BoxColFill
+0.10 0.10 0.44 C 1.000 3651 352 88 936 BoxColFill
+0.10 0.10 0.44 C 1.000 4197 352 88 942 BoxColFill
+% End plot #1
+% Begin plot #2
+1.000 UL
+LT1
+0.24 0.70 0.44 C LCb setrgbcolor
+1652 3062 M
+[ [(Helvetica) 140.0 0.0 true true 0 (20% static power)]
+] -46.7 MRshow
+LT1
+0.24 0.70 0.44 C 1.000 1718 3029 327 66 BoxColFill
+0.24 0.70 0.44 C 1.000 1030 352 88 1341 BoxColFill
+0.24 0.70 0.44 C 1.000 1576 352 88 1156 BoxColFill
+0.24 0.70 0.44 C 1.000 2122 352 88 315 BoxColFill
+0.24 0.70 0.44 C 1.000 2668 352 88 707 BoxColFill
+0.24 0.70 0.44 C 1.000 3214 352 88 589 BoxColFill
+0.24 0.70 0.44 C 1.000 3760 352 88 373 BoxColFill
+0.24 0.70 0.44 C 1.000 4306 352 88 205 BoxColFill
+% End plot #2
+% Begin plot #3
+1.000 UL
+LT0
+1.00 0.71 0.76 C LCb setrgbcolor
+1652 2930 M
+[ [(Helvetica) 140.0 0.0 true true 0 (30% static power)]
+] -46.7 MRshow
+LT0
+1.00 0.71 0.76 C 1.000 1718 2897 327 66 BoxColFill
+1.00 0.71 0.76 C 1.000 1139 352 88 1301 BoxColFill
+1.00 0.71 0.76 C 1.000 1685 352 88 109 BoxColFill
+1.00 0.71 0.76 C 1.000 2231 352 88 321 BoxColFill
+1.00 0.71 0.76 C 1.000 2777 352 88 22 BoxColFill
+1.00 0.71 0.76 C 1.000 3323 352 88 485 BoxColFill
+1.00 0.71 0.76 C 1.000 3869 352 88 250 BoxColFill
+1.00 0.71 0.76 C 1.000 4415 352 88 188 BoxColFill
+% End plot #3
+1.000 UL
+LTb
+473 3468 N
+473 352 L
+4368 0 V
+0 3116 V
+-4368 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
diff --git a/fig/ch3/power_consumption.pdf b/fig/ch3/power_consumption.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..3e67d4672aeb7b5f02bdb8e6179efab9b9efbdfa
GIT binary patch
literal 42619
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

literal 0
HcmV?d00001

diff --git a/fig/ch3/sen_comp.pdf b/fig/ch3/sen_comp.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..f25c19b11f5393c83c4494bc3ddad7ca0b9c9e73
GIT binary patch
literal 17551
zcmajH1ymi&(l(5{ySw||8+UhicXxLP1Pj4}2AALjcY-?!9)i0EcefwTwR6tB-}~>i
zhVH4U?rN!;#d@CVp;i``WCpOXBT)Ai^tSaj_U0e}$=Jx8Ol=YP`B~*H9If1~$w03X
zRaQwGdv^<0R!MskcMEX~GbeKkK|usJcUKD&2L$iTb}a?FB{sD72d&@wAMz)gi~&?O
zji2-u!boJD9CUk%KIxy|@PW=F%v<J{%ju~N1Rn18My=UvEf6;vd~j5UX5coNO$!6;
z`iIAN4q(rUTX4rAuvQv-=H`4m90nH2ey<K!N#a{WPGu7Wah^M~dY8C&<(+lKDQ$|U
zWiN4cW<;RIQ1NYC&|Y7CeCNg8Z<b%~Kr9%CD#*dzXw!ykgM{9m52O&1iu?>eA#ara
zFptC(s<dDa;p&HiDcXf}`3p*O-L_Cyz!_6JECV>>Hh7seo>l9fiV)HrGVDw+6{?9W
zPg2!&iC|Y|b?yyqNyNy1@1~P$T=o-cW}P5vo5vZyy!Q&@g|r!IW?d4*5&PPoYB9bX
zb#PtFyk=<$2BOpkv*S12!QhgB#tKX@<-<(vyJp%#!;E42c`j*;K1qSA94KK4MVF0a
zI`j-(tcns5O!Gz=Og8t^L+HA57YEfdd<hk$JX6+q9ab4Iwt3qhqQSNq`Sv($k~zg7
zaOYserg4ejl~1Fl15jHs3PDPp074!*)u8F_y^)Rnwc_ala&Inbaza*wQvN7jJ+Vp1
zy`SeahLPvaup&bjuy+(R#>k}KBQ=ATNFBp)sKm9NHn3(}2M8~VR2*-_^c~N(dp|Ds
zHpPUZTuPR)I2IhU2s;*ZlZrP&=2Wi79Yilkuaa||Ud<sZ8F;LEd5s>iI1F+L&?z`E
zBGOdyrK2ZPNA6GlKsLJbeneV;k-z9cYRc*XYs^X^{KO3jHkMobi7E`s<~n~Ds9ui7
z_Qk&vxy13t`~7>B=7hrcg1RD8c3<*whk=G{Sex+O)yf41^;88)SP;(B7(oGX)NH?S
zQj!#}w+{6O+lN&?9M%3Tjm7#s|1&=!$A@7YN@f-R=P6>m-15LFp$Y_@bQMY4tlY#D
zFnGIi7z!?STn|SfHwXNSMb{VV-!^GoZIgw1+7&LpEZMC62Fbo-=N4N)v|o2uO6gO3
z7|eou@hMjYOSdCeHXp2u;(V@YH89>>O98Nds4=-Mw{hgND6t|j06#=}UtzcBJD>K{
zImR~3=H*#;I8weH-I4b4BoQ#gr7;h!Tm#MDdX_<WGo$9#(!Z&$s@I>7vS|DLoFFbL
zq0m;7?UylPN~KQC3=pwgxyF7JLT73T0@-%qJxIAN6?&9)qMolOEiJJJ;`^A)RJ<qa
zGekgBm=%JBqxnDM^0oFB$_Q@}{8r&%<9U1fhm7OD;+*sU5$FGW4*<vjKrU|XKS%wx
zubnpGY{Tyr5P^&|giH{WXje4a1~NqCja;uBoY@5lp>uT?8A)sm6o%p<H%efAqm91M
z`JsbSLL-ljVQknYtfMO?Esw&9!$oyQ5s!e3S(8iRrCn)&Z`SqF0FKvD{OJL^z)kCJ
z;OdhLtfl2q!>pm-QNxU(-BEDYWi)K*1k)FEp*EW#E}jMx0ny*gq0Wb=J77&#%Xh9p
ztYqR9cvmqFKWg9IN`+GSz<p1xiP4kvWARUl{ZxxbE_UB+Wxe%1G6$DDX$6sAb`adf
z%DNb70X8p7u!G+DhBY6T3&NXdVT!Q5S4^vw#GTyy`+Lu;qP*4s9bg#L0_DUGO$4XU
z^-9YTQN0%>73rDJQ!uLX7>4LwPGaC{{h*ip#b=37ge|zqPDr9~QrA+jqy$b0IlNMN
zl0xOOFJ`|89PIVm6mvdVO9N^0Ur1SYn0J`nS?eJ8CUDMthN(-%&wjInraTMla%Jan
zym%FUic+%g!nuULe^MZ>%Db6BRY7a_196P?&G-3o;~0o*O=KALW8c<z7s6#r?M}o^
zL{{bIPk?R-?yc;>goL2cx_Krdyur47aGXKbLLDEQj4^#7?D|$H)`&x>--T!)8;arz
ze}kQbz9e%L$HfzJ2#S4I6d2kec9OdyDFmIiSn?F4CrX;z<V@};8t6_WKn*<Y^?z{M
zk*2&9xTIU~fE;c^^G%x<$r4{E6v|KhZJ`2rlgGpE9WY_>D23$r5opX~*to|yoCU;f
z59XConI#DtAZLfUL3^fFJ}EwM)ElcKcd{k|{RaQE#?_2T493D5su+<ielVf3A3&8W
z6ucA@jUyC-w)$(9@zUMP!?V7rLU;b#m;UKPdt3XGs!iesj%kf#>}`ueYKgF!_m6Gm
zBS>=Jct-nZ2JATYQ>_arWLXk{80kH9Ro@SZw%+51h{%M`Z~vfmxIiNdcN9f};SuI>
zDuj0pp}_ZIq()83Z&Eook$vW+o^hTo;T4Lr1G;rL5sofF9G@IQd%w$Xi9=-hc*=mD
zV*Vk<+B#L9?Y*5Wk<-?D?@x9Jyj*eP9LSsyoj!$Mx|h~ews!M;!Z3uXg}a&RoJg#u
zP0@2}(;0T@sp4p+U~J^3CZwzL>zYa@t$|nDyA4ogBQd79wrDyqg~%dlLkSsVU-F%t
zFMO<aj*TXAuR>bN&@YB2h}%Vc;RePg72MqX-Y+Z}H?{y$+pkP1%9k)lKwO;AZt$}+
zl?NB~E2$W;_)!BRqXEIjJUjhDOCRw+8W-S<;(iEHR6beCoEqWTh1m_qNwJ*G;EC~Z
zG%QTN;0O*^kz$S3)xKZniWb>@3J@7x<F1Tmnwg&_h(6F?BrIT3bo7T~J3U~__z^?n
zunJTd)bgNIhAM${w*|(By)z4zI><xMJUT>f;;CQpMmn2W>LBBg_8nuo`3?0G)Vkyr
zaGQ%?KEJTchnu9WD><T&yXk}kZ8aMr<Um%$X7?WOjx&A4twy)9XMy&oE1Aad5EQOC
zP?(u*e+PVx-h3!i(!TGJ=TVov2MT{dyRrw#9xjK*ZOVAd>%yCYZSDNxedSX1o}X`s
zKPA|sa-XEaMVKZYfE|t|-5P5Yw>~|f+uQBQ!w;h-o#vZgKY6@K_iZ>C0a0u;f^G)E
z_YwW6C1W#fsGi}ac|U^r&nzRjZUeYSC3sgH7^VS`w;GaD`X@uypNQFGyA%nxePfEq
zR$*a|K{vklAM%64YgxP8X<P=#rYEKr7aSaq4o{fl;4qHK4yjU#7Uxp^VoW&KTt!+W
z#;#N)zoEi$1g&L)r5=1;$4}DPa<&s*r$}kG4d9rKim^^3=!3I#Q^+2GBeq%XNg_Y~
zwWhm6L#?njwFXSTmtSWTihJ+K0t7^V!Yurj(rS$;4$-C3B`J<>K!cI9>pM!~mgAF&
zcuw4I?jSDkC57?_ng>aZ#yE3DMiR8GD9vv}M>GqVtd@a{WI}tK#o3I?#cz5ktt~t)
zEe(FLY+O=!6rb9tKYT#E*w)Q&e)t~9$roXa*&B;<bFsufp4iT>*m#uLVqreEw5-Rh
zDhAau+nhXt9i{7HrxXxK0#$eK16o<+8Q*MQerhi!*K_sr^NmwUwZ$tx$xw>uSeYW)
zLO_>8XA(((ks=6H!)4#1Xg_0*n<$@SL`OIE^9H9xr!^WdVQ&)-b4j-#g65XN8;s(1
z4Nk@w6d6S8%xFe8&2b3WbPEaS8;mDmhv?+~Fxrqy>~_RoR8W@Nb6ASXFnR@bLgp=n
z$4c#u?+r7v`Pf$BmQHhl8+k`%r&@weLKzMAT`wGA2T-d?nke%V$KgVCCx73J9hxk?
z7(Si+w;8bX&h`o*f9hEwV+XKNh{3{@9gGVfz+bN#=a5~&xjPOytP193hQU`}v?<WN
z=UO2M(=45(Fw1k9_zfB(pe{!r9KPrA$;(WTTb}VI8Xrv6KRc`C_QGP0l0X?WwGZR)
zGDg>f#c@zmOOL~iLQr9ejmsNhtC}&FD@@%$f>^YrmsG2Jx~dB6z`dt#uo%zaBhEwh
zJVI!XV%%SjRlkpE7(dj<h6vv06yoWyVNg%eY?Vx^GuuN=@RuQ!l}IajD(Fs2GIz1X
zNf|p$OKV|KXyj-WSj;*a4dl;|ndJm6R9?CZEEZ1u=8GQ)LWU`jLdozDuA}>i@SbG>
zhMjbmWubzMAyHE}8EaP6^AiX<V?zy`f!WN|nwL2|Aq|18!E~o^dF=QJF~5!$qHtD|
zDy8!EKNl7fss0&<$4a552Bw%Er607L8P}cf))s|UHRf;n?gY*U@biXLa+KLRir!}{
zxkPh&9YHiLKt{pKET|ypdJ&X<78D{W6lU}=C;zU(@L6$iWl(TT)k??SV);-dMYE85
zyoZg<8z3+&vEt8;Mj;l#ph>AF7I5UueOR5VKhf!6Y%FWnw1aW9*w7EHUPPZfGjC_p
zs*sb**tNr6s^|wcg%zfeBrYoF&Vx;?5&p&6OlP1E$-u$UuJVJX22X~&2BgOh-QG!|
z%J}oz0tL@@s>m^JZY|drj^cRJJ%}7psCOLD<3+~#lNAHD4d8tA^wrFv?J`@xtT*)4
z^=UJssg7VIV<JngB{D+b_$-=ikJ2Rw=lUFpQ!$pI`TO-vQ3)w19FgXFD|<VU0-op0
zN-Hbu5Mh~W?p)HYv8Ep`8^5;hIaJ9{E7ot*7tm5ghcj-3YNZ5hgP$gIf8x!Gi*u4p
z5s4ZXrRHG7SePbg%mR1PrgCKp574;$m5~|5%~&Gq9;z#QE<Clw_u%<ro>OOX!siyT
zI<J9w|M|$vY0+WlLC!8>f2!n{!wLVd<*T*U8%Ljq_3Z43m6iJi#BQyK<CF2xqfXK=
z2bKUNd&A&t!I;_<mMBguT;WKF;AR9`(aF29C?Bo!lD4w!vSkgSs&CrVrDZ*<mA<9>
zy$s)q5yX0R!{{3k@)?NAdG$Q<J_fcSplXh4s!W(D^Qf@n8sG(R>S8D)k;1NEIDGcR
zlgD@eNTZlVs-WL*>Bf!G1v5u*jdS{${sv2bYAQVr7N?<_!@duvg=RxQ{Drq-k4CDe
z5BNo>kmUxAA}vMJ21I<<qUh)PyDsDL>+K?8lRyHMg3WLD&o|3;KZx#$$%k!fY1NVz
z0h8&8t4B`Xu7O9uDr>q(&E(UzzznCT&b&^h_#1%*zY36i@}l6p^Xm&Awye9c&Ug{y
z!-oe&9BRo@aSg*AX0!%#0`G}P71{dQUq$XkS>FXS6fCTYd5k<ZJZWdRXwjz44=@bi
z;ipHDNGn_b76u3swIS1bS2ug8zo~uO8$mjWd)7@l{i!CDD2Oa&$PvgG09RbtB6g?9
z$v&8cA7OSp@4217*UB;t>teK*$m5D-OaXzT0B%Jbv4f4PzB<{{jz&LCTz06AsRup-
zO^xstrs1woLG?4Wm)}?XoI3PTAX>N5@bdD<U&th3^^d=mP<Fg#3b?eAuV)JScRigP
z2$!a9x)W;4JTq7Z^pi=a`0EyI2?c+nIE<By&B%}@GZZAa#0^SGs9>3Ae$=Rdt~fX{
z$w`V1Qc9nku<3ixXgM^=u+?VVVP7<o5|Tp8l%(Vj&HR~pgc|Xzx^9x27vqCCX;l1I
z{Ye-b*t4o?KM|U0)`&0klZ79+0vbT*PZNxrh?+@rtzQ+Inicymyed{H&HWoPLWx5U
zS!-8^yJ)%92a0VoZ5t-%v!fHIE=T3{TSfC#ti36rO8Y!bRZQh0mdnUnbKq`IfWi=%
zC`swk7`fj(+c<~$ygEI{`);_J`a%Q05*%g`yl4y#SZ5Ykublh)53V;g9r>J0{5a2B
zW;FX2@s67`{UTbt={UnV$eyZGmb{Ze1=r|HQB8EpqzZz|*Yins%<1twQD?iB#Zm7x
z$PpjQND~%7s>v5BM|r6hm2$kYt_PT+o;wfWi`YhpAO3LZpXNP^hT4^Wx?KtEpK~C$
zr_Z|pF6a6uo};>&X@Ak|!SXGtVD7IU?E(77E;Q}8yTfNJjX){9_(hF(^5^sBWoYgx
z`IXj6TsHd)n;7mYS<(z)L8y_K=S2pO{o+WicwCY3-A{lLmZ^k~67MPpoXKEGJJIFI
z^}AX}utH2|`;=XVv(Z+-)W@?{Z@47PLVTNhXACTQQW?@$d9NpYzd9U}ayt4~e#)ap
z3d2q+aGCw8rsMCWXyav3Hl8tMkb`YIY~VrbRHhfd#5SL%pO%`*UQ>B7@ov@iL<zNN
z6;Q-jXZ8K3*R}rB)lPn}?EU6syMYZ)yWcFafaQKRWUIBP9o1%nEI=w#5}0`mSGJNJ
zr@{ArE;i(BCifWET2Qkv2Kmd!9tyckc)7d+*<q&15UnI$Hcpkw&W&hgrCoxXcW32H
z=(kjUp7tfMRxgap=iASu9#;}CTt4M2R`trJ29<S1U8w5HR^7pLE_?4&p)qh%1b3s1
z4@!BU`G3glCBuzcmvo{Kxa7rish&Ma>(Xr(*6S1Orc9nW+SpSCR1lKo(dj$HBMz$N
z`l(vVT-G3!5F{|DfItl<>%(HRD}8yiE{7S3d8h=(&%wJ(Mh_%syd^m>Vn#%rA@h@0
z_P?tJPv8}k4IL`mcMI_BP`h?~30wtBc^2<fN4QJ13g>A1cMG)%`lUR?Rg}b`^GhDS
zoEl?U=ARbQ@gsf!saWMxMeBYMTgF3IAx@=Arw35TE6hvBMlu5Sqz8n8kgJc76YNep
z9;lg1AI}x4V-T-Fh=O`yBmyxEA|eRNQ8Hqe67kAP>729~n<JJoc&-H8xEZ6CjP7Gz
zlRn}NkWuNe1p3;T<$1RR_7&Z-#XUu4<ym_|!`&T3BRkq|C7GG-F-3`!bUf6B>In&5
zEI1!diGsZBC7{JW1UutpP$+!m(5frZ!J>S2?f;~cA{&*h)T0X?AP_!;@LL)>{*$cS
z+&728Co`qx#r%gThT_K7g6dY93hC2Xj$@MDuaM(Dex&WKY8OHld(>l@@$rW<HR&^A
zY6{KY92N=eY^ThNsXO^K^4M{7TtCi1HSi8@V{1B~pDT<eI>@A5s~5H}Bz*p&X6LHM
zm53TXRDCJ6kERxjF%(-|`(Z_$fh+0g>?0m+A8EKv@pAp=A{#-<@hhm9J?kQ3V3<CO
zhF!17PxR7p<IYvxuig7;_0brrrOERio>@9_p04y;T+um8*H-~?moTe=tqbu<iRwfj
zmh0jco@MDSe>8Y4=xzVRtzS6RDN3CC?1Oi0Nb_UO<1F#y{lt7}VjBb_QeeZ#p%oH3
zDrpd&0JWxd5}pQ|HLvCfk+%D(GgIU*o5PO=td4We_A}FM7kyiEkFhBe#rHiL78=A7
zya6V95;_^o!M;bdd8<OR-!^#4ANC%&*Gt30i$y#AUh=pep=Y`XQHgv5imIJ=Jids*
z4r#+ba3CJ>$H>d!Dt29O$<wITmvX>peVi1ht@~b1F~&Hv)sIijl9Zq6&e(<^8=sl^
zTj*1uVAi*!*r_QFeKLu%GZ4x)__hyqfJ~$hHB21n0|_kQt*?KRUN7Sqa;x5Z0WG`E
zzyyRrozupj&N1Z4X&YphQ|tT;rS@}A1BW|nI2a1s^!<!-w8s{V-{dl%?0?5exIZ))
zi;k7EJ#V>l1itHyYSm@n_gln}ZwR9|S~Xl5FHSa}2zSdn(Uv7>5~RJKKsm1<nW++9
z=Fb?z0>vO@$!SeiuoGib=M+%c9`>J@5}1{0AKGD0vd{t4qeD|<x4DBby5Dm~JUL`=
z;`FXhpvX}xLZO7hz#LN3Fsq586n-Q2CcA_n=|Na>jtx9&H+s4rj&);u2O4pLAe9Np
z%%->@Kq|USm1#)7XvtHH-7qsvdiKWO#oZ;BAx2>T!at;t?qyF^yeMazhEemW(=e)k
zP}-cvz-@hr5_P%3ba^3=%iK+(;$>)gs=L*0u~E>yQz-3zhY)l8a23cgT6I85@Y9_%
z+dU~-u-fr9QXnH>$|EQ8TMf&TVgholMjn0#hZ(SrDe?lxf(9F#+Tv#)xowgmG-<vY
zy)5!`0hNNG-@qomx@7o#4lN|tT2hE?4zPqj-y9*i%~jJ!*+=uc{tfITaSGxXf~t#X
zP@DpoS9L;eLCapVYa-v)MuIcmH;48ldDt`B#hRx=2e%gwIRz}m<n$kW!~7iyV;(#Q
zCqp`$BZLInZpHkUX|i)?m#;BfBsZm3v^X>3X|XO4vbvzXeo5-cvDK7P6dlc@X*uZs
z<-1LVK8SygP{`kVLRa9Mm&Q?+XpHWclKrcXei_iMF;RhuL7W%KzOYFgN$Do|uv09W
z+;JeOG_QVMDg0MP0V6zax)o27d@vFIrw#&XbSBv*wykrSIAj9UR<vOphbp}yRk8F$
z3~?;LWR@V6qIy&@*Jh5Dsv=dkS_Y9;O4YA#0%-pw2i2g(lXN<U(Fi5kEWHS?9Uy_v
z8}s`1ou~plkOZui-4I=+HkQ|lSBx~`Sc}=39vEuJi98CbcG1#fkRz}emZ}$ur;B1&
zeNmU*j!OZG(*d;KpTvt{iOVo)DD$ehVEhuKritu+8o5rHh&b|#i_^C&FiP}4S)VA*
zQxZK9c!JD~Q*-Ib8%GN{l>1zm1Bf7Fp~=<X5?;Q1D2_)z&q)bAJrqB$r;<d8TW5u>
zK^$IYs1eJ?`<{?<VcHS>(=6aUJIT};FR@HkKYaQ)#&d%3cZ_QN2yFOoPzE#%0xS_j
zeiSF(6rp?wXJ;_D7`L0XSVUQ_ru}E~rXQ(=Ezh05j6cQ%jl<u1fOpcZ(Lz6d3MvlE
zg5aQ9Ljj+KpQBmh?q*WP0Dt)!^p56HGS?7m1+C-+{uUhk1m`q5NDAJfSQxxQr|S%&
z2>NkTDfES0SqS&E?KEAwUCvuL7XpF=$2l%214^I4I5EgfVxJKr(CD^8xSf1$6XID4
zoD}0!5&QwV&9G}3!V$|kG6)1U0>>K+AtHQu1NEo`Ay~t7Ju9IieC(SimwO1Ih+D1L
zr3x-|jtl;d!T8fQ2RJF_=?(M<>k$qKR!Q~YXb*wPbw=S`MbJC&D6~@<@E74ORE#^3
zV{~$|2?g;4)nHjPdLeW+UPjwfne}F2Vw~h!ovsjwV+`lKE=2Y8AZpPz;g~1UTlL#I
z;T-gSZ_zH34IA({IB$+L0flP#`cS45r7!1-2u>_@MA)2&>aaQ_EI1k>@V8139dv74
zVMcIC+;_8K5zw~nCB_taYPp*d$Vu%ik4&QH)j>^QAZ5L%ps=t)oj?c6*n@EhLFPx*
z`ot1Ems$jHw=c467^l$dwRDqiJ#r9N+-I>O-Lw<Nc=<uo5Gg80v{Q;4S@KDHg%Y&W
z#bt^>n5^dbN~VvfhlX5eEj^_4L&<#1hO>S>VHR8I9WKk_Y-=51zb(ra;hfC8_>R6+
z(S(9dHj+I|k4d!KfYl|~nA}LI46L&Y%aFPc!nblF#|r(Mt_>eX=Nu#Z4lMXPDw<o`
znV-u2ou%XsP`q^J*D8}Mb-d<3dz?(fWj~w;%pMy1+)a#OGf!yoHp`tWEwJmQ7g8yF
z1>hEE9PZ40wMAD;FPes+8Fif5SZg0w!org0e|K_BX*NG^CRN$qe>h<tM=~F9azO|e
z_;5^_Kd&{<F@-E?wt2Zv;$-IP8WNYTBQR|&@0g0=>mNh^Jw|PdDYjGMO7&rVBv(*`
z{8H=@Na2ymp?~J3?D|;2sFmA<vj5d|C~v+5#)ASir(|Z@SEWYl^YM?fTF04TRbI_O
zhQ9qDNhTh7j-R>o4bCQ13%(LsGB9ZBSS6T$wWQeok_uq#bJ9!qa_x=SavuA|WXtII
zG@_;Hny+g#me_Q_eS8g3*X+B<*y`Eg>*QfF=&dvT&DU*oC;!>c5Gg6+V0pU1t8qKb
zFm}|2h1qkbudGfVdzu-aK}~;h|9*drB5Q1A)7c$+VExIibGxGAN^qfbzjFGTPR8A1
zT-#@S={})$z2&&JCR;XHT!msuB6*j6QBC!5lm|yk!q>O(U_sPTDyCm`G0o`bfi&nM
zU|shc{$(n>ue{W@wSW;JWdu@TgSX1B0)0pRD3;ve+(X%~vkrZdf|QFEOeogvzU4D@
zzOq$X+qXPvKa}$6h_EH1pod~y)gQ~`)p;aT)59|tTx(#`oOn+^$5-jj65|i*I?ifa
z{*Kd{C0Up&8$7>lP{4j_!ylaWs$y*0Tt~)6UQ~i^?5J;NxeTtUA9XZPv6ru{VESQS
zAzLg6cZ9f{Gg%W5Q#h@`dlxNK$1A7RbTvd{<Q$d%ApM(le?L;gXXoBS!{WGTWXo0L
zQ3~GG?p>A9LiP8G%4dk0^%roTgZiCTuIDGRUoiOB%r&6}DKFg+<T?%|$Q(<zpQ9F^
zt;o~vA#Key^8+x1_H)%HNcMHiQ~clanu9@B5*VK!=Q6A%Dg71{5tx`^6Ow!Y^8z!*
zjRthJVmiVu@vS+AFCuUuda<6?LMp&^c@*4-F`|xsiAo(r-Ha<;cE@>AxTn0Ql&Rga
z`3_x_FwZnCCsl}8>pH(&%e5_V{(1YI>NVY<2E(+83p9NRtnJ6@&(@!?uf(Y9H0}+Y
zVQbIL+wSjqVXLa}DLLw$&6A*fDA|xbvV<Vyl=*pyg7HhDvOjjImgvPw8RIW}3?vH9
z(;oCd=SJu^CWl}Y312^W5zq)aiRzjhii#6o!&8@|?mg7TfUW?kzk?c}OIG~Yg_SV1
zjh-smz)l)WO&7I75{#cDFN7UjNEZ?)05Lp)eSZPRB&CxON8yYmYe|K!9r**F1>)-j
zvAh#htRyLDkkT1xfkt3y?aCo78;=mxS*LeCv!c2>`rtg;xiU|fWERMy-!<*9G!zLH
z=(w<XBkyz_jpfX!x1aHC-&c2Gu^C>7s}H&;LXtltyy#@BEx#$&h^J-+B!HEAs_42b
zmiX*@G7!)EQf=kh2O8aWYr1kRcyL<R^ecLTQc+jd)--Mv5rI2*BD^GpgZhe>aSF>n
z6_lB}75e@dqSB0REe*+8ERj-w{3`e;KOeJ~1fAzF4Fw6jhKmiw)G0MB`!r4-DRKT0
zdRA*{E$iBc(iECMLtv>aPq=IIMllu^qC@uURb}fj1Kvk8R7i*JYOlnrlPl=PTYgHC
zm%cfw@(yGEYMV`2H0z(J@5euY-m`PrP3&bsQ92+^ZMg)-MNl3-b-nuqg7|V*)K19X
z8w_!BnR-<j$wymm5{Q{-HbZC+_j!o_rDYN=qiranG1rDYcwmAXfec0V%48^;s5VdZ
zmL9SM(Psj#&A=Lt?i|ckBvDucOqqBAPH0Ji=+Sf-(h0SVE6NOhTNY0vE<H$(So{;t
zuh^l_SMc$HaK~WEsNfZ_4)1T+zhOEXvfq2{8o_VQMqPZ$hR@9jU2(KlfLQglb_$L6
z07HeGE*J_RpgWiFd0x>zzW@DV@NJqR=7m=ReMst33oQLnk3WTH>jf6{w9Agw*q=H?
zO?Hl=rud-^I`=nDDQ{oAxD>ccqfC6+uG7dI3MjV6`^zL@QZK~`SbcA1J6N1leLMK*
zhv#)zS)ikjLtyIN>SFlq7Q1)h4W|S89%qzWCB_-}<e>Cw^W1r!?2x3U`{!FVF!m-_
zlGsybv^)jjyLY@SV0;6#`;(Llen{56jjU)sju3X0(bm?gOR(Z%Ag&5Pc}CT_NbxPo
zNkL50DR~OD6VOw~_nr8&ic5C&jQ{E7`xSvNjfmohsm%lM)$35gT*FdKoH*UfETgqd
zO_jSZ+e_}v&DuZ2Npm}0+7YCn@$XV;1mjHMSEI)bd#en4)9vOSsCPR1>WqjUHzHYo
zziZd;(Pb41Omj8rnUOn|Tak-1;(Zr+cS$k$d~J&Skb#(XSjGCQde<(H+FxG`u~WCJ
zbg)dvE(@bLLFlq8F(e}*!;m*b?T$&T_JYzkQi62jUA%go(2EZ6VPzaR*X;&7p2Z`T
zsD&1UxQln*H0BnLMcWpaqbANbji^2T_3UevdG({*yocg*VZHn=1n1dKA_tRh7h*9M
z6K~ig{V~=%+tZ{IEHOh^r7QuDJFL1O9>E1@cUl-FWu;7RKheh?Y&TK-O?6T?()^vh
z>JjD8-enZ77?du|kS!QNM#{zSBn>1UL;;T_;sIC}Qf8Nm?tNb7*Kh&rL)(<U+{RO?
z$34xfi)+wnyU#^33lg=TkTiv2j0WJjQ8XxV4sHdArw`3m$IM^Ak59S;9vmJ^Kv4mY
z@%eGesC;tTS0RTXzaU{jbG;G3ImjEvd8d_}?y{S@2l|`9ljnzP)}zm-51Sa7`wxJ3
zovKIbCuTP)Mlb2<9`BGpAG;qHaE73PoMG3ld$W#uB}t0{Za<>F^xTxj5!|c`lG2do
zLkKFDdHw8H<aMyeP{cyI78kKBhNjoHf*U~j=1@+!a&T{ONIWL*>F}~_-&yw|rmi0W
zsR%kU2B(c(a|$Kh)yu4dk8%9FS8-7{CClXebXvb>BW)eAGvPwrVrj>9q^B+T;Q72F
z;^GE-HA``%L%76C24+&w6=zm%zpaRw8Y0%+`{0y0=yCze==Yz)tAd-t9|aW6wxYu%
zb5wfDh;5th1slXG8p{@^4X?nje6A97aRv-k<#PQ!Dfzz+A{lnU?)rUmbJN2$moumk
z(HUGITOq7>Po!O)Crvs=rpSBuiir=b9zHBQKa~g;a#$Z6Bcl{uHo!=Mt--S)2GLj;
z#_c~mg1<8!Ak}^@LJOY&_MGI9Yrp^YJTD^t@DwZz78Y^q_Cz<ELzs##WegTC1YA%W
zf^QmPrBSjT-+~d>44oh)V{d`_C?76PWkPAl79xaxeg6W1JR_6!Kk_)<GBn<jH@G?2
zLH|zV;QCJ@hq{lm1*@c!qr13;o0+SPv%Ax4!q)4pqKShAtEkA^k5S&n)WX%o-NwmL
z&BW1-S=7ni9N{gi%gT+6{k8I{Eh_5dt;Y=DW+!6?v4O|{Y@DyDA8a6y0jrF=iM@@P
zh@+Lg1sNLxtB9MKg`+ze4;u#p>zl>58)hH?fWRtd;w)`pV`c6BM?(ZwHFpaKO)~D+
zHg5)AQ^_oVWN!&5stB*?B>&1t;r`D={*`&g0s8;RJ2Oa7a13EX3%kke8FohxcENZb
z`spW?G}C?lPm-WHv5)G}7DMkBXF-XLs<^r1*BQH3ahqlVWe!4vRe`^dN4^|XoUz4l
zRf*`YEi6hG^<4UP#Qm;{n2~TPaY(TV&ud)P#!`92nJJoQHT7WIgeLiN+fR7f-u`iV
zum*l}XJ-i)$=E7h+=3p-y?eLRWBdpVpiyCmneyPH6Oka){jeciz@9=R5eGvvYkOMJ
zE~-u?L;taifwFpMRrlL&f?TnX9%%tkI?+5MDOhb|8Ak`*ivB!&*K0^`2f=61Uvw;$
z`aJtCIupdW1?eK|CxGE(T}5dJ+`>G`pv=*!6RFe=xd56V`^t{x<Vm^)hCL@-FkXJn
zG&14*eutec=Nc#>m}wM`x~r8c<@%iDe|&e=mT>V^0Jy8gV{rRqdA5J%@K~?@JL4uV
z>oTY$ZmxT!=Y-HLzn9^@1H3M+Jm`P;AkTkx>EG_gs^($p{^on?t{xVDNJUNDEZ(;I
z|Mof?S2uStYZKQuXOcJhXC26mz^Y|q?r!a-2jb))<K*Nd<KW;V199_^fj}TKP5>Jj
z_iO!4_Evu@fm~dF=>6-S3kZCZA^g$qwar`k|GM7#dh7RJ&kg?JqyLE@vbO+JMPOBT
z(r~nS%X=hybJV|h?&~oAo-_#nyea(;@BMc+6&DZNUz4e{?VJf`Jp{dQl{%`az~4hq
znRZjd$Af`?M3eYgBn<~8e2RQV9+D&tK_QG$D=iF0mG%*{PR5?G9=mjkKhra_*(RMg
zhLF|5OT5sbyzfU`fyyR6El9z%Uv_`2Kn<X|IG0F=G4F;ex35CI$DXwp#}c{hHYQN@
zkmbj6Opzf-5&@wNfx|y_G5M>p#~&HYA2ujSK4<8h)tdzSQwK~}iKS}Y1>dsJJrCFe
z2&}>N`u9e3V~;lk*$GS#4G=eOKoUa(8LW`}vc?JpI^-bAc1wxUh=VI9;816$6=%!n
z%j4vh`(^EQD8e1rr`d5SQaNHRmfE4t5dKcIthg7qQ4dBG`iXZ8$s^`Q5oO3hM>@RO
zvV&?;T4Q~mUZ8en<ACqqT`~x(O8A6p&}rBrKfY^Evg!hp**2W`e&fe-O+5#*3(i@o
zc03l)?zFk{Vu{1^C<9;9!?mu}r-0|3nbgDGM+P6)3v^knP#~cR;Jy~|MjXUlLsAi%
zW2{LaQ2jtMK;4eogMGUPi5=HHyEf1cP`;+Wg=iDsrV8p16fvX?pb8f(*%fRf_Wi`T
z1Gh4^u?uJ$2Z^V2L=j)aIe)k#xIoDasT#V&?)KQ|wPLmO7V(@w?0xCqW3Y^et*eGp
z%4=|^zgf8_x8{0=47lo=Rhd904Fc)mbW*7zaiVfIn#b91<C$fX7Z$(>B6dRM)TXu}
ztewS$NlArATt~pb-aq*IeG4%F@2r|?9iN))XgXSt(A7)7VL!5U<~bndb9l{v5-pro
ztz_MCmk7J_(T&k9RIldNi!g!{_pYI#V6Y7}uFgIe#e$w}g+h;)Qdu)3j*pYJeQZxB
z`IXtCH1*1|+1p^mI)ya)!k*xIpM6wX)B1k<%=XjDzXy-CQpUYgoY9u52o3)$HnaD;
zyUaLTnb4c4U`)5+=MSh)6<fO=2w7)szOdz6+mvZ>NzH1~6`!(>#3@p<o+C8zCa`{1
zQ|KMV4fIVsSFc(%>JIJ`FPp}%C5Gp!xzd;MN;GUGC{6rY#}DjxvALVqKtYi@ga(k~
z2w>sN(=D*nJ#TLp_nWqAGv4+ssGTHjj%<DrJH3<OyISC@$1c86l%`<#$`fo9i0aJS
zvvB1{t)la#Y-a^h76xr)dpoELHidF{ayq847h)WKm=PL!m|lniDUVIJ!qNW<zYfpa
zQ+|uWZHwHeHaO3)#{H$cdPp7iwuMgiv{S6QF}0%KEQ2?1l^qEVswX&Ax59m6yxez<
z4Y=|1**SK1z50&dTmKpmA2|^(mq8h>!dqL<Q)@wjUY*|FyKbSPvP_Km_~8ts;<Cq9
zSxi}v1wo6`?$n4dOx^GQ)lUBBHsI^A_Iuo94md>JWrrZfuyiIj47JO^;~L8WFphp|
z|F1!gC8V8eaYHY(J3l7DjZV-)uJ!k%dcF)sgwit14t4%q6OFQll1n<3*~T;wmHmad
zQsMiv{xNdB+MFUI@?H_0VyZUz_xXdh`AR3z*|utKN9faf)Y?jOV{Hak=SKK4+fM!u
zi>&5K+sEPcxoGRiRI@o7kpG-Lwt$)T8i1ULG#?Qey{tWay<Am1evb(L1_iPGVX&9k
zm7)cFUs2_#b36u(b9ZSi0h42zKyV~=9-zLZ+y(myt<Aw3cY2!O(HX9ps!(ovaUdcR
zpR)mgT$6G$7*I>Hed1D9FkA|1-cyj!xtzjh*BdNv`MT1*#>NUOiHHo%(ah7Qxv3Zg
zgjtrR_-MgnaN)200nx07h}BorgqI5;F0>XYJhVmsYrJ1`YnNzh*T>!rBxp6HxlykW
zMo*bX9KtrIW<R%7qZzpN-r-*@WPDH~ZF*4OLIs%nElVG4gb;)2I02sZzs83dNl=fr
zc@`RnMZN5G@KBm$7Mer+C;UGSFa#U^<lCt5TC?0SKp)zBVkB|(_2&1F@1^{;7k}y#
z&X$FKGAD~28^(HmYd|i8&rm4(<1{HRJN(n6^!-j0Nf5P-IypR5pl@;z)s+1YIQc3d
z4}KH9nR3z4cm9NEL+!$Io<6)ACn3`OD<6M*M;@T$EO!z)#jTP!MLi|2=mUa@I<#pv
z+Rewi_n&|8m9$aPYN@mkXu;4^Ud5^nXBv4|wHe;KLXkd&tH*9cY9WtdLsT|i*g}_c
zRF)(;HDp=gQ<;Pnno?uuXnh^3XuJshvD`niVQW`2J$QPcvDI?Lv;BLN^#SX0L>Mey
zjdK%!7)*_%%2L)(bJ$vLFs(<qTeTYznhOC7nn-js3BP*?pD>yv|NWreP%4lGe;l6`
z-wBU{+P*+JV=x7%rVK%B7enlLqf42_t*QTWKi%7I1Hp^Xsg<ByVYFYgP*w_RM5>x6
zG7F0k*?jzFne=Yc_Cloa>{H8qmEz%jV3STf)5PP)O#PR+Dt4dFXG%A&QOt3XkLdik
zn!Q@AqU!^M*~Gdmw`o6FlMR_H<nAC?w9D2$q#UT?UBV2QYcDr%rHwHn5g;`(5b{`4
zB4n%#)LS}`HW)Mpj2FSp!%Z1q%%y%}HpO(9wdb;zjfyF-XC?FcUgSJKbc|pGtp>i>
z+Vw++RcE!Dp*$IKx_Y@w2bL*ZwYQPnf&`ZMxB(^8&CG0&z(s)!006igYWp%|Ws5_g
zS1T!&D=0P}VYU(+iW~KnEb4ffL7R28sEK>d!X?|LHFD^D{|d)ha~T^w-6Z+Qk$7-L
zX|U4K0eNs0L9vB8cjM6zt4plaOUTeB<?Hlf(K4$y)+|ZG=yZ}_umQVmsLvQ2!@)Vy
zfx>4@JK_hU=;-H5=tl8U>MyBfQEJM4ocXZ?!e2uyxp+T}p=Mt-xvZ>gOk-AsOXG97
z-<RX<Z?pRydN+<)n#x}7CN!4Q#v0gIxW}xFU-6(a&vXZm7`bbf{AsP@XK4rwxH}`^
z--8xK%3%VaHyxLz?CDIyWND}B{o-nBKLDD&`0&p!){AMD4+`&EH_T9rmj=2{^X~gU
z?+~s&dL~b0-iTT3DPCV?O$r$hZSV@QO{*rX8r3f=|Gt~pH#>RpYpZn1t8>e%ioFi;
z+T?w}yguOWrMa!Os%ebgN>2NcnvL;OS9D)iIxw;&biNlxTe5q9o*{)}yY!o?f}8>p
zyNkkZ`iixxbw>K-=!Cql*eF!Gz-Zo%^o8n0gJrT5#hk1N81AmAzQMh0TqB#dj*beS
zF;HalncpDIR@kltZ>YN_JSrCtJa3w&vH`wnSilA8K#9=Ubz?4lQK9C$fqC6^qk{cH
z8p==c&)^O*MV^i727LsV7Fa?>wJ*Jit+cb9+M4^<C>$u%0oWZQRw$Y09vr0QU(a|W
zQ019px%oZC^u$8qtU4VR2oE}*{9CxRhn!d|4ze7gEcq^x9%|O5n8G(-3Rs5JDhPEX
zPxk$++0E$^?nzfOu`XlE;ARAln4t@(bADOhSf|-~B&Mr;jj=7#oh~r_#gP9I9%LTN
zAMR8vE*6fLvNvmcsarvV`lH^c&%w-NbAeH!UnI93cZ3z8HW!+Cm;qbjb5v>@#j#Rz
z=XzjY4MOF|3m3p~ex@oprqLRU+lll3&a$*o5rHq3RVj>A)-+t>S{09ILn>T^AHkp-
z2}>XSuOIx#)sWD#St)E5b5V}vP}dY9bH!-(d=))4W=j_3VKp9AUzfIP7im8(E4f`4
zAAN>Tv9PUU!PKQdvlk9oU=o<?G!SZU4*V$>m~h`j%7n({w>DEehi?y@I?4gi_)~a}
z-m+j?bRut`wiUbU;ZG*TI~0nm$tGn6n`w{k4<IY$HIkLwmE8Mb$tOmR71_=n8~2Ih
zjcozK<n8;CfLWl(BDo?id4>s(;Or@oue!g5l*K1Ofo*CFk#>_@{o*OqB;$F`dhr7l
z)>7xAw93><`H6O^g+OP=xle;dvGXn*iff05Eqn2v*Cy}vSgzNW^+vJPUb^Rt1ej6v
zVDG=l=X5-w7AwYErM{a7pjm6b{EXnPOKyEqunD=NK4#$7n5$bEFw{!TgI+z5G#S0X
zy%sR9SvNzLpA)equ84Jn&Ddq*NyX$)nr34NNb8Usx5Zw>YCvdALBk}!3q|q*?BEy#
z!($;OIaABaXuZ>5+?-5?8NW_67FvHGyiZeR4A!hncCtuId7hbh#*sXOdx4w(dZEo9
zP5V2rTPBlc0-NsFKsSk(7@<wwzAuwNCCRk|BfJi!X3^k+nZ|=y!=hNozJ44|)5auT
z_Zk|TBl2fRM<d6j=GbIB7qEz*?%mE>%^cq}e_tq0sUq1~7yry!oU>QgLW6YN7PW{`
zFbJOGOxd2(=i}m=r+JU;z)aB+Q=LT~<LAm88>29EH<LfEbg`l-wW1VS-~aRc_r+P3
zSc>bHUE(6rr@K3YxPXI}%Uvt4G{WoYq(fKjRK%6`gR0qYm#u@3A$ueyPquMhMpd2p
zSwx3VCe|(`iiI<^G7r0UvGpe}UD8>)^TmsfOuD?w&w2Q96F9Di*6s_#zcibwJfBYV
zk+B6DB(0Lsvp}FUdCNc&r=KTE1-C{qO`TV_NtH(e)mwoNw__5=7hZ<9vx}z%&M+Pv
z%`ZQMaKK6`4xag(&dynNyjYmsh*x(|!K#LWG6W#OZOgz;8Ga}5LXO@pg%m)hoc?l4
z&$J{OY0|0sB64032HAY<N=t^K&lbx``0;=)-?1?fQtymHuLj;$(mcIenLf?(tUNK<
z20GhIkbFvZ>7j#aieaJ`I!&{e{?;#TCMf&XLKjiOT)yZ65HVk2bdtG62{eF{sil~b
zm>4_7%c83vGBBmFAQ(5a50l?y<XdE!V)C8~l4s0~4UjELuFk@?(1qrkKN+eg2<(0q
zE#jzFI|HT7^mtO!PTfs>aUXIACsG|S|ArP=-bOVgaoW6Jm-YRZDKCKU^R}1b?0F0_
z^5~;7{{U>h4(w_>+tJnyvA_>G1bji_@xCeA4FK)x?9mnK5#b&Q(HbVc;18>*No{|@
z^uQ#gu_e3J&)h^xQgxAA5JE&sw3cn(^J@aq_HIR)vUd*d9wK~rpM}?hy?Mo`TQiYI
z#|HQq5+t7jEITRbGr!wYB*ql0q-w88W%ViwVvP>q*801X55(Eyql}GE6>TOs^Jb4p
zs_>*`^^U~7b`GrRV~<I3aa1S)r72Qxx7D6ux^xJoj}Cyohqc&qUVR$&INy@7QrFCu
zG}v`_UAbBusEsQ1X3CZsVOhJ(a+|-)4@jL5g~1eJk?6BOh5>xi?-C^*-Q&KM=O0tM
z!M_y3j5Dz<bw8K(=RJ@wvNE8>jHA)#c^4U`GfT|%D~f3MrY>Aj+Ej=|lmLSb(QPh{
zKYOhx4<{#PBIw<yG_nYh=`E5d76*~EM=yjePy7O`)LC5Tu$bh=#%=WGMX0$P$HT-A
z#K6l&RLM^yq2Nh0R8J-KxCLkUVoyH)Me8a_)FwMk11Dk+y{bgK3Bpg%M8qjn@by<;
zw&)g)d+Da=3_d*;s}vjl_}!#;p?CcfFbbK#R99GsSXV&Di#`tP)3TZW?DdK_e)=(O
zu6dr2?7z#7nQ)@=3ooT!G=W-zfl)&5Q@tb!nhP4`Sgt_-RqRgv7GISAm>b3(5B>$E
zvwpfA3`gnm&Jqysu2b_v<tTgQ*j9k|<e{Q8;DOplQ`gSjUU5V96fF?cvQ}`pE1u;i
zpfntqg~1V*{-V~(<f$mz17Okc$MJBR_L3Fctw|36iXy5CDTl_catso2cG^(G6j)W}
z$F6KfXr>639$8-F^St2GE21=Dtt5W%(-&Q&m$543p{WjsFE}2H)3n!2S<V@?WVspJ
zeF1tN6G0GadJ~g4`*_;C^R4)P-uSTpJ8s!2hEpHez~CE$p@u&7;cq?rH0nE=G~bJ5
zuC#70nL(}(+k{T<Lh>RWgj$od@Zj2Ue3-8Y9vUin5z8@V!%7jYSlj&9j}U)sRYh*U
z(wJ#mqqL5|><p^AS@D~)Z4H_`hMG3u?T-P*LoLH|U3XT&Gm4AzD5@)pJ@0tu@w0Ib
z{=uSb%ADt4o>2#h#5v~Ar{7bzx8oA6V3~2ef#+0i$1<+Rlv}++u7h`*@|?9M-{l>&
zRq=!(bHXZ-hdI6ON)|?A%jS>~M=!QLius)P*jjL?<4c!Q=<6GnT$k^cn6J0>plBkk
zRQ2$@HzwxAa`^g4h??~DH=zb7H%D5|2sfiGGLyc^NhZUEK?Lk;BQAEM)XH2lef^1a
zqs>h2{+Y<zbnOsqag|!z_nUVVi}We8DlVL{=r<NQ+&Tek5@t6-$*4%jB)0=ee2Dx$
z<b0Op@Yu<{B6p?V+QjZ)b?TBy=E<3Q`1p;Bep=InV(nje-Ib||`}a+JZw^UuHHszh
zh=uSB$+tGml(KmsSBTq9H=VVk5AhDL&7{5QYC@r!%nFg(%+lm%SPZDlnyik3NFU54
zH$d~7Llz*N>O~N~46M+QIs7@@=p0De#7c!0KjFJ71tdOE1k#haif5*-+SIv>zS0Xk
znAAPX|G*;u0NLIEadvJV?tkORfIl5!{x?MVA3X0rh`88)A>tOUHkSVvBo6!+B+mVY
zi?eb4zaVjLo>vh3Pmnn0Um<ZeuKx{*|A8a^6<Pe((arxH#|Cn;{SR32&&M(iJ`Fqe
zlA%f5_(Q*e;#s#f)t}15<J*3Vc|3sQ4X~&p!)=DWbnySw+=p-vPa7T~cHOIL*UWC?
zrGz>4R@LRz9^HXjL$@qcQ86tI?UdTXL2UW}byQtNl47V-bb#iA*fQNpOiEISzYZRc
zOWRE^u-Q9k0e4od^8k%#9Y=49B$wJFq_iY>0WGac?1%sJ$H^es9i#Uu^BS;Uf<yuj
z{_8db(JUx8RyDkJF@}8N+^BN&qYFmPQrHg)byeLgoi(7#vZSCzB}ESAXLi@*)u<tl
zjiT5ka~8^`mLi#_ldKIY7Y!klnz>BG<DY_w71q)=w+1a7oMk`nV1QQv|BE{Tu>S|6
z{kK>AAHenh?HvCTx&Gh4H9I?q49M{cRI~l#db@wC|2NS5hvWVQX$Jgp_WsW#3E)rX
zb|nF1Z)p50$_ym?V|sseoqw@Kudee3#gqNf^tF3sS0^(y3wJ%%*Tes;>K5Ma27fW|
zw`Ec`v9e%QHgSC;cixszl~vWk&B?>n%)*Tf@Q)+I3Kr%zCU2zC8w}3Q#X$xHaT~Bo
zxjK0`zuH!NWd&ZDCg-;<%zRkI)LsL_)5gp~RZ5gqhRpqyF%T4F6?+}vs|7c*x7bzv
z6DjofU3(jj8^V8$0fF`3gLv)W-=lb2WH}piH$AdH;P|&&F(;3=wfK_>z~31(F_TxG
z%gO3>)~~kyF=+%=C1(pq5wkbmOz$6kv1;q+k~w<V+yCPa+iTzQCXQBg7LLpsYV?0u
z(myd<A|CG6POkit5|WZ^uf*Ex#re-t;!kza*E%;F8<0)#b-=HmSa>D!{@H|s>-Dt*
ze0|LGTC%^Eudc)ed{ukhRdWwBi+|~{i~U1~^Hui`{Z~EqH<NGX-mcg7oS@h1RsO2-
zO7FdvuR{QF{LAF)OvPWn^*|@i3uFVZ1AuHG0Dv6`<Y8n3(6X`7(*J1%y<IIV5!lE8
zJP5Bn{qsl0$-x2QAhRU<hYY~U{>ml(@r=yzpR(6Gz^enl{r)85;rY7^z{$b>>S=$~
z1N@J+Je=&Wd-+#A9!}2J<^P+EoAbYHumO2q_w_G&05%TJzxM~=;NbW#Jq`}8zt0W8
z!SzZ?{jI;({r+zmi0$ul18{=a|2}2_Cnx)B=>K(moLua$@$xU3yQ|47vFiHv<qkC)
zUyIl6U{!T;diC{Jn{Nb`jH9I!8Q>q}6|0OmnI0LxB%3&pjfaO@QcRQ+$iV~P;FRRy
z1o23SvV+7$*f}Ky5&r*G-hxWp$xO`J!pzRi!-0%d3<wkv;TGZK=8)jxmgMH<VwV)<
m=HL_o@w{%C2uS=bG~C=xT;2b08vrK{Cl>-WwS<x+!v6;Yt>pgz

literal 0
HcmV?d00001

diff --git a/fig/ch3/start_freq.pdf b/fig/ch3/start_freq.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..66c24cd8740a8ffdd9842714ad5e3aae37504aa9
GIT binary patch
literal 21938
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
TStv~i4Pn6+t(&QPX|R6*IT0b*

literal 0
HcmV?d00001

diff --git a/fig/ch3/three_scenarios.pdf b/fig/ch3/three_scenarios.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..9f36c43425dd73f646c6b9f488188088f6d86246
GIT binary patch
literal 14890
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
AQ2+n{

literal 0
HcmV?d00001

diff --git a/fig/ch3/three_scenarios2.pdf b/fig/ch3/three_scenarios2.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..21b0524f5dcaf59d86ae5f7db33416a72ca6a455
GIT binary patch
literal 14475
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
X7&*E8wWQ1dF3`J{oLo#n9QOYMoAq!U

literal 0
HcmV?d00001

diff --git a/fig/ch3/time-eps-converted-to.pdf b/fig/ch3/time-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..6fabefc023bee0fec4f5552146f65934938ce383
GIT binary patch
literal 8121
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
a48Nb?@o8NCyn~1Y=mm_TqP~Rz;{O3z5B&T9

literal 0
HcmV?d00001

diff --git a/fig/ch3/time.eps b/fig/ch3/time.eps
new file mode 100644
index 0000000..99cea89
--- /dev/null
+++ b/fig/ch3/time.eps
@@ -0,0 +1,935 @@
+%!PS-Adobe-2.0
+%%Creator: gnuplot 4.6 patchlevel 6
+%%CreationDate: Thu Oct 22 17:45:34 2015
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 410
+%%Orientation: Portrait
+%%Pages: (atend)
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -36 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 554 50 lineto 554 410 lineto 50 410 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.6 (September 2012)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+  clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+%
+% Encoding for ISO-8859-1 (also called Latin1)
+%
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+	CharStrings /Idieresis known {
+		/Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/MFshow {
+   { dup 5 get 3 ge
+     { 5 get 3 eq {gsave} {grestore} ifelse }
+     {dup dup 0 get findfont exch 1 get scalefont setfont
+     [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
+     get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
+     {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
+     get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
+     dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
+     show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
+     pop aload pop M} ifelse }ifelse }ifelse }
+     ifelse }
+   forall} def
+/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
+/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
+ {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
+     6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
+/MLshow { currentpoint stroke M
+  0 exch R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MRshow { currentpoint stroke M
+  exch dup MFwidth neg 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MCshow { currentpoint stroke M
+  exch dup MFwidth -2 div 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/XYsave    { [( ) 1 2 true false 3 ()] } bind def
+/XYrestore { [( ) 1 2 true false 4 ()] } bind def
+/Helvetica reencodeISO def
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title ()
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 6)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Thu Oct 22 17:45:34 2015)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.100 0.100 scale
+0 setgray
+newpath
+(Helvetica) findfont 110 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if
+1.000 UL
+LTb
+605 352 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 352 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 0)]
+] -50.0 MRshow
+1.000 UL
+LTb
+605 421 M
+31 0 V
+4205 0 R
+-31 0 V
+605 490 M
+31 0 V
+4205 0 R
+-31 0 V
+605 560 M
+31 0 V
+4205 0 R
+-31 0 V
+605 629 M
+31 0 V
+4205 0 R
+-31 0 V
+605 698 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 698 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 500)]
+] -50.0 MRshow
+1.000 UL
+LTb
+605 767 M
+31 0 V
+4205 0 R
+-31 0 V
+605 837 M
+31 0 V
+4205 0 R
+-31 0 V
+605 906 M
+31 0 V
+4205 0 R
+-31 0 V
+605 975 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1044 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 1044 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 1000)]
+] -50.0 MRshow
+1.000 UL
+LTb
+605 1114 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1183 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1252 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1321 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1391 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 1391 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 1500)]
+] -50.0 MRshow
+1.000 UL
+LTb
+605 1460 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1529 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1598 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1668 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1737 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 1737 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 2000)]
+] -50.0 MRshow
+1.000 UL
+LTb
+605 1806 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1875 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1945 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2014 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2083 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 2083 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 2500)]
+] -50.0 MRshow
+1.000 UL
+LTb
+605 2152 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2222 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2291 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2360 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2429 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 2429 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 3000)]
+] -50.0 MRshow
+1.000 UL
+LTb
+605 2499 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2568 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2637 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2706 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2776 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 2776 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 3500)]
+] -50.0 MRshow
+1.000 UL
+LTb
+605 2845 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2914 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2983 M
+31 0 V
+4205 0 R
+-31 0 V
+605 3053 M
+31 0 V
+4205 0 R
+-31 0 V
+605 3122 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 3122 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 4000)]
+] -50.0 MRshow
+1.000 UL
+LTb
+605 3191 M
+31 0 V
+4205 0 R
+-31 0 V
+605 3260 M
+31 0 V
+4205 0 R
+-31 0 V
+605 3330 M
+31 0 V
+4205 0 R
+-31 0 V
+605 3399 M
+31 0 V
+4205 0 R
+-31 0 V
+605 3468 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 3468 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 4500)]
+] -50.0 MRshow
+1.000 UL
+LTb
+605 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+605 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (CG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1311 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1311 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (MG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2017 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2017 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (EP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2723 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2723 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (LU)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3429 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3429 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (BT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4135 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4135 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (SP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4841 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4841 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (FT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1.000 UL
+LTb
+605 3468 N
+605 352 L
+4236 0 V
+0 3116 V
+-4236 0 V
+Z stroke
+LCb setrgbcolor
+88 1910 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Helvetica) 180.0 0.0 true true 0 (Execution time [s])]
+] -60.0 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2723 77 M
+[ [(Helvetica) 180.0 0.0 true true 0 (NAS parallel benchmarks)]
+] -60.0 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UP
+1.000 UL
+LT0
+0.10 0.10 0.44 C LCb setrgbcolor
+2546 3264 M
+[ [(Helvetica) 140.0 0.0 true true 0 (One core per node scenario)]
+] -46.7 MRshow
+LT0
+0.10 0.10 0.44 C 2612 3264 M
+327 0 V
+605 1208 M
+1311 445 L
+706 78 V
+706 595 V
+3429 907 L
+706 930 V
+706 52 V
+605 1208 Pls
+1311 445 Pls
+2017 523 Pls
+2723 1118 Pls
+3429 907 Pls
+4135 1837 Pls
+4841 1889 Pls
+2775 3264 Pls
+% End plot #1
+% Begin plot #2
+1.000 UP
+1.000 UL
+LT1
+1.00 0.00 0.00 C LCb setrgbcolor
+2546 3132 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Multicores per node scenario)]
+] -46.7 MRshow
+LT1
+1.00 0.00 0.00 C 2612 3132 M
+327 0 V
+605 2089 M
+1311 592 L
+706 30 V
+706 951 V
+706 -482 V
+706 1385 V
+706 -120 V
+605 2089 Crs
+1311 592 Crs
+2017 622 Crs
+2723 1573 Crs
+3429 1091 Crs
+4135 2476 Crs
+4841 2356 Crs
+2775 3132 Crs
+% End plot #2
+1.000 UL
+LTb
+605 3468 N
+605 352 L
+4236 0 V
+0 3116 V
+-4236 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
diff --git a/fig/ch3/time_scenarios-eps-converted-to.pdf b/fig/ch3/time_scenarios-eps-converted-to.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..e51998a7b971241d4cf04f3ceada14120948c7f1
GIT binary patch
literal 8725
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

literal 0
HcmV?d00001

diff --git a/fig/ch3/time_scenarios.eps b/fig/ch3/time_scenarios.eps
new file mode 100644
index 0000000..a9b8da9
--- /dev/null
+++ b/fig/ch3/time_scenarios.eps
@@ -0,0 +1,937 @@
+%!PS-Adobe-2.0
+%%Creator: gnuplot 4.6 patchlevel 6
+%%CreationDate: Thu Oct 22 12:39:30 2015
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 554 410
+%%Orientation: Portrait
+%%Pages: (atend)
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color false def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -36 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 554 50 lineto 554 410 lineto 50 410 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.6 (September 2012)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+  clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+%
+% Encoding for ISO-8859-1 (also called Latin1)
+%
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+	CharStrings /Idieresis known {
+		/Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/period/slash
+/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
+/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
+/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
+/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
+/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/MFshow {
+   { dup 5 get 3 ge
+     { 5 get 3 eq {gsave} {grestore} ifelse }
+     {dup dup 0 get findfont exch 1 get scalefont setfont
+     [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
+     get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
+     {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
+     get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
+     dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
+     show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
+     pop aload pop M} ifelse }ifelse }ifelse }
+     ifelse }
+   forall} def
+/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
+/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
+ {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
+     6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
+/MLshow { currentpoint stroke M
+  0 exch R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MRshow { currentpoint stroke M
+  exch dup MFwidth neg 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MCshow { currentpoint stroke M
+  exch dup MFwidth -2 div 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/XYsave    { [( ) 1 2 true false 3 ()] } bind def
+/XYrestore { [( ) 1 2 true false 4 ()] } bind def
+/Helvetica reencodeISO def
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title ()
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 6)
+  /Author (afanfakh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Thu Oct 22 12:39:30 2015)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.100 0.100 scale
+0 setgray
+newpath
+(Helvetica) findfont 110 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {gsave BackgroundColor C clippath fill grestore} if
+1.000 UL
+LTb
+605 352 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 352 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 0)]
+] -50.0 MRshow
+1.000 UL
+LTb
+605 441 M
+31 0 V
+4205 0 R
+-31 0 V
+605 530 M
+31 0 V
+4205 0 R
+-31 0 V
+605 619 M
+31 0 V
+4205 0 R
+-31 0 V
+605 708 M
+31 0 V
+4205 0 R
+-31 0 V
+605 797 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 797 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 1000)]
+] -50.0 MRshow
+1.000 UL
+LTb
+605 886 M
+31 0 V
+4205 0 R
+-31 0 V
+605 975 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1064 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1153 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1242 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 1242 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 2000)]
+] -50.0 MRshow
+1.000 UL
+LTb
+605 1331 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1420 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1509 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1598 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1687 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 1687 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 3000)]
+] -50.0 MRshow
+1.000 UL
+LTb
+605 1776 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1865 M
+31 0 V
+4205 0 R
+-31 0 V
+605 1955 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2044 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2133 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 2133 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 4000)]
+] -50.0 MRshow
+1.000 UL
+LTb
+605 2222 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2311 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2400 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2489 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2578 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 2578 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 5000)]
+] -50.0 MRshow
+1.000 UL
+LTb
+605 2667 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2756 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2845 M
+31 0 V
+4205 0 R
+-31 0 V
+605 2934 M
+31 0 V
+4205 0 R
+-31 0 V
+605 3023 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 3023 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 6000)]
+] -50.0 MRshow
+1.000 UL
+LTb
+605 3112 M
+31 0 V
+4205 0 R
+-31 0 V
+605 3201 M
+31 0 V
+4205 0 R
+-31 0 V
+605 3290 M
+31 0 V
+4205 0 R
+-31 0 V
+605 3379 M
+31 0 V
+4205 0 R
+-31 0 V
+605 3468 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 3468 M
+[ [(Helvetica) 150.0 0.0 true true 0 ( 7000)]
+] -50.0 MRshow
+1.000 UL
+LTb
+605 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+605 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (CG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1311 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1311 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (MG)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2017 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2017 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (EP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+2723 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2723 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (LU)]
+] -50.0 MCshow
+1.000 UL
+LTb
+3429 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3429 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (BT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4135 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4135 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (SP)]
+] -50.0 MCshow
+1.000 UL
+LTb
+4841 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4841 242 M
+[ [(Helvetica) 150.0 0.0 true true 0 (FT)]
+] -50.0 MCshow
+1.000 UL
+LTb
+1.000 UL
+LTb
+605 3468 N
+605 352 L
+4236 0 V
+0 3116 V
+-4236 0 V
+Z stroke
+LCb setrgbcolor
+88 1910 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Helvetica) 180.0 0.0 true true 0 (Execution time [s])]
+] -60.0 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2723 77 M
+[ [(Helvetica) 180.0 0.0 true true 0 (NAS parallel benchmarks)]
+] -60.0 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UP
+1.000 UL
+LT0
+0.10 0.10 0.44 C LCb setrgbcolor
+2123 3268 M
+[ [(Helvetica) 140.0 0.0 true true 0 (One site/ 16 nodes)]
+] -46.7 MRshow
+LT0
+0.10 0.10 0.44 C 2189 3268 M
+327 0 V
+605 1101 M
+1311 464 L
+706 162 V
+706 975 V
+706 -161 V
+706 672 V
+706 79 V
+605 1101 Pls
+1311 464 Pls
+2017 626 Pls
+2723 1601 Pls
+3429 1440 Pls
+4135 2112 Pls
+4841 2191 Pls
+2352 3268 Pls
+% End plot #1
+% Begin plot #2
+1.000 UP
+1.000 UL
+LT1
+1.00 0.00 0.00 C LCb setrgbcolor
+2123 3136 M
+[ [(Helvetica) 140.0 0.0 true true 0 (One site/ 32 nodes)]
+] -46.7 MRshow
+LT1
+1.00 0.00 0.00 C 2189 3136 M
+327 0 V
+605 902 M
+1311 412 L
+706 50 V
+706 383 V
+3429 709 L
+706 598 V
+706 33 V
+605 902 Crs
+1311 412 Crs
+2017 462 Crs
+2723 845 Crs
+3429 709 Crs
+4135 1307 Crs
+4841 1340 Crs
+2352 3136 Crs
+% End plot #2
+% Begin plot #3
+1.000 UP
+1.000 UL
+LT2
+0.00 0.39 0.00 C LCb setrgbcolor
+2123 3004 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Two sites/ 16 nodes)]
+] -46.7 MRshow
+LT2
+0.00 0.39 0.00 C 2189 3004 M
+327 0 V
+605 2263 M
+1311 584 L
+706 25 V
+706 1112 V
+706 613 V
+706 291 V
+706 343 V
+605 2263 Star
+1311 584 Star
+2017 609 Star
+2723 1721 Star
+3429 2334 Star
+4135 2625 Star
+4841 2968 Star
+2352 3004 Star
+% End plot #3
+% Begin plot #4
+1.000 UP
+1.000 UL
+LT3
+0.72 0.53 0.04 C LCb setrgbcolor
+2123 2872 M
+[ [(Helvetica) 140.0 0.0 true true 0 (Two sites/ 32 nodes)]
+] -46.7 MRshow
+LT3
+0.72 0.53 0.04 C 2189 2872 M
+327 0 V
+605 2203 M
+1311 512 L
+706 -41 V
+706 576 V
+706 390 V
+706 448 V
+706 161 V
+605 2203 Box
+1311 512 Box
+2017 471 Box
+2723 1047 Box
+3429 1437 Box
+4135 1885 Box
+4841 2046 Box
+2352 2872 Box
+% End plot #4
+1.000 UL
+LTb
+605 3468 N
+605 352 L
+4236 0 V
+0 3116 V
+-4236 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
diff --git a/my_reference.bib b/my_reference.bib
index 74b780a..12b779b 100644
--- a/my_reference.bib
+++ b/my_reference.bib
@@ -519,6 +519,8 @@ author = {Andreas Frommer and Daniel B. Szyld}
  issn = {1542-7730},
  pages = {54--62},
  numpages = {9},
+ url = {http://doi.acm.org/10.1145/1095408.1095421},
+ doi = {10.1145/1095408.1095421},
  acmid = {1095421},
  publisher = {ACM},
  address = {New York, NY, USA}
@@ -1071,4 +1073,42 @@ ISSN={1550-6533},
 month={Oct}
 }
 
- 
+@MISC{ref101,
+  title =        {{TOP500 Supercomputers Sites}},
+  url =          {http://www.top500.org}
+}
+
+@MISC{ref102,
+  title =        {{U.S. Energy Information Administration, Annual Energy Outlook 2015}},
+  url =          {http://www.eia.gov/}
+}
+
+
+@ARTICLE{ref103,
+author={Zapater, M. and Tuncer, O. and Ayala, J.L. and Moya, J.M. and Vaidyanathan, K. and Gross, K. and Coskun, A.K.},
+journal={Parallel and Distributed Systems, IEEE Transactions on},
+title={Leakage-Aware Cooling Management for Improving Server Energy Efficiency},
+year={2015},
+volume={26},
+number={10},
+pages={2764-2777},
+month={Oct}
+}
+
+@inproceedings{ref104,
+ author = {Zapater, Marina and Ayala, Jose L. and Moya, Jos{\'e} M. and Vaidyanathan, Kalyan and Gross, Kenny and Coskun, Ayse K.},
+ title = {Leakage and Temperature Aware Server Control for Improving Energy Efficiency in Data Centers},
+ booktitle = {Proceedings of the Conference on Design, Automation and Test in Europe},
+ year = {2013}, 
+ isbn = {978-1-4503-2153-2},
+ location = {Grenoble, France},
+ pages = {266--269},
+ numpages = {4},
+ address = {San Jose, CA, USA}
+} 
+
+@MISC{ref105,
+  title =        {{The Green500 List of Heterogeneous Supercomputing Systems}},
+  url =          {http://www.green500.org}
+}
+
-- 
2.39.5