]> AND Private Git Repository - LiCO.git/commitdiff
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
ok
authorKarine Deschinkel <kdeschin@grappa.iut-bm.univ-fcomte.fr>
Fri, 6 Feb 2015 14:40:25 +0000 (15:40 +0100)
committerKarine Deschinkel <kdeschin@grappa.iut-bm.univ-fcomte.fr>
Fri, 6 Feb 2015 14:40:25 +0000 (15:40 +0100)
63 files changed:
IOPEXPORT_BIB.bib [new file with mode: 0644]
LiCO_Journal-1.tex [new file with mode: 0644]
LiCO_Journal.aux [new file with mode: 0644]
LiCO_Journal.bbl [new file with mode: 0644]
LiCO_Journal.bib~ [new file with mode: 0644]
LiCO_Journal.blg [new file with mode: 0644]
LiCO_Journal.log [new file with mode: 0644]
LiCO_Journal.pdf [new file with mode: 0644]
LiCO_Journal.tex~ [new file with mode: 0644]
PeCO/ACM-Reference-Format-Journals.bst [new file with mode: 0644]
PeCO/Model.pdf [new file with mode: 0644]
PeCO/R/ASR-eps-converted-to.pdf [new file with mode: 0644]
PeCO/R/ASR.eps [new file with mode: 0644]
PeCO/R/ASR.pdf [new file with mode: 0644]
PeCO/R/CR-eps-converted-to.pdf [new file with mode: 0644]
PeCO/R/CR.eps [new file with mode: 0644]
PeCO/R/CR.pdf [new file with mode: 0644]
PeCO/R/EC50-eps-converted-to.pdf [new file with mode: 0644]
PeCO/R/EC50.eps [new file with mode: 0644]
PeCO/R/EC50.pdf [new file with mode: 0644]
PeCO/R/EC95-eps-converted-to.pdf [new file with mode: 0644]
PeCO/R/EC95.eps [new file with mode: 0644]
PeCO/R/EC95.pdf [new file with mode: 0644]
PeCO/R/LT50-eps-converted-to.pdf [new file with mode: 0644]
PeCO/R/LT50.eps [new file with mode: 0644]
PeCO/R/LT50.pdf [new file with mode: 0644]
PeCO/R/LT95-eps-converted-to.pdf [new file with mode: 0644]
PeCO/R/LT95.eps [new file with mode: 0644]
PeCO/R/LT95.pdf [new file with mode: 0644]
PeCO/R/LTa-eps-converted-to.pdf [new file with mode: 0644]
PeCO/R/LTa.eps [new file with mode: 0644]
PeCO/R/LTa.pdf [new file with mode: 0644]
PeCO/acmsmall-guide.pdf [new file with mode: 0644]
PeCO/acmsmall-mouse.eps [new file with mode: 0644]
PeCO/acmsmall-mouse.pdf [new file with mode: 0644]
PeCO/acmsmall-sample-bibfile.bib [new file with mode: 0644]
PeCO/acmsmall.cls [new file with mode: 0644]
PeCO/article.aux [new file with mode: 0644]
PeCO/article.bbl [new file with mode: 0644]
PeCO/article.blg [new file with mode: 0644]
PeCO/article.log [new file with mode: 0644]
PeCO/article.pdf [new file with mode: 0644]
PeCO/article.tex [new file with mode: 0644]
PeCO/article.tex~ [new file with mode: 0644]
PeCO/articleref.aux [new file with mode: 0644]
PeCO/articleref.log [new file with mode: 0644]
PeCO/articleref.pdf [new file with mode: 0644]
PeCO/articleref.tex [new file with mode: 0644]
PeCO/biblio.bib [new file with mode: 0644]
PeCO/biblio.bib~ [new file with mode: 0644]
PeCO/ex4pcm.jpg [new file with mode: 0644]
PeCO/ex5pcm.jpg [new file with mode: 0644]
PeCO/expcm.pdf [new file with mode: 0644]
PeCO/expcm2.jpg [new file with mode: 0644]
PeCO/pcm.jpg [new file with mode: 0644]
PeCO/twosensors.jpg [new file with mode: 0644]
algorithm2e.sty [new file with mode: 0644]
url.sty [new file with mode: 0644]
v2-acmsmall-sample.bbl [new file with mode: 0644]
v2-acmsmall-sample.pdf [new file with mode: 0644]
v2-acmsmall-sample.tex [new file with mode: 0644]
v2-acmsmall.zip [new file with mode: 0644]
v2-readme.txt [new file with mode: 0644]

diff --git a/IOPEXPORT_BIB.bib b/IOPEXPORT_BIB.bib
new file mode 100644 (file)
index 0000000..d522035
--- /dev/null
@@ -0,0 +1,14 @@
+
+       
+@article{0031-9155-44-1-012,
+  author={Eva K Lee and Richard J Gallagher and David Silvern and Cheng-Shie Wuu and Marco Zaider},
+  title={Treatment planning for brachytherapy: an integer programming model, two computational approaches and experiments with permanent prostate implant planning},
+  journal={Physics in Medicine and Biology},
+  volume={44},
+  number={1},
+  pages={145},
+  url={http://stacks.iop.org/0031-9155/44/i=1/a=012},
+  year={1999},
+  abstract={An integer linear programming model is proposed as a framework for optimizing seed placement and dose distribution in brachytherapy treatment planning. The basic model involves using 0/1 indicator variables to describe the placement or non-placement of seeds in a prespecified three-dimensional grid of potential locations. The dose delivered to each point in a discretized representation of the diseased organ and neighbouring healthy tissue can then be modelled as a linear combination of the indicator variables. A system of linear constraints is imposed to attempt to keep the dose level at each point to within specified target bounds. Since it is physically impossible to satisfy all constraints simultaneously, each constraint uses a variable to either record when the target dose level is achieved, or to record the deviation from the desired level. These additional variables are embedded into an objective function to be optimized. Variations on this model are discussed and two computational approaches - a branch-and-bound algorithm and a genetic algorithm - for finding `optimal' seed placements are described. Results of computational experiments on a collection of prostate cancer cases are reported. The results indicate that both optimization algorithms are capable of producing good solutions within 5 to 15 min, and that small variations in model parameters can have a measurable effect on the dose distribution of the resulting plans.}
+}
+       
\ No newline at end of file
diff --git a/LiCO_Journal-1.tex b/LiCO_Journal-1.tex
new file mode 100644 (file)
index 0000000..cf40f32
--- /dev/null
@@ -0,0 +1,617 @@
+
+\documentclass[journal]{IEEEtran}
+
+
+\ifCLASSINFOpdf
+\else
+\fi
+
+\hyphenation{op-tical net-works semi-conduc-tor}
+\usepackage{float} 
+\usepackage{epsfig}
+\usepackage{calc}
+ \usepackage{times,amssymb,amsmath,latexsym}
+\usepackage{graphics}
+\usepackage{graphicx}
+\usepackage{amsmath}
+%\usepackage{txfonts}
+\usepackage{algorithmic}
+\usepackage[T1]{fontenc}
+\usepackage{tikz}
+%\usepackage{algorithm}
+%\usepackage{algpseudocode}
+%\usepackage{algorithmwh}
+\usepackage{subfigure}
+\usepackage{float}
+\usepackage{xspace}
+\usepackage[linesnumbered,ruled,vlined,commentsnumbered]{algorithm2e}
+\usepackage{epsfig}
+\usepackage{caption}
+\usepackage{multicol}
+\usepackage{times}
+\usepackage{graphicx,epstopdf}
+\epstopdfsetup{suffix=}
+\DeclareGraphicsExtensions{.ps}
+\usepackage{xspace}
+\def\bsq#1{%both single quotes
+\lq{#1}\rq}
+\DeclareGraphicsRule{.ps}{pdf}{.pdf}{`ps2pdf -dEPSCrop -dNOSAFER #1 \noexpand\OutputFile}
+\begin{document}
+
+\title{Lifetime Coverage Optimization Protocol in Wireless Sensor Networks}  %LiCO Protocol
+
+
+\author{Ali Kadhum Idrees,~\IEEEmembership{}
+        Karine Deschinkel,~\IEEEmembership{}
+        Michel Salomon,~\IEEEmembership{}
+        and~Rapha\"el Couturier ~\IEEEmembership{} 
+\thanks{The authors are with FEMTO-ST Institute, UMR 6174 CNRS, University of Franche-Comt\'e, Belfort, France. Email: ali.idness@edu.univ-fcomte.fr, $\lbrace$karine.deschinkel, michel.salomon, raphael.couturier$\rbrace$@univ-fcomte.fr}}
+%\thanks{J. Doe and J. Doe are with Anonymous University.}% <-this % stops a space
+%\thanks{Manuscript received April 19, 2005; revised December 27, 2012.}}
+\markboth{IEEE Communications Letters,~Vol.~11, No.~4, December~2014}%
+{Shell \MakeLowercase{\textit{et al.}}: Bare Demo of IEEEtran.cls for Journals}
+
+
+\maketitle
+
+
+\begin{abstract}
+
+
+ One fundamental issue in Wireless Sensor Networks (WSNs) is the lifetime coverage optimization, which reflects how well a WSN is covered by a wireless sensors so that the network lifetime can be maximized. In this paper, a Lifetime Coverage Optimization Protocol (LiCO) in WSNs is proposed. The network is logically divided into subregions using divide-and-conquer method. LiCO protocol is distributed in each sensor node in the subregion. The lifetime coverage is divided into four stages: Information exchange, Leader Election, Optimization Decision, and Sensing. The optimization decision is made at each subregion, by a leader, who his election comes from the cooperation of the sensor nodes within the same subregion of WSN. A new mathematical optimization model is proposed to optimize the lifetime coverage in each subregion. Extensive simulation experiments have been performed using OMNeT++,  the discrete event simulator,  to demonstrate that LiCO is capable to extend the lifetime coverage of WSN as longer time as possible in comparison with some other protocols.
+
+\end{abstract}
+
+
+% Note that keywords are not normally used for peerreview papers.
+\begin{IEEEkeywords}
+Wireless Sensor Networks, Area Coverage, Network lifetime, Optimization, Scheduling.
+\end{IEEEkeywords}
+
+
+\IEEEpeerreviewmaketitle
+
+
+
+
+
+\section{\uppercase{Introduction}}
+\label{sec:introduction}
+\noindent The great development in  Micro Electro-Mechanical Systems (MEMS) and wireless communication hardware are being led to emerge networks of tiny distributed sensors called WSN~\cite{akyildiz2002wireless,puccinelli2005wireless}. WSN comprises of small, low-powered sensors working together for perform a typical mission by communicating with one another through multihop wireless connections. They can send the sensed measurements based on local decisions to the user by means of sink nodes. WSN has been used in many applications such as Military, Habitat, Environment, Health, industrial, and Business~\cite{yick2008wireless}.Typically, a sensor node contains three main parts~\cite{anastasi2009energy}: a sensing subsystem, for sense, measure, and gather the measurements from the real environment; processing subsystem, for measurements processing and storage; a communication subsystem, for data transmission and receiving. Moreover,  the energy needed by the sensor node is supplied by a power supply, to accomplish the Scheduled task. This power supply is composed of a battery with a limited lifetime. Furthermore, it maybe be unsuitable or impossible to replace or recharge the batteries, since sensor nodes may be deployed in a hostile or unpractical environment. The sensor system ought to have a lifetime long enough to satisfy the application necessities. The lifetime coverage maximization is one of the fundamental requirements of any area coverage protocol in WSN implementation~\cite{nayak2010wireless}. In order to increase the reliability and prevent the possession of coverage holes (some parts are not covered in the area of interest) in the WSN, it is necessary to deploy the WSN with high density so as to increase the reliability and to exploit redundancy by using energy-efficient activity scheduling approaches.
+
+From a certain standpoint, the high coverage ratio is required by many applications such as military and health-care. Therefore, a suitable number of sensors are being chosen so as to cover the area of interest, is the first challenge. Meanwhile, the sensor nodes have a limited capabilities in terms of memory, processing, communication, and battery power being the most important and critical one.  So, the main question is: how to extend the lifetime coverage of WSN as long time as possible?. There are many energy-efficient mechanisms have been suggested to retain energy and extend the lifetime of the WSNs~\cite{rault2014energy}.
+
+\uppercase{\textbf{Our contributions.}} Two combined integrated energy-efficient techniques have been used by LiCO protocol in order to maximize the lifetime coverage in WSN: the first, by dividing the area of interest into several smaller subregions based on divide-and-conquer method and then one leader elected for each subregion in an independent, distributed, and simultaneous way by the cooperation among the sensor nodes within each subregion, and this similar to cluster architecture; the second, activity scheduling based new optimization model has been used to provide the optimal cover set that will take the mission of sensing during current period. This optimization algorithm is based on a perimeter-coverage model so as to optimize the shared perimeter among the sensors in each subregion, and this represents as a energu-efficient control topology mechanism in WSN.
+
+
+The remainder of the paper is organized as follows. The next section reviews  the related  work  in  the field.  Section~\ref{sec:The LiCO Protocol Description} is devoted to the LiCO protocol Description. Section~\ref{cp}  gives the coverage model
+formulation which is used to schedule the activation of sensors.
+Section~\ref{sec:Simulation Results and Analysis} shows the simulation results.  Finally, we give concluding remarks and some suggestions for
+future works in Section~\ref{sec:Conclusion and Future Works}.
+
+\section{\uppercase{Related Literature}}
+\label{sec:Literature Review}
+\noindent Recently, the coverage problem has been received a high attention, which concentrates on how the physical space could be well monitored  after the deployment. Coverage is one of the Quality of Service (QoS) parameters in WSNs, which is highly concerned with power depletion~\cite{zhu2012survey}. Most of the works about the coverage protocols have been suggested in the literature focused on three types of the coverage in WSNs~\cite{mulligan2010coverage}: the first, area coverage means that each point in the area of interest within the sensing range of at least one sensor node; the second, target coverage in which a fixed set of targets need to be monitored; the third, barrier coverage refers to detect the intruders crossing a boundary of WSN. The work in this paper emphasized on the area coverage, so,  some area coverage protocols have been reviewed in this section, and the shortcomings of reviewed approaches are being summarized.
+
+The problem of k-coverage in WSNs was addressed~\cite{ammari2012centralized}. It mathematically formulated and the spacial sensor density for full k-coverage determined, where the relation between the communication range and the sensing range constructed by this work to retain the k-coverage and connectivity in WSN. After that, a four configuration protocols have proposed for treating the k-coverage in WSNs.  
+
+In~\cite{rebai2014branch}, the problem of full grid coverage is formulated using two integer linear programming models: the first, a model that takes into account only the overall coverage constraint; the second, both the connectivity and the full grid coverage constraints have taken into consideration. This work did not take into account the energy constraint.
+
+Li et al.~\cite{li2011transforming} presented a framework to convert any complete coverage problem to a partial coverage one with any coverage ratio by means of executing a complete coverage algorithm to find a full coverage sets with virtual radii and transforming the coverage sets to a partial coverage sets by adjusting sensing radii.  The properties of the original algorithms can be maintained by this framework and the transformation process has a low execution time.
+
+The authors in~\cite{liu2014generalized} explained that in some applications of WSNs such as structural health monitoring (SHM) and volcano monitoring, the traditional coverage model which is a geographic area defined for individual sensors is not always valid. For this reason, they define a generalized coverage model, which is not need to have the coverage area of individual nodes, but only based on a function to determine whether a set of
+sensor nodes is capable of satisfy the requested monitoring task for a certain area. They have proposed two approaches to divide the deployed nodes into suitable cover sets, which can be used to prolong the network lifetime. 
+The work in~\cite{wang2010preserving} addressed the target area coverage problem by proposing a geometric-based activity scheduling scheme, named GAS, to fully cover the target area in WSNs. The authors deals with small area (target area coverage), which can be monitored by a single sensor instead of area coverage, which focuses on a large area that should be monitored by many sensors cooperatively. They explained that GAS is capable to monitor the target area by using a few sensors as possible and it can produce as many cover sets as possible.
+
+Cho et al.~\cite{cho2007distributed} proposed a distributed node scheduling protocol, which can retain sensing coverage needed by applications
+and increase network lifetime via putting in sleep mode some redundant nodes. In this work, the effective sensing area (ESA) concept of a sensor node is used, which refers to the sensing area that is not overlapping with another sensor's sensing area. A sensor node and by compute it's ESA can be determine whether it will be active or sleep. The suggested  work permits to sensor nodes to be in sleep mode opportunistically whilst fulfill the needed sensing coverage.
+In~\cite{quang2008algorithm}, the authors defined a maximum sensing coverage region problem (MSCR) in WSNs and then proposed an algorithm to solve it. The
+maximum observed area fully covered by a minimum active sensors. In this work, the major property is to getting rid from the redundant sensors  in high-density WSNs and putting them in sleep mode, and choosing a smaller number of active sensors so as to be sure  that the full area is k-covered, and all events appeared in that area can be precisely and timely detected. This algorithm minimized the total energy consumption and increased the lifetime.
+
+A novel method to divide the sensors in the WSN, called node coverage grouping (NCG) suggested~\cite{lin2010partitioning}. The sensors in the connectivity group are within sensing range of each other, and the data collected by them in the same group are supposed to be similar. They are proved that dividing n sensors via NCG into connectivity groups is a NP-hard problem. So, a heuristic algorithm of NCG with time complexity of $O(n^3)$ is proposed.
+For some applications, such as monitoring an ecosystem with extremely diversified environment, It might be premature assumption that sensors near to each other sense similar data.
+
+In~\cite{zaidi2009minimum}, the problem of minimum cost coverage in which full coverage is performed by using the minimum number of sensors for an arbitrary geometric shape region is addressed.  a geometric solution to the minimum cost coverage problem under a deterministic deployment is proposed. The probabilistic coverage solution which provides a relationship between the probability of coverage and the number of randomly deployed sensors in an arbitrarily-shaped region is suggested. The authors are clarified that with a random deployment about seven times more nodes are required to supply full coverage.
+
+A graph theoretical framework for connectivity-based coverage with configurable coverage granularity was proposed~\cite{dong2012distributed}. A new coverage criterion and scheduling approach is proposed based on cycle partition. This method is capable of build a sparse coverage set in distributed way by means of only connectivity information. This work considers only the communication range of the sensor is smaller two times the sensing range of sensor.
+
+Liu et al.~\cite{liu2010energy} formulated maximum disjoint sets problem for retaining coverage and connectivity in WSN. Two algorithms are proposed for solving this problem, heuristic algorithm and network flow algorithm. This work did not take into account the sensor node failure, which is an unpredictable event because the two solutions are full centralized algorithms.
+
+The work that presented in~\cite{aslanyan2013optimal} solved the coverage and connectivity problem in sensor networks in
+an integrated way. The network lifetime is divided in a fixed number of rounds. A coverage bitmap of sensors of the domain has been generated in each round and based on this bitmap,  it has been decided which sensors
+stay active or turn it to sleep. They checked the connection of the graph via laplacian of adjancy graph of active sensors in each round.  the generation of coverage bitmap by using  Minkowski technique, the network is able to providing the desired ratio of coverage. They have been defined the  connected coverage problem as an optimization problem and a centralized genetic algorithm is used to find the solution.
+
+Several algorithms to retain the coverage and maximize the network lifetime were proposed in~\cite{cardei2006energy,wang2011coverage}. 
+
+\uppercase{\textbf{shortcomings}}. In spite of many energy-efficient protocols for maintaining the coverage and improving the network lifetime in WSNs were proposed, non of them ensure the coverage for the sensing field with optimal minimum number of active sensor nodes, and for a long time as possible. For example, in a full centralized algorithms, an optimal solutions can be given by using optimization approaches, but in the same time, a high energy is consumed for the execution time of the algorithm and the communications among the sensors in the sensing field, so, the  full centralized approaches are not good candidate to use it especially in large WSNs. Whilst, a full distributed algorithms can not give optimal solutions because this algorithms use only local information of the neighboring sensors, but in the same time, the energy consumption during the communications and executing the algorithm is highly lower. Whatever the case, this would result in a shorter lifetime coverage in WSNs.
+
+\uppercase{\textbf{Our Protocol}}. In this paper, a Lifetime Coverage Optimization Protocol, called (LiCO) in WSNs is suggested. The sensing field is divided into smaller subregions by means of divide-and-conquer method, and a LiCO protocol is distributed in each sensor in the subregion. The network lifetime in each subregion is divided into periods, each period includes 4 stages: Information Exchange, Leader election, decision based activity scheduling optimization, and sensing. The leaders are elected in an independent, asynchronous, and distributed way in all the subregions of the WSN. After that, energy-efficient activity scheduling mechanism based new optimization model is performed by each leader in the subregions. This optimization model is based on the perimeter coverage model in order to producing the optimal cover set of active sensors, which are taken the responsibility of sensing during the current period. LiCO protocol merges between two energy efficient mechanisms, which are used the main advantages of the centralized and distributed approaches and avoids the most of their disadvantages.
+
+
+\section{ The LiCO Protocol Description}
+\label{sec:The LiCO Protocol Description}
+\noindent In this section, we describe our Lifetime Coverage Optimization Protocol which is called LiCO in more detail. It is based on two efficient-energy mechanisms: the first, is partitioning the sensing field into smaller subregions, and one leader is elected for each subregion;  the second, a sensor activity scheduling based new optimization model so as to produce the optimal cover set of active sensors for the sensing stage during the period.  Obviously, these two mechanisms can be contribute in extend the network lifetime coverage efficiently. 
+%Before proceeding in the presentation of the main ideas of the protocol, we will briefly describe the perimeter coverage model and give some necessary assumptions and definitions.
+
+\subsection{ Assumptions and Models}
+\noindent A WSN consisting of $J$ stationary sensor nodes randomly and uniformly distributed in a bounded sensor field is considered. The  wireless sensors  are deployed in high density to ensure initially a high coverage ratio of the interested area. We assume that all the sensor nodes are homogeneous in terms of  communication, sensing, and processing capabilities and heterogeneous in term of energy supply. The  location  information is available to the  sensor node  either through hardware such as embedded GPS or through location discovery algorithms. We assume that each sensor node can directly transmit its measurements to a mobile sink node. For example, a sink can be an unmanned aerial vehicle (UAV) is flying regularly over the sensor field to collect measurements from sensor nodes. A mobile sink node collects the measurements and transmits them to the base station.  We consider a boolean  disk coverage model which is the most widely used sensor coverage model in the literature. Each sensor has a constant sensing range $R_s$. All space points within a disk centered at the sensor with the radius of the sensing range is said to be covered by this sensor. We also assume that the communication range $R_c \geq 2R_s$. In  fact,   Zhang  and Zhou~\cite{Zhang05} proved that if the transmission range fulfills the previous hypothesis, a complete coverage of a convex area implies connectivity among the working nodes in the active mode.
+
+\indent LiCO protocol is used the perimeter-coverage model which stated in ~\cite{huang2005coverage} as following: The sensor is said to be perimeter covered if all the points on its perimeter are covered by at least one sensor other than itself. 
+%According to this model, we named the intersections among the sensor nodes in the sensing field as intersection points. Instead of working with the coverage area, we consider for each sensor a set of intersection points which are determined by using perimeter-coverage model. 
+Figure~\ref{pcmfig} illuminates the perimeter coverage of the sensor node 0, where L refers to left point of the segment and R refers to right point of the segment. 
+
+\begin{figure}[ht!]
+\centering
+\includegraphics[width=75mm]{pcm.pdf}  
+\caption{Perimeter coverage of sensor node 0}
+\label{pcmfig}
+\end{figure} 
+
+In order to determine the segments of each sensor node, which are perimeter covered by the neighboring sensors, figure~\ref{twosensors} demonstrates the way of locating the left and right points of a segment of the sensor node I covered by a sensor node J. This figure supposed that the neighbor sensor node J is located on the west of a sensor I. It Supposed that the two sensor nodes I and J are located in the positions $(I_x,I_y)$ and $(J_x,J_y)$, respectively. The distance between I and J is computed by $Dist(I,J) = \sqrt{\vert I_x - J_x \vert^2 + \vert I_y - J_y \vert^2}$ . The angle $\alpha = arccos \left(\dfrac{Dist(I,J)}{2R_s} \right) $. So, the $\pi - \alpha$ and the $\pi + \alpha$ of sensor I refers to the left and right points of the segment, which is perimeter covered by sensor node J. If the arch segment of sensor I is located within the angle $[\pi - \alpha,\pi + \alpha]$, this means it is perimeter covered by sensor node J. The left and right points of each segment are put it on the line segment $[0,2\pi]$ and then are sorted in an ascending order so as to determine the level of the perimeter coverage for each left and right point of a segment.
+\begin{figure}[ht!]
+\centering
+\includegraphics[width=75mm]{twosensors.jpg}  
+\caption{Locating the segment of I$\rq$s perimeter covered by J.}
+\label{twosensors}
+\end{figure} 
+
+\begin{figure}[ht!]
+\centering
+\includegraphics[width=75mm]{expcm.pdf}  
+\caption{Perimeter segment coverage levels for sensor node 0.}
+\label{expcm}
+\end{figure} 
+
+For example, consider the sensor node 0 in figure~\ref{pcmfig}, which has 9 neighbors. Figure~\ref{expcm} shows the perimeter coverage level for all left and right points of a segments that covered by a neighboring sensor nodes. Based on the figure~\ref{expcm}, the set of sensors for each left and right point of the segments illustrated in figure~\ref{ex2pcm} for the sensor node 0.
+
+\begin{figure}[ht!]
+\centering
+\includegraphics[width=90mm]{ex2pcm.jpg}  
+\caption{The set of sensors for each left or right point of segments for sensor node 0.}
+\label{ex2pcm}
+\end{figure} 
+
+The optimization algorithm that used by LiCO protocol based on the perimeter coverage levels of the left and right points of the segments and worked to minimize the number of sensor nodes for each left or right point of the segments within each sensor node. The algorithm minimize the perimeter coverage level of the left and right points of the segments, while, it assures that every perimeter coverage level of the left and right points of the segments greater than or equal to 1.
+
+In the case of sensor node, which has a part of its sensing range outside the the border of the WSN sensing field as in figure~\ref{ex4pcm}, the perimeter coverage level for this segment is set to $\infty$, and the left and right points of the segments will not be taken into account by the optimization algorithm.
+\begin{figure}[ht!]
+\centering
+\includegraphics[width=75mm]{ex4pcm.jpg}  
+\caption{Part of sensing range outside the the border of WSN sensing field.}
+\label{ex4pcm}
+\end{figure} 
+Figure~\ref{ex5pcm} gives an example to compute the perimeter coverage levels for the left and right points of the segments for a sensor node 0, which has a part of its sensing range exceeding the border of the sensing field of WSN, and it has a six neighbors. In figure~\ref{ex5pcm}, the sensor node 0 has two segments outside the border of the network sensing field, so the left and right points of the two segments called -1L, -1R, -2L, and -2R.
+\begin{figure}[ht!]
+\centering
+\includegraphics[width=75mm]{ex5pcm.jpg}  
+\caption{Perimeter coverage levels for sensor node has a part of its sensing range outside the border.}
+\label{ex5pcm}
+\end{figure} 
+
+
+\subsection{The Main Idea}
+\noindent The area  of  interest can  be  divided using the
+divide-and-conquer strategy into smaller areas called subregions and
+then our protocol will be implemented in each subregion simultaneously. LiCO protocol works into periods fashion as shown in figure~\ref{fig2}.
+\begin{figure}[ht!]
+\centering
+\includegraphics[width=85mm]{Model.pdf}  
+\caption{LiCO protocol}
+\label{fig2}
+\end{figure} 
+
+Each period is divided into 4 stages: Information (INFO) Exchange, Leader  Election, Optimization Decision,  and  Sensing.  For  each  period there  is exactly one set cover responsible for the sensing task. LiCO is more powerful against an unexpected node failure because it works in periods. On the one hand, if the node failure is discovered before taking the decision of the optimization algorithm, the sensor node would not involved to current stage, and, on the other hand, if the sensor failure takes place after the decision,  the sensing task of the network will be temporarily affected: only during the period of sensing until a new period starts, since a new set cover will take charge of the sensing task in the next period.  The energy consumption and some other constraints can easily be taken into account since the sensors can update and then exchange their information (including their residual energy) at the beginning of each period.  However,   the  pre-sensing  phases   (INFO  Exchange,  Leader Election, and  Decision) are energy  consuming for  some sensor nodes,  even when they do not join the network to monitor the area. 
+
+We define two types of packets to be used by LiCO protocol.
+%\begin{enumerate}[(a)]
+\begin{itemize} 
+\item INFO packet: sent by each sensor node to all the nodes inside a same subregion for information exchange.
+\item ActiveSleep packet: sent by the leader to all the nodes in its subregion to inform them to be Active or Sleep during the sensing phase.
+\end{itemize}
+%\end{enumerate}
+
+There are five status for each sensor node in the network :
+%\begin{enumerate}[(a)] 
+\begin{itemize} 
+\item LISTENING: Sensor is waiting for a decision (to be active or not)
+\item COMPUTATION: Sensor applies the optimization process as leader
+\item ACTIVE: Sensor is active
+\item SLEEP: Sensor is turned off
+\item COMMUNICATION: Sensor is transmitting or receiving packet
+\end{itemize}
+%\end{enumerate}
+%Below, we describe each phase in more details.
+
+\subsection{LiCO Protocol Algorithm}
+The pseudo-code for LiCO Protocol is illustrated as follows:
+
+
+\begin{algorithm}[h!]                
+ % \KwIn{all the parameters related to information exchange}
+%  \KwOut{$winer-node$ (: the id of the winner sensor node, which is the leader of current round)}
+  \BlankLine
+  %\emph{Initialize the sensor node and determine it's position and subregion} \; 
+  
+  \If{ $RE_k \geq E_{th}$ }{
+      \emph{$s_k.status$ = COMMUNICATION}\;
+      \emph{Send $INFO()$ packet to other nodes in the subregion}\;
+      \emph{Wait $INFO()$ packet from other nodes in the subregion}\; 
+      \emph{Update K.CurrentSize}\;
+      \emph{LeaderID = Leader election}\;
+      \If{$ s_k.ID = LeaderID $}{
+         \emph{$s_k.status$ = COMPUTATION}\;
+         
+      \If{$ s_k.ID $ is Not previously selected as a Leader }{
+          \emph{ Execute the perimeter coverage model}\;
+         % \emph{ Determine the segment points using perimeter coverage model}\;
+      }
+      
+      \If{$ (s_k.ID $ is the same Previous Leader) AND (K.CurrentSize = K.PreviousSize)}{
+      
+        \emph{ Use the same previous cover set for current sensing stage}\;
+      }
+      \Else{
+            \emph{ Update $a^j_{ik}$ and prepare data to Algorithm}\;
+            \emph{$\left\{\left(X_{1},\dots,X_{l},\dots,X_{K}\right)\right\}$ = Execute Integer Program Algorithm($K$)}\;
+            \emph{K.PreviousSize = K.CurrentSize}\;
+           }
+      
+        \emph{$s_k.status$ = COMMUNICATION}\;
+        \emph{Send $ActiveSleep()$ to each node $l$ in subregion} \;
+        \emph{Update $RE_k $}\;
+      }          
+      \Else{
+        \emph{$s_k.status$ = LISTENING}\;
+        \emph{Wait $ActiveSleep()$ packet from the Leader}\;
+        \emph{Update $RE_k $}\;
+      }  
+  }
+  \Else { Exclude $s_k$ from entering in the current sensing stage}
+  
+\caption{LiCO($s_k$)}
+\label{alg:LiCO}
+
+\end{algorithm}
+
+\noindent Algorithm 1 gives a brief description of the protocol applied by each sensor node (denoted by $s_k$ for a sensor node indexed by $k$). In this algorithm, the K.CurrentSize and K.PreviousSize refer to the current size and the previous size of sensor nodes in the subregion respectively.
+Initially, the sensor node checks its remaining energy in order to participate in the current period. Each sensor node determines its position and its subregion based Embedded GPS  or Location Discovery Algorithm. After that, all the sensors collect position coordinates, remaining energy $RE_k$, sensor node id, and the number of its one-hop live neighbors during the information exchange. 
+After the cooperation among the sensor nodes in the same subregion, the leader will be elected in distributed way, where each sensor node and based on it's information decide who is the leader. The selection criteria for the leader in order  of priority  are: larger number of neighbors,  larger remaining  energy, and  then in  case of equality, larger index. Thereafter,  if the sensor node is leader, it will execute the perimeter-coverage model for each sensor in the subregion in order to determine the segment points which would be used in the next stage by the optimization algorithm of the LiCO protocol. Every sensor node is selected as a leader, it is executed the perimeter coverage model only one time during it's life in the network. The leader has the responsibility of applying the integer program algorithm (see section~\ref{cp}), which provides a set of sensors planned to be active in the sensing stage.  As leader, it will send an Active-Sleep packet to each sensor in the same subregion to inform it if it has to be active or not. On the contrary, if the sensor is not the leader, it will wait for the Active-Sleep packet to know its state for the sensing stage.
+
+
+\section{Lifetime Coverage problem formulation}
+\label{cp}
+In this section, the coverage model is mathematically formulated.
+For convenience, the notations are described first. 
+%Then the lifetime problem of sensor network is formulated. 
+\noindent $S :$ the set of all sensors in the network.\\
+\noindent $A :$ the set of alive sensors within $S$.\\
+%\noindent $I :$ the set of segment points.\\
+\noindent $I_j :$ the set of coverage intervals (CI)  for sensor $j$.\\
+
+\noindent For a coverage interval  $i$,  let  $a^j_{ik}$ denote the indicator function of whether the sensor $k$ is involved in the coverage interval $i$ of sensor $j$, that is:
+
+\begin{equation}
+a^j_{ik} = \left \{ 
+\begin{array}{lll}
+  1 & \mbox{if the sensor $k$ is involved in the } \\
+       &       \mbox{coverage interval $i$ of sensor $j$}, \\
+  0 & \mbox{Otherwise.}\\
+\end{array} \right.
+%\label{eq12} 
+\notag
+\end{equation}
+%, where the objective is to find the maximum number of non-disjoint sets of sensor nodes such that each set cover can assure the coverage for the whole region so as to extend the network lifetime in WSN. Our model uses the PCL~\cite{huang2005coverage} in order to optimize the lifetime coverage in each subregion.
+%We defined some parameters, which are related to our optimization model. In our model,  we  consider binary variables $X_{k}$, which determine the activation of sensor $k$ in the sensing round $k$. .   
+We  consider binary variables $X_{k}$ ($X_k=1$ if the sensor $k$ is active or 0 otherwise), which determine the activation of sensor $k$ in the sensing phase. We define the integer variable $M^j_i$ which measures the undercoverage for the coverage interval $i$ for sensor $j$. In the same way, we define the integer variable $V^j_i$, which measures the overcoverage for the coverage interval $i$ for sensor $j$. If we decide to sustain a level of coverage equal to $l$ all along the perimeter of the sensor $j$, we have to ensure that at least $l$ sensors involved in each coverage interval $i$ ($i \in I_j$) of sensor $j$ are active. According to the previous notations, the number of active sensors in the coverage interval $i$ of sensor $j$ is given by $\sum_{k \in K} a^j_{ik} X_k$. To extend the network lifetime, the objective is to active a minimal number of sensors in each period to ensure the desired coverage level. As the number of alive sensors decreases, it becomes impossible to satisfy the level of coverage for all covergae intervals. We uses variables $M^j_i$ and $V^j_i$ as a measure of the deviation between the desired number of active sensors in a coverage interval and the effective number of active sensors. And we try to minimize these deviations, first to force the activation of a minimal number of sensors to ensure the desired coverage level, and if the desired level can not be completely  satisfied, to reach a coverage level as close as possible that the desired one.
+
+
+
+%A system of linear constraints is imposed to attempt to keep the coverage level in each coverage interval to within specified PCL. Since it is physically impossible to satisfy all constraints simultaneously, each constraint uses a variable to either record when the coverage level is achieved, or to record the deviation from the desired coverage level. These additional variables are embedded into an objective function to be minimized. 
+
+%\noindent In this paper, let us define some parameters, which are used in our protocol.
+%the set of segment points is denoted by $I$, the set of all sensors in the network by $J$, and the set of alive sensors within $J$ by $K$.
+
+
+%\noindent \begin{equation}
+%X_{k} = \left \{ 
+%\begin{array}{l l}
+ % 1& \mbox{if sensor $k$  is active,} \\
+%  0 &  \mbox{otherwise.}\\
+%\end{array} \right.
+%\label{eq11} 
+%\notag
+%\end{equation}
+
+%\noindent $M^j_i (undercoverage): $ integer value $\in  \mathbb{N}$ for segment point $i$ of sensor $j$.
+
+%\noindent $V^j_i (overcoverage): $ integer value $\in  \mathbb{N}$ for segment point $i$ of sensor $j$.
+
+
+
+
+
+\noindent Our coverage optimization problem can be mathematically formulated as follows: \\
+%Objective:
+
+\begin{equation} \label{eq:ip2r}
+\left \{
+\begin{array}{ll}
+\min \sum_{j \in S} \sum_{i \in I_j} (\alpha^j_i ~ M^j_i + \beta^j_i ~ V^j_i )&\\
+\textrm{subject to :}&\\
+\sum_{k \in A} ( a^j_{ik} ~ X_{k}) + M^j_i  \geq l \quad \forall i \in I_j, \forall j \in S\\
+%\label{c1} 
+\sum_{k \in A} ( a^j_{ik} ~ X_{k}) - V^j_i  \leq l \quad \forall i \in I_j, \forall j \in S\\
+% \label{c2}
+% \Theta_{p}\in \mathbb{N}, &\forall p \in P\\
+% U_{p} \in \{0,1\}, &\forall p \in P\\
+X_{k} \in \{0,1\}, \forall k \in A
+\end{array}
+\right.
+\end{equation}
+
+
+\noindent $\alpha^j_i$ and $\beta^j_i$ are nonnegative weights selected according to the
+relative importance of satisfying the associated
+level of coverage. For example, weights associated with coverage intervals of a specified part of a region
+may be given a relatively
+larger magnitude than weights associated
+with another region. This kind of integer program is inspired from the model developed for brachytherapy treatment planning for optimizing dose distribution \ref{0031-9155-44-1-012}. The integer program must be solved by the leader in each subregion at the beginning of each sensing phase, whenever the environment has changed (new leader, death of some sensors). Note that the number of constraints in the model is constant (constraints of coverage expressed for all sensors), whereas the number of variables $X_k$ decreases over periods, since we consider only alive sensors (sensors with enough energy to be alive during one sensing phase) in the model. 
+
+
+\section{\uppercase{PERFORMANCE EVALUATION AND ANALYSIS}}  
+\label{sec:Simulation Results and Analysis}
+%\noindent \subsection{Simulation Framework}
+
+\subsection{Simulation Settings}
+%\label{sub1}
+In this section, we focused on the performance of LiCO protocol, which is distributed in each sensor node in the sixteen subregions of WSN. We used the same energy consumption model which are used in~\cite{Idrees2}. Table~\ref{table3} gives the chosen parameters setting.
+
+\begin{table}[ht]
+\caption{Relevant parameters for network initializing.}
+% title of Table
+\centering
+% used for centering table
+\begin{tabular}{c|c}
+% centered columns (4 columns)
+\hline
+Parameter & Value  \\ [0.5ex]
+   
+\hline
+% inserts single horizontal line
+Sensing  Field  & $(50 \times 25)~m^2 $   \\
+
+Nodes Number &  100, 150, 200, 250 and 300~nodes   \\
+%\hline
+Initial Energy  & 500-700~joules  \\  
+%\hline
+Sensing Period & 60 Minutes \\
+$E_{th}$ & 36 Joules\\
+$R_s$ & 5~m   \\     
+%\hline
+$\alpha^j_i$ & 0.6   \\
+% [1ex] adds vertical space
+%\hline
+$\beta^j_i$ & 0.4
+%inserts single line
+\end{tabular}
+\label{table3}
+% is used to refer this table in the text
+\end{table}
+Simulations with five  different node densities going from  100 to 250~nodes were
+performed  considering  each  time  25~randomly generated  networks,  to  obtain
+experimental results  which are relevant. All simulations are repeated 25 times and the results are averaged. The  nodes are deployed on a field of interest of $(50 \times 25)~m^2 $ in such a way that they cover the field with a high coverage ratio.
+
+Each node has an initial energy level, in Joules, which is randomly drawn in the
+interval  $[500-700]$.  If  it's  energy  provision reaches  a  value below  the
+threshold  $E_{th}=36$~Joules, the  minimum energy  needed  for a  node to  stay
+active during one period, it will no more participate in the coverage task. This
+value  corresponds  to the  energy  needed by  the  sensing  phase, obtained  by
+multiplying the energy consumed in active  state (9.72 mW) by the time in seconds
+for one period (3600 seconds), and  adding the energy for the pre-sensing phases.
+According to  the interval of initial energy,  a sensor may be  active during at
+most 20 rounds.
+
+In the simulations,  we introduce the following performance  metrics to evaluate
+the efficiency of our approach:
+
+%\begin{enumerate}[i)]
+\begin{itemize}
+\item {{\bf Network Lifetime}:} we define the network lifetime as the time until
+  the  coverage  ratio  drops  below  a  predefined  threshold.   We  denote  by
+  $Lifetime_{95}$ (respectively $Lifetime_{50}$) the amount of time during which
+  the  network can  satisfy an  area coverage  greater than  $95\%$ (respectively
+  $50\%$). We assume that the sensor  network can fulfill its task until all its
+  nodes have  been drained of their  energy or it  becomes disconnected. Network
+  connectivity  is crucial because  an active  sensor node  without connectivity
+  towards a base  station cannot transmit any information  regarding an observed
+  event in the area that it monitors.
+  
+    
+\item {{\bf Coverage Ratio (CR)}:} it measures how well the WSN is able to 
+  observe the area of interest. In our case, we discretized the sensor field
+  as a regular grid, which yields the following equation to compute the
+  coverage ratio: 
+\begin{equation*}
+\scriptsize
+\mbox{CR}(\%) = \frac{\mbox{$n$}}{\mbox{$N$}} \times 100.
+\end{equation*}
+where  $n$ is  the number  of covered  grid points  by active  sensors  of every
+subregions during  the current  sensing phase  and $N$ is  total number  of grid
+points in  the sensing field. In  our simulations, we have  a layout of  $N = 51
+\times 26 = 1326$ grid points.
+
+
+\item{{\bf Number of Active Sensors Ratio(ASR)}:} It is important to have as few active nodes as possible in each round,
+in  order to  minimize  the communication  overhead  and maximize  the
+network lifetime. The Active Sensors Ratio is defined as follows:
+\begin{equation*}
+\scriptsize
+\mbox{ASR}(\%) =  \frac{\sum\limits_{r=1}^R \mbox{$A_r$}}{\mbox{$S$}} \times 100 .
+\end{equation*}
+Where: $A_r^t$ is the number of active sensors in the subregion $r$ in the current sensing stage, $S$ is the total number of sensors in the network, and $R$ is the total number of the subregions in the network.
+
+
+\item {{\bf  Energy Consumption}:}  energy consumption (EC)  can be seen  as the
+  total   energy   consumed   by   the   sensors   during   $Lifetime_{95}$   or
+  $Lifetime_{50}$, divided  by the number of periods.  Formally, the computation
+  of EC can be expressed as follows:
+  \begin{equation*}
+    \scriptsize
+    \mbox{EC} = \frac{\sum\limits_{m=1}^{M} \left( E^{\mbox{com}}_m+E^{\mbox{list}}_m+E^{\mbox{comp}}_m  
+      + E^{a}_m+E^{s}_m \right)}{M},
+  \end{equation*}
+
+where $M$  corresponds to the number  of periods. The total energy consumed by
+the sensors (EC) comes through taking into consideration four main energy factors. The  first one, denoted $E^{\scriptsize  \mbox{com}}_m$, represent the
+energy consumption  spent by  all the nodes  for wireless  communications during
+period $m$.   $E^{\scriptsize \mbox{list}}_m$,  the next factor,  corresponds to
+the  energy consumed by  the sensors  in LISTENING  status before  receiving the
+decision to  go active or  sleep in period $m$.  $E^{\scriptsize \mbox{comp}}_m$
+refers to the energy needed by all the leader nodes to solve the integer program
+during a period.  Finally, $E^a_{m}$ and $E^s_{m}$ indicate  the energy consumed
+by the whole network in the sensing phase (active and sleeping nodes).
+
+
+\end{itemize}
+%\end{enumerate}
+
+\subsection{Simulation Results}
+In this section, we present the simulation results of LiCO protocol and the other protocols using a discrete event simulator OMNeT++ \cite{varga} to run different series of simulations. We implemented all protocols precisely on a laptop DELL with Intel Core~i3~2370~M (2.4 GHz)  processor (2 cores) and the MIPS (Million Instructions  Per Second) rate equal to 35330. To be consistent  with the use of a sensor node with Atmels AVR ATmega103L microcontroller (6 MHz) and  a MIPS rate  equal to 6,  the original execution time on the laptop is multiplied by  2944.2 $\left(\frac{35330}{2} \times  \frac{1}{6} \right)$  so as to use it by the energy consumption model especially, after the computation and listening. Employing the modeling language ????\ref{}, the associated integer program instance is generated in a standard format, which is then read and solved by the optimization solver GLPK (GNU linear Programming Kit available in the public domain) \cite{glpk} through a  Branch-and-Bound method. 
+We compared LiCO protocol to three other approaches: the first, called DESK and proposed  by ~\cite{ChinhVu}  is a fully distributed  coverage  algorithm;  the second, called GAF  ~\cite{xu2001geography}, consists in dividing the region
+into fixed  squares.  During the decision  phase, in each square,  one sensor is
+chosen to remain active during the sensing phase; the third, DiLCO protocol~\cite{Idrees2} is an improved version on the work presented in ~\cite{idrees2014coverage}.  DNote that the LiCO protocol is based on the same framework as that of DiLCO. For thes two protocols, the division of the region of interest in 16 subregions was chosen since it produces the best results. The difference between the two protocols relies on the use of the integer programming to provide the set of sensors that have to be actived in each sensing phase. Whereas DilCO protocol tries to satisfy the coverage of a set of primary points, LiCO protocol tries to reach a desired level of coverage $l$ for each sensor's perimeter. In the experimentations, we chose a level of coverage equal to 1 ($l=1$).
+
+\subsubsection{\textbf{Coverage Ratio}}
+Figure~\ref{fig333} shows the average coverage ratio for 200 deployed nodes obtained with the four methods.
+\parskip 0pt    
+\begin{figure}[h!]
+\centering
+ \includegraphics[scale=0.5] {R/CR.eps} 
+\caption{The coverage ratio for 200 deployed nodes}
+\label{fig333}
+\end{figure} 
+
+DESK,  GAF, and DiLCO provides a little better coverage ratio with 99.99\%, 99.91\%, and 99.02\% against 98.76\% produced by LiCO for the lowest number of periods. This is due to the fact that DiLCO protocol put in sleep mode redundant sensors using optimization (which lightly decreases the coverage ratio) while there are more active nodes in the case of others methods.
+
+Moreover, when the number of periods increases, coverage ratio produced by DESK and GAF protocols decreases. This is due to dead nodes. However, DiLCO protocol maintains almost a good coverage from the round 31 to the round 63 and it is close to LiCO protocol. This is because it optimizes the coverage and the lifetime in WSN based on the primary points by selecting the best representative sensor nodes for the sensing stage. LiCO protocol put in sleep mode a higher number of redundant sensors starting from the round 19 using the new optimization model. The coverage ratio of LiCO Protocol seems to be better than other approaches starting from the round 64 because the optimization algorithm used by LiCO has been optimized the lifetime coverage based on the perimeter coverage model, so it provided acceptable coverage for a larger number of periods and prolonging the network lifetime based on the perimeter of the sensor nodes in each subregion of WSN. Although some nodes are dead, sensor activity scheduling based optimization of LiCO selected another nodes to ensure the coverage of the area of interest. i.e. DiLCO-16 showed a good coverage in the beginning then LiCO, when the number of periods increases, the coverage ratio decreases due to died sensor nodes. Meanwhile, thanks to sensor activity scheduling based new optimization model, which is used by LiCO protocol to ensure a longer lifetime coverage in comparison with other approaches. 
+
+
+\subsubsection{\textbf{Active Sensors Ratio}} 
+It is important to have as few active nodes as possible in each period, in order to minimize the energy consumption and maximize the network lifetime. Figure~\ref{fig444} shows the average active nodes ratio for 200 deployed nodes. 
+
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R/ASR.eps}  
+\caption{The active sensors ratio for 200 deployed nodes }
+\label{fig444}
+\end{figure} 
+
+From figure~~\ref{fig444}, We observed that DESK and GAF have 30.36 \% and 34.96 \% active nodes for the first fourteen rounds and DiLCO-16 and LiCO protocols competes perfectly with only 17.92 \% and 20.16 \% active nodes for the first 17 rounds. Then as the number of rounds increases our LiCO protocol has a lower number of active nodes in comparison with DiLCO-16, DESK and GAF, especially from the round $19^{th}$ because it optimizes the lifetime coverage into the subregion based on the perimeter coverage model, which made LiCO improves the coverage ratio and for a longer time in comparison with other approaches. 
+
+\subsubsection{\textbf{The Energy Consumption}}
+In this experiment, we study the effect of the energy consumed by the WSN during the communication, computation, listening, active, and sleep modes for different network densities and compare it with other approaches. Figures~\ref{fig3EC95} and ~\ref{fig3EC50} illustrate the energy consumption for different network sizes for $Lifetime95$ and $Lifetime50$. 
+
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R/EC95.eps} 
+\caption{The Energy Consumption per period with $Lifetime_{95}$}
+\label{fig3EC95}
+\end{figure} 
+                                           
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R/EC50.eps} 
+\caption{The Energy Consumption per period with $Lifetime_{50}$}
+\label{fig3EC50}
+\end{figure} 
+
+The results show that our LiCO protocol is the most competitive from the energy consumption point of view. As shown in figures Figures~\ref{fig3EC95} and ~\ref{fig3EC50}, LiCO consumes less energy  especially when the network size increases because it puts in sleep mode less active sensor number as possible in most periods of the network lifetime. The optimization algorithm, which used by LiCO protocol,  was improved the lifetime coverage efficiently based on the perimeter coverage model.
+
+ The other approaches have a high energy consumption due to activating a larger number of redundant nodes as well as the energy consumed during the different modes of sensor nodes. In fact,  a distributed  method on the subregions greatly reduces the number of communications and the time of listening so thanks to the partitioning of the initial network into several independent subnetworks. 
+
+
+%\subsubsection{Execution Time}
+
+\subsubsection{\textbf{The Network Lifetime}}
+In this experiment, we are observed the superiority of LiCO and DiLCO-16 protocols against other two approaches in prolonging the network lifetime. In figures~\ref{fig3LT95} and \ref{fig3LT50}, network lifetime, $Lifetime95$ and $Lifetime50$ respectively, are illustrated for different network sizes.  
+
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R/LT95.eps}  
+\caption{The Network Lifetime for $Lifetime_{95}$}
+\label{fig3LT95}
+\end{figure}
+
+
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R/LT50.eps}  
+\caption{The Network Lifetime for $Lifetime_{50}$}
+\label{fig3LT50}
+\end{figure} 
+
+As highlighted by figures~\ref{fig3LT95} and \ref{fig3LT50}, the network lifetime obviously increases when the size of the network increases, with our LiCO and DiLCO-16 protocols that leads to maximize the lifetime of the network compared with other approaches. 
+
+By choosing the best suited nodes, for each round, by optimizing the coverage and lifetime of the network to cover the area of interest and by letting the other ones sleep in order to be used later in next rounds, LiCO protocol efficiently prolonged the network lifetime especially for a coverage ratio greater than $50 \%$, whilst it stayed very near to  DiLCO-16 protocol for $95 \%$.  Figure~\ref{figLTALL} introduces the comparisons of the lifetime coverage for different coverage ratios between LiCO and DiLCO-16 protocols. 
+We denote by Protocol/50, Protocol/80, Protocol/85, Protocol/90, and Protocol/95 the amount of time during which the network can satisfy an area coverage greater than $50\%$, $80\%$, $85\%$, $90\%$, and $95\%$ respectively.
+
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R/LTa.eps}  
+\caption{The Network Lifetime for different coverage ratios}
+\label{figLTALL}
+\end{figure} 
+
+Comparison shows that LiCO protocol, which are used distributed optimization over the subregions, is the more relevance one for most coverage ratios and WSN sizes because it is robust to network disconnection during the network lifetime as well as it consume less energy in comparison with other approaches. LiCO protocol gave acceptable coverage ratio for a larger number of periods using new optimization algorithm that based on a perimeter coverage model. It also means that distributing the algorithm in each node and subdividing the sensing field into many subregions, which are managed independently and simultaneously, is the most relevant way to maximize the lifetime of a network.
+
+
+\section{\uppercase{Conclusion and Future Works}}
+\label{sec:Conclusion and Future Works}
+In this paper, we have studied the problem of lifetime coverage optimization in
+WSNs. To cope with this problem, the area of interest is divided into a smaller subregions using  divide-and-conquer method, and then a LiCO protocol for optimizing the lifetime coverage in each subregion. LiCO protocol combines two efficient techniques:  the first, network
+leader election, which executes the perimeter coverage model (only one time), the optimization algorithm, and sending the schedule produced by the optimization algorithm to other nodes in the subregion ; the second, sensor activity scheduling based optimization in which a new lifetime coverage optimization model is proposed. The main challenges include how to select the  most efficient leader in each subregion and the best schedule of sensor nodes that will optimize the network lifetime coverage
+in the subregion. The network lifetime coverage in each subregion is divided into
+periods, each period consists  of four stages: (i) Information Exchange,
+(ii) Leader Election, (iii) a Decision based new optimization model in order to
+select the  nodes remaining  active for the last stage,  and  (iv) Sensing.
+The  simulation results show that LiCO is  is more energy-efficient than other approaches, with respect to lifetime, coverage ratio, active sensors ratio, and energy consumption. Indeed, when dealing with large and dense WSNs, a distributed optimization approach on the subregions of WSN like the one we are proposed allows to reduce the difficulty of a single global optimization problem by partitioning it in many smaller problems, one per subregion, that can be solved more easily.
+
+Our future work is four-fold: the first, we plan to extend a lifetime coverage optimization problem in order to computes all active sensor schedules in only one step for many periods;
+the second, we focus on extend our protocol and optimization algorithm to take into account the heterogeneous sensors, which do not have the same energy, processing,  sensing and communication capabilities;
+the third, we are investigating new optimization model based on the sensing range so as to maximize the lifetime coverage in WSN;
+Finally, our final goal is to implement our protocol using a sensor-testbed to evaluate their performance in real world applications.
+
+\section*{\uppercase{Acknowledgements}}
+\noindent As a Ph.D. student, Ali Kadhum IDREES would like to gratefully acknowledge the University of Babylon - IRAQ for the financial support and Campus France for the received support.
+
+
+
+\ifCLASSOPTIONcaptionsoff
+  \newpage
+\fi
+
+
+\bibliographystyle{IEEEtran}
+%\bibliographystyle{IEEEbiographynophoto}
+\bibliography{LiCO_Journal}
+
+
+
+%\begin{IEEEbiographynophoto}{Jane Doe}
+
+
+
+\end{document}
+
+
diff --git a/LiCO_Journal.aux b/LiCO_Journal.aux
new file mode 100644 (file)
index 0000000..1fef502
--- /dev/null
@@ -0,0 +1,134 @@
+\relax 
+\citation{akyildiz2002wireless}
+\citation{puccinelli2005wireless}
+\citation{yick2008wireless}
+\citation{anastasi2009energy}
+\citation{rault2014energy}
+\citation{ChinhVu}
+\citation{xu2001geography}
+\citation{Idrees2}
+\citation{li2013survey}
+\citation{Misra}
+\citation{yang2014novel}
+\citation{HeShibo}
+\citation{kim2013maximum}
+\citation{Deng2012}
+\citation{Huang:2003:CPW:941350.941367}
+\@writefile{toc}{\contentsline {section}{\numberline {I}Introduction}{1}}
+\newlabel{sec:introduction}{{I}{1}}
+\@writefile{toc}{\contentsline {section}{\numberline {II}Related Literature}{1}}
+\newlabel{sec:Literature Review}{{II}{1}}
+\citation{ling2009energy}
+\citation{jaggi2006}
+\citation{chin2007}
+\citation{pc10}
+\citation{yangnovel}
+\citation{ChinhVu}
+\citation{qu2013distributed}
+\citation{cardei2005improving}
+\citation{zorbas2010solving}
+\citation{pujari2011high}
+\citation{berman04}
+\citation{zorbas2010solving}
+\citation{cardei2005energy}
+\citation{5714480}
+\citation{pujari2011high}
+\citation{Yang2014}
+\citation{castano2013column}
+\citation{rossi2012exact}
+\citation{deschinkel2012column}
+\citation{Zhang05}
+\@writefile{toc}{\contentsline {section}{\numberline {III} The PeCO Protocol Description}{2}}
+\newlabel{sec:The PeCO Protocol Description}{{III}{2}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {III-A}}Assumptions and Models}{2}}
+\newlabel{CI}{{\unhbox \voidb@x \hbox {III-A}}{2}}
+\citation{huang2005coverage}
+\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces (a) Perimeter coverage of sensor node 0 and (b) finding the arc of $u$'s perimeter covered by $v$.\relax }}{3}}
+\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}}
+\newlabel{pcm2sensors}{{1}{3}}
+\@writefile{lot}{\contentsline {table}{\numberline {I}{\ignorespaces Coverage intervals and contributing sensors for sensor node 0.\relax }}{3}}
+\newlabel{my-label}{{I}{3}}
+\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Maximum coverage levels for perimeter of sensor node $0$.\relax }}{4}}
+\newlabel{expcm}{{2}{4}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Sensing range outside the WSN's area of interest.\relax }}{4}}
+\newlabel{ex4pcm}{{3}{4}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {III-B}}The Main Idea}{4}}
+\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces PeCO protocol.\relax }}{4}}
+\newlabel{fig2}{{4}{4}}
+\citation{0031-9155-44-1-012}
+\@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {III-C}}PeCO Protocol Algorithm}{5}}
+\@writefile{loa}{\contentsline {algocf}{\numberline {1}{\ignorespaces PeCO($s_k$)\relax }}{5}}
+\newlabel{alg:PeCO}{{1}{5}}
+\@writefile{toc}{\contentsline {section}{\numberline {IV}Perimeter-based Coverage Problem Formulation}{5}}
+\newlabel{cp}{{IV}{5}}
+\citation{Idrees2}
+\citation{varga}
+\citation{AMPL}
+\citation{glpk}
+\@writefile{toc}{\contentsline {section}{\numberline {V}Performance Evaluation and Analysis}{6}}
+\newlabel{sec:Simulation Results and Analysis}{{V}{6}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {V-A}}Simulation Settings}{6}}
+\@writefile{lot}{\contentsline {table}{\numberline {II}{\ignorespaces Relevant parameters for network initialization.\relax }}{6}}
+\newlabel{table3}{{II}{6}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {V-B}}Simulation Results}{6}}
+\citation{ChinhVu}
+\citation{xu2001geography}
+\citation{Idrees2}
+\citation{idrees2014coverage}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {\unhbox \voidb@x \hbox {V-B}1}\bf  Coverage Ratio}{7}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {\unhbox \voidb@x \hbox {V-B}2}\bf  Active Sensors Ratio}{7}}
+\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Coverage ratio for 200 deployed nodes.\relax }}{7}}
+\newlabel{fig333}{{5}{7}}
+\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Active sensors ratio for 200 deployed nodes.\relax }}{7}}
+\newlabel{fig444}{{6}{7}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {\unhbox \voidb@x \hbox {V-B}3}\bf  Energy Consumption}{7}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {\unhbox \voidb@x \hbox {V-B}4}\bf  Network Lifetime}{7}}
+\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Energy consumption per period for (a)\nobreakspace  {}$Lifetime_{95}$ and (b)\nobreakspace  {}$Lifetime_{50}$.\relax }}{8}}
+\newlabel{fig3EC}{{7}{8}}
+\@writefile{toc}{\contentsline {section}{\numberline {VI}Conclusion and Future Works}{8}}
+\newlabel{sec:Conclusion and Future Works}{{VI}{8}}
+\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces Network Lifetime for (a)\nobreakspace  {}$Lifetime_{95}$   and (b)\nobreakspace  {}$Lifetime_{50}$.\relax }}{8}}
+\newlabel{fig3LT}{{8}{8}}
+\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Network lifetime for different coverage ratios.\relax }}{8}}
+\newlabel{figLTALL}{{9}{8}}
+\bibstyle{IEEEtran}
+\bibdata{LiCO_Journal}
+\bibcite{akyildiz2002wireless}{1}
+\bibcite{puccinelli2005wireless}{2}
+\bibcite{yick2008wireless}{3}
+\bibcite{anastasi2009energy}{4}
+\bibcite{rault2014energy}{5}
+\bibcite{ChinhVu}{6}
+\bibcite{xu2001geography}{7}
+\bibcite{Idrees2}{8}
+\bibcite{li2013survey}{9}
+\bibcite{Misra}{10}
+\bibcite{yang2014novel}{11}
+\bibcite{HeShibo}{12}
+\bibcite{kim2013maximum}{13}
+\bibcite{Deng2012}{14}
+\bibcite{Huang:2003:CPW:941350.941367}{15}
+\bibcite{ling2009energy}{16}
+\bibcite{jaggi2006}{17}
+\bibcite{chin2007}{18}
+\bibcite{pc10}{19}
+\bibcite{yangnovel}{20}
+\bibcite{qu2013distributed}{21}
+\bibcite{cardei2005improving}{22}
+\bibcite{zorbas2010solving}{23}
+\bibcite{pujari2011high}{24}
+\bibcite{berman04}{25}
+\bibcite{cardei2005energy}{26}
+\bibcite{5714480}{27}
+\bibcite{Yang2014}{28}
+\bibcite{castano2013column}{29}
+\bibcite{rossi2012exact}{30}
+\bibcite{deschinkel2012column}{31}
+\bibcite{Zhang05}{32}
+\bibcite{huang2005coverage}{33}
+\bibcite{0031-9155-44-1-012}{34}
+\bibcite{varga}{35}
+\bibcite{AMPL}{36}
+\@writefile{toc}{\contentsline {section}{References}{9}}
+\bibcite{glpk}{37}
+\bibcite{idrees2014coverage}{38}
diff --git a/LiCO_Journal.bbl b/LiCO_Journal.bbl
new file mode 100644 (file)
index 0000000..410dcb1
--- /dev/null
@@ -0,0 +1,228 @@
+% Generated by IEEEtran.bst, version: 1.12 (2007/01/11)
+\begin{thebibliography}{10}
+\providecommand{\url}[1]{#1}
+\csname url@samestyle\endcsname
+\providecommand{\newblock}{\relax}
+\providecommand{\bibinfo}[2]{#2}
+\providecommand{\BIBentrySTDinterwordspacing}{\spaceskip=0pt\relax}
+\providecommand{\BIBentryALTinterwordstretchfactor}{4}
+\providecommand{\BIBentryALTinterwordspacing}{\spaceskip=\fontdimen2\font plus
+\BIBentryALTinterwordstretchfactor\fontdimen3\font minus
+  \fontdimen4\font\relax}
+\providecommand{\BIBforeignlanguage}[2]{{%
+\expandafter\ifx\csname l@#1\endcsname\relax
+\typeout{** WARNING: IEEEtran.bst: No hyphenation pattern has been}%
+\typeout{** loaded for the language `#1'. Using the pattern for}%
+\typeout{** the default language instead.}%
+\else
+\language=\csname l@#1\endcsname
+\fi
+#2}}
+\providecommand{\BIBdecl}{\relax}
+\BIBdecl
+
+\bibitem{akyildiz2002wireless}
+I.~F. Akyildiz, W.~Su, Y.~Sankarasubramaniam, and E.~Cayirci, ``Wireless sensor
+  networks: a survey,'' \emph{Computer networks}, vol.~38, no.~4, pp. 393--422,
+  2002.
+
+\bibitem{puccinelli2005wireless}
+D.~Puccinelli and M.~Haenggi, ``Wireless sensor networks: applications and
+  challenges of ubiquitous sensing,'' \emph{Circuits and Systems Magazine,
+  IEEE}, vol.~5, no.~3, pp. 19--31, 2005.
+
+\bibitem{yick2008wireless}
+J.~Yick, B.~Mukherjee, and D.~Ghosal, ``Wireless sensor network survey,''
+  \emph{Computer networks}, vol.~52, no.~12, pp. 2292--2330, 2008.
+
+\bibitem{anastasi2009energy}
+G.~Anastasi, M.~Conti, M.~Di~Francesco, and A.~Passarella, ``Energy
+  conservation in wireless sensor networks: A survey,'' \emph{Ad Hoc Networks},
+  vol.~7, no.~3, pp. 537--568, 2009.
+
+\bibitem{rault2014energy}
+T.~Rault, A.~Bouabdallah, and Y.~Challal, ``Energy efficiency in wireless
+  sensor networks: A top-down survey,'' \emph{Computer Networks}, vol.~67, pp.
+  104--122, 2014.
+
+\bibitem{ChinhVu}
+C.~Vu, S.~Gao, W.~Deshmukh, and Y.~Li, ``Distributed energy-efficient
+  scheduling approach for k-coverage in wireless sensor networks,''
+  \emph{MILCOM}, vol.~0, pp. 1--7, 2006.
+
+\bibitem{xu2001geography}
+Y.~Xu, J.~Heidemann, and D.~Estrin, ``Geography-informed energy conservation
+  for ad hoc routing,'' in \emph{Proceedings of the 7th annual international
+  conference on Mobile computing and networking}.\hskip 1em plus 0.5em minus
+  0.4em\relax ACM, 2001, pp. 70--84.
+
+\bibitem{Idrees2}
+A.~K. Idrees, K.~Deschinkel, M.~Salomon, and R.~Couturier, ``Distributed
+  lifetime coverage optimization protocol in wireless sensor networks,''
+  University of Franche-Comte - FEMTO-ST Institute, DISC Research Department,
+  Tech. Rep. DISC2014-X, Octobre 2014.
+
+\bibitem{li2013survey}
+M.~Li and A.~V. Vasilakos, ``A survey on topology control in wireless sensor
+  networks: Taxonomy, comparative study, and open issues,'' \emph{Proceedings
+  of the IEEE}, vol. 101, no.~12, 2013.
+
+\bibitem{Misra}
+S.~Misra, M.~P. Kumar, and M.~S. Obaidat, ``Connectivity preserving localized
+  coverage algorithm for area monitoring using wireless sensor networks,''
+  \emph{Computer Communications}, vol.~34, no.~12, pp. 1484--1496, 2011.
+
+\bibitem{yang2014novel}
+C.~Yang and K.-W. Chin, ``Novel algorithms for complete targets coverage in
+  energy harvesting wireless sensor networks,'' \emph{Communications Letters,
+  IEEE}, vol.~18, no.~1, pp. 118--121, January 2014.
+
+\bibitem{HeShibo}
+S.~He, X.~Gong, J.~Zhang, J.~Chen, and Y.~Sun, ``Curve-based deployment for
+  barrier coverage in wireless sensor networks,'' \emph{Wireless
+  Communications, IEEE Transactions on}, vol.~13, no.~2, pp. 724--735, February
+  2014.
+
+\bibitem{kim2013maximum}
+H.~Kim and J.~A. Cobb, ``Maximum lifetime of reinforced barrier-coverage in
+  wireless sensor networks,'' in \emph{Networks (ICON), 2013 19th IEEE
+  International Conference on}.\hskip 1em plus 0.5em minus 0.4em\relax IEEE,
+  2013, pp. 1--6.
+
+\bibitem{Deng2012}
+X.~Deng, D.~Y. Jiguo~Yu, and C.~Chen, ``Transforming area coverage to target
+  coverage to maintain coverage and connectivity for wireless sensor
+  networks,'' \emph{International Journal of Distributed Sensor Networks}, vol.
+  2012, 2012.
+
+\bibitem{Huang:2003:CPW:941350.941367}
+C.-F. HUANG and Y.-C. TSENG, ``The coverage problem in a wireless sensor
+  network,'' \emph{Mobile Networks and Applications}, vol.~10, no.~4, pp.
+  519--528, 2005.
+
+\bibitem{ling2009energy}
+H.~Ling and T.~Znati, ``Energy efficient adaptive sensing for dynamic coverage
+  in wireless sensor networks,'' in \emph{Wireless Communications and
+  Networking Conference, 2009. WCNC 2009. IEEE}.\hskip 1em plus 0.5em minus
+  0.4em\relax IEEE, 2009, pp. 1--6.
+
+\bibitem{jaggi2006}
+N.~Jaggi and A.~Abouzeid, ``Energy-efficient connected covereage in wireless
+  sensor networks,'' in \emph{Proceeding of 4th Asian International Mobile
+  Computing Conference AMOC2006}, 2006.
+
+\bibitem{chin2007}
+C.~T. Vu, ``Distributed energy-efficient solutions for area coverage problems
+  in wireless sensor networks,'' Ph.D. dissertation, Georgia State University,
+  2009.
+
+\bibitem{pc10}
+T.~Padmavathy and M.~Chitra, ``Extending the network lifetime of wireless
+  sensor networks using residual energy extraction-hybrid scheduling
+  algorithm,'' \emph{Int. J. of Communications, Network and System Sciences},
+  vol.~3, no.~1, pp. 98--106, 2010.
+
+\bibitem{yangnovel}
+C.~Yang and K.-W. Chin, ``A novel distributed algorithm for complete targets
+  coverage in energy harvesting wireless sensor networks,'' in \emph{IEEE ICC
+  2014- Ad-hoc and Sensor Networking Symposium}.\hskip 1em plus 0.5em minus
+  0.4em\relax IEEE, 2014, pp. 361--366.
+
+\bibitem{qu2013distributed}
+Y.~Qu and S.~V. Georgakopoulos, ``A distributed area coverage algorithm for
+  maintenance of randomly distributed sensors with adjustable sensing range,''
+  in \emph{Global Communications Conference (GLOBECOM), 2013 IEEE}.\hskip 1em
+  plus 0.5em minus 0.4em\relax IEEE, 2013, pp. 286--291.
+
+\bibitem{cardei2005improving}
+M.~Cardei and D.-Z. Du, ``Improving wireless sensor network lifetime through
+  power aware organization,'' \emph{Wireless Networks}, vol.~11, no.~3, pp.
+  333--340, 2005.
+
+\bibitem{zorbas2010solving}
+D.~Zorbas, D.~Glynos, P.~Kotzanikolaou, and C.~Douligeris, ``Solving coverage
+  problems in wireless sensor networks using cover sets,'' \emph{Ad Hoc
+  Networks}, vol.~8, no.~4, pp. 400--415, 2010.
+
+\bibitem{pujari2011high}
+A.~K. Pujari, ``High-energy-first (hef) heuristic for energy-efficient target
+  coverage problem.'' \emph{International Journal of Ad Hoc, Sensor \&
+  Ubiquitous Computing}, vol.~2, no.~1, 2011.
+
+\bibitem{berman04}
+P.~Berman and G.~Calinescu, ``Power efficient monitoring management in sensor
+  networks,'' in \emph{Proceedings of IEEE Wireless Communication and
+  Networking Conference (WCNC'04)}, 2004, pp. 2329--2334.
+
+\bibitem{cardei2005energy}
+M.~Cardei, M.~T. Thai, Y.~Li, and W.~Wu, ``Energy-efficient target coverage in
+  wireless sensor networks,'' in \emph{INFOCOM 2005. 24th Annual Joint
+  Conference of the IEEE Computer and Communications Societies. Proceedings
+  IEEE}, vol.~3.\hskip 1em plus 0.5em minus 0.4em\relax IEEE, 2005, pp.
+  1976--1984.
+
+\bibitem{5714480}
+X.~Xing, J.~Li, and G.~Wang, ``Integer programming scheme for target coverage
+  in heterogeneous wireless sensor networks,'' in \emph{Mobile Ad-hoc and
+  Sensor Networks (MSN), 2010 Sixth International Conference on}, Dec 2010, pp.
+  79--84.
+
+\bibitem{Yang2014}
+M.~Yang and J.~Liu, ``A maximum lifetime coverage algorithm based on linear
+  programming,'' \emph{Journal of Information Hiding an dMultimedia Signal
+  Processing, Ubiquitous International}, vol.~5, no.~2, pp. 296--301, 2014.
+
+\bibitem{castano2013column}
+F.~Casta{\~n}o, A.~Rossi, M.~Sevaux, and N.~Velasco, ``A column generation
+  approach to extend lifetime in wireless sensor networks with coverage and
+  connectivity constraints,'' \emph{Computers \& Operations Research}, 2013.
+
+\bibitem{rossi2012exact}
+A.~Rossi, A.~Singh, and M.~Sevaux, ``An exact approach for maximizing the
+  lifetime of sensor networks with adjustable sensing ranges,'' \emph{Computers
+  \& Operations Research}, vol.~39, no.~12, pp. 3166--3176, 2012.
+
+\bibitem{deschinkel2012column}
+K.~Deschinkel, ``A column generation based heuristic to extend lifetime in
+  wireless sensor network.'' \emph{Sensors \& Transducers Journal}, vol. 14-2,
+  pp. 242--253, 2012.
+
+\bibitem{Zhang05}
+H.~Zhang and J.~C. Hou, ``Maintaining sensing coverage and connectivity in
+  large sensor networks,'' \emph{Ad Hoc {\&} Sensor Wireless Networks}, vol.~1,
+  no. 1-2, 2005.
+
+\bibitem{huang2005coverage}
+C.-F. Huang and Y.-C. Tseng, ``The coverage problem in a wireless sensor
+  network,'' \emph{Mobile Networks and Applications}, vol.~10, no.~4, pp.
+  519--528, 2005.
+
+\bibitem{0031-9155-44-1-012}
+\BIBentryALTinterwordspacing
+E.~K. Lee, R.~J. Gallagher, D.~Silvern, C.-S. Wuu, and M.~Zaider, ``Treatment
+  planning for brachytherapy: an integer programming model, two computational
+  approaches and experiments with permanent prostate implant planning,''
+  \emph{Physics in Medicine and Biology}, vol.~44, no.~1, p. 145, 1999.
+  [Online]. Available: \url{http://stacks.iop.org/0031-9155/44/i=1/a=012}
+\BIBentrySTDinterwordspacing
+
+\bibitem{varga}
+A.~Varga, ``Omnet++ discrete event simulation system,'' \emph{Available:
+  http://www.omnetpp.org}, 2003.
+
+\bibitem{AMPL}
+R.~Fourer, D.~M. Gay, and B.~W. Kernighan, \emph{AMPL: A Modeling Language for
+  Mathematical Programming}, 2nd~ed.\hskip 1em plus 0.5em minus 0.4em\relax
+  Cengage Learning, November 12, 2002.
+
+\bibitem{glpk}
+A.~Makhorin, ``The glpk (gnu linear programming kit),'' \emph{Available:
+  https://www.gnu.org/software/glpk/}, 2012.
+
+\bibitem{idrees2014coverage}
+A.~K. Idrees, K.~Deschinkel, M.~Salomon, and R.~Couturier, ``Coverage and
+  lifetime optimization in heterogeneous energy wireless sensor networks,'' in
+  \emph{ICN 2014, The Thirteenth International Conference on Networks}, 2014,
+  pp. 49--54.
+
+\end{thebibliography}
diff --git a/LiCO_Journal.bib~ b/LiCO_Journal.bib~
new file mode 100644 (file)
index 0000000..1275c2d
--- /dev/null
@@ -0,0 +1,1016 @@
+\iffalse
+
+@INPROCEEDINGS{Moore99,
+  AUTHOR =       "R. Moore and J. Lopes",
+  TITLE =        "Paper templates",
+  BOOKTITLE =    "TEMPLATE'06, 1st International Conference on Template Production",
+  YEAR =         "1999",
+  publisher =    "SCITEPRESS",
+  file = F
+}
+
+@BOOK{Smith98,
+  AUTHOR =       "J. Smith",
+  TITLE =        "The Book",
+  PUBLISHER =    "The publishing company",
+  YEAR =         "1998",
+  address =      "London",
+  edition =      "2nd",
+  file = F
+}
+
+
+@inproceedings{vashistha2007energy,
+  title={Energy efficient area monitoring using information coverage in wireless sensor networks},
+  author={Vashistha, Sumit and Azad, Amar Prakash and Chockalingam, Ananthanarayanan},
+  booktitle={World of Wireless, Mobile and Multimedia Networks, 2007. WoWMoM 2007. IEEE International Symposium on a},
+  pages={1--10},
+  year={2007},
+  organization={IEEE}
+}
+
+
+@ARTICLE{Torkestani,
+ author = "J. A. Torkestani",
+ title = "An adaptive energy-efficient area coverage algorithm for wireless sensor networks ",
+ journal = {Ad Hoc Networks},
+ volume = {11},
+ number = {6},
+ pages = {1655-1666},
+ year = {2013},
+ }
+@ARTICLE{Zhang,
+ author = "L. Zhang and Q. Zhu and J. Wang",
+ title = "Adaptive Clustering for Maximizing Network Lifetime and Maintaining Coverage ",
+ journal = {JOURNAL OF NETWORKS},
+ volume = {8},
+ number = {3},
+ pages = {616-622},
+ year = {2013},
+ }
+
+@ARTICLE{pc10,
+ author = "T.V. Padmavathy and M. Chitra",
+ title = "Extending the Network Lifetime of Wireless Sensor Networks Using Residual Energy Extraction-Hybrid Scheduling Algorithm",
+  JOURNAL = {Int. J. of Communications, Network and System Sciences},
+ VOLUME = {3},
+ NUMBER = {1},
+PAGES = {98-106},
+YEAR = {2010},
+ }
+
+
+
+@ARTICLE{Zhixin,
+ author = "Z. Liu and Q. Zheng and L. Xue and X. Guan",
+ title = "A distributed energy-efficient clustering algorithm with improved coverage in
+wireless sensor networks",
+ JOURNAL = {Future Generation Computer Systems},
+ VOLUME = {28},
+ NUMBER = {5},
+ PAGES = {780-790},
+ YEAR = {2012},
+ }
+
+@ARTICLE{Bang,
+ author = "B. Wang and H. B. Lim and D. Ma ",
+ title = "A coverage-aware clustering protocol for wireless sensor networks",
+ JOURNAL = {Computer Networks},
+ VOLUME = {56},
+ NUMBER = {5},
+ PAGES = {1599-1611},
+ YEAR = {2012},
+ }
+
+
+
+@book{Akyildiz02,
+ author = {I. F. Akyildiz and M. C. Vuran},
+ title = {Wireless Sensor Networks},
+ publisher = {John Wiley and Sons Ltd.},
+ year = {2010},
+} 
+
+@book{Sudip03,
+ author = {S. Misra and I. Woungang and S. C. Misra},
+ title = {Guide to Wireless Sensor Networks},
+ publisher = {Springer-Verlag London Limited},
+ year = {2009},
+} 
+
+@book{Nayak04,
+ author = {A. Nayak and I. Stojmenovic},
+ title = {Wireless Sensor and Actuator Networks: Algorithms and Protocols for Scalable Coordination and Data Communication},
+ publisher = {John Wiley and Sons, Inc},
+  year = {2010},
+} 
+
+
+
+@ARTICLE{Huang:2003:CPW:941350.941367,
+ author = "C.-F. HUANG and Y.-C. TSENG",
+ title = "The Coverage Problem in a Wireless Sensor Network",
+ JOURNAL = {Mobile Networks and Applications},
+ VOLUME = {10},
+ NUMBER = {4},
+ PAGES = {519-528}, 
+ YEAR = {2005},
+ }
+
+
+@ARTICLE{Zhang05,
+  author    = {H. Zhang and J. C. Hou},
+  title     = {Maintaining Sensing Coverage and Connectivity in Large Sensor Networks},
+  journal   = {Ad Hoc {\&} Sensor Wireless Networks},
+  volume    = {1},
+  number    = {1-2},
+  year      = {2005},
+
+}
+
+@ARTICLE{HeinzelmanCB02,
+  author    = {W. B. Heinzelman and A. P. Chandrakasan and H. Balakrishnan},
+  title     = {An application-specific protocol architecture for wireless microsensor networks},
+  journal   = {IEEE Transactions on Wireless Communications},
+  volume    = {1},
+  number    = {4},
+  pages     = {660-670},
+  year      = {2002},
+}
+
+
+@inproceedings{pedraza2006,
+       author = {F. Pedraza and A. L. Medaglia and A. Garcia},
+       title = {Efficient coverage algorithms for wireless sensor networks},   
+       booktitle = {Proceedings of the 2006 Systems and Information Engineering Design Symposium},
+       pages = {78-83},
+       YEAR = {2006},
+} 
+
+@PhDThesis{chin2007,
+author = {C. T. Vu},
+title = {DISTRIBUTED ENERGY-EFFICIENT SOLUTIONS FOR AREA COVERAGE PROBLEMS IN WIRELESS SENSOR NETWORKS},
+school = {Georgia State University},
+year = {2009},
+}
+
+@ARTICLE{varga,
+author = {A. Varga},
+title = {OMNeT++ Discrete Event Simulation System},
+journal = {Available: http://www.omnetpp.org},
+year = {2003},
+}
+
+
+@ARTICLE{die09,
+  author    = {Isabel Dietrich and
+               Falko Dressler},
+  title     = {On the lifetime of wireless sensor networks},
+  journal   = {TOSN},
+  volume    = {5},
+  number    = {1},
+  year      = {2009},
+  ee        = {http://doi.acm.org/10.1145/1464420.1464425},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+  
+@ARTICLE{mulligan2010coverage,
+  title={Coverage in Wireless Sensor Networks: A Survey.},
+  author={Mulligan, Raymond and Ammari, Habib M},
+  journal={Network Protocols \& Algorithms},
+  volume={2},
+  number={2},
+  year={2010}
+}
+
+
+@phdthesis{vu2009distributed,
+  title={Distributed energy-efficient solutions for area coverage problems in wireless sensor networks},
+  author={Vu, Chinh Trung},
+  year={2009},
+  school={GEORGIA STATE UNIVERSITY}
+}
+
+
+@ARTICLE{raghunathan2002energy,
+  title={Energy-aware wireless microsensor networks},
+  author={Raghunathan, Vijay and Schurgers, Curt and Park, Sung and Srivastava, Mani B},
+  journal={Signal Processing Magazine, IEEE},
+  volume={19},
+  number={2},
+  pages={40--50},
+  year={2002},
+  publisher={IEEE}
+}
+
+@ARTICLE{ChinhVu,
+author = {Chinh Vu and Shan Gao and Wiwek Deshmukh and Yingshu Li},
+title = {Distributed Energy-Efficient Scheduling Approach for K-Coverage in Wireless Sensor Networks},
+journal ={MILCOM},
+volume = {0},
+isbn = {1-4244-0617-X},
+year = {2006},
+pages = {1-7},
+doi = {http://doi.ieeecomputersociety.org/10.1109/MILCOM.2006.302146},
+publisher = {IEEE Computer Society},
+address = {Los Alamitos, CA, USA},
+}
+
+
+@ARTICLE{ghosh2008coverage,
+  title={Coverage and connectivity issues in wireless sensor networks: A survey},
+  author={Ghosh, Amitabha and Das, Sajal K},
+  journal={Pervasive and Mobile Computing},
+  volume={4},
+  number={3},
+  pages={303--334},
+  year={2008},
+  publisher={Elsevier}
+}
+
+
+
+@ARTICLE{yang2014novel, 
+author={Changlin Yang and Kwan-Wu Chin}, 
+journal={Communications Letters, IEEE}, 
+title={Novel Algorithms for Complete Targets Coverage in Energy Harvesting Wireless Sensor Networks}, 
+year={2014}, 
+month={January}, 
+volume={18}, 
+number={1}, 
+pages={118-121}, 
+keywords={energy harvesting;linear programming;secondary cells;telecommunication power supplies;wireless sensor networks;MUA;WSN;activation schedule;complete targets coverage;energy conservation;energy harvesting wireless sensor networks;linear programming based solution;maximum utility algorithm;network lifetime maximization problem;recharging opportunities;sensor nodes;sleep state;time interval;wake-up schedule;Batteries;Energy harvesting;Erbium;Monitoring;Schedules;Sensors;Wireless sensor networks;Wireless sensor network;energy harvesting;targets coverage}, 
+doi={10.1109/LCOMM.2013.111513.132436}, 
+ISSN={1089-7798},}
+
+@ARTICLE{HeShibo, 
+author={He, Shibo and Gong, Xiaowen and Zhang, Junshan and Chen, Jiming and Sun, Youxian}, 
+journal={Wireless Communications, IEEE Transactions on}, 
+title={Curve-Based Deployment for Barrier Coverage in Wireless Sensor Networks}, 
+year={2014}, 
+month={February}, 
+volume={13}, 
+number={2}, 
+pages={724-735}, 
+keywords={Algorithm design and analysis;Approximation algorithms;Approximation methods;Educational institutions;Sensors;Wireless communication;Wireless sensor networks;Barrier coverage;curved-based deployment;deployment algorithms;optimal deployment curve}, 
+doi={10.1109/TWC.2013.121813.130198}, 
+ISSN={1536-1276},
+}
+
+
+
+@inproceedings{Zorbas2007,
+ author = {D. Zorbas and D. Glynos and P. Kotzanikolaou and C. Douligeris},
+ title = {B\{GOP\}: an adaptive coverage algorithm for wireless sensor networks},
+ booktitle = {Proceedings of the 13th European Wireless Conference},
+ series = {EW'07},
+ year = {2007},
+ location = {Paris, France},
+} 
+
+@ARTICLE{zorbas2010solving,
+  title={Solving coverage problems in wireless sensor networks using cover sets},
+  author={Zorbas, Dimitrios and Glynos, Dimitris and Kotzanikolaou, Panayiotis and Douligeris, Christos},
+  journal={Ad Hoc Networks},
+  volume={8},
+  number={4},
+  pages={400-415},
+  year={2010},
+  publisher={Elsevier},
+}
+
+@INPROCEEDINGS{Slijepcevic01powerefficient,
+    author = {S. Slijepcevic and M. Potkonjak},
+    title = {Power Efficient Organization of Wireless Sensor Networks},
+    booktitle = {IEEE International conference on Communications},
+    year = {2001},
+    pages = {472-476}
+}
+
+@ARTICLE{cardei2006energy,
+  title={Energy-efficient coverage problems in wireless ad-hoc sensor networks},
+  author={Cardei, Mihaela and Wu, Jie},
+  journal={Computer communications},
+  volume={29},
+  number={4},
+  pages={413-420},
+  year={2006},
+  publisher={Elsevier}
+}
+
+@inproceedings{cardei2005energy,
+  title={Energy-efficient target coverage in wireless sensor networks},
+  author={Cardei, Mihaela and Thai, My T and Li, Yingshu and Wu, Weili},
+  booktitle={INFOCOM 2005. 24th Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings IEEE},
+  volume={3},
+  pages={1976-1984},
+  year={2005},
+  organization={IEEE}
+}
+
+@ARTICLE{cardei2005improving,
+  title={Improving wireless sensor network lifetime through power aware organization},
+  author={Cardei, Mihaela and Du, Ding-Zhu},
+  journal={Wireless Networks},
+  volume={11},
+  number={3},
+  pages={333-340},
+  year={2005},
+  publisher={Springer-Verlag New York, Inc.}
+}
+
+@inproceedings{abrams2004set,
+  title={Set k-cover algorithms for energy efficient monitoring in wireless sensor networks},
+  author={Abrams, Zo{\"e} and Goel, Ashish and Plotkin, Serge},
+  booktitle={Proceedings of the 3rd international symposium on Information processing in sensor networks},
+  pages={424-432},
+  year={2004},
+  organization={ACM}
+}
+
+@ARTICLE{pujari2011high,
+  title={High-Energy-First (HEF) Heuristic for Energy-Efficient Target Coverage Problem.},
+  author={Pujari, Arun K},
+  journal={International Journal of Ad Hoc, Sensor \& Ubiquitous Computing},
+  volume={2},
+  number={1},
+  year={2011}
+}
+
+@INPROCEEDINGS{berman04,
+    author = {P. Berman and G. Calinescu},
+    title = {Power Efficient Monitoring Management in Sensor Networks},
+    booktitle = {Proceedings of IEEE Wireless Communication and Networking Conference (WCNC'04)},
+    year = {2004},
+    pages = {2329--2334}
+}
+
+@inproceedings{Gallais06,
+ author = {Gallais, Antoine and Carle, Jean and Simplot-Ryl, David and Stojmenovic, Ivan},
+ title = {Localized Sensor Area Coverage with Low Communication Overhead},
+ booktitle = {Proceedings of the Fourth Annual IEEE International Conference on Pervasive Computing and Communications},
+ year = {2006},
+ pages = {328-337},
+}
+
+@inproceedings{Tian02,
+ author = {Tian, Di and Georganas, Nicolas D.},
+ title = {A coverage-preserving node scheduling scheme for large wireless sensor networks},
+ booktitle = {Proceedings of the 1st ACM international workshop on Wireless sensor networks and applications},
+ series = {WSNA '02},
+ year = {2002},
+ pages = {32-41},
+ publisher = {ACM},
+} 
+
+@inproceedings{Ye03,
+ author = {Ye, Fan and Zhong, Gary and Cheng, Jesse and Lu, Songwu and Zhang, Lixia},
+ title = {PEAS: A Robust Energy Conserving Protocol for Long-lived Sensor Networks},
+ booktitle = {Proceedings of the 23rd International Conference on Distributed Computing Systems},
+ series = {ICDCS'03},
+ year = {2003},
+ pages = {28-37},
+} 
+
+
+@INPROCEEDINGS{Berman05efficientenergy,
+    author = {P. Berman and G. Calinescu and C. Shah and A. Zelikovsky},
+    title = {Efficient energy management in sensor networks},
+    booktitle = {Ad Hoc and Sensor Networks. Nova Science Publishers},
+    year = {2005},
+    publisher = {Nova Science Publisher}
+}
+
+@inproceedings{lu2003coverage,
+  title={Coverage-aware self-scheduling in sensor networks},
+  author={Lu, Jun and Suda, Tatsuya},
+  booktitle={Computer Communications, 2003. CCW 2003. Proceedings. 2003 IEEE 18th Annual Workshop on},
+  pages={117--123},
+  year={2003},
+  organization={IEEE}
+}
+
+@incollection{prasad2007distributed,
+  title={Distributed algorithms for lifetime of wireless sensor networks based on dependencies among cover sets},
+  author={Prasad, Sushil K and Dhawan, Akshaye},
+  booktitle={High Performance Computing--HiPC 2007},
+  pages={381-392},
+  year={2007},
+  publisher={Springer}
+}
+
+@inproceedings{cardei2005maximum,
+  title={Maximum network lifetime in wireless sensor networks with adjustable sensing ranges},
+  author={Cardei, Mihaela and Wu, Jie and Lu, Mingming and Pervaiz, Mohammad O},
+  booktitle={Wireless And Mobile Computing, Networking And Communications, 2005.(WiMob'2005), IEEE International Conference on},
+  volume={3},
+  pages={438--445},
+  year={2005},
+  organization={IEEE}
+}
+
+@inproceedings{garg98,
+ author = {Garg, Naveen and Koenemann, Jochen},
+ title = {Faster and Simpler Algorithms for Multicommodity Flow and other Fractional Packing Problems.},
+ booktitle = {Proceedings of the 39th Annual Symposium on Foundations of Computer Science},
+ series = {FOCS '98},
+ year = {1998},
+ pages = {300-309},
+}
+
+@article{wang2010clique,
+  title={A clique base node scheduling method for wireless sensor networks},
+  author={Wang, Lei and Wei, Ruizhong and Lin, Yaping and Wang, Bo},
+  journal={Journal of Network and Computer Applications},
+  volume={33},
+  number={4},
+  pages={383--396},
+  year={2010},
+  publisher={Elsevier}
+}
+
+@article{yardibi2010distributed,
+  title={A distributed activity scheduling algorithm for wireless sensor networks with partial coverage},
+  author={Yardibi, Tarik and Karasan, Ezhan},
+  journal={Wireless Networks},
+  volume={16},
+  number={1},
+  pages={213--225},
+  year={2010},
+  publisher={Springer}
+}
+
+@article{conti2014mobile,
+  title={Mobile ad hoc networking: milestones, challenges, and new research directions},
+  author={Conti, Marco and Giordano, Silvia},
+  journal={Communications Magazine, IEEE},
+  volume={52},
+  number={1},
+  pages={85--96},
+  year={2014},
+  publisher={IEEE}
+}
+
+@inproceedings{idrees2014coverage,
+  title={Coverage and Lifetime Optimization in Heterogeneous Energy Wireless Sensor Networks},
+  author={Idrees, Ali Kadhum and Deschinkel, Karine and Salomon, Michel and Couturier, Rapha{\"e}l},
+  booktitle={ICN 2014, The Thirteenth International Conference on Networks},
+  pages={49--54},
+  year={2014}
+}
+
+@inproceedings{xu2001geography,
+  title={Geography-informed energy conservation for ad hoc routing},
+  author={Xu, Ya and Heidemann, John and Estrin, Deborah},
+  booktitle={Proceedings of the 7th annual international conference on Mobile computing and networking},
+  pages={70--84},
+  year={2001},
+  organization={ACM}
+}
+
+@article{zhou2009variable,
+  title={Variable radii connected sensor cover in sensor networks},
+  author={Zhou, Zongheng and Das, Samir R and Gupta, Himanshu},
+  journal={ACM Transactions on Sensor Networks (TOSN)},
+  volume={5},
+  number={1},
+  pages={8},
+  year={2009},
+  publisher={ACM}
+}
+
+@article{wang2009parallel,
+  title={Parallel energy-efficient coverage optimization with maximum entropy clustering in wireless sensor networks},
+  author={Wang, Xue and Ma, Junjie and Wang, Sheng},
+  journal={Journal of Parallel and Distributed Computing},
+  volume={69},
+  number={10},
+  pages={838--847},
+  year={2009},
+  publisher={Elsevier}
+}
+
+@article{yan2008design,
+  title={Design and optimization of distributed sensing coverage in wireless sensor networks},
+  author={Yan, Ting and Gu, Yu and He, Tian and Stankovic, John A},
+  journal={ACM Transactions on Embedded Computing Systems (TECS)},
+  volume={7},
+  number={3},
+  pages={33},
+  year={2008},
+  publisher={ACM}
+}
+
+@article{he2012leveraging,
+  title={Leveraging prediction to improve the coverage of wireless sensor networks},
+  author={He, Shibo and Chen, Jiming and Li, Xu and Shen, Xuemin and Sun, Youxian},
+  journal={Parallel and Distributed Systems, IEEE Transactions on},
+  volume={23},
+  number={4},
+  pages={701-712},
+  year={2012},
+  publisher={IEEE}
+}
+
+@article{esnaashari2010learning,
+  title={A learning automata based scheduling solution to the dynamic point coverage problem in wireless sensor networks},
+  author={Esnaashari, Mehdi and Meybodi, Mohammad Reza},
+  journal={Computer Networks},
+  volume={54},
+  number={14},
+  pages={2410--2438},
+  year={2010},
+  publisher={Elsevier}
+}
+
+
+@ARTICLE{Misra,
+ author = "S. Misra and M. P. Kumar and M. S. Obaidat",
+ title = "Connectivity preserving localized coverage algorithm for area monitoring using
+wireless sensor networks ",
+ JOURNAL = {Computer Communications},
+ VOLUME = {34},
+ NUMBER = {12},
+ PAGES = {1484-1496},
+ YEAR = {2011},
+}
+
+
+
+@article{rizvi2012a1,
+  title={A1: An energy efficient topology control algorithm for connected area coverage in wireless sensor networks},
+  author={Rizvi, Sajjad and Qureshi, Hassaan Khaliq and Ali Khayam, Syed and Rakocevic, Veselin and Rajarajan, Muttukrishnan},
+  journal={Journal of Network and Computer Applications},
+  volume={35},
+  number={2},
+  pages={597--605},
+  year={2012},
+  publisher={Elsevier}
+}
+
+@article{tran2009novel,
+  title={A novel gossip-based sensing coverage algorithm for dense wireless sensor networks},
+  author={Tran-Quang, Vinh and Miyoshi, Takumi},
+  journal={Computer Networks},
+  volume={53},
+  number={13},
+  pages={2275--2287},
+  year={2009},
+  publisher={Elsevier}
+}
+
+@ARTICLE{wang2011coverage,
+  title={Coverage problems in sensor networks: A survey},
+  author={Wang, Bang},
+  journal={ACM Computing Surveys (CSUR)},
+  volume={43},
+  number={4},
+  pages={32},
+  year={2011},
+  publisher={ACM}
+}
+
+
+@article{luo2014parameterized,
+  title={Parameterized complexity of max-lifetime target coverage in wireless sensor networks},
+  author={Luo, Weizhong and Wang, Jianxin and Guo, Jiong and Chen, Jianer},
+  journal={Theoretical Computer Science},
+  volume={518},
+  pages={32--41},
+  year={2014},
+  publisher={Elsevier}
+}
+
+@article{jarray2013lagrangean,
+  title={A Lagrangean-based heuristics for the target covering problem in wireless sensor network},
+  author={Jarray, Fethi},
+  journal={Applied Mathematical Modelling},
+  volume={37},
+  number={10},
+  pages={6780--6785},
+  year={2013},
+  publisher={Elsevier}
+}
+
+@article{naderan2013sensing,
+  title={Sensing task assignment via sensor selection for maximum target coverage in WSNs},
+  author={Naderan, Marjan and Dehghan, Mehdi and Pedram, Hossein},
+  journal={Journal of Network and Computer Applications},
+  volume={36},
+  number={1},
+  pages={262--273},
+  year={2013},
+  publisher={Elsevier}
+}
+
+@article{erdelj2013multiple,
+  title={Multiple point of interest discovery and coverage with mobile wireless sensors},
+  author={Erdelj, Milan and Loscri, Valeria and Natalizio, Enrico and Razafindralambo, Tahiry},
+  journal={Ad Hoc Networks},
+  volume={11},
+  number={8},
+  pages={2288--2300},
+  year={2013},
+  publisher={Elsevier}
+}
+
+@article{tian2014distributed,
+  title={Distributed Multitarget Probabilistic Coverage Control Algorithm for Wireless Sensor Networks},
+  author={Tian, Ying and Ou, Yang and Hamid, Reza Karimi and Liu, Yan Tao and Han, Jian Qun},
+  journal={Mathematical Problems in Engineering},
+  volume={2014},
+  pages={1--8},
+  year={2014},
+  publisher={Hindawi Publishing Corporation}
+}
+
+@article{castano2013column,
+  title={A column generation approach to extend lifetime in wireless sensor networks with coverage and connectivity constraints},
+  author={Casta{\~n}o, Fabian and Rossi, Andr{\'e} and Sevaux, Marc and Velasco, Nubia},
+  journal={Computers \& Operations Research},
+  year={2013},
+  publisher={Elsevier}
+}
+
+@article{yu2013cwsc,
+  title={CWSC: Connected< i> k</i>-coverage working sets construction algorithm in wireless sensor networks},
+  author={Yu, Jiguo and Deng, Xiu and Yu, Dongxiao and Wang, Guanghui and Gu, Xin},
+  journal={AEU-International Journal of Electronics and Communications},
+  volume={67},
+  number={11},
+  pages={937--946},
+  year={2013},
+  publisher={Elsevier}
+}
+
+@article{cheng2014achieving,
+  title={Achieving Asymmetric Sensing Coverage for Duty Cycled Wireless Sensor Networks},
+  author={Cheng, Long and He, Tian and Niu, Jianwei and Du, David HC},
+  journal={IEEE Transactions on Parallel and Distributed Systems},
+  pages={1--11},
+  year={2014},
+  publisher={IEEE}
+}
+
+@article{yang2013energy,
+  title={Energy-Efficient Probabilistic Area Coverage in Wireless Sensor Networks},
+  author={Yang, Qianqian and He, Shibo and Li, Junkun and Chen, Jiming and Sun, Youxian},
+  journal={IEEE Transactions on Vehicular Technology},
+  year={2013},
+  publisher={IEEE}
+}
+
+@inproceedings{kim2013maximum,
+  title={Maximum lifetime of reinforced barrier-coverage in Wireless Sensor Networks},
+  author={Kim, Hyunbum and Cobb, Jorge A},
+  booktitle={Networks (ICON), 2013 19th IEEE International Conference on},
+  pages={1--6},
+  year={2013},
+  organization={IEEE}
+}
+
+
+
+@inproceedings{chang2012joint,
+  title={Joint energy-balanced and full-coverage mechanism using sensing range control for maximizing network lifetime in WSNs},
+  author={Chang, Chih-Yung and Yu, Gwo-Jong and Lin, Chih-Yu and Wang, Tzu-Lin},
+  booktitle={Ubiquitous and Future Networks (ICUFN), 2012 Fourth International Conference on},
+  pages={34--39},
+  year={2012},
+  organization={IEEE}
+}
+
+
+
+@inproceedings{al2013energy,
+  title={Energy-efficient k-coverage scheduling algorithm for sensor networks with adjustable sensing range},
+  author={Al-Shalabi, Ahmed Abdullah and Manaf, Mazani},
+  booktitle={Wireless Technology and Applications (ISWTA), 2013 IEEE Symposium on},
+  pages={316--321},
+  year={2013},
+  organization={IEEE}
+}
+
+@inproceedings{kim2012sleep,
+  title={On sleep-wakeup scheduling of non-penetrable barrier-coverage of wireless sensors},
+  author={Kim, Donghyun and Kim, Jiwoong and Li, Deying and Kwon, Sung-Sik and Tokuta, Alade O},
+  booktitle={Global Communications Conference (GLOBECOM), 2012 IEEE},
+  pages={321--327},
+  year={2012},
+  organization={IEEE}
+}
+
+@article{li2013survey,
+  title={A Survey on Topology Control in Wireless Sensor Networks: Taxonomy, Comparative Study, and Open Issues},
+  author={Li, Mo and Vasilakos, Athanasios V},
+  journal={Proceedings of the IEEE},
+  volume={101},
+  number={12},
+  year={2013}
+}
+
+
+@inproceedings{wang2007energy,
+  title={Energy efficient coverage with variable sensing radii in wireless sensor networks},
+  author={Wang, Jiong and Medidi, Sirisha},
+  booktitle={Wireless and Mobile Computing, Networking and Communications, 2007. WiMOB 2007. Third IEEE International Conference on},
+  pages={61--61},
+  year={2007},
+  organization={IEEE}
+}
+
+@inproceedings{vu2009delaunay,
+  title={Delaunay-triangulation based complete coverage in wireless sensor networks},
+  author={Vu, Chinh T and Li, Yingshu},
+  booktitle={Pervasive Computing and Communications, 2009. PerCom 2009. IEEE International Conference on},
+  pages={1--5},
+  year={2009},
+  organization={IEEE}
+}
+
+@article{yang2014energy,
+author={Yang, Q. and He, S. and Li, J. and Chen, J. and Sun, Y.},
+journal={Vehicular Technology, IEEE Transactions on},
+title={Energy-Efficient Probabilistic Area Coverage in Wireless Sensor Networks},
+volume={PP},
+number={99},
+pages={1-1},
+year={2014},
+
+}
+
+@inproceedings{ling2009energy,
+  title={Energy efficient adaptive sensing for dynamic coverage in wireless sensor networks},
+  author={Ling, Hui and Znati, Taieb},
+  booktitle={Wireless Communications and Networking Conference, 2009. WCNC 2009. IEEE},
+  pages={1--6},
+  year={2009},
+  organization={IEEE}
+}
+
+@inproceedings{diongue2013alarm,
+  title={ALARM: An energy aware sleep scheduling algorithm for lifetime maximization in wireless sensor networks},
+  author={Diongue, Dame and Thiare, Ousmane},
+  booktitle={Wireless Technology and Applications (ISWTA), 2013 IEEE Symposium on},
+  pages={74--79},
+  year={2013},
+  organization={IEEE}
+}
+
+
+@INPROCEEDINGS{shi2009, 
+author={Qinghua Shi and Xiaozhen Wei and Yu Peng and Shiqian Li}, 
+booktitle={Computer Network and Multimedia Technology, 2009. CNMT 2009. International Symposium on}, 
+title={An Energy-Efficient Central-Scheduling Scheme in Wireless Sensor Networks}, 
+year={2009}, 
+month={Jan}, 
+pages={1-4}, 
+}
+
+@inproceedings{qu2013distributed,
+  title={A distributed area coverage algorithm for maintenance of randomly distributed sensors with adjustable sensing range},
+  author={Qu, Yipeng and Georgakopoulos, Stavros V},
+  booktitle={Global Communications Conference (GLOBECOM), 2013 IEEE},
+  pages={286--291},
+  year={2013},
+  organization={IEEE}
+}
+
+@inproceedings{xin2009area,
+  title={The area coverage algorithm to maintain connectivity for WSN},
+  author={Xin, He and Ke, Yin and Xiaolin, Gui},
+  booktitle={Computer and Information Technology, 2009. CIT'09. Ninth IEEE International Conference on},
+  volume={2},
+  pages={81--86},
+  year={2009},
+  organization={IEEE}
+}
+
+\fi
+
+@article{huang2005coverage,
+  title={The coverage problem in a wireless sensor network},
+  author={Huang, Chi-Fu and Tseng, Yu-Chee},
+  journal={Mobile Networks and Applications},
+  volume={10},
+  number={4},
+  pages={519--528},
+  year={2005},
+  publisher={Springer-Verlag New York, Inc.}
+}
+
+
+@techreport{Idrees2,
+       author = {Idrees, Ali Kadhum and Deschinkel, Karine and Salomon, Michel and Couturier, Rapha{\"e}l},
+       institution = {University of Franche-Comte - FEMTO-ST Institute, DISC Research Department},
+       title = {Distributed Lifetime Coverage Optimization Protocol in Wireless Sensor Networks},
+       number = {DISC2014-X},
+       month = {Octobre},
+       year = {2014}
+}
+
+@article{puccinelli2005wireless,
+  title={Wireless sensor networks: applications and challenges of ubiquitous sensing},
+  author={Puccinelli, Daniele and Haenggi, Martin},
+  journal={Circuits and Systems Magazine, IEEE},
+  volume={5},
+  number={3},
+  pages={19--31},
+  year={2005},
+  publisher={IEEE}
+}
+
+@article{akyildiz2002wireless,
+  title={Wireless sensor networks: a survey},
+  author={Akyildiz, Ian F and Su, Weilian and Sankarasubramaniam, Yogesh and Cayirci, Erdal},
+  journal={Computer networks},
+  volume={38},
+  number={4},
+  pages={393--422},
+  year={2002},
+  publisher={Elsevier}
+}
+
+@article{anastasi2009energy,
+  title={Energy conservation in wireless sensor networks: A survey},
+  author={Anastasi, Giuseppe and Conti, Marco and Di Francesco, Mario and Passarella, Andrea},
+  journal={Ad Hoc Networks},
+  volume={7},
+  number={3},
+  pages={537--568},
+  year={2009},
+  publisher={Elsevier}
+}
+
+@article{yick2008wireless,
+  title={Wireless sensor network survey},
+  author={Yick, Jennifer and Mukherjee, Biswanath and Ghosal, Dipak},
+  journal={Computer networks},
+  volume={52},
+  number={12},
+  pages={2292--2330},
+  year={2008},
+  publisher={Elsevier}
+}
+
+@article{rault2014energy,
+  title={Energy efficiency in wireless sensor networks: A top-down survey},
+  author={Rault, Tifenn and Bouabdallah, Abdelmadjid and Challal, Yacine},
+  journal={Computer Networks},
+  volume={67},
+  pages={104--122},
+  year={2014},
+  publisher={Elsevier}
+}
+
+@article{zhu2012survey,
+  title={A survey on coverage and connectivity issues in wireless sensor networks},
+  author={Zhu, Chuan and Zheng, Chunlin and Shu, Lei and Han, Guangjie},
+  journal={Journal of Network and Computer Applications},
+  volume={35},
+  number={2},
+  pages={619--632},
+  year={2012},
+  publisher={Elsevier}
+}
+
+@article{ammari2012centralized,
+  title={Centralized and clustered k-coverage protocols for wireless sensor networks},
+  author={Ammari, Habib M and Das, Sajal K},
+  journal={Computers, IEEE Transactions on},
+  volume={61},
+  number={1},
+  pages={118--133},
+  year={2012},
+  publisher={IEEE}
+}
+
+@article{rebai2014branch,
+  title={A Branch and Bound Algorithm for the Critical Grid Coverage Problem in Wireless Sensor Networks},
+  author={Rebai, Maher and Le Berre, Matthieu and Hnaien, Faicel and Snoussi, Hichem and Khoukhi, Lyes},
+  journal={International Journal of Distributed Sensor Networks},
+  volume={2014},
+  year={2014},
+  publisher={Hindawi Publishing Corporation}
+}
+
+@inproceedings{rebai2013linear,
+  title={Linear models for the total coverage problem in wireless sensor networks},
+  author={Rebai, Maher and Snoussi, Hichem and Khoukhi, I and Hnaien, Faicel},
+  booktitle={Modeling, Simulation and Applied Optimization (ICMSAO), 2013 5th International Conference on},
+  pages={1--4},
+  year={2013},
+  organization={IEEE}
+}
+
+@article{nayak2010wireless,
+  title={Wireless sensor and actuator networks},
+  author={Nayak, Amiya and Stojmenovic, Ivan},
+  journal={John-Whiley \& sons},
+  year={2010},
+  publisher={Wiley Online Library}
+}
+
+@article{li2011transforming,
+  title={Transforming complete coverage algorithms to partial coverage algorithms for wireless sensor networks},
+  author={Li, Yingshu and Vu, Chinh and Ai, Chunyu and Chen, Guantao and Zhao, Yi},
+  journal={Parallel and Distributed Systems, IEEE Transactions on},
+  volume={22},
+  number={4},
+  pages={695--703},
+  year={2011},
+  publisher={IEEE}
+}
+
+@inproceedings{liu2014generalized,
+  title={A generalized coverage-preserving scheduling in WSNs: A case study in structural health monitoring},
+  author={Liu, Xuefeng and Cao, Jiannong and Tang, Shaojie and Guo, Peng},
+  booktitle={INFOCOM, 2014 Proceedings IEEE},
+  pages={718--726},
+  year={2014},
+  organization={IEEE}
+}
+
+@inproceedings{wang2010preserving,
+  title={Preserving target area coverage in wireless sensor networks by using computational geometry},
+  author={Wang, San-Yuan and Shih, Kuei-Ping and Chen, Yen-Da and Ku, Hsin-Hui},
+  booktitle={Wireless Communications and Networking Conference (WCNC), 2010 IEEE},
+  pages={1--6},
+  year={2010},
+  organization={IEEE}
+}
+
+@inproceedings{cho2007distributed,
+  title={A Distributed node scheduling protocol considering sensing coverage in wireless sensor networks},
+  author={Cho, Jaekyu and Kim, Gilsoo and Kwon, Taekyoung and Choi, Yanghee},
+  booktitle={Vehicular Technology Conference, 2007. VTC-2007 Fall. 2007 IEEE 66th},
+  pages={352--356},
+  year={2007},
+  organization={IEEE}
+}
+
+@inproceedings{quang2008algorithm,
+  title={An algorithm for sensing coverage problem in wireless sensor networks},
+  author={Quang, Vinh Tran and Miyoshi, Takumi},
+  booktitle={Sarnoff Symposium, 2008 IEEE},
+  pages={1--5},
+  year={2008},
+  organization={IEEE}
+}
+
+
+@inproceedings{lin2010partitioning,
+  title={Partitioning sensors by node coverage grouping in wireless sensor networks},
+  author={Lin, Chow-Sing and Chen, Chih-Chung and Chen, An-Chi},
+  booktitle={Parallel and Distributed Processing with Applications (ISPA), 2010 International Symposium on},
+  pages={306--312},
+  year={2010},
+  organization={IEEE}
+}
+
+@inproceedings{zaidi2009minimum,
+  title={On minimum cost coverage in wireless sensor networks},
+  author={Zaidi, Syed Ali Raza and Hafeez, Maryam and Khayam, Syed A and McLernon, Desmond C and Ghogho, Mounir and Kim, K},
+  booktitle={Information Sciences and Systems, 2009. CISS 2009. 43rd Annual Conference on},
+  pages={213--218},
+  year={2009},
+  organization={IEEE}
+}
+
+@article{dong2012distributed,
+  title={Distributed coverage in wireless ad hoc and sensor networks by topological graph approaches},
+  author={Dong, Dezun and Liao, Xiangke and Liu, Kebin and Liu, Yunhao and Xu, Weixia},
+  journal={Computers, IEEE Transactions on},
+  volume={61},
+  number={10},
+  pages={1417--1428},
+  year={2012},
+  publisher={IEEE}
+}
+
+@article{liu2010energy,
+  title={Energy conservation algorithms for maintaining coverage and connectivity in wireless sensor networks},
+  author={Liu, L and Hu, B and Li, L},
+  journal={IET communications},
+  volume={4},
+  number={7},
+  pages={786--800},
+  year={2010},
+  publisher={IET}
+}
+
+@inproceedings{aslanyan2013optimal,
+  title={Optimal node scheduling for integrated connected-coverage in wireless sensor networks},
+  author={Aslanyan, Levon and Aslanyan, Hakob and Khosravi, Hamid},
+  booktitle={Computer Science and Information Technologies (CSIT), 2013},
+  pages={1--13},
+  year={2013},
+  organization={IEEE}
+}
+
diff --git a/LiCO_Journal.blg b/LiCO_Journal.blg
new file mode 100644 (file)
index 0000000..b096024
--- /dev/null
@@ -0,0 +1,56 @@
+This is BibTeX, Version 0.99d (TeX Live 2012/Debian)
+Capacity: max_strings=35307, hash_size=35307, hash_prime=30011
+The top-level auxiliary file: LiCO_Journal.aux
+The style file: IEEEtran.bst
+Reallocated singl_function (elt_size=4) to 100 items from 50.
+Reallocated singl_function (elt_size=4) to 100 items from 50.
+Reallocated singl_function (elt_size=4) to 100 items from 50.
+Reallocated wiz_functions (elt_size=4) to 6000 items from 3000.
+Reallocated singl_function (elt_size=4) to 100 items from 50.
+Database file #1: LiCO_Journal.bib
+-- IEEEtran.bst version 1.12 (2007/01/11) by Michael Shell.
+-- http://www.michaelshell.org/tex/ieeetran/bibtex/
+-- See the "IEEEtran_bst_HOWTO.pdf" manual for usage information.
+
+Done.
+You've used 38 entries,
+            4024 wiz_defined-function locations,
+            1030 strings with 14357 characters,
+and the built_in function-call counts, 28618 in all, are:
+= -- 2382
+> -- 626
+< -- 258
++ -- 347
+- -- 101
+* -- 1378
+:= -- 4358
+add.period$ -- 82
+call.type$ -- 38
+change.case$ -- 38
+chr.to.int$ -- 567
+cite$ -- 38
+duplicate$ -- 2083
+empty$ -- 2273
+format.name$ -- 134
+if$ -- 6607
+int.to.chr$ -- 0
+int.to.str$ -- 38
+missing$ -- 347
+newline$ -- 139
+num.names$ -- 38
+pop$ -- 743
+preamble$ -- 1
+purify$ -- 0
+quote$ -- 2
+skip$ -- 2247
+stack$ -- 0
+substring$ -- 1351
+swap$ -- 1719
+text.length$ -- 69
+text.prefix$ -- 0
+top$ -- 5
+type$ -- 38
+warning$ -- 0
+while$ -- 133
+width$ -- 40
+write$ -- 398
diff --git a/LiCO_Journal.log b/LiCO_Journal.log
new file mode 100644 (file)
index 0000000..d559b45
--- /dev/null
@@ -0,0 +1,1036 @@
+This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012/Debian) (format=pdflatex 2013.9.3)  6 FEB 2015 11:40
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**LiCO_Journal.tex
+(./LiCO_Journal.tex
+LaTeX2e <2011/06/27>
+Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, lo
+aded.
+(./IEEEtran.cls
+Document Class: IEEEtran 2012/12/27 V1.8 by Michael Shell
+-- See the "IEEEtran_HOWTO" manual for usage information.
+-- http://www.michaelshell.org/tex/ieeetran/
+\@IEEEtrantmpdimenA=\dimen102
+\@IEEEtrantmpdimenB=\dimen103
+\@IEEEtrantmpcountA=\count79
+\@IEEEtrantmpcountB=\count80
+\@IEEEtrantmptoksA=\toks14
+LaTeX Font Info:    Try loading font information for OT1+ptm on input line 368.
+
+(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ptm.fd
+File: ot1ptm.fd 2001/06/04 font definitions for OT1/ptm.
+)
+-- Using 8.5in x 11in (letter) paper.
+-- Using PDF output.
+\@IEEEnormalsizeunitybaselineskip=\dimen104
+-- This is a 10 point document.
+\CLASSINFOnormalsizebaselineskip=\dimen105
+\CLASSINFOnormalsizeunitybaselineskip=\dimen106
+\IEEEnormaljot=\dimen107
+LaTeX Font Info:    Font shape `OT1/ptm/bx/n' in size <5> not available
+(Font)              Font shape `OT1/ptm/b/n' tried instead on input line 726.
+LaTeX Font Info:    Font shape `OT1/ptm/bx/it' in size <5> not available
+(Font)              Font shape `OT1/ptm/b/it' tried instead on input line 726.
+LaTeX Font Info:    Font shape `OT1/ptm/bx/n' in size <7> not available
+(Font)              Font shape `OT1/ptm/b/n' tried instead on input line 726.
+LaTeX Font Info:    Font shape `OT1/ptm/bx/it' in size <7> not available
+(Font)              Font shape `OT1/ptm/b/it' tried instead on input line 726.
+LaTeX Font Info:    Font shape `OT1/ptm/bx/n' in size <8> not available
+(Font)              Font shape `OT1/ptm/b/n' tried instead on input line 726.
+LaTeX Font Info:    Font shape `OT1/ptm/bx/it' in size <8> not available
+(Font)              Font shape `OT1/ptm/b/it' tried instead on input line 726.
+LaTeX Font Info:    Font shape `OT1/ptm/bx/n' in size <9> not available
+(Font)              Font shape `OT1/ptm/b/n' tried instead on input line 726.
+LaTeX Font Info:    Font shape `OT1/ptm/bx/it' in size <9> not available
+(Font)              Font shape `OT1/ptm/b/it' tried instead on input line 726.
+LaTeX Font Info:    Font shape `OT1/ptm/bx/n' in size <10> not available
+(Font)              Font shape `OT1/ptm/b/n' tried instead on input line 726.
+LaTeX Font Info:    Font shape `OT1/ptm/bx/it' in size <10> not available
+(Font)              Font shape `OT1/ptm/b/it' tried instead on input line 726.
+LaTeX Font Info:    Font shape `OT1/ptm/bx/n' in size <11> not available
+(Font)              Font shape `OT1/ptm/b/n' tried instead on input line 726.
+LaTeX Font Info:    Font shape `OT1/ptm/bx/it' in size <11> not available
+(Font)              Font shape `OT1/ptm/b/it' tried instead on input line 726.
+LaTeX Font Info:    Font shape `OT1/ptm/bx/n' in size <12> not available
+(Font)              Font shape `OT1/ptm/b/n' tried instead on input line 726.
+LaTeX Font Info:    Font shape `OT1/ptm/bx/it' in size <12> not available
+(Font)              Font shape `OT1/ptm/b/it' tried instead on input line 726.
+LaTeX Font Info:    Font shape `OT1/ptm/bx/n' in size <17> not available
+(Font)              Font shape `OT1/ptm/b/n' tried instead on input line 726.
+LaTeX Font Info:    Font shape `OT1/ptm/bx/it' in size <17> not available
+(Font)              Font shape `OT1/ptm/b/it' tried instead on input line 726.
+LaTeX Font Info:    Font shape `OT1/ptm/bx/n' in size <20> not available
+(Font)              Font shape `OT1/ptm/b/n' tried instead on input line 726.
+LaTeX Font Info:    Font shape `OT1/ptm/bx/it' in size <20> not available
+(Font)              Font shape `OT1/ptm/b/it' tried instead on input line 726.
+LaTeX Font Info:    Font shape `OT1/ptm/bx/n' in size <24> not available
+(Font)              Font shape `OT1/ptm/b/n' tried instead on input line 726.
+LaTeX Font Info:    Font shape `OT1/ptm/bx/it' in size <24> not available
+(Font)              Font shape `OT1/ptm/b/it' tried instead on input line 726.
+\IEEEilabelindentA=\dimen108
+\IEEEilabelindentB=\dimen109
+\IEEEilabelindent=\dimen110
+\IEEEelabelindent=\dimen111
+\IEEEdlabelindent=\dimen112
+\IEEElabelindent=\dimen113
+\IEEEiednormlabelsep=\dimen114
+\IEEEiedmathlabelsep=\dimen115
+\IEEEiedtopsep=\skip41
+\c@section=\count81
+\c@subsection=\count82
+\c@subsubsection=\count83
+\c@paragraph=\count84
+\c@IEEEsubequation=\count85
+\abovecaptionskip=\skip42
+\belowcaptionskip=\skip43
+\c@figure=\count86
+\c@table=\count87
+\@IEEEeqnnumcols=\count88
+\@IEEEeqncolcnt=\count89
+\@IEEEsubeqnnumrollback=\count90
+\@IEEEtmpitemindent=\dimen116
+\c@IEEEbiography=\count91
+\@IEEEtranrubishbin=\box26
+) (/usr/share/texlive/texmf-dist/tex/latex/float/float.sty
+Package: float 2001/11/08 v1.3d Float enhancements (AL)
+\c@float@type=\count92
+\float@exts=\toks15
+\float@box=\box27
+\@float@everytoks=\toks16
+\@floatcapt=\box28
+)
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/epsfig.sty
+Package: epsfig 1999/02/16 v1.7a (e)psfig emulation (SPQR)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
+Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
+\KV@toks@=\toks17
+)
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
+Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
+Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg
+File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
+)
+Package graphics Info: Driver file: pdftex.def on input line 91.
+
+(/usr/share/texlive/texmf-dist/tex/latex/pdftex-def/pdftex.def
+File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count93
+))
+\Gin@req@height=\dimen117
+\Gin@req@width=\dimen118
+)
+\epsfxsize=\dimen119
+\epsfysize=\dimen120
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty
+Package: calc 2007/08/22 v4.3 Infix arithmetic (KKT,FJ)
+\calc@Acount=\count94
+\calc@Bcount=\count95
+\calc@Adimen=\dimen121
+\calc@Bdimen=\dimen122
+\calc@Askip=\skip44
+\calc@Bskip=\skip45
+LaTeX Info: Redefining \setlength on input line 76.
+LaTeX Info: Redefining \addtolength on input line 77.
+\calc@Ccount=\count96
+\calc@Cskip=\skip46
+)
+(/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty
+Package: times 2005/04/12 PSNFSS-v9.2a (SPQR) 
+)
+(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty
+Package: amssymb 2009/06/22 v3.00
+
+(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty
+Package: amsfonts 2009/06/22 v3.00 Basic AMSFonts support
+\@emptytoks=\toks18
+\symAMSa=\mathgroup4
+\symAMSb=\mathgroup5
+LaTeX Font Info:    Overwriting math alphabet `\mathfrak' in version `bold'
+(Font)                  U/euf/m/n --> U/euf/b/n on input line 96.
+))
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty
+Package: amsmath 2000/07/18 v2.13 AMS math features
+\@mathmargin=\skip47
+
+For additional information on amsmath, use the `?' option.
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty
+Package: amstext 2000/06/29 v2.01
+
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty
+File: amsgen.sty 1999/11/30 v2.0
+\@emptytoks=\toks19
+\ex@=\dimen123
+))
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty
+Package: amsbsy 1999/11/29 v1.2d
+\pmbraise@=\dimen124
+)
+(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty
+Package: amsopn 1999/12/14 v2.01 operator names
+)
+\inf@bad=\count97
+LaTeX Info: Redefining \frac on input line 211.
+\uproot@=\count98
+\leftroot@=\count99
+LaTeX Info: Redefining \overline on input line 307.
+\classnum@=\count100
+\DOTSCASE@=\count101
+LaTeX Info: Redefining \ldots on input line 379.
+LaTeX Info: Redefining \dots on input line 382.
+LaTeX Info: Redefining \cdots on input line 467.
+\Mathstrutbox@=\box29
+\strutbox@=\box30
+\big@size=\dimen125
+LaTeX Font Info:    Redeclaring font encoding OML on input line 567.
+LaTeX Font Info:    Redeclaring font encoding OMS on input line 568.
+\macc@depth=\count102
+\c@MaxMatrixCols=\count103
+\dotsspace@=\muskip10
+\c@parentequation=\count104
+\dspbrk@lvl=\count105
+\tag@help=\toks20
+\row@=\count106
+\column@=\count107
+\maxfields@=\count108
+\andhelp@=\toks21
+\eqnshift@=\dimen126
+\alignsep@=\dimen127
+\tagshift@=\dimen128
+\tagwidth@=\dimen129
+\totwidth@=\dimen130
+\lineht@=\dimen131
+\@envbody=\toks22
+\multlinegap=\skip48
+\multlinetaggap=\skip49
+\mathdisplay@stack=\toks23
+LaTeX Info: Redefining \[ on input line 2666.
+LaTeX Info: Redefining \] on input line 2667.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/latexsym.sty
+Package: latexsym 1998/08/17 v2.2e Standard LaTeX package (lasy symbols)
+\symlasy=\mathgroup6
+LaTeX Font Info:    Overwriting symbol font `lasy' in version `bold'
+(Font)                  U/lasy/m/n --> U/lasy/b/n on input line 47.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/algorithms/algorithmic.sty
+Package: algorithmic 2009/08/24 v0.1 Document Style `algorithmic'
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty
+Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
+)
+\c@ALC@unique=\count109
+\c@ALC@line=\count110
+\c@ALC@rem=\count111
+\c@ALC@depth=\count112
+\ALC@tlm=\skip50
+\algorithmicindent=\skip51
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
+Package: fontenc 2005/09/27 v1.99g Standard LaTeX package
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def
+File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file
+LaTeX Font Info:    Redeclaring font encoding T1 on input line 43.
+)
+LaTeX Font Info:    Try loading font information for T1+ptm on input line 100.
+
+(/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1ptm.fd
+File: t1ptm.fd 2001/06/04 font definitions for T1/ptm.
+))
+(/usr/share/texmf/tex/latex/pgf/frontendlayer/tikz.sty
+(/usr/share/texmf/tex/latex/pgf/basiclayer/pgf.sty
+(/usr/share/texmf/tex/latex/pgf/utilities/pgfrcs.sty
+(/usr/share/texmf/tex/generic/pgf/utilities/pgfutil-common.tex
+\pgfutil@everybye=\toks24
+)
+(/usr/share/texmf/tex/generic/pgf/utilities/pgfutil-latex.def
+\pgfutil@abb=\box31
+
+(/usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty
+Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS)
+))
+(/usr/share/texmf/tex/generic/pgf/utilities/pgfrcs.code.tex
+Package: pgfrcs 2010/10/25 v2.10 (rcs-revision 1.24)
+))
+Package: pgf 2008/01/15 v2.10 (rcs-revision 1.12)
+
+(/usr/share/texmf/tex/latex/pgf/basiclayer/pgfcore.sty
+(/usr/share/texmf/tex/latex/pgf/systemlayer/pgfsys.sty
+(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsys.code.tex
+Package: pgfsys 2010/06/30 v2.10 (rcs-revision 1.37)
+
+(/usr/share/texmf/tex/generic/pgf/utilities/pgfkeys.code.tex
+\pgfkeys@pathtoks=\toks25
+\pgfkeys@temptoks=\toks26
+
+(/usr/share/texmf/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex
+\pgfkeys@tmptoks=\toks27
+))
+\pgf@x=\dimen132
+\pgf@y=\dimen133
+\pgf@xa=\dimen134
+\pgf@ya=\dimen135
+\pgf@xb=\dimen136
+\pgf@yb=\dimen137
+\pgf@xc=\dimen138
+\pgf@yc=\dimen139
+\w@pgf@writea=\write3
+\r@pgf@reada=\read1
+\c@pgf@counta=\count113
+\c@pgf@countb=\count114
+\c@pgf@countc=\count115
+\c@pgf@countd=\count116
+
+(/usr/share/texmf/tex/generic/pgf/systemlayer/pgf.cfg
+File: pgf.cfg 2008/05/14  (rcs-revision 1.7)
+)
+Package pgfsys Info: Driver file for pgf: pgfsys-pdftex.def on input line 900.
+
+(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsys-pdftex.def
+File: pgfsys-pdftex.def 2009/05/22  (rcs-revision 1.26)
+
+(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def
+File: pgfsys-common-pdf.def 2008/05/19  (rcs-revision 1.10)
+)))
+(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
+File: pgfsyssoftpath.code.tex 2008/07/18  (rcs-revision 1.7)
+\pgfsyssoftpath@smallbuffer@items=\count117
+\pgfsyssoftpath@bigbuffer@items=\count118
+)
+(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
+File: pgfsysprotocol.code.tex 2006/10/16  (rcs-revision 1.4)
+))
+(/usr/share/texmf/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK)
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg
+File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
+)
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341.
+Package xcolor Info: Model `RGB' extended on input line 1353.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360.
+)
+(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcore.code.tex
+Package: pgfcore 2010/04/11 v2.10 (rcs-revision 1.7)
+
+(/usr/share/texmf/tex/generic/pgf/math/pgfmath.code.tex
+(/usr/share/texmf/tex/generic/pgf/math/pgfmathcalc.code.tex
+(/usr/share/texmf/tex/generic/pgf/math/pgfmathutil.code.tex)
+(/usr/share/texmf/tex/generic/pgf/math/pgfmathparser.code.tex
+\pgfmath@dimen=\dimen140
+\pgfmath@count=\count119
+\pgfmath@box=\box32
+\pgfmath@toks=\toks28
+\pgfmath@stack@operand=\toks29
+\pgfmath@stack@operation=\toks30
+)
+(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.code.tex
+(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex)
+(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex)
+(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.random.code.tex)
+(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex)
+(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.base.code.tex)
+(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.round.code.tex)
+(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex)))
+(/usr/share/texmf/tex/generic/pgf/math/pgfmathfloat.code.tex
+\c@pgfmathroundto@lastzeros=\count120
+))
+(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex
+File: pgfcorepoints.code.tex 2010/04/09  (rcs-revision 1.20)
+\pgf@picminx=\dimen141
+\pgf@picmaxx=\dimen142
+\pgf@picminy=\dimen143
+\pgf@picmaxy=\dimen144
+\pgf@pathminx=\dimen145
+\pgf@pathmaxx=\dimen146
+\pgf@pathminy=\dimen147
+\pgf@pathmaxy=\dimen148
+\pgf@xx=\dimen149
+\pgf@xy=\dimen150
+\pgf@yx=\dimen151
+\pgf@yy=\dimen152
+\pgf@zx=\dimen153
+\pgf@zy=\dimen154
+)
+(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex
+File: pgfcorepathconstruct.code.tex 2010/08/03  (rcs-revision 1.24)
+\pgf@path@lastx=\dimen155
+\pgf@path@lasty=\dimen156
+)
+(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex
+File: pgfcorepathusage.code.tex 2008/04/22  (rcs-revision 1.12)
+\pgf@shorten@end@additional=\dimen157
+\pgf@shorten@start@additional=\dimen158
+)
+(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex
+File: pgfcorescopes.code.tex 2010/09/08  (rcs-revision 1.34)
+\pgfpic=\box33
+\pgf@hbox=\box34
+\pgf@layerbox@main=\box35
+\pgf@picture@serial@count=\count121
+)
+(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex
+File: pgfcoregraphicstate.code.tex 2008/04/22  (rcs-revision 1.9)
+\pgflinewidth=\dimen159
+)
+(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex
+File: pgfcoretransformations.code.tex 2009/06/10  (rcs-revision 1.11)
+\pgf@pt@x=\dimen160
+\pgf@pt@y=\dimen161
+\pgf@pt@temp=\dimen162
+)
+(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorequick.code.tex
+File: pgfcorequick.code.tex 2008/10/09  (rcs-revision 1.3)
+)
+(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex
+File: pgfcoreobjects.code.tex 2006/10/11  (rcs-revision 1.2)
+)
+(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex
+File: pgfcorepathprocessing.code.tex 2008/10/09  (rcs-revision 1.8)
+)
+(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex
+File: pgfcorearrows.code.tex 2008/04/23  (rcs-revision 1.11)
+)
+(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex
+File: pgfcoreshade.code.tex 2008/11/23  (rcs-revision 1.13)
+\pgf@max=\dimen163
+\pgf@sys@shading@range@num=\count122
+)
+(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex
+File: pgfcoreimage.code.tex 2010/03/25  (rcs-revision 1.16)
+
+(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex
+File: pgfcoreexternal.code.tex 2010/09/01  (rcs-revision 1.17)
+\pgfexternal@startupbox=\box36
+))
+(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex
+File: pgfcorelayers.code.tex 2010/08/27  (rcs-revision 1.2)
+)
+(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex
+File: pgfcoretransparency.code.tex 2008/01/17  (rcs-revision 1.2)
+)
+(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex
+File: pgfcorepatterns.code.tex 2009/07/02  (rcs-revision 1.3)
+)))
+(/usr/share/texmf/tex/generic/pgf/modules/pgfmoduleshapes.code.tex
+File: pgfmoduleshapes.code.tex 2010/09/09  (rcs-revision 1.13)
+\pgfnodeparttextbox=\box37
+)
+(/usr/share/texmf/tex/generic/pgf/modules/pgfmoduleplot.code.tex
+File: pgfmoduleplot.code.tex 2010/10/22  (rcs-revision 1.8)
+)
+(/usr/share/texmf/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty
+Package: pgfcomp-version-0-65 2007/07/03 v2.10 (rcs-revision 1.7)
+\pgf@nodesepstart=\dimen164
+\pgf@nodesepend=\dimen165
+)
+(/usr/share/texmf/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty
+Package: pgfcomp-version-1-18 2007/07/23 v2.10 (rcs-revision 1.1)
+))
+(/usr/share/texmf/tex/latex/pgf/utilities/pgffor.sty
+(/usr/share/texmf/tex/latex/pgf/utilities/pgfkeys.sty
+(/usr/share/texmf/tex/generic/pgf/utilities/pgfkeys.code.tex))
+(/usr/share/texmf/tex/generic/pgf/utilities/pgffor.code.tex
+Package: pgffor 2010/03/23 v2.10 (rcs-revision 1.18)
+\pgffor@iter=\dimen166
+\pgffor@skip=\dimen167
+\pgffor@stack=\toks31
+\pgffor@toks=\toks32
+))
+(/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
+Package: tikz 2010/10/13 v2.10 (rcs-revision 1.76)
+
+(/usr/share/texmf/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex
+File: pgflibraryplothandlers.code.tex 2010/05/31 v2.10 (rcs-revision 1.15)
+\pgf@plot@mark@count=\count123
+\pgfplotmarksize=\dimen168
+)
+\tikz@lastx=\dimen169
+\tikz@lasty=\dimen170
+\tikz@lastxsaved=\dimen171
+\tikz@lastysaved=\dimen172
+\tikzleveldistance=\dimen173
+\tikzsiblingdistance=\dimen174
+\tikz@figbox=\box38
+\tikz@tempbox=\box39
+\tikztreelevel=\count124
+\tikznumberofchildren=\count125
+\tikznumberofcurrentchild=\count126
+\tikz@fig@count=\count127
+
+(/usr/share/texmf/tex/generic/pgf/modules/pgfmodulematrix.code.tex
+File: pgfmodulematrix.code.tex 2010/08/24  (rcs-revision 1.4)
+\pgfmatrixcurrentrow=\count128
+\pgfmatrixcurrentcolumn=\count129
+\pgf@matrix@numberofcolumns=\count130
+)
+\tikz@expandcount=\count131
+
+(/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopat
+hs.code.tex
+File: tikzlibrarytopaths.code.tex 2008/06/17 v2.10 (rcs-revision 1.2)
+))) (/usr/share/texlive/texmf-dist/tex/latex/subfigure/subfigure.sty
+Package: subfigure 2002/03/15 v2.1.5 subfigure package
+\subfigtopskip=\skip52
+\subfigcapskip=\skip53
+\subfigcaptopadj=\dimen175
+\subfigbottomskip=\skip54
+\subfigcapmargin=\dimen176
+\subfiglabelskip=\skip55
+\c@subfigure=\count132
+\c@lofdepth=\count133
+\c@subtable=\count134
+\c@lotdepth=\count135
+****************************************
+* Local config file subfigure.cfg used *
+****************************************
+(/usr/share/texlive/texmf-dist/tex/latex/subfigure/subfigure.cfg)
+\subfig@top=\skip56
+\subfig@bottom=\skip57
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty
+Package: xspace 2009/10/20 v1.13 Space after command names (DPC,MH)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty
+Package: algorithm2e 2008/00/00 v3.10 algorithms environments
+\c@AlgoLine=\count136
+
+(/usr/share/texlive/texmf-dist/tex/latex/relsize/relsize.sty
+Package: relsize 2011/09/21 ver 4.0
+
+Examine \normalsize starts \@setfontsize size may be 10. 
+Examine \small starts \@setfontsize size may be 9. 
+Examine \footnotesize starts \@setfontsize size may be 8. 
+Examine \large starts \@setfontsize size may be 12. 
+Examine \Large starts \@setfontsize size may be 14. 
+Examine \LARGE starts \@setfontsize size may be 17. 
+Examine \scriptsize starts \@setfontsize size may be 7. 
+Examine \tiny starts \@setfontsize size may be 5. 
+Examine \huge starts \@setfontsize size may be 20. 
+Examine \Huge starts \@setfontsize size may be 24. )
+********************************************************
+Package `algorithm2e' Release 4.01 -- december 14 2009 --
+- algorithm2e-announce@lirmm.fr mailing list for announcement about releases
+- algorithm2e-discussion@lirmm.fr mailing list for discussion about package
+subscribe by emailing sympa@lirmm.fr with 'subscribe <list> <firstname name>'
+- Author: Christophe Fiorio (fiorio@lirmm.fr)
+********************************************************
+\skiptotal=\skip58
+\skiplinenumber=\skip59
+\skiprule=\skip60
+\skiphlne=\skip61
+\skiptext=\skip62
+\skiplength=\skip63
+\algomargin=\skip64
+\skipalgocfslide=\skip65
+\algowidth=\dimen177
+\inoutsize=\dimen178
+\inoutline=\dimen179
+\interspacetitleruled=\dimen180
+\interspacealgoruled=\dimen181
+\interspacetitleboxruled=\dimen182
+\algocf@inoutbox=\box40
+\algocf@inputbox=\box41
+\AlCapSkip=\skip66
+\AlCapHSkip=\skip67
+\algocf@nlbox=\box42
+\algocf@hangingbox=\box43
+\algocf@capbox=\box44
+\algoheightruledefault=\skip68
+\algoheightrule=\skip69
+\algotitleheightruledefault=\skip70
+\algotitleheightrule=\skip71
+\c@algocfline=\count137
+\c@algocfproc=\count138
+\c@algocf=\count139
+\algocf@algoframe=\box45
+\algocf@algobox=\box46
+) (/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty
+Package: caption 2012/02/19 v3.2f Customizing captions (AR)
+
+(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty
+Package: caption3 2012/01/12 v1.4b caption3 kernel (AR)
+\captionmargin=\dimen183
+\captionmargin@=\dimen184
+\captionwidth=\dimen185
+\caption@indent=\dimen186
+\caption@parindent=\dimen187
+\caption@hangindent=\dimen188
+Package caption Info: Unknown document class (or package),
+(caption)             standard defaults will be used.
+)
+
+Package caption Warning: Unsupported document class (or package) detected,
+(caption)                usage of the caption package is not recommended.
+See the caption package documentation for explanation.
+
+Package caption Info: \@makecaption = \long macro:#1#2->\ifx \@captype \@IEEEta
+blestring \footnotesize \bgroup \par \centering \@IEEEtabletopskipstrut {\norma
+lfont \footnotesize #1}\\{\normalfont \footnotesize \scshape #2}\par \addvspace
+ {0.5\baselineskip }\egroup \@IEEEtablecaptionsepspace \else \@IEEEfigurecaptio
+nsepspace \setbox \@tempboxa \hbox {\normalfont \footnotesize {#1.}\nobreakspac
+e \nobreakspace #2}\ifdim \wd \@tempboxa >\hsize \setbox \@tempboxa \hbox {\nor
+malfont \footnotesize {#1.}\nobreakspace \nobreakspace }\parbox [t]{\hsize }{\n
+ormalfont \footnotesize \noindent \unhbox \@tempboxa #2}\else \ifCLASSOPTIONcon
+ference \hbox to\hsize {\normalfont \footnotesize \hfil \box \@tempboxa \hfil }
+\else \hbox to\hsize {\normalfont \footnotesize \box \@tempboxa \hfil }\fi \fi 
+\fi .
+\c@ContinuedFloat=\count140
+Package caption Info: float package is loaded.
+Package caption Info: subfigure package is loaded.
+) (/usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty
+Package: multicol 2011/06/27 v1.7a multicolumn formatting (FMi)
+\c@tracingmulticols=\count141
+\mult@box=\box47
+\multicol@leftmargin=\dimen189
+\c@unbalance=\count142
+\c@collectmore=\count143
+\doublecol@number=\count144
+\multicoltolerance=\count145
+\multicolpretolerance=\count146
+\full@width=\dimen190
+\page@free=\dimen191
+\premulticols=\dimen192
+\postmulticols=\dimen193
+\multicolsep=\skip72
+\multicolbaselineskip=\skip73
+\partial@page=\box48
+\last@line=\box49
+\mult@rightbox=\box50
+\mult@grightbox=\box51
+\mult@gfirstbox=\box52
+\mult@firstbox=\box53
+\@tempa=\box54
+\@tempa=\box55
+\@tempa=\box56
+\@tempa=\box57
+\@tempa=\box58
+\@tempa=\box59
+\@tempa=\box60
+\@tempa=\box61
+\@tempa=\box62
+\@tempa=\box63
+\@tempa=\box64
+\@tempa=\box65
+\@tempa=\box66
+\@tempa=\box67
+\@tempa=\box68
+\@tempa=\box69
+\@tempa=\box70
+\c@columnbadness=\count147
+\c@finalcolumnbadness=\count148
+\last@try=\dimen194
+\multicolovershoot=\dimen195
+\multicolundershoot=\dimen196
+\mult@nat@firstbox=\box71
+\colbreak@box=\box72
+\multicol@sort@counter=\count149
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf.sty
+Package: epstopdf 2010/02/09 v2.5 Conversion with epstopdf on the fly (HO)
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty
+Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty
+Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty
+Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO)
+))
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
+Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty
+Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty
+Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds)             That can mean that you are not using pdfTeX 1.50 or
+(etexcmds)             that some package has redefined \expanded.
+(etexcmds)             In the latter case, load this package earlier.
+)))
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
+Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO
+)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO)
+Package ifpdf Info: pdfTeX in PDF mode is detected.
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+)
+Package grfext Info: Graphics extension search list:
+(grfext)             [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE
+G,.JBIG2,.JB2,.eps]
+(grfext)             \AppendGraphicsExtensions on input line 452.
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
+File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
+e
+)))
+(./LiCO_Journal.aux)
+\openout1 = `LiCO_Journal.aux'.
+
+LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 37.
+LaTeX Font Info:    ... okay on input line 37.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 37.
+LaTeX Font Info:    ... okay on input line 37.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 37.
+LaTeX Font Info:    ... okay on input line 37.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 37.
+LaTeX Font Info:    ... okay on input line 37.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 37.
+LaTeX Font Info:    ... okay on input line 37.
+LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 37.
+LaTeX Font Info:    ... okay on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/n' in size <5> not available
+(Font)              Font shape `T1/ptm/b/n' tried instead on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/it' in size <5> not available
+(Font)              Font shape `T1/ptm/b/it' tried instead on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/n' in size <7> not available
+(Font)              Font shape `T1/ptm/b/n' tried instead on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/it' in size <7> not available
+(Font)              Font shape `T1/ptm/b/it' tried instead on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/n' in size <8> not available
+(Font)              Font shape `T1/ptm/b/n' tried instead on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/it' in size <8> not available
+(Font)              Font shape `T1/ptm/b/it' tried instead on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/n' in size <9> not available
+(Font)              Font shape `T1/ptm/b/n' tried instead on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/it' in size <9> not available
+(Font)              Font shape `T1/ptm/b/it' tried instead on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/n' in size <10> not available
+(Font)              Font shape `T1/ptm/b/n' tried instead on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/it' in size <10> not available
+(Font)              Font shape `T1/ptm/b/it' tried instead on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/n' in size <11> not available
+(Font)              Font shape `T1/ptm/b/n' tried instead on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/it' in size <11> not available
+(Font)              Font shape `T1/ptm/b/it' tried instead on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/n' in size <12> not available
+(Font)              Font shape `T1/ptm/b/n' tried instead on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/it' in size <12> not available
+(Font)              Font shape `T1/ptm/b/it' tried instead on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/n' in size <17> not available
+(Font)              Font shape `T1/ptm/b/n' tried instead on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/it' in size <17> not available
+(Font)              Font shape `T1/ptm/b/it' tried instead on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/n' in size <20> not available
+(Font)              Font shape `T1/ptm/b/n' tried instead on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/it' in size <20> not available
+(Font)              Font shape `T1/ptm/b/it' tried instead on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/n' in size <24> not available
+(Font)              Font shape `T1/ptm/b/n' tried instead on input line 37.
+LaTeX Font Info:    Font shape `T1/ptm/bx/it' in size <24> not available
+(Font)              Font shape `T1/ptm/b/it' tried instead on input line 37.
+
+(/usr/share/texlive/texmf-dist/tex/context/base/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count150
+\scratchdimen=\dimen197
+\scratchbox=\box73
+\nofMPsegments=\count151
+\nofMParguments=\count152
+\everyMPshowfont=\toks33
+\MPscratchCnt=\count153
+\MPscratchDim=\dimen198
+\MPnumerator=\count154
+\makeMPintoPDFobject=\count155
+\everyMPtoPDFconversion=\toks34
+) ABD: EveryShipout initializing macros
+Package caption Info: Begin \AtBeginDocument code.
+Package caption Info: End \AtBeginDocument code.
+LaTeX Font Info:    Try loading font information for U+msa on input line 55.
+
+(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd
+File: umsa.fd 2009/06/22 v3.00 AMS symbols A
+)
+LaTeX Font Info:    Try loading font information for U+msb on input line 55.
+
+(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
+File: umsb.fd 2009/06/22 v3.00 AMS symbols B
+)
+LaTeX Font Info:    Try loading font information for U+lasy on input line 55.
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/ulasy.fd
+File: ulasy.fd 1998/08/17 v2.2e LaTeX symbol font definitions
+)
+
+LaTeX Warning: Reference `sec:The PeCO Protocol Description' on page 1 undefine
+d on input line 152.
+
+[1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}
+
+
+] [2]
+<pcm.jpg, id=19, 417.81094pt x 395.97937pt>
+File: pcm.jpg Graphic file (type jpg)
+ <use pcm.jpg>
+Package pdftex.def Info: pcm.jpg used on input line 339.
+(pdftex.def)             Requested size: 213.39566pt x 202.24892pt.
+
+<twosensors.jpg, id=20, 384.83775pt x 268.00125pt>
+File: twosensors.jpg Graphic file (type jpg)
+ <use twosensors.jpg>
+Package pdftex.def Info: twosensors.jpg used on input line 340.
+(pdftex.def)             Requested size: 213.39566pt x 148.61159pt.
+
+<expcm2.jpg, id=21, 518.53725pt x 260.172pt>
+File: expcm2.jpg Graphic file (type jpg)
+ <use expcm2.jpg>
+Package pdftex.def Info: expcm2.jpg used on input line 381.
+(pdftex.def)             Requested size: 362.77263pt x 182.01988pt.
+
+<ex4pcm.jpg, id=22, 331.2375pt x 275.22826pt>
+File: ex4pcm.jpg Graphic file (type jpg)
+ <use ex4pcm.jpg>
+Package pdftex.def Info: ex4pcm.jpg used on input line 440.
+(pdftex.def)             Requested size: 177.82971pt x 147.76012pt.
+ [3 <./pcm.jpg> <./twosensors.jpg>]
+
+pdfTeX warning: pdflatex (file ./Model.pdf): PDF inclusion: found PDF version <
+1.6>, but at most version <1.5> allowed
+<Model.pdf, id=31, 493.24274pt x 361.35pt>
+File: Model.pdf Graphic file (type pdf)
+ <use Model.pdf>
+Package pdftex.def Info: Model.pdf used on input line 479.
+(pdftex.def)             Requested size: 227.62204pt x 166.75784pt.
+
+
+LaTeX Warning: Reference `alg:PeCO' on page 4 undefined on input line 511.
+
+[4 <./expcm2.jpg> <./ex4pcm.jpg> <./Model.pdf>] [5]
+
+LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 763.
+
+
+
+LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 775.
+
+
+
+LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 786.
+
+
+
+LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 792.
+
+
+
+LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 794.
+
+
+
+LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 796.
+
+
+[6]
+Package epstopdf Info: Source file: <R/CR.eps>
+(epstopdf)                    date: 2015-02-06 11:42:02
+(epstopdf)                    size: 29526 bytes
+(epstopdf)             Output file: <R/CR.pdf>
+(epstopdf)                    date: 2015-02-06 11:42:02
+(epstopdf)                    size: 12638 bytes
+(epstopdf)             Command: <repstopdf R/CR.eps>
+(epstopdf)             \includegraphics on input line 853.
+Package epstopdf Info: Output file is already uptodate.
+ <R/CR.pdf, id=49, 484.81125pt x 350.30875pt>
+File: R/CR.pdf Graphic file (type pdf)
+ <use R/CR.pdf>
+Package pdftex.def Info: R/CR.pdf used on input line 853.
+(pdftex.def)             Requested size: 242.40503pt x 175.15395pt.
+
+
+LaTeX Warning: `!h' float specifier changed to `!ht'.
+
+Package epstopdf Info: Source file: <R/ASR.eps>
+(epstopdf)                    date: 2015-02-06 11:42:02
+(epstopdf)                    size: 29515 bytes
+(epstopdf)             Output file: <R/ASR.pdf>
+(epstopdf)                    date: 2015-02-06 11:42:02
+(epstopdf)                    size: 12695 bytes
+(epstopdf)             Command: <repstopdf R/ASR.eps>
+(epstopdf)             \includegraphics on input line 877.
+Package epstopdf Info: Output file is already uptodate.
+<R/ASR.pdf, id=50, 484.81125pt x 350.30875pt>
+File: R/ASR.pdf Graphic file (type pdf)
+ <use R/ASR.pdf>
+Package pdftex.def Info: R/ASR.pdf used on input line 877.
+(pdftex.def)             Requested size: 242.40503pt x 175.15395pt.
+
+
+LaTeX Warning: `!h' float specifier changed to `!ht'.
+
+Package epstopdf Info: Source file: <R/EC95.eps>
+(epstopdf)                    date: 2015-02-06 11:42:02
+(epstopdf)                    size: 24136 bytes
+(epstopdf)             Output file: <R/EC95.pdf>
+(epstopdf)                    date: 2015-02-06 11:42:03
+(epstopdf)                    size: 8179 bytes
+(epstopdf)             Command: <repstopdf R/EC95.eps>
+(epstopdf)             \includegraphics on input line 900.
+Package epstopdf Info: Output file is already uptodate.
+<R/EC95.pdf, id=51, 493.845pt x 350.30875pt>
+File: R/EC95.pdf Graphic file (type pdf)
+ <use R/EC95.pdf>
+Package pdftex.def Info: R/EC95.pdf used on input line 900.
+(pdftex.def)             Requested size: 234.5788pt x 166.39838pt.
+Package epstopdf Info: Source file: <R/EC50.eps>
+(epstopdf)                    date: 2015-02-06 11:42:02
+(epstopdf)                    size: 24138 bytes
+(epstopdf)             Output file: <R/EC50.pdf>
+(epstopdf)                    date: 2015-02-06 11:42:02
+(epstopdf)                    size: 8180 bytes
+(epstopdf)             Command: <repstopdf R/EC50.eps>
+(epstopdf)             \includegraphics on input line 901.
+Package epstopdf Info: Output file is already uptodate.
+
+<R/EC50.pdf, id=52, 493.845pt x 350.30875pt>
+File: R/EC50.pdf Graphic file (type pdf)
+ <use R/EC50.pdf>
+Package pdftex.def Info: R/EC50.pdf used on input line 901.
+(pdftex.def)             Requested size: 234.5788pt x 166.39838pt.
+
+Overfull \hbox (6.23872pt too wide) in paragraph at lines 899--903
+ [][] 
+ []
+
+
+LaTeX Warning: `!h' float specifier changed to `!ht'.
+
+[7 <./R/CR.pdf> <./R/ASR.pdf>]
+Package epstopdf Info: Source file: <R/LT95.eps>
+(epstopdf)                    date: 2015-02-06 11:42:03
+(epstopdf)                    size: 24103 bytes
+(epstopdf)             Output file: <R/LT95.pdf>
+(epstopdf)                    date: 2015-02-06 11:42:03
+(epstopdf)                    size: 8351 bytes
+(epstopdf)             Command: <repstopdf R/LT95.eps>
+(epstopdf)             \includegraphics on input line 932.
+Package epstopdf Info: Output file is already uptodate.
+ <R/LT95.pdf, id=67, 493.845pt x 350.30875pt>
+File: R/LT95.pdf Graphic file (type pdf)
+
+<use R/LT95.pdf>
+Package pdftex.def Info: R/LT95.pdf used on input line 932.
+(pdftex.def)             Requested size: 234.5788pt x 166.39838pt.
+Package epstopdf Info: Source file: <R/LT50.eps>
+(epstopdf)                    date: 2015-02-06 11:42:03
+(epstopdf)                    size: 24855 bytes
+(epstopdf)             Output file: <R/LT50.pdf>
+(epstopdf)                    date: 2015-02-06 11:42:03
+(epstopdf)                    size: 8466 bytes
+(epstopdf)             Command: <repstopdf R/LT50.eps>
+(epstopdf)             \includegraphics on input line 933.
+Package epstopdf Info: Output file is already uptodate.
+ <R/LT50.pdf, id=68, 493.845pt x 350.30875pt>
+File: R/LT50.pdf Graphic file (type pdf)
+ <use R/LT50.pdf>
+Package pdftex.def Info: R/LT50.pdf used on input line 933.
+(pdftex.def)             Requested size: 234.5788pt x 166.39838pt.
+
+Overfull \hbox (6.23872pt too wide) in paragraph at lines 931--936
+ [][] 
+ []
+
+
+LaTeX Warning: `!h' float specifier changed to `!ht'.
+
+Package epstopdf Info: Source file: <R/LTa.eps>
+(epstopdf)                    date: 2015-02-06 11:42:03
+(epstopdf)                    size: 27000 bytes
+(epstopdf)             Output file: <R/LTa.pdf>
+(epstopdf)                    date: 2015-01-05 09:48:18
+(epstopdf)                    size: 7857 bytes
+(epstopdf)             Command: <repstopdf R/LTa.eps>
+(epstopdf)             \includegraphics on input line 955.
+runsystem(repstopdf R/LTa.eps)...executed safely (allowed).
+
+Package epstopdf Info: Result file: <R/LTa.pdf>
+(epstopdf)                    date: 2015-02-06 11:42:25
+(epstopdf)                    size: 7927 bytes.
+<R/LTa.pdf, id=69, 484.81125pt x 350.30875pt>
+File: R/LTa.pdf Graphic file (type pdf)
+ <use R/LTa.pdf>
+Package pdftex.def Info: R/LTa.pdf used on input line 955.
+(pdftex.def)             Requested size: 242.40503pt x 175.15395pt.
+
+
+LaTeX Warning: `!h' float specifier changed to `!ht'.
+
+[8 <./R/EC95.pdf> <./R/EC50.pdf> <./R/LT95.pdf> <./R/LT50.pdf> <./R/LTa.pdf>]
+(./LiCO_Journal.bbl [9]) [10
+
+] (./LiCO_Journal.aux)
+
+LaTeX Warning: There were undefined references.
+
+
+LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
+
+ ) 
+Here is how much of TeX's memory you used:
+ 14422 strings out of 495059
+ 254135 string characters out of 3182031
+ 328731 words of memory out of 3000000
+ 17283 multiletter control sequences out of 15000+200000
+ 113496 words of font info for 131 fonts, out of 3000000 for 9000
+ 17 hyphenation exceptions out of 8191
+ 56i,19n,55p,1451b,481s stack positions out of 5000i,500n,10000p,200000b,50000s
+{/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc}</usr/share/texliv
+e/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb></usr/share/texlive/texm
+f-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/texlive/texmf-dist
+/fonts/type1/public/amsfonts/cm/cmmi5.pfb></usr/share/texlive/texmf-dist/fonts/
+type1/public/amsfonts/cm/cmmi6.pfb></usr/share/texlive/texmf-dist/fonts/type1/p
+ublic/amsfonts/cm/cmmi7.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/a
+msfonts/cm/cmmi8.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts
+/cm/cmr10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr
+6.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr7.pfb></
+usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.pfb></usr/shar
+e/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texl
+ive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy7.pfb></usr/share/texlive/tex
+mf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb></usr/share/texlive/texmf-dist
+/fonts/type1/urw/times/utmb8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/ur
+w/times/utmbi8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a
+.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb>
+Output written on LiCO_Journal.pdf (10 pages, 647819 bytes).
+PDF statistics:
+ 160 PDF objects out of 1000 (max. 8388607)
+ 108 compressed objects within 2 object streams
+ 0 named destinations out of 1000 (max. 500000)
+ 73 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/LiCO_Journal.pdf b/LiCO_Journal.pdf
new file mode 100644 (file)
index 0000000..bfc43eb
Binary files /dev/null and b/LiCO_Journal.pdf differ
diff --git a/LiCO_Journal.tex~ b/LiCO_Journal.tex~
new file mode 100644 (file)
index 0000000..4675dda
--- /dev/null
@@ -0,0 +1,1025 @@
+\documentclass[journal]{IEEEtran}
+
+\ifCLASSINFOpdf
+\else
+\fi  
+\hyphenation{op-tical net-works semi-conduc-tor}
+\usepackage{float} 
+\usepackage{epsfig}
+\usepackage{calc}
+ \usepackage{times,amssymb,amsmath,latexsym}
+\usepackage{graphics}
+\usepackage{graphicx}
+\usepackage{amsmath}
+%\usepackage{txfonts}
+\usepackage{algorithmic}
+\usepackage[T1]{fontenc}
+\usepackage{tikz}
+%\usepackage{algorithm}
+%\usepackage{algpseudocode}
+%\usepackage{algorithmwh}
+\usepackage{subfigure}
+\usepackage{float}
+\usepackage{xspace}
+\usepackage[linesnumbered,ruled,vlined,commentsnumbered]{algorithm2e}
+\usepackage{epsfig}
+\usepackage{caption}
+\usepackage{multicol}
+\usepackage{times}
+\usepackage{graphicx,epstopdf}
+\epstopdfsetup{suffix=}
+\DeclareGraphicsExtensions{.ps}
+\usepackage{xspace}
+\def\bsq#1{%both single quotes
+\lq{#1}\rq}
+\DeclareGraphicsRule{.ps}{pdf}{.pdf}{`ps2pdf -dEPSCrop -dNOSAFER #1 \noexpand\OutputFile}
+\begin{document}
+
+%\title{Lifetime Coverage Optimization Protocol \\
+%  in Wireless Sensor Networks}
+\title{Perimeter-based Coverage Optimization Protocol \\
+  to Improve Lifetime in Wireless Sensor Networks}
+
+\author{Ali Kadhum Idrees,~\IEEEmembership{}
+        Karine Deschinkel,~\IEEEmembership{}
+        Michel Salomon,~\IEEEmembership{}
+        and~Rapha\"el Couturier ~\IEEEmembership{} 
+        \thanks{The authors are with FEMTO-ST Institute, UMR 6174 CNRS, University of Franche-Comt\'e,
+          Belfort, France. Email: ali.idness@edu.univ-fcomte.fr, $\lbrace$karine.deschinkel,
+          michel.salomon, raphael.couturier$\rbrace$@univ-fcomte.fr}}
+
+\markboth{IEEE Communications Letters,~Vol.~XX, No.~Y, January 2015}%
+{Shell \MakeLowercase{\textit{et al.}}: Bare Demo of IEEEtran.cls for Journals}
+
+\maketitle
+
+\begin{abstract}
+The most important problem in a Wireless Sensor Network (WSN) is to optimize the
+use of its limited energy provision, so  that it can fulfill its monitoring task
+as  long as  possible. Among  known  available approaches  that can  be used  to
+improve  power  management,  lifetime coverage  optimization  provides  activity
+scheduling which ensures  sensing coverage while minimizing the  energy cost. In
+this paper,  we propose such an approach  called Lifetime  Coverage Optimization
+protocol (LiCO).   It is a  hybrid of  centralized and distributed  methods: the
+region of interest is first subdivided  into subregions and our protocol is then
+distributed among sensor nodes in each  subregion. A sensor node which runs LiCO
+protocol  repeats   periodically  four  stages:  information   exchange,  leader
+election, optimization decision, and sensing.  More precisely, the scheduling of
+nodes' activities (sleep/wake up duty cycles) is achieved in each subregion by a
+leader selected after  cooperation between nodes within the  same subregion. The
+novelty  of  our  approach  lies  essentially   in  the  formulation  of  a  new
+mathematical optimization  model based on  perimeter coverage level  to schedule
+sensors' activities.  Extensive simulation experiments have been performed using
+OMNeT++, the  discrete event simulator, to  demonstrate that LiCO is  capable to
+offer longer lifetime coverage for WSNs in comparison with some other protocols.
+\end{abstract} 
+
+% Note that keywords are not normally used for peerreview papers.
+\begin{IEEEkeywords}
+Wireless Sensor Networks, Area Coverage, Network lifetime, Optimization, Scheduling.
+\end{IEEEkeywords}
+
+\IEEEpeerreviewmaketitle
+
+\section{Introduction}
+\label{sec:introduction}
+
+\noindent The continuous progress in Micro Electro-Mechanical Systems (MEMS) and
+wireless communication hardware  has given rise to the opportunity  to use large
+networks    of     tiny    sensors,    called    Wireless     Sensor    Networks
+(WSN)~\cite{akyildiz2002wireless,puccinelli2005wireless}, to  fulfill monitoring
+tasks.   A  WSN  consists  of  small low-powered  sensors  working  together  by
+communicating with one another through multi-hop radio communications. Each node
+can send the data  it collects in its environment, thanks to  its sensor, to the
+user by means of  sink nodes. The features of a WSN made  it suitable for a wide
+range of application  in areas such as business,  environment, health, industry,
+military, and so on~\cite{yick2008wireless}.   Typically, a sensor node contains
+three main components~\cite{anastasi2009energy}: a  sensing unit able to measure
+physical,  chemical, or  biological  phenomena observed  in  the environment;  a
+processing unit which will process and store the collected measurements; a radio
+communication unit for data transmission and receiving.
+
+The energy needed  by an active sensor node to  perform sensing, processing, and
+communication is supplied by a power supply which is a battery. This battery has
+a limited energy provision and it may  be unsuitable or impossible to replace or
+recharge it in  most applications. Therefore it is necessary  to deploy WSN with
+high density in order to increase the reliability and to exploit node redundancy
+thanks to energy-efficient activity  scheduling approaches.  Indeed, the overlap
+of sensing  areas can be exploited  to schedule alternatively some  sensors in a
+low power sleep mode and thus save  energy. Overall, the main question that must
+be answered is: how to extend the lifetime coverage of a WSN as long as possible
+while  ensuring   a  high  level  of   coverage?   So,  this  last   years  many
+energy-efficient mechanisms have been suggested  to retain energy and extend the
+lifetime of the WSNs~\cite{rault2014energy}.
+
+%The sensor system ought to have a lifetime long enough to satisfy the application necessities. The lifetime coverage maximization is one of the fundamental requirements of any area coverage protocol in WSN implementation~\cite{nayak2010wireless}. In order to increase the reliability and prevent the possession of coverage holes (some parts are not covered in the area of interest) in the WSN, it is necessary to deploy the WSN with high density so as to increase the reliability and to exploit redundancy by using energy-efficient activity scheduling approaches.
+
+%From a certain standpoint, the high coverage ratio is required by many applications such as military and health-care. Therefore, a suitable number of sensors are being chosen so as to cover the area of interest, is the first challenge. Meanwhile, the sensor nodes have a limited capabilities in terms of memory, processing, communication, and battery power being the most important and critical one.  So, the main question is: how to extend the lifetime coverage of WSN as long time as possible?. There are many energy-efficient mechanisms have been suggested to retain energy and extend the lifetime of the WSNs~\cite{rault2014energy}.
+
+%\uppercase{\textbf{Our contributions.}}
+
+This paper makes the following contributions.
+\begin{enumerate}
+\item We devise a framework to schedule nodes to be activated alternatively such
+  that the network lifetime is prolonged  while ensuring that a certain level of
+  coverage is preserved.  A key idea in  our framework is to exploit spatial and
+  temporal subdivision.   On the one hand  the area of interest  if divided into
+  several smaller subregions and on the other hand the time line is divided into
+  periods of equal length. In each subregion the sensor nodes will cooperatively
+  choose a  leader which will schedule  nodes' activities, and this  grouping of
+  sensors is similar to typical cluster architecture.
+\item We  propose a new mathematical  optimization model.  Instead of  trying to
+  cover a set of specified points/targets as  in most of the methods proposed in
+  the literature, we formulate an integer program based on perimeter coverage of
+  each sensor.  The  model involves integer variables to  capture the deviations
+  between  the actual  level of  coverage and  the required  level.  So  that an
+  optimal scheduling  will be  obtained by  minimizing a  weighted sum  of these
+  deviations.
+\item We  conducted extensive simulation  experiments, using the  discrete event
+  simulator OMNeT++, to demonstrate the  efficiency of our protocol. We compared
+  our   LiCO   protocol   to   two   approaches   found   in   the   literature:
+  DESK~\cite{ChinhVu} and  GAF~\cite{xu2001geography}, and also to  our previous
+  work published in~\cite{Idrees2} which is  based on another optimization model
+  for sensor scheduling.
+\end{enumerate}
+
+%Two combined integrated energy-efficient techniques have been used by LiCO protocol in order to maximize the lifetime coverage in WSN: the first, by dividing the area of interest into several smaller subregions based on divide-and-conquer method and then one leader elected for each subregion in an independent, distributed, and simultaneous way by the cooperation among the sensor nodes within each subregion, and this similar to cluster architecture;
+% the second, activity scheduling based new optimization model has been used to provide the optimal cover set that will take the mission of sensing during current period. This optimization algorithm is based on a perimeter-coverage model so as to optimize the shared perimeter among the sensors in each subregion, and this represents as a energu-efficient control topology mechanism in WSN.
+
+The rest  of the paper is  organized as follows.  In the next section  we review
+some related work in the  field. Section~\ref{sec:The LiCO Protocol Description}
+is devoted to the LiCO protocol  description and Section~\ref{cp} focuses on the
+coverage model  formulation which is used  to schedule the activation  of sensor
+nodes.  Section~\ref{sec:Simulation  Results and Analysis}  presents simulations
+results and discusses the comparison  with other approaches. Finally, concluding
+remarks   are  drawn   and  some   suggestions   given  for   future  works   in
+Section~\ref{sec:Conclusion and Future Works}.
+
+% that show that our protocol outperforms others protocols.
+\section{Related Literature}
+\label{sec:Literature Review}
+
+\noindent  In  this section,  we  summarize  some  related works  regarding  the
+coverage problem and  distinguish our LiCO protocol from the  works presented in
+the literature.
+
+The most  discussed coverage problems in  literature can be classified  in three
+categories~\cite{li2013survey}   according   to  their   respective   monitoring
+objective.  Hence,  area coverage \cite{Misra}  means that every point  inside a
+fixed area  must be monitored, while  target coverage~\cite{yang2014novel} refer
+to  the objective  of coverage  for a  finite number  of discrete  points called
+targets,  and  barrier coverage~\cite{HeShibo}\cite{kim2013maximum}  focuses  on
+preventing  intruders   from  entering   into  the   region  of   interest.   In
+\cite{Deng2012}  authors  transform the  area  coverage  problem to  the  target
+coverage one taking into account the  intersection points among disks of sensors
+nodes    or   between    disk   of    sensor   nodes    and   boundaries.     In
+\cite{Huang:2003:CPW:941350.941367}  authors prove  that  if  the perimeters  of
+sensors are sufficiently  covered it will be  the case for the  whole area. They
+provide an algorithm in $O(nd~log~d)$  time to compute the perimeter-coverage of
+each  sensor,  where  $d$  denotes  the  maximum  number  of  sensors  that  are
+neighboring  to  a  sensor and  $n$  is  the  total  number of  sensors  in  the
+network. {\it In LiCO protocol, instead  of determining the level of coverage of
+  a set  of discrete  points, our  optimization model is  based on  checking the
+  perimeter-coverage of each sensor to activate a minimal number of sensors.}
+
+The major  approach to extend network  lifetime while preserving coverage  is to
+divide/organize the  sensors into a suitable  number of set covers  (disjoint or
+non-disjoint), where  each set completely  covers a  region of interest,  and to
+activate these set  covers successively. The network activity can  be planned in
+advance and scheduled  for the entire network lifetime or  organized in periods,
+and the set  of active sensor nodes  is decided at the beginning  of each period
+\cite{ling2009energy}.  Active node selection is determined based on the problem
+requirements (e.g.   area monitoring,  connectivity, or power  efficiency).  For
+instance, Jaggi {\em et al.}~\cite{jaggi2006}  address the problem of maximizing
+the lifetime  by dividing sensors  into the  maximum number of  disjoint subsets
+such  that each  subset  can ensure  both coverage  and  connectivity. A  greedy
+algorithm  is applied  once to  solve  this problem  and the  computed sets  are
+activated  in   succession  to  achieve   the  desired  network   lifetime.   Vu
+\cite{chin2007},  Padmatvathy  {\em   et  al.}~\cite{pc10},  propose  algorithms
+working in a periodic fashion where a  cover set is computed at the beginning of
+each period.   {\it Motivated by  these works,  LiCO protocol works  in periods,
+  where each  period contains a  preliminary phase for information  exchange and
+  decisions, followed by a sensing phase where one cover set is in charge of the
+  sensing task.}
+
+Various centralized  and distributed approaches, or  even a mixing of  these two
+concepts, have  been proposed  to extend the  network lifetime.   In distributed
+algorithms~\cite{yangnovel,ChinhVu,qu2013distributed} each sensor decides of its
+own activity scheduling  after an information exchange with  its neighbors.  The
+main interest of a such approach is  to avoid long range communications and thus
+to reduce the energy dedicated to the communications.  Unfortunately, since each
+node has only information on its  immediate neighbors (usually the one-hop ones)
+it may take a bad decision leading to a global suboptimal solution.  Conversely,
+centralized
+algorithms~\cite{cardei2005improving,zorbas2010solving,pujari2011high}    always
+provide nearly  or close to  optimal solution since  the algorithm has  a global
+view of the whole network. The disadvantage of a centralized method is obviously
+its high cost  in communications needed to  transmit to a single  node, the base
+station which will globally schedule nodes'  activities, data from all the other
+sensor nodes in  the area.  The price  in communications can be  very huge since
+long range communications will be needed. In fact the larger the WNS, the higher
+the  communication and  thus energy  cost.   {\it In  order to  be suitable  for
+  large-scale networks,  in the LiCO  protocol the  area of interest  is divided
+  into several smaller subregions, and in each  one, a node called the leader is
+  in charge  for selecting the active  sensors for the current  period. Thus our
+  protocol  is  scalable  and  a  globally distributed  method,  whereas  it  is
+  centralized in each subregion.}
+
+Various  coverage scheduling  algorithms have  been developed  this last  years.
+Many of  them, dealing with  the maximization of the  number of cover  sets, are
+heuristics.   These  heuristics involve  the  construction  of  a cover  set  by
+including in priority the sensor nodes  which cover critical targets, that is to
+say   targets   that  are   covered   by   the   smallest  number   of   sensors
+\cite{berman04,zorbas2010solving}.  Other  approaches are based  on mathematical
+programming formulations~\cite{cardei2005energy,5714480,pujari2011high,Yang2014}
+and dedicated techniques (solving with a branch-and-bound algorithm available in
+optimization  solver).  The  problem is  formulated as  an optimization  problem
+(maximization of the lifetime or number of cover sets) under target coverage and
+energy  constraints.   Column  generation   techniques,  well-known  and  widely
+practiced techniques for  solving linear programs with too  many variables, have
+also                                                                        been
+used~\cite{castano2013column,rossi2012exact,deschinkel2012column}. {\it  In LiCO
+  protocol, each  leader, in charge  of a  subregion, solves an  integer program
+  which has a twofold objective: minimize the overcoverage and the undercoverage
+  of the perimeter of each sensor.}
+
+%\noindent Recently, the coverage problem has been received a high attention, which concentrates on how the physical space could be well monitored  after the deployment. Coverage is one of the Quality of Service (QoS) parameters in WSNs, which is highly concerned with power depletion~\cite{zhu2012survey}. Most of the works about the coverage protocols have been suggested in the literature focused on three types of the coverage in WSNs~\cite{mulligan2010coverage}: the first, area coverage means that each point in the area of interest within the sensing range of at least one sensor node; the second, target coverage in which a fixed set of targets need to be monitored; the third, barrier coverage refers to detect the intruders crossing a boundary of WSN. The work in this paper emphasized on the area coverage, so,  some area coverage protocols have been reviewed in this section, and the shortcomings of reviewed approaches are being summarized.
+
+%The problem of k-coverage in WSNs was addressed~\cite{ammari2012centralized}. It mathematically formulated and the spacial sensor density for full k-coverage determined, where the relation between the communication range and the sensing range constructed by this work to retain the k-coverage and connectivity in WSN. After that, a four configuration protocols have proposed for treating the k-coverage in WSNs.  
+
+%In~\cite{rebai2014branch}, the problem of full grid coverage is formulated using two integer linear programming models: the first, a model that takes into account only the overall coverage constraint; the second, both the connectivity and the full grid coverage constraints have taken into consideration. This work did not take into account the energy constraint.
+
+%Li et al.~\cite{li2011transforming} presented a framework to convert any complete coverage problem to a partial coverage one with any coverage ratio by means of executing a complete coverage algorithm to find a full coverage sets with virtual radii and transforming the coverage sets to a partial coverage sets by adjusting sensing radii.  The properties of the original algorithms can be maintained by this framework and the transformation process has a low execution time.
+
+%The authors in~\cite{liu2014generalized} explained that in some applications of WSNs such as structural health monitoring (SHM) and volcano monitoring, the traditional coverage model which is a geographic area defined for individual sensors is not always valid. For this reason, they define a generalized coverage model, which is not need to have the coverage area of individual nodes, but only based on a function to determine whether a set of
+%sensor nodes is capable of satisfy the requested monitoring task for a certain area. They have proposed two approaches to divide the deployed nodes into suitable cover sets, which can be used to prolong the network lifetime. 
+%The work in~\cite{wang2010preserving} addressed the target area coverage problem by proposing a geometric-based activity scheduling scheme, named GAS, to fully cover the target area in WSNs. The authors deals with small area (target area coverage), which can be monitored by a single sensor instead of area coverage, which focuses on a large area that should be monitored by many sensors cooperatively. They explained that GAS is capable to monitor the target area by using a few sensors as possible and it can produce as many cover sets as possible.
+
+%Cho et al.~\cite{cho2007distributed} proposed a distributed node scheduling protocol, which can retain sensing coverage needed by applications
+%and increase network lifetime via putting in sleep mode some redundant nodes. In this work, the effective sensing area (ESA) concept of a sensor node is used, which refers to the sensing area that is not overlapping with another sensor's sensing area. A sensor node and by compute it's ESA can be determine whether it will be active or sleep. The suggested  work permits to sensor nodes to be in sleep mode opportunistically whilst fulfill the needed sensing coverage.
+%In~\cite{quang2008algorithm}, the authors defined a maximum sensing coverage region problem (MSCR) in WSNs and then proposed an algorithm to solve it. The
+%maximum observed area fully covered by a minimum active sensors. In this work, the major property is to getting rid from the redundant sensors  in high-density WSNs and putting them in sleep mode, and choosing a smaller number of active sensors so as to be sure  that the full area is k-covered, and all events appeared in that area can be precisely and timely detected. This algorithm minimized the total energy consumption and increased the lifetime.
+
+%A novel method to divide the sensors in the WSN, called node coverage grouping (NCG) suggested~\cite{lin2010partitioning}. The sensors in the connectivity group are within sensing range of each other, and the data collected by them in the same group are supposed to be similar. They are proved that dividing n sensors via NCG into connectivity groups is a NP-hard problem. So, a heuristic algorithm of NCG with time complexity of $O(n^3)$ is proposed.
+%For some applications, such as monitoring an ecosystem with extremely diversified environment, It might be premature assumption that sensors near to each other sense similar data.
+
+%In~\cite{zaidi2009minimum}, the problem of minimum cost coverage in which full coverage is performed by using the minimum number of sensors for an arbitrary geometric shape region is addressed.  a geometric solution to the minimum cost coverage problem under a deterministic deployment is proposed. The probabilistic coverage solution which provides a relationship between the probability of coverage and the number of randomly deployed sensors in an arbitrarily-shaped region is suggested. The authors are clarified that with a random deployment about seven times more nodes are required to supply full coverage.
+
+%A graph theoretical framework for connectivity-based coverage with configurable coverage granularity was proposed~\cite{dong2012distributed}. A new coverage criterion and scheduling approach is proposed based on cycle partition. This method is capable of build a sparse coverage set in distributed way by means of only connectivity information. This work considers only the communication range of the sensor is smaller two times the sensing range of sensor.
+
+%Liu et al.~\cite{liu2010energy} formulated maximum disjoint sets problem for retaining coverage and connectivity in WSN. Two algorithms are proposed for solving this problem, heuristic algorithm and network flow algorithm. This work did not take into account the sensor node failure, which is an unpredictable event because the two solutions are full centralized algorithms.
+
+%The work that presented in~\cite{aslanyan2013optimal} solved the coverage and connectivity problem in sensor networks in
+%an integrated way. The network lifetime is divided in a fixed number of rounds. A coverage bitmap of sensors of the domain has been generated in each round and based on this bitmap,  it has been decided which sensors
+%stay active or turn it to sleep. They checked the connection of the graph via laplacian of adjancy graph of active sensors in each round.  the generation of coverage bitmap by using  Minkowski technique, the network is able to providing the desired ratio of coverage. They have been defined the  connected coverage problem as an optimization problem and a centralized genetic algorithm is used to find the solution.
+
+%Several algorithms to retain the coverage and maximize the network lifetime were proposed in~\cite{cardei2006energy,wang2011coverage}. 
+
+%\uppercase{\textbf{shortcomings}}. In spite of many energy-efficient protocols for maintaining the coverage and improving the network lifetime in WSNs were proposed, non of them ensure the coverage for the sensing field with optimal minimum number of active sensor nodes, and for a long time as possible. For example, in a full centralized algorithms, an optimal solutions can be given by using optimization approaches, but in the same time, a high energy is consumed for the execution time of the algorithm and the communications among the sensors in the sensing field, so, the  full centralized approaches are not good candidate to use it especially in large WSNs. Whilst, a full distributed algorithms can not give optimal solutions because this algorithms use only local information of the neighboring sensors, but in the same time, the energy consumption during the communications and executing the algorithm is highly lower. Whatever the case, this would result in a shorter lifetime coverage in WSNs.
+
+%\uppercase{\textbf{Our Protocol}}. In this paper, a Lifetime Coverage Optimization Protocol, called (LiCO) in WSNs is suggested. The sensing field is divided into smaller subregions by means of divide-and-conquer method, and a LiCO protocol is distributed in each sensor in the subregion. The network lifetime in each subregion is divided into periods, each period includes 4 stages: Information Exchange, Leader election, decision based activity scheduling optimization, and sensing. The leaders are elected in an independent, asynchronous, and distributed way in all the subregions of the WSN. After that, energy-efficient activity scheduling mechanism based new optimization model is performed by each leader in the subregions. This optimization model is based on the perimeter coverage model in order to producing the optimal cover set of active sensors, which are taken the responsibility of sensing during the current period. LiCO protocol merges between two energy efficient mechanisms, which are used the main advantages of the centralized and distributed approaches and avoids the most of their disadvantages.
+
+\section{ The LiCO Protocol Description}
+\label{sec:The LiCO Protocol Description}
+
+\noindent  In  this  section,  we  describe in  details  our  Lifetime  Coverage
+Optimization protocol.  First we present the  assumptions we made and the models
+we considered (in particular the perimeter coverage one), second we describe the
+background idea of our protocol, and third  we give the outline of the algorithm
+executed by each node.
+
+% It is based on two efficient-energy mechanisms: the first, is partitioning the sensing field into smaller subregions, and one leader is elected for each subregion;  the second, a sensor activity scheduling based new optimization model so as to produce the optimal cover set of active sensors for the sensing stage during the period.  Obviously, these two mechanisms can be contribute in extend the network lifetime coverage efficiently. 
+%Before proceeding in the presentation of the main ideas of the protocol, we will briefly describe the perimeter coverage model and give some necessary assumptions and definitions.
+
+\subsection{Assumptions and Models}
+\label{CI}
+
+\noindent A WSN consisting of $J$ stationary sensor nodes randomly and uniformly
+distributed in  a bounded sensor field  is considered. The wireless  sensors are
+deployed in high density  to ensure initially a high coverage  ratio of the area
+of interest.  We  assume that all the  sensor nodes are homogeneous  in terms of
+communication,  sensing,  and  processing capabilities  and  heterogeneous  from
+energy provision  point of  view.  The  location information  is available  to a
+sensor node either  through hardware such as embedded GPS  or location discovery
+algorithms.   We  assume  that  each  sensor  node  can  directly  transmit  its
+measurements to  a mobile  sink node.  For  example, a sink  can be  an unmanned
+aerial  vehicle  (UAV)  flying  regularly  over  the  sensor  field  to  collect
+measurements from sensor nodes. A mobile sink node collects the measurements and
+transmits them to the base station.   We consider a Boolean disk coverage model,
+which is the most  widely used sensor coverage model in  the literature, and all
+sensor nodes  have a constant sensing  range $R_s$.  Thus, all  the space points
+within a disk centered at a sensor with  a radius equal to the sensing range are
+said to be covered  by this sensor. We also assume  that the communication range
+$R_c$ satisfies $R_c  \geq 2 \cdot R_s$. In fact,  Zhang and Zhou~\cite{Zhang05}
+proved  that if  the  transmission  range fulfills  the  previous hypothesis,  a
+complete coverage of a convex area implies connectivity among active nodes.
+
+\indent  LiCO protocol  uses the  same perimeter-coverage  model than  Huang and
+Tseng in~\cite{huang2005coverage}. It  can be expressed as follows:  a sensor is
+said to be perimeter  covered if all the points on its  perimeter are covered by
+at least  one sensor  other than  itself.  They  proved that  a network  area is
+$k$-covered if and only if each sensor in the network is $k$-perimeter-covered (perimeter covered by at least $k$ sensors).
+%According to this model, we named the intersections among the sensor nodes in the sensing field as intersection points. Instead of working with the coverage area, we consider for each sensor a set of intersection points which are determined by using perimeter-coverage model. 
+Figure~\ref{pcm2sensors}(a)  shows  the coverage  of  sensor  node~$0$. On  this
+figure, we can  see that sensor~$0$ has  nine neighbors and we  have reported on
+its  perimeter (the  perimeter  of the  disk  covered by  the  sensor) for  each
+neighbor  the  two  points  resulting  from  intersection  of  the  two  sensing
+areas. These points are denoted for  neighbor~$i$ by $iL$ and $iR$, respectively
+for  left and  right from  neighbor  point of  view.  The  resulting couples  of
+intersection points subdivide  the perimeter of sensor~$0$  into portions called
+arcs.
+
+\begin{figure}[ht!]
+  \centering
+  \begin{tabular}{@{}cr@{}}
+    \includegraphics[width=75mm]{pcm.jpg} & \raisebox{3.25cm}{(a)}
+    \\ \includegraphics[width=75mm]{twosensors.jpg} & \raisebox{2.75cm}{(b)}
+  \end{tabular}
+  \caption{(a) Perimeter  coverage of sensor node  0 and (b) finding  the arc of
+    $u$'s perimeter covered by $v$.}
+  \label{pcm2sensors}
+\end{figure} 
+
+Figure~\ref{pcm2sensors}(b) describes the geometric information used to find the
+locations of the  left and right points of  an arc on the perimeter  of a sensor
+node~$u$ covered by a sensor node~$v$. Node~$v$ is supposed to be located on the
+west  side of  sensor~$u$,  with  the following  respective  coordinates in  the
+sensing area~: $(v_x,v_y)$ and $(u_x,u_y)$. From the previous coordinates we can
+compute the euclidean distance between nodes~$u$ and $v$: $Dist(u,v)=\sqrt{\vert
+  u_x  - v_x  \vert^2 +  \vert u_y-v_y  \vert^2}$, while  the angle~$\alpha$  is
+obtained  through the  formula  $\alpha  = arccos  \left(\dfrac{Dist(u,v)}{2R_s}
+\right)$.   So, the  arc on  the perimeter  of node~$u$  defined by  the angular
+interval $[\pi - \alpha,\pi + \alpha]$ is said to be perimeter-covered by sensor
+node $v$.
+
+Every couple of intersection points is placed on the angular interval $[0,2\pi]$
+in  a  counterclockwise manner,  leading  to  a  partitioning of  the  interval.
+Figure~\ref{pcm2sensors}(a)  illustrates  the arcs  for  the  nine neighbors  of
+sensor $0$ and  figure~\ref{expcm} gives the position of  the corresponding arcs
+in  the interval  $[0,2\pi]$. More  precisely, we  can see  that the  points are
+ordered according  to the  measures of  the angles  defined by  their respective
+positions. The intersection points are  then visited one after another, starting
+from  first  intersection point  after  point~zero,  and  the maximum  level  of
+coverage is determined  for each interval defined by two  successive points. The
+maximum  level of  coverage is  equal to  the number  of overlapping  arcs.  For
+example, 
+between~$5L$  and~$6L$ the maximum  level of  coverage is equal  to $3$
+(the value is highlighted in yellow  at the bottom of figure~\ref{expcm}), which
+means that at most 2~neighbors can cover  the perimeter in addition to node $0$.
+Table~\ref{my-label} summarizes for each coverage  interval the maximum level of
+coverage and  the sensor  nodes covering the  perimeter.  The  example discussed
+above is thus given by the sixth line of the table.
+
+%The points reported on the line segment $[0,2\pi]$ separates it in intervals as shown in figure~\ref{expcm}. For example, for each neighboring sensor of sensor 0, place the points  $\alpha^ 1_L$, $\alpha^ 1_R$, $\alpha^ 2_L$, $\alpha^ 2_R$, $\alpha^ 3_L$, $\alpha^ 3_R$, $\alpha^ 4_L$, $\alpha^ 4_R$, $\alpha^ 5_L$, $\alpha^ 5_R$, $\alpha^ 6_L$, $\alpha^ 6_R$, $\alpha^ 7_L$, $\alpha^ 7_R$, $\alpha^ 8_L$, $\alpha^ 8_R$, $\alpha^ 9_L$, and $\alpha^ 9_R$; on the line segment $[0,2\pi]$, and then sort all these points in an ascending order into a list.  Traverse the line segment $[0,2\pi]$ by visiting each point in the sorted list from left to right and determine the coverage level of each interval of the sensor 0 (see figure \ref{expcm}). For each interval, we sum up the number of parts of segments, and we deduce a level of coverage for each interval. For instance, the interval delimited by the points $5L$ and $6L$ contains three parts of segments. That means that this part of the perimeter of the sensor $0$ may be covered by three sensors, sensor $0$ itself and sensors $2$ and $5$. The level of coverage of this interval may reach $3$ if all previously mentioned sensors are active. Let say that sensors $0$, $2$ and $5$ are involved in the coverage of this interval. Table~\ref{my-label} summarizes the level of coverage for each interval and the sensors involved in for sensor node 0 in figure~\ref{pcm2sensors}(a). 
+% to determine the level of the perimeter coverage for each left and right point of a segment.
+
+\begin{figure*}[ht!]
+\centering
+\includegraphics[width=137.5mm]{expcm.pdf}  
+\caption{Maximum coverage levels for perimeter of sensor node $0$.}
+\label{expcm}
+\end{figure*} 
+
+%For example, consider the sensor node $0$ in figure~\ref{pcmfig}, which has 9 neighbors. Figure~\ref{expcm} shows the perimeter coverage level for all left and right points of a segment that covered by a neighboring sensor nodes. Based on the figure~\ref{expcm}, the set of sensors for each left and right point of the segments illustrated in figure~\ref{ex2pcm} for the sensor node 0.
+
+\iffalse
+
+\begin{figure}[ht!]
+\centering
+\includegraphics[width=90mm]{ex2pcm.jpg}  
+\caption{Coverage intervals and contributing sensors for sensor node 0.}
+\label{ex2pcm}
+\end{figure} 
+
+\fi
+
+ \begin{table}[h]
+ \caption{Coverage intervals and contributing sensors for sensor node 0.}
+\begin{tabular}{|c|c|c|c|c|c|c|c|c|}
+\hline
+\begin{tabular}[c]{@{}c@{}}Left \\ point \\ angle~$\alpha$ \end{tabular} & \begin{tabular}[c]{@{}c@{}}Interval \\ left \\ point\end{tabular} & \begin{tabular}[c]{@{}c@{}}Interval \\ right \\ point\end{tabular} & \begin{tabular}[c]{@{}c@{}}Maximum \\ coverage\\  level\end{tabular} & \multicolumn{5}{c|}{\begin{tabular}[c]{@{}c@{}}Set of sensors\\ involved \\ in coverage interval\end{tabular}} \\ \hline
+0.0291    & 1L                                                                        & 2L                                                        & 4                                                                     & 0                     & 1                     & 3                    & 4                    &                      \\ \hline
+0.104     & 2L                                                                        & 3R                                                        & 5                                                                     & 0                     & 1                     & 3                    & 4                    & 2                    \\ \hline
+0.3168    & 3R                                                                        & 4R                                                        & 4                                                                     & 0                     & 1                     & 4                    & 2                    &                      \\ \hline
+0.6752    & 4R                                                                        & 1R                                                        & 3                                                                     & 0                     & 1                     & 2                    &                      &                      \\ \hline
+1.8127    & 1R                                                                        & 5L                                                        & 2                                                                     & 0                     & 2                     &                      &                      &                      \\ \hline
+1.9228    & 5L                                                                        & 6L                                                        & 3                                                                     & 0                     & 2                     & 5                    &                      &                      \\ \hline
+2.3959    & 6L                                                                        & 2R                                                        & 4                                                                     & 0                     & 2                     & 5                    & 6                    &                      \\ \hline
+2.4258    & 2R                                                                        & 7L                                                        & 3                                                                     & 0                     & 5                     & 6                    &                      &                      \\ \hline
+2.7868    & 7L                                                                        & 8L                                                        & 4                                                                     & 0                     & 5                     & 6                    & 7                    &                      \\ \hline
+2.8358    & 8L                                                                        & 5R                                                        & 5                                                                     & 0                     & 5                     & 6                    & 7                    & 8                    \\ \hline
+2.9184    & 5R                                                                        & 7R                                                        & 4                                                                     & 0                     & 6                     & 7                    & 8                    &                      \\ \hline
+3.3301    & 7R                                                                        & 9R                                                        & 3                                                                     & 0                     & 6                     & 8                    &                      &                      \\ \hline
+3.9464    & 9R                                                                        & 6R                                                        & 4                                                                     & 0                     & 6                     & 8                    & 9                    &                      \\ \hline
+4.767     & 6R                                                                        & 3L                                                        & 3                                                                     & 0                     & 8                     & 9                    &                      &                      \\ \hline
+4.8425    & 3L                                                                        & 8R                                                        & 4                                                                     & 0                     & 3                     & 8                    & 9                    &                      \\ \hline
+4.9072    & 8R                                                                        & 4L                                                        & 3                                                                     & 0                     & 3                     & 9                    &                      &                      \\ \hline
+5.3804    & 4L                                                                        & 9R                                                        & 4                                                                     & 0                     & 3                     & 4                    & 9                    &                      \\ \hline
+5.9157    & 9R                                                                        & 1L                                                        & 3                                                                     & 0                     & 3                     & 4                    &                      &                      \\ \hline
+\end{tabular}
+
+\label{my-label}
+\end{table}
+
+
+%The optimization algorithm that used by LiCO protocol based on the perimeter coverage levels of the left and right points of the segments and worked to minimize the number of sensor nodes for each left or right point of the segments within each sensor node. The algorithm minimize the perimeter coverage level of the left and right points of the segments, while, it assures that every perimeter coverage level of the left and right points of the segments greater than or equal to 1.
+
+In LiCO  protocol, scheduling of sensor  nodes' activities is formulated  with an
+integer program  based on  coverage intervals. The  formulation of  the coverage
+optimization problem is  detailed in~section~\ref{cp}.  Note that  when a sensor
+node  has a  part of  its sensing  range outside  the WSN  sensing field,  as in
+figure~\ref{ex4pcm}, the maximum coverage level for  this arc is set to $\infty$
+and  the  corresponding  interval  will  not   be  taken  into  account  by  the
+optimization algorithm.
+\begin{figure}[t!]
+\centering
+\includegraphics[width=62.5mm]{ex4pcm.jpg}  
+\caption{Sensing range outside the WSN's area of interest.}
+\label{ex4pcm}
+\end{figure} 
+%Figure~\ref{ex5pcm} gives an example to compute the perimeter coverage levels for the left and right points of the segments for a sensor node $0$, which has a part of its sensing range exceeding the border of the sensing field of WSN, and it has a six neighbors. In figure~\ref{ex5pcm}, the sensor node $0$ has two segments outside the border of the network sensing field, so the left and right points of the two segments called $-1L$, $-1R$, $-2L$, and $-2R$.
+%\begin{figure}[ht!]
+%\centering
+%\includegraphics[width=75mm]{ex5pcm.jpg}  
+%\caption{Coverage intervals and contributing sensors for sensor node 0 having a  part of its sensing range outside the border.}
+%\label{ex5pcm}
+%\end{figure} 
+
+\subsection{The Main Idea}
+
+\noindent The  WSN area of  interest is, in a  first step, divided  into regular
+homogeneous subregions  using a divide-and-conquer  algorithm. In a  second step
+our  protocol  will  be  executed  in   a  distributed  way  in  each  subregion
+simultaneously to schedule nodes' activities for one sensing period.
+
+As  shown in  figure~\ref{fig2}, node  activity  scheduling is  produced by  our
+protocol in a periodic manner. Each period is divided into 4 stages: Information
+(INFO)  Exchange,  Leader Election,  Decision  (the  result of  an  optimization
+problem),  and  Sensing.   For  each  period there  is  exactly  one  set  cover
+responsible for  the sensing task.  Protocols  based on a periodic  scheme, like
+LiCO, are more  robust against an unexpected  node failure. On the  one hand, if
+node failure is discovered before  taking the decision, the corresponding sensor
+node will  not be considered  by the optimization  algorithm, and, on  the other
+hand, if the sensor failure happens after  the decision, the sensing task of the
+network will be temporarily affected: only  during the period of sensing until a
+new period starts, since a new set cover will take charge of the sensing task in
+the next period. The energy consumption and some other constraints can easily be
+taken  into  account since  the  sensors  can  update  and then  exchange  their
+information (including their  residual energy) at the beginning  of each period.
+However, the pre-sensing  phases (INFO Exchange, Leader  Election, and Decision)
+are energy consuming, even for nodes that will not join the set cover to monitor
+the area.
+
+\begin{figure}[t!]
+\centering
+\includegraphics[width=80mm]{Model.pdf}  
+\caption{LiCO protocol.}
+\label{fig2}
+\end{figure} 
+
+We define two types of packets to be used by LiCO protocol:
+%\begin{enumerate}[(a)]
+\begin{itemize} 
+\item INFO  packet: sent  by each  sensor node to  all the  nodes inside  a same
+  subregion for information exchange.
+\item ActiveSleep packet: sent  by the leader to all the  nodes in its subregion
+  to transmit to  them their respective status (stay Active  or go Sleep) during
+  sensing phase.
+\end{itemize}
+%\end{enumerate}
+
+Five status are possible for a sensor node in the network:
+%\begin{enumerate}[(a)] 
+\begin{itemize} 
+\item LISTENING: waits for a decision (to be active or not);
+\item COMPUTATION: executes the optimization algorithm as leader to
+  determine the activities scheduling;
+\item ACTIVE: node is sensing;
+\item SLEEP: node is turned off;
+\item COMMUNICATION: transmits or receives packets.
+\end{itemize}
+%\end{enumerate}
+%Below, we describe each phase in more details.
+
+\subsection{LiCO Protocol Algorithm}
+
+\noindent The  pseudocode implementing the  protocol on  a node is  given below.
+More  precisely,  Algorithm~\ref{alg:LiCO}  gives  a brief  description  of  the
+protocol applied by a sensor node $s_k$ where $k$ is the node index in the WSN.
+
+\begin{algorithm}[h!]                
+ % \KwIn{all the parameters related to information exchange}
+%  \KwOut{$winer-node$ (: the id of the winner sensor node, which is the leader of current round)}
+  \BlankLine
+  %\emph{Initialize the sensor node and determine it's position and subregion} \; 
+  
+  \If{ $RE_k \geq E_{th}$ }{
+      \emph{$s_k.status$ = COMMUNICATION}\;
+      \emph{Send $INFO()$ packet to other nodes in subregion}\;
+      \emph{Wait $INFO()$ packet from other nodes in subregion}\; 
+      \emph{Update K.CurrentSize}\;
+      \emph{LeaderID = Leader election}\;
+      \If{$ s_k.ID = LeaderID $}{
+         \emph{$s_k.status$ = COMPUTATION}\;
+         
+      \If{$ s_k.ID $ is Not previously selected as a Leader }{
+          \emph{ Execute the perimeter coverage model}\;
+         % \emph{ Determine the segment points using perimeter coverage model}\;
+      }
+      
+      \If{$ (s_k.ID $ is the same Previous Leader) And (K.CurrentSize = K.PreviousSize)}{
+      
+        \emph{ Use the same previous cover set for current sensing stage}\;
+      }
+      \Else{
+            \emph{Update $a^j_{ik}$; prepare data for IP~Algorithm}\;
+            \emph{$\left\{\left(X_{1},\dots,X_{l},\dots,X_{K}\right)\right\}$ = Execute Integer Program Algorithm($K$)}\;
+            \emph{K.PreviousSize = K.CurrentSize}\;
+           }
+      
+        \emph{$s_k.status$ = COMMUNICATION}\;
+        \emph{Send $ActiveSleep()$ to each node $l$ in subregion} \;
+        \emph{Update $RE_k $}\;
+      }          
+      \Else{
+        \emph{$s_k.status$ = LISTENING}\;
+        \emph{Wait $ActiveSleep()$ packet from the Leader}\;
+        \emph{Update $RE_k $}\;
+      }  
+  }
+  \Else { Exclude $s_k$ from entering in the current sensing stage}
+\caption{LiCO($s_k$)}
+\label{alg:LiCO}
+\end{algorithm}
+
+In this  algorithm, K.CurrentSize and  K.PreviousSize refer to the  current size
+and the  previous size of  the subnetwork  in the subregion  respectively.  That
+means the number  of sensor nodes which are still  alive.  Initially, the sensor
+node checks its remaining energy $RE_k$,  which must be greater than a threshold
+$E_{th}$  in order  to  participate in  the current  period.   Each sensor  node
+determines its  position and its subregion  using an embedded GPS  or a location
+discovery algorithm. After  that, all the sensors  collect position coordinates,
+remaining energy, sensor node ID, and the number of their one-hop live neighbors
+during the information  exchange. The sensors inside a same  region cooperate to
+elect a  leader. The selection  criteria for the  leader, in order  of priority,
+are: larger  number of neighbors, larger  remaining energy, and then  in case of
+equality,  larger  index.   Once  chosen, the  leader  collects  information  to
+formulate and  solve the integer  program which allows  to construct the  set of
+active sensors in the sensing stage.
+
+%After the cooperation among the sensor nodes in the same subregion, the leader will be elected in distributed way, where each sensor node and based on it's information decide who is the leader. The selection criteria for the leader in order  of priority  are: larger number of neighbors,  larger remaining  energy, and  then in  case of equality, larger index. Thereafter,  if the sensor node is leader, it will execute the perimeter-coverage model for each sensor in the subregion in order to determine the segment points which would be used in the next stage by the optimization algorithm of the LiCO protocol. Every sensor node is selected as a leader, it is executed the perimeter coverage model only one time during it's life in the network.
+
+% The leader has the responsibility of applying the integer program algorithm (see section~\ref{cp}), which provides a set of sensors planned to be active in the sensing stage.  As leader, it will send an Active-Sleep packet to each sensor in the same subregion to inform it if it has to be active or not. On the contrary, if the sensor is not the leader, it will wait for the Active-Sleep packet to know its state for the sensing stage.
+
+\section{Lifetime Coverage problem formulation}
+\label{cp}
+
+\noindent In this  section, the coverage model is  mathematically formulated. We
+start  with a  description of  the notations  that will  be used  throughout the
+section.
+
+First, we have the following sets:
+\begin{itemize}
+\item $S$ represents the set of WSN sensor nodes;
+\item $A \subseteq S $ is the subset of alive sensors;
+\item  $I_j$  designates  the  set  of  coverage  intervals  (CI)  obtained  for
+  sensor~$j$.
+\end{itemize}
+$I_j$ refers to the set of  coverage intervals which have been defined according
+to the  method introduced in  subsection~\ref{CI}. For a coverage  interval $i$,
+let $a^j_{ik}$ denote  the indicator function of whether  sensor~$k$ is involved
+in coverage interval~$i$ of sensor~$j$, that is:
+\begin{equation}
+a^j_{ik} = \left \{ 
+\begin{array}{lll}
+  1 & \mbox{if sensor $k$ is involved in the } \\
+       &       \mbox{coverage interval $i$ of sensor $j$}, \\
+  0 & \mbox{otherwise.}\\
+\end{array} \right.
+%\label{eq12} 
+\notag
+\end{equation}
+Note that $a^k_{ik}=1$ by definition of the interval.
+%, where the objective is to find the maximum number of non-disjoint sets of sensor nodes such that each set cover can assure the coverage for the whole region so as to extend the network lifetime in WSN. Our model uses the PCL~\cite{huang2005coverage} in order to optimize the lifetime coverage in each subregion.
+%We defined some parameters, which are related to our optimization model. In our model,  we  consider binary variables $X_{k}$, which determine the activation of sensor $k$ in the sensing round $k$. .
+Second,  we define  several binary  and integer  variables.  Hence,  each binary
+variable $X_{k}$  determines the activation of  sensor $k$ in the  sensing phase
+($X_k=1$ if  the sensor $k$  is active or 0  otherwise).  $M^j_i$ is  an integer
+variable  which  measures  the  undercoverage  for  the  coverage  interval  $i$
+corresponding to  sensor~$j$. In  the same  way, the  overcoverage for  the same
+coverage interval is given by the variable $V^j_i$.
+
+If we decide to sustain a level of coverage equal to $l$ all along the perimeter
+of sensor  $j$, we have  to ensure  that at least  $l$ sensors involved  in each
+coverage  interval $i  \in I_j$  of  sensor $j$  are active.   According to  the
+previous notations, the number of active sensors in the coverage interval $i$ of
+sensor $j$  is given by  $\sum_{k \in A} a^j_{ik}  X_k$.  To extend  the network
+lifetime,  the objective  is to  activate a  minimal number  of sensors  in each
+period to  ensure the  desired coverage  level. As the  number of  alive sensors
+decreases, it becomes impossible to reach  the desired level of coverage for all
+coverage intervals. Therefore we use variables  $M^j_i$ and $V^j_i$ as a measure
+of the  deviation between  the desired  number of active  sensors in  a coverage
+interval and  the effective  number. And  we try  to minimize  these deviations,
+first to  force the  activation of  a minimal  number of  sensors to  ensure the
+desired coverage level, and if the desired level cannot be completely satisfied,
+to reach a coverage level as close as possible to the desired one.
+
+%A system of linear constraints is imposed to attempt to keep the coverage level in each coverage interval to within specified PCL. Since it is physically impossible to satisfy all constraints simultaneously, each constraint uses a variable to either record when the coverage level is achieved, or to record the deviation from the desired coverage level. These additional variables are embedded into an objective function to be minimized. 
+
+%\noindent In this paper, let us define some parameters, which are used in our protocol.
+%the set of segment points is denoted by $I$, the set of all sensors in the network by $J$, and the set of alive sensors within $J$ by $K$.
+
+
+%\noindent \begin{equation}
+%X_{k} = \left \{ 
+%\begin{array}{l l}
+ % 1& \mbox{if sensor $k$  is active,} \\
+%  0 &  \mbox{otherwise.}\\
+%\end{array} \right.
+%\label{eq11} 
+%\notag
+%\end{equation}
+
+%\noindent $M^j_i (undercoverage): $ integer value $\in  \mathbb{N}$ for segment point $i$ of sensor $j$.
+
+%\noindent $V^j_i (overcoverage): $ integer value $\in  \mathbb{N}$ for segment point $i$ of sensor $j$.
+
+Our coverage optimization problem can then be mathematically expressed as follows: 
+%Objective:
+\begin{equation} %\label{eq:ip2r}
+\left \{
+\begin{array}{ll}
+\min \sum_{j \in S} \sum_{i \in I_j} (\alpha^j_i ~ M^j_i + \beta^j_i ~ V^j_i )&\\
+\textrm{subject to :}&\\
+\sum_{k \in A} ( a^j_{ik} ~ X_{k}) + M^j_i  \geq l \quad \forall i \in I_j, \forall j \in S\\
+%\label{c1} 
+\sum_{k \in A} ( a^j_{ik} ~ X_{k}) - V^j_i  \leq l \quad \forall i \in I_j, \forall j \in S\\
+% \label{c2}
+% \Theta_{p}\in \mathbb{N}, &\forall p \in P\\
+% U_{p} \in \{0,1\}, &\forall p \in P\\
+X_{k} \in \{0,1\}, \forall k \in A
+\end{array}
+\right.
+\notag
+\end{equation}
+$\alpha^j_i$ and $\beta^j_i$  are nonnegative weights selected  according to the
+relative importance of satisfying the associated level of coverage. For example,
+weights associated with  coverage intervals of a specified part  of a region may
+be  given a  relatively larger  magnitude than  weights associated  with another
+region. This  kind of integer program  is inspired from the  model developed for
+brachytherapy    treatment   planning    for   optimizing    dose   distribution
+\cite{0031-9155-44-1-012}. The integer  program must be solved by  the leader in
+each subregion at the beginning of  each sensing phase, whenever the environment
+has  changed (new  leader,  death of  some  sensors). Note  that  the number  of
+constraints in the model is constant  (constraints of coverage expressed for all
+sensors), whereas the number of variables $X_k$ decreases over periods, since we
+consider only alive  sensors (sensors with enough energy to  be alive during one
+sensing phase) in the model.
+
+\section{Performance Evaluation and Analysis}  
+\label{sec:Simulation Results and Analysis}
+%\noindent \subsection{Simulation Framework}
+
+\subsection{Simulation Settings}
+%\label{sub1}
+
+The WSN  area of interest is  supposed to be divided  into 16~regular subregions
+and we use the same energy consumption than in our previous work~\cite{Idrees2}.
+Table~\ref{table3} gives the chosen parameters settings.
+
+\begin{table}[ht]
+\caption{Relevant parameters for network initialization.}
+% title of Table
+\centering
+% used for centering table
+\begin{tabular}{c|c}
+% centered columns (4 columns)
+\hline
+Parameter & Value  \\ [0.5ex]
+   
+\hline
+% inserts single horizontal line
+Sensing field & $(50 \times 25)~m^2 $   \\
+
+WSN size &  100, 150, 200, 250, and 300~nodes   \\
+%\hline
+Initial energy  & in range 500-700~Joules  \\  
+%\hline
+Sensing period & duration of 60 minutes \\
+$E_{th}$ & 36~Joules\\
+$R_s$ & 5~m   \\     
+%\hline
+$\alpha^j_i$ & 0.6   \\
+% [1ex] adds vertical space
+%\hline
+$\beta^j_i$ & 0.4
+%inserts single line
+\end{tabular}
+\label{table3}
+% is used to refer this table in the text
+\end{table}
+To  obtain  experimental  results  which are  relevant,  simulations  with  five
+different node densities going from  100 to 300~nodes were performed considering
+each time 25~randomly  generated networks. The nodes are deployed  on a field of
+interest of $(50 \times 25)~m^2 $ in such a way that they cover the field with a
+high coverage ratio. Each node has an  initial energy level, in Joules, which is
+randomly drawn in the interval $[500-700]$.   If it's energy provision reaches a
+value below  the threshold $E_{th}=36$~Joules,  the minimum energy needed  for a
+node  to stay  active during  one period,  it will  no more  participate in  the
+coverage task. This value corresponds to the energy needed by the sensing phase,
+obtained by multiplying  the energy consumed in active state  (9.72 mW) with the
+time in  seconds for one  period (3600 seconds), and  adding the energy  for the
+pre-sensing phases.  According  to the interval of initial energy,  a sensor may
+be active during at most 20 periods.
+
+The values  of $\alpha^j_i$ and  $\beta^j_i$ have been  chosen to ensure  a good
+network coverage and a longer WSN lifetime.  We have given a higher priority for
+the  undercoverage  (by  setting  the  $\alpha^j_i$ with  a  larger  value  than
+$\beta^j_i$)  so as  to prevent  the non-coverage  for the  interval~$i$ of  the
+sensor~$j$.  On the  other hand,  we have  given a  little bit  lower value  for
+$\beta^j_i$ so as to minimize the number of active sensor nodes which contribute
+in covering the interval.
+
+We introduce the following performance metrics to evaluate the efficiency of our
+approach.
+
+%\begin{enumerate}[i)]
+\begin{itemize}
+\item {\bf Network Lifetime}: the lifetime  is defined as the time elapsed until
+  the  coverage  ratio  falls  below a  fixed  threshold.   $Lifetime_{95}$  and
+  $Lifetime_{50}$  denote, respectively,  the  amount of  time  during which  is
+  guaranteed a  level of coverage  greater than $95\%$  and $50\%$. The  WSN can
+  fulfill the expected  monitoring task until all its nodes  have depleted their
+  energy or if the network is no  more connected. This last condition is crucial
+  because without  network connectivity a  sensor may not be  able to send  to a
+  base station an event it has sensed.
+\item {\bf  Coverage Ratio (CR)} : it  measures how  well the  WSN is  able to
+  observe the area of interest. In our  case, we discretized the sensor field as
+  a regular grid, which yields the following equation:
+  \begin{equation*}
+    \scriptsize
+    \mbox{CR}(\%) = \frac{\mbox{$n$}}{\mbox{$N$}} \times 100
+  \end{equation*}
+  where $n$  is the  number of covered  grid points by  active sensors  of every
+  subregions during  the current sensing phase  and $N$ is total  number of grid
+  points in  the sensing  field.  In  our simulations  we have  set a  layout of
+  $N~=~51~\times~26~=~1326$~grid points.
+\item {\bf Active Sensors Ratio (ASR)}: a  major objective of our protocol is to
+  activate nodes  as few  as possible,  in order  to minimize  the communication
+  overhead and maximize the WSN lifetime. The active sensors ratio is defined as
+  follows:
+  \begin{equation*}
+    \scriptsize
+    \mbox{ASR}(\%) =  \frac{\sum\limits_{r=1}^R \mbox{$|A_r^p|$}}{\mbox{$|S|$}} \times 100
+  \end{equation*}
+  where $|A_r^p|$ is  the number of active  sensors in the subregion  $r$ in the
+  current sensing period~$p$, $|S|$ is the number of sensors in the network, and
+  $R$ is the number of subregions.
+\item {\bf Energy Consumption (EC)}: energy consumption can be seen as the total
+  energy  consumed by  the  sensors during  $Lifetime_{95}$ or  $Lifetime_{50}$,
+  divided by  the number of  periods. The value of  EC is computed  according to
+  this formula:
+  \begin{equation*}
+    \scriptsize
+    \mbox{EC} = \frac{\sum\limits_{p=1}^{P} \left( E^{\mbox{com}}_p+E^{\mbox{list}}_p+E^{\mbox{comp}}_p  
+      + E^{a}_p+E^{s}_p \right)}{P},
+  \end{equation*}
+  where $P$ corresponds  to the number of periods. The  total energy consumed by
+  the  sensors  comes  through  taking   into  consideration  four  main  energy
+  factors. The first one, denoted $E^{\scriptsize \mbox{com}}_p$, represents the
+  energy consumption spent  by all the nodes for  wireless communications during
+  period $p$.  $E^{\scriptsize \mbox{list}}_p$,  the next factor, corresponds to
+  the energy  consumed by the sensors  in LISTENING status before  receiving the
+  decision to go active or sleep in period $p$.  $E^{\scriptsize \mbox{comp}}_p$
+  refers to  the energy  needed by  all the  leader nodes  to solve  the integer
+  program during a period.  Finally, $E^a_{p}$ and $E^s_{p}$ indicate the energy
+  consumed by the WSN during the sensing phase (active and sleeping nodes).
+\end{itemize}
+%\end{enumerate}
+
+\subsection{Simulation Results}
+
+In  order  to  assess and  analyze  the  performance  of  our protocol  we  have
+implemented LiCO protocol in  OMNeT++~\cite{varga} simulator.  Besides LiCO, two
+other  protocols,  described  in  the  next paragraph,  will  be  evaluated  for
+comparison purposes.   The simulations were run  on a laptop DELL  with an Intel
+Core~i3~2370~M (2.4~GHz)  processor (2  cores) whose MIPS  (Million Instructions
+Per Second) rate  is equal to 35330. To  be consistent with the use  of a sensor
+node based on  Atmels AVR ATmega103L microcontroller (6~MHz) having  a MIPS rate
+equal to 6,  the original execution time  on the laptop is  multiplied by 2944.2
+$\left(\frac{35330}{2} \times  \frac{1}{6} \right)$.  The modeling  language for
+Mathematical Programming (AMPL)~\cite{AMPL} is  employed to generate the integer
+program instance  in a  standard format, which  is then read  and solved  by the
+optimization solver  GLPK (GNU  linear Programming Kit  available in  the public
+domain) \cite{glpk} through a Branch-and-Bound method.
+
+As said previously, the LiCO is  compared with three other approaches. The first
+one,  called  DESK,  is  a  fully distributed  coverage  algorithm  proposed  by
+\cite{ChinhVu}. The second one,  called GAF~\cite{xu2001geography}, consists in
+dividing  the monitoring  area into  fixed  squares. Then,  during the  decision
+phase, in each square, one sensor is  chosen to remain active during the sensing
+phase. The last  one, the DiLCO protocol~\cite{Idrees2}, is  an improved version
+of a research work we presented in~\cite{idrees2014coverage}. Let us notice that
+LiCO and  DiLCO protocols are  based on the  same framework. In  particular, the
+choice for the simulations of a partitioning in 16~subregions was chosen because
+it corresponds to the configuration producing  the better results for DiLCO. The
+protocols are distinguished  from one another by the formulation  of the integer
+program providing the set of sensors which  have to be activated in each sensing
+phase. DiLCO protocol tries to satisfy the coverage of a set of primary points,
+whereas LiCO protocol objectif is to reach a desired level of coverage for each
+sensor perimeter. In our experimentations, we chose a level of coverage equal to
+one ($l=1$).
+
+\subsubsection{\bf Coverage Ratio}
+
+Figure~\ref{fig333}  shows the  average coverage  ratio for  200 deployed  nodes
+obtained with the  four protocols. DESK, GAF, and DiLCO  provide a little better
+coverage ratio with respectively 99.99\%,  99.91\%, and 99.02\%, against 98.76\%
+produced by  LiCO for the  first periods. This  is due to  the fact that  at the
+beginning  DiLCO protocol  puts in  sleep status  more redundant  sensors (which
+slightly decreases the coverage ratio), while the three other protocols activate
+more sensor  nodes. Later, when the  number of periods is  beyond~70, it clearly
+appears that  LiCO provides a better  coverage ratio and keeps  a coverage ratio
+greater  than 50\%  for  longer periods  (15  more compared  to  DiLCO, 40  more
+compared to DESK). The energy saved by  LiCO in the early periods allows later a
+substantial increase of the coverage performance.
+
+\parskip 0pt    
+\begin{figure}[h!]
+\centering
+ \includegraphics[scale=0.5] {R/CR.eps} 
+\caption{Coverage ratio for 200 deployed nodes.}
+\label{fig333}
+\end{figure} 
+
+%When the number of periods increases, coverage ratio produced by DESK and GAF protocols decreases. This is due to dead nodes. However, DiLCO protocol maintains almost a good coverage from the round 31 to the round 63 and it is close to LiCO protocol. The coverage ratio of LiCO protocol is better than other approaches from the period 64.
+
+%because the optimization algorithm used by LiCO has been optimized the lifetime coverage based on the perimeter coverage model, so it provided acceptable coverage for a larger number of periods and prolonging the network lifetime based on the perimeter of the sensor nodes in each subregion of WSN. Although some nodes are dead, sensor activity scheduling based optimization of LiCO selected another nodes to ensure the coverage of the area of interest. i.e. DiLCO-16 showed a good coverage in the beginning then LiCO, when the number of periods increases, the coverage ratio decreases due to died sensor nodes. Meanwhile, thanks to sensor activity scheduling based new optimization model, which is used by LiCO protocol to ensure a longer lifetime coverage in comparison with other approaches. 
+
+
+\subsubsection{\bf Active Sensors Ratio}
+
+Having the less active sensor nodes in  each period is essential to minimize the
+energy consumption  and so  maximize the network  lifetime.  Figure~\ref{fig444}
+shows the  average active nodes ratio  for 200 deployed nodes.   We observe that
+DESK and  GAF have 30.36  \% and  34.96 \% active  nodes for the  first fourteen
+rounds and  DiLCO and LiCO  protocols compete perfectly  with only 17.92  \% and
+20.16 \% active  nodes during the same  time interval. As the  number of periods
+increases, LiCO protocol  has a lower number of active  nodes in comparison with
+the three other approaches, while keeping a greater coverage ratio as shown in
+figure \ref{fig333}.
+
+\begin{figure}[h!]
+\centering
+\includegraphics[scale=0.5]{R/ASR.eps}  
+\caption{Active sensors ratio for 200 deployed nodes.}
+\label{fig444}
+\end{figure} 
+
+\subsubsection{\bf Energy Consumption}
+
+We study the effect of the energy  consumed by the WSN during the communication,
+computation, listening, active, and sleep status for different network densities
+and  compare  it for  the  four  approaches.  Figures~\ref{fig3EC}(a)  and  (b)
+illustrate  the  energy   consumption  for  different  network   sizes  and  for
+$Lifetime95$ and  $Lifetime50$. The results show  that our LiCO protocol  is the
+most competitive  from the energy  consumption point of  view. As shown  in both
+figures, LiCO consumes much less energy than the three other methods.  One might
+think that the  resolution of the integer  program is too costly  in energy, but
+the  results show  that it  is very  beneficial to  lose a  bit of  time in  the
+selection of  sensors to  activate.  Indeed the  optimization program  allows to
+reduce significantly the number of active  sensors and so the energy consumption
+while keeping a good coverage level.
+
+\begin{figure}[h!]
+  \centering
+  \begin{tabular}{@{}cr@{}}
+    \includegraphics[scale=0.475]{R/EC95.eps} & \raisebox{2.75cm}{(a)} \\
+    \includegraphics[scale=0.475]{R/EC50.eps} & \raisebox{2.75cm}{(b)}
+  \end{tabular}
+  \caption{Energy consumption per period for (a)~$Lifetime_{95}$ and (b)~$Lifetime_{50}$.}
+  \label{fig3EC}
+\end{figure} 
+
+%The optimization algorithm, which used by LiCO protocol,  was improved the lifetime coverage efficiently based on the perimeter coverage model.
+
+ %The other approaches have a high energy consumption due to activating a larger number of sensors. In fact,  a distributed  method on the subregions greatly reduces the number of communications and the time of listening so thanks to the partitioning of the initial network into several independent subnetworks. 
+
+
+%\subsubsection{Execution Time}
+
+\subsubsection{\bf Network Lifetime}
+
+We observe the superiority of LiCO and DiLCO protocols in comparison against the
+two    other   approaches    in    prolonging   the    network   lifetime.    In
+figures~\ref{fig3LT}(a)  and (b),  $Lifetime95$ and  $Lifetime50$ are  shown for
+different  network  sizes.   As  highlighted  by  these  figures,  the  lifetime
+increases with the size  of the network, and it is clearly  the larger for DiLCO
+and LiCO  protocols.  For instance,  for a  network of 300~sensors  and coverage
+ratio greater than 50\%, we can  see on figure~\ref{fig3LT}(b) that the lifetime
+is about two times longer with  LiCO compared to DESK protocol.  The performance
+difference    is    more    obvious   in    figure~\ref{fig3LT}(b)    than    in
+figure~\ref{fig3LT}(a) because the gain induced  by our protocols increases with
+the time, and the lifetime with a coverage  of 50\% is far more longer than with
+95\%.
+
+\begin{figure}[h!]
+  \centering
+  \begin{tabular}{@{}cr@{}}
+    \includegraphics[scale=0.475]{R/LT95.eps} & \raisebox{2.75cm}{(a)} \\  
+    \includegraphics[scale=0.475]{R/LT50.eps} & \raisebox{2.75cm}{(b)}
+  \end{tabular}
+  \caption{Network Lifetime for (a)~$Lifetime_{95}$ \\
+    and (b)~$Lifetime_{50}$.}
+  \label{fig3LT}
+\end{figure} 
+
+%By choosing the best suited nodes, for each period, by optimizing the coverage and lifetime of the network to cover the area of interest and by letting the other ones sleep in order to be used later in next rounds, LiCO protocol efficiently prolonged the network lifetime especially for a coverage ratio greater than $50 \%$, whilst it stayed very near to  DiLCO-16 protocol for $95 \%$.
+
+Figure~\ref{figLTALL}  compares  the  lifetime  coverage of  our  protocols  for
+different coverage  ratios. We denote by  Protocol/50, Protocol/80, Protocol/85,
+Protocol/90, and  Protocol/95 the amount  of time  during which the  network can
+satisfy an area coverage greater than $50\%$, $80\%$, $85\%$, $90\%$, and $95\%$
+respectively, where  Protocol is DiLCO  or LiCO.  Indeed there  are applications
+that do not require a 100\% coverage of  the area to be monitored. LiCO might be
+an interesting  method since  it achieves  a good balance  between a  high level
+coverage ratio and network lifetime. LiCO always outperforms DiLCO for the three
+lower  coverage  ratios,  moreover  the   improvements  grow  with  the  network
+size. DiLCO is better  for coverage ratios near 100\%, but in  that case LiCO is
+not so bad for the smallest network sizes.
+
+\begin{figure}[h!]
+\centering \includegraphics[scale=0.5]{R/LTa.eps}
+\caption{Network lifetime for different coverage ratios.}
+\label{figLTALL}
+\end{figure} 
+
+%Comparison shows that LiCO protocol, which are used distributed optimization over the subregions, is the more relevance one for most coverage ratios and WSN sizes because it is robust to network disconnection during the network lifetime as well as it consume less energy in comparison with other approaches. LiCO protocol gave acceptable coverage ratio for a larger number of periods using new optimization algorithm that based on a perimeter coverage model. It also means that distributing the algorithm in each node and subdividing the sensing field into many subregions, which are managed independently and simultaneously, is the most relevant way to maximize the lifetime of a network.
+
+
+\section{Conclusion and Future Works}
+\label{sec:Conclusion and Future Works}
+
+In this paper  we have studied the problem of  lifetime coverage optimization in
+WSNs. We designed  a new protocol, called Lifetime  Coverage Optimization, which
+schedules nodes'  activities (wake up  and sleep  stages) with the  objective of
+maintaining a  good coverage ratio  while maximizing the network  lifetime. This
+protocol is  applied in a distributed  way in regular subregions  obtained after
+partitioning the area of interest in a preliminary step. It works in periods and
+is based on the resolution of an integer program to select the subset of sensors
+operating in active status for each period. Our work is original in so far as it
+proposes for  the first  time an  integer program  scheduling the  activation of
+sensors  based on  their perimeter  coverage level,  instead of  using a  set of
+targets/points to be covered.
+
+%To cope with this problem, the area of interest is divided into a smaller subregions using  divide-and-conquer method, and then a LiCO protocol for optimizing the lifetime coverage in each subregion. LiCO protocol combines two efficient techniques:  network
+%leader election, which executes the perimeter coverage model (only one time), the optimization algorithm, and sending the schedule produced by the optimization algorithm to other nodes in the subregion ; the second, sensor activity scheduling based optimization in which a new lifetime coverage optimization model is proposed. The main challenges include how to select the  most efficient leader in each subregion and the best schedule of sensor nodes that will optimize the network lifetime coverage
+%in the subregion. 
+%The network lifetime coverage in each subregion is divided into
+%periods, each period consists  of four stages: (i) Information Exchange,
+%(ii) Leader Election, (iii) a Decision based new optimization model in order to
+%select the  nodes remaining  active for the last stage,  and  (iv) Sensing.
+We  carried out  several simulations  to  evaluate the  proposed protocol.   The
+simulation  results  show   that  LiCO  is  more   energy-efficient  than  other
+approaches, with respect to lifetime,  coverage ratio, active sensors ratio, and
+energy consumption.
+%Indeed, when dealing with large and dense WSNs, a distributed optimization approach on the subregions of WSN like the one we are proposed allows to reduce the difficulty of a single global optimization problem by partitioning it in many smaller problems, one per subregion, that can be solved more easily. We have  identified different  research directions  that arise  out of  the work presented here.
+We plan to extend our framework such that the schedules are planned for multiple
+sensing periods.
+%in order to compute all active sensor schedules in only one step for many periods;
+We also want  to improve our integer program to  take into account heterogeneous
+sensors  from both  energy  and node  characteristics point of views.
+%the third, we are investigating new optimization model based on the sensing range so as to maximize the lifetime coverage in WSN;
+Finally,  it   would  be   interesting  to  implement   our  protocol   using  a
+sensor-testbed to evaluate it in real world applications.
+
+\section*{Acknowledgments}
+
+\noindent  As a  Ph.D.   student, Ali  Kadhum IDREES  would  like to  gratefully
+acknowledge the  University of Babylon -  IRAQ for financial support  and Campus
+France for the  received support. This work has also been supported by the Labex
+ACTION.
+
+\ifCLASSOPTIONcaptionsoff
+  \newpage
+\fi
+
+
+\bibliographystyle{IEEEtran}
+%\bibliographystyle{IEEEbiographynophoto}
+\bibliography{LiCO_Journal}
+
+
+
+%\begin{IEEEbiographynophoto}{Jane Doe}
+
+
+
+\end{document}
+
+
diff --git a/PeCO/ACM-Reference-Format-Journals.bst b/PeCO/ACM-Reference-Format-Journals.bst
new file mode 100644 (file)
index 0000000..54089b5
--- /dev/null
@@ -0,0 +1,3349 @@
+%%% -*-BibTeX-*-\r
+%%% ====================================================================\r
+%%%  @BibTeX-style-file{\r
+%%%     author          = "Nelson H. F. Beebe, Boris Veytsman and Gerald Murray",\r
+%%%     version         = "1.00",\r
+%%%     date            = "18 January 2012",\r
+%%%     time            = "11:48 EST",\r
+%%%     filename        = "ACM-Reference-Format-Journals.bst",\r
+%%%     address         = "University of Utah\r
+%%%                        Department of Mathematics, 110 LCB\r
+%%%                        155 S 1400 E RM 233\r
+%%%                        Salt Lake City, UT 84112-0090\r
+%%%                        USA",\r
+%%%     telephone       = "+1 801 581 5254",\r
+%%%     FAX             = "+1 801 581 4148",\r
+%%%     URL             = "http://www.math.utah.edu/~beebe",\r
+%%%     checksum        = "available here: http://www.acm.org/publications/latex_style/CRC-journals.txt"\r
+%%%     email           = "beebe@math.utah.edu, beebe@acm.org,\r
+%%%                        beebe@computer.org, borisv@lk.net, murray@hq.acm.org", \r
+%%%     codetable       = "ISO/ASCII",\r
+%%%     keywords        = "ACM Transactions bibliography style; BibTeX",\r
+%%%     license         = "public domain",\r
+%%%     supported       = "yes",\r
+%%%     abstract        = "",\r
+%%%     docstring       = "The checksum field, above, is produced by WinMD5Free (v1.20) \r
+%%%                        available from http://www.winmd5.com/?rid=winmd5,"\r
+%%%  }\r
+%%% ====================================================================\r
+\r
+% "ACM Transactions" BibTeX style, ACM-Reference-Format-Journals.bst\r
+%  for BibTeX version 0.99c, LaTeX version 3.141\r
+%  ACM extensions with code cleaned up, extended, and debugged 10--15-Nov-2008\r
+%  Revised 17-APRIL-2008 (Nelson)\r
+%  Revised 13-MARCH-2011 (Boris/Gerry)\r
+%  Revised 23-MARCH-2011 (Boris/Gerry)\r
+%  Revised 27-MARCH-2011 (Boris/Gerry)\r
+%  Revised 15-APRIL-2011 (Boris/Gerry)\r
+%  Revised 27-SEPTEMBER-2011 (Boris)\r
+%\r
+%\r
+% History (by Nelson)\r
+%\r
+% Based on 'acmtrans' (for ACM Journals)\r
+% Date: 28th April 2008\r
+%\r
+% 1. Avoid 'repeating' the 'month' values.\r
+% 2. Avoid incorrectly italicizing the volume number.\r
+% 3. Avoid non italicizing certain titles (book, inproceedings etc).\r
+% 4. NO series if there is NO volume.\r
+% 5. Sorting of reference with first surname.\r
+% 6. Article no added for Inproceedings.\r
+%\r
+% Date: 07th May 2008\r
+%\r
+% 1. Abbreviation list added\r
+%\r
+%   Citation format: [author-last-name year]\r
+%             [author-last-name and author-last-name year]\r
+%             [author-last-name, author-last-name, and author-last-name year]\r
+%             [author-last-name et al. year]\r
+%             [author-last-name]\r
+%             author-last-name [year]\r
+%             [author-last-name and author-last-name]\r
+%             [author-last-name et al.]\r
+%             [year] or [year,year]\r
+%             year or year,year\r
+%\r
+%   Reference list ordering: alphabetical by author or whatever passes\r
+%    for author in the absence of one.\r
+%\r
+% Features of the old acmtrans.bst:\r
+% =================================\r
+%\r
+% - all authors appear last name first.\r
+% - all pages are listed xx-xx, (no pp.) and are at the end of the reference\r
+% - publishers are identified as publisher, address\r
+% - conferences papers (inproceedings) may give city of conference,\r
+%   date of conference, and journal that the proceedings appear in.\r
+% - months abbreviated to max four letters (eg. Mar.)\r
+% - volume of a series indicated after the title of the series\r
+% - editors appear after edited title and are identified by a trailing "Eds."\r
+%   not in parentheses.  Editor names are not given in small caps.\r
+%   (unless there is no author line)\r
+% - names terminated with a period even if there is no first name.\r
+% - editions are indicated trailing after the work, not in parentheses.\r
+% - "et al." citations have a protected period to avoid bad spacing (jrh)\r
+% - "address" required when publisher given\r
+% - series (roman) and volume are in a sentence separate from (book-)title\r
+%\r
+%\r
+% Features of chicago.bst:\r
+% =======================\r
+%\r
+% - full names used in citations, but abbreviated citations are available\r
+%   (see above)\r
+% - if an entry has a "month", then the month and year are also printed\r
+%   as part of that bibitem.\r
+% - all conjunctions use "and" instead of "\&"\r
+% - major modification from Chicago Manual of Style (13th ed.) is that\r
+%   only the first author in a reference appears last name first-\r
+%   additional authors appear as J. Q. Public.\r
+% - pages are listed as "pp. xx-xx" in all entry types except\r
+%   article entries.\r
+% - book, inbook, and manual use "location: publisher" (or organization)\r
+%   for address and publisher. All other types list publishers separately.\r
+% - "pp." are used to identify page numbers for all entry types except\r
+%   articles.\r
+% - organization is used as a citation label if neither author nor editor\r
+%   is present (for manuals).\r
+% - "et al." is used for long author and editor lists, or when "others"\r
+%   is used.\r
+%\r
+% Modifications and bug fixes from newapa.bst:\r
+% ===========================================\r
+%\r
+%   - added month, year to bib entries if month is present\r
+%   - fixed bug with In proceedings, added necessary comma after title\r
+%   - all conjunctions changed to "and" from "\&"\r
+%   - fixed bug with author labels in my.full.label: "et al." now is\r
+%        generated when "others" is an author name\r
+%   - major modification from Chicago Manual of Style (13th ed.) is that\r
+%     only the first author in a reference appears last name first-\r
+%     additional authors appear as J. Q. Public.\r
+%   - pages are listed as "pp. xx-xx" in all entry types except\r
+%     article entries. Unnecessary (IMHO) "()" around page numbers\r
+%     were removed, and page numbers now don't end with a period.\r
+%   - created chicago.sty for use with this bibstyle (required).\r
+%   - fixed bugs in FUNCTION {format.vol.num.pages} for missing volume,\r
+%     number, and /or pages. Renamed to format.journal.volume.number.\r
+%   - fixed bug in formatting booktitles: additional period an error if\r
+%     book has a volume.\r
+%   - fixed bug: editors usually given redundant period before next clause\r
+%     (format.editors.dot) removed.\r
+%   - added label support for organizations, if both author and editor\r
+%     are missing (from alpha.bst). If organization is too long, then\r
+%     the key field is used for abbreviated citations.\r
+%   - In proceedings or books of several volumes, no comma was written\r
+%     between the "Volume x" and the page numbers (this was intentional\r
+%     in newapa.bst). Fixed.\r
+%   - Some journals may not have volumes/numbers, only month/year (eg.\r
+%     IEEE Computer). Fixed bug in article style that assumed volume/number\r
+%     was always present.\r
+%\r
+% Original documentation for newapa.sty:\r
+% =====================================\r
+%\r
+% This version was made by modifying the master file made by\r
+% Oren Patashnik (PATASHNIK@SCORE.STANFORD.EDU), and the 'named' BibTeX\r
+% style of Peter F. Patel-Schneider.\r
+%\r
+% Copyright (C) 1985, all rights reserved.\r
+% Copying of this file is authorized only if either\r
+% (1) you make absolutely no changes to your copy, including name, or\r
+% (2) if you do make changes, you name it something other than 'newapa.bst'.\r
+% There are undoubtably bugs in this style.  If you make bug fixes,\r
+% improvements, etc.  please let me know.  My e-mail address is:\r
+%    spencer@cgrg.ohio.state.edu or 71160.3141@compuserve.com\r
+%\r
+% This style was made from 'plain.bst', 'named.bst', and 'apalike.bst',\r
+% with lots of tweaking to make it look like APA style, along with tips\r
+% from Young Ryu and Brian Reiser's modifications of 'apalike.bst'.\r
+%\r
+%\r
+% Start of ACM-Reference-Format-Journals.bst\r
+%\r
+% Note: Many of the new bibentry 'fields' will only work with the \r
+% 'ACM-Reference-Format-Journals.bst' file. Legacy .bib files (which will, in all probability,\r
+% NOT contain these new fields) will _still_ work with the ACM-Reference-Format-Journals.bst.\r
+% \r
+%\r
+ENTRY\r
+  { address\r
+    advisor\r
+    author\r
+    booktitle\r
+    chapter\r
+    city        % jtb: added\r
+    date        % jtb: added\r
+    edition\r
+    editor\r
+    howpublished\r
+    institution\r
+    journal\r
+    key\r
+    month\r
+    note\r
+    number\r
+    organization\r
+    pages\r
+    publisher\r
+    school\r
+    series\r
+    title\r
+    type\r
+    volume\r
+    year\r
+        % New keys recognized \r
+        issue         % UTAH: used in, e.g., ACM SIGSAM Bulletin and ACM Communications in Computer Algebra\r
+        articleno\r
+        day           % UTAH: needed for newspapers, weeklies, bi-weeklies\r
+        doi           % UTAH\r
+        url           % UTAH\r
+        bookpages     % UTAH\r
+        numpages\r
+        lastaccessed  % UTAH: used only for @Misc{...}\r
+        coden         % UTAH\r
+        isbn          % UTAH\r
+        isbn-13       % UTAH\r
+        issn          % UTAH\r
+        lccn          % UTAH\r
+  }\r
+  {}\r
+  { label.year extra.label sort.year sort.label }\r
+\r
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }\r
+\r
+INTEGERS { show-isbn-10-and-13 }  % initialized below in begin.bib\r
+\r
+INTEGERS { nameptr namesleft numnames }\r
+\r
+INTEGERS { multiresult }\r
+\r
+INTEGERS { len }\r
+\r
+INTEGERS { last.extra.num }\r
+\r
+STRINGS { s t t.org u }\r
+\r
+STRINGS { last.label next.extra }\r
+\r
+STRINGS { p1 p2 p3 page.count }\r
+\r
+FUNCTION { dump.stack.1 }\r
+{\r
+    duplicate$ "STACK[top] = [" swap$ * "]" * warning$\r
+}\r
+\r
+FUNCTION { dump.stack.2 }\r
+{\r
+    duplicate$ "STACK[top  ] = [" swap$ * "]" * warning$\r
+    swap$\r
+    duplicate$ "STACK[top-1] = [" swap$ * "]" * warning$\r
+    swap$\r
+}\r
+\r
+FUNCTION { empty.or.unknown }\r
+{\r
+  %% Examine the top stack entry, and push 1 if it is empty, or\r
+  %% consists only of whitespace, or is a string beginning with two\r
+  %% queries (??), and otherwise, push 0.\r
+  %%\r
+  %% This function provides a replacement for empty$, with the\r
+  %% convenient feature that unknown values marked by two leading\r
+  %% queries are treated the same as missing values, and thus, do not\r
+  %% appear in the output .bbl file, and yet, their presence in .bib\r
+  %% file(s) serves to mark values which are temporarily missing, but\r
+  %% are expected to be filled in eventually once more data is\r
+  %% obtained.  The TeX User Group and BibNet bibliography archives\r
+  %% make extensive use of this practice.\r
+  %%\r
+  %% An empty string cannot serve the same purpose, because just as in\r
+  %% statistics data processing, an unknown value is not the same as an\r
+  %% empty value.\r
+  %%\r
+  %% At entry: stack = ... top:[string]\r
+  %% At exit:  stack = ... top:[0 or 1]\r
+\r
+  duplicate$ empty$\r
+    { pop$ #1 }\r
+    { #1 #2 substring$ "??" = }\r
+  if$\r
+}\r
+\r
+FUNCTION { writeln }\r
+{\r
+  %% In BibTeX style files, the sequences\r
+  %%\r
+  %%     ... "one" "two" output\r
+  %%     ... "one" "two" output.xxx\r
+  %%\r
+  %% ship "one" to the output file, possibly following by punctuation,\r
+  %% leaving the stack with\r
+  %%\r
+  %%     ... "two"\r
+  %%\r
+  %% There is thus a one-string lag in output processing that must be\r
+  %% carefully handled to avoid duplicating a string in the output\r
+  %% file.  Unless otherwise noted, all output.xxx functions leave\r
+  %% just one new string on the stack, and that model should be born\r
+  %% in mind when reading or writing function code.\r
+  %%\r
+  %% BibTeX's asynchronous buffering of output from strings from the\r
+  %% stack is confusing because newline$ bypasses the buffer.  It\r
+  %% would have been so much easier for newline to be a character\r
+  %% rather than a state of the output-in-progress.\r
+  %%\r
+  %% The documentation in btxhak.dvi is WRONG:  it says\r
+  %%\r
+  %%    newline$ Writes onto the bbl file what's accumulated in the\r
+  %%             output buffer. It writes a blank line if and only\r
+  %%             if the output buffer is empty. Since write$ does\r
+  %%             reasonable line breaking, you should use this\r
+  %%             function only when you want a blank line or an\r
+  %%             explicit line break.\r
+  %%\r
+  %%    write$   Pops the top (string) literal and writes it on the\r
+  %%             output buffer (which will result in stuff being\r
+  %%             written onto the bbl file when the buffer fills\r
+  %%             up).\r
+  %%\r
+  %% Examination of the BibTeX source code shows that write$ does\r
+  %% indeed behave as claimed, but newline$ sends a newline character\r
+  %% directly to the output file, leaving the stack unchanged.  The\r
+  %% first line "Writes onto ... buffer." is therefore wrong.\r
+  %%\r
+  %% The original BibTeX style files almost always use "write$ newline$"\r
+  %% in that order, so it makes sense to hide that pair in a private\r
+  %% function like this one, named after a statement in Pascal,\r
+  %% the programming language embedded in the BibTeX Web program.\r
+\r
+  write$                % output top-of-stack string\r
+  newline$              % immediate write of newline (not via stack)\r
+}\r
+\r
+FUNCTION { init.state.consts }\r
+{\r
+  #0 'before.all :=\r
+  #1 'mid.sentence :=\r
+  #2 'after.sentence :=\r
+  #3 'after.block :=\r
+}\r
+\r
+FUNCTION { output.nonnull }\r
+{ % Stack in: ... R S T  Stack out: ... R T   File out: S<comma><space>\r
+  's :=\r
+  output.state mid.sentence =\r
+    {\r
+      ", " * write$\r
+    }\r
+    {\r
+      output.state after.block =\r
+        {\r
+          add.period$ writeln\r
+          "\newblock " write$\r
+        }\r
+        {\r
+          output.state before.all =\r
+            {\r
+              write$\r
+            }\r
+            {\r
+              add.period$ " " * write$\r
+            }\r
+          if$\r
+        }\r
+      if$\r
+      mid.sentence 'output.state :=\r
+    }\r
+  if$\r
+  s\r
+}\r
+\r
+FUNCTION { output.nonnull.dot.space }\r
+{ % Stack in: ... R S T  Stack out: ... R T   File out: S<dot><space>\r
+  's :=\r
+  output.state mid.sentence =           % { "<DEBUG output.nonnull.dot.space>. " * write$ }\r
+    {\r
+      ". " * write$\r
+    }\r
+    {\r
+      output.state after.block =\r
+        {\r
+          add.period$ writeln "\newblock " write$\r
+        }\r
+        {\r
+          output.state before.all =\r
+            {\r
+              write$\r
+            }\r
+            {\r
+              add.period$ " " * write$\r
+            }\r
+          if$\r
+        }\r
+      if$\r
+      mid.sentence 'output.state :=\r
+    }\r
+  if$\r
+  s\r
+}\r
+\r
+FUNCTION { output.nonnull.remove }\r
+{ % Stack in: ... R S T  Stack out: ... R T   File out: S<space>\r
+  's :=\r
+  output.state mid.sentence =\r
+    {\r
+      " " * write$\r
+    }\r
+    {\r
+      output.state after.block =\r
+        {\r
+          add.period$ writeln "\newblock " write$\r
+        }\r
+        {\r
+          output.state before.all =\r
+            {\r
+              write$\r
+            }\r
+            {\r
+              add.period$ " " * write$\r
+            }\r
+          if$\r
+        }\r
+      if$\r
+      mid.sentence 'output.state :=\r
+    }\r
+  if$\r
+  s\r
+}\r
+\r
+FUNCTION { output.nonnull.removenospace }\r
+{ % Stack in: ... R S T  Stack out: ... R T   File out: S\r
+  's :=\r
+  output.state mid.sentence =\r
+    {\r
+      "" * write$\r
+    }\r
+    {\r
+      output.state after.block =\r
+        {\r
+          add.period$ writeln "\newblock " write$\r
+        }\r
+        {\r
+          output.state before.all =\r
+            {\r
+              write$\r
+            }\r
+            {\r
+              add.period$ " " * write$\r
+            }\r
+          if$\r
+        }\r
+      if$\r
+      mid.sentence 'output.state :=\r
+    }\r
+  if$\r
+  s\r
+}\r
+\r
+FUNCTION { output }\r
+{ % discard top token if empty, else like output.nonnull\r
+  duplicate$ empty.or.unknown\r
+    'pop$\r
+    'output.nonnull\r
+  if$\r
+}\r
+\r
+FUNCTION { output.dot.space }\r
+{ % discard top token if empty, else like output.nonnull.dot.space\r
+  duplicate$ empty.or.unknown\r
+    'pop$\r
+    'output.nonnull.dot.space\r
+  if$\r
+}\r
+\r
+FUNCTION { output.removenospace }\r
+{ % discard top token if empty, else like output.nonnull.removenospace\r
+  duplicate$ empty.or.unknown\r
+    'pop$\r
+    'output.nonnull.removenospace\r
+  if$\r
+}\r
+\r
+FUNCTION { output.check }\r
+{ % like output, but warn if key name on top-of-stack is not set\r
+  't :=\r
+  duplicate$ empty.or.unknown\r
+    { pop$ "empty " t * " in " * cite$ * warning$ }\r
+    'output.nonnull\r
+  if$\r
+}\r
+\r
+FUNCTION { output.check.dot.space }\r
+{ % like output.dot.space, but warn if key name on top-of-stack is not set\r
+  't :=\r
+  duplicate$ empty.or.unknown\r
+    { pop$ "empty " t * " in " * cite$ * warning$ }\r
+    'output.nonnull.dot.space\r
+  if$\r
+}\r
+\r
+FUNCTION { fin.block }\r
+{ % functionally, but not logically, identical to fin.entry\r
+   add.period$\r
+   writeln\r
+}\r
+\r
+FUNCTION { fin.entry }\r
+{\r
+   add.period$\r
+   writeln\r
+}\r
+\r
+FUNCTION { new.sentence }\r
+{ % update sentence state, with neither output nor stack change\r
+  output.state after.block =\r
+    'skip$\r
+    {\r
+      output.state before.all =\r
+        'skip$\r
+        { after.sentence 'output.state := }\r
+      if$\r
+    }\r
+  if$\r
+}\r
+\r
+FUNCTION { fin.sentence }\r
+{\r
+   add.period$\r
+   write$\r
+   new.sentence\r
+   ""\r
+}\r
+\r
+FUNCTION { new.block }\r
+{\r
+  output.state before.all =\r
+    'skip$\r
+    { after.block 'output.state := }\r
+  if$\r
+}\r
+\r
+FUNCTION { output.coden }       % UTAH\r
+{ % output non-empty CODEN as one-line sentence (stack untouched)\r
+  coden empty.or.unknown\r
+    { }\r
+    { "\showCODEN{" coden * "}" * writeln }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.articleno }\r
+{\r
+  articleno empty.or.unknown\r
+     { "" }\r
+     {\r
+        numpages empty.or.unknown\r
+          { "articleno field, but no numpages field, in " cite$ * warning$ }\r
+          { }\r
+        if$\r
+        "Article " articleno *\r
+     }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.year }\r
+{ % push year string or "????" onto output stack\r
+  %% Because year is a mandatory field, we always force SOMETHING\r
+  %% to be output\r
+  year empty.or.unknown\r
+    { "????" }\r
+    { year }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.day.month }\r
+{ % push "day month " or "month " or "" onto output stack\r
+  day empty.or.unknown\r
+    {\r
+      month empty.or.unknown\r
+        { "" }\r
+        { month " " *}\r
+      if$\r
+    }\r
+    {\r
+      month empty.or.unknown\r
+        { "" }\r
+        { day " " * month * " " *}\r
+      if$\r
+    }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.day.month.year }     % UTAH\r
+{ % if month is empty, push "" else push "(MON.)" or "(DD MON.)"\r
+  % Needed for frequent periodicals: 2008. ... New York Times C-1, C-2, C-17 (23 Oct.)\r
+  % acm-*.bst addition: prefix parenthesized date string with\r
+  % ", Article nnn "\r
+  articleno empty.or.unknown\r
+    { "" }\r
+    { ", " format.articleno * }\r
+  if$\r
+  " (" * format.day.month * format.year * ")" *\r
+}\r
+\r
+FUNCTION { output.day.month.year }     % UTAH\r
+{ % if month is empty value, do nothing; else output stack top and\r
+  % leave with new top string "(MON.)" or "(DD MON.)"\r
+  % Needed for frequent periodicals: 2008. ... New York Times C-1, C-2, C-17 (23 Oct.)\r
+  format.day.month.year\r
+  output.nonnull.remove\r
+}\r
+\r
+FUNCTION { strip.doi } % UTAH\r
+{ % Strip any Web address prefix to recover the bare DOI, leaving the\r
+  % result on the output stack, as recommended by CrossRef DOI\r
+  % documentation.\r
+  % For example, reduce "http://doi.acm.org/10.1145/1534530.1534545" to\r
+  % "10.1145/1534530.1534545".  That is later typeset and displayed as\r
+  % doi:10.1145/1534530.1534545 as the LAST item in the reference list\r
+  % entry.  Publisher Web sites wrap this with a suitable link to a real\r
+  % URL to resolve the DOI, and the master http://dx.doi.org/ address is\r
+  % preferred, since publisher-specific URLs can disappear in response\r
+  % to economic events.  All journals are encouraged by the DOI\r
+  % authorities to use that typeset format and link procedures for\r
+  % uniformity across all publications that include DOIs in reference\r
+  % lists.\r
+  % The numeric prefix is guaranteed to start with "10.", so we use\r
+  % that as a test.\r
+  doi #1 #3 substring$ "10." =\r
+    { doi }\r
+    {\r
+      doi #1 #7 substring$ "http://" =\r
+        {\r
+            doi #8 doi text.length$ #7 - substring$ 't := % get modifiable copy of rest of DOI\r
+\r
+            "INTERNAL STYLE-FILE ERROR" 's :=\r
+\r
+            % search for next "/" and assign its suffix to s\r
+\r
+            { t text.length$ }\r
+            {\r
+              t #1 #1 substring$ "/" =\r
+                {\r
+                  % save rest of string as true DOI (should be 10.xxxx/yyyy)\r
+                  t #2 t text.length$ #1 - substring$ 's :=\r
+                  "" 't :=    % empty string t terminates the loop\r
+                }\r
+                {\r
+                  % discard first character and continue loop: t <= substring(t,2,last)\r
+                  t #2 t text.length$ #1 - substring$ 't :=\r
+                }\r
+              if$\r
+            }\r
+            while$\r
+\r
+            % check for valid DOI (should be 10.xxxx/yyyy)\r
+            s #1 #3 substring$ "10." =\r
+              { }\r
+              { "unrecognized DOI substring " s * " in DOI value [" * doi * "]" * warning$ }\r
+            if$\r
+\r
+            s   % push the stripped DOI on the output stack\r
+\r
+        }\r
+        {\r
+          "unrecognized DOI value [" doi * "]" * warning$\r
+          doi   % push the unrecognized original DOI on the output stack\r
+        }\r
+      if$\r
+    }\r
+  if$\r
+}\r
+\r
+%\r
+% Change by BV: added standard prefix to URL\r
+%\r
+FUNCTION { output.doi } % UTAH\r
+{ % output non-empty DOI as one-line sentence (stack untouched)\r
+  doi empty.or.unknown\r
+    { }\r
+    {\r
+      %% NB: We want URLs at beginning of line to reduce likelihood of\r
+      %% BibTeX's nasty line wrapping after column 79, which then requires\r
+      %% manual (or automated) editing of the .bbl file to repair.\r
+      %% The \url{} macro strips percent-newlines, and is thus safe in\r
+      %% the presence of the line wrapping, but \path|...| and\r
+      %% \verb|...| do not.\r
+      "\showDOI{%" writeln\r
+      "\url{http://dx.doi.org/" strip.doi * "}}" * writeln\r
+    }\r
+  if$\r
+}\r
+\r
+FUNCTION { output.isbn }                % UTAH\r
+{ % output non-empty ISBN-10 and/or ISBN-13 as one-line sentences (stack untouched)\r
+  show-isbn-10-and-13\r
+    {\r
+      %% show both 10- and 13-digit ISBNs\r
+      isbn empty.or.unknown\r
+        { }\r
+        {\r
+          "\showISBNx{" isbn * "}" * writeln\r
+        }\r
+      if$\r
+      isbn-13 empty.or.unknown\r
+        { }\r
+        {\r
+          "\showISBNxiii{" isbn-13 * "}" * writeln\r
+        }\r
+      if$\r
+    }\r
+    {\r
+      %% show 10-digit ISBNs only if 13-digit ISBNs not available\r
+      isbn-13 empty.or.unknown\r
+        {\r
+          isbn empty.or.unknown\r
+            { }\r
+            {\r
+              "\showISBNx{" isbn * "}" * writeln\r
+            }\r
+          if$\r
+        }\r
+        {\r
+          "\showISBNxiii{" isbn-13 * "}" * writeln\r
+        }\r
+      if$\r
+    }\r
+  if$\r
+}\r
+\r
+FUNCTION { output.issn } % UTAH\r
+{ % output non-empty ISSN as one-line sentence (stack untouched)\r
+  issn empty.or.unknown\r
+    { }\r
+    { "\showISSN{" issn * "}" * writeln }\r
+  if$\r
+}\r
+\r
+FUNCTION { output.issue }\r
+{ % output non-empty issue number as a one-line sentence (stack untouched)\r
+  issue empty.or.unknown\r
+    { }\r
+    { "Issue " issue * "." * writeln }\r
+  if$\r
+}\r
+\r
+FUNCTION { output.lccn } % UTAH\r
+{ % return with stack untouched\r
+  lccn empty.or.unknown\r
+    { }\r
+    { "\showLCCN{" lccn * "}" * writeln }\r
+  if$\r
+}\r
+\r
+FUNCTION { output.note } % UTAH\r
+{ % return with stack empty\r
+  note empty.or.unknown\r
+    { }\r
+    { "\shownote{" note add.period$ * "}" * writeln }\r
+  if$\r
+}\r
+\r
+FUNCTION { output.note.check } % UTAH\r
+{ % return with stack empty\r
+  note empty.or.unknown\r
+    { "empty note in " cite$ * warning$ }\r
+    { "\shownote{" note add.period$ * "}" * writeln }\r
+  if$\r
+}\r
+\r
+%\r
+% Changes by BV 2011/04/15.  Do not output\r
+% url if doi is defined\r
+%\r
+FUNCTION { output.url } % UTAH\r
+{ % return with stack untouched\r
+  % output URL and associated lastaccessed fields\r
+  doi empty.or.unknown\r
+  {\r
+    url empty.or.unknown\r
+      { }\r
+      {\r
+          %% NB: We want URLs at beginning of line to reduce likelihood of\r
+          %% BibTeX's nasty line wrapping after column 79, which would require\r
+          %% manual (or automated) editing of the .bbl file to repair.  However,\r
+          %% the \url{} macro handles the unwrapping job automatically.\r
+          "\showURL{%" writeln\r
+          lastaccessed empty.or.unknown\r
+            { "" }\r
+            { "Retrieved " lastaccessed * " from " * }\r
+          if$\r
+\r
+          %% The URL field may contain a semicolon-separated list of Web\r
+          %% addresses, and we locate and wrap each of them in \url{...}.\r
+          %% The simplistic approach of putting the entire list into the\r
+          %% macro argument is that the semicolons are typeset in a\r
+          %% typewriter font, and no space follows them.\r
+          %%\r
+          %% We therefore replace the original code\r
+          %%    "\url{" * url * "}}" * writeln\r
+          %% with this character-at-a-time loop:\r
+\r
+          "\url{" *\r
+\r
+          url 't :=                       % get modifiable copy of URL list\r
+\r
+          { t text.length$ }\r
+          {\r
+            t #1 #1 substring$ ";" =\r
+              {                         % then split argument at separator\r
+                "};" * writeln\r
+                "\url{"\r
+              }\r
+              {                         % else concatenate nonblank character to argument\r
+                t #1 #1 substring$ " " =\r
+                  { }\r
+                  { t #1 #1 substring$ * }\r
+                if$\r
+              }\r
+            if$\r
+\r
+            t #2 t text.length$ #1 - substring$ 't :=\r
+          }\r
+          while$\r
+\r
+          "}}" * writeln\r
+      }\r
+    if$\r
+  }\r
+  { }\r
+  if$\r
+}\r
+\r
+FUNCTION { output.year.check }\r
+{ % warn if year empty, else output top string and leave " YEAR<label>" on stack in mid-sentence\r
+  year empty.or.unknown\r
+     { "empty year in " cite$ * warning$ }\r
+     { write$\r
+        " " year * extra.label *\r
+       mid.sentence 'output.state :=\r
+     }\r
+  if$\r
+}\r
+\r
+FUNCTION { not }\r
+{\r
+    { #0 }\r
+    { #1 }\r
+  if$\r
+}\r
+\r
+FUNCTION { and }\r
+{\r
+    'skip$\r
+    { pop$ #0 }\r
+  if$\r
+}\r
+\r
+FUNCTION { or }\r
+{\r
+   { pop$ #1 }\r
+    'skip$\r
+  if$\r
+}\r
+\r
+FUNCTION { le }\r
+{\r
+  %% test whether first number is less than or equal to second number\r
+  %% stack in:  n1 n2\r
+  %% stack out: if n1 <= n2 then 1 else 0\r
+\r
+  %% "DEBUG: le " cite$ * warning$\r
+  > { #0 } { #1 } if$\r
+}\r
+\r
+FUNCTION { ge }\r
+{\r
+  %% test whether first number is greater than or equal to second number\r
+  %% stack in:  n1 n2\r
+  %% stack out: if n1 >= n2 then 1 else 0\r
+\r
+  %% "DEBUG: ge " cite$ * warning$\r
+  < { #0 } { #1 } if$\r
+}\r
+\r
+FUNCTION { is.leading.digit }\r
+{\r
+  %% test whether first character of string is a digit\r
+  %% stack in:  string\r
+  %% stack out: if first-char-is-digit then 1 else 0\r
+\r
+  #1 #1 substring$                      % replace string by string[1:1]\r
+  duplicate$                            % string[1:1] string[1:1]\r
+  chr.to.int$\r
+  "0" chr.to.int$ swap$ le              % "0" <= string[1:1] --> 0-or-1\r
+  swap$                                 % 0-or-1 string[1:1]\r
+  chr.to.int$\r
+  "9" chr.to.int$ le                    % string[1:1} <= "9" --> 0-or-1\r
+  and\r
+}\r
+\r
+FUNCTION { skip.digits }\r
+{\r
+  %% skip over leading digits in string\r
+  %% stack in:  string\r
+  %% stack out: rest-of-string leading-digits\r
+\r
+  %% "DEBUG: enter skip.digits " cite$ * warning$\r
+\r
+  %% dump.stack.1\r
+\r
+  duplicate$\r
+  't :=\r
+  't.org :=\r
+  "" 'u :=\r
+\r
+  { t text.length$ }\r
+  {\r
+    %% "=================DEBUG: skip.digits   t = [" t * "]" * warning$\r
+    t is.leading.digit\r
+      { t #2 t text.length$ #1 - substring$ }\r
+      {\r
+        t 'u :=\r
+        ""\r
+      }\r
+    if$\r
+    't :=\r
+  }\r
+  while$\r
+\r
+  u                                                             % rest of string\r
+  t.org #1 t.org text.length$ u text.length$ - substring$       % leading digits\r
+\r
+  %% "DEBUG: t.org = [" t.org * "]" * warning$\r
+  %% "DEBUG: u     = [" u * "]" * warning$\r
+\r
+  %% dump.stack.2\r
+\r
+  %% "DEBUG: leave skip.digits " cite$ * warning$\r
+}\r
+\r
+FUNCTION { skip.nondigits }\r
+{\r
+  %% skip over leading nondigits in string\r
+  %% stack in:  string\r
+  %% stack out: rest-of-string\r
+\r
+  %% "DEBUG: enter skip.nondigits " cite$ * warning$\r
+\r
+  't :=\r
+  "" 'u :=\r
+\r
+  { t text.length$ }\r
+  {\r
+    %% "=================DEBUG: skip.nondigits   t = [" t * "]" * warning$\r
+    t is.leading.digit\r
+      {\r
+        t 'u :=\r
+        ""\r
+      }\r
+      { t #2 t text.length$ #1 - substring$ }\r
+    if$\r
+    't :=\r
+  }\r
+  while$\r
+\r
+  u                     % rest of string\r
+\r
+  %% dump.stack.1\r
+  %% "DEBUG: leave skip.nondigits " cite$ * warning$\r
+}\r
+\r
+FUNCTION { parse.next.number }\r
+{\r
+  %% stack in:  string\r
+  %% stack out: rest-of-string next-numeric-part-of-string\r
+  %% Example:\r
+  %% stack in:  "123:1--123:59"\r
+  %% stack out: ":1--123:59" "123"\r
+\r
+  's :=\r
+  s skip.nondigits 's :=\r
+  s skip.digits\r
+}\r
+\r
+FUNCTION { reduce.pages.to.page.count }\r
+{\r
+  %% Stack in:  arbitrary-and-unused\r
+  %% Stack out: unchanged\r
+  %%\r
+  %% For the new-style pagination with article number and numpages or\r
+  %% pages, we expect to have BibTeX entries containing something like\r
+  %%     articleno = "17",\r
+  %%     pages     = "1--23",\r
+  %% with output "Article 17, 23 pages",\r
+  %% or\r
+  %%     articleno = "17",\r
+  %%     numpages  = "23",\r
+  %% with output "Article 17, 23 pages",\r
+  %% or\r
+  %%     articleno = "17",\r
+  %%     pages     = "17:1--17:23",\r
+  %% with output "Article 17, 23 pages",\r
+  %%\r
+  %% If articleno is missing or empty, then we should output "1--23",\r
+  %% "23" (with a warning of a missing articleno), or "17:1--17:23",\r
+  %% respectively.\r
+\r
+  %% "DEBUG: enter reduce.pages.to.page.count " cite$ * warning$\r
+\r
+  %% "DEBUG: pages = [" pages * "]" * warning$\r
+\r
+  pages\r
+  parse.next.number 'p1 :=\r
+  parse.next.number 'p2 :=\r
+  parse.next.number 'p3 :=\r
+  parse.next.number 'page.count :=\r
+\r
+  duplicate$\r
+  empty.or.unknown\r
+    {  }\r
+    {\r
+      duplicate$ "unexpected trailing garbage [" swap$ *\r
+      "] after n:p1--n:p2 in pages = [" *\r
+      pages *\r
+      "] in " *\r
+      cite$ *\r
+      warning$\r
+    }\r
+  if$\r
+\r
+  pop$\r
+\r
+  %% "DEBUG: reduce.pages.to.page.count: "\r
+  %% " p1 = " p1 * *\r
+  %% " p2 = " p2 * *\r
+  %% " p3 = " p3 * *\r
+  %% " p4 = " page.count * *\r
+  %% " in " cite$ * * warning$\r
+\r
+  p1 p3 =   p2 "1" =   and   numpages empty.or.unknown   and\r
+    { "INFO: reduced pages = [" pages * "] to numpages = [" * page.count * "]" * warning$ }\r
+    {\r
+      numpages empty.or.unknown\r
+        { pages }\r
+        { numpages }\r
+      if$\r
+      'page.count :=\r
+    }\r
+  if$\r
+\r
+  p1 "1" =   p3 empty.or.unknown   and   numpages empty.or.unknown   and\r
+    {\r
+      p2 'page.count :=\r
+      "INFO: reduced pages = [" pages * "] to numpages = [" * page.count * "]" * warning$\r
+    }\r
+    {\r
+      numpages empty.or.unknown\r
+        { pages }\r
+        { numpages }\r
+      if$\r
+      'page.count :=\r
+    }\r
+  if$\r
+\r
+  %% "DEBUG: leave reduce.pages.to.page.count " cite$ * warning$\r
+}\r
+\r
+FUNCTION { new.block.checkb }\r
+{ % issue a new.block only if at least one of top two stack strings is not empty\r
+  empty.or.unknown\r
+  swap$ empty.or.unknown\r
+  and\r
+    'skip$\r
+    'new.block\r
+  if$\r
+}\r
+\r
+FUNCTION { field.or.null }\r
+{ % convert empty value to null string, else return value\r
+  duplicate$ empty.or.unknown\r
+    { pop$ "" }\r
+    'skip$\r
+  if$\r
+}\r
+\r
+FUNCTION { emphasize }\r
+{ % emphasize a non-empty top string on the stack (WITHOUT italic correction)\r
+  duplicate$ empty.or.unknown\r
+    { pop$ "" }\r
+    { "{\em " swap$ * "}" * }\r
+  if$\r
+}\r
+\r
+FUNCTION { emphasize.with.italic.correction }\r
+{ % convert empty string to null string, or emphasize with a trailing italic correction\r
+  duplicate$ empty.or.unknown\r
+    { pop$ "" }\r
+    { "{\em " swap$ * "\/}" * }\r
+  if$\r
+}\r
+\r
+FUNCTION { comma }\r
+{ % convert empty string to null string, or brace string and add trailing comma\r
+  duplicate$ empty.or.unknown\r
+    { pop$ "" }\r
+    { "{" swap$ * "}," * }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.names }\r
+{\r
+  % Format bibliographical entries with the first author last name first,\r
+  % and subsequent authors with initials followed by last name.\r
+  % All names are formatted in this routine.\r
+\r
+  's :=\r
+  #1 'nameptr :=               % nameptr = 1;\r
+  s num.names$ 'numnames :=    % numnames = num.name$(s);\r
+  numnames 'namesleft :=\r
+    { namesleft #0 > }\r
+    { nameptr #1 =\r
+        %NO: BAD ORDER: {"{" s nameptr "{ff~}{ll}{, jj}{, vv}" format.name$ * "}" * 't := }\r
+        %NO: BAD ORDER: {"{" s nameptr "{ff~}{ll}{, jj}{, vv}" format.name$ * "}" * 't := }\r
+        {"{" s nameptr "{ff }{vv }{ll}{, jj}" format.name$ * "}" * 't := }\r
+        {"{" s nameptr "{ff }{vv }{ll}{, jj}" format.name$ * "}" * 't := }\r
+      if$\r
+      nameptr #1 >\r
+        {\r
+          namesleft #1 >\r
+            { ", " * t * }\r
+            {\r
+              numnames #2 >\r
+                { "," * }\r
+                'skip$\r
+              if$\r
+              t "{\sc others}" =\r
+                { " {et~al\mbox{.}}" * } % jrh: avoid spacing problems\r
+                { " {and} " * t * } % from Chicago Manual of Style\r
+              if$\r
+            }\r
+          if$\r
+        }\r
+        't\r
+      if$\r
+      nameptr #1 + 'nameptr :=          % nameptr += 1;\r
+      namesleft #1 - 'namesleft :=      % namesleft =- 1;\r
+    }\r
+  while$\r
+}\r
+\r
+FUNCTION { my.full.label }\r
+{\r
+  's :=\r
+  #1 'nameptr :=               % nameptr = 1;\r
+  s num.names$ 'numnames :=    % numnames = num.name$(s);\r
+  numnames 'namesleft :=\r
+    { namesleft #0 > }\r
+\r
+    { s nameptr "{vv~}{ll}" format.name$ 't :=  % get the next name\r
+      nameptr #1 >\r
+        {\r
+          namesleft #1 >\r
+            { ", " * t * }\r
+            {\r
+              numnames #2 >\r
+                { "," * }\r
+                'skip$\r
+              if$\r
+              t "others" =\r
+                { " et~al\mbox{.}" * } % jrh: avoid spacing problems\r
+                { " and " * t * } % from Chicago Manual of Style\r
+              if$\r
+            }\r
+          if$\r
+        }\r
+        't\r
+      if$\r
+      nameptr #1 + 'nameptr :=          % nameptr += 1;\r
+      namesleft #1 - 'namesleft :=      % namesleft =- 1;\r
+    }\r
+  while$\r
+\r
+}\r
+\r
+FUNCTION { format.names.fml }\r
+{\r
+  % Format names in "familiar" format, with first initial followed by\r
+  % last name. Like format.names, ALL names are formatted.\r
+  % jtb: The names are NOT put in small caps\r
+\r
+  's :=\r
+  #1 'nameptr :=               % nameptr = 1;\r
+  s num.names$ 'numnames :=    % numnames = num.name$(s);\r
+  numnames 'namesleft :=\r
+    { namesleft #0 > }\r
+\r
+    {\r
+      "{" s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ * "}" * 't :=\r
+\r
+      nameptr #1 >\r
+        {\r
+          namesleft #1 >\r
+            { ", " * t * }\r
+            {\r
+              numnames #2 >\r
+                { "," * }\r
+                'skip$\r
+              if$\r
+              t "{others}" =\r
+                { " {et~al\mbox{.}}" * }\r
+                { " {and} " * t * }\r
+              if$\r
+            }\r
+          if$\r
+        }\r
+        't\r
+      if$\r
+      nameptr #1 + 'nameptr :=          % nameptr += 1;\r
+      namesleft #1 - 'namesleft :=      % namesleft =- 1;\r
+    }\r
+  while$\r
+}\r
+\r
+FUNCTION { format.authors }\r
+{\r
+  author empty.or.unknown\r
+    { "" }\r
+    { author format.names add.period$} % jtb: add period if none before\r
+  if$\r
+}\r
+\r
+FUNCTION { format.key }\r
+{\r
+  empty.or.unknown\r
+    { key field.or.null }\r
+    { "" }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.no.key }\r
+{\r
+  empty.or.unknown\r
+    { "" }\r
+    { "" }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.editors.fml }\r
+{\r
+  % Format editor names for use in the "in" types: inbook, incollection,\r
+  % inproceedings: first initial, then last names. When editors are the\r
+  % LABEL for an entry, then format.editor is used which lists editors\r
+  % by last name first.\r
+\r
+  editor empty.or.unknown\r
+    { "" }\r
+    {\r
+      editor format.names.fml editor num.names$ #1 >\r
+        { " (Eds.)" * }\r
+        { " (Ed.)" * }\r
+      if$\r
+    }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.editors }\r
+{ % format editor names for use in labels, last names first.\r
+  editor empty.or.unknown\r
+    { "" }\r
+    {\r
+      editor format.names\r
+      editor num.names$ #1 >\r
+        { " (Eds.)." * }\r
+        { " (Ed.)." * }\r
+      if$\r
+    }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.articletitle }\r
+{\r
+  title empty.or.unknown\r
+    { "" }\r
+    % Use this to preserve lettercase in titles:\r
+    { "\showarticletitle{" title * "}" * }\r
+    % Use this for downcase title style:\r
+    % { \showarticletitle{" title "t" change.case$ * "}" * }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.title }\r
+{\r
+  title empty.or.unknown\r
+    { "" }\r
+    % Use this to preserve lettercase in titles:\r
+    { title }\r
+    % Use this for downcase title style:\r
+    % { title "t" change.case$ }\r
+  if$\r
+}\r
+\r
+FUNCTION { n.dashify }\r
+{\r
+  't :=\r
+  ""\r
+    { t empty.or.unknown not }\r
+    {\r
+      t #1 #1 substring$ "-" =\r
+        {\r
+          t #1 #2 substring$ "--" = not\r
+            { "--" *\r
+              t #2 global.max$ substring$ 't :=\r
+            }\r
+            {\r
+              { t #1 #1 substring$ "-" = }\r
+              {\r
+                "-" *\r
+                t #2 global.max$ substring$ 't :=\r
+              }\r
+              while$\r
+            }\r
+          if$\r
+        }\r
+        {\r
+          t #1 #1 substring$ *\r
+          t #2 global.max$ substring$ 't :=\r
+        }\r
+      if$\r
+    }\r
+  while$\r
+}\r
+\r
+FUNCTION { format.btitle }\r
+{\r
+  edition empty.or.unknown\r
+  { title emphasize }\r
+  { title empty.or.unknown\r
+    { title emphasize } % jtb: what is this supposed to do ?!?\r
+    { "{\em " title * "\/} (" * edition "l" change.case$ * " ed.)" * } % jtb: no parens for ed.\r
+    if$\r
+  }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.emphasize.booktitle }\r
+{ % push "" or "{\em booktitle}" or "{\em booktitle}, (second ed.)" on stack\r
+  edition empty.or.unknown\r
+    { booktitle emphasize }\r
+    { booktitle empty.or.unknown\r
+      { "" }\r
+      { "{\em " booktitle * "} (" * edition "l" change.case$ * " ed.)" * }\r
+      if$\r
+    }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.city }\r
+{\r
+  % jtb: if the preceding string (the title of the conference) is non-empty,\r
+  % jtb: append the location, otherwise leave empty (so as to trigger the\r
+  % jtb: error message in output.check\r
+\r
+  duplicate$ empty.or.unknown\r
+    { }\r
+    {\r
+      city empty.or.unknown\r
+        {\r
+          date empty.or.unknown\r
+            { }\r
+            { " (" * date * ")" * }\r
+          if$\r
+        }\r
+        {\r
+          date empty.or.unknown\r
+            { " (" * city * ")" * }\r
+            { " (" * city * ", " * date * ")" * }\r
+          if$\r
+        }\r
+      if$\r
+    }\r
+  if$\r
+}\r
+\r
+FUNCTION { tie.or.space.connect }\r
+{\r
+  duplicate$ text.length$ #3 <\r
+    { "~" }\r
+    { " " }\r
+  if$\r
+  swap$ * *\r
+}\r
+\r
+FUNCTION { either.or.check }\r
+{\r
+  empty.or.unknown\r
+    'pop$\r
+    { "can't use both " swap$ * " fields in " * cite$ * warning$ }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.bvolume }\r
+{\r
+  % jtb: If there is a series, this is added and the volume trails after it.\r
+  % jtb: Otherwise, "Vol" is Capitalized.\r
+\r
+  volume empty.or.unknown\r
+    { "" }\r
+    {\r
+      series empty.or.unknown\r
+        { "Vol." volume tie.or.space.connect}\r
+        { series ", " * "Vol." volume tie.or.space.connect *}\r
+      if$\r
+      "volume and number" number either.or.check\r
+    }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.bvolume.noseries }\r
+{\r
+  volume empty.or.unknown\r
+    { "" }\r
+    {\r
+      series empty.or.unknown\r
+        { "Vol." volume tie.or.space.connect}\r
+        { "Vol." volume tie.or.space.connect}\r
+%        { series ", " * "Vol." volume tie.or.space.connect *}\r
+      if$\r
+      "volume and number" number either.or.check\r
+    }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.series }\r
+{\r
+  series empty.or.unknown\r
+    {""}\r
+    {" {\em (" * series ")}" *}\r
+  if$\r
+}\r
+\r
+FUNCTION { format.number.series }\r
+{\r
+  volume empty.or.unknown\r
+    {\r
+      number empty.or.unknown\r
+        {\r
+          volume empty.or.unknown\r
+          { "" }\r
+          {\r
+            series empty.or.unknown\r
+              { "" }\r
+              { " (" series * ")" * }\r
+            if$\r
+          }\r
+          if$\r
+        }                                       %    { series field.or.null }\r
+        {\r
+          output.state mid.sentence =\r
+            { "Number" }                        % gnp - changed to mixed case always\r
+            { "Number" }\r
+          if$\r
+          number tie.or.space.connect series empty.or.unknown\r
+            { "there's a number but no series in " cite$ * warning$ }\r
+            { " in " * series * }\r
+          if$\r
+        }\r
+      if$\r
+    }\r
+    {\r
+      ""\r
+    }\r
+  if$\r
+}\r
+\r
+FUNCTION { multi.page.check }\r
+{\r
+  't :=\r
+  #0 'multiresult :=\r
+    { multiresult not\r
+      t empty.or.unknown not\r
+      and\r
+    }\r
+    { t #1 #1 substring$\r
+      duplicate$ "-" =\r
+      swap$ duplicate$ "," =\r
+      swap$ "+" =\r
+      or or\r
+    { #1 'multiresult := }\r
+    { t #2 global.max$ substring$ 't := }\r
+      if$\r
+    }\r
+  while$\r
+  multiresult\r
+}\r
+\r
+FUNCTION { format.pages }\r
+{\r
+  pages empty.or.unknown\r
+    { "" }\r
+    {\r
+      pages multi.page.check\r
+        { pages n.dashify } % gnp - removed () % jtb: removed pp.\r
+        { pages }\r
+      if$\r
+    }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.pages.check.without.articleno }\r
+{ %% format pages field only if articleno is absent\r
+  %% Stack out: pages-specification\r
+  numpages missing$ pages missing$ and\r
+    { "page numbers missing in both pages and numpages fields in " cite$ * warning$ }\r
+    { }\r
+  if$\r
+\r
+  articleno empty.or.unknown\r
+    {\r
+      pages missing$\r
+        { numpages }\r
+        { format.pages }\r
+      if$\r
+    }\r
+    { "" }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.pages.check }\r
+{\r
+  pages empty.or.unknown\r
+    { "page numbers missing in " cite$ * warning$ "" }\r
+    { pages n.dashify }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.bookpages }\r
+{\r
+  bookpages empty.or.unknown\r
+    { "" }\r
+    { bookpages "book pages" tie.or.space.connect }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.named.pages }\r
+{\r
+  pages empty.or.unknown\r
+    { "" }\r
+    { format.pages "pages" tie.or.space.connect }\r
+  if$\r
+}\r
+\r
+%\r
+% Changed by Boris Veytsman, 2011-03-13\r
+% Now the word "pages" is printed even if\r
+% there field pages is not empty.\r
+%\r
+\r
+FUNCTION { format.page.count }\r
+{\r
+  page.count empty.or.unknown\r
+    { "" }\r
+    {\r
+      articleno empty.or.unknown\r
+        { "numpages field, but no articleno field, in " cite$ * warning$ }\r
+        { }\r
+      if$\r
+      page.count "pages" tie.or.space.connect\r
+    }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.articleno.numpages }\r
+{\r
+  %% There are seven possible outputs, depending on which fields are set.\r
+  %%\r
+  %% These four are handled here:\r
+  %%\r
+  %%     articleno, numpages, pages     -> "Article articleno-value, numpages-value pages"\r
+  %%     articleno, numpages            -> "Article articleno-value, numpages-value pages"\r
+  %%     articleno, pages               -> "Article articleno-value, reduced-pages-value pages"\r
+  %%     articleno                      -> "Article articleno-value" and warn about missing numpages\r
+  %%\r
+  %% The remaining three have already been handled by\r
+  %% format.pages.check.without.articleno:\r
+  %%\r
+  %%     numpages, pages                -> "pages-value"\r
+  %%     numpages                       -> "numpages-value"\r
+  %%     pages                          -> "pages-value"\r
+\r
+  articleno empty.or.unknown\r
+    {\r
+      numpages empty.or.unknown\r
+        { }\r
+        { "require articleno with numpages field in " cite$ * warning$ }\r
+      if$\r
+      ""\r
+    }\r
+    {\r
+      numpages empty.or.unknown\r
+        {\r
+          pages empty.or.unknown\r
+            {\r
+              "require pages or numpages fields with articleno field in " cite$ * warning$\r
+              "" 'page.count :=\r
+            }\r
+            { reduce.pages.to.page.count }\r
+          if$\r
+        }\r
+        { numpages 'page.count := }\r
+      if$\r
+\r
+      %% The Article number is now handled in format.day.month.year because\r
+      %% ACM prefers the style "Digital Libraries 12, 3, Article 5 (July 2008)"\r
+      %% over "Digital Libraries 12, 3 (July 2008), Article 5"\r
+      %% format.articleno output\r
+      format.page.count\r
+    }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.journal.volume.number.day.month.year }\r
+{\r
+  % By Young (and Spencer)\r
+  % GNP - fixed bugs with missing volume, number, and/or pages\r
+  %\r
+  % Format journal, volume, number, pages for article types.\r
+  %\r
+  journal empty.or.unknown\r
+    { "no journal in " cite$ * warning$\r
+      "" }\r
+%    { journal emphasize.with.italic.correction }\r
+     {\r
+           journal "Journal of the ACM" =\r
+       { "{\it J. ACM}" }\r
+       {\r
+           journal "American Mathematical Society Translations" =\r
+       { "{\it Amer. Math. Soc. Transl.}" }\r
+       {\r
+           journal "Bulletin of the American Mathematical Society" =\r
+       { "{\it Bull. Amer. Math. Soc.}" }\r
+       {\r
+           journal "Proceedings of the American Mathematical Society" =\r
+       { "{\it Proc. Amer. Math. Soc.}" }\r
+       {\r
+           journal "Transactions of the American Mathematical Society" =\r
+       { "{\it Trans. Amer. Math. Soc.}" }\r
+       {\r
+           journal "Communications of the {ACM}" =\r
+       { "{\it Commun. {ACM}}" }\r
+       {\r
+           journal "{ACM} Computing Surveys" =\r
+       { "{\it Comput. Surveys}" }\r
+       {\r
+           journal "{ACM} Transactions on Mathematical Software" =\r
+       { "{\it {ACM} Trans. Math. Software}" }\r
+       {\r
+           journal "{ACM} {SIGNUM} Newsletter" =\r
+       { "{\it {ACM} {SIGNUM} Newslett.}" }\r
+       {\r
+           journal "American Journal of Sociology" =\r
+       { "{\it Amer. J. Sociology}" }\r
+       {\r
+           journal "Journal of the American Statistical Association" =\r
+       { "{\it J. Amer. Statist. Assoc.}" }\r
+       {\r
+           journal "Applied Mathematics and Computation" =\r
+       { "{\it Appl. Math. Comput.}" }\r
+       {\r
+           journal "American Mathematical Monthly" =\r
+       { "{\it Amer. Math. Monthly}" }\r
+       {\r
+           journal "British Journal of Mathematical and Statistical Psychology" =\r
+       { "{\it Brit. J. Math. Statist. Psych.}" }\r
+       {\r
+           journal "Canadian Mathematical Bulletin" =\r
+       { "{\it Canad. Math. Bull.}" }\r
+       {\r
+           journal "Journal of Computational and Applied Mathematics" =\r
+       { "{\it J. Comput. Appl. Math.}" }\r
+       {\r
+           journal "Journal of Computational Physics" =\r
+       { "{\it J. Comput. Phys.}" }\r
+       {\r
+           journal "Computers and Structures" =\r
+       { "{\it Comput. \& Structures}" }\r
+       {\r
+           journal "The Computer Journal" =\r
+       { "{\it Comput. J.}" }\r
+       {\r
+           journal "Journal of Computer and System Sciences" =\r
+       { "{\it J. Comput. System Sci.}" }\r
+       {\r
+           journal "Contemporary Mathematics" =\r
+       { "{\it Contemp. Math.}" }\r
+       {\r
+           journal "Crelle's Journal" =\r
+       { "{\it Crelle's J.}" }\r
+       {\r
+           journal "Giornale di Mathematiche" =\r
+       { "{\it Giorn. Mat.}" }\r
+       {\r
+           journal "{IEEE} Transactions on Computers" =\r
+       { "{\it {IEEE} Trans. Comput.}" }\r
+       {\r
+           journal "{IEEE} Transactions on Automatic Control" =\r
+       { "{\it {IEEE} Trans. Automat. Control}" }\r
+       {\r
+           journal "Proceedings of the {IEEE}" =\r
+       { "{\it Proc. {IEEE}}" }\r
+       {\r
+           journal "{IEEE} Transactions on Aerospace and Electronic Systems" =\r
+       { "{\it {IEEE} Trans. Aerospace Electron. Systems}" }\r
+       {\r
+           journal "{IMA} Journal of Numerical Analysis" =\r
+       { "{\it {IMA} J. Numer. Anal.}" }\r
+       {\r
+           journal "Information Processing Letters" =\r
+       { "{\it Inform. Process. Lett.}" }\r
+       {\r
+           journal "Journal of the Institute of Mathematics and its Applications" =\r
+       { "{\it J. Inst. Math. Appl.}" }\r
+       {\r
+           journal "International Journal of Control" =\r
+       { "{\it Internat. J. Control}" }\r
+       {\r
+           journal "International Journal for Numerical Methods in Engineering" =\r
+       { "{\it Internat. J. Numer. Methods Engrg.}" }\r
+       {\r
+           journal "International Journal of Supercomputing Applications" =\r
+       { "{\it Internat. J. Supercomputing Applic.}" }\r
+       {\r
+           journal "Journal of Research of the National Bureau of Standards" =\r
+       { "{\it J. Res. Nat. Bur. Standards}" }\r
+       {\r
+           journal "Linear Algebra and its Applications" =\r
+       { "{\it Linear Algebra Appl.}" }\r
+       {\r
+           journal "Journal of Mathematical Analysis and Applications" =\r
+       { "{\it J. Math. Anal. Appl.}" }\r
+       {\r
+           journal "Mathematische Annalen" =\r
+       { "{\it Math. Ann.}" }\r
+       {\r
+           journal "Journal of Mathematical Physics" =\r
+       { "{\it J. Math. Phys.}" }\r
+       {\r
+           journal "Mathematics of Computation" =\r
+       { "{\it Math. Comp.}" }\r
+       {\r
+           journal "Mathematica Scandinavica" =\r
+       { "{\it Math. Scand.}" }\r
+       {\r
+           journal "Mathematical Tables and Other Aids to Computation" =\r
+       { "{\it Math. Tables Aids Comput.}" }\r
+       {\r
+           journal "Numerische Mathematik" =\r
+       { "{\it Numer. Math.}" }\r
+       {\r
+           journal "Pacific Journal of Mathematics" =\r
+       { "{\it Pacific J. Math.}" }\r
+       {\r
+           journal "Journal of Parallel and Distributed Computing" =\r
+       { "{\it J. Parallel and Distrib. Comput.}" }\r
+       {\r
+           journal "Parallel Computing" =\r
+       { "{\it Parallel Comput.}" }\r
+       {\r
+           journal "Philosophical Magazine" =\r
+       { "{\it Philos. Mag.}" }\r
+       {\r
+           journal "Proceedings of the National Academy of Sciences of the USA" =\r
+       { "{\it Proc. Nat. Acad. Sci. U. S. A.}" }\r
+       {\r
+           journal "Quarterly Journal of Mathematics, Oxford, Series (2)" =\r
+       { "{\it Quart. J. Math. Oxford Ser. (2)}" }\r
+       {\r
+           journal "Quarterly of Applied Mathematics" =\r
+       { "{\it Quart. Appl. Math.}" }\r
+       {\r
+           journal "Review of the International Statisical Institute" =\r
+       { "{\it Rev. Inst. Internat. Statist.}" }\r
+       {\r
+           journal "Journal of the Society for Industrial and Applied Mathematics" =\r
+       { "{\it J. Soc. Indust. Appl. Math.}" }\r
+       {\r
+           journal "Journal of the Society for Industrial and Applied Mathematics, Series B, Numerical Analysis" =\r
+       { "{\it J. Soc. Indust. Appl. Math. Ser. B Numer. Anal.}" }\r
+       {\r
+           journal "{SIAM} Journal on Algebraic and Discrete Methods" =\r
+       { "{\it {SIAM} J. Algebraic Discrete Methods}" }\r
+       {\r
+           journal "{SIAM} Journal on Applied Mathematics" =\r
+       { "{\it {SIAM} J. Appl. Math.}" }\r
+       {\r
+           journal "{SIAM} Journal on Computing" =\r
+       { "{\it {SIAM} J. Comput.}" }\r
+       {\r
+           journal "{SIAM} Journal on Matrix Analysis and Applications" =\r
+       { "{\it {SIAM} J. Matrix Anal. Appl.}" }\r
+       {\r
+           journal "{SIAM} Journal on Numerical Analysis" =\r
+       { "{\it {SIAM} J. Numer. Anal.}" }\r
+       {\r
+           journal "{SIAM} Review" =\r
+       { "{\it {SIAM} Rev.}" }\r
+       {\r
+           journal "{SIAM} Journal on Scientific and Statistical Computing" =\r
+       { "{\it {SIAM} J. Sci. Statist. Comput.}" }\r
+       {\r
+           journal "Software Practice and Experience" =\r
+       { "{\it Software Prac. Experience}" }\r
+       {\r
+           journal "Statistical Science" =\r
+       { "{\it Statist. Sci.}" }\r
+       {\r
+           journal "{USSR} Computational Mathematics and Mathematical Physics" =\r
+       { "{\it {U. S. S. R.} Comput. Math. and Math. Phys.}" }\r
+       {\r
+           journal "Journal of {VLSI} and Computer Systems" =\r
+       { "{\it J. {VLSI} Comput. Syst.}" }\r
+       {\r
+           journal "Zeitschrift fur Angewandte Mathematik und Mechanik" =\r
+       { "{\it Z. Angew. Math. Mech.}" }\r
+       {\r
+           journal "Zeitschrift fur Angewandte Mathematik und Physik" =\r
+       { "{\it Z. Angew. Math. Phys.}" }\r
+       {\r
+           journal "ACM Computing Surveys" =\r
+       { "{\it Comput. Surveys}" }\r
+       {\r
+           journal "ACM Transactions on Mathematical Software" =\r
+       { "{\it ACM Trans. Math. Software}" }\r
+       {\r
+           journal "ACM {SIGNUM} Newsletter" =\r
+       { "{\it ACM {SIGNUM} Newslett.}" }\r
+       {\r
+           journal "IEEE Transactions on Computers" =\r
+       { "{\it IEEE Trans. Comput.}" }\r
+       {\r
+           journal "IEEE Transactions on Automatic Control" =\r
+       { "{\it IEEE Trans. Automat. Control}" }\r
+       {\r
+           journal "Proceedings of the IEEE" =\r
+       { "{\it Proc. IEEE}" }\r
+       {\r
+           journal "IEEE Transactions on Aerospace and Electronic Systems" =\r
+       { "{\it IEEE Trans. Aerospace Electron. Systems}" }\r
+       {\r
+           journal "IMA Journal of Numerical Analysis" =\r
+       { "{\it IMA J. Numer. Anal.}" }\r
+       {\r
+           journal "SIAM Journal on Algebraic and Discrete Methods" =\r
+       { "{\it SIAM J. Algebraic Discrete Methods}" }\r
+       {\r
+           journal "SIAM Journal on Applied Mathematics" =\r
+       { "{\it SIAM J. Appl. Math.}" }\r
+       {\r
+           journal "SIAM Journal on Computing" =\r
+       { "{\it SIAM J. Comput.}" }\r
+       {\r
+           journal "SIAM Journal on Matrix Analysis and Applications" =\r
+       { "{\it SIAM J. Matrix Anal. Appl.}" }\r
+       {\r
+           journal "SIAM Journal on Numerical Analysis" =\r
+       { "{\it SIAM J. Numer. Anal.}" }\r
+       {\r
+           journal "SIAM Review" =\r
+       { "{\it SIAM Rev.}" }\r
+       {\r
+           journal "SIAM Journal on Scientific and Statistical Computing" =\r
+       { "{\it SIAM J. Sci. Statist. Comput.}" }\r
+       {\r
+           journal "USSR Computational Mathematics and Mathematical Physics" =\r
+       { "{\it U. S. S. R. Comput. Math. and Math. Phys.}" }\r
+       {\r
+           journal "Journal of VLSI and Computer Systems" =\r
+       { "{\it J. VLSI Comput. Syst.}" }\r
+       {\r
+           journal "Communications of the ACM" =\r
+       { "{\it Commun. ACM}" }\r
+       %% If no match with cases needing special handling, just output journal name\r
+       {  journal emphasize.with.italic.correction  }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+           }\r
+     if$\r
+         }\r
+    if$\r
+\r
+  number empty.or.unknown\r
+    {\r
+      volume empty.or.unknown\r
+        { "no number and no volume in " cite$ * warning$ "" * }\r
+        { " " * " {" * volume * "}" * }\r
+      if$\r
+    }\r
+    {\r
+      volume empty.or.unknown\r
+        {\r
+          "unusual to have number, but no volume, for " cite$ * warning$\r
+          " " * number *\r
+        }\r
+        { " " * volume comma " " * number * * }\r
+      if$\r
+    }\r
+  if$\r
+\r
+  format.day.month.year *\r
+}\r
+\r
+FUNCTION { format.chapter.pages }\r
+{\r
+  chapter empty.or.unknown\r
+    'format.pages\r
+    { type empty.or.unknown\r
+        { "Chapter" } % gnp - changed to mixed case\r
+        { type "t" change.case$ }\r
+      if$\r
+      chapter tie.or.space.connect\r
+      pages empty.or.unknown\r
+        {"page numbers missing in " cite$ * warning$} % gnp - added check\r
+        { ", " * format.pages * }\r
+      if$\r
+    }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.in.emphasize.booktitle }\r
+{ % jtb: format for collections or proceedings not appearing in a journal\r
+  booktitle empty.or.unknown\r
+  { "" }\r
+  { "In " format.emphasize.booktitle * }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.in.booktitle }\r
+{ % jtb: format for proceedings appearing in a journal\r
+  booktitle empty.or.unknown\r
+  { "" }\r
+  { "In " booktitle * }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.in.ed.booktitle }\r
+{\r
+  booktitle empty.or.unknown\r
+  { "" }\r
+  { editor empty.or.unknown\r
+    { "In " format.emphasize.booktitle * }\r
+                % jtb: swapped editor location\r
+    { "In " format.emphasize.booktitle * ", " * format.editors.fml * }\r
+    if$\r
+  }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.thesis.type }\r
+{ % call with default type on stack top\r
+  type empty.or.unknown\r
+    'skip$    % use default type\r
+    {\r
+      pop$    % discard default type\r
+      % NO: it is silly to have to brace protect every degree type!:  type "t" change.case$\r
+      type\r
+    }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.tr.number }\r
+{\r
+  type empty.or.unknown\r
+%    { "Tech. Rep." }     \r
+    { "{T}echnical {R}eport" }     % ACM wants it explicit (Gerry 9/28)\r
+    'type\r
+  if$\r
+  number empty.or.unknown\r
+    { "t" change.case$ }\r
+    %% LOOKS BAD: { "." * number tie.or.space.connect }\r
+    %% Prefer "Research report RJ687." to "Research report. RJ687."\r
+    { number tie.or.space.connect }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.advisor }\r
+{\r
+  advisor empty.or.unknown\r
+    { "" }\r
+    { "Advisor(s) " advisor * }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.article.crossref }\r
+{ "See"\r
+  "\citeN{" * crossref * "}" *\r
+}\r
+\r
+FUNCTION { format.crossref.editor }\r
+{\r
+  editor #1 "{vv~}{ll}" format.name$\r
+  editor num.names$ duplicate$\r
+  #2 >\r
+    { pop$ " et~al\mbox{.}" * }         % jrh: avoid spacing problems\r
+    { #2 <\r
+    'skip$\r
+    { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =\r
+        { " et~al\mbox{.}" * }          % jrh: avoid spacing problems\r
+        { " and " * editor #2 "{vv~}{ll}" format.name$ * }\r
+      if$\r
+    }\r
+      if$\r
+    }\r
+  if$\r
+}\r
+\r
+FUNCTION { format.book.crossref }\r
+{\r
+  volume empty.or.unknown\r
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$\r
+      "In "\r
+    }\r
+    { "Volume" volume tie.or.space.connect % gnp - changed to mixed case\r
+      " of " *\r
+    }\r
+  if$\r
+  editor empty.or.unknown\r
+  editor field.or.null author field.or.null =\r
+  or\r
+    { key empty.or.unknown\r
+    { series empty.or.unknown\r
+        { "need editor, key, or series for " cite$ * " to crossref " *\r
+          crossref * warning$\r
+          "" *\r
+        }\r
+        { "{\em " * series * "\/}" * }\r
+      if$\r
+    }\r
+    { key * }\r
+      if$\r
+    }\r
+    { format.crossref.editor * }\r
+  if$\r
+  " \citeN{" * crossref * "}" *\r
+}\r
+\r
+FUNCTION { format.incoll.inproc.crossref }\r
+{ "See"\r
+  " \citeN{" * crossref * "}" *\r
+}\r
+\r
+FUNCTION { format.lab.names }\r
+{\r
+  % format.lab.names:\r
+  %\r
+  % determines "short" names for the abbreviated author information.\r
+  % "Long" labels are created in calc.label, using the routine my.full.label\r
+  % to format author and editor fields.\r
+  %\r
+  % There are 4 cases for labels.   (n=3 in the example)\r
+  % a) one author             Foo\r
+  % b) one to n               Foo, Bar and Baz\r
+  % c) use of "and others"    Foo, Bar et al.\r
+  % d) more than n            Foo et al.\r
+\r
+  's :=\r
+  s num.names$ 'numnames :=\r
+  numnames #2 >    % change number to number of others allowed before\r
+                   % forcing "et al".\r
+    { s #1 "{vv~}{ll}" format.name$ " et~al\mbox{.}" * } % jrh: \mbox{} added\r
+    {\r
+      numnames #1 - 'namesleft :=\r
+      #2 'nameptr :=\r
+      s #1 "{vv~}{ll}" format.name$\r
+        { namesleft #0 > }\r
+        { nameptr numnames =\r
+            { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =\r
+                { " et~al\mbox{.}" * }          % jrh: avoid spacing problems\r
+                { " and " * s nameptr "{vv~}{ll}" format.name$ * }\r
+              if$\r
+            }\r
+            { ", " * s nameptr "{vv~}{ll}" format.name$ * }\r
+          if$\r
+          nameptr #1 + 'nameptr :=\r
+          namesleft #1 - 'namesleft :=\r
+        }\r
+      while$\r
+    }\r
+  if$\r
+}\r
+\r
+FUNCTION { author.key.label }\r
+{\r
+  author empty.or.unknown\r
+    { key empty.or.unknown\r
+          { "no key, author in " cite$ * warning$\r
+            cite$ #1 #3 substring$ }\r
+         'key\r
+      if$\r
+    }\r
+    { author format.lab.names }\r
+  if$\r
+}\r
+\r
+FUNCTION { author.key.organization.label }\r
+{ % added - gnp. Provide label formatting by organization if author is null.\r
+  author empty.or.unknown\r
+    { organization empty.or.unknown\r
+        { key empty.or.unknown\r
+            { "no key, author or organization in " cite$ * warning$\r
+              cite$ #1 #3 substring$ }\r
+            'key\r
+          if$\r
+        }\r
+        { organization }\r
+      if$\r
+    }\r
+    { author format.lab.names }\r
+  if$\r
+}\r
+\r
+FUNCTION { editor.key.organization.label }\r
+{ % added - gnp. Provide label formatting by organization if editor is null.\r
+  editor empty.or.unknown\r
+    { organization empty.or.unknown\r
+        { key empty.or.unknown\r
+            { "no key, editor or organization in " cite$ * warning$\r
+              cite$ #1 #3 substring$ }\r
+            'key\r
+          if$\r
+        }\r
+        { organization }\r
+      if$\r
+    }\r
+    { editor format.lab.names }\r
+  if$\r
+}\r
+\r
+FUNCTION { author.editor.key.label }\r
+{\r
+  author empty.or.unknown\r
+    { editor empty.or.unknown\r
+          { key empty.or.unknown\r
+               { "no key, author, or editor in " cite$ * warning$\r
+                 cite$ #1 #3 substring$ }\r
+             'key\r
+           if$\r
+         }\r
+          { editor format.lab.names }\r
+      if$\r
+    }\r
+    { author format.lab.names }\r
+  if$\r
+}\r
+\r
+FUNCTION { calc.label }\r
+{\r
+  % Changed - GNP. See also author.organization.sort, editor.organization.sort\r
+  % Form label for BibTeX entry. The classification of which fields are used\r
+  % for which type of entry (book, inbook, etc.) are taken from alpha.bst.\r
+  % The change here from newapa is to also include organization as a\r
+  % citation label if author or editor is missing.\r
+\r
+  type$ "book" =\r
+  type$ "inbook" =\r
+  or\r
+  type$ "periodical" =\r
+  or\r
+    'author.editor.key.label\r
+    { type$ "proceedings" =\r
+        'editor.key.organization.label\r
+        { type$ "manual" =\r
+            'author.key.organization.label\r
+            'author.key.label\r
+          if$\r
+        }\r
+      if$\r
+    }\r
+  if$\r
+\r
+  author empty.or.unknown  % generate the full label citation information.\r
+    {\r
+      editor empty.or.unknown\r
+        {\r
+          organization empty.or.unknown\r
+            {\r
+              key empty.or.unknown\r
+                {\r
+                  "no author, editor, organization, or key in " cite$ * warning$\r
+                  "??"\r
+                }\r
+                { key }\r
+              if$\r
+            }\r
+            { organization }\r
+          if$\r
+        }\r
+        { editor my.full.label }\r
+      if$\r
+    }\r
+    { author my.full.label }\r
+  if$\r
+\r
+  % leave label on the stack, to be popped when required.\r
+\r
+  "}{" * swap$ * "}{" *\r
+  %  year field.or.null purify$ #-1 #4 substring$ *\r
+  %\r
+  % save the year for sort processing afterwards (adding a, b, c, etc.)\r
+  %\r
+  year field.or.null purify$ #-1 #4 substring$\r
+  'label.year :=\r
+}\r
+\r
+%\r
+% Change by Gerry: use number-like citations for transactions\r
+% 2011/03/23\r
+%\r
+%FUNCTION {output.bibitem}\r
+%{ newline$\r
+%  "\bibitem{" write$\r
+%  cite$ write$\r
+%  "}" write$\r
+%  newline$\r
+%  ""\r
+%  before.all 'output.state :=\r
+%}\r
+\r
+FUNCTION { output.bibitem }\r
+{\r
+  newline$\r
+  "\bibitem[\protect\citeauthoryear{" write$\r
+  calc.label write$\r
+  sort.year write$\r
+  "}]%" writeln\r
+  "        {" write$\r
+  cite$ write$\r
+  "}" writeln\r
+  ""\r
+  before.all 'output.state :=\r
+}\r
+\r
+\r
+FUNCTION { output.issue.doi.coden.isxn.lccn.url }\r
+{ % enter and return with stack empty\r
+  %% We switch now from buffered output to output of complete lines, so\r
+  %% that the Issue .. URL data have their own lines, and are less likely\r
+  %% to be line-wrapped by BibTeX's short-sighted algorithm, which wraps\r
+  %% lines longer than 79 characters, backtracking to what it thinks is\r
+  %% a break point in the string.  Any such wrapping MUST be undone to\r
+  %% prevent percent-newline from appearing in DOIs and URLs.  The\r
+  %% output data are intentionally wrapped in \showxxx{} macros at\r
+  %% beginning of line, and that supply their own punctuation (if they\r
+  %% are not defined to suppress output entirely), to make it easier for\r
+  %% other software to recover them from .bbl files.\r
+  %%\r
+  %% It also makes it possible to later change the macro definitions\r
+  %% to suppress particular output values, or alter their appearance.\r
+  %%\r
+  %% Note that it is possible for theses, technical reports, and\r
+  %% manuals to have ISBNs, and anything that has an ISBN may also\r
+  %% have an ISSN.  When there are no values for these keys, there\r
+  %% is no output generated for them here.\r
+\r
+  "\newblock" writeln\r
+  after.block 'output.state :=\r
+\r
+  output.issue\r
+  output.isbn\r
+  output.coden  % CODEN is functionally like ISSN, so output them sequentially\r
+  output.issn\r
+  output.lccn\r
+  output.doi    % DOI is ALWAYS last according to CrossRef DOI documentation\r
+  output.url    % but ACM wants URL last\r
+}\r
+\r
+FUNCTION { output.issue.doi.coden.isxn.lccn.url.note }\r
+{ % enter with stack empty, return with empty string on stack\r
+  output.issue.doi.coden.isxn.lccn.url\r
+  note empty.or.unknown\r
+    { }\r
+    {\r
+      "\newblock" writeln\r
+      output.note\r
+    }\r
+  if$\r
+  ""\r
+}\r
+\r
+FUNCTION { output.issue.doi.coden.isxn.lccn.url.note.check }\r
+{ % enter with stack empty, return with empty string on stack\r
+  output.issue.doi.coden.isxn.lccn.url\r
+  note empty.or.unknown\r
+    { }\r
+    {\r
+      "\newblock" writeln\r
+      output.note.check\r
+    }\r
+  if$\r
+  ""\r
+}\r
+\r
+FUNCTION { article }\r
+{\r
+  output.bibitem\r
+\r
+  author empty.or.unknown\r
+    {\r
+      editor empty.or.unknown\r
+        { "neither author and editor supplied for " cite$ * warning$ }\r
+        { format.editors "editor" output.check }\r
+      if$\r
+    }\r
+    { format.authors "author" output.check }\r
+  if$\r
+\r
+  author format.no.key output       % added\r
+  output.year.check                 % added\r
+  new.block\r
+  format.articletitle "title" output.check\r
+  new.block\r
+  howpublished output\r
+\r
+  crossref missing$\r
+    { format.journal.volume.number.day.month.year }\r
+    {\r
+      "cross reference in @Article{...} is unusual" warning$\r
+      format.article.crossref output.nonnull\r
+    }\r
+  if$\r
+  output\r
+\r
+  format.pages.check.without.articleno output\r
+  format.articleno.numpages output\r
+  fin.block\r
+  output.issue.doi.coden.isxn.lccn.url.note\r
+  fin.entry\r
+}\r
+\r
+FUNCTION { book }\r
+{\r
+  output.bibitem\r
+  author empty.or.unknown\r
+    { format.editors "author and editor" output.check }\r
+    { format.authors output.nonnull\r
+      crossref missing$\r
+        { "author and editor" editor either.or.check }\r
+        'skip$\r
+      if$\r
+    }\r
+  if$\r
+  output.year.check       % added\r
+  new.block\r
+  format.btitle "title" output.check\r
+  crossref missing$\r
+    { new.sentence              % jtb: start a new sentence for series/volume\r
+      format.bvolume output\r
+      new.block\r
+      format.number.series output\r
+      new.sentence\r
+      publisher "publisher" output.check\r
+      address "address" output.check    % jtb: require address\r
+      fin.sentence\r
+      pages empty.or.unknown\r
+        { format.bookpages }    % use bookpages when pages empty\r
+        { format.pages.check "pages" tie.or.space.connect }\r
+      if$\r
+      output\r
+    }\r
+    { new.block\r
+      format.book.crossref output.nonnull\r
+    }\r
+  if$\r
+  fin.block\r
+  output.issue.doi.coden.isxn.lccn.url.note\r
+  fin.entry\r
+}\r
+\r
+FUNCTION { booklet }\r
+{\r
+  output.bibitem\r
+  format.authors output\r
+  author format.key output          % added\r
+  output.year.check                 % added\r
+  new.block\r
+  format.title "title" output.check\r
+  new.block\r
+  howpublished output\r
+  address output\r
+  fin.block\r
+  output.issue.doi.coden.isxn.lccn.url.note\r
+  fin.entry\r
+}\r
+\r
+FUNCTION { inbook }\r
+{\r
+  output.bibitem\r
+  author empty.or.unknown\r
+    { format.editors\r
+      "author and editor" output.check\r
+    }\r
+    { format.authors output.nonnull\r
+      crossref missing$\r
+    { "author and editor" editor either.or.check }\r
+    'skip$\r
+      if$\r
+    }\r
+  if$\r
+  output.year.check                 % added\r
+  new.block\r
+  format.btitle "title" output.check\r
+  crossref missing$\r
+    { new.sentence              % jtb: start a new sentence for series/volume\r
+      format.bvolume output\r
+      new.block\r
+      format.number.series output\r
+      new.sentence\r
+      publisher "publisher" output.check\r
+      address "address" output.check    % jtb: require address\r
+      format.bookpages output\r
+      format.chapter.pages\r
+      "chapter and pages" output.check  % jtb: moved from before publisher\r
+    }\r
+    {\r
+      format.bookpages output\r
+      format.chapter.pages "chapter and pages" output.check\r
+      new.block\r
+      format.book.crossref output.nonnull\r
+    }\r
+  if$\r
+  fin.block\r
+  output.issue.doi.coden.isxn.lccn.url.note\r
+  fin.entry\r
+}\r
+\r
+FUNCTION { incollection }\r
+{\r
+  output.bibitem\r
+  format.authors "author" output.check\r
+  author format.key output       % added\r
+  output.year.check              % added\r
+  new.block\r
+  format.articletitle "title" output.check\r
+  new.block\r
+  crossref missing$\r
+    { format.in.ed.booktitle "booktitle" output.check\r
+      new.sentence                % jtb: start a new sentence for series/volume\r
+      format.bvolume output\r
+      format.number.series output\r
+      new.sentence\r
+      publisher "publisher" output.check\r
+      address "address" output.check      % jtb: require address\r
+      format.bookpages output\r
+      format.chapter.pages output % gnp - was special.output.nonnull\r
+                                  % left out comma before page numbers\r
+                                  % jtb: moved from before publisher\r
+    }\r
+    {\r
+      format.incoll.inproc.crossref output.nonnull\r
+      format.chapter.pages output\r
+    }\r
+  if$\r
+  fin.block\r
+  output.issue.doi.coden.isxn.lccn.url.note\r
+  fin.entry\r
+}\r
+\r
+FUNCTION { inproceedings }\r
+{\r
+  output.bibitem\r
+  format.authors "author" output.check\r
+  author format.key output            % added\r
+  output.year.check                   % added\r
+  new.block\r
+  format.articletitle "title" output.check\r
+  howpublished output.dot.space\r
+  crossref missing$\r
+    {\r
+      journal missing$          % jtb: proceedings appearing in journals\r
+        { format.in.emphasize.booktitle format.city "booktitle"  output.check.dot.space\r
+          format.series output.removenospace\r
+          format.editors.fml output % BV 2011/09/27 Moved dot to comma\r
+          format.bvolume.noseries output\r
+          new.sentence\r
+          organization output\r
+          publisher "publisher" output.check % jtb: require publisher (?)\r
+          address "address" output.check  % jtb: require address\r
+          format.bookpages output\r
+        }\r
+        {\r
+           format.in.booktitle format.city "booktitle" output.check\r
+           format.editors.fml output\r
+           new.sentence\r
+           format.journal.volume.number.day.month.year output\r
+        }\r
+      if$\r
+      format.articleno output\r
+      format.pages.check.without.articleno output\r
+    }\r
+    {\r
+      format.incoll.inproc.crossref output.nonnull\r
+      format.articleno output\r
+      format.pages.check.without.articleno output\r
+    }\r
+  if$\r
+  format.articleno.numpages output\r
+  fin.block\r
+  output.issue.doi.coden.isxn.lccn.url.note\r
+  fin.entry\r
+}\r
+\r
+FUNCTION { conference } { inproceedings }\r
+\r
+FUNCTION { manual }\r
+{\r
+  output.bibitem\r
+  author empty.or.unknown\r
+    { editor empty.or.unknown\r
+      { organization "organization" output.check\r
+        organization format.key output }  % if all else fails, use key\r
+      { format.editors "author and editor" output.check }\r
+      if$\r
+    }\r
+    { format.authors output.nonnull }\r
+    if$\r
+  output.year.check                 % added\r
+  new.block\r
+  format.btitle "title" output.check\r
+  organization address new.block.checkb\r
+  % jtb: back to normal style: organization, address\r
+  organization "organization" output.check\r
+  address output\r
+  fin.block\r
+  output.issue.doi.coden.isxn.lccn.url.note\r
+  fin.entry\r
+}\r
+\r
+FUNCTION { mastersthesis }\r
+{\r
+  output.bibitem\r
+  format.authors "author" output.check\r
+  author format.key output          % added\r
+  output.year.check                 % added\r
+  new.block\r
+  format.title emphasize "title" output.check  % NB: ACM style requires emphasized thesis title\r
+  new.block\r
+  "Master's\ thesis" format.thesis.type output new.sentence  % Added dot. BV 2011/09/27\r
+  school "school" output.check\r
+  address output\r
+  new.block\r
+  format.advisor output\r
+  fin.block\r
+  output.issue.doi.coden.isxn.lccn.url.note\r
+  fin.entry\r
+}\r
+\r
+FUNCTION { misc }\r
+{\r
+  output.bibitem\r
+  format.authors output\r
+  author format.key output            % added\r
+  output.year.check                   % added\r
+  title howpublished new.block.checkb\r
+  format.title output\r
+  new.block\r
+  howpublished output\r
+  "" output.nonnull.dot.space\r
+  output.day.month.year              % Gerry - appears odd if (only) the year is 'repeated' but (appears) 'valuable' if the month/day is _also_ included - 2011/09/28\r
+  fin.block\r
+  output.issue.doi.coden.isxn.lccn.url.note\r
+  fin.entry\r
+}\r
+\r
+FUNCTION { phdthesis }\r
+{\r
+  output.bibitem\r
+  format.authors "author" output.check\r
+  author format.key output          % added\r
+  output.year.check                 % added\r
+  new.block\r
+  format.title emphasize "title" output.check  % NB: ACM style requires emphasized thesis title\r
+  new.block\r
+ "Ph.D. Dissertation" format.thesis.type output new.sentence % Added dot. BV 2011/09/27\r
+  school "school" output.check\r
+  address output\r
+  new.block\r
+  format.advisor output\r
+  fin.block\r
+  output.issue.doi.coden.isxn.lccn.url.note\r
+  fin.entry\r
+}\r
+\r
+FUNCTION {format.date}\r
+{ year empty.or.unknown\r
+    { month empty.or.unknown\r
+        {\r
+          ""                    % output empty date if year/month both empty\r
+          day empty.or.unknown\r
+            {  }\r
+            { "there's a day but no month or year in " cite$ * warning$ }\r
+          if$\r
+        }\r
+        { "there's a month but no year in " cite$ * warning$\r
+          month\r
+          day empty.or.unknown\r
+            { }\r
+            { " " * day * }\r
+          if$\r
+        }\r
+      if$\r
+    }\r
+    { month empty.or.unknown\r
+        {\r
+          year                  % output only year if month empty\r
+          day empty.or.unknown\r
+            {  }\r
+            { "there's a day and year but no month in " cite$ * warning$ }\r
+          if$\r
+        }\r
+        {\r
+          month " " *\r
+          day empty.or.unknown\r
+            { }\r
+            { day * ", " * }\r
+          if$\r
+          year *\r
+        }\r
+      if$\r
+    }\r
+  if$\r
+}\r
+\r
+FUNCTION {new.block.checka}\r
+{\r
+  empty.or.unknown\r
+    'skip$\r
+    'new.block\r
+  if$\r
+}\r
+\r
+FUNCTION { periodical }\r
+{\r
+  output.bibitem\r
+  editor empty.or.unknown\r
+    { organization output }\r
+    { format.editors output.nonnull }\r
+  if$\r
+  new.block\r
+  title emphasize "title" output.check\r
+  format.date output\r
+  new.sentence\r
+  publisher output\r
+  address output\r
+  howpublished new.block.checka\r
+  howpublished output\r
+  fin.block\r
+  output.issue.doi.coden.isxn.lccn.url.note\r
+  fin.entry\r
+}\r
+\r
+FUNCTION { proceedings }\r
+{\r
+  output.bibitem\r
+  editor empty.or.unknown\r
+    { organization output\r
+      organization format.key output }  % gnp - changed from author format.key\r
+    { format.editors output.nonnull }\r
+  if$\r
+  % author format.key output             % gnp - removed (should be either\r
+  %                                        editor or organization\r
+  output.year.check                    % added (newapa)\r
+  new.block\r
+  format.btitle format.city "title" output.check        % jtb: added city\r
+  new.sentence\r
+  format.bvolume output\r
+  format.number.series output\r
+  new.sentence\r
+  organization output\r
+  % jtb: normal order: publisher, address\r
+  publisher output\r
+  address output\r
+  fin.block\r
+  output.issue.doi.coden.isxn.lccn.url.note\r
+  fin.entry\r
+}\r
+\r
+FUNCTION { techreport }\r
+{\r
+  output.bibitem\r
+  format.authors "author" output.check\r
+  author format.key output             % added\r
+  output.year.check                    % added\r
+  new.block\r
+  format.btitle "title" output.check\r
+  new.block\r
+%   format.tr.number output               % jtb: moved month ...\r
+  format.tr.number output new.sentence    % Gerry  - need dot 2011/09/28\r
+  institution "institution" output.check\r
+  address output\r
+  new.sentence\r
+  format.named.pages output\r
+  % ACM omits year at end in transactions style\r
+  % format.day.month.year output.nonnull.dot.space  % jtb: ... to here (no parens)\r
+  fin.block\r
+  output.issue.doi.coden.isxn.lccn.url.note\r
+  fin.entry\r
+}\r
+\r
+FUNCTION { unpublished }\r
+{\r
+  output.bibitem\r
+  format.authors\r
+  "author" output.check\r
+  author format.key output              % added\r
+  output.year.check                     % added\r
+  new.block\r
+  format.title "title" output.check\r
+  fin.sentence\r
+  output.day.month.year                 % UTAH\r
+  fin.block\r
+  output.issue.doi.coden.isxn.lccn.url.note.check\r
+  fin.entry\r
+}\r
+\r
+FUNCTION { default.type } { misc }\r
+\r
+%%% ACM journal-style month definitions: full name if 1--5 letters, else\r
+%%% abbreviation of 3 or 4 characters and a dot\r
+\r
+MACRO {jan}             {"Jan."}\r
+\r
+MACRO {feb}             {"Feb."}\r
+\r
+MACRO {mar}             {"March"}\r
+\r
+MACRO {apr}             {"April"}\r
+\r
+MACRO {may}             {"May"}\r
+\r
+MACRO {jun}             {"June"}\r
+\r
+MACRO {jul}             {"July"}\r
+\r
+MACRO {aug}             {"Aug."}\r
+\r
+MACRO {sep}             {"Sept."}\r
+\r
+MACRO {oct}             {"Oct."}\r
+\r
+MACRO {nov}             {"Nov."}\r
+\r
+MACRO {dec}             {"Dec."}\r
+\r
+\r
+%%% ====================================================================\r
+%%%                 I M P O R T A N T   C H A N G E\r
+%%%\r
+%%% For the 2009 release of the official acm-*.bst files, there are to\r
+%%% be NO predefined journal abbreviations in those style files.\r
+%%%\r
+%%% ACM may later develop an official list of mappings of full journal\r
+%%% names of commonly-cited journals to ACM-preferred abbreviations, but\r
+%%% authors should consider that use of any of these commented-out\r
+%%% abbreviations is DEPRECATED unless the BibTeX file itself provides\r
+%%% its own @String{name = "value"} definitions.\r
+%%%\r
+%%% Use of journal (and publisher and address) @String{...}\r
+%%% abbreviations, as opposed to explicit value assignments such as\r
+%%% journal = "J. ACM" and publisher = "IEEE", is preferred in\r
+%%% bibliographic databases, because it makes it easier for journal\r
+%%% production staff to replace those definitions by publisher-preferred\r
+%%% abbreviations when articles are typeset for publication.\r
+%%%\r
+%%% For historical reasons, and because some of these abbreviations are\r
+%%% used in other (non-ACM) bibliography style files, they are preserved\r
+%%% here in comments.  Future releases of the acm*-.bst files are likely\r
+%%% to remove them entirely.\r
+%%% ====================================================================\r
+%%%\r
+%%% DEPRECATED: MACRO {acmcs}           {"ACM Comput. Surv."}                   % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {acmlett}         {"ACM Lett. Program. Lang. Syst."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {acta}            {"Acta Inf."}                           % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {ai}              {"Artificial Intelligence"}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {al}              {"Ada Lett."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {acr}             {"Adv. Comput. Res."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {bit}             {"Bit"}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {cacm}            {"Commun. ACM"}                         % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {cj}              {"Comput. J."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {cn}              {"Comput. Netw."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {cl}              {"Comput. Lang."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {ibmjrd}          {"IBM J. Res. and Development"}         % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {ibmsj}           {"IBM Systems Journal"}                 % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {ict}             {"Inf. Contr."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {ieebcs}          {"IEE/BCS Softw. Eng. J."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {ieees}           {"IEEE Softw."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {ieeese}          {"IEEE Trans. Softw. Eng."}             % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {ieeetc}          {"IEEE Trans. Comput."}                 % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {ieeetcad}        {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {ieeetpds}        {"IEEE Trans. Parall. Distrib. Syst."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {ieeetit}         {"IEEE Trans. Inf. Theory"}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {ipl}             {"Inf. Process. Lett."}                 % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {icp}             {"Inf. Comput."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {ist}             {"Inf. Softw. Tech."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {ijsa}            {"Int. J. Supercomput. Appl."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {ijpp}            {"Int. J. Parallel Program."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {jacm}            {"J. ACM"}                              % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: % MACRO {jcss}          {"Journal of Computer and System Sciences"} % original BibTeX\r
+%%% DEPRECATED: MACRO {jcss}            {"J. Comput. Syst. Sci."}               % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {jlp}             {"J. Logic Program."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {jfp}             {"J. Funct. Program."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {jsmrp}           {"J. Softw. Maint. Res. Pract."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {jss}             {"J. Syst. Softw."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {jlc}             {"J. Logic and Comput."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {jlsc}            {"J. Lisp Symb. Comput."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {lpls}            {"Lett. Program. Lang. Syst."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {mor}             {"Math. Oper. Res."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {mscs}            {"Math. Struct. Comput. Sci."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {mst}             {"Math. Syst. Theor."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {ngc}             {"New Gen. Comput."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {scp}             {"Sci. Comput. Program."}               % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {sicomp}          {"SIAM J. Comput."}                     % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {spe}             {"Softw. Pract. Exper."}\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {tocs}            {"ACM Trans. Comput. Syst."}            % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {tods}            {"ACM Trans. Database Syst."}           % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {tog}             {"ACM Trans. Graphics"}                 % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {toms}            {"ACM Trans. Math. Softw."}             % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {toois}           {"ACM Trans. Office Inf. Syst."}        % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {toplas}          {"ACM Trans. Program. Lang. Syst."}     % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {tcs}             {"Theor. Comput. Sci."}                 % original BibTeX\r
+%%% DEPRECATED:\r
+%%% DEPRECATED: MACRO {tr}              {"Tech. Rep."}\r
+%%% ====================================================================\r
+\r
+READ\r
+\r
+FUNCTION { sortify }\r
+{\r
+  purify$\r
+  "l" change.case$\r
+}\r
+\r
+FUNCTION { chop.word }\r
+{\r
+  's :=\r
+  'len :=\r
+  s #1 len substring$ =\r
+    { s len #1 + global.max$ substring$ }\r
+    's\r
+  if$\r
+}\r
+\r
+FUNCTION { sort.format.names }\r
+{\r
+  's :=\r
+  #1 'nameptr :=\r
+  ""\r
+  s num.names$ 'numnames :=\r
+  numnames 'namesleft :=\r
+    { namesleft #0 > }\r
+    { nameptr #1 >\r
+          { "   " * }\r
+         'skip$\r
+      if$\r
+  %      s nameptr "{ff{ } }{ll{ }}{  vv{ }}{  jj{ }}" format.name$ 't :=\r
+      s nameptr "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}" format.name$ 't :=\r
+      nameptr numnames = t "others" = and\r
+          { " et~al" * }\r
+          { t sortify * }\r
+      if$\r
+      nameptr #1 + 'nameptr :=\r
+      namesleft #1 - 'namesleft :=\r
+    }\r
+  while$\r
+}\r
+\r
+FUNCTION { sort.format.title }\r
+{\r
+  't :=\r
+  "A " #2\r
+    "An " #3\r
+      "The " #4 t chop.word\r
+    chop.word\r
+  chop.word\r
+  sortify\r
+  #1 global.max$ substring$\r
+}\r
+\r
+FUNCTION { author.sort }\r
+{\r
+  author empty.or.unknown\r
+    { key empty.or.unknown\r
+         { "to sort, need author or key in " cite$ * warning$\r
+           "" }\r
+         { key sortify }\r
+      if$\r
+    }\r
+    { author sort.format.names }\r
+  if$\r
+}\r
+\r
+FUNCTION { author.editor.sort }\r
+{\r
+  author empty.or.unknown\r
+    {\r
+      editor empty.or.unknown\r
+         {\r
+           key empty.or.unknown\r
+             { "to sort, need author, editor, or key in " cite$ * warning$\r
+               ""\r
+             }\r
+             { key sortify }\r
+           if$\r
+         }\r
+         { editor sort.format.names }\r
+      if$\r
+    }\r
+    { author sort.format.names }\r
+  if$\r
+}\r
+\r
+FUNCTION { author.organization.sort }\r
+{\r
+  % added - GNP. Stack author or organization for sorting (from alpha.bst).\r
+  % Unlike alpha.bst, we need entire names, not abbreviations\r
+\r
+  author empty.or.unknown\r
+    { organization empty.or.unknown\r
+        { key empty.or.unknown\r
+            { "to sort, need author, organization, or key in " cite$ * warning$\r
+              ""\r
+            }\r
+            { key sortify }\r
+          if$\r
+        }\r
+        { organization sortify }\r
+      if$\r
+    }\r
+    { author sort.format.names }\r
+  if$\r
+}\r
+\r
+FUNCTION { editor.organization.sort }\r
+{\r
+  % added - GNP. Stack editor or organization for sorting (from alpha.bst).\r
+  % Unlike alpha.bst, we need entire names, not abbreviations\r
+\r
+  editor empty.or.unknown\r
+    { organization empty.or.unknown\r
+        { key empty.or.unknown\r
+            { "to sort, need editor, organization, or key in " cite$ * warning$\r
+              ""\r
+            }\r
+            { key sortify }\r
+          if$\r
+        }\r
+        { organization sortify }\r
+      if$\r
+    }\r
+    { editor sort.format.names }\r
+  if$\r
+}\r
+\r
+FUNCTION { presort }\r
+{\r
+  % Presort creates the bibentry's label via a call to calc.label, and then\r
+  % sorts the entries based on entry type. Chicago.bst adds support for\r
+  % including organizations as the sort key; the following is stolen from\r
+  % alpha.bst.\r
+\r
+  calc.label sortify % recalculate bibitem label\r
+  year field.or.null purify$ #-1 #4 substring$ * % add year\r
+  "    "\r
+  *\r
+  type$ "book" =\r
+  type$ "inbook" =\r
+  or\r
+    'author.editor.sort\r
+    { type$ "proceedings" =\r
+        'editor.organization.sort\r
+        { type$ "manual" =\r
+            'author.organization.sort\r
+            'author.sort\r
+          if$\r
+        }\r
+      if$\r
+    }\r
+  if$\r
+  #1 entry.max$ substring$        % added for newapa\r
+  'sort.label :=                  % added for newapa\r
+  sort.label                      % added for newapa\r
+  *\r
+  "    "\r
+  *\r
+  title field.or.null\r
+  sort.format.title\r
+  *\r
+  #1 entry.max$ substring$\r
+  'sort.key$ :=\r
+}\r
+\r
+ITERATE { presort }\r
+\r
+SORT             % by label, year, author/editor, title\r
+\r
+FUNCTION { initialize.extra.label.stuff }\r
+{ #0 int.to.chr$ 'last.label :=\r
+  "" 'next.extra :=\r
+  #0 'last.extra.num :=\r
+}\r
+\r
+FUNCTION { forward.pass }\r
+{\r
+  % Pass through all entries, comparing current entry to last one.\r
+  % Need to concatenate year to the stack (done by calc.label) to determine\r
+  % if two entries are the same (see presort)\r
+\r
+  last.label\r
+  % OLD:calc.label year field.or.null purify$ #-1 #4 substring$ * % add year\r
+  % NEW:\r
+  author.key.label year field.or.null purify$ #-1 #4 substring$ * % add year\r
+  #1 entry.max$ substring$ =     % are they equal?\r
+     { last.extra.num #1 + 'last.extra.num :=\r
+       last.extra.num int.to.chr$ 'extra.label :=\r
+     }\r
+     { "a" chr.to.int$ 'last.extra.num :=\r
+       "" 'extra.label :=\r
+       % OLD: calc.label year field.or.null purify$ #-1 #4 substring$ * % add year\r
+       % NEW:\r
+       author.key.label year field.or.null purify$ #-1 #4 substring$ * % add year\r
+       #1 entry.max$ substring$ 'last.label := % assign to last.label\r
+     }\r
+  if$\r
+}\r
+\r
+FUNCTION { reverse.pass }\r
+{\r
+  next.extra "b" =\r
+    { "a" 'extra.label := }\r
+     'skip$\r
+  if$\r
+  label.year extra.label * 'sort.year :=\r
+  extra.label 'next.extra :=\r
+}\r
+\r
+EXECUTE {initialize.extra.label.stuff}\r
+\r
+ITERATE {forward.pass}\r
+\r
+REVERSE {reverse.pass}\r
+\r
+FUNCTION { bib.sort.order }\r
+{\r
+  sort.label\r
+  "    "\r
+  *\r
+  year field.or.null sortify\r
+  *\r
+  "    "\r
+  *\r
+  title field.or.null\r
+  sort.format.title\r
+  *\r
+  #1 entry.max$ substring$\r
+  'sort.key$ :=\r
+}\r
+\r
+ITERATE { bib.sort.order }\r
+\r
+SORT             % by sort.label, year, title --- giving final bib. order.\r
+\r
+FUNCTION { begin.bib }\r
+{\r
+  %% Set to #0 show 13-digit ISBN in preference to 10-digit ISBN.\r
+  %% Set to #1 to show both 10-digit and 13-digit ISBNs.\r
+  #1 'show-isbn-10-and-13 :=\r
+\r
+  "%%% -*-BibTeX-*-" writeln\r
+  "%%% Do NOT edit. File created by BibTeX with style" writeln\r
+  "%%% ACM-Reference-Format-Journals [18-Jan-2012]." writeln\r
+  "" writeln\r
+\r
+  preamble$ empty.or.unknown\r
+    'skip$\r
+    { preamble$ writeln }\r
+  if$\r
+  "\begin{thebibliography}{00}" writeln\r
+  ""                                                                         writeln\r
+  "%%% ====================================================================" writeln\r
+  "%%% NOTE TO THE USER: you can override these defaults by providing"       writeln\r
+  "%%% customized versions of any of these macros before the \bibliography"  writeln\r
+  "%%% command.  Each of them MUST provide its own final punctuation,"       writeln\r
+  "%%% except for \shownote{}, \showDOI{}, and \showURL{}.  The latter two"  writeln\r
+  "%%% do not use final punctuation, in order to avoid confusing it with"    writeln\r
+  "%%% the Web address."                                                     writeln\r
+  "%%%"                                                                      writeln\r
+  "%%% To suppress output of a particular field, define its macro to expand" writeln\r
+  "%%% to an empty string, or better, \unskip, like this:"                   writeln\r
+  "%%%"                                                                      writeln\r
+  "%%% \newcommand{\showDOI}[1]{\unskip}   % LaTeX syntax"                   writeln\r
+  "%%%"                                                                      writeln\r
+  "%%% \def \showDOI #1{\unskip}           % plain TeX syntax"               writeln\r
+  "%%%"                                                                      writeln\r
+  "%%% ====================================================================" writeln\r
+  ""                                                                         writeln\r
+\r
+  %% ACM publications do not use CODEN, ISSN, and LCCN data, so their default\r
+  %% macro wrappers expand to \unskip, discarding their values and unwanted\r
+  %% space.\r
+  %%\r
+  %% For other publications, prior definitions like these may be useful:\r
+  %%\r
+  %%     Plain TeX:\r
+  %%         \def \showCODEN     #1{CODEN #1.}\r
+  %%         \def \showISSN      #1{ISSN #1.}\r
+  %%         \def \showLCCN      #1{LCCN #1.}\r
+  %%\r
+  %%     LaTeX:\r
+  %%         \newcommand{\showCODEN}[1]{CODEN #1.}\r
+  %%         \newcommand{\showISSN}[1]#1{ISSN #1.}\r
+  %%         \newcommand{\showLCCN}[1]{LCCN #1.}\r
+\r
+  "\ifx \showCODEN    \undefined \def \showCODEN     #1{\unskip}     \fi" writeln\r
+  "\ifx \showDOI      \undefined \def \showDOI       #1{{\tt DOI:}\penalty0{#1}\ } \fi" writeln\r
+  % ACM styles omit ISBNs, but they can be included by suitable definitions of\r
+  % \showISBNx and \showISBNxiii before the .bbl file is read\r
+  "\ifx \showISBNx    \undefined \def \showISBNx     #1{\unskip}     \fi" writeln\r
+  "\ifx \showISBNxiii \undefined \def \showISBNxiii  #1{\unskip}     \fi" writeln\r
+  "\ifx \showISSN     \undefined \def \showISSN      #1{\unskip}     \fi" writeln\r
+  "\ifx \showLCCN     \undefined \def \showLCCN      #1{\unskip}     \fi" writeln\r
+  "\ifx \shownote     \undefined \def \shownote      #1{#1}          \fi" writeln % NB: final period supplied by add.period$ above\r
+  "\ifx \showarticletitle \undefined \def \showarticletitle #1{#1}   \fi" writeln\r
+  "\ifx \showURL      \undefined \def \showURL       #1{#1}          \fi" writeln\r
+}\r
+\r
+EXECUTE {begin.bib}\r
+\r
+EXECUTE {init.state.consts}\r
+\r
+ITERATE {call.type$}\r
+\r
+FUNCTION { end.bib }\r
+{\r
+  newline$\r
+  "\end{thebibliography}"\r
+  writeln\r
+}\r
+\r
+EXECUTE {end.bib}\r
+\r
+%%% End of ACM-Reference-Format-Journals.bst V1.00 - 18 January 2012\r
+\r
diff --git a/PeCO/Model.pdf b/PeCO/Model.pdf
new file mode 100644 (file)
index 0000000..ef17825
Binary files /dev/null and b/PeCO/Model.pdf differ
diff --git a/PeCO/R/ASR-eps-converted-to.pdf b/PeCO/R/ASR-eps-converted-to.pdf
new file mode 100644 (file)
index 0000000..7b8b95c
Binary files /dev/null and b/PeCO/R/ASR-eps-converted-to.pdf differ
diff --git a/PeCO/R/ASR.eps b/PeCO/R/ASR.eps
new file mode 100644 (file)
index 0000000..46e075d
--- /dev/null
@@ -0,0 +1,1472 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 53 53 536 402
+%%HiResBoundingBox: 54 53.5 535 401.5
+%%Creator: gnuplot 4.6 patchlevel 0
+%%CreationDate: Mon Feb  2 16:06:45 2015
+%%EndComments
+% EPSF created by ps2eps 1.68
+%%BeginProlog
+save
+countdictstack
+mark
+newpath
+/showpage {} def
+/setpagedevice {pop} def
+%%EndProlog
+%%Page 1 1
+%%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.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
+%
+% 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 0)
+  /Author (ali)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Mon Feb  2 16:06:45 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) 110.0 0.0 true true 0 ( 0)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 664 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 664 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 5)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 975 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 975 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 10)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 1287 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1287 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 15)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 1598 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1598 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 20)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 1910 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1910 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 25)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 2222 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2222 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 30)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 2533 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2533 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 35)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 2845 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2845 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 40)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 3156 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3156 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 45)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 3468 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3468 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 50)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+473 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 0)]
+] -36.7 MCshow
+1.000 UL
+LTb
+825 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+825 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 10)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1178 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1178 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 20)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1530 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1530 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 30)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1882 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1882 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 40)]
+] -36.7 MCshow
+1.000 UL
+LTb
+2234 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2234 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 50)]
+] -36.7 MCshow
+1.000 UL
+LTb
+2587 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2587 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 60)]
+] -36.7 MCshow
+1.000 UL
+LTb
+2939 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2939 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 70)]
+] -36.7 MCshow
+1.000 UL
+LTb
+3291 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3291 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 80)]
+] -36.7 MCshow
+1.000 UL
+LTb
+3643 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3643 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 90)]
+] -36.7 MCshow
+1.000 UL
+LTb
+3996 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3996 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 100)]
+] -36.7 MCshow
+1.000 UL
+LTb
+4348 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4348 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 110)]
+] -36.7 MCshow
+1.000 UL
+LTb
+4700 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4700 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 120)]
+] -36.7 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) 110.0 0.0 true true 0 (Active Sensor Ratio \(%\) )]
+] -36.7 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2657 77 M
+[ [(Helvetica) 110.0 0.0 true true 0 (Number of Periods)]
+] -36.7 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UP
+2.000 UL
+LT0
+0.00 0.55 0.55 C LCb setrgbcolor
+4316 3350 M
+[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO)]
+] -36.7 MRshow
+LT0
+0.00 0.55 0.55 C 4382 3350 M
+327 0 V
+508 1469 M
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 4 V
+35 32 V
+36 30 V
+35 29 V
+35 36 V
+35 25 V
+36 8 V
+35 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 2 V
+35 6 V
+36 16 V
+35 11 V
+35 19 V
+35 20 V
+35 20 V
+36 9 V
+35 12 V
+35 1 V
+35 8 V
+36 0 V
+35 0 V
+35 0 V
+35 1 V
+35 1 V
+36 -1 V
+35 -4 V
+35 6 V
+35 0 V
+36 3 V
+35 -23 V
+35 -6 V
+35 -7 V
+36 -23 V
+35 -2 V
+35 -10 V
+35 -10 V
+35 -6 V
+36 -2 V
+35 -7 V
+35 -13 V
+35 -21 V
+36 -26 V
+35 -29 V
+35 -48 V
+35 -44 V
+35 -73 V
+36 -45 V
+35 -51 V
+35 -44 V
+35 -31 V
+36 -39 V
+35 -22 V
+35 -20 V
+35 -23 V
+35 -54 V
+36 -41 V
+35 -57 V
+35 -56 V
+35 -69 V
+36 -47 V
+35 -47 V
+35 -69 V
+35 -41 V
+36 -33 V
+35 -28 V
+35 -18 V
+35 -22 V
+35 -15 V
+36 -22 V
+35 -11 V
+35 -20 V
+35 -16 V
+36 -23 V
+35 -12 V
+35 -19 V
+35 -12 V
+35 -9 V
+36 -13 V
+35 -5 V
+35 -1 V
+35 -2 V
+36 -3 V
+35 -5 V
+35 -1 V
+35 -4 V
+stroke 4101 363 M
+35 0 V
+36 -1 V
+35 -3 V
+35 -1 V
+35 -1 V
+36 -1 V
+35 -2 V
+35 0 V
+35 0 V
+36 0 V
+35 -1 V
+35 -1 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+508 1469 TriUF
+684 1469 TriUF
+860 1469 TriUF
+1037 1535 TriUF
+1213 1633 TriUF
+1389 1633 TriUF
+1565 1687 TriUF
+1741 1749 TriUF
+1917 1758 TriUF
+2093 1760 TriUF
+2270 1704 TriUF
+2446 1674 TriUF
+2622 1578 TriUF
+2798 1317 TriUF
+2974 1161 TriUF
+3150 930 TriUF
+3326 657 TriUF
+3502 541 TriUF
+3679 449 TriUF
+3855 384 TriUF
+4031 368 TriUF
+4207 359 TriUF
+4383 354 TriUF
+4559 352 TriUF
+4735 352 TriUF
+4545 3350 TriUF
+% End plot #1
+% Begin plot #2
+1.000 UP
+2.000 UL
+LT1
+0.00 0.39 0.00 C LCb setrgbcolor
+4316 3240 M
+[ [(Helvetica) 110.0 0.0 true true 0 (DESK)]
+] -36.7 MRshow
+LT1
+0.00 0.39 0.00 C 4382 3240 M
+327 0 V
+508 2244 M
+35 0 V
+36 0 V
+35 1 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 -1 V
+35 3 V
+36 -3 V
+35 1 V
+35 -22 V
+35 41 V
+36 -8 V
+35 20 V
+35 -44 V
+35 -73 V
+36 -7 V
+35 -1 V
+35 0 V
+35 2 V
+35 0 V
+36 0 V
+35 0 V
+35 3 V
+35 13 V
+36 3 V
+35 -19 V
+35 -22 V
+35 -30 V
+35 -7 V
+36 -34 V
+35 -33 V
+35 -1 V
+35 1 V
+36 3 V
+35 -5 V
+35 3 V
+35 -6 V
+35 6 V
+36 -39 V
+35 -34 V
+35 -85 V
+35 -159 V
+36 -133 V
+35 -134 V
+35 -100 V
+35 -98 V
+36 -61 V
+35 -61 V
+35 -57 V
+35 -88 V
+35 -106 V
+36 -125 V
+35 -150 V
+35 -145 V
+35 -56 V
+36 -29 V
+35 -6 V
+35 -10 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+stroke 4101 352 M
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+508 2244 DiaF
+684 2245 DiaF
+860 2247 DiaF
+1037 2256 DiaF
+1213 2151 DiaF
+1389 2153 DiaF
+1565 2131 DiaF
+1741 2026 DiaF
+1917 2022 DiaF
+2093 1711 DiaF
+2270 1185 DiaF
+2446 748 DiaF
+2622 362 DiaF
+2798 352 DiaF
+2974 352 DiaF
+3150 352 DiaF
+3326 352 DiaF
+3502 352 DiaF
+3679 352 DiaF
+3855 352 DiaF
+4031 352 DiaF
+4207 352 DiaF
+4383 352 DiaF
+4559 352 DiaF
+4735 352 DiaF
+4545 3240 DiaF
+% End plot #2
+% Begin plot #3
+1.000 UP
+2.000 UL
+LT2
+0.50 0.00 0.00 C LCb setrgbcolor
+4316 3130 M
+[ [(Helvetica) 110.0 0.0 true true 0 (GAF)]
+] -36.7 MRshow
+LT2
+0.50 0.00 0.00 C 4382 3130 M
+327 0 V
+508 2531 M
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 -29 V
+36 -57 V
+35 -49 V
+35 -56 V
+35 -49 V
+36 -49 V
+35 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+36 -17 V
+35 -23 V
+35 -40 V
+35 -66 V
+35 -75 V
+36 -106 V
+35 -85 V
+35 -60 V
+35 -46 V
+36 -31 V
+35 -10 V
+35 0 V
+35 0 V
+35 0 V
+36 -1 V
+35 -15 V
+35 -22 V
+35 -44 V
+36 -60 V
+35 -66 V
+35 -82 V
+35 -92 V
+36 -78 V
+35 -77 V
+35 -59 V
+35 -35 V
+35 -33 V
+36 -11 V
+35 -10 V
+35 -3 V
+35 -7 V
+36 -13 V
+35 -16 V
+35 -29 V
+35 -52 V
+35 -49 V
+36 -49 V
+35 -62 V
+35 -73 V
+35 -44 V
+36 -32 V
+35 -25 V
+35 -19 V
+35 -13 V
+35 -10 V
+36 -7 V
+35 -7 V
+35 -10 V
+35 -10 V
+36 -10 V
+35 -11 V
+35 -11 V
+35 -9 V
+36 -13 V
+35 -11 V
+35 -5 V
+35 -6 V
+35 -4 V
+36 -1 V
+35 -1 V
+35 -2 V
+35 -2 V
+36 -1 V
+35 -3 V
+35 -2 V
+35 -3 V
+35 -2 V
+36 -3 V
+35 -2 V
+35 -7 V
+35 -2 V
+36 -1 V
+35 0 V
+35 -2 V
+35 0 V
+stroke 4101 354 M
+35 -1 V
+36 0 V
+35 0 V
+35 -1 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+508 2531 Star
+684 2531 Star
+860 2531 Star
+1037 2445 Star
+1213 2242 Star
+1389 2242 Star
+1565 2162 Star
+1741 1770 Star
+1917 1683 Star
+2093 1601 Star
+2270 1223 Star
+2446 1008 Star
+2622 959 Star
+2798 718 Star
+2974 525 Star
+3150 478 Star
+3326 427 Star
+3502 388 Star
+3679 381 Star
+3855 368 Star
+4031 356 Star
+4207 353 Star
+4383 352 Star
+4559 352 Star
+4735 352 Star
+4545 3130 Star
+% End plot #3
+% Begin plot #4
+1.000 UP
+2.000 UL
+LT3
+0.00 0.00 0.55 C LCb setrgbcolor
+4316 3020 M
+[ [(Helvetica) 110.0 0.0 true true 0 (PeCO)]
+] -36.7 MRshow
+LT3
+0.00 0.00 0.55 C 4382 3020 M
+327 0 V
+508 1608 M
+35 3 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 -4 V
+35 3 V
+36 0 V
+35 -10 V
+35 8 V
+35 -5 V
+36 -10 V
+35 0 V
+35 -2 V
+35 0 V
+35 0 V
+36 0 V
+35 0 V
+35 0 V
+35 -1 V
+36 -14 V
+35 -12 V
+35 -10 V
+35 -10 V
+35 -27 V
+36 -15 V
+35 -1 V
+35 -10 V
+35 -7 V
+36 -2 V
+35 -2 V
+35 0 V
+35 1 V
+35 -6 V
+36 -5 V
+35 -4 V
+35 -7 V
+35 -18 V
+36 -12 V
+35 -18 V
+35 -1 V
+35 -12 V
+36 -11 V
+35 -13 V
+35 -9 V
+35 -7 V
+35 -5 V
+36 0 V
+35 -5 V
+35 -10 V
+35 -1 V
+36 -19 V
+35 -21 V
+35 -30 V
+35 -15 V
+35 -21 V
+36 -29 V
+35 -22 V
+35 -20 V
+35 -15 V
+36 -16 V
+35 -8 V
+35 -15 V
+35 -9 V
+35 -11 V
+36 -16 V
+35 -10 V
+35 -20 V
+35 -17 V
+36 -22 V
+35 -18 V
+35 -26 V
+35 -28 V
+36 -34 V
+35 -22 V
+35 -15 V
+35 -10 V
+35 -17 V
+36 -4 V
+35 -1 V
+35 -10 V
+35 -17 V
+36 -17 V
+35 -20 V
+35 -25 V
+35 -30 V
+35 -22 V
+36 -18 V
+35 -20 V
+35 -23 V
+35 -15 V
+36 -8 V
+35 -8 V
+35 -9 V
+35 -16 V
+stroke 4101 568 M
+35 -18 V
+36 -12 V
+35 -9 V
+35 -12 V
+35 -22 V
+36 -17 V
+35 -19 V
+35 -10 V
+35 -25 V
+36 -17 V
+35 -3 V
+35 -15 V
+35 -12 V
+35 0 V
+36 -3 V
+35 -7 V
+35 -6 V
+35 -9 V
+36 0 V
+35 0 V
+35 0 V
+508 1608 CircleF
+684 1611 CircleF
+860 1611 CircleF
+1037 1610 CircleF
+1213 1593 CircleF
+1389 1591 CircleF
+1565 1554 CircleF
+1741 1491 CircleF
+1917 1481 CircleF
+2093 1441 CircleF
+2270 1387 CircleF
+2446 1353 CircleF
+2622 1297 CircleF
+2798 1180 CircleF
+2974 1106 CircleF
+3150 1040 CircleF
+3326 929 CircleF
+3502 831 CircleF
+3679 782 CircleF
+3855 667 CircleF
+4031 593 CircleF
+4207 529 CircleF
+4383 449 CircleF
+4559 377 CircleF
+4735 352 CircleF
+4545 3020 CircleF
+% 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
+%%Trailer
+cleartomark
+countdictstack
+exch sub { end } repeat
+restore
+%%EOF
diff --git a/PeCO/R/ASR.pdf b/PeCO/R/ASR.pdf
new file mode 100644 (file)
index 0000000..0f7ed03
Binary files /dev/null and b/PeCO/R/ASR.pdf differ
diff --git a/PeCO/R/CR-eps-converted-to.pdf b/PeCO/R/CR-eps-converted-to.pdf
new file mode 100644 (file)
index 0000000..5f73c75
Binary files /dev/null and b/PeCO/R/CR-eps-converted-to.pdf differ
diff --git a/PeCO/R/CR.eps b/PeCO/R/CR.eps
new file mode 100644 (file)
index 0000000..7c055d8
--- /dev/null
@@ -0,0 +1,1472 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 53 53 536 402
+%%HiResBoundingBox: 54 53.5 535 401.5
+%%Creator: gnuplot 4.6 patchlevel 0
+%%CreationDate: Mon Feb  2 16:07:58 2015
+%%EndComments
+% EPSF created by ps2eps 1.68
+%%BeginProlog
+save
+countdictstack
+mark
+newpath
+/showpage {} def
+/setpagedevice {pop} def
+%%EndProlog
+%%Page 1 1
+%%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.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
+%
+% 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 0)
+  /Author (ali)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Mon Feb  2 16:07:58 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
+539 352 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 352 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 0)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 664 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 664 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 10)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 975 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 975 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 20)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 1287 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 1287 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 30)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 1598 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 1598 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 40)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 1910 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 1910 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 50)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 2222 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 2222 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 60)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 2533 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 2533 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 70)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 2845 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 2845 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 80)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 3156 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 3156 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 90)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 3468 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 3468 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 100)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+539 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 0)]
+] -36.7 MCshow
+1.000 UL
+LTb
+886 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+886 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 10)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1233 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1233 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 20)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1580 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1580 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 30)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1927 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1927 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 40)]
+] -36.7 MCshow
+1.000 UL
+LTb
+2274 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2274 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 50)]
+] -36.7 MCshow
+1.000 UL
+LTb
+2621 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2621 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 60)]
+] -36.7 MCshow
+1.000 UL
+LTb
+2968 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2968 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 70)]
+] -36.7 MCshow
+1.000 UL
+LTb
+3314 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3314 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 80)]
+] -36.7 MCshow
+1.000 UL
+LTb
+3661 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3661 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 90)]
+] -36.7 MCshow
+1.000 UL
+LTb
+4008 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4008 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 100)]
+] -36.7 MCshow
+1.000 UL
+LTb
+4355 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4355 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 110)]
+] -36.7 MCshow
+1.000 UL
+LTb
+4702 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4702 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 120)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1.000 UL
+LTb
+539 3468 N
+539 352 L
+4302 0 V
+0 3116 V
+-4302 0 V
+Z stroke
+LCb setrgbcolor
+88 1910 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Helvetica) 110.0 0.0 true true 0 (Coverage Ratio \(%\) )]
+] -36.7 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2690 77 M
+[ [(Helvetica) 110.0 0.0 true true 0 (Number of Periods)]
+] -36.7 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UP
+2.000 UL
+LT0
+0.00 0.55 0.55 C LCb setrgbcolor
+4382 3351 M
+[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO)]
+] -36.7 MRshow
+LT0
+0.00 0.55 0.55 C 4448 3351 M
+327 0 V
+574 3440 M
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 2 V
+34 1 V
+35 4 V
+35 -1 V
+34 -3 V
+35 2 V
+35 1 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 1 V
+35 0 V
+35 0 V
+35 2 V
+34 2 V
+35 -1 V
+35 -1 V
+34 -2 V
+35 0 V
+35 -1 V
+34 0 V
+35 0 V
+35 1 V
+34 0 V
+35 -1 V
+35 -1 V
+35 -4 V
+34 0 V
+35 1 V
+35 -4 V
+34 -5 V
+35 -9 V
+35 -16 V
+34 -5 V
+35 -6 V
+35 -3 V
+34 -4 V
+35 -2 V
+35 -3 V
+35 -2 V
+34 -6 V
+35 -15 V
+35 -21 V
+34 -29 V
+35 -46 V
+35 -64 V
+34 -74 V
+35 -49 V
+35 -100 V
+34 -61 V
+35 -34 V
+35 -68 V
+35 -31 V
+34 -20 V
+35 -47 V
+35 -95 V
+34 -88 V
+35 -104 V
+35 -122 V
+34 -182 V
+35 -143 V
+35 -145 V
+34 -190 V
+35 -107 V
+35 -100 V
+35 -110 V
+34 -63 V
+35 -83 V
+35 -53 V
+34 -77 V
+35 -25 V
+35 -75 V
+34 -57 V
+35 -87 V
+35 -46 V
+35 -86 V
+34 -58 V
+35 -48 V
+35 -55 V
+34 -25 V
+35 -7 V
+35 -14 V
+34 -9 V
+35 -24 V
+35 -8 V
+34 -22 V
+stroke 4112 410 M
+35 0 V
+35 -7 V
+35 -9 V
+34 -7 V
+35 -7 V
+35 -6 V
+34 -7 V
+35 0 V
+35 0 V
+34 0 V
+35 -8 V
+35 -7 V
+34 0 V
+35 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+574 3440 TriUF
+747 3440 TriUF
+921 3440 TriUF
+1094 3447 TriUF
+1268 3446 TriUF
+1441 3446 TriUF
+1615 3449 TriUF
+1788 3447 TriUF
+1961 3447 TriUF
+2135 3442 TriUF
+2308 3403 TriUF
+2482 3385 TriUF
+2655 3312 TriUF
+2829 2979 TriUF
+3002 2765 TriUF
+3176 2309 TriUF
+3349 1542 TriUF
+3523 1133 TriUF
+3696 812 TriUF
+3870 519 TriUF
+4043 440 TriUF
+4217 394 TriUF
+4390 367 TriUF
+4563 352 TriUF
+4737 352 TriUF
+4611 3351 TriUF
+% End plot #1
+% Begin plot #2
+1.000 UP
+2.000 UL
+LT1
+0.00 0.39 0.00 C LCb setrgbcolor
+4382 3241 M
+[ [(Helvetica) 110.0 0.0 true true 0 (DESK)]
+] -36.7 MRshow
+LT1
+0.00 0.39 0.00 C 4448 3241 M
+327 0 V
+574 3468 M
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 -1 V
+35 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 -1 V
+35 0 V
+34 -6 V
+35 -6 V
+35 -5 V
+34 -5 V
+35 -5 V
+35 -1 V
+34 0 V
+35 -1 V
+35 0 V
+34 -1 V
+35 -9 V
+35 -5 V
+35 -20 V
+34 -32 V
+35 -121 V
+35 -64 V
+34 -169 V
+35 -105 V
+35 -188 V
+34 -138 V
+35 -82 V
+35 -125 V
+34 -227 V
+35 -237 V
+35 -291 V
+35 -416 V
+34 -469 V
+35 -205 V
+35 -122 V
+34 -21 V
+35 -38 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+stroke 4112 352 M
+35 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+574 3468 DiaF
+747 3468 DiaF
+921 3468 DiaF
+1094 3468 DiaF
+1268 3467 DiaF
+1441 3467 DiaF
+1615 3466 DiaF
+1788 3439 DiaF
+1961 3436 DiaF
+2135 3249 DiaF
+2308 2585 DiaF
+2482 1623 DiaF
+2655 390 DiaF
+2829 352 DiaF
+3002 352 DiaF
+3176 352 DiaF
+3349 352 DiaF
+3523 352 DiaF
+3696 352 DiaF
+3870 352 DiaF
+4043 352 DiaF
+4217 352 DiaF
+4390 352 DiaF
+4563 352 DiaF
+4737 352 DiaF
+4611 3241 DiaF
+% End plot #2
+% Begin plot #3
+1.000 UP
+2.000 UL
+LT2
+0.50 0.00 0.00 C LCb setrgbcolor
+4382 3131 M
+[ [(Helvetica) 110.0 0.0 true true 0 (GAF)]
+] -36.7 MRshow
+LT2
+0.50 0.00 0.00 C 4448 3131 M
+327 0 V
+574 3467 M
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 -1 V
+35 0 V
+34 -2 V
+35 0 V
+35 -2 V
+35 -1 V
+34 1 V
+35 1 V
+35 0 V
+34 1 V
+35 -5 V
+35 5 V
+34 -4 V
+35 0 V
+35 -5 V
+35 -1 V
+34 -1 V
+35 -11 V
+35 -16 V
+34 -4 V
+35 -18 V
+35 11 V
+34 -30 V
+35 -6 V
+35 20 V
+34 -10 V
+35 -9 V
+35 14 V
+35 -15 V
+34 -9 V
+35 -31 V
+35 -17 V
+34 -30 V
+35 -66 V
+35 -70 V
+34 -121 V
+35 -72 V
+35 -88 V
+34 -57 V
+35 -47 V
+35 -18 V
+35 -16 V
+34 -11 V
+35 -28 V
+35 -3 V
+34 -42 V
+35 -59 V
+35 -147 V
+34 -151 V
+35 -116 V
+35 -187 V
+34 -274 V
+35 -175 V
+35 -141 V
+35 -96 V
+34 -82 V
+35 -55 V
+35 -68 V
+34 -25 V
+35 -36 V
+35 -44 V
+34 -33 V
+35 -55 V
+35 -66 V
+34 -54 V
+35 -42 V
+35 -56 V
+35 -64 V
+34 -25 V
+35 -29 V
+35 -19 V
+34 -14 V
+35 -2 V
+35 -3 V
+34 -21 V
+35 -4 V
+35 -9 V
+35 -22 V
+34 -11 V
+35 -8 V
+35 -18 V
+34 -12 V
+35 -36 V
+35 -16 V
+34 -6 V
+35 0 V
+35 -6 V
+34 0 V
+stroke 4112 366 M
+35 -9 V
+35 1 V
+35 1 V
+34 -7 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+574 3467 Star
+747 3467 Star
+921 3467 Star
+1094 3466 Star
+1268 3461 Star
+1441 3459 Star
+1615 3454 Star
+1788 3404 Star
+1961 3389 Star
+2135 3339 Star
+2308 3035 Star
+2482 2753 Star
+2655 2653 Star
+2829 1993 Star
+3002 1225 Star
+3176 997 Star
+3349 747 Star
+3523 554 Star
+3696 510 Star
+3870 442 Star
+4043 372 Star
+4217 359 Star
+4390 352 Star
+4563 352 Star
+4737 352 Star
+4611 3131 Star
+% End plot #3
+% Begin plot #4
+1.000 UP
+2.000 UL
+LT3
+0.00 0.00 0.55 C LCb setrgbcolor
+4382 3021 M
+[ [(Helvetica) 110.0 0.0 true true 0 (PeCO)]
+] -36.7 MRshow
+LT3
+0.00 0.00 0.55 C 4448 3021 M
+327 0 V
+574 3429 M
+34 0 V
+35 0 V
+35 0 V
+34 1 V
+35 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 -1 V
+34 0 V
+35 -6 V
+35 5 V
+34 -4 V
+35 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 0 V
+35 0 V
+35 0 V
+34 -1 V
+35 -4 V
+35 1 V
+35 -1 V
+34 0 V
+35 -10 V
+35 0 V
+34 -9 V
+35 -2 V
+35 -4 V
+34 2 V
+35 0 V
+35 0 V
+34 2 V
+35 -4 V
+35 1 V
+35 -3 V
+34 -3 V
+35 -5 V
+35 -10 V
+34 -7 V
+35 -7 V
+35 -14 V
+34 -7 V
+35 -9 V
+35 0 V
+34 -4 V
+35 -2 V
+35 0 V
+35 -5 V
+34 -15 V
+35 -10 V
+35 -12 V
+34 -18 V
+35 -39 V
+35 -26 V
+34 -33 V
+35 -37 V
+35 -18 V
+34 -28 V
+35 -27 V
+35 -32 V
+35 -9 V
+34 -20 V
+35 -11 V
+35 -19 V
+34 -23 V
+35 -27 V
+35 -34 V
+34 -49 V
+35 -41 V
+35 -26 V
+34 -57 V
+35 -60 V
+35 -77 V
+35 -53 V
+34 -60 V
+35 -38 V
+35 -49 V
+34 -24 V
+35 -2 V
+35 -35 V
+34 -46 V
+35 -50 V
+35 -70 V
+35 -90 V
+34 -107 V
+35 -79 V
+35 -73 V
+34 -81 V
+35 -98 V
+35 -64 V
+34 -20 V
+35 -34 V
+35 -31 V
+34 -78 V
+stroke 4112 1389 M
+35 -67 V
+35 -74 V
+35 -38 V
+34 -51 V
+35 -96 V
+35 -93 V
+34 -90 V
+35 -43 V
+35 -123 V
+34 -90 V
+35 -15 V
+35 -69 V
+34 -67 V
+35 0 V
+35 -16 V
+35 -35 V
+34 -26 V
+35 -44 V
+35 0 V
+34 0 V
+35 0 V
+574 3429 CircleF
+747 3430 CircleF
+921 3430 CircleF
+1094 3423 CircleF
+1268 3424 CircleF
+1441 3424 CircleF
+1615 3419 CircleF
+1788 3398 CircleF
+1961 3398 CircleF
+2135 3384 CircleF
+2308 3339 CircleF
+2482 3324 CircleF
+2655 3264 CircleF
+2829 3111 CircleF
+3002 2995 CircleF
+3176 2881 CircleF
+3349 2648 CircleF
+3523 2371 CircleF
+3696 2214 CircleF
+3870 1795 CircleF
+4043 1498 CircleF
+4217 1210 CircleF
+4390 837 CircleF
+4563 473 CircleF
+4737 352 CircleF
+4611 3021 CircleF
+% End plot #4
+1.000 UL
+LTb
+539 3468 N
+539 352 L
+4302 0 V
+0 3116 V
+-4302 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
+%%Trailer
+cleartomark
+countdictstack
+exch sub { end } repeat
+restore
+%%EOF
diff --git a/PeCO/R/CR.pdf b/PeCO/R/CR.pdf
new file mode 100644 (file)
index 0000000..c2742d6
Binary files /dev/null and b/PeCO/R/CR.pdf differ
diff --git a/PeCO/R/EC50-eps-converted-to.pdf b/PeCO/R/EC50-eps-converted-to.pdf
new file mode 100644 (file)
index 0000000..bd9c273
Binary files /dev/null and b/PeCO/R/EC50-eps-converted-to.pdf differ
diff --git a/PeCO/R/EC50.eps b/PeCO/R/EC50.eps
new file mode 100644 (file)
index 0000000..8953c78
--- /dev/null
@@ -0,0 +1,882 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 53 53 545 402
+%%HiResBoundingBox: 54 53.5 544.5 401.5
+%%Creator: gnuplot 4.6 patchlevel 0
+%%CreationDate: Mon Feb  2 16:08:57 2015
+%%EndComments
+% EPSF created by ps2eps 1.68
+%%BeginProlog
+save
+countdictstack
+mark
+newpath
+/showpage {} def
+/setpagedevice {pop} def
+%%EndProlog
+%%Page 1 1
+%%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.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
+%
+% 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 0)
+  /Author (ali)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Mon Feb  2 16:08:57 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) 110.0 0.0 true true 0 ( 1000)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 698 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 698 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 1250)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 1044 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 1044 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 1500)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 1391 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 1391 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 1750)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 1737 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 1737 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 2000)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 2083 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 2083 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 2250)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 2429 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 2429 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 2500)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 2776 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 2776 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 2750)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 3122 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 3122 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 3000)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 3468 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 3468 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 3250)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+605 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 75)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1029 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1029 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 100)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1452 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1452 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 125)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1876 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1876 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 150)]
+] -36.7 MCshow
+1.000 UL
+LTb
+2299 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2299 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 175)]
+] -36.7 MCshow
+1.000 UL
+LTb
+2723 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2723 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 200)]
+] -36.7 MCshow
+1.000 UL
+LTb
+3147 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3147 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 225)]
+] -36.7 MCshow
+1.000 UL
+LTb
+3570 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3570 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 250)]
+] -36.7 MCshow
+1.000 UL
+LTb
+3994 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3994 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 275)]
+] -36.7 MCshow
+1.000 UL
+LTb
+4417 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4417 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 300)]
+] -36.7 MCshow
+1.000 UL
+LTb
+4841 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4841 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 325)]
+] -36.7 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) 110.0 0.0 true true 0 (Energy Consumption Per Period \(Joules\) )]
+] -36.7 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2723 77 M
+[ [(Helvetica) 110.0 0.0 true true 0 (Number of Wireless Sensor Nodes)]
+] -36.7 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UP
+2.000 UL
+LT0
+0.00 0.55 0.55 C LCb setrgbcolor
+1163 3275 M
+[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO)]
+] -36.7 MRshow
+LT0
+0.00 0.55 0.55 C 1229 3275 M
+327 0 V
+1029 603 M
+847 263 V
+847 201 V
+847 210 V
+847 260 V
+1029 603 TriUF
+1876 866 TriUF
+2723 1067 TriUF
+3570 1277 TriUF
+4417 1537 TriUF
+1392 3275 TriUF
+% End plot #1
+% Begin plot #2
+1.000 UP
+2.000 UL
+LT1
+0.00 0.39 0.00 C LCb setrgbcolor
+1163 3165 M
+[ [(Helvetica) 110.0 0.0 true true 0 (DESK)]
+] -36.7 MRshow
+LT1
+0.00 0.39 0.00 C 1229 3165 M
+327 0 V
+1029 1513 M
+847 293 V
+847 327 V
+847 578 V
+847 522 V
+1029 1513 DiaF
+1876 1806 DiaF
+2723 2133 DiaF
+3570 2711 DiaF
+4417 3233 DiaF
+1392 3165 DiaF
+% End plot #2
+% Begin plot #3
+1.000 UP
+2.000 UL
+LT2
+0.50 0.00 0.00 C LCb setrgbcolor
+1163 3055 M
+[ [(Helvetica) 110.0 0.0 true true 0 (GAF)]
+] -36.7 MRshow
+LT2
+0.50 0.00 0.00 C 1229 3055 M
+327 0 V
+1029 1133 M
+847 122 V
+847 117 V
+847 130 V
+847 141 V
+1029 1133 Star
+1876 1255 Star
+2723 1372 Star
+3570 1502 Star
+4417 1643 Star
+1392 3055 Star
+% End plot #3
+% Begin plot #4
+1.000 UP
+2.000 UL
+LT3
+0.00 0.00 0.55 C LCb setrgbcolor
+1163 2945 M
+[ [(Helvetica) 110.0 0.0 true true 0 (PeCO)]
+] -36.7 MRshow
+LT3
+0.00 0.00 0.55 C 1229 2945 M
+327 0 V
+1029 491 M
+847 76 V
+847 121 V
+847 123 V
+847 215 V
+1029 491 CircleF
+1876 567 CircleF
+2723 688 CircleF
+3570 811 CircleF
+4417 1026 CircleF
+1392 2945 CircleF
+% 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
+%%Trailer
+cleartomark
+countdictstack
+exch sub { end } repeat
+restore
+%%EOF
diff --git a/PeCO/R/EC50.pdf b/PeCO/R/EC50.pdf
new file mode 100644 (file)
index 0000000..1635bc2
Binary files /dev/null and b/PeCO/R/EC50.pdf differ
diff --git a/PeCO/R/EC95-eps-converted-to.pdf b/PeCO/R/EC95-eps-converted-to.pdf
new file mode 100644 (file)
index 0000000..1a1d523
Binary files /dev/null and b/PeCO/R/EC95-eps-converted-to.pdf differ
diff --git a/PeCO/R/EC95.eps b/PeCO/R/EC95.eps
new file mode 100644 (file)
index 0000000..25a32bc
--- /dev/null
@@ -0,0 +1,882 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 53 53 545 402
+%%HiResBoundingBox: 54 53.5 544.5 401.5
+%%Creator: gnuplot 4.6 patchlevel 0
+%%CreationDate: Mon Feb  2 16:10:03 2015
+%%EndComments
+% EPSF created by ps2eps 1.68
+%%BeginProlog
+save
+countdictstack
+mark
+newpath
+/showpage {} def
+/setpagedevice {pop} def
+%%EndProlog
+%%Page 1 1
+%%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.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
+%
+% 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 0)
+  /Author (ali)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Mon Feb  2 16:10:03 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) 110.0 0.0 true true 0 ( 1250)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 698 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 698 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 1500)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 1044 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 1044 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 1750)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 1391 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 1391 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 2000)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 1737 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 1737 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 2250)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 2083 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 2083 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 2500)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 2429 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 2429 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 2750)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 2776 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 2776 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 3000)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 3122 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 3122 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 3250)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 3468 M
+63 0 V
+4173 0 R
+-63 0 V
+stroke
+539 3468 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 3500)]
+] -36.7 MRshow
+1.000 UL
+LTb
+605 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+605 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 75)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1029 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1029 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 100)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1452 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1452 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 125)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1876 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1876 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 150)]
+] -36.7 MCshow
+1.000 UL
+LTb
+2299 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2299 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 175)]
+] -36.7 MCshow
+1.000 UL
+LTb
+2723 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2723 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 200)]
+] -36.7 MCshow
+1.000 UL
+LTb
+3147 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3147 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 225)]
+] -36.7 MCshow
+1.000 UL
+LTb
+3570 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3570 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 250)]
+] -36.7 MCshow
+1.000 UL
+LTb
+3994 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3994 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 275)]
+] -36.7 MCshow
+1.000 UL
+LTb
+4417 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4417 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 300)]
+] -36.7 MCshow
+1.000 UL
+LTb
+4841 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4841 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 325)]
+] -36.7 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) 110.0 0.0 true true 0 (Energy Consumption Per Period \(Joules\) )]
+] -36.7 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2723 77 M
+[ [(Helvetica) 110.0 0.0 true true 0 (Number of Wireless Sensor Nodes)]
+] -36.7 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UP
+2.000 UL
+LT0
+0.00 0.55 0.55 C LCb setrgbcolor
+1163 3261 M
+[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO)]
+] -36.7 MRshow
+LT0
+0.00 0.55 0.55 C 1229 3261 M
+327 0 V
+1029 563 M
+847 202 V
+847 180 V
+847 216 V
+847 268 V
+1029 563 TriUF
+1876 765 TriUF
+2723 945 TriUF
+3570 1161 TriUF
+4417 1429 TriUF
+1392 3261 TriUF
+% End plot #1
+% Begin plot #2
+1.000 UP
+2.000 UL
+LT1
+0.00 0.39 0.00 C LCb setrgbcolor
+1163 3151 M
+[ [(Helvetica) 110.0 0.0 true true 0 (DESK)]
+] -36.7 MRshow
+LT1
+0.00 0.39 0.00 C 1229 3151 M
+327 0 V
+1029 1285 M
+847 513 V
+847 372 V
+847 465 V
+847 594 V
+1029 1285 DiaF
+1876 1798 DiaF
+2723 2170 DiaF
+3570 2635 DiaF
+4417 3229 DiaF
+1392 3151 DiaF
+% End plot #2
+% Begin plot #3
+1.000 UP
+2.000 UL
+LT2
+0.50 0.00 0.00 C LCb setrgbcolor
+1163 3041 M
+[ [(Helvetica) 110.0 0.0 true true 0 (GAF)]
+] -36.7 MRshow
+LT2
+0.50 0.00 0.00 C 1229 3041 M
+327 0 V
+1029 1408 M
+847 77 V
+847 59 V
+847 169 V
+847 151 V
+1029 1408 Star
+1876 1485 Star
+2723 1544 Star
+3570 1713 Star
+4417 1864 Star
+1392 3041 Star
+% End plot #3
+% Begin plot #4
+1.000 UP
+2.000 UL
+LT3
+0.00 0.00 0.55 C LCb setrgbcolor
+1163 2931 M
+[ [(Helvetica) 110.0 0.0 true true 0 (PeCO)]
+] -36.7 MRshow
+LT3
+0.00 0.00 0.55 C 1229 2931 M
+327 0 V
+1029 449 M
+847 128 V
+847 174 V
+847 233 V
+847 311 V
+1029 449 CircleF
+1876 577 CircleF
+2723 751 CircleF
+3570 984 CircleF
+4417 1295 CircleF
+1392 2931 CircleF
+% 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
+%%Trailer
+cleartomark
+countdictstack
+exch sub { end } repeat
+restore
+%%EOF
diff --git a/PeCO/R/EC95.pdf b/PeCO/R/EC95.pdf
new file mode 100644 (file)
index 0000000..648988b
Binary files /dev/null and b/PeCO/R/EC95.pdf differ
diff --git a/PeCO/R/LT50-eps-converted-to.pdf b/PeCO/R/LT50-eps-converted-to.pdf
new file mode 100644 (file)
index 0000000..2dae1d3
Binary files /dev/null and b/PeCO/R/LT50-eps-converted-to.pdf differ
diff --git a/PeCO/R/LT50.eps b/PeCO/R/LT50.eps
new file mode 100644 (file)
index 0000000..a6955be
--- /dev/null
@@ -0,0 +1,942 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 53 53 545 402
+%%HiResBoundingBox: 54 53.5 544.5 401.5
+%%Creator: gnuplot 4.6 patchlevel 0
+%%CreationDate: Mon Feb  2 16:11:36 2015
+%%EndComments
+% EPSF created by ps2eps 1.68
+%%BeginProlog
+save
+countdictstack
+mark
+newpath
+/showpage {} def
+/setpagedevice {pop} def
+%%EndProlog
+%%Page 1 1
+%%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.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
+%
+% 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 0)
+  /Author (ali)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Mon Feb  2 16:11: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
+539 352 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 352 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 0)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 560 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 560 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 10)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 767 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 767 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 20)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 975 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 975 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 30)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 1183 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 1183 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 40)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 1391 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 1391 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 50)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 1598 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 1598 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 60)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 1806 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 1806 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 70)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 2014 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 2014 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 80)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 2222 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 2222 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 90)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 2429 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 2429 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 100)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 2637 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 2637 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 110)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 2845 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 2845 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 120)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 3053 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 3053 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 130)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 3260 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 3260 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 140)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 3468 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 3468 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 150)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+539 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 75)]
+] -36.7 MCshow
+1.000 UL
+LTb
+969 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+969 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 100)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1399 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1399 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 125)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1830 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1830 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 150)]
+] -36.7 MCshow
+1.000 UL
+LTb
+2260 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2260 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 175)]
+] -36.7 MCshow
+1.000 UL
+LTb
+2690 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2690 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 200)]
+] -36.7 MCshow
+1.000 UL
+LTb
+3120 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3120 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 225)]
+] -36.7 MCshow
+1.000 UL
+LTb
+3550 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3550 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 250)]
+] -36.7 MCshow
+1.000 UL
+LTb
+3981 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3981 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 275)]
+] -36.7 MCshow
+1.000 UL
+LTb
+4411 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4411 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 300)]
+] -36.7 MCshow
+1.000 UL
+LTb
+4841 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4841 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 325)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1.000 UL
+LTb
+539 3468 N
+539 352 L
+4302 0 V
+0 3116 V
+-4302 0 V
+Z stroke
+LCb setrgbcolor
+88 1910 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Helvetica) 110.0 0.0 true true 0 (Network Lifetime \(Hours\)  )]
+] -36.7 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2690 77 M
+[ [(Helvetica) 110.0 0.0 true true 0 (Number of Wireless Sensor Nodes)]
+] -36.7 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UP
+2.000 UL
+LT0
+0.00 0.55 0.55 C LCb setrgbcolor
+1112 3288 M
+[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO)]
+] -36.7 MRshow
+LT0
+0.00 0.55 0.55 C 1178 3288 M
+327 0 V
+969 1349 M
+861 312 V
+860 311 V
+860 270 V
+861 208 V
+969 1349 TriUF
+1830 1661 TriUF
+2690 1972 TriUF
+3550 2242 TriUF
+4411 2450 TriUF
+1341 3288 TriUF
+% End plot #1
+% Begin plot #2
+1.000 UP
+2.000 UL
+LT1
+0.00 0.39 0.00 C LCb setrgbcolor
+1112 3178 M
+[ [(Helvetica) 110.0 0.0 true true 0 (DESK)]
+] -36.7 MRshow
+LT1
+0.00 0.39 0.00 C 1178 3178 M
+327 0 V
+969 1017 M
+861 249 V
+860 229 V
+860 103 V
+861 125 V
+969 1017 DiaF
+1830 1266 DiaF
+2690 1495 DiaF
+3550 1598 DiaF
+4411 1723 DiaF
+1341 3178 DiaF
+% End plot #2
+% Begin plot #3
+1.000 UP
+2.000 UL
+LT2
+0.50 0.00 0.00 C LCb setrgbcolor
+1112 3068 M
+[ [(Helvetica) 110.0 0.0 true true 0 (GAF)]
+] -36.7 MRshow
+LT2
+0.50 0.00 0.00 C 1178 3068 M
+327 0 V
+969 1079 M
+861 332 V
+860 312 V
+860 270 V
+861 249 V
+969 1079 Star
+1830 1411 Star
+2690 1723 Star
+3550 1993 Star
+4411 2242 Star
+1341 3068 Star
+% End plot #3
+% Begin plot #4
+1.000 UP
+2.000 UL
+LT3
+0.00 0.00 0.55 C LCb setrgbcolor
+1112 2958 M
+[ [(Helvetica) 110.0 0.0 true true 0 (PeCO)]
+] -36.7 MRshow
+LT3
+0.00 0.00 0.55 C 1178 2958 M
+327 0 V
+969 1391 M
+861 498 V
+860 416 V
+860 394 V
+861 250 V
+969 1391 CircleF
+1830 1889 CircleF
+2690 2305 CircleF
+3550 2699 CircleF
+4411 2949 CircleF
+1341 2958 CircleF
+% End plot #4
+1.000 UL
+LTb
+539 3468 N
+539 352 L
+4302 0 V
+0 3116 V
+-4302 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
+%%Trailer
+cleartomark
+countdictstack
+exch sub { end } repeat
+restore
+%%EOF
diff --git a/PeCO/R/LT50.pdf b/PeCO/R/LT50.pdf
new file mode 100644 (file)
index 0000000..35102f7
Binary files /dev/null and b/PeCO/R/LT50.pdf differ
diff --git a/PeCO/R/LT95-eps-converted-to.pdf b/PeCO/R/LT95-eps-converted-to.pdf
new file mode 100644 (file)
index 0000000..da46ae1
Binary files /dev/null and b/PeCO/R/LT95-eps-converted-to.pdf differ
diff --git a/PeCO/R/LT95.eps b/PeCO/R/LT95.eps
new file mode 100644 (file)
index 0000000..d9217cf
--- /dev/null
@@ -0,0 +1,882 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 53 53 545 402
+%%HiResBoundingBox: 54 53.5 544.5 401.5
+%%Creator: gnuplot 4.6 patchlevel 0
+%%CreationDate: Mon Feb  2 16:12:31 2015
+%%EndComments
+% EPSF created by ps2eps 1.68
+%%BeginProlog
+save
+countdictstack
+mark
+newpath
+/showpage {} def
+/setpagedevice {pop} def
+%%EndProlog
+%%Page 1 1
+%%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.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
+%
+% 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 0)
+  /Author (ali)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Mon Feb  2 16:12:31 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) 110.0 0.0 true true 0 ( 0)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 698 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 698 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 10)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 1044 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1044 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 20)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 1391 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1391 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 30)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 1737 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 1737 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 40)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 2083 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2083 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 50)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 2429 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2429 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 60)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 2776 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 2776 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 70)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 3122 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3122 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 80)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 3468 M
+63 0 V
+4305 0 R
+-63 0 V
+stroke
+407 3468 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 90)]
+] -36.7 MRshow
+1.000 UL
+LTb
+473 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+473 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 75)]
+] -36.7 MCshow
+1.000 UL
+LTb
+910 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+910 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 100)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1347 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1347 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 125)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1783 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1783 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 150)]
+] -36.7 MCshow
+1.000 UL
+LTb
+2220 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2220 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 175)]
+] -36.7 MCshow
+1.000 UL
+LTb
+2657 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2657 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 200)]
+] -36.7 MCshow
+1.000 UL
+LTb
+3094 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3094 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 225)]
+] -36.7 MCshow
+1.000 UL
+LTb
+3531 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3531 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 250)]
+] -36.7 MCshow
+1.000 UL
+LTb
+3967 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3967 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 275)]
+] -36.7 MCshow
+1.000 UL
+LTb
+4404 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4404 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 300)]
+] -36.7 MCshow
+1.000 UL
+LTb
+4841 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4841 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 325)]
+] -36.7 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) 110.0 0.0 true true 0 (Network Lifetime \(Hours\)  )]
+] -36.7 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2657 77 M
+[ [(Helvetica) 110.0 0.0 true true 0 (Number of Wireless Sensor Nodes)]
+] -36.7 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UP
+2.000 UL
+LT0
+0.00 0.55 0.55 C LCb setrgbcolor
+1062 3275 M
+[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO)]
+] -36.7 MRshow
+LT0
+0.00 0.55 0.55 C 1128 3275 M
+327 0 V
+910 1425 M
+873 520 V
+874 484 V
+874 416 V
+873 346 V
+910 1425 TriUF
+1783 1945 TriUF
+2657 2429 TriUF
+3531 2845 TriUF
+4404 3191 TriUF
+1291 3275 TriUF
+% End plot #1
+% Begin plot #2
+1.000 UP
+2.000 UL
+LT1
+0.00 0.39 0.00 C LCb setrgbcolor
+1062 3165 M
+[ [(Helvetica) 110.0 0.0 true true 0 (DESK)]
+] -36.7 MRshow
+LT1
+0.00 0.39 0.00 C 1128 3165 M
+327 0 V
+910 1356 M
+873 139 V
+874 415 V
+874 277 V
+873 173 V
+910 1356 DiaF
+1783 1495 DiaF
+2657 1910 DiaF
+3531 2187 DiaF
+4404 2360 DiaF
+1291 3165 DiaF
+% End plot #2
+% Begin plot #3
+1.000 UP
+2.000 UL
+LT2
+0.50 0.00 0.00 C LCb setrgbcolor
+1062 3055 M
+[ [(Helvetica) 110.0 0.0 true true 0 (GAF)]
+] -36.7 MRshow
+LT2
+0.50 0.00 0.00 C 1128 3055 M
+327 0 V
+910 1010 M
+873 485 V
+874 484 V
+874 277 V
+873 346 V
+910 1010 Star
+1783 1495 Star
+2657 1979 Star
+3531 2256 Star
+4404 2602 Star
+1291 3055 Star
+% End plot #3
+% Begin plot #4
+1.000 UP
+2.000 UL
+LT3
+0.00 0.00 0.55 C LCb setrgbcolor
+1062 2945 M
+[ [(Helvetica) 110.0 0.0 true true 0 (PeCO)]
+] -36.7 MRshow
+LT3
+0.00 0.00 0.55 C 1128 2945 M
+327 0 V
+910 1391 M
+873 519 V
+874 415 V
+874 277 V
+873 312 V
+910 1391 CircleF
+1783 1910 CircleF
+2657 2325 CircleF
+3531 2602 CircleF
+4404 2914 CircleF
+1291 2945 CircleF
+% 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
+%%Trailer
+cleartomark
+countdictstack
+exch sub { end } repeat
+restore
+%%EOF
diff --git a/PeCO/R/LT95.pdf b/PeCO/R/LT95.pdf
new file mode 100644 (file)
index 0000000..ec103de
Binary files /dev/null and b/PeCO/R/LT95.pdf differ
diff --git a/PeCO/R/LTa-eps-converted-to.pdf b/PeCO/R/LTa-eps-converted-to.pdf
new file mode 100644 (file)
index 0000000..2e5742a
Binary files /dev/null and b/PeCO/R/LTa-eps-converted-to.pdf differ
diff --git a/PeCO/R/LTa.eps b/PeCO/R/LTa.eps
new file mode 100644 (file)
index 0000000..67ca46d
--- /dev/null
@@ -0,0 +1,1000 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%BoundingBox: 53 53 536 402
+%%HiResBoundingBox: 54 53.5 535 401.5
+%%Creator: gnuplot 4.6 patchlevel 0
+%%CreationDate: Mon Feb  2 16:16:10 2015
+%%EndComments
+% EPSF created by ps2eps 1.68
+%%BeginProlog
+save
+countdictstack
+mark
+newpath
+/showpage {} def
+/setpagedevice {pop} def
+%%EndProlog
+%%Page 1 1
+%%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.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
+%
+% 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 0)
+  /Author (ali)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Mon Feb  2 16:16:10 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
+539 352 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 352 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 0)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 456 M
+31 0 V
+4271 0 R
+-31 0 V
+539 560 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 560 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 10)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 664 M
+31 0 V
+4271 0 R
+-31 0 V
+539 767 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 767 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 20)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 871 M
+31 0 V
+4271 0 R
+-31 0 V
+539 975 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 975 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 30)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 1079 M
+31 0 V
+4271 0 R
+-31 0 V
+539 1183 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 1183 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 40)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 1287 M
+31 0 V
+4271 0 R
+-31 0 V
+539 1391 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 1391 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 50)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 1495 M
+31 0 V
+4271 0 R
+-31 0 V
+539 1598 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 1598 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 60)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 1702 M
+31 0 V
+4271 0 R
+-31 0 V
+539 1806 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 1806 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 70)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 1910 M
+31 0 V
+4271 0 R
+-31 0 V
+539 2014 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 2014 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 80)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 2118 M
+31 0 V
+4271 0 R
+-31 0 V
+539 2222 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 2222 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 90)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 2325 M
+31 0 V
+4271 0 R
+-31 0 V
+539 2429 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 2429 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 100)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 2533 M
+31 0 V
+4271 0 R
+-31 0 V
+539 2637 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 2637 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 110)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 2741 M
+31 0 V
+4271 0 R
+-31 0 V
+539 2845 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 2845 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 120)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 2949 M
+31 0 V
+4271 0 R
+-31 0 V
+539 3053 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 3053 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 130)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 3156 M
+31 0 V
+4271 0 R
+-31 0 V
+539 3260 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 3260 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 140)]
+] -36.7 MRshow
+1.000 UL
+LTb
+539 3364 M
+31 0 V
+4271 0 R
+-31 0 V
+539 3468 M
+63 0 V
+4239 0 R
+-63 0 V
+stroke
+473 3468 M
+[ [(Helvetica) 110.0 0.0 true true 0 ( 150)]
+] -36.7 MRshow
+1.000 UL
+LTb
+1256 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1256 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 (100)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1973 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+1973 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 (150)]
+] -36.7 MCshow
+1.000 UL
+LTb
+2690 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+2690 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 (200)]
+] -36.7 MCshow
+1.000 UL
+LTb
+3407 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+3407 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 (250)]
+] -36.7 MCshow
+1.000 UL
+LTb
+4124 352 M
+0 63 V
+0 3053 R
+0 -63 V
+stroke
+4124 242 M
+[ [(Helvetica) 110.0 0.0 true true 0 (300)]
+] -36.7 MCshow
+1.000 UL
+LTb
+1.000 UL
+LTb
+539 3468 N
+539 352 L
+4302 0 V
+0 3116 V
+-4302 0 V
+Z stroke
+LCb setrgbcolor
+88 1910 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Helvetica) 110.0 0.0 true true 0 (Network Lifetime \(Hours\) )]
+] -36.7 MCshow
+grestore
+LTb
+LCb setrgbcolor
+2690 77 M
+[ [(Helvetica) 110.0 0.0 true true 0 (The Number of Wireless Sensor Nodes)]
+] -36.7 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+% Begin plot #1
+1.000 UL
+LT0
+0.62 0.69 0.87 C LCb setrgbcolor
+1156 3330 M
+[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO/50)]
+] -36.7 MRshow
+LT0
+0.62 0.69 0.87 C 1.000 1222 3303 327 55 BoxColFill
+1.000 938 352 50 998 BoxColFill
+1.000 1655 352 50 1310 BoxColFill
+1.000 2372 352 50 1621 BoxColFill
+1.000 3089 352 50 1891 BoxColFill
+1.000 3806 352 50 2099 BoxColFill
+% End plot #1
+% Begin plot #2
+1.000 UL
+LT1
+0.10 0.10 0.44 C LCb setrgbcolor
+1156 3220 M
+[ [(Helvetica) 110.0 0.0 true true 0 (PeCO/50)]
+] -36.7 MRshow
+LT1
+0.10 0.10 0.44 C 1.000 1222 3193 327 55 BoxColFill
+1.000 1003 352 50 1040 BoxColFill
+1.000 1720 352 50 1538 BoxColFill
+1.000 2437 352 50 1954 BoxColFill
+1.000 3154 352 50 2348 BoxColFill
+1.000 3871 352 50 2598 BoxColFill
+% End plot #2
+% Begin plot #3
+1.000 UL
+LT2
+1.00 0.75 0.80 C LCb setrgbcolor
+1156 3110 M
+[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO/80)]
+] -36.7 MRshow
+LT2
+1.00 0.75 0.80 C 1.000 1222 3083 327 55 BoxColFill
+1.000 1069 352 49 728 BoxColFill
+1.000 1786 352 49 1081 BoxColFill
+1.000 2503 352 49 1414 BoxColFill
+1.000 3220 352 49 1704 BoxColFill
+1.000 3937 352 49 1912 BoxColFill
+% End plot #3
+% Begin plot #4
+1.000 UL
+LT3
+1.00 0.00 0.00 C LCb setrgbcolor
+1156 3000 M
+[ [(Helvetica) 110.0 0.0 true true 0 (PeCO/80)]
+] -36.7 MRshow
+LT3
+1.00 0.00 0.00 C 1.000 1222 2973 327 55 BoxColFill
+1.000 1134 352 50 749 BoxColFill
+1.000 1851 352 50 1268 BoxColFill
+1.000 2568 352 50 1580 BoxColFill
+1.000 3285 352 50 1912 BoxColFill
+1.000 4002 352 50 2182 BoxColFill
+% End plot #4
+% Begin plot #5
+1.000 UL
+LT4
+0.54 0.17 0.89 C LCb setrgbcolor
+1156 2890 M
+[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO/85)]
+] -36.7 MRshow
+LT4
+0.54 0.17 0.89 C 1.000 1222 2863 327 55 BoxColFill
+1.000 1199 352 50 707 BoxColFill
+1.000 1916 352 50 1040 BoxColFill
+1.000 2633 352 50 1351 BoxColFill
+1.000 3350 352 50 1642 BoxColFill
+1.000 4067 352 50 1871 BoxColFill
+% End plot #5
+% Begin plot #6
+1.000 UL
+LT5
+0.18 0.55 0.34 C LCb setrgbcolor
+1156 2780 M
+[ [(Helvetica) 110.0 0.0 true true 0 (PeCO/85)]
+] -36.7 MRshow
+LT5
+0.18 0.55 0.34 C 1.000 1222 2753 327 55 BoxColFill
+1.000 1264 352 50 707 BoxColFill
+1.000 1981 352 50 1081 BoxColFill
+1.000 2698 352 50 1455 BoxColFill
+1.000 3415 352 50 1788 BoxColFill
+1.000 4132 352 50 1954 BoxColFill
+% End plot #6
+% Begin plot #7
+1.000 UL
+LT6
+1.00 0.00 1.00 C LCb setrgbcolor
+1156 2670 M
+[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO/90)]
+] -36.7 MRshow
+LT6
+1.00 0.00 1.00 C 1.000 1222 2643 327 55 BoxColFill
+1.000 1329 352 50 687 BoxColFill
+1.000 2046 352 50 998 BoxColFill
+1.000 2763 352 50 1310 BoxColFill
+1.000 3480 352 50 1580 BoxColFill
+1.000 4197 352 50 1808 BoxColFill
+% End plot #7
+% Begin plot #8
+1.000 UL
+LT7
+0.00 0.55 0.55 C LCb setrgbcolor
+1156 2560 M
+[ [(Helvetica) 110.0 0.0 true true 0 (PeCO/90)]
+] -36.7 MRshow
+LT7
+0.00 0.55 0.55 C 1.000 1222 2533 327 55 BoxColFill
+1.000 1395 352 49 687 BoxColFill
+1.000 2112 352 49 1019 BoxColFill
+1.000 2829 352 49 1330 BoxColFill
+1.000 3546 352 49 1621 BoxColFill
+1.000 4263 352 49 1788 BoxColFill
+% End plot #8
+% Begin plot #9
+1.000 UL
+LT8
+0.50 1.00 0.83 C LCb setrgbcolor
+1156 2450 M
+[ [(Helvetica) 110.0 0.0 true true 0 (DiLCO/95)]
+] -36.7 MRshow
+LT8
+0.50 1.00 0.83 C 1.000 1222 2423 327 55 BoxColFill
+1.000 1460 352 50 645 BoxColFill
+1.000 2177 352 50 957 BoxColFill
+1.000 2894 352 50 1247 BoxColFill
+1.000 3611 352 50 1497 BoxColFill
+1.000 4328 352 50 1704 BoxColFill
+% End plot #9
+% Begin plot #10
+1.000 UL
+LT0
+0.50 0.00 0.00 C LCb setrgbcolor
+1156 2340 M
+[ [(Helvetica) 110.0 0.0 true true 0 (PeCO/95)]
+] -36.7 MRshow
+LT0
+0.50 0.00 0.00 C 1.000 1222 2313 327 55 BoxColFill
+1.000 1525 352 50 624 BoxColFill
+1.000 2242 352 50 936 BoxColFill
+1.000 2959 352 50 1185 BoxColFill
+1.000 3676 352 50 1351 BoxColFill
+1.000 4393 352 50 1538 BoxColFill
+% End plot #10
+1.000 UL
+LTb
+539 3468 N
+539 352 L
+4302 0 V
+0 3116 V
+-4302 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Helvetica
+%%Pages: 1
+%%Trailer
+cleartomark
+countdictstack
+exch sub { end } repeat
+restore
+%%EOF
diff --git a/PeCO/R/LTa.pdf b/PeCO/R/LTa.pdf
new file mode 100644 (file)
index 0000000..c11c8d6
Binary files /dev/null and b/PeCO/R/LTa.pdf differ
diff --git a/PeCO/acmsmall-guide.pdf b/PeCO/acmsmall-guide.pdf
new file mode 100644 (file)
index 0000000..0d1b71c
Binary files /dev/null and b/PeCO/acmsmall-guide.pdf differ
diff --git a/PeCO/acmsmall-mouse.eps b/PeCO/acmsmall-mouse.eps
new file mode 100644 (file)
index 0000000..709881d
--- /dev/null
@@ -0,0 +1,145 @@
+%!PS-Adobe-2.0 EPSF-1.2
+%%Creator: Adobe Illustrator(TM) for Windows, version 4.0
+%%For: (Siepo Drop                              ) (Studio Bitmuis                          )
+%%Title: (MOUSE.AI)
+%%CreationDate: (10/25/96) (6:00 PM)
+%%DocumentProcessColors: Black
+%%DocumentProcSets: Adobe_Illustrator_1.1 0 0
+%%DocumentSuppliedProcSets: Adobe_Illustrator_1.1 0 0
+%%BoundingBox:233 344 384 478
+%%ColorUsage: Black&White
+%%TemplateBox:306 396 306 396
+%%TileBox: 0 0 576 806
+%%DocumentPreview: Header
+%%Template:
+%%PageOrigin:0 0
+%%AI3_PaperRect:-9.6002 808.5785 585.6134 -2.6401
+%%AI3_Margin:9.6002 -2.6401 -9.6002 2.6401
+%%EndComments
+% $Header:   N:/pvcs/ninjamus/nmnew/res/prolog.1_v   3.0   20 Apr 1992 17:03:54   epperson  $
+%%BeginProcSet:Adobe_Illustrator_1.1 0 0
+% Copyright (C) 1987-1990 Adobe Systems Incorporated.
+% All Rights Reserved.
+% Adobe Illustrator is a trademark of Adobe Systems Incorporated.
+/Adobe_Illustrator_1.1 dup 100 dict def load begin
+/Version 0 def
+/Revision 0 def
+% definition operators
+/bdef {bind def} bind def
+/ldef {load def} bdef
+/xdef {exch def} bdef
+% graphic state operators
+/_K {3 index add neg dup 0 lt {pop 0} if 3 1 roll} bdef
+/_k /setcmybcolor where
+{/setcmybcolor get} {{1 sub 4 1 roll _K _K _K setrgbcolor pop} bind} ifelse def
+/g {/_b xdef /p {_b setgray} def} bdef
+/G {/_B xdef /P {_B setgray} def} bdef
+/k {/_b xdef /_y xdef /_m xdef /_c xdef /p {_c _m _y _b _k} def} bdef
+/K {/_B xdef /_Y xdef /_M xdef /_C xdef /P {_C _M _Y _B _k} def} bdef
+/d /setdash ldef
+/_i currentflat def
+/i {dup 0 eq {pop _i} if setflat} bdef
+/j /setlinejoin ldef
+/J /setlinecap ldef
+/M /setmiterlimit ldef
+/w /setlinewidth ldef
+% path construction operators
+/_R {.25 sub round .25 add} bdef
+/_r {transform _R exch _R exch itransform} bdef
+/c {_r curveto} bdef
+/C /c ldef
+/v {currentpoint 6 2 roll _r curveto} bdef
+/V /v ldef
+/y {_r 2 copy curveto} bdef
+/Y /y ldef
+/l {_r lineto} bdef
+/L /l ldef
+/m {_r moveto} bdef
+% error operators
+/_e [] def
+/_E {_e length 0 ne {gsave 0 g 0 G 0 i 0 J 0 j 1 w 10 M [] 0 d
+/Courier 20 0 0 1 z [0.966 0.259 -0.259 0.966
+_e 0 get _e 2 get add 2 div _e 1 get _e 3 get add 2 div] e _f t T grestore} if} bdef
+/_fill {{fill} stopped
+{/_e [pathbbox] def /_f (ERROR: can't fill, increase flatness) def n _E} if} bdef
+/_stroke {{stroke} stopped
+{/_e [pathbbox] def /_f (ERROR: can't stroke, increase flatness) def n _E} if} bdef
+% path painting operators
+/n /newpath ldef
+/N /n ldef
+/F {p _fill} bdef
+/f {closepath F} bdef
+/S {P _stroke} bdef
+/s {closepath S} bdef
+/B {gsave F grestore S} bdef
+/b {closepath B} bdef
+% text block construction and painting operators
+/_s /ashow ldef
+/_S {(?) exch {2 copy 0 exch put pop dup false charpath currentpoint _g setmatrix
+_stroke _G setmatrix moveto 3 copy pop rmoveto} forall pop pop pop n} bdef
+/_A {_a moveto _t exch 0 exch} bdef
+/_L {0 _l neg translate _G currentmatrix pop} bdef
+/_w {dup stringwidth exch 3 -1 roll length 1 sub _t mul add exch} bdef
+/_z [{0 0} bind {dup _w exch neg 2 div exch neg 2 div} bind {dup _w exch neg exch neg} bind] def
+/z {_z exch get /_a xdef /_t xdef /_l xdef exch findfont exch scalefont setfont} bdef
+/_g matrix def
+/_G matrix def
+/_D {_g currentmatrix pop gsave concat _G currentmatrix pop} bdef
+/e {_D p /t {_A _s _L} def} bdef
+/r {_D P /t {_A _S _L} def} bdef
+/a {_D /t {dup p _A _s P _A _S _L} def} bdef
+/o {_D /t {pop _L} def} bdef
+/T {grestore} bdef
+% group construction operators
+/u {} bdef
+/U {} bdef
+% font construction operators
+/Z {findfont begin currentdict dup length dict begin
+{1 index /FID ne {def} {pop pop} ifelse} forall /FontName exch def dup length 0 ne
+{/Encoding Encoding 256 array copy def 0 exch {dup type /nametype eq
+{Encoding 2 index 2 index put pop 1 add} {exch pop} ifelse} forall} if pop
+currentdict dup end end /FontName get exch definefont pop} bdef
+end
+%%EndProcSet
+%AI3-Grid.0 18 18 3 0.833333 0.833333 0.833333 3
+%%EndProlog
+%%BeginSetup
+% $Header:   N:/pvcs/ninjamus/nmnew/res/setup.1_v   3.0   20 Apr 1992 17:04:24   epperson  $
+Adobe_Illustrator_1.1 begin
+n
+%%EndSetup
+u
+0 0 0 1 k
+0 i 0 J 0 j 0.5226 w 4 M []0 d
+%%Note:
+234.4156 349.9487 m
+234.4533 357.3618 242.7696 373.0161 248.0755 380.7679 C
+241.0762 381.5582 238.7437 386.2243 244.1995 392.8849 c
+249.6559 399.5455 254.4726 401.8786 258.9506 392.8849 C
+289.356 426.5265 305.7628 433.9396 336.9584 415.576 C
+348.2475 419.4896 356.4509 419.0757 367.74 436.6867 c
+376.4327 450.196 372.2181 450.8357 369.3205 462.8774 c
+366.5735 474.2041 374.4006 476.9512 382.5664 477.7414 C
+382.1901 474.5805 L
+374.4006 474.9944 370.7128 471.57 373.9867 463.2537 c
+378.2765 452.3033 380.1957 445.304 373.6104 434.7299 c
+365.7833 422.199 358.784 415.9523 341.2483 408.1629 C
+338.9904 396.648 336.6197 386.2243 321.3418 376.892 c
+315.3962 373.2419 301.9998 372.414 294.4366 368.2747 c
+284.5393 362.8559 260.4559 355.5556 253.419 353.7493 c
+246.4574 351.9054 240.8881 343.6268 234.4156 349.9487 C
+f
+0 0 0 0 k
+251.5751 365.1513 m
+253.4942 365.1513 255.0747 363.6085 255.0747 361.6893 c
+255.0747 359.6949 253.4942 358.1521 251.5751 358.1521 c
+249.6936 358.1521 248.1131 359.6949 248.1131 361.6893 c
+248.1131 363.6085 249.6936 365.1513 251.5751 365.1513 c
+f
+U
+%%PageTrailer
+%%Trailer
+_E end
+%%EOF
+
+
diff --git a/PeCO/acmsmall-mouse.pdf b/PeCO/acmsmall-mouse.pdf
new file mode 100644 (file)
index 0000000..3f5ba67
Binary files /dev/null and b/PeCO/acmsmall-mouse.pdf differ
diff --git a/PeCO/acmsmall-sample-bibfile.bib b/PeCO/acmsmall-sample-bibfile.bib
new file mode 100644 (file)
index 0000000..a4f2c57
--- /dev/null
@@ -0,0 +1,1550 @@
+%%% ====================================================================\r
+%%%  BibTeX-file{\r
+%%%     author          = "Gerry Murray",\r
+%%%     version         = "1.2",\r
+%%%     date            = "2 April 2012",\r
+%%%     filename        = "acmsmall-sample-bibfile.bib",\r
+%%%     address         = "ACM, NY",\r
+%%%     email           = "murray at hq.acm.org",\r
+%%%     codetable       = "ISO/ASCII",\r
+%%%     keywords        = "ACM Reference Format, bibliography, citation, references",\r
+%%%     supported       = "yes",\r
+%%%     docstring       = "This BibTeX database file contains 'bibdata' entries\r
+%%%                        that 'match' the examples provided in the Specifications Document\r
+%%%                        AND, also, 'legacy'-type bibs. It should assist authors in \r
+%%%                        choosing the 'correct' at-bibtype and necessary bib-fields\r
+%%%                        so as to obtain the appropriate ACM Reference Format output. \r
+%%%                       It also contains many 'Standard Abbreviations'. "\r
+%%%  }\r
+%%% ====================================================================\r
+\r
+% Journals\r
+\r
+% First the Full Name is given, then the abbreviation used in the AMS Math\r
+% Reviews, with an indication if it could not be found there.\r
+% Note the 2nd overwrites the 1st, so swap them if you want the full name.\r
+\r
+ %{AMS}\r
+ @String{AMSTrans = "American Mathematical Society Translations" }\r
+ @String{AMSTrans = "Amer. Math. Soc. Transl." }\r
+ @String{BullAMS = "Bulletin of the American Mathematical Society" }\r
+ @String{BullAMS = "Bull. Amer. Math. Soc." }\r
+ @String{ProcAMS = "Proceedings of the American Mathematical Society" }\r
+ @String{ProcAMS = "Proc. Amer. Math. Soc." }\r
+ @String{TransAMS = "Transactions of the American Mathematical Society" }\r
+ @String{TransAMS = "Trans. Amer. Math. Soc." }\r
+\r
+ %ACM\r
+ @String{CACM = "Communications of the {ACM}" }\r
+ @String{CACM = "Commun. {ACM}" }\r
+ @String{CompServ = "Comput. Surveys" }\r
+ @String{JACM = "J. ACM" }\r
+ @String{ACMMathSoft = "{ACM} Transactions on Mathematical Software" }\r
+ @String{ACMMathSoft = "{ACM} Trans. Math. Software" }\r
+ @String{SIGNUM = "{ACM} {SIGNUM} Newsletter" }\r
+ @String{SIGNUM = "{ACM} {SIGNUM} Newslett." }\r
+\r
+ @String{AmerSocio = "American Journal of Sociology" }\r
+ @String{AmerStatAssoc = "Journal of the American Statistical Association" }\r
+ @String{AmerStatAssoc = "J. Amer. Statist. Assoc." }\r
+ @String{ApplMathComp = "Applied Mathematics and Computation" }\r
+ @String{ApplMathComp = "Appl. Math. Comput." }\r
+ @String{AmerMathMonthly = "American Mathematical Monthly" }\r
+ @String{AmerMathMonthly = "Amer. Math. Monthly" }\r
+ @String{BIT = "{BIT}" }\r
+ @String{BritStatPsych = "British Journal of Mathematical and Statistical\r
+          Psychology" }\r
+ @String{BritStatPsych = "Brit. J. Math. Statist. Psych." }\r
+ @String{CanMathBull = "Canadian Mathematical Bulletin" }\r
+ @String{CanMathBull = "Canad. Math. Bull." }\r
+ @String{CompApplMath = "Journal of Computational and Applied Mathematics" }\r
+ @String{CompApplMath = "J. Comput. Appl. Math." }\r
+ @String{CompPhys = "Journal of Computational Physics" }\r
+ @String{CompPhys = "J. Comput. Phys." }\r
+ @String{CompStruct = "Computers and Structures" }\r
+ @String{CompStruct = "Comput. \& Structures" }\r
+ @String{CompJour = "The Computer Journal" }\r
+ @String{CompJour = "Comput. J." }\r
+ @String{CompSysSci = "Journal of Computer and System Sciences" }\r
+ @String{CompSysSci = "J. Comput. System Sci." }\r
+ @String{Computing = "Computing" }\r
+ @String{ContempMath = "Contemporary Mathematics" }\r
+ @String{ContempMath = "Contemp. Math." }\r
+ @String{Crelle = "Crelle's Journal" }\r
+ @String{GiornaleMath = "Giornale di Mathematiche" }\r
+ @String{GiornaleMath = "Giorn. Mat." } % didn't find in AMS MR., ibid.\r
+\r
+ %IEEE\r
+ @String{Computer = "{IEEE} Computer" }\r
+ @String{IEEETransComp = "{IEEE} Transactions on Computers" }\r
+ @String{IEEETransComp = "{IEEE} Trans. Comput." }\r
+ @String{IEEETransAC = "{IEEE} Transactions on Automatic Control" }\r
+ @String{IEEETransAC = "{IEEE} Trans. Automat. Control" }\r
+ @String{IEEESpec = "{IEEE} Spectrum" } % didn't find in AMS MR\r
+ @String{ProcIEEE = "Proceedings of the {IEEE}" }\r
+ @String{ProcIEEE = "Proc. {IEEE}" } % didn't find in AMS MR\r
+ @String{IEEETransAeroElec = "{IEEE} Transactions on Aerospace and Electronic\r
+     Systems" }\r
+ @String{IEEETransAeroElec = "{IEEE} Trans. Aerospace Electron. Systems" }\r
+\r
+ @String{IMANumerAna = "{IMA} Journal of Numerical Analysis" }\r
+ @String{IMANumerAna = "{IMA} J. Numer. Anal." }\r
+ @String{InfProcLet = "Information Processing Letters" }\r
+ @String{InfProcLet = "Inform. Process. Lett." }\r
+ @String{InstMathApp = "Journal of the Institute of Mathematics and\r
+     its Applications" }\r
+ @String{InstMathApp = "J. Inst. Math. Appl." }\r
+ @String{IntControl = "International Journal of Control" }\r
+ @String{IntControl = "Internat. J. Control" }\r
+ @String{IntNumerEng = "International Journal for Numerical Methods in\r
+     Engineering" }\r
+ @String{IntNumerEng = "Internat. J. Numer. Methods Engrg." }\r
+ @String{IntSuper = "International Journal of Supercomputing Applications" }\r
+ @String{IntSuper = "Internat. J. Supercomputing Applic." } % didn't find\r
+%% in AMS MR\r
+ @String{Kibernetika = "Kibernetika" }\r
+ @String{JResNatBurStand = "Journal of Research of the National Bureau\r
+     of Standards" }\r
+ @String{JResNatBurStand = "J. Res. Nat. Bur. Standards" }\r
+ @String{LinAlgApp = "Linear Algebra and its Applications" }\r
+ @String{LinAlgApp = "Linear Algebra Appl." }\r
+ @String{MathAnaAppl = "Journal of Mathematical Analysis and Applications" }\r
+ @String{MathAnaAppl = "J. Math. Anal. Appl." }\r
+ @String{MathAnnalen = "Mathematische Annalen" }\r
+ @String{MathAnnalen = "Math. Ann." }\r
+ @String{MathPhys = "Journal of Mathematical Physics" }\r
+ @String{MathPhys = "J. Math. Phys." }\r
+ @String{MathComp = "Mathematics of Computation" }\r
+ @String{MathComp = "Math. Comp." }\r
+ @String{MathScand = "Mathematica Scandinavica" }\r
+ @String{MathScand = "Math. Scand." }\r
+ @String{TablesAidsComp = "Mathematical Tables and Other Aids to Computation" }\r
+ @String{TablesAidsComp = "Math. Tables Aids Comput." }\r
+ @String{NumerMath = "Numerische Mathematik" }\r
+ @String{NumerMath = "Numer. Math." }\r
+ @String{PacificMath = "Pacific Journal of Mathematics" }\r
+ @String{PacificMath = "Pacific J. Math." }\r
+ @String{ParDistComp = "Journal of Parallel and Distributed Computing" }\r
+ @String{ParDistComp = "J. Parallel and Distrib. Comput." } % didn't find\r
+%% in AMS MR\r
+ @String{ParComputing = "Parallel Computing" }\r
+ @String{ParComputing = "Parallel Comput." }\r
+ @String{PhilMag = "Philosophical Magazine" }\r
+ @String{PhilMag = "Philos. Mag." }\r
+ @String{ProcNAS = "Proceedings of the National Academy of Sciences\r
+                    of the USA" }\r
+ @String{ProcNAS = "Proc. Nat. Acad. Sci. U. S. A." }\r
+ @String{Psychometrika = "Psychometrika" }\r
+ @String{QuartMath = "Quarterly Journal of Mathematics, Oxford, Series (2)" }\r
+ @String{QuartMath = "Quart. J. Math. Oxford Ser. (2)" }\r
+ @String{QuartApplMath = "Quarterly of Applied Mathematics" }\r
+ @String{QuartApplMath = "Quart. Appl. Math." }\r
+ @String{RevueInstStat = "Review of the International Statisical Institute" }\r
+ @String{RevueInstStat = "Rev. Inst. Internat. Statist." }\r
+\r
+ %SIAM\r
+ @String{JSIAM = "Journal of the Society for Industrial and Applied\r
+     Mathematics" }\r
+ @String{JSIAM = "J. Soc. Indust. Appl. Math." }\r
+ @String{JSIAMB = "Journal of the Society for Industrial and Applied\r
+     Mathematics, Series B, Numerical Analysis" }\r
+ @String{JSIAMB = "J. Soc. Indust. Appl. Math. Ser. B Numer. Anal." }\r
+ @String{SIAMAlgMeth = "{SIAM} Journal on Algebraic and Discrete Methods" }\r
+ @String{SIAMAlgMeth = "{SIAM} J. Algebraic Discrete Methods" }\r
+ @String{SIAMAppMath = "{SIAM} Journal on Applied Mathematics" }\r
+ @String{SIAMAppMath = "{SIAM} J. Appl. Math." }\r
+ @String{SIAMComp = "{SIAM} Journal on Computing" }\r
+ @String{SIAMComp = "{SIAM} J. Comput." }\r
+ @String{SIAMMatrix = "{SIAM} Journal on Matrix Analysis and Applications" }\r
+ @String{SIAMMatrix = "{SIAM} J. Matrix Anal. Appl." }\r
+ @String{SIAMNumAnal = "{SIAM} Journal on Numerical Analysis" }\r
+ @String{SIAMNumAnal = "{SIAM} J. Numer. Anal." }\r
+ @String{SIAMReview = "{SIAM} Review" }\r
+ @String{SIAMReview = "{SIAM} Rev." }\r
+ @String{SIAMSciStat = "{SIAM} Journal on Scientific and Statistical\r
+     Computing" }\r
+ @String{SIAMSciStat = "{SIAM} J. Sci. Statist. Comput." }\r
+\r
+ @String{SoftPracExp = "Software Practice and Experience" }\r
+ @String{SoftPracExp = "Software Prac. Experience" } % didn't find in AMS MR\r
+ @String{StatScience = "Statistical Science" }\r
+ @String{StatScience = "Statist. Sci." }\r
+ @String{Techno = "Technometrics" }\r
+ @String{USSRCompMathPhys = "{USSR} Computational Mathematics and Mathematical\r
+     Physics" }\r
+ @String{USSRCompMathPhys = "{U. S. S. R.} Comput. Math. and Math. Phys." }\r
+ @String{VLSICompSys = "Journal of {VLSI} and Computer Systems" }\r
+ @String{VLSICompSys = "J. {VLSI} Comput. Syst." }\r
+ @String{ZAngewMathMech = "Zeitschrift fur Angewandte Mathematik und\r
+     Mechanik" }\r
+ @String{ZAngewMathMech = "Z. Angew. Math. Mech." }\r
+ @String{ZAngewMathPhys = "Zeitschrift fur Angewandte Mathematik und Physik" }\r
+ @String{ZAngewMathPhys = "Z. Angew. Math. Phys." }\r
+\r
+% Publishers % ================================================= |\r
+\r
+ @String{Academic = "Academic Press" }\r
+ @String{ACMPress = "{ACM} Press" }\r
+ @String{AdamHilger = "Adam Hilger" }\r
+ @String{AddisonWesley = "Addison-Wesley" }\r
+ @String{AllynBacon = "Allyn and Bacon" }\r
+ @String{AMS = "American Mathematical Society" }\r
+ @String{Birkhauser = "Birkha{\"u}ser" }\r
+ @String{CambridgePress = "Cambridge University Press" }\r
+ @String{Chelsea = "Chelsea" }\r
+ @String{ClaredonPress = "Claredon Press" }\r
+ @String{DoverPub = "Dover Publications" }\r
+ @String{Eyolles = "Eyolles" }\r
+ @String{HoltRinehartWinston = "Holt, Rinehart and Winston" }\r
+ @String{Interscience = "Interscience" }\r
+ @String{JohnsHopkinsPress = "The Johns Hopkins University Press" }\r
+ @String{JohnWileySons = "John Wiley and Sons" }\r
+ @String{Macmillan = "Macmillan" }\r
+ @String{MathWorks = "The Math Works Inc." }\r
+ @String{McGrawHill = "McGraw-Hill" }\r
+ @String{NatBurStd = "National Bureau of Standards" }\r
+ @String{NorthHolland = "North-Holland" }\r
+ @String{OxfordPress = "Oxford University Press" }  %address Oxford or London?\r
+ @String{PergamonPress = "Pergamon Press" }\r
+ @String{PlenumPress = "Plenum Press" }\r
+ @String{PrenticeHall = "Prentice-Hall" }\r
+ @String{SIAMPub = "{SIAM} Publications" }\r
+ @String{Springer = "Springer-Verlag" }\r
+ @String{TexasPress = "University of Texas Press" }\r
+ @String{VanNostrand = "Van Nostrand" }\r
+ @String{WHFreeman = "W. H. Freeman and Co." }\r
+\r
+%Entries\r
+\r
+@Article{Abril07,\r
+  author       = "Patricia S. Abril and Robert Plant",\r
+  title        = "The patent holder's dilemma: Buy, sell, or troll?",\r
+  journal      = "Communications of the ACM",\r
+  volume       = "50",\r
+  number       = "1",\r
+  month        = jan,\r
+  year                 = "2007",\r
+  pages        = "36--44",\r
+  doi          = "10.1145/1188913.1188915",\r
+  url          = "http://doi.acm.org/10.1145/1219092.1219093",\r
+  note         = "",\r
+}\r
+\r
+@Article{Cohen07,\r
+  author       =       "Sarah Cohen and Werner Nutt and Yehoshua Sagic",\r
+  title                =       "Deciding equivalances among conjunctive aggregate queries",\r
+  journal      =       JACM,\r
+  articleno    =       "5",\r
+  numpages     =       "50",\r
+  volume       =       "54",\r
+  number       =       "2",\r
+  month        =       apr,\r
+  year                 =       "2007",\r
+  doi          =       "10.1145/1219092.1219093",\r
+  url          =       "http://doi.acm.org/10.1145/1219092.1219093",\r
+  acmid                =       "1219093",\r
+  note                 =       "",\r
+}\r
+\r
+\r
+@article{JCohen96,\r
+  key =         "Cohen",\r
+  editor =       "Jacques Cohen",\r
+  title =        "Special Issue: Digital Libraries",\r
+  journal =      CACM,\r
+  volume =       "39",\r
+  number =      "11",\r
+  month =       nov,\r
+  year =        "1996",\r
+  author =      "",\r
+  publisher =   "",\r
+  chapter =    "",\r
+  pages =      "",\r
+  series =      "",\r
+  address =     "",\r
+  edition =     "",\r
+  note =        "",\r
+}\r
+\r
+\r
+@Book{Kosiur01,\r
+  author =       "David Kosiur",\r
+  title =        "Understanding Policy-Based Networking",\r
+  publisher =    "Wiley",\r
+  year =         "2001",\r
+  address =      "New York, NY",\r
+  edition =      "2nd.",\r
+  editor =      "",\r
+  volume =      "",\r
+  number =      "",\r
+  series =      "",\r
+  month =       "",\r
+  note =        "",\r
+}\r
+\r
+\r
+@Book{Harel79,\r
+  author =       "David Harel",\r
+  year =         "1979",\r
+  title =        "First-Order Dynamic Logic",\r
+  series =       "Lecture Notes in Computer Science",\r
+  volume =       "68",\r
+  address =      "New York, NY",\r
+  publisher =    "Springer-Verlag",\r
+  doi =         "10.1007/3-540-09237-4",\r
+  url =         "http://dx.doi.org/10.1007/3-540-09237-4",\r
+  editor =      "",\r
+  number =      "",\r
+  month =       "",\r
+  note =        "",\r
+}\r
+\r
+\r
+@Inbook{Editor00,\r
+  author =      "",\r
+  editor =       "Ian Editor",\r
+  title =        "The title of book one",\r
+  subtitle =     "The book subtitle",\r
+  series =       "The name of the series one",\r
+  year =         "2007",\r
+  volume =      "9",\r
+  address =      "Chicago",\r
+  edition =      "1st.",\r
+  publisher =    "University of Chicago Press",\r
+  doi =         "10.1007/3-540-09237-4",\r
+  url =         "http://dx.doi.org/10.1007/3-540-09456-9",\r
+  chapter =     "",\r
+  pages =       "",\r
+  number =      "",\r
+  type =        "",\r
+  month =       "",\r
+  note =        "",\r
+}\r
+\r
+%\r
+@InBook{Editor00a,\r
+  author =      "",\r
+  editor =       "Ian Editor",\r
+  title =        "The title of book two",\r
+  subtitle =     "The book subtitle",\r
+  series =       "The name of the series two",\r
+  year =         "2008",\r
+  address =      "Chicago",\r
+  edition =      "2nd.",\r
+  publisher =    "University of Chicago Press",\r
+  doi =         "10.1007/3-540-09237-4",\r
+  url =         "http://dx.doi.org/10.1007/3-540-09456-9",\r
+  volume =      "",\r
+  chapter =     "100",\r
+  pages =       "",\r
+  number =      "",\r
+  type =        "",\r
+  month =       "",\r
+  note =        "",\r
+}\r
+\r
+\r
+% incollection (has an editor, title, and possibly a booktitle)\r
+@Incollection{Spector90,\r
+  author =       "Asad Z. Spector",\r
+  title =        "Achieving application requirements",\r
+  booktitle =    "Distributed Systems",\r
+  publisher =    "ACM Press",\r
+  address =      "New York, NY",\r
+  year =         "1990",\r
+  edition =      "2nd.",\r
+  chapter =      "",\r
+  editor =      "Sape Mullender",\r
+  pages =        "19--33",\r
+  doi =         "10.1145/90417.90738",\r
+  url =         "http://doi.acm.org/10.1145/90417.90738",\r
+  volume =      "",\r
+  number =      "",\r
+  series =      "",\r
+  type =        "",\r
+  month =       "",\r
+  note =        "",\r
+}\r
+\r
+\r
+% incollection (has an editor, title, and possibly a booktitle)\r
+@Incollection{Douglass98,\r
+  author =       "Bruce P. Douglass and David Harel and Mark B. Trakhtenbrot",\r
+  title =        "Statecarts in use: structured analysis and object-orientation",\r
+  series =       "Lecture Notes in Computer Science",\r
+  booktitle =    "Lectures on Embedded Systems",\r
+  publisher =    "Springer-Verlag",\r
+  address =      "London",\r
+  volume =      "1494",\r
+  year =         "1998",\r
+  chapter =      "",\r
+  editor =      "Grzegorz Rozenberg and Frits W. Vaandrager",\r
+  pages =        "368--394",\r
+  doi =         "10.1007/3-540-65193-4_29",\r
+  url =         "http://dx.doi.org/10.1007/3-540-65193-4_29",\r
+  edition =     "",\r
+  number =      "",\r
+  type =        "",\r
+  month =       "",\r
+  note =        "",\r
+}\r
+\r
+\r
+@Book{Knuth97,\r
+  author =       "Donald E. Knuth",\r
+  title =        "The Art of Computer Programming, Vol. 1: Fundamental Algorithms (3rd. ed.)",\r
+  publisher =    "Addison Wesley Longman Publishing Co., Inc.",\r
+  year =         "1997",\r
+  address =      "",\r
+  edition =      "",\r
+  editor =      "",\r
+  volume =      "",\r
+  number =      "",\r
+  series =      "",\r
+  month =       "",\r
+  note =        "",\r
+}\r
+\r
+\r
+@Book{Knuth98,\r
+  author =       "Donald E. Knuth",\r
+  year =         "1998",\r
+  title =        "The Art of Computer Programming",\r
+  series =       "Fundamental Algorithms",\r
+  volume =       "1",\r
+  edition =      "3rd",\r
+  address =      "",\r
+  publisher =    "Addison Wesley Longman Publishing Co., Inc.",\r
+  doi =         "",\r
+  url =         "",\r
+  editor =      "",\r
+  number =      "",\r
+  month =       "",\r
+  note =        "(book)",\r
+}\r
+\r
+%Inbook{Knuth97,\r
+%  author =     "Donald E. Knuth",\r
+%  title =      "The Art of Computer Programming",\r
+%  booktitle =    "the booktitle",\r
+%  edition =      "3",\r
+%  volume =       "1",\r
+%  year =         "1997",\r
+%  publisher =    "Addison Wesley Longman Publishing Co., Inc.",\r
+%  editor =     "",\r
+%  number =     "",\r
+%  series =     "Fundamental Algorithms",\r
+%  type =       "",\r
+%  chapter =    "",\r
+%  pages =      "",\r
+%  address =    "",\r
+%  month =      "",\r
+%  note =       "(inbook)",\r
+%}\r
+\r
+%INBOOK{DK:73-inbook-full,\r
+%   author = "Donald E. Knuth",\r
+%   title = "Fundamental Algorithms (inbook w series)",\r
+%   volume = 1,\r
+%   series = "The Art of Computer Programming",\r
+%   publisher = "Addison-Wesley",\r
+%   address = "Reading, Massachusetts",\r
+%   edition = "Second",\r
+%   month = "10~" # jan,\r
+%   year = "1973",\r
+%   type = "Section",\r
+%   chapter = "1.2",\r
+%   pages = "10--119",\r
+%   note = "Full INBOOK entry (w series)",\r
+%}\r
+\r
+%INcollection{DK:74-incoll,\r
+%   author = "Donald E. Knuth",\r
+%   title = "Fundamental Algorithms (incoll)",\r
+%   volume = 1,\r
+%   booktitle = "The Art of Computer Programming",\r
+%   publisher = "Addison-Wesley",\r
+%   address = "Reading, Massachusetts",\r
+%   month = "10~" # jan,\r
+%   year = "1974",\r
+%   pages = "10--119",\r
+%   editor =    "Bernard Rous",\r
+%   note = "This is a full incoll entry with an editor",\r
+%}\r
+\r
+%INcollection{DK:75-incollws,\r
+%   author = "Donald E. Knuth",\r
+%   title = "Fundamental Algorithms (incoll w series)",\r
+%   volume = 1,\r
+%   booktitle = "The Art of Computer Programming",\r
+%   series = "The Art of Computer Programming",\r
+%   publisher = "Addison-Wesley",\r
+%   address = "Reading, Massachusetts",\r
+%   month = "10~" # jan,\r
+%   year = "1975",\r
+%   pages = "10--119",\r
+%   editor = "Bernard Rous",\r
+%   note = "This is a full incoll entry with an editor and series",\r
+%}\r
+\r
+\r
+@incollection{GM05,\r
+Author= "Dan Geiger and Christopher Meek",\r
+Title= "Structured Variational Inference Procedures and their Realizations (as incol)",\r
+Year= 2005,\r
+Booktitle="Proceedings of Tenth International Workshop on Artificial Intelligence and Statistics, {\rm The Barbados}",\r
+Publisher="The Society for Artificial Intelligence and Statistics",\r
+Month= jan,\r
+Editors= "Z. Ghahramani and R. Cowell"\r
+}\r
+\r
+@Inproceedings{Smith10,\r
+  author =       "Stan W. Smith",\r
+  title =        "An experiment in bibliographic mark-up: Parsing metadata for XML export",\r
+  booktitle =    "Proceedings of the 3rd. annual workshop on Librarians and Computers",\r
+  series =      "LAC '10",\r
+  editor =      "Reginald N. Smythe and Alexander Noble",\r
+  volume =       "3",\r
+  year =         "2010",\r
+  publisher =    "Paparazzi Press",\r
+  address =     "Milan Italy",\r
+  pages =        "422--431",\r
+  doi =         "99.9999/woot07-S422",\r
+  url =         "http://dx.doi.org/99.0000/woot07-S422",\r
+  number =      "",\r
+  month =       "",\r
+  organization = "",\r
+  note =        "",\r
+}\r
+\r
+@Inproceedings{VanGundy07,\r
+  author =       "Matthew Van Gundy and Davide Balzarotti and Giovanni Vigna",\r
+  year =         "2007",\r
+  title =        "Catch me, if you can: Evading network signatures with web-based polymorphic worms",\r
+  booktitle =    "Proceedings of the first USENIX workshop on Offensive Technologies",\r
+  series =      "WOOT '07",\r
+  publisher =    "USENIX Association",\r
+  address =     "Berkley, CA",\r
+  articleno =   "7",\r
+  numpages =    "9",\r
+  editor =      "",\r
+  volume =      "",\r
+  number =      "",\r
+  pages =       "",\r
+  month =       "",\r
+  organization = "",\r
+  note =        "",\r
+}\r
+\r
+@Inproceedings{VanGundy08,\r
+  author =       "Matthew Van Gundy and Davide Balzarotti and Giovanni Vigna",\r
+  year =         "2008",\r
+  title =        "Catch me, if you can: Evading network signatures with web-based polymorphic worms",\r
+  booktitle =    "Proceedings of the first USENIX workshop on Offensive Technologies",\r
+  series =      "WOOT '08",\r
+  publisher =    "USENIX Association",\r
+  address =     "Berkley, CA",\r
+  articleno =   "7",\r
+  numpages =    "2",\r
+  editor =      "",\r
+  volume =      "",\r
+  number =      "",\r
+  pages =       "99-100",\r
+  month =       "",\r
+  organization = "",\r
+  note =        "",\r
+}\r
+\r
+@Inproceedings{VanGundy09,\r
+  author =       "Matthew Van Gundy and Davide Balzarotti and Giovanni Vigna",\r
+  year =         "2009",\r
+  title =        "Catch me, if you can: Evading network signatures with web-based polymorphic worms",\r
+  booktitle =    "Proceedings of the first USENIX workshop on Offensive Technologies",\r
+  series =      "WOOT '09",\r
+  publisher =    "USENIX Association",\r
+  address =     "Berkley, CA",\r
+  articleno =   "",\r
+  numpages =    "",\r
+  editor =      "",\r
+  volume =      "",\r
+  number =      "",\r
+  pages =       "90--100",\r
+  month =       "",\r
+  organization = "",\r
+  note =        "",\r
+}\r
+\r
+@Inproceedings{Andler79,\r
+  author =       "Sten Andler",\r
+  title =        "Predicate Path expressions",\r
+  booktitle =    "Proceedings of the 6th. ACM SIGACT-SIGPLAN symposium on Principles of Programming Languages",\r
+  series =      "POPL '79",\r
+  year =         "1979",\r
+  publisher =    "ACM Press",\r
+  address =     "New York, NY",\r
+  pages =        "226--236",\r
+  doi =         "10.1145/567752.567774",\r
+  url =         "http://doi.acm.org/10.1145/567752.567774",\r
+  editor =      "",\r
+  volume =      "",\r
+  number =      "",\r
+  month =       "",\r
+  organization = "",\r
+  note =        "",\r
+}\r
+\r
+@Techreport{Harel78,\r
+  author =       "David Harel",\r
+  year =         "1978",\r
+  title =        "LOGICS of Programs: AXIOMATICS and DESCRIPTIVE POWER",\r
+  institution =  "Massachusetts Institute of Technology",\r
+  type =         "MIT Research Lab Technical Report",\r
+  number =       "TR-200",\r
+  address =      "Cambridge, MA",\r
+  month =       "",\r
+  note =        "",\r
+}\r
+\r
+@MASTERSTHESIS{anisi03,\r
+author = {David A. Anisi},\r
+title = {Optimal Motion Control of a Ground Vehicle},\r
+school = {Royal Institute of Technology (KTH), Stockholm, Sweden},\r
+intitution = {FOI-R-0961-SE, Swedish Defence Research Agency (FOI)},\r
+year = {2003},\r
+}\r
+\r
+\r
+@Phdthesis{Clarkson85,\r
+  author =       "Kenneth L. Clarkson",\r
+  year =         "1985",\r
+  title =        "Algorithms for Closest-Point Problems (Computational Geometry)",\r
+  school =       "Stanford University",\r
+  address =      "Palo Alto, CA",\r
+  note =         "UMI Order Number: AAT 8506171",\r
+  type =        "",\r
+  month =       "",\r
+}\r
+\r
+\r
+@misc{Thornburg01,\r
+  author =       "Harry Thornburg",\r
+  year =         "2001",\r
+  title =        "Introduction to Bayesian Statistics",\r
+  note =         "",\r
+  url =           "http://ccrma.stanford.edu/~jos/bayes/bayes.html",\r
+  howpublished = "",\r
+  month =       mar,\r
+  lastaccessed = "March 2, 2005",\r
+}\r
+\r
+\r
+@misc{Ablamowicz07,\r
+  author =       "Rafal Ablamowicz and Bertfried Fauser",\r
+  year =         "2007",\r
+  title =        "CLIFFORD: a Maple 11 Package for Clifford Algebra Computations, version 11",\r
+  note =        "",\r
+  url =          "http://math.tntech.edu/rafal/cliff11/index.html",\r
+  howpublished = "",\r
+  month =       "",\r
+  lastaccessed = "February 28, 2008",\r
+}\r
+\r
+\r
+@misc{Poker06,\r
+  author =       "Poker-Edge.Com",\r
+  year =         "2006",\r
+  month        = mar,\r
+  title =        "Stats and Analysis",\r
+  lastaccessed = "June 7, 2006",\r
+  url =          "http://www.poker-edge.com/stats.php",\r
+  howpublished = "",\r
+}\r
+\r
+@misc{Obama08,\r
+  author       = "Barack Obama",\r
+  year                 = "2008",\r
+  title                = "A more perfect union",\r
+  howpublished  = "Video",\r
+  day          = "5",\r
+  url          = "http://video.google.com/videoplay?docid=6528042696351994555",\r
+  month        = mar,\r
+  lastaccessed  = "March 21, 2008",\r
+  note         =  "",\r
+}\r
+\r
+@misc{JoeScientist001,\r
+  author =       "Joseph Scientist",\r
+  year =         "2009",\r
+  title =        "The fountain of youth",\r
+  note =         "Patent No. 12345, Filed July 1st., 2008, Issued Aug. 9th., 2009",\r
+  url =           "",\r
+  howpublished = "",\r
+  month =       aug,\r
+  lastaccessed = "",\r
+}\r
+\r
+\r
+@Inproceedings{Novak03,\r
+  author =       "Dave Novak",\r
+  title =        "Solder man",\r
+  booktitle =    "ACM SIGGRAPH 2003 Video Review on Animation theater Program: Part I - Vol. 145 (July 27--27, 2003)",\r
+  year =         "2003",\r
+  publisher =   "ACM Press",\r
+  address =     "New York, NY",\r
+  pages =        "4",\r
+  month =       "March 21, 2008",\r
+  doi =         "99.9999/woot07-S422",\r
+  url =         "http://video.google.com/videoplay?docid=6528042696351994555",\r
+  note =        "",\r
+  howpublished = "Video",\r
+  editor =      "",\r
+  volume =      "",\r
+  number =      "",\r
+  series =      "",\r
+  organization = "",\r
+}\r
+\r
+\r
+@article{Lee05,\r
+  author =       "Newton Lee",\r
+  year =        "2005",\r
+  title =        "Interview with Bill Kinder: January 13, 2005",\r
+  journal =     "Comput. Entertain.",\r
+  articleno =     "4",\r
+  volume =       "3",\r
+  number =      "1",\r
+  month =       "Jan.-March",\r
+  doi =         "10.1145/1057270.1057278",\r
+  url =         "http://doi.acm.org/10.1145/1057270.1057278",\r
+  howpublished = "Video",\r
+  note =        "",\r
+}\r
+\r
+@article{Rous08,\r
+  author =       "Bernard Rous",\r
+  year =        "2008",\r
+  title =        "The Enabling of Digital Libraries",\r
+  journal =     "Digital Libraries",\r
+  volume =       "12",\r
+  number =      "3",\r
+  month =       jul,\r
+  articleno =   "5",\r
+  doi =         "",\r
+  url =         "",\r
+  howpublished = "",\r
+  note =        "To appear",\r
+}\r
+\r
+@article{384253,\r
+ author = {Werneck,, Renato and Setubal,, Jo\~{a}o and da Conceic\~{a}o,, Arlindo},\r
+ title = {(old) Finding minimum congestion spanning trees},\r
+ journal = {J. Exp. Algorithmics},\r
+ volume = {5},\r
+ year = {2000},\r
+ issn = {1084-6654},\r
+ pages = {11},\r
+ doi = {http://doi.acm.org/10.1145/351827.384253},\r
+ publisher = {ACM},\r
+ address = {New York, NY, USA},\r
+ }\r
+\r
+\r
+@article{Werneck:2000:FMC:351827.384253,\r
+ author = {Werneck, Renato and Setubal, Jo\~{a}o and da Conceic\~{a}o, Arlindo},\r
+ title = {(new) Finding minimum congestion spanning trees},\r
+ journal = {J. Exp. Algorithmics},\r
+ volume = {5},\r
+ month = dec,\r
+ year = {2000},\r
+ issn = {1084-6654},\r
+ articleno = {11},\r
+ url = {http://portal.acm.org/citation.cfm?id=351827.384253},\r
+ doi = {10.1145/351827.384253},\r
+ acmid = {384253},\r
+ publisher = {ACM},\r
+ address = {New York, NY, USA},\r
+}\r
+\r
+@article{1555162,\r
+ author = {Conti, Mauro and Di Pietro, Roberto and Mancini, Luigi V. and Mei, Alessandro},\r
+ title = {(old) Distributed data source verification in wireless sensor networks},\r
+ journal = {Inf. Fusion},\r
+ volume = {10},\r
+ number = {4},\r
+ year = {2009},\r
+ issn = {1566-2535},\r
+ pages = {342--353},\r
+ doi = {http://dx.doi.org/10.1016/j.inffus.2009.01.002},\r
+ publisher = {Elsevier Science Publishers B. V.},\r
+ address = {Amsterdam, The Netherlands, The Netherlands},\r
+ }\r
+\r
+@article{Conti:2009:DDS:1555009.1555162,\r
+ author = {Conti, Mauro and Di Pietro, Roberto and Mancini, Luigi V. and Mei, Alessandro},\r
+ title = {(new) Distributed data source verification in wireless sensor networks},\r
+ journal = {Inf. Fusion},\r
+ volume = {10},\r
+ number = {4},\r
+ month = oct,\r
+ year = {2009},\r
+ issn = {1566-2535},\r
+ pages = {342--353},\r
+ numpages = {12},\r
+ url = {http://portal.acm.org/citation.cfm?id=1555009.1555162},\r
+ doi = {10.1016/j.inffus.2009.01.002},\r
+ acmid = {1555162},\r
+ publisher = {Elsevier Science Publishers B. V.},\r
+ address = {Amsterdam, The Netherlands, The Netherlands},\r
+ keywords = {Clone detection, Distributed protocol, Securing data fusion, Wireless sensor networks},\r
+}\r
+\r
+@inproceedings{Li:2008:PUC:1358628.1358946,\r
+ author = {Li, Cheng-Lun and Buyuktur, Ayse G. and Hutchful, David K. and Sant, Natasha B. and Nainwal, Satyendra K.},\r
+ title = {Portalis: using competitive online interactions to support aid initiatives for the homeless},\r
+ booktitle = {CHI '08 extended abstracts on Human factors in computing systems},\r
+ year = {2008},\r
+ isbn = {978-1-60558-012-X},\r
+ location = {Florence, Italy},\r
+ pages = {3873--3878},\r
+ numpages = {6},\r
+ url = {http://portal.acm.org/citation.cfm?id=1358628.1358946},\r
+ doi = {10.1145/1358628.1358946},\r
+ acmid = {1358946},\r
+ publisher = {ACM},\r
+ address = {New York, NY, USA},\r
+ keywords = {cscw, distributed knowledge acquisition, incentive design, online games, recommender systems, reputation systems, user studies, virtual community},\r
+}\r
+\r
+@book{Hollis:1999:VBD:519964,\r
+ author = {Hollis, Billy S.},\r
+ title = {Visual Basic 6: Design, Specification, and Objects with Other},\r
+ year = {1999},\r
+ isbn = {0130850845},\r
+ edition = {1st},\r
+ publisher = {Prentice Hall PTR},\r
+ address = {Upper Saddle River, NJ, USA},\r
+ }\r
+\r
+\r
+@book{Goossens:1999:LWC:553897,\r
+ author = {Goossens, Michel and Rahtz, S. P. and Moore, Ross and Sutor, Robert S.},\r
+ title = {The  Latex Web Companion: Integrating TEX, HTML, and XML},\r
+ year = {1999},\r
+ isbn = {0201433117},\r
+ edition = {1st},\r
+ publisher = {Addison-Wesley Longman Publishing Co., Inc.},\r
+ address = {Boston, MA, USA},\r
+ }\r
+\r
+% need to test genres for errant isbn output\r
+\r
+% techreport\r
+@techreport{897367,\r
+ author = {Buss, Jonathan F. and Rosenberg, Arnold L. and Knott, Judson D.},\r
+ title = {Vertex Types in Book-Embeddings},\r
+ year = {1987},\r
+ source = {http://www.ncstrl.org:8900/ncstrl/servlet/search?formname=detail\&id=oai%3Ancstrlh%3Aumass_cs%3Ancstrl.umassa_cs%2F%2FUM-CS-1987-018},\r
+ publisher = {University of Massachusetts},\r
+ address = {Amherst, MA, USA},\r
+ }\r
+\r
+@techreport{Buss:1987:VTB:897367,\r
+ author = {Buss, Jonathan F. and Rosenberg, Arnold L. and Knott, Judson D.},\r
+ title = {Vertex Types in Book-Embeddings},\r
+ year = {1987},\r
+ source = {http://www.ncstrl.org:8900/ncstrl/servlet/search?formname=detail\&id=oai%3Ancstrlh%3Aumass_cs%3Ancstrl.umassa_cs%2F%2FUM-CS-1987-018},\r
+ publisher = {University of Massachusetts},\r
+ address = {Amherst, MA, USA},\r
+ }\r
+\r
+% whole proceedings\r
+\r
+@proceedings{Czerwinski:2008:1358628,\r
+ author = {},\r
+ note = {General Chair-Czerwinski, Mary and General Chair-Lund, Arnie and Program Chair-Tan, Desney},\r
+ title = {CHI '08: CHI '08 extended abstracts on Human factors in computing systems},\r
+ year = {2008},\r
+ isbn = {978-1-60558-012-X},\r
+ location = {Florence, Italy},\r
+ order_no = {608085},\r
+ publisher = {ACM},\r
+ address = {New York, NY, USA},\r
+ }\r
+\r
+% phdthesis\r
+\r
+@phdthesis{Clarkson:1985:ACP:911891,\r
+ author = {Clarkson, Kenneth Lee},\r
+ advisor = {Yao, Andrew C.},\r
+ title = {Algorithms for Closest-Point Problems (Computational Geometry)},\r
+ year = {1985},\r
+ note = {AAT 8506171},\r
+ school = {Stanford University},\r
+ address = {Stanford, CA, USA},\r
+ }\r
+% school is being picked up -- but not publisher (which is OK)\r
+% Also -- the title is NOT being output in italics !!! Arrrrgh! - I fixed it. :-)\r
+\r
+\r
+%%% compare with 'old' \r
+%%% atsign-Phdthesis{Clarkson85,\r
+%%%  author =       "Kenneth L. Clarkson",\r
+%%%  year =         "1985",\r
+%%%  title =        "Algorithms for Closest-Point Problems (Computational Geometry)",\r
+%%%  school =       "Stanford University",\r
+%%%  address =      "Palo Alto, CA",\r
+%%%  note =         "UMI Order Number: AAT 8506171",\r
+%%%  type =     "",\r
+%%%  month =    "",\r
+%%%}\r
+\r
+% A bibliography\r
+@Article{1984:1040142,\r
+ key = {{$\!\!$}},\r
+ journal = {SIGCOMM Comput. Commun. Rev.},\r
+ year = {1984},\r
+ issn = {0146-4833},\r
+ volume = {13-14},\r
+ number = {5-1},\r
+ issue_date = {January/April 1984},\r
+ publisher = {ACM},\r
+ address = {New York, NY, USA},\r
+ }\r
+\r
+\r
+% grinder\r
+@inproceedings{2004:ITE:1009386.1010128,\r
+ title = {IEEE TCSC Executive Committee},\r
+ booktitle = {Proceedings of the IEEE International Conference on Web Services},\r
+ series = {ICWS '04},\r
+ year = {2004},\r
+ isbn = {0-7695-2167-3},\r
+ pages = {.21--},\r
+ url = {http://dx.doi.org/10.1109/ICWS.2004.64},\r
+ doi = {http://dx.doi.org/10.1109/ICWS.2004.64},\r
+ acmid = {1010128},\r
+ publisher = {IEEE Computer Society},\r
+ address = {Washington, DC, USA},\r
+key = {{$\!\!$}} ,\r
+}\r
+\r
+% div book\r
+@book{Mullender:1993:DS(:302430,\r
+ editor = {Mullender, Sape},\r
+ title = {Distributed systems (2nd Ed.)},\r
+ year = {1993},\r
+ isbn = {0-201-62427-3},\r
+ publisher = {ACM Press/Addison-Wesley Publishing Co.},\r
+ address = {New York, NY, USA},\r
+ }\r
+\r
+% master thesis (as techreport and thesis)\r
+\r
+@techreport{Petrie:1986:NAD:899644,\r
+ author = {Petrie, Charles J.},\r
+ title = {New Algorithms for Dependency-Directed Backtracking (Master's thesis)},\r
+ year = {1986},\r
+ source = {http://www.ncstrl.org:8900/ncstrl/servlet/search?formname=detail\&id=oai%3Ancstrlh%3Autexas_cs%3AUTEXAS_CS%2F%2FAI86-33},\r
+ publisher = {University of Texas at Austin},\r
+ address = {Austin, TX, USA},\r
+ }\r
+\r
+@MASTERSTHESIS{Petrie:1986:NAD:12345,\r
+ author = {Petrie, Charles J.},\r
+ title = {New Algorithms for Dependency-Directed Backtracking (Master's thesis)},\r
+ year = {1986},\r
+ source = {http://www.ncstrl.org:8900/ncstrl/servlet/search?formname=detail\&id=oai%3Ancstrlh%3Autexas_cs%3AUTEXAS_CS%2F%2FAI86-33},\r
+ school = {University of Texas at Austin},\r
+ address = {Austin, TX, USA},\r
+ }\r
+\r
+\r
+\r
+\r
+@BOOK{book-minimal,\r
+   author = "Donald E. Knuth",\r
+   title = "Seminumerical Algorithms",\r
+   publisher = "Addison-Wesley",\r
+   year = "1981",\r
+}\r
+\r
+% incollection (has an editor, title, and possibly a booktitle)\r
+@INcollection{KA:2001,\r
+ author = {Kong, Wei-Chang},\r
+ Title = {The implementation of electronic commerce in SMEs in Singapore (as Incoll)},\r
+ booktitle = {E-commerce and cultural values},\r
+ year = {2001},\r
+ isbn = {1-59140-056-2},\r
+ pages = {51--74},\r
+ numpages = {24},\r
+ url = {http://portal.acm.org/citation.cfm?id=887006.887010},\r
+ acmid = {887010},\r
+ publisher = {IGI Publishing},\r
+ address = {Hershey, PA, USA},\r
+}\r
+\r
+\r
+% with bibfield 'type' before chapter (note no editor)\r
+@INBOOK{KAGM:2001,\r
+ author = {Kong, Wei-Chang},\r
+ type = {Name of Chapter:},\r
+ chapter = {The implementation of electronic commerce in SMEs in Singapore (Inbook-w-chap-w-type)},\r
+ title = {E-commerce and cultural values},\r
+ year = {2001},\r
+ isbn = {1-59140-056-2},\r
+ pages = {51--74},\r
+ numpages = {24},\r
+ url = {http://portal.acm.org/citation.cfm?id=887006.887010},\r
+ acmid = {887010},\r
+ publisher = {IGI Publishing},\r
+ address = {Hershey, PA, USA},\r
+}\r
+\r
+%%% Notes! This is because the atsign-INBOOK citation type specifies EITHER\r
+%%% editor or author, but not both. In my experiments with the harvard/dcu\r
+%%% bibtex style (and presumably this applies to other styles too), bibtex\r
+%%% ignores the editor information if author information exists in an\r
+%%% atsign-INBOOK entry. atsign-INCOLLECTION is far more commonly used in my references,\r
+%%% and in the absence of an editor I believe most bibtex styles will just\r
+%%% ommit the editor from the reference - the chapter information will not\r
+%%% end up in the in-text citation as you suggest it should be but at least\r
+%%% there is a place to put the editor if necessary.\r
+\r
+\r
+\r
+% was 'Inbook' -- changed to incollection - (editor is different to author) - need to tell Asad to codify as such.\r
+@incollection{Kong:2002:IEC:887006.887010,\r
+  author =     {Kong, Wei-Chang},\r
+  editor =     {Theerasak Thanasankit},\r
+  title =      {Chapter 9},\r
+  booktitle =  {E-commerce and cultural values (Incoll-w-text (chap 9) 'title')},\r
+  year =       {2002},\r
+  address =    {Hershey, PA, USA},\r
+  publisher =  {IGI Publishing},\r
+  url =                {http://portal.acm.org/citation.cfm?id=887006.887010},\r
+  pages =      {51--74},\r
+  numpages =   {24},\r
+  acmid =      {887010},\r
+  isbn =       {1-59140-056-2},\r
+  number =      "",\r
+  type =        "",\r
+  month =       "",\r
+  note =        "",\r
+}\r
+\r
+% incol when the chapter is 'text' - due to presence of editor (different to author)\r
+@incollection{Kong:2003:IEC:887006.887011,\r
+ author = {Kong, Wei-Chang},\r
+ title = {The implementation of electronic commerce in SMEs in Singapore (Incoll)},\r
+ booktitle = {E-commerce and cultural values},\r
+ editor = {Thanasankit, Theerasak},\r
+ year = {2003},\r
+ isbn = {1-59140-056-2},\r
+ pages = {51--74},\r
+ numpages = {24},\r
+ url = {http://portal.acm.org/citation.cfm?id=887006.887010},\r
+ acmid = {887010},\r
+ publisher = {IGI Publishing},\r
+ address = {Hershey, PA, USA},\r
+}\r
+\r
+% ------ test\r
+%incollection{Kong:2003:IEC:887006.887010,\r
+% author = {Kong, Wei-Chang},\r
+% chapter = {The implementation of electronic commerce in SMEs in Singapore (Incoll-text-in-chap)},\r
+% booktitle = {booktitle E-commerce and cultural values},\r
+% title =   {The title},\r
+% editor = {Thanasankit, Theerasak},\r
+% year = {2003},\r
+% isbn = {1-59140-056-2},\r
+% pages = {51--74},\r
+% numpages = {24},\r
+% url = {http://portal.acm.org/citation.cfm?id=887006.887010},\r
+% acmid = {887010},\r
+% publisher = {IGI Publishing},\r
+% address = {Hershey, PA, USA},\r
+%}\r
+\r
+\r
+% ---------\r
+\r
+\r
+\r
+\r
+\r
+% Need inbook with num in chapter\r
+\r
+% and inbook with number in chapter\r
+@InBook{Kong:2004:IEC:123456.887010,\r
+  author =     {Kong, Wei-Chang},\r
+  editor =     {Theerasak Thanasankit},\r
+  title =      {E-commerce and cultural values - (InBook-num-in-chap)},\r
+  chapter =    {9},\r
+  year =       {2004},\r
+  address =    {Hershey, PA, USA},\r
+  publisher =  {IGI Publishing},\r
+  url =                {http://portal.acm.org/citation.cfm?id=887006.887010},\r
+  pages =      {51--74},\r
+  numpages =   {24},\r
+  acmid =      {887010},\r
+  isbn =       {1-59140-056-2},\r
+  number =      "",\r
+  type =        "",\r
+  month =       "",\r
+  note =        "",\r
+}\r
+\r
+\r
+% and inbook with text in chapter\r
+@Inbook{Kong:2005:IEC:887006.887010,\r
+  author =     {Kong, Wei-Chang},\r
+  editor =     {Theerasak Thanasankit},\r
+  title =      {E-commerce and cultural values (Inbook-text-in-chap)},\r
+  chapter =    {The implementation of electronic commerce in SMEs in Singapore},\r
+  year =       {2005},\r
+  address =    {Hershey, PA, USA},\r
+  publisher =  {IGI Publishing},\r
+  url =                {http://portal.acm.org/citation.cfm?id=887006.887010},\r
+  type =        {Chapter:},\r
+  pages =      {51--74},\r
+  numpages =   {24},\r
+  acmid =      {887010},\r
+  isbn =       {1-59140-056-2},\r
+  number =      "",\r
+  month =       "",\r
+  note =        "",\r
+}\r
+\r
+\r
+% and inbook with a num and type field\r
+@Inbook{Kong:2006:IEC:887006.887010,\r
+  author =     {Kong, Wei-Chang},\r
+  editor =     {Theerasak Thanasankit},\r
+  title =      {E-commerce and cultural values (Inbook-num chap)},\r
+  chapter =    {22},\r
+  year =       {2006},\r
+  address =    {Hershey, PA, USA},\r
+  publisher =  {IGI Publishing},\r
+  url =                {http://portal.acm.org/citation.cfm?id=887006.887010},\r
+  type =        {Chapter (in type field)},\r
+  pages =      {51--74},\r
+  numpages =   {24},\r
+  acmid =      {887010},\r
+  isbn =       {1-59140-056-2},\r
+  number =      "",\r
+  month =       "",\r
+  note =        "",\r
+}\r
+\r
+\r
+% and incol coz we have a BLANK chapter - due to presence of editor\r
+%atIncollection{Kong:2006:IEC:887006.887011,\r
+%  author =    {Kong, Wei-Chang},\r
+%  editor =    {Theerasak Thanasankit},\r
+%  title =       "The title"\r
+%  booktitle = {E-commerce and cultural values (Incol-coz-blank-chap)},\r
+%  year =      {2006},\r
+%  address =   {Hershey, PA, USA},\r
+%  publisher = {IGI Publishing},\r
+%  url =               {http://portal.acm.org/citation.cfm?id=887006.887010},\r
+%  type =        {Type!},\r
+%  chapter =   {},\r
+%  pages =     {51--74},\r
+%  numpages =  {24},\r
+%  acmid =     {887010},\r
+%  isbn =      {1-59140-056-2},\r
+%  number =     "",\r
+%  month =      "",\r
+%  note =       "",\r
+%}\r
+\r
+@article{SaeediMEJ10,\r
+            author = {Mehdi Saeedi and Morteza Saheb Zamani and Mehdi Sedighi},\r
+            title = {A library-based synthesis methodology for reversible logic},\r
+            journal = {Microelectron. J.},\r
+            volume = {41},\r
+            number = {4},\r
+            month = apr,\r
+            year = {2010},\r
+            pages = {185--194},\r
+}\r
+\r
+@ARTICLE{SaeediJETC10,\r
+            author = {Mehdi Saeedi and Morteza Saheb Zamani and Mehdi Sedighi and Zahra Sasanian},\r
+            title = {Synthesis of Reversible Circuit Using Cycle-Based Approach},\r
+            journal = {J. Emerg. Technol. Comput. Syst.},\r
+            volume = {6},\r
+            number = {4},\r
+            month = dec,\r
+            year = {2010}\r
+            }\r
+\r
+% Asad's new version\r
+@article{Kirschmer:2010:AEI:1958016.1958018,\r
+ author = {Kirschmer, Markus and Voight, John},\r
+ title = {Algorithmic Enumeration of Ideal Classes for Quaternion Orders},\r
+ journal = {SIAM J. Comput.},\r
+ issue_date = {January 2010},\r
+ volume = {39},\r
+ number = {5},\r
+ month = jan,\r
+ year = {2010},\r
+ issn = {0097-5397},\r
+ pages = {1714--1747},\r
+ numpages = {34},\r
+ url = {http://dx.doi.org/10.1137/080734467},\r
+ doi = {http://dx.doi.org/10.1137/080734467},\r
+ acmid = {1958018},\r
+ publisher = {Society for Industrial and Applied Mathematics},\r
+ address = {Philadelphia, PA, USA},\r
+ keywords = {ideal classes, maximal orders, number theory, quaternion algebras},\r
+}\r
+\r
+\r
+% incol due to presence of booktitle\r
+@incollection{Hoare:1972:CIN:1243380.1243382,\r
+ author = {Hoare, C. A. R.},\r
+ title = {Chapter II: Notes on data structuring},\r
+ booktitle = {Structured programming (incoll)},\r
+ editor = {Dahl, O. J. and Dijkstra, E. W. and Hoare, C. A. R.},\r
+ year = {1972},\r
+ isbn = {0-12-200550-3},\r
+ pages = {83--174},\r
+ numpages = {92},\r
+ url = {http://portal.acm.org/citation.cfm?id=1243380.1243382},\r
+ acmid = {1243382},\r
+ publisher = {Academic Press Ltd.},\r
+ address = {London, UK, UK},\r
+} \r
+\r
+% incol due to presence of booktitle\r
+@incollection{Lee:1978:TQA:800025.1198348,\r
+ author = {Lee, Jan},\r
+ title = {Transcript of question and answer session},\r
+ booktitle = {History of programming languages I (incoll)},\r
+ editor = {Wexelblat, Richard L.},\r
+ year = {1981},\r
+ isbn = {0-12-745040-8},\r
+ pages = {68--71},\r
+ numpages = {4},\r
+ url = {http://doi.acm.org/10.1145/800025.1198348},\r
+ doi = {http://doi.acm.org/10.1145/800025.1198348},\r
+ acmid = {1198348},\r
+ publisher = {ACM},\r
+ address = {New York, NY, USA},\r
+}\r
+\r
+% incol due to booktitle\r
+@incollection{Dijkstra:1979:GSC:1241515.1241518,\r
+ author = {Dijkstra, E.},\r
+ title = {Go to statement considered harmful},\r
+ booktitle = {Classics in software engineering (incoll)},\r
+ year = {1979},\r
+ isbn = {0-917072-14-6},\r
+ pages = {27--33},\r
+ numpages = {7},\r
+ url = {http://portal.acm.org/citation.cfm?id=1241515.1241518},\r
+ acmid = {1241518},\r
+ publisher = {Yourdon Press},\r
+ address = {Upper Saddle River, NJ, USA},\r
+} \r
+\r
+% incol due to booktitle\r
+@incollection{Wenzel:1992:TVA:146022.146089,\r
+ author = {Wenzel, Elizabeth M.},\r
+ title = {Three-dimensional virtual acoustic displays},\r
+ booktitle = {Multimedia interface design (incoll)},\r
+ year = {1992},\r
+ isbn = {0-201-54981-6},\r
+ pages = {257--288},\r
+ numpages = {32},\r
+ url = {http://portal.acm.org/citation.cfm?id=146022.146089},\r
+ doi = {10.1145/146022.146089},\r
+ acmid = {146089},\r
+ publisher = {ACM},\r
+ address = {New York, NY, USA},\r
+}\r
+\r
+% incol due to booktitle\r
+@incollection{Mumford:1987:MES:54905.54911,\r
+ author = {Mumford, E.},\r
+ title = {Managerial expert systems and organizational change: some critical research issues},\r
+ booktitle = {Critical issues in information systems research (incoll)},\r
+ year = {1987},\r
+ isbn = {0-471-91281-6},\r
+ pages = {135--155},\r
+ numpages = {21},\r
+ url = {http://portal.acm.org/citation.cfm?id=54905.54911},\r
+ acmid = {54911},\r
+ publisher = {John Wiley \& Sons, Inc.},\r
+ address = {New York, NY, USA},\r
+} \r
+\r
+@book{McCracken:1990:SSC:575315,\r
+ author = {McCracken, Daniel D. and Golden, Donald G.},\r
+ title = {Simplified Structured COBOL with Microsoft/MicroFocus COBOL},\r
+ year = {1990},\r
+ isbn = {0471514071},\r
+ publisher = {John Wiley \& Sons, Inc.},\r
+ address = {New York, NY, USA},\r
+} \r
+\r
+% Let's include Boris / BBeeton entries  (multi-volume works)\r
+\r
+@book {MR781537,\r
+    AUTHOR = {H{\"o}rmander, Lars},\r
+     TITLE = {The analysis of linear partial differential operators. {III}},\r
+    SERIES = {Grundlehren der Mathematischen Wissenschaften [Fundamental\r
+              Principles of Mathematical Sciences]},\r
+    VOLUME = {275},\r
+      NOTE = {Pseudodifferential operators},  \r
+PUBLISHER = {Springer-Verlag},\r
+   ADDRESS = {Berlin, Germany},\r
+      YEAR = {1985},\r
+     PAGES = {viii+525},\r
+      ISBN = {3-540-13828-5},\r
+   MRCLASS = {35-02 (35Sxx 47G05 58G15)},\r
+  MRNUMBER = {781536 (87d:35002a)},\r
+MRREVIEWER = {Min You Qi},\r
+}\r
+\r
+@book {MR781536,\r
+    AUTHOR = {H{\"o}rmander, Lars},\r
+     TITLE = {The analysis of linear partial differential operators. {IV}},\r
+    SERIES = {Grundlehren der Mathematischen Wissenschaften [Fundamental\r
+              Principles of Mathematical Sciences]},\r
+    VOLUME = {275},\r
+      NOTE = {Fourier integral operators},  \r
+PUBLISHER = {Springer-Verlag},\r
+   ADDRESS = {Berlin, Germany},\r
+      YEAR = {1985},\r
+     PAGES = {vii+352},\r
+      ISBN = {3-540-13829-3},\r
+   MRCLASS = {35-02 (35Sxx 47G05 58G15)},\r
+  MRNUMBER = {781537 (87d:35002b)},\r
+MRREVIEWER = {Min You Qi},\r
+}\r
+\r
+%%%%%%%%%%%%%%%%%%%%%% Start of Aptara sample bib entries\r
+\r
+% acmsmall-sam.bib\r
+@InProceedings{Adya-01,\r
+  author        = {A. Adya and P. Bahl and J. Padhye and A.Wolman and L. Zhou},\r
+  title         = {A multi-radio unification protocol for {IEEE} 802.11 wireless networks},\r
+  booktitle     = {Proceedings of the IEEE 1st International Conference on Broadnets Networks (BroadNets'04)},\r
+  publisher     = "IEEE",\r
+  address       = "Los Alamitos, CA",            \r
+  year          = {2004},\r
+  pages         = "210--217"\r
+}\r
+\r
+@article{Akyildiz-01,\r
+  author        = {I. F. Akyildiz and W. Su and Y. Sankarasubramaniam and E. Cayirci},\r
+  title         = {Wireless Sensor Networks: A Survey},\r
+  journal       = {Comm. ACM},\r
+  volume        = 38,\r
+  number        = "4",\r
+  year          = {2002},\r
+  pages         = "393--422"\r
+}\r
+\r
+@article{Akyildiz-02,\r
+  author        = {I. F. Akyildiz and T. Melodia and K. R. Chowdhury},\r
+  title         = {A Survey on Wireless Multimedia Sensor Networks},\r
+  journal       = {Computer Netw.},\r
+  volume        = 51,\r
+  number        = "4",\r
+  year          = {2007},\r
+  pages         = "921--960"\r
+}\r
+\r
+@InProceedings{Bahl-02,\r
+  author        = {P. Bahl and R. Chancre and J. Dungeon},\r
+  title         = {{SSCH}: Slotted Seeded Channel Hopping for Capacity Improvement in {IEEE} 802.11 Ad-Hoc Wireless Networks},\r
+  booktitle     = {Proceeding of the 10th International Conference on Mobile Computing and Networking (MobiCom'04)},\r
+  publisher     = "ACM",\r
+  address       = "New York, NY",                \r
+  year          = {2004},\r
+  pages         = "112--117"\r
+}\r
+\r
+@misc{CROSSBOW,\r
+  key       = {CROSSBOW},\r
+  title     = {{XBOW} Sensor Motes Specifications},\r
+  note      = {http://www.xbow.com},\r
+  year      = 2008\r
+}\r
+\r
+@article{Culler-01,\r
+  author        = {D. Culler and D. Estrin and M. Srivastava},\r
+  title         = {Overview of Sensor Networks},\r
+  journal       = {IEEE Comput.},\r
+  volume        = 37,\r
+  number        = "8 (Special Issue on Sensor Networks)",\r
+  publisher     = "IEEE",\r
+  address       = "Los Alamitos, CA",            \r
+  year          = {2004},\r
+  pages         = "41--49"\r
+}\r
+\r
+@misc{Harvard-01,\r
+    key         = {Harvard CodeBlue},\r
+    title       = {{CodeBlue}: Sensor Networks for Medical Care},\r
+    note        = {http://www.eecs.harvard.edu/mdw/ proj/codeblue/},\r
+    year        = 2008\r
+}\r
+\r
+@InProceedings{Natarajan-01,\r
+    author      = {A. Natarajan and M. Motani and B. de Silva and K. Yap and K. C. Chua},\r
+    title       = {Investigating Network Architectures for Body Sensor Networks},\r
+    booktitle   = {Network Architectures},\r
+    editor      = {G. Whitcomb and P. Neece},\r
+    publisher   = "Keleuven Press",\r
+    address     = "Dayton, OH",                  \r
+    year        = {2007},\r
+    pages       = "322--328"\r
+}\r
+\r
+@techreport{Tzamaloukas-01,\r
+  author        = {A. Tzamaloukas and J. J. Garcia-Luna-Aceves},\r
+  title         = {Channel-Hopping Multiple Access},\r
+  number =        {I-CA2301},\r
+  institution =   {Department of Computer Science, University of California},\r
+  address =       {Berkeley, CA},\r
+  year          = {2000}\r
+}\r
+\r
+@BOOK{Zhou-06,\r
+  author        = {G. Zhou and J. Lu and C.-Y. Wan and M. D. Yarvis and J. A. Stankovic},\r
+  title         = {Body Sensor Networks},\r
+  publisher     = "MIT Press",\r
+  address       = "Cambridge, MA",               \r
+  year          = {2008}\r
+}\r
+\r
+@mastersthesis{ko94,\r
+author = "Jacob Kornerup",\r
+title = "Mapping Powerlists onto Hypercubes",\r
+school = "The University of Texas at Austin",\r
+note = "(In preparation)",\r
+year = "1994"}\r
+%month = "dec",}\r
+\r
+@PhdThesis{gerndt:89,\r
+  author =       "Michael Gerndt",\r
+  title =        "Automatic Parallelization for Distributed-Memory\r
+                  Multiprocessing Systems",\r
+  school =       "University of Bonn",\r
+  year =         1989,\r
+  address =      "Bonn, Germany",\r
+  month =        dec\r
+}\r
+\r
+@article{6:1:1,\r
+author = "J. E. {Archer, Jr.} and R. Conway and F. B. Schneider",\r
+title = "User recovery and reversal in interactive systems",\r
+journal = "ACM Trans. Program. Lang. Syst.",\r
+volume =  "6",\r
+number = "1",\r
+month = jan,\r
+year = 1984,\r
+pages = "1--19"}\r
+\r
+@article{7:1:137,\r
+author = "D. D. Dunlop and V. R. Basili",\r
+title = "Generalizing specifications for uniformly implemented loops",\r
+journal = "ACM Trans. Program. Lang. Syst.",\r
+volume =  "7",\r
+number = "1",\r
+month = jan,\r
+year = 1985,\r
+pages = "137--158"}\r
+\r
+@article{7:2:183,\r
+author = "J. Heering and P. Klint",\r
+title = "Towards monolingual programming environments",\r
+journal = "ACM Trans. Program. Lang. Syst.",\r
+volume =  "7",\r
+number = "2",\r
+month = apr,\r
+year = 1985,\r
+pages = "183--213"}\r
+\r
+@book{knuth:texbook,\r
+author = "Donald E. Knuth",\r
+title = "The {\TeX{}book}",\r
+publisher = "Addison-Wesley",\r
+address = "Reading, MA.",\r
+year = 1984}\r
+\r
+@article{6:3:380,\r
+author = "E. Korach and D.  Rotem and N. Santoro",\r
+title = "Distributed algorithms for finding centers and medians in networks",\r
+journal = "ACM Trans. Program. Lang. Syst.",\r
+volume =  "6",\r
+number = "3",\r
+month = jul,\r
+year = 1984,\r
+pages = "380--401"}\r
+\r
+@book{lamport:latex,\r
+author = "Leslie Lamport",\r
+title = "\it {\LaTeX}: A Document Preparation System",\r
+publisher = "Addison-Wesley",\r
+address = "Reading, MA.",\r
+year = 1986}\r
+\r
+@article{7:3:359,\r
+author = "F. Nielson",\r
+title = "Program transformations in a denotational setting",\r
+journal = "ACM Trans. Program. Lang. Syst.",\r
+volume =  "7",\r
+number = "3",\r
+month = jul,\r
+year = 1985,\r
+pages = "359--379"}\r
+\r
+%testing\r
+@BOOK{test,\r
+   author = "Donald E. Knuth",\r
+   title = "Seminumerical Algorithms",\r
+   volume = 2,\r
+   series = "The Art of Computer Programming",\r
+   publisher = "Addison-Wesley",\r
+   address = "Reading, MA",\r
+   edition = "2nd",\r
+   month = "10~" # jan,\r
+   year = "1981",\r
+}\r
+\r
+@inproceedings{reid:scribe,\r
+author = "Brian K. Reid",\r
+title = "A high-level approach to computer document formatting",\r
+booktitle = "Proceedings of the 7th Annual Symposium on Principles of\r
+  Programming Languages",\r
+month = jan,\r
+year = 1980,\r
+publisher = "ACM",\r
+address = "New York",            \r
+pages = "24--31"}\r
+\r
+@article{Zhou:2010:MMS:1721695.1721705,\r
+ author = {Zhou, Gang and Wu, Yafeng and Yan, Ting and He, Tian and Huang, Chengdu and Stankovic, John A. and Abdelzaher, Tarek F.},\r
+ title = {A multifrequency MAC specially designed for wireless sensor network applications},\r
+ journal = {ACM Trans. Embed. Comput. Syst.},\r
+ issue_date = {March 2010},\r
+ volume = {9},\r
+ number = {4},\r
+ month = {April},\r
+ year = {2010},\r
+ issn = {1539-9087},\r
+ pages = {39:1--39:41},\r
+ articleno = {39},\r
+ numpages = {41},\r
+ url = {http://doi.acm.org/10.1145/1721695.1721705},\r
+ doi = {10.1145/1721695.1721705},\r
+ acmid = {1721705},\r
+ publisher = {ACM},\r
+ address = {New York, NY, USA},\r
+ keywords = {Wireless sensor networks, media access control, multi-channel, radio interference, time synchronization},\r
+}\r
diff --git a/PeCO/acmsmall.cls b/PeCO/acmsmall.cls
new file mode 100644 (file)
index 0000000..018dde0
--- /dev/null
@@ -0,0 +1,4019 @@
+%% acmsmall.cls - version 1.4  (with ACM Reference Format)\r
+%% Aptara Inc., dated 9 July 2012\r
+%% (c) 2011 Association for Computing Machinery (ACM)\r
+%% For small trim journals\r
+%%\r
+%% Based on ESUB2ACM.CLS V1.2 - November 10th. 1999\r
+%%\r
+%% If you face any problem while working with this class file or have any feedback/suggestion, \r
+%% please contact ACM Support helpline at: "acmtexsupport@aptaracorp.com".\r
+%% Users can also go through the FAQs available on the journal's submission webpage.\r
+%%\r
+%% Version 1.4 (History)\r
+%% ---------------------\r
+%% 1) All citation formats are also redefined after\r
+%%    checking the loading condition of natbib.sty \r
+%% 2) Added an option called 'prodmode', which uses New Century School Book\r
+%%    and Helvetica as base and second font respectively after\r
+%%    feedback from Joanne (Dated 28/06/2010) to simulate print output.\r
+%% 3) Changed running head style (Joanne 02/07/2010)\r
+%% 4) Added three new transactions (Jono 14/07/2010)\r
+%% 5) Added four new transactions/journals (Joanne 04/11/2011)\r
+%% 6) Added newtheorem definition for 'conjecture'\r
+%% 7) Trimmed the 'double outputting' of the DOI/URL beneath ACM Reference Format (before 1. INTRODUCTION)\r
+%%    and also beneath the Permission Statement/copyright line. Also inserted the "http://dx.doi.org" stem. (Gerry Murray, March 2012)\r
+%% 8) Changed the price charged/article information from $10.00 to $15.00 (Gerry 24/05/2012)\r
+%% 9) Added 'TEAC' - July 9th. 2012 \r
+%% 10) Added 'TOPC' - January 18th. 2013 \r
+%% 11) Added TOMM from acmlarge design on 2014/05/28 (Aptara)\r
+%% 12) Added new journals (TSAS and TOMPECS) on 2014/09/10 (Aptara)\r
+%% 13) a. Change the journal name TALLIP (formerly TALIP) 2014/12/09 (Aptara)\r
+%%     b. Added issn numbers for TOMPECS 2014/12/09 (Aptara)\r
+%%\r
+%% Steps to compile: latex, bibtex, latex latex\r
+%%\r
+%% \CharacterTable\r
+%%  {Upper-case    \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\r
+%%   Lower-case    \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\r
+%%   Digits        \0\1\2\3\4\5\6\7\8\9\r
+%%   Exclamation   \!     Double quote  \"     Hash (number) \#\r
+%%   Dollar        \$     Percent       \%     Ampersand     \&\r
+%%   Acute accent  \'     Left paren    \(     Right paren   \)\r
+%%   Asterisk      \*     Plus          \+     Comma         \,\r
+%%   Minus         \-     Point         \.     Solidus       \/\r
+%%   Colon         \:     Semicolon     \;     Less than     \<\r
+%%   Equals        \=     Greater than  \>     Question mark \?\r
+%%   Commercial at \@     Left bracket  \[     Backslash     \\\r
+%%   Right bracket \]     Circumflex    \^     Underscore    \_\r
+%%   Grave accent  \`     Left brace    \{     Vertical bar  \|\r
+%%   Right brace   \}     Tilde         \~}\r
+%%\r
+%% Bibliographic cite forms needed:\r
+%%\r
+%%  \cite{key}\r
+%%    which produces citations with author list and year.\r
+%%    eg. [Brown 1978; Jarke, et al. 1985]\r
+%%  \citeA{key}\r
+%%    which produces citations with only the author list.\r
+%%    eg. [Brown; Jarke, et al.]\r
+%%  \citeN{key}\r
+%%    which produces citations with the author list and year, but\r
+%%    can be used as nouns in a sentence; no brackets appear around\r
+%%    the author names, but only around the year.\r
+%%      eg. Shneiderman [1978] states that......\r
+%%    \citeN should only be used for a single citation.\r
+%%    \citeNN{refkey1,refkey2} for author [ref1year; ref2year]\r
+%%    \citeyear{key}\r
+%%        which produces the year information only, within brackets.\r
+%%\r
+%% Abbreviated author lists use the ``et al.'' construct.\r
+%%\r
+%% The above are examples of required ACM bibliographic cite formats needed.\r
+%% *******************\r
+%% Here is the complete list of cite forms from the chicago bibliographic style\r
+%%\r
+%%  \cite{key}\r
+%%    which produces citations with abbreviated author list and year.\r
+%%  \citeNP{key}\r
+%%    which produces citations with abbreviated author list and year.\r
+%%  \citeA{key}\r
+%%    which produces only the abbreviated author list.\r
+%%  \citeANP{key}\r
+%%    which produces only the abbreviated author list.\r
+%%  \citeN{key}\r
+%%    which produces the abbreviated author list and year, with only the\r
+%%    year in parentheses. Use with only one citation.\r
+%%  \citeyear{key}\r
+%%    which produces the year information only, within parentheses.\r
+%%  \citeyearNP{key}\r
+%%    which produces the year information only.\r
+%%\r
+%% Abbreviated author lists use the ``et al.'' construct.\r
+%%\r
+%% `NP' means `no parentheses' \r
+%%\r
+\NeedsTeXFormat{LaTeX2e}\r
+\ProvidesClass{acmsmall}[2012/03/05, fonts included on 28 June 2010]\r
+\r
+\def\fileversion{v1.4}            \r
+\def\filedate{July 09, 2012}\r
+\r
+% Metadata Information\r
+\def\@acmVolume{V} %the volume\r
+\def\@acmNumber{N} %the number\r
+\def\@acmArticle{A} %article number\r
+\def\@articleSeq{1} %article Sequence\r
+\def\@acmPrice{15.00} %article price  % Changed to 15 - June 2012 - Gerry\r
+\def\@acmYear{YYYY} %the last two digits of the year, \r
+\def\@acmMonth{1}  %the month\r
+\def\@journalName{ACM Journal Name} %the name of the ACM journal\r
+\def\@journalNameShort{ACM} %the acronym of the ACM journal \r
+\def\@journalCode{jn} %the code of the ACM journal \r
+\def\@permissionCodeOne{0000-0000} %the permission code of the ACM journal\r
+\def\@doi{0000000.0000000} % These 'default' '0' values are over-ridden, during production, with 'correct' numbers entered via source .tex file - Gerry March 2012\r
+\r
+% ----------------\r
+% Gerry - April 2011 - To assist in the formatting of the NEW ACM Reference format - 'DOI' in tt font, and url string in default\r
+\usepackage{url}\r
+\def\UrlFont{}\r
+\newcommand{\BIBand}{\&}\r
+\def\showDOI#1{\mbox{{\tt DOI:}{#1}}} % Gerry April 2011 - forces the DOI: to 'stay' with the 'url-(string)link' (no need for space at end either)\r
+% ----------------\r
+\r
+\if@compatibility\else\r
+\DeclareOption{letterpaper}\r
+   {\setlength\paperheight {11in}%\r
+    \setlength\paperwidth  {8.5in}%\r
+    \setlength\voffset     {-38.2pt}%\r
+    \setlength\hoffset     {-8.25pt}%\r
+    \def\special@paper{8.5in,11in}\r
+       % Needed to set PDF page size\r
+       \special{papersize=8.5in,11in}}\r
+\DeclareOption{landscape}\r
+   {\setlength\@tempdima   {\paperheight}%\r
+    \setlength\paperheight {\paperwidth}%\r
+    \setlength\paperwidth  {\@tempdima}}\r
+\fi\r
+\r
+\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}\r
+\DeclareOption{twoside}{\@twosidetrue  \@mparswitchtrue}\r
+\r
+\DeclareOption{final}{\setlength\overfullrule{0pt}}\r
+\r
+\DeclareOption{10pt}{\def\@ptsize{0}} %needed for amssymbols.sty \r
+\DeclareOption{11pt}{\ClassError{acmsmall}{11pt style not supported}\r
+                        {ACM transactions/journals documents can be set in 10pt only}}\r
+\DeclareOption{12pt}{\ClassError{acmtrans}{12pt style not supported}\r
+                        {ACM transactions/journals documents can be set in 10pt only}}\r
+\r
+\newif\ifprod@mode\prod@modefalse\r
+\DeclareOption{prodmode}{\global\prod@modetrue\r
+\typeout{ACM, Production Font style: 2010/06/28 by Aptara}}\r
+\r
+\newif\if@acmtopc\r
+\newif\if@acmjacm\r
+\newif\if@acmtissec\r
+\newif\if@acmtocl\r
+\newif\if@acmtocs\r
+\newif\if@acmtochi\r
+\newif\if@acmtodaes\r
+\newif\if@acmtods\r
+\newif\if@acmtois\r
+\newif\if@acmtomacs\r
+\newif\if@acmtoms\r
+\newif\if@acmtoplas\r
+\newif\if@acmtosem\r
+\newif\if@acmtoit\r
+\newif\if@acmtecs\r
+\newif\if@acmtallip\r
+\newif\if@acmjeric\r
+\newif\if@acmtaco\r
+\newif\if@acmjea\r
+\newif\if@acmtslp\r
+\newif\if@acmcie\r
+\newif\if@acmtos\r
+\newif\if@acmcsur\r
+\newif\if@acmjetc\r
+\newif\if@acmtosn\r
+\newif\if@acmtalg\r
+\newif\if@acmtaas\r
+\newif\if@acmtweb\r
+\newif\if@acmtkdd\r
+\newif\if@acmtrets\r
+\newif\if@acmtmis\r
+\newif\if@acmtiis\r
+\newif\if@acmtist\r
+\newif\if@acmtoct\r
+\newif\if@acmjdiq\r
+\newif\if@acmtaccess\r
+\newif\if@acmtoce\r
+\newif\if@acmteac\r
+\newif\if@acmtomm\r
+\newif\if@acmtsas\r
+\newif\if@acmtompecs\r
+\r
+% Journal Options\r
+\DeclareOption{acmtopc}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TOPC's option: 2013/01/18 by Aptara}\r
+  \typeout{}\r
+  \global\@acmtopctrue\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Parallel Computing}\r
+  \def\@journalNameShort{ACM Trans. Parallel Comput.}\r
+  \def\@journalCode{topc}        \r
+  \def\@permissionCodeOne{1539-9087} \r
+}\r
+\r
+\DeclareOption{acmjacm}{\r
+  \typeout{}\r
+  \typeout{Using ACM, JACM's option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmtrue\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{Journal of the ACM}\r
+  \def\@journalNameShort{J. ACM}        \r
+  \def\@journalCode{jacm}        \r
+  \def\@permissionCodeOne{0004-5411} \r
+}\r
+\r
+\DeclareOption{acmtissec}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TISSEC's option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissectrue\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Information and System Security}\r
+  \def\@journalNameShort{ACM Trans. Info. Syst. Sec.}\r
+  \def\@journalCode{tissec}\r
+  \def\@permissionCodeOne{1094-9224}\r
+}\r
+\r
+\DeclareOption{acmtocl}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TOCL's option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtocltrue\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Computational Logic}\r
+  \def\@journalNameShort{ACM Trans. Comput. Logic}\r
+  \def\@journalCode{tocl}        \r
+  \def\@permissionCodeOne{1529-3785} \r
+}\r
+\r
+\DeclareOption{acmtocs}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TOCS's option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocstrue\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Computer Systems}\r
+  \def\@journalNameShort{ACM Trans. Comput. Syst.}\r
+  \def\@journalCode{tocs}        \r
+  \def\@permissionCodeOne{0734-2071} \r
+}\r
+\r
+\DeclareOption{acmtochi}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TOCHI's option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochitrue\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Computer-Human Interaction}\r
+  \def\@journalNameShort{ACM Trans. Comput.-Hum. Interact.}\r
+  \def\@journalCode{tochi}        \r
+  \def\@permissionCodeOne{1073-0516} \r
+}\r
+\r
+\DeclareOption{acmtodaes}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TODAES option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaestrue\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Design Automation of Electronic Systems}\r
+  \def\@journalNameShort{ACM Trans. Des. Autom. Electron. Syst.}\r
+  \def\@journalCode{todaes}        \r
+  \def\@permissionCodeOne{1084-4309} \r
+}\r
+\r
+\DeclareOption{acmtods}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TODS's option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodstrue\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Database Systems}\r
+  \def\@journalNameShort{ACM Trans. Datab. Syst.}\r
+  \def\@journalCode{tods}        \r
+  \def\@permissionCodeOne{0362-5915}\r
+}\r
+\r
+\DeclareOption{acmtois}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TOIS's option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoistrue\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Information Systems}\r
+  \def\@journalNameShort{ACM Trans. Inf. Syst.}\r
+  \def\@journalCode{tois}        \r
+  \def\@permissionCodeOne{1046-8188} \r
+}\r
+\r
+\DeclareOption{acmtomacs}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TOMACS's option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacstrue\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Modeling and Computer Simulation}\r
+  \def\@journalNameShort{ACM Trans. Model. Comput. Simul.}\r
+  \def\@journalCode{tomacs}\r
+  \def\@permissionCodeOne{1049-3301} \r
+}\r
+\r
+\DeclareOption{acmtoms}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TOMS's option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomstrue\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Mathematical Software}\r
+  \def\@journalNameShort{ACM Trans. Math. Softw.}\r
+  \def\@journalCode{toms}        \r
+  \def\@permissionCodeOne{0098-3500} \r
+}\r
+\r
+\DeclareOption{acmtoplas}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TOPLAS option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplastrue\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Programming Languages and Systems}\r
+  \def\@journalNameShort{ACM Trans. Program. Lang. Syst.}\r
+  \def\@journalCode{toplas}        \r
+  \def\@permissionCodeOne{0164-0925} \r
+}\r
+\r
+\DeclareOption{acmtosem}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TOSEM option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemtrue\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Software Engineering and Methodology}\r
+  \def\@journalNameShort{ACM Trans. Softw. Eng. Methodol.}\r
+  \def\@journalCode{tosem}        \r
+  \def\@permissionCodeOne{1049-331X} \r
+}\r
+\r
+\DeclareOption{acmtoit}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TOIT option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoittrue\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Internet Technology}\r
+  \def\@journalNameShort{ACM Trans. Internet Technol.}\r
+  \def\@journalCode{toit}        \r
+  \def\@permissionCodeOne{1533-5399} \r
+}\r
+\r
+\DeclareOption{acmtecs}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TECS option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecstrue\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Embedded Computing Systems}\r
+  \def\@journalNameShort{ACM Trans. Embedd. Comput. Syst.}\r
+  \def\@journalCode{tecs}\r
+  \def\@permissionCodeOne{1539-9087} \r
+}\r
+\r
+%% Updaded Talip for change in the journal name to TALLIP (9th Dec. 2014)\r
+\DeclareOption{acmtallip}{\r
+  \typeout{}\r
+%  \typeout{Using ACM, TALIP option: 2010/05/04 by Aptara}\r
+  \typeout{Using ACM, TALLIP option: 2014/12/09 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtalliptrue\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+%  \def\@journalName{ACM Transactions on Asian Language Information Processing}\r
+%  \def\@journalNameShort{ACM Trans. Asian Lang. Inform. Process.}\r
+  \def\@journalName{ACM Transactions on Asian and Low-Resource Language Information Processing}\r
+  \def\@journalName{ACM Trans. Asian Low-Resour. Lang. Inf. Process.}\r
+  \def\@journalNameShort{ACM Trans. Asian Low-Resour. Lang. Inf. Process.}\r
+  \def\@journalCode{tallip}        \r
+%  \def\@permissionCodeOne{1530-0226} \r
+  \def\@permissionCodeOne{2375-4699}\r
+}\r
+\r
+\DeclareOption{acmjeric}{\r
+  \typeout{}\r
+  \typeout{Using ACM, JERIC option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjerictrue\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Journal of Educational Resources in Computing}\r
+  \def\@journalNameShort{ACM J. Edu. Resources in Comput.}\r
+  \def\@journalCode{jeric}        \r
+  \def\@permissionCodeOne{1073-0516} \r
+}\r
+\r
+\DeclareOption{acmtaco}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TACO option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacotrue\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Architecture and Code Optimization}\r
+  \def\@journalNameShort{ACM Trans. Architec. Code Optim.}\r
+  \def\@journalCode{taco}        \r
+  \def\@permissionCodeOne{1544-3566} \r
+}\r
+\r
+\DeclareOption{acmjea}{\r
+  \typeout{}\r
+  \typeout{Using ACM, JEA option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeatrue\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Journal of Experimental Algorithmics}\r
+  \def\@journalNameShort{ACM J. Exp. Algor.}\r
+  \def\@journalCode{jea}        \r
+  \def\@permissionCodeOne{1084-6654} \r
+}\r
+\r
+\DeclareOption{acmtslp}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TSLP option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslptrue\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Speech and Language Processing}\r
+  \def\@journalNameShort{ACM Trans. Speech Lang. Process.}\r
+  \def\@journalCode{tslp}        \r
+  \def\@permissionCodeOne{1550-4875} \r
+}\r
+\r
+\DeclareOption{acmcie}{\r
+  \typeout{}\r
+  \typeout{Using ACM, CIE option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmcietrue\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Computers in Entertainment}\r
+  \def\@journalNameShort{ACM Comput. Entertain.}\r
+  \def\@journalCode{cie}        \r
+  \def\@permissionCodeOne{1544-3574} \r
+}\r
+\r
+\DeclareOption{acmtos}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TOS option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtostrue\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Storage}\r
+  \def\@journalNameShort{ACM Trans. Storage}\r
+  \def\@journalCode{tos}        \r
+  \def\@permissionCodeOne{1553-3077} \r
+}\r
+\r
+\DeclareOption{acmcsur}{\r
+  \typeout{}\r
+  \typeout{Using ACM, CSUR option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurtrue\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Computing Surveys}\r
+  \def\@journalNameShort{ACM Comput. Surv.}\r
+  \def\@journalCode{csur}        \r
+  \def\@permissionCodeOne{0360-0300} \r
+}\r
+\r
+\DeclareOption{acmjetc}{\r
+  \typeout{}\r
+  \typeout{Using ACM, JETC option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetctrue\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Journal on Emerging Technologies in Computing Systems}\r
+  \def\@journalNameShort{ACM J. Emerg. Technol. Comput. Syst.}\r
+  \def\@journalCode{jetc}\r
+  \def\@permissionCodeOne{1550-4832} \r
+}\r
+\r
+\DeclareOption{acmtosn}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TOSN option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosntrue\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Sensor Networks}\r
+  \def\@journalNameShort{ACM Trans. Sensor Netw.}\r
+  \def\@journalCode{tosn}\r
+  \def\@permissionCodeOne{1550-4859} \r
+}\r
+\r
+\DeclareOption{acmtalg}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TALG option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgtrue\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Algorithms}\r
+  \def\@journalNameShort{ACM Trans. Algor.}\r
+  \def\@journalCode{talg}\r
+  \def\@permissionCodeOne{1549-6325} \r
+}\r
+\r
+\DeclareOption{acmtaas}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TAAS option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaastrue\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Autonomous and Adaptive Systems}\r
+  \def\@journalNameShort{ACM Trans. Autonom. Adapt. Syst.}\r
+  \def\@journalCode{taas}\r
+  \def\@permissionCodeOne{1556-4665} \r
+}\r
+\r
+\DeclareOption{acmtweb}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TWEB option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebtrue\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on the Web}\r
+  \def\@journalNameShort{ACM Trans. Web}\r
+  \def\@journalCode{tweb}\r
+  \def\@permissionCodeOne{1559-1131} \r
+}\r
+\r
+\DeclareOption{acmtkdd}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TKDD option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddtrue\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Knowledge Discovery from Data}\r
+  \def\@journalNameShort{ACM Trans. Knowl. Discov. Data.}\r
+  \def\@journalCode{tkdd}\r
+  \def\@permissionCodeOne{1556-4681} \r
+}\r
+\r
+\DeclareOption{acmtrets}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TRETS option: 2010/05/04 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretstrue\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Reconfigurable Technology and Systems}\r
+  \def\@journalNameShort{ACM Trans. Reconfig. Technol. Syst.}\r
+  \def\@journalCode{trets}\r
+  \def\@permissionCodeOne{1936-7406} \r
+}\r
+\r
+\DeclareOption{acmtmis}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TMIS option: 2010/07/14 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmistrue\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Management Information Systems}\r
+  \def\@journalNameShort{ACM Trans. Manag. Inform. Syst.}\r
+  \def\@journalCode{tmis}\r
+  \def\@permissionCodeOne{2158-656X} \r
+}\r
+\r
+\DeclareOption{acmtiis}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TIIS option: 2010/07/14 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiistrue\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Interactive Intelligent Systems}\r
+  \def\@journalNameShort{ACM Trans. Interact. Intell. Syst.}\r
+  \def\@journalCode{tiis}\r
+  \def\@permissionCodeOne{2160-6455} \r
+}\r
+\r
+\DeclareOption{acmtist}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TIST option: 2010/07/14 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtisttrue\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Intelligent Systems and Technology}\r
+  \def\@journalNameShort{ACM Trans. Intell. Syst. Technol.}\r
+  \def\@journalCode{tist}\r
+  \def\@permissionCodeOne{2157-6904} \r
+}\r
+\r
+\DeclareOption{acmtoct}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TOCT option: 2011/10/31 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtocttrue\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Computation Theory}\r
+  \def\@journalNameShort{ACM Trans. Comput. Theory}\r
+  \def\@journalCode{toct}\r
+  \def\@permissionCodeOne{1942-3454} \r
+}\r
+\r
+\DeclareOption{acmjdiq}{\r
+  \typeout{}\r
+  \typeout{Using ACM, JDIQ option: 2011/10/31 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqtrue\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Journal of Data and Information quality}\r
+  \def\@journalNameShort{ACM J. Data Inform. Quality}\r
+  \def\@journalCode{jdiq}\r
+  \def\@permissionCodeOne{1936-1955} \r
+}\r
+\r
+\DeclareOption{acmtaccess}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TACCESS option: 2011/10/31 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccesstrue\r
+  \global\@acmtallipfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Accessible Computing}\r
+  \def\@journalNameShort{ACM Trans. Access. Comput.}\r
+  \def\@journalCode{taccess}\r
+  \def\@permissionCodeOne{1936-7228} \r
+}\r
+\r
+\DeclareOption{acmtoce}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TOCE option: 2011/10/31 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtocetrue\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Computing Education}\r
+  \def\@journalNameShort{ACM Trans. Comput. Educ.}\r
+  \def\@journalCode{toce}\r
+  \def\@permissionCodeOne{1946-6226} \r
+}\r
+\r
+\DeclareOption{acmteac}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TEAC option: 2012/07/04 by Orna Agmon Ben-Yehuda}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteactrue\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Economics and Computation}\r
+  \def\@journalNameShort{ACM Trans. Econ. Comp.}\r
+  \def\@journalCode{teac}\r
+  \def\@permissionCodeOne{1946-6227} \r
+}\r
+%\r
+%%\r
+%% TeXSupport: Added TOMM from acmlarge design on 2014/05/28\r
+%%\r
+\DeclareOption{acmtomm}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TOMM's option: 2014/05/28 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommtrue\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Multimedia Computing, Communications and Applications}\r
+  \def\@journalNameShort{ACM Trans. Multimedia Comput. Commun. Appl.}        \r
+  \def\@permissionCodeOne{1551-6857} \r
+  \def\@permissionCodeTwo{0100} \r
+}\r
+%\r
+%%\r
+%% TeXSupport: Added new journal TSAS on 2014/09/10\r
+%%\r
+\DeclareOption{acmtsas}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TSAS's option: 2014/09/10 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsastrue\r
+  \global\@acmtompecsfalse\r
+  \def\@journalName{ACM Transactions on Spatial Algorithms and Systems}\r
+  \def\@journalNameShort{ACM Trans. Spatial Algorithms Syst.}        \r
+  \def\@permissionCodeOne{2374-0353} \r
+}\r
+%\r
+%%\r
+%% TeXSupport: Added new journal TOMPECS on 2014/09/10\r
+%%\r
+\DeclareOption{acmtompecs}{\r
+  \typeout{}\r
+  \typeout{Using ACM, TOMPECS's option: 2014/09/10 by Aptara}\r
+  \typeout{}\r
+  \global\@acmjacmfalse\r
+  \global\@acmtissecfalse\r
+  \global\@acmtoclfalse\r
+  \global\@acmtocsfalse\r
+  \global\@acmtochifalse\r
+  \global\@acmtodaesfalse\r
+  \global\@acmtodsfalse\r
+  \global\@acmtoisfalse\r
+  \global\@acmtomacsfalse\r
+  \global\@acmtomsfalse\r
+  \global\@acmtoplasfalse\r
+  \global\@acmtosemfalse\r
+  \global\@acmtoitfalse\r
+  \global\@acmtecsfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmjericfalse\r
+  \global\@acmtacofalse\r
+  \global\@acmjeafalse\r
+  \global\@acmtslpfalse\r
+  \global\@acmciefalse\r
+  \global\@acmtosfalse\r
+  \global\@acmcsurfalse\r
+  \global\@acmjetcfalse\r
+  \global\@acmtosnfalse\r
+  \global\@acmtalgfalse\r
+  \global\@acmtaasfalse\r
+  \global\@acmtwebfalse\r
+  \global\@acmtkddfalse\r
+  \global\@acmtretsfalse\r
+  \global\@acmtmisfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtistfalse\r
+  \global\@acmtoctfalse\r
+  \global\@acmjdiqfalse\r
+  \global\@acmtaccessfalse\r
+  \global\@acmtallipfalse\r
+  \global\@acmtiisfalse\r
+  \global\@acmtocefalse\r
+  \global\@acmteacfalse\r
+  \global\@acmtommfalse\r
+  \global\@acmtsasfalse\r
+  \global\@acmtompecstrue\r
+  \def\@journalName{ACM Transactions on Modeling and Performance Evaluation of Computing Systems}\r
+  \def\@journalName{ACM Trans. Model. Perform. Eval. Comput. Syst.}        \r
+  \def\@journalNameShort{ACM Trans. Model. Perform. Eval. Comput. Syst.}        \r
+  \def\@permissionCodeOne{2376-3639}\r
+}\r
+%\r
+\ExecuteOptions{twoside,final,10pt,letterpaper}\r
+\ProcessOptions\r
+\r
+% Including fonts for Production Mode\r
+\ifprod@mode\r
+% New Century Schoolbook as base font\r
+\renewcommand\rmdefault{pnc}\r
+% Helvetica as second font\r
+\renewcommand\sfdefault{phv}\r
+\fi\r
+\r
+% Packages required\r
+\RequirePackage{latexsym}\r
+\RequirePackage{color}\r
+\usepackage{graphicx}\r
+\r
+\r
+\typeout{Document Class `acmsmall' Electronic Submissions\r
+\fileversion\space <\filedate> (ACM).}\r
+\r
+\def\acmVolume#1{\def\@acmVolume{#1}}\r
+\def\acmNumber#1{\def\@acmNumber{#1}}\r
+\def\acmArticle#1{\def\@acmArticle{#1}}\r
+\def\articleSeq#1{\def\@articleSeq{#1}}\r
+\def\acmPrice#1{\def\@acmPrice{#1}}\r
+\def\acmYear#1{\def\@acmYear{#1}}\r
+\def\acmMonth#1{\def\@acmMonth{#1}}\r
+\def\doi#1{\def\@doi{#1}}\r
+\r
+\r
+%To transform the month number in its name in English\r
+\newcommand{\monthWord}[1]{\ifcase#1\or\r
+  January\or February\or March\or April\or May\or June\or\r
+  July\or August\or September\or October\or November\or December\else Month\fi}\r
+\r
+\newcommand{\monthInf}[1]{\ifcase#1\or\r
+  01\or 02\or 03\or 04\or 05\or 06\or\r
+  07\or 08\or 09\or 10\or 11\or 12\else 00\fi}\r
+\r
+% First and Last page\r
+\newcount\@firstpg\r
+\newcount\@lastpg\r
+\def\lastpage#1{\global\advance\@lastpg#1\relax}\r
+\AtEndDocument{\ifelec@app\else\immediate\write\@mainaux{\string\lastpage{\the\c@page}}\fi}\r
+\r
+\newdimen\trimheight\r
+\newdimen\trimwidth\r
+\newdimen\normaltextheight\r
+\newdimen\tempdimen  \r
+\newbox\tempbox\r
+\newbox\tbbox\r
+\newdimen\tabledim\r
+\r
+% Extra symbol\r
+\DeclareSymbolFont{newlargesymbols}{OMX}{cmex}{m}{n}\r
+\DeclareMathSymbol{\bigsqcup}{\mathop}{newlargesymbols}{"46}\r
+\r
+% Bold Math\r
+\def\boldmath{\mathversion{bold}}\r
+\def\bm#1{\mathchoice\r
+         {\mbox{\boldmath$\displaystyle#1$}}%\r
+          {\mbox{\boldmath$#1$}}%\r
+          {\mbox{\boldmath$\scriptstyle#1$}}%\r
+          {\mbox{\boldmath$\scriptscriptstyle#1$}}}\r
+\r
+% Font information\r
+\lineskip1\p@\r
+\normallineskip1\p@\r
+\def\baselinestretch{1}\r
+\def\@ptsize{0} % needed for amssymbols.sty\r
+\r
+\@maxdepth\maxdepth\r
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}\r
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}\r
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}\r
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}\r
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}\r
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}\r
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}\r
+\newcommand{\pcal}{\@fontswitch{\relax}{\mathcal}}\r
+\newcommand{\mit}{\protect\pmit}\r
+\newcommand{\pmit}{\@fontswitch{\relax}{\mathnormal}}\r
+\def\cal{\mathcal}\r
+\r
+\renewcommand{\@ptsize}{}\r
+\renewcommand{\normalsize}{%\r
+  \@setfontsize\normalsize\@xpt{11\p@}%\r
+  \abovedisplayskip .5\baselineskip \@plus2\p@ \@minus\p@\r
+  \belowdisplayskip \abovedisplayskip\r
+  \abovedisplayshortskip 6\p@ \@minus 3\p@\r
+  \belowdisplayshortskip 6\p@ \@minus 3\p@\r
+  \let\@listi\@listI\r
+}\r
+\newcommand{\small}{%\r
+  \@setfontsize\small\@ixpt{10\p@}%\r
+  \abovedisplayskip 5\p@ \@plus 2\p@ \@minus \p@\r
+  \belowdisplayskip \abovedisplayskip\r
+  \abovedisplayshortskip 5\p@ \@minus 2\p@\r
+  \belowdisplayshortskip 5\p@ \@minus 2\p@\r
+  \def\@listi{%\r
+      \leftmargin\leftmargini\r
+      \topsep 5\p@ \@plus 2\p@ \@minus .2\p@\r
+      \parsep \z@ \@plus .7\p@\r
+      \itemsep 1.6\p@ \@plus .8\p@}%\r
+}%\r
+\r
+\newcommand{\footnotesize}{%\r
+    \@setfontsize\footnotesize\@viiipt{9\p@}%\r
+    \abovedisplayskip 4\p@ \@plus \p@\r
+    \belowdisplayskip \abovedisplayskip\r
+    \abovedisplayshortskip 4\p@ \@minus \p@\r
+    \belowdisplayshortskip 4\p@ \@minus \p@\r
+    \def\@listi{%\r
+        \leftmargin\leftmargini\r
+        \topsep 4\p@ \@plus \p@\r
+        \parsep \z@ \@plus .5\p@\r
+        \itemsep \p@ \@plus .7\p@}\r
+}%\r
+\normalsize\r
+\r
+\newcommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}\r
+\newcommand\tiny{\@setfontsize\tiny\@vpt\@vipt}\r
+\newcommand\large{\@setfontsize\large\@xiipt{14}}\r
+\newcommand\Large{\@setfontsize\Large\@xivpt{18}}\r
+\newcommand\LARGE{\@setfontsize\LARGE\@xviipt{22}}\r
+\newcommand\huge{\@setfontsize\huge\@xxpt{25}}\r
+\newcommand\Huge{\@setfontsize\Huge\@xxvpt{30}}\r
+\r
+\def\rhfont{\fontfamily{\sfdefault}\fontsize{9}{10}\selectfont}\r
+\def\rfootfont{\fontsize{7}{8}\selectfont}\r
+\def\foliofont{\fontfamily{\sfdefault}\fontsize{9}{10}\selectfont}\r
+\r
+\def\sectionfont{\fontfamily{\sfdefault}\fontsize{9}{11}\selectfont\bfseries\raggedright}\r
+\def\refsectionfont{\fontfamily{\sfdefault}\fontsize{9}{11}\selectfont\bfseries}\r
+\def\subsectionfont{\fontfamily{\sfdefault}\fontsize{9}{11}\selectfont\bfseries\raggedright}\r
+\def\subsubsectionfont{\fontfamily{\sfdefault}\fontsize{9}{11}\selectfont\itshape\raggedright}\r
+\def\paragraphfont{\fontsize{10}{11}\selectfont\itshape}\r
+\r
+\def\figcaptionfont{\fontsize{8}{9}\selectfont}%\r
+\def\figcaptionnumfont{\fontfamily{\sfdefault}\fontsize{8}{9}\selectfont}%\r
+\def\subcaptionfont{\fontsize{8}{10}\selectfont}%\r
+\def\subcaption#1{{\centering\subcaptionfont#1\par}}\r
+\r
+\def\tablefont{\fontsize{8}{9}\selectfont}%\r
+\def\intexttablefont{\fontsize{8}{9}\selectfont\centering}%\r
+\def\tablecaptionfont{\fontfamily{\sfdefault}\fontsize{8}{9}\selectfont}%\r
+\def\tablenumfont{\fontfamily{\sfdefault}\fontsize{8}{9}\selectfont}%\r
+\def\tabnotefont{\fontsize{8}{9}\selectfont}\r
+\def\ackfont{\fontsize{8}{10}\selectfont}\r
+\r
+\setlength\trimheight {10in}\r
+\setlength\trimwidth  {6.75in}\r
+\r
+\textheight 48pc\r
+\advance\textheight-7.3pt\r
+\setlength\normaltextheight{\textheight}\r
+\r
+\textwidth 33pc\r
+\oddsidemargin .625in\r
+\evensidemargin\trimwidth\r
+\advance\evensidemargin-\oddsidemargin\r
+\advance\evensidemargin-\textwidth\r
+\r
+\marginparwidth .5in\r
+\marginparsep .125in\r
+\topmargin 36pt\r
+\headheight 6.5\p@\r
+\topskip6.2pt\r
+\headsep 17.5pt\r
+\parindent10\p@\r
+\newdimen\normalparindent\r
+\normalparindent\parindent\r
+\r
+\newlength{\footheight}%\r
+\footheight 10\p@\r
+\footskip 28\p@\r
+\r
+\columnsep 12\p@\r
+\columnseprule 0\p@\r
+\r
+\footnotesep 7\p@\r
+\skip\footins 15\p@ plus 4\p@ minus 3\p@\r
+\floatsep 1\baselineskip plus 2\p@ minus 2\p@\r
+\textfloatsep \floatsep\r
+\intextsep 1pc plus 1pc\r
+\r
+\newlength{\@maxsep}%\r
+\@maxsep 1pc\r
+\r
+\dblfloatsep 1\baselineskip plus 2\p@ minus 2\p@\r
+\dbltextfloatsep 20\p@ plus 2\p@ minus 4\p@\r
+\r
+\newlength{\@dblmaxsep}%\r
+\@dblmaxsep 20\p@\r
+\r
+\@fptop 0\p@ plus 1fil\r
+\@fpsep 1pc plus 2fil\r
+\@fpbot 0\p@ plus 1fil\r
+\@dblfptop 0\p@ plus 1fil\r
+\@dblfpsep 8\p@ plus 2fil\r
+\@dblfpbot 0\p@ plus 1fil\r
+\r
+\marginparpush 6\p@\r
+\r
+\parskip0\p@\r
+\partopsep 0\p@\r
+\@lowpenalty 51\r
+\@medpenalty 151\r
+\@highpenalty 301\r
+\r
+\@beginparpenalty -\@lowpenalty\r
+\@endparpenalty -\@lowpenalty\r
+\@itempenalty -\@lowpenalty\r
+\r
+\setcounter{topnumber}{3}\r
+\def\topfraction{.99}\r
+\setcounter{bottomnumber}{1}\r
+\def\bottomfraction{.5}\r
+\setcounter{totalnumber}{3}\r
+\def\textfraction{.01}\r
+\def\floatpagefraction{.85}\r
+\setcounter{dbltopnumber}{2}\r
+\def\dbltopfraction{.7}\r
+\def\dblfloatpagefraction{.5}\r
+\r
+% Copyright Information\r
+\def\cpyright#1{\gdef\@cpyright{#1}}\r
+\cpyright{ACM\ \@permissionCodeOne/\@acmYear/\monthInf{\@acmMonth}-ART\@acmArticle}\r
+\r
+% Calculating total pages\r
+\newcount\@totalpg\r
+\def\acmPages#1{\def\@acmPages{#1}}\r
+\acmPages{\@totalpg\@lastpg\global\advance\@totalpg-\@firstpg\global\advance\@totalpg\@ne\ifnum\the\@totalpg<\z@0\else\the\@totalpg\fi\ pages}\r
+\r
+% Reference Format\r
+\gdef\formatline{{\em{\@journalNameShort\ }}\@acmVolume, \@acmNumber, Article~\@acmArticle\ (\monthWord{\@acmMonth}\ \@acmYear), \@acmPages.\\ % Need Journal Name in italics - in 'ACM Reference Format' before 1. INTRODUCTION - Gerry - March 2012\r
+{\tt DOI:}http://dx.doi.org/10.1145/\@doi} % Gerry March 2012 - on first page in 'ACM Reference Format'\r
+\gdef\copyrightline{\copyright\ \@acmYear\ \@cpyright\ \$\@acmPrice}\r
+\gdef\doiline{{\tt DOI:}http://dx.doi.org/10.1145/\@doi} % Gerry - March 2012 - beneath copyright line\r
+\r
+% Page Style\r
+\mark{{}{}}\r
+\r
+\def\ps@headings{%\r
+    \let\@mkboth\@gobbletwo\r
+    \def\@oddhead{{\rhfont\rightmark}\hfill{\foliofont \@acmArticle:\thepage}}%\r
+    \def\@evenhead{{\foliofont \@acmArticle:\thepage}\hfill{\rhfont\leftmark}}%\r
+    \def\@evenfoot{\null\hfill{\rfootfont\@runningfoot}}\r
+    \def\@oddfoot{{\rfootfont\@runningfoot} \hfill\null}%\r
+    \let\partmark\@gobble\r
+    \let\sectionmark\@gobble\r
+    \let\subsectionmark\@gobble\r
+}\r
+\r
+\def\ps@appheadings{%\r
+    \let\@mkboth\@gobbletwo\r
+    \def\@oddhead{{\rhfont\rightmark}\hfill{\foliofont \thepage}}%\r
+    \def\@evenhead{{\foliofont \thepage}\hfill{\rhfont\leftmark}}%\r
+    \def\@evenfoot{\null\hfill{\rfootfont\@runningfoot}}\r
+    \def\@oddfoot{{\rfootfont\@runningfoot} \hfill\null}%\r
+    \let\partmark\@gobble\r
+    \let\sectionmark\@gobble\r
+    \let\subsectionmark\@gobble\r
+}\r
+\r
+\def\@runningfoot{}\r
+\def\runningfoot#1{\gdef\@runningfoot{#1}}\r
+\r
+\if@acmtodaes\r
+ \def\pubphrase{Pub. date}\r
+\else\r
+\if@acmtosem\r
+ \def\pubphrase{Pub. date}\r
+\else\r
+\if@acmjetc\r
+ \def\pubphrase{Pub. date}\r
+\else\r
+\if@acmtiis\r
+ \def\pubphrase{Pub. date}\r
+\else\r
+ \def\pubphrase{Publication date}\r
+\fi\fi\fi\fi\r
+\r
+\runningfoot{\if@acmtomm\@journalNameShort\else\@journalName\fi, Vol.~\@acmVolume, No.~\@acmNumber, Article~\@acmArticle,\ \pubphrase:\ \monthWord{\@acmMonth}\ \@acmYear.}\r
+\r
+\def\@firstfoot{}\r
+\gdef\firstfoot{\if@acmtomm\@journalNameShort\else\@journalName\fi, Vol.~\@acmVolume,\ No.~\@acmNumber,\ Article\ \@acmArticle,\ \pubphrase:\ \monthWord{\@acmMonth}\ \@acmYear.}\r
+\r
+\def\ps@titlepage{%\r
+    \let\@mkboth\@gobbletwo\r
+    \let\@oddhead\@empty\r
+    \def\@oddfoot{\null\hfill\fontsize{7}{8}\selectfont\firstfoot}\r
+    \let\@evenhead\@empty\r
+    \def\@evenfoot{\fontsize{7}{8}\selectfont\firstfoot\hfill\null}%\r
+}\r
+\r
+\def\titlepage{%\r
+    \@restonecolfalse\r
+    \if@twocolumn\r
+        \@restonecoltrue\r
+        \onecolumn\r
+    \else\r
+        \newpage\r
+    \fi\r
+    \thispagestyle{empty}%\r
+    \c@page\z@\r
+}\r
+\r
+\def\endtitlepage{%\r
+    \if@restonecol\r
+        \twocolumn\r
+    \else\r
+        \newpage\r
+    \fi\r
+}\r
+\r
+% Author and Affiliation\r
+\def\author#1{\gdef\@author{#1}}%\r
+\def\and{{\upshape and }}\r
+\def\affil#1{\gdef\@affil{#1}\ifx\@affil\@empty\else{\reset@font\affilfont\unskip,\ #1\vphantom{gy}\endgraf}\fi}\affil{}\r
+\r
+\def\titlefont{\fontfamily{\sfdefault}\fontsize{12}{12}\selectfont\bfseries}\r
+\def\authorfont{\fontfamily{\sfdefault}\fontsize{10}{11}\rightskip0pt plus1fill\selectfont}\r
+\def\affilfont{\fontfamily{\rmdefault}\fontsize{8}{11}\rightskip0pt plus1fill\selectfont}\r
+\def\abstractfont{\fontsize{8}{10}\selectfont}\r
+\r
+% Article Title page\r
+\def\maketitle{%\r
+    \newpage\r
+    \thispagestyle{titlepage}%\r
+    \global\@topnum\z@\r
+    \begingroup\r
+        \lineskip \z@\r
+        \null\r
+        \vskip -15.4\p@\relax\r
+        \parindent\z@\r
+        \begingroup\r
+          \raggedright\r
+          \hyphenpenalty\@M\r
+          {\titlefont\@title\par}\r
+       \global\@firstpg\the\c@page\r
+        \endgroup\r
+        \vskip 12\p@\r
+        \begingroup\r
+\r
+        {\addtolength{\baselineskip}{2\p@}%\r
+            {\authorfont\@author\par}\r
+            \vskip7pt\r
+           \ifx \@sponsors\@empty\r
+           \else\r
+              \hbox{\vrule height .2\p@ width \textwidth}\r
+              \@sponsors \par\r
+            \fi\r
+        }\r
+\endgroup\r
+     \par\vskip 22\p@\box\@abstract\r
+     \par%\r
+     \ifx\@categories\@empty \r
+     \else\r
+        \abstractfont\r
+         \vskip 4\p@\relax \r
+         \def\and{\unskip{\rm;} }%\r
+         \noindent Categories and Subject Descriptors: \@categories\par\r
+     \fi\r
+     \ifx\@terms\@empty\else\r
+        \abstractfont\r
+        \vskip 4\p@\r
+        \noindent  General Terms: \ignorespaces\r
+        \@terms\r
+        \par\r
+     \fi\r
+     \ifx\@keywords\@empty\else\r
+        \abstractfont\r
+       \vskip 4\p@\r
+        \noindent  Additional Key Words and Phrases: \ignorespaces\r
+        \@keywords\r
+        \par\r
+     \fi\r
+     \ifx\@acmformat\@empty\else\r
+        \abstractfont\r
+        \vskip 4\p@\r
+        \noindent  {\bf ACM Reference Format:}\\\r
+        \@acmformat\vskip 0.5\p@\r
+        \par\r
+     \fi\r
+    \par\r
+    \endgroup\r
+    \let\maketitle\relax\r
+    \global\let\@sponsors\@empty\r
+    \global\let\@categories\@empty\r
+    \global\let\@terms\@empty\r
+    \global\let\@keywords\@empty\r
+    }\r
+\r
+% Sponsor\r
+\def\sponsor#1{\@ifnextchar\r
+ [{\@sponsor{#1}}{\@xsponsor{#1}}}\r
+\def\@sponsor#1[#2]{\edef\@tempa{\ifx \@sponsors\@empty\r
+ \else ; \fi}{\def\protect{\noexpand\protect\r
+ \noexpand}\def\and{\noexpand\and}\xdef\@sponsors{\@sponsors\@tempa #1 }}}\r
+\def\@xsponsor#1{\edef\@tempa{\ifx \@sponsors\@empty \else ;\r
+\fi}{\def\protect{\noexpand\protect\noexpand}\def\and{\noexpand\r
+ \and}\xdef\@sponsors{\@sponsors\@tempa #1}}}\r
+\def\@sponsors{}\r
+\r
+% Abstract\r
+\newbox\@abstract\r
+\def\abstract{\r
+\global\setbox\@abstract=\vbox\bgroup\everypar{}%\r
+\abstractfont\noindent\ignorespaces}\r
+\def\endabstract{\egroup}\r
+\r
+% Terms\r
+\def\terms#1{\gdef\@terms{#1}}\r
+\let\@terms\@empty\r
+\r
+% Keywords\r
+\def\keywords#1{\gdef\@keywords{#1}}\r
+\let\@keywords\@empty\r
+\r
+% Reference Format\r
+\def\acmformat#1{\gdef\@acmformat{#1 \formatline\vphantom{y}}}\r
+\let\@acmformat\@empty\r
+\r
+% Category\r
+\def\category#1#2#3{%\r
+    \@ifnextchar [{\@category{#1}{#2}{#3}}{\@category{#1}{#2}{#3}[]}}\r
+\def\@category#1#2#3[#4]{%\r
+    \edef\@tempa{\ifx \@categories\@empty \else ; \fi}%\r
+    \begingroup\r
+        \def\protect{\noexpand\protect\noexpand}%\r
+        \let\and\relax\r
+        \xdef\@categories{%\r
+            \@categories\r
+            \@tempa\r
+            #1 [{\bf #2}]%\r
+            \if!#4!%\r
+                \if!#3!\else : #3\fi\r
+            \else\r
+                :\space\r
+                \if!#3!\else #3\kern\z@---\hskip\z@\fi\r
+                {\it #4}%\r
+            \fi\r
+        }%\r
+    \endgroup\r
+}\r
+\r
+% Permission Information\r
+\newbox\@permissionbox\r
+\newenvironment{permission}{%\r
+   \footnotesize\r
+   \global\setbox\@permissionbox\vbox\bgroup\par\addvspace{3.1pt}\noindent\ignorespaces\r
+   }{%\r
+   \par\egroup}\r
+%\r
+\let\@categories\@empty\r
+\def\bottomstuff{%\r
+    \global\@topnum\z@\r
+    \global\@botroom \textheight\r
+    \@float{figure}[b]\r
+        \footnotesize\r
+        \parindent\z@\r
+        \null\r
+        \vskip -\textfloatsep\r
+        \vskip 6\p@ plus2pt minus2pt\r
+        \hrule \@height .5\p@ \@width \textwidth\r
+        \vskip 6\p@ %7.5\r
+        \ignorespaces\r
+}\r
+\def\endbottomstuff{\par%\r
+Permission to make digital or hard copies  of part or all of this work \r
+for personal or classroom use is\r
+granted without fee provided that copies are not made or distributed for profit or commercial\r
+advantage and that copies show this notice on the first page or initial screen of a display\r
+along with the full citation. Copyrights for components of this work owned by others than ACM\r
+must be honored. Abstracting with credit is permitted. To copy otherwise, to republish,\r
+to post on servers, to redistribute to lists, or to use any component of this work in other\r
+works requires prior specific permission and\hspace*{.5pt}/or a fee. \r
+Permissions may be requested from Publications Dept., ACM, Inc., 2 Penn Plaza, Suite 701, \r
+New York, NY 10121-0701 USA, fax $+$1 (212) 869-0481,\r
+or permissions@acm.org.\par\box\@permissionbox\r
+\copyrightline\par\r
+\doiline\r
+\vskip-13pt\r
+\strut\r
+\end@float\r
+}\r
+\r
+% Heads\r
+\newcounter{part}\r
+\newcounter{section}\r
+\newcounter{subsection}[section]\r
+\newcounter{subsubsection}[subsection]\r
+\newcounter{paragraph}[subsubsection]\r
+\def\thepart{\Roman{part}}\r
+\def\thesection{\arabic{section}}\r
+\def\thesubsection{\thesection.\arabic{subsection}}\r
+\def\thesubsubsection{\thesubsection.\arabic{subsubsection}}\r
+\def\theparagraph{\thesubsubsection.\arabic{paragraph}}\r
+\r
+% for checking Uppercase heads\r
+\newif\if@uchead\@ucheadfalse\r
+\r
+\setcounter{secnumdepth}{3}\r
+\def\part{\@startsection{part}{9}{\z@}%\r
+                        {-10\p@ \@plus -4\p@ \@minus -2\p@}%\r
+                        {4\p@}%\r
+                        {\normalsize\itshape\@ucheadtrue}}\r
+\def\section{\@startsection{section}{1}{\z@}%\r
+                           {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%\r
+                           {.25\baselineskip}%\r
+                          {\sectionfont\@ucheadtrue}}\r
+\def\refsection{\@startsection{section}{1}{\z@}%\r
+                              {-1\baselineskip \@plus -2\p@ \@minus -.2\p@}%\r
+                              {.5\baselineskip}%\r
+                             {\refsectionfont\@ucheadtrue}}\r
+\def\subsection{\@startsection{subsection}{2}{\z@}%\r
+                              {-.75\baselineskip \@plus -2\p@ \@minus -.2\p@}%\r
+                             {.25\baselineskip}%\r
+                             {\subsectionfont}}\r
+\def\subsubsection{\@startsection{subsubsection}{3}{10pt}%\r
+                                 {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%\r
+                                {-3.5\p@}{\subsubsectionfont}}\r
+\def\paragraph{\@startsection{paragraph}{4}{\parindent}%\r
+                             {-.5\baselineskip \@plus -2\p@ \@minus -.2\p@}%\r
+                            {-3.5\p@}%\r
+                            {\paragraphfont}}\r
+\r
+\def\@seccntformat#1{\csname the#1\endcsname.\hskip .4em}\r
+\let\@period=.\r
+\def\@sect#1#2#3#4#5#6[#7]#8{%\r
+  \ifnum #2>\c@secnumdepth\r
+    \let\@svsec\@empty\r
+  \else\r
+    \refstepcounter{#1}%\r
+    \edef\@svsec{\begingroup\csname the#1\endcsname\endgroup\relax .\hskip .4em}%\r
+    \protected@edef\@svsec{\@seccntformat{#1}\relax}%\r
+  \fi\r
+  \@tempskipa #5\relax\r
+  \ifdim \@tempskipa>\z@\r
+    \begingroup\r
+      #6{%\r
+        \@hangfrom{\hskip #3\relax\@svsec}%\r
+          \interlinepenalty \@M \if@uchead\MakeUppercase{#8}\else#8\fi\@@par}%\r
+    \endgroup\r
+    \csname #1mark\endcsname{#7}%\r
+    \addcontentsline{toc}{#1}{%\r
+      \ifnum #2>\c@secnumdepth \else\r
+        \protect\numberline{\csname the#1\endcsname}%\r
+      \fi\r
+      #7}%\r
+  \else\r
+    \def\@svsechd{%\r
+      #6{\hskip #3\relax\r
+      \@svsec #8}%\r
+      \csname #1mark\endcsname{#7}%\r
+      \addcontentsline{toc}{#1}{%\r
+        \ifnum #2>\c@secnumdepth \else\r
+          \protect\numberline{\csname the#1\endcsname}%\r
+        \fi\r
+        #7}}%\r
+  \fi\r
+  \@xsect{#5}}\r
+\def\@xsect#1{%\r
+    \@tempskipa #1\relax\r
+    \ifdim \@tempskipa>\z@\r
+        \par\r
+        \nobreak\r
+        \vskip \@tempskipa\r
+        \@afterheading\r
+    \else\r
+        \global\@nobreakfalse\r
+        \global\@noskipsectrue\r
+        \everypar{%\r
+            \if@noskipsec\r
+                \global\@noskipsecfalse\r
+                \clubpenalty\@M\r
+                \hskip -\parindent\r
+                \begingroup\r
+                    \@svsechd\r
+                    \@period\r
+                \endgroup\r
+                \unskip\r
+                \@tempskipa #1\relax\r
+                \hskip -\@tempskipa\r
+            \else\r
+                \clubpenalty \@clubpenalty\r
+                \everypar{}%\r
+            \fi\r
+        }%\r
+    \fi\r
+    \ignorespaces\r
+}\r
+\r
+% Lists\r
+\def\@trivlist{%\r
+    \@topsepadd\topsep\r
+    \if@noskipsec\r
+        \global\let\@period\@empty\r
+        \leavevmode\r
+        \global\let\@period.%\r
+    \fi\r
+    \ifvmode\r
+        \advance\@topsepadd\partopsep\r
+    \else\r
+        \unskip\r
+        \par\r
+    \fi\r
+    \if@inlabel\r
+        \@noparitemtrue\r
+        \@noparlisttrue\r
+    \else\r
+        \@noparlistfalse\r
+        \@topsep\@topsepadd\r
+    \fi\r
+    \advance\@topsep \parskip\r
+    \leftskip\z@skip\r
+    \rightskip\@rightskip\r
+    \parfillskip\@flushglue\r
+    \@setpar{\if@newlist\else{\@@par}\fi}\r
+    \global\@newlisttrue\r
+    \@outerparskip\parskip\r
+}\r
+\labelsep 5\p@\r
+\r
+\settowidth{\leftmargini}{9.}\r
+\addtolength\leftmargini\labelsep\r
+\r
+\settowidth{\leftmarginii}{(b)}\r
+\addtolength\leftmarginii\labelsep\r
+\r
+\leftmarginiii  \leftmarginii\r
+\leftmarginiv   \leftmarginii\r
+\leftmarginv    \leftmarginii\r
+\leftmarginvi   \leftmarginii\r
+\leftmargin     \leftmargini\r
+\r
+\labelwidth\leftmargini\r
+\advance\labelwidth-\labelsep\r
+\def\@listI{%\r
+    \leftmargin\leftmargini\r
+    \parsep \z@ \r
+    \topsep .5\baselineskip \@plus 2\p@%\r
+    \itemsep\z@%\r
+}\r
+\r
+\let\@listi\@listI\r
+\r
+\@listi\r
+\def\@listii{%\r
+    \leftmargin\leftmarginii\r
+    \labelwidth\leftmarginii\r
+    \advance\labelwidth-\labelsep\r
+    \topsep \z@ \r
+    \parsep \z@ \r
+    \itemsep \parsep\r
+}\r
+\def\@listiii{%\r
+    \leftmargin\leftmarginiii\r
+    \labelwidth\leftmarginiii\r
+    \advance\labelwidth-\labelsep\r
+    \topsep \z@ \@plus \p@\r
+    \parsep \z@ \r
+    \itemsep \parsep\r
+}\r
+\def\@listiv{%\r
+    \leftmargin\leftmarginiv\r
+    \labelwidth\leftmarginiv\r
+    \advance\labelwidth-\labelsep\r
+}\r
+\def\@listv{%\r
+    \leftmargin\leftmarginv\r
+    \labelwidth\leftmarginv\r
+    \advance\labelwidth-\labelsep\r
+}\r
+\def\@listvi{%\r
+    \leftmargin\leftmarginvi\r
+    \labelwidth\leftmarginvi\r
+    \advance\labelwidth-\labelsep\r
+}\r
+\newdimen\enumdim\r
+\def\enummax#1{%\r
+  \setbox\tempbox\hbox{#1\hskip\labelsep}%\r
+  \enumdim\wd\tempbox\r
+  \expandafter\global\csname leftmargin\romannumeral\the\@enumdepth\endcsname\r
+  \enumdim}\r
+\r
+\enummax{1.}\r
+\def\enumerate{\@ifnextchar[{\@enumerate}{\@enumerate[\csname label\@enumctr\endcsname]}}%% \r
+\def\@enumerate[#1]{\par\abovedisplayskip .25\baselineskip \@plus2\p@\r
+                    \belowdisplayskip .25\baselineskip \@plus2\p@\r
+      \ifnum \@enumdepth >3 \@toodeep\else\r
+      \advance\@enumdepth\@ne\r
+      \edef\@enumctr{enum\romannumeral\the\@enumdepth}%\r
+      \setcounter{\@enumctr}{1}\enummax{#1}%\r
+      \list\r
+      {\csname label\@enumctr\endcsname}{\usecounter{\@enumctr}%\r
+      \def\makelabel##1{\hss\llap{##1}}}\fi}\r
+\def\endenumerate{\endlist}%% \r
+\def\longenum{%\r
+    \leftmargin0pt\r
+    \ifnum \@enumdepth >3\r
+        \@toodeep\r
+    \else\r
+        \advance\@enumdepth \@ne\r
+        \edef\@enumctr{enum\romannumeral\the\@enumdepth}%\r
+        \list{\csname label\@enumctr\endcsname}{%\r
+            \usecounter{\@enumctr}%\r
+            \labelwidth\z@\leftmargin0pt\r
+           \itemindent\parindent\advance\itemindent\labelsep\r
+        }%\r
+    \fi\r
+}\r
+\let\endlongenum\endlist\r
+\r
+\def\labelenumi{{\rm (}\arabic{enumi}\/{\rm )}} \r
+\def\theenumi{\arabic{enumi}} \r
+\def\labelenumii{{\rm (}\alph{enumii}\rm{)}}\r
+\def\theenumii{\alph{enumii}}\r
+\def\p@enumii{\theenumi}\r
+\def\labelenumiii{\roman{enumiii}.}\r
+\def\theenumiii{\roman{enumiii}}\r
+\def\p@enumiii{\theenumi{\rm (}\theenumii{\rm )}}\r
+\def\labelenumiv{\Alph{enumiv}.}\r
+\def\theenumiv{\Alph{enumiv}}\r
+\def\p@enumiv{\p@enumiii\theenumiii}\r
+\newcommand\labelitemi{\texthyphen}%\r
+\newcommand\labelitemii{\texthyphen}%\r
+\newcommand\labelitemiii{\texthyphen}%\r
+\newcommand\labelitemiv{\texthyphen}%\r
+\font\lcir = lcircle10 at 8pt\r
+\newcommand\bulls{\raise1.5pt\hbox{\lcir\char'162}}\r
+\def\textbullet{\leavevmode\raise2pt\hbox{\bulls}}\r
+\def\texthyphen{---}\r
+\newif\ifhyphen\hyphenfalse\r
+\r
+\def\itemize{%\r
+  \ifnum \@itemdepth >3 \@toodeep\else \advance\@itemdepth \@ne\r
+  \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%\r
+  \list{\csname\@itemitem\endcsname}%\r
+       {\advance\leftmargin-5.7pt\labelsep2pt\r
+       \def\makelabel##1{\hss\llap{##1}}}\fi}%\r
+\let\enditemize =\endlist\r
+\r
+\newenvironment{hyphenlist}{%\r
+   \hyphentrue\r
+   \renewcommand\labelitemi{\texthyphen}%\r
+   \renewcommand\labelitemii{\texthyphen}%\r
+   \renewcommand\labelitemiii{\texthyphen}%\r
+   \renewcommand\labelitemiv{\texthyphen}%\r
+   \begin{itemize}\r
+}{%\r
+   \end{itemize}\r
+   \hyphenfalse}\r
+%\r
+\newenvironment{bulletlist}{%\r
+\leftmargini20pt\r
+   \renewcommand\labelitemi{\textbullet}%\r
+   \renewcommand\labelitemii{\textbullet}%\r
+   \renewcommand\labelitemiii{\textbullet}%\r
+   \renewcommand\labelitemiv{\textbullet}%\r
+   \begin{itemize}\r
+}{%\r
+   \end{itemize}}\r
+\r
+\def\longitem{%\r
+    \list{---}{%\r
+        \labelwidth\z@\r
+        \leftmargin\z@\r
+        \itemindent\parindent\r
+        \advance\itemindent\labelsep\r
+    }%\r
+}\r
+\let\endlongitem\endlist\r
+\def\verse{%\r
+    \let\\=\@centercr\r
+    \list{}{%\r
+        \leftmargin 2pc\r
+        \itemindent -1.5em\r
+        \listparindent \itemindent\r
+        \rightmargin\leftmargin\r
+        \advance\leftmargin 1.5em\r
+    }%\r
+    \item[]\r
+}\r
+\r
+\let\endverse\endlist\r
+\def\quotation{%\r
+    \list{}{%\r
+        \leftmargin 2pc\r
+        \listparindent .5em\r
+        \itemindent\listparindent\r
+        \rightmargin\leftmargin\r
+        \parsep \z@ \@plus \p@\r
+    }%\r
+    \item[]\r
+}\r
+\r
+\let\endquotation=\endlist\r
+\def\quote{%\r
+    \list{}{%\r
+        \leftmargin 2pc\r
+        \rightmargin\leftmargin\r
+    }%\r
+    \item[]\r
+}\r
+\r
+\let\endquote=\endlist\r
+%\r
+\def\extractfont{\fontsize{8}{10}\selectfont\leftskip8pt\rightskip8pt}\r
+\newenvironment{extract}{\par\addvspace{7pt plus2pt}\r
+\parindent8pt\r
+\extractfont\r
+\noindent\ignorespaces\r
+}{%\r
+\par\addvspace{6pt plus2pt}}\r
+\r
+\def\descriptionlabel#1{%\r
+  \hspace\labelsep \normalfont\itshape #1.%\r
+}%\r
+\newenvironment{description}{%\r
+ \list{}{%\r
+    \labelwidth\z@\r
+    \let\makelabel\descriptionlabel\r
+ }\r
+}{\endlist}%\r
+\r
+\def\describe#1{%\r
+    \list{}{%\r
+        \listparindent\parindent\r
+        \settowidth{\labelwidth}{#1}%\r
+        \leftmargin\labelwidth\r
+        \addtolength\leftmargin\labelsep\r
+        \def\makelabel##1{##1\hfil}%\r
+    }%\r
+}\r
+\let\enddescribe\endlist\r
+\r
+\def\program{%\r
+    \ifx\@currsize\normalsize\r
+        \small\r
+    \else\r
+        \rm\r
+    \fi\r
+    \tabbing\r
+}\r
+\let\endprogram\endtabbing\r
+\r
+% Enunciations\r
+\newif\ifitalicenv\italicenvtrue\r
+\r
+\newtheorem{theorem}{Theorem}[section]\r
+\newtheorem{conjecture}[theorem]{Conjecture}\r
+\newtheorem{proposition}[theorem]{Proposition}\r
+\newtheorem{lemma}[theorem]{Lemma}\r
+\newtheorem{corollary}[theorem]{Corollary}\r
+%\r
+\newtheorem{exam}[theorem]{Example}\r
+\newenvironment{example}{%\r
+\italicenvfalse\r
+\begin{exam}}{\end{exam}\italicenvtrue}\r
+%\r
+\newtheorem{defi}[theorem]{Definition}\r
+\newenvironment{definition}{%\r
+\italicenvfalse\r
+\begin{defi}}{\end{defi}\italicenvtrue}\r
+\r
+\def\@begintheorem#1#2{%\r
+    \trivlist\r
+    \item[%\r
+        \hskip 12\p@\r
+        \hskip \labelsep\r
+        {\ifitalicenv\sc\else\itshape\fi #1\hskip 5\p@\relax{\rm #2}.\enspace}]%\r
+        \ifitalicenv\itshape\else\upshape\fi\hskip-\labelsep%\r
+}\r
+\def\@opargbegintheorem#1#2#3{%\r
+    \trivlist\r
+    \item[\hskip 12pt\r
+          \hskip \labelsep\r
+          {\ifitalicenv{\sc{#1}}\else{\itshape#1}\fi%\r
+          \savebox\@tempboxa{\ifitalicenv{\scshape#3}\else{\itshape#3}\fi}%\r
+          \ifdim\wd\@tempboxa>\z@%\r
+           \ {\rm #2}\unskip\hskip5pt\relax$($\box\@tempboxa$)$% \r
+          \fi.\unskip\hskip5pt}]\r
+\ifitalicenv\itshape\else\upshape\fi\hskip-\labelsep}\r
+\r
+\newif\if@qeded\r
+\global\@qededfalse\r
+\def\proof{%\r
+    \global\@qededfalse\r
+    \@ifnextchar[{\@xproof}{\@proof}}\r
+\r
+\def\endproof{%\r
+    \if@qeded\else\qed\fi\r
+    \endtrivlist\r
+}\r
+\def\@proof{%\r
+    \trivlist\r
+    \item[%\r
+        \hskip 12\p@\r
+        \hskip \labelsep\r
+        {\sc Proof.\enspace}]\hskip-\labelsep%\r
+    \ignorespaces\r
+}\r
+\def\@xproof[#1]{%\r
+    \trivlist\r
+    \item[\hskip 12\p@\hskip \labelsep{\sc Proof #1.}]%\r
+    \ignorespaces\r
+}\r
+\def\qed{\unskip\kern 10pt{\unitlength1pt\linethickness{.4pt}\framebox(5,5){}}\r
+    \global\@qededtrue\r
+    }%\r
+\def\newdef#1#2{%\r
+    \expandafter\@ifdefinable\csname #1\endcsname\r
+        {\@definecounter{#1}%\r
+         \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%\r
+         \global\@namedef{#1}{\@defthm{#1}{#2}}%\r
+         \global\@namedef{end#1}{\@endtheorem}%\r
+    }%\r
+}\r
+\def\@defthm#1#2{%\r
+    \refstepcounter{#1}%\r
+    \@ifnextchar[{\@ydefthm{#1}{#2}}{\@xdefthm{#1}{#2}}%\r
+}\r
+\def\@xdefthm#1#2{%\r
+    \@begindef{#2}{\csname the#1\endcsname}%\r
+    \ignorespaces\r
+}\r
+\def\@ydefthm#1#2[#3]{%\r
+    \trivlist\r
+    \item[%\r
+        \hskip 10\p@\r
+        \hskip \labelsep\r
+        {\it #2%\r
+         \savebox\@tempboxa{#3}%\r
+         \ifdim \wd\@tempboxa>\z@\r
+            \ \box\@tempboxa\r
+         \fi.%\r
+        }]%\r
+    \ignorespaces\r
+}\r
+\def\@begindef#1#2{%\r
+    \trivlist\r
+    \item[%\r
+        \hskip 10\p@\r
+        \hskip \labelsep\r
+        {\it #1\ \rm #2.}%\r
+    ]%\r
+}\r
+\r
+% Maths\r
+\def\theequation{\arabic{equation}}\r
+\r
+\def\@marrayclassiv{\@addtopreamble{$\displaystyle \@nextchar$}}\r
+\def\@marrayclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or\r
+ \or \or \@addamp \or\r
+ \@acolampacol \or \@firstampfalse \@acol \fi\r
+\edef\@preamble{\@preamble\r
+ \ifcase \@chnum \r
+ \hfil$\relax\displaystyle\@sharp$\hfil \or $\relax\displaystyle\@sharp$\hfil \r
+ \or \hfil$\relax\displaystyle\@sharp$\fi}}\r
+\def\marray{\arraycolsep 2.5pt\let\@acol\@arrayacol \let\@classz\@marrayclassz\r
+ \let\@classiv\@marrayclassiv \let\\\@arraycr\def\@halignto{}\@tabarray}\r
+\def\endmarray{\crcr\egroup\egroup}\r
+\r
+\arraycolsep 2.5\p@\r
+\tabcolsep 6\p@\r
+\arrayrulewidth .25\p@\r
+\doublerulesep 2\p@\r
+\tabbingsep \labelsep\r
+\r
+\skip\@mpfootins = \skip\footins\r
+\fboxsep = 3pt \fboxrule = .4\p@\r
+\r
+% Table of Contents\r
+\def\@pnumwidth{1.55em}\r
+\def\@tocrmarg {2.55em}\r
+\def\@dotsep{4.5}\r
+\setcounter{tocdepth}{3}\r
+\def\tableofcontents{%\r
+    \section*{Contents\@mkboth{CONTENTS}{CONTENTS}}\r
+    \@starttoc{toc}%\r
+}\r
+\def\l@part#1#2{%\r
+    \addpenalty\@secpenalty\r
+    \addvspace{2.25em \@plus \p@}%\r
+    \begingroup\r
+        \@tempdima 3em\r
+        \parindent \z@\r
+        \rightskip \@pnumwidth\r
+        \parfillskip -\@pnumwidth\r
+        {\large \bf \leavevmode #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par\r
+        \nobreak\r
+        \endgroup\r
+}\r
+\def\l@section#1#2{%\r
+    \addpenalty\@secpenalty\r
+    \addvspace{1.0em \@plus \p@}%\r
+    \@tempdima 1.5em\r
+    \begingroup\r
+        \parindent \z@\r
+        \rightskip \@pnumwidth\r
+        \parfillskip -\@pnumwidth\r
+        \bf \leavevmode #1\hfil \hb@xt@\@pnumwidth{\hss #2}\par\r
+    \endgroup\r
+}\r
+\def\l@subsection{\@dottedtocline{2}{1.5em}{2.3em}}\r
+\def\l@subsubsection{\@dottedtocline{3}{3.8em}{3.2em}}\r
+\r
+% List of figures\r
+\def\listoffigures{%\r
+    \section*{List of Figures\@mkboth{LIST OF FIGURES}{LIST OF FIGURES}}\r
+    \@starttoc{lof}}\r
+\def\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}\r
+\r
+% List of tables\r
+\def\listoftables{%\r
+    \section*{List of Tables\@mkboth{LIST OF TABLES}{LIST OF TABLES}}\r
+    \@starttoc{lot}}\r
+\let\l@table\l@figure\r
+\r
+% Index\r
+\newif\if@restonecol\r
+\def\theindex{%\r
+    \@restonecoltrue\r
+    \if@twocolumn \@restonecolfalse \fi\r
+    \columnseprule \z@\r
+    \columnsep 35\p@\r
+    \twocolumn[\section*{Index}]\r
+    \@mkboth{INDEX}{INDEX}%\r
+    \thispagestyle{plain}%\r
+    \parindent\z@\r
+    \parskip\z@ \@plus .3\p@\relax\r
+    \let\item\@idxitem\r
+}\r
+\r
+\def\endtheindex{%\r
+    \if@restonecol\r
+        \onecolumn\r
+    \else\r
+        \clearpage\r
+    \fi\r
+}\r
+\def\@idxitem{\par\hangindent 40\p@}\r
+\def\subitem{\par\hangindent 40\p@ \hspace*{20\p@}}\r
+\def\subsubitem{\par\hangindent 40\p@ \hspace*{30\p@}}\r
+\def\indexspace{\par \vskip 10\p@ \@plus 5\p@ \@minus 3\p@\relax}\r
+\r
+% Footnote\r
+\def\footnoterule{%\r
+    \kern-3\p@\r
+    \hrule \@width 36\p@ \@height 0.25\p@\r
+    \kern 3\p@\r
+}\r
+\long\def\@makefntext#1{%\r
+    \parindent 1em\r
+    \noindent $^{\@thefnmark}$#1%\r
+}\r
+\r
+% Figures and Tables\r
+\newlength\belowcaptionskip\r
+\newlength\abovecaptionskip\r
+\setlength\belowcaptionskip{3.5\p@}\r
+\setlength\abovecaptionskip{6\p@}\r
+\r
+\def\nocaption{\refstepcounter\@captype \par\r
+ \vskip 1pc \hbox to\hsize{\hfil \figcaptionnumfont Figure \thefigure\r
+ \hfil}}\r
+\r
+\def\FigName{figure}%\r
+\long\def\@caption#1[#2]#3{\par\begingroup\r
+    \@parboxrestore\r
+    \normalsize\r
+    \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par\r
+  \endgroup}\r
+\r
+\long\def\@makecaption#1#2{%\r
+  \ifx\FigName\@captype\baselineskip10pt\r
+    \vskip\abovecaptionskip\r
+    \setbox\@tempboxa\hbox{\figcaptionfont{\figcaptionnumfont#1}.\hskip7.3pt\relax #2\par}%\r
+    \ifdim \wd\@tempboxa >\hsize\r
+        \figcaptionfont{\figcaptionnumfont#1}.\hskip7.3pt\relax #2\par\r
+    \else\r
+        \centerline{\box\@tempboxa}%\r
+    \fi\r
+  \else%\r
+    \setbox\tbbox=\vbox{\hsize\tempdimen\tablecaptionfont{\tablenumfont #1.\ }{#2\par}}%\r
+    \setbox\@tempboxa\hbox{\hsize\tempdimen\tablecaptionfont{\tablenumfont #1.}\ {#2\par}}%\r
+    \ifdim \wd\@tempboxa >\tempdimen\r
+        \centerline{\box\tbbox}%        \r
+    \else\r
+        \centerline{\box\@tempboxa}%\r
+    \fi\r
+    \vskip\belowcaptionskip\r
+  \fi\r
+}\r
+%\r
+\newcounter{figure}\r
+\def\thefigure{\@arabic\c@figure}\r
+\def\fps@figure{tbp}\r
+\def\ftype@figure{1}\r
+\def\ext@figure{lof}\r
+%\r
+\newif\ifcontinued\r
+\global\continuedfalse\r
+%\r
+\def\continued{\global\continuedtrue}\r
+%\r
+\def\fnum@figure{\ifcontinued\global\continuedfalse\addtocounter{figure}{-1} Fig.~\thefigure---{\it Continued}\else Fig.~\thefigure\fi}%\r
+\newenvironment{figure}\r
+              {\@float{figure}}\r
+              {\end@float}\r
+\newenvironment{figure*}\r
+              {\@dblfloat{figure}}\r
+              {\end@dblfloat}\r
+%\r
+\newcounter{table}\r
+\renewcommand\thetable{\Roman{table}}\r
+\def\fps@table{tbp}\r
+\def\ftype@table{2}\r
+\def\ext@table{lot}\r
+\def\tablename{Table}\r
+\def\fnum@table{\ifcontinued\addtocounter{table}{-1} Table~\thetable---{\it Continued} \else Table~\thetable\fi}\r
+\newenvironment{table}\r
+               {\@float{table}}\r
+               {\end@float}\r
+\newenvironment{table*}\r
+               {\@dblfloat{table}}\r
+               {\end@dblfloat}\r
+\r
+\long\def\tbl#1#2{%\r
+\setbox\tempbox\hbox{\tablefont #2}%\r
+\tabledim\hsize\advance\tabledim by -\wd\tempbox\r
+\tempdimen\wd\tempbox\r
+\global\divide\tabledim\tw@\r
+\caption{#1\protect\vphantom{yp}}\r
+\centerline{\box\tempbox}}%\r
+\r
+\newenvironment{intexttable}{\par\addvspace{1.2pt plus2pt}\r
+\intexttablefont\r
+}{%\r
+\par\addvspace{7pt plus2pt}}\r
+\r
+\newenvironment{tabnote}{%\r
+\par\vskip5pt\r
+\tabnotefont\r
+\@ifnextchar[{\@tabnote}{\@tabnote[]}}{%\r
+\par}\r
+\def\@tabnote[#1]{\def\@Tempa{#1}\leftskip\tabledim\rightskip\leftskip\ifx\@Tempa\@empty\else{\it #1:}\ \fi\ignorespaces}\r
+\r
+\def\tabnoteentry#1#2{\parindent0pt\par{#1}{#2}}\r
+\def\Note#1#2{\parindent0pt\par{\it #1}\ #2}\r
+\r
+\newdimen\@narrowfig\r
+\newbox\@nfigbox\r
+\newbox\@nfcapbox\r
+\newif\if@nfeven\r
+\def\acmtable#1{%\r
+    \@narrowfig #1\relax\r
+    \let\caption\@atcap\r
+    \let\nocaption\@atnocap\r
+    \@ifnextchar[{\@ntab}{\@ntab[\fps@table]}%\r
+}\r
+\r
+\def\@ntab[#1]{%\r
+    \expandafter\table\expandafter[#1]%\r
+    \setbox\@nfigbox\vbox\bgroup\r
+        \hsize \@narrowfig\r
+        \@parboxrestore\r
+}\r
+\r
+\def\endacmtable{%\r
+    \hb@xt@\textwidth{%\r
+        \hfil\r
+        \vbox{%\r
+            \hsize \@narrowfig\r
+            \box\@nfcapbox{%\r
+                \baselineskip 4\p@\r
+                \hbox{\vrule \@height .4\p@ \@width \hsize}%\r
+\r
+            }%\r
+            \vskip -\p@\r
+            \box\@nfigbox\r
+            \vskip -\p@\r
+            \begingroup\r
+                \baselineskip 4\p@\r
+                \hbox{\vrule \@height .4\p@ \@width \hsize}%\r
+            \endgroup\r
+        }%\r
+        \hfil\r
+    }%\r
+    \end@float\r
+}\r
+\def\@atmakecap#1#2{%\r
+    \setbox\@tempboxa\hbox{#1.\hskip 1em\relax #2}%\r
+    \ifdim \wd\@tempboxa >\hsize\r
+        \sloppy #1.\hskip 1em\relax #2 \par\r
+    \else\r
+        \centerline{\box\@tempboxa}%\r
+    \fi\r
+}\r
+\def\@atcap{%\r
+        \par\r
+    \egroup\r
+    \refstepcounter\@captype\r
+    \@dblarg{\@atcapx\@captype}%\r
+}\r
+\long\def\@atcapx#1[#2]#3{%\r
+    \addcontentsline{\csname ext@#1\endcsname}{#1}{%\r
+        \protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}%\r
+    }%\r
+    \setbox\@nfcapbox\vbox{%\r
+        \hsize \wd\@nfigbox\r
+        \@parboxrestore\r
+        \@atmakecap{\csname fnum@#1\endcsname}{\ignorespaces #3}%\r
+        \par\r
+    }%\r
+}\r
+\def\@atnocap{%\r
+    \egroup\r
+    \refstepcounter\@captype\r
+    \setbox\@nfcapbox\vbox{%\r
+        \hsize \wd\@nfigbox\r
+        \centerline{\footnotesize \fnum@table}\r
+    }%\r
+}\r
+\def\narrowfig#1{%\r
+    \@narrowfig #1\relax\r
+    \let\caption\@nfcap\r
+    \let\nocaption\@nfnocap\r
+    \@ifnextchar[{\@nfig}{\@nfig[\fps@figure]}%\r
+}\r
+\r
+\def\@nfig[#1]{%\r
+    \expandafter\figure\expandafter[#1]%\r
+    \setbox\@nfigbox\vbox\bgroup\r
+        \hsize\@narrowfig\r
+        \@parboxrestore\r
+}\r
+\r
+\def\endnarrowfig{%\r
+    \hb@xt@\textwidth{%\r
+        \if@nfeven\r
+            \box\@nfcapbox  \hfil   \box\@nfigbox\r
+        \else\r
+            \box\@nfigbox   \hfil   \box\@nfcapbox\r
+        \fi\r
+    }%\r
+    \endfigure\r
+}\r
+\def\@nfcap{%\r
+        \par\r
+    \egroup\r
+    \refstepcounter\@captype\r
+    \@dblarg{\@nfcapx\@captype}%\r
+}\r
+\def\@nfmakecap #1#2{%\r
+    \setbox\@tempboxa\hbox{#1.\hskip 1em\relax #2}%\r
+    \ifdim \wd\@tempboxa >\hsize\r
+        \sloppy #1.\hskip 1em\relax #2 \par\r
+    \else\r
+        \@@line{%\r
+            \if@nfeven\else\hfil\fi\r
+            \box\@tempboxa\r
+            \if@nfeven\hfil\fi\r
+        }%\r
+    \fi\r
+}\r
+\long\def\@nfcapx#1[#2]#3{%\r
+    \addcontentsline{\csname ext@#1\endcsname}{#1}{%\r
+        \protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}%\r
+    }%\r
+    \@seteven\r
+    \setbox\@nfcapbox\vbox to \ht\@nfigbox{%\r
+        \hsize \textwidth\r
+        \advance\hsize -2pc\r
+        \advance\hsize -\wd\@nfigbox\r
+        \@parboxrestore\r
+        \vfil\r
+        \@nfmakecap{\csname fnum@#1\endcsname}{\ignorespaces #3}%\r
+        \par\r
+        \vfil\r
+    }%\r
+}\r
+\def\@nfnocap{%\r
+    \egroup\r
+    \refstepcounter\@captype\r
+    \@seteven\r
+    \setbox\@nfcapbox\vbox to \ht\@nfigbox{%\r
+        \hsize \textwidth\r
+        \advance\hsize -2pc\r
+        \advance\hsize -\wd\@nfigbox\r
+        \@parboxrestore\r
+        \vfil\r
+        \@@line{%\r
+            \if@nfeven\else\hfil\fi\r
+            \footnotesize \fnum@figure\r
+            \if@nfeven\hfil\fi\r
+        }%\r
+        \vfil\r
+    }%\r
+}\r
+\r
+\def\@seteven{%\r
+    \@nfeventrue\r
+    \@ifundefined{r@@nf\thefigure}{}{%\r
+        \edef\@tmpnf{\csname r@@nf\thefigure\endcsname}%\r
+        \edef\@tmpnf{\expandafter\@cdr\@tmpnf\@nil}%\r
+        \ifodd\@tmpnf\relax\r
+            \@nfevenfalse\r
+        \fi\r
+    }%\r
+    \label{@nf\thefigure}%\r
+    \edef\@tmpnfx{\if@nfeven e\else o\fi}%\r
+    \edef\@tmpnf{%\r
+        \write\@unused{%\r
+            \noexpand\ifodd \noexpand\c@page\r
+                \noexpand\if \@tmpnfx e%\r
+                    \noexpand\@nfmsg{\thefigure}\r
+                \noexpand\fi\r
+            \noexpand\else\r
+                \noexpand\if \@tmpnfx o%\r
+                    \noexpand\@nfmsg{\thefigure}%\r
+                \noexpand\fi\r
+            \noexpand\fi\r
+        }%\r
+    }%\r
+    \@tmpnf\r
+}\r
+\r
+\def\@nfmsg#1{Bad narrowfig: Figure #1 on page \thepage}\r
+\newbox\@nfigbox\r
+\newbox\@nfcapbox\r
+\newif\if@nfeven\r
+\r
+% Acknowledgments\r
+\newenvironment{ack}{%\r
+\refsection*{ACKNOWLEDGMENT}\r
+\ackfont\r
+}{\par}\r
+\r
+\newenvironment{acks}{%\r
+\refsection*{ACKNOWLEDGMENTS}\r
+\ackfont\r
+}{\par}\r
+\r
+% History Dates\r
+\def\received#1#2#3{\par\addvspace{14\p@}%\r
+{\noindent\fontfamily{\sfdefault}\fontsize{8}{9}\selectfont{Received\ #1;\ revised\ #2;\ accepted\ #3}%\r
+\par}}\r
+\r
+% provide both spellings of Acknowledgment(s)\r
+\let\acknowledgments\acks\r
+\let\endacknowledgments\endacks\r
+\let\acknowledgment\ack\r
+\let\endacknowledgment\endack\r
+\r
+\newcommand{\longpage}{\enlargethispage{\baselineskip}}\r
+\newcommand{\shortpage}{\enlargethispage{-\baselineskip}}\r
+\r
+% Appendices\r
+\newfont{\apbf}{cmbx9}\r
+\def\@withappendix#1{App--\number #1}\r
+\newcommand{\elecappendix}{\r
+}\r
+\r
+\def\appenheader{\global\@topnum\z@ \global\@botroom \textheight \begin{figure}\r
+\newfont{\sc}{cmcsc10}\r
+\parindent\z@\r
+\hbox{}\r
+\vskip -\textfloatsep\r
+\vskip 11pt\r
+\hrule height .2pt width 30pc\r
+\vskip 2pt\rule{0pt}{10pt}\ignorespaces}\r
+\def\endappenheader{\end{figure}\gdef\appendixhead{}}\r
+\r
+\def\@appsec{}\r
+\r
+\def\appendix{\par\r
+ \setcounter{section}{0}\r
+ \setcounter{subsection}{0}\r
+ \def\@appsec{APPENDIX } \r
+        \def\thesection{\Alph{section}}\r
+        \def\theHsection{\Alph{section}}}\r
+\r
+% split electronic appendix into two parts:\r
+\r
+\def\appendixhead#1{\appendix\r
+\section*{ELECTRONIC APPENDIX}\r
+The electronic appendix for this article can be accessed in the ACM Digital Library.}\r
+\r
+\newif\ifelec@app\global\elec@appfalse\r
+\long\def\elecappendix{\immediate\write\@mainaux{\string\lastpage{\the\c@page}}%\r
+\clearpage\r
+\makeatletter\r
+\elec@apptrue\r
+\pagenumbering{withappendix}\r
+\pagestyle{appheadings}\r
+\thispagestyle{titlepage}%\r
+\makeatother\r
+\appendix\r
+{\vbox{\titlefont\parindent0pt\raggedright%\r
+Online Appendix to:\par\@title\par{}}}\vskip 12\p@\r
+\vbox{\authorfont\parindent0pt\@author{}}\vskip .5em\noindent\r
+\vskip 11pt\noindent\r
+\hrule height .2pt\r
+\par\r
+\def\endbottomstuff{%\r
+\copyrightline\par\r
+\doiline\r
+\vskip-13pt\r
+\strut\r
+\end@float\r
+}\r
+\bottomstuff\r
+\endbottomstuff\r
+}\r
+\r
+%-----------------------BIBLIOGRAPHY STUFF-------------------------\r
+% this is adapted (November 1993) by Andrew Appel and Rebecca Davies from\r
+% \r
+%%%     filename        = "chicago.sty",\r
+%%%     version         = "4",  % MODIFIED!\r
+%%%     date            = "31 August 1992",\r
+%%%     time            = "09:42:44 199",\r
+%%%     author          = "Glenn Paulley",\r
+%%%     address         = "Data Structuring Group\r
+%%%                        Department of Computer Science\r
+%%%                        University of Waterloo\r
+%%%                        Waterloo, Ontario, Canada\r
+%%%                        N2L 3G1",\r
+%%%     telephone       = "(519) 885-1211",\r
+%%%     FAX             = "(519) 885-1208",\r
+%%%     email           = "gnpaulle@bluebox.uwaterloo.ca",\r
+\r
+%%% ====================================================================\r
+%\r
+% this file: Modification of chicago.sty for new ACM bibliography\r
+% style, which is similar (but not identical) to the ``Chicago'' style.\r
+%\r
+% chicago.sty: Style file for use with bibtex style chicago.bst, for\r
+% bibliographies formatted according to the 13th Edition of the Chicago\r
+% Manual of Style.\r
+%\r
+% 'newapa.bst' was made from 'plain.bst', 'named.bst', and 'apalike.bst',\r
+% with lots of tweaking to make it look like APA style, along with tips\r
+% from Young Ryu and Brian Reiser's modifications of 'apalike.bst'.\r
+% newapa.sty formed the basis of this style, chicago.sty. Author-date\r
+% references in newapa.bst formed the basis for chicago.bst. Chicagoa.bst\r
+% supports annotations.\r
+%\r
+% Version 4 (August, 1992):\r
+% - fixed chicago.bst and chicagoa.bst to handle long author lists in\r
+%   sorting\r
+% - fixed chicago.bst and chicagoa.bst so that missing page numbers in\r
+%   ``article'' entries are handled correctly\r
+% - modified chicago.sty to format entries with 2nd and subsequent lines\r
+%   indented.\r
+%\r
+%   Citation format: (author-last-name year)\r
+%             (author-last-name and author-last-name year)\r
+%             (author-last-name et al. year)\r
+%             (author-last-name)\r
+%             author-last-name\r
+%             author-last-name (year)\r
+%             (author-last-name and author-last-name)\r
+%             (author-last-name et al.)\r
+%             (year) or (year,year)\r
+%             year or year,year\r
+%\r
+%   Reference list ordering: alphabetical by author or whatever passes\r
+%    for author in the absence of one.\r
+%\r
+% This BibTeX style has support for abbreviated author lists and for\r
+%    year-only citations.  This is done by having the citations\r
+%    actually look like\r
+%\r
+%    \citeauthoryear{full-author-info}{abbrev-author-info}{year}\r
+%\r
+% The LaTeX style has to have the following (or similar)\r
+%\r
+%     \let\@internalcite\cite\r
+%     \def\fullcite{\def\citeauthoryear##1##2##3{##1, ##3}\@internalcite}\r
+%     \def\fullciteA{\def\citeauthoryear##1##2##3{##1}\@internalcite}\r
+%     \def\shortcite{\def\citeauthoryear##1##2##3{##2, ##3}\@internalcite}\r
+%     \def\shortciteA{\def\citeauthoryear##1##2##3{##2}\@internalcite}\r
+%     \def\citeyear{\def\citeauthoryear##1##2##3{##3}\@internalcite}\r
+%\r
+%\r
+% -------------------------------------------------------------------------\r
+%\r
+% Citation macros (compatible with natbib package).\r
+%\r
+\AtBeginDocument{%\r
+\@ifpackageloaded{natbib}{% Natbib loaded\r
+\renewcommand\bibsection{%\r
+    \refsection*{{\refname}%\r
+        \@mkboth{\uppercase{\refname}}{\uppercase{\refname}}%\r
+}}%\r
+\bibpunct[, ]{[}{]}{;}{a}{}{,}\r
+\let\citeN\cite\r
+\let\cite\citep\r
+\let\citeANP\citeauthor\r
+\let\citeNN\citeyearpar\r
+\let\citeyearNP\citeyear\r
+\let\citeyear\citeyearpar\r
+\let\citeNP\citealt\r
+\def\shortcite#1{\citeyear{#1}}\r
+\DeclareRobustCommand\citeA\r
+   {\begingroup\NAT@swafalse\let\NAT@ctype\@ne\NAT@partrue\NAT@fullfalse\NAT@open\NAT@citetp}\r
+\newcommand\newblock{}\r
+}{% Natbib not loaded\r
+\let\@internalcite\cite\r
+\def\cite{\def\@citeseppen{-1000}%\r
+    \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}%\r
+    \def\citeauthoryear##1##2##3{##2 ##3}\@internalcite}\r
+\def\citeXNP#1#2{%\r
+  \def\@cite@label{#2}%\r
+  \def\@cite##1##2{##1\if@tempswa , ##2\fi}%\r
+  \def\citeauthoryear##1##2##3{\@cite@label}\@internalcite{#1}}\r
+\def\citeNP{\def\@citeseppen{-1000}%\r
+    \def\@cite##1##2{##1\if@tempswa , ##2\fi}%\r
+    \def\citeauthoryear##1##2##3{##2 ##3}\@internalcite}\r
+\def\citeN{\def\@citeseppen{-1000}%\r
+    \def\@cite##1##2{##1\if@tempswa , ##2]\else{]}\fi}%\r
+    \def\citeauthoryear##1##2##3{##2 [##3}\@citedata}\r
+\def\shortcite#1{\citeyear{#1}}\r
+\def\citeS#1{[\citeANP{#1} \citeyearNP{#1}]}\r
+\def\citeNS#1{\citeANP{#1} \citeyear{#1}}\r
+\def\citeNPS#1{\citeANP{#1} \citeyearNP{#1}}\r
+%testing year,year\r
+\def\citeNN{\def\@citeseppen{-1000}%\r
+    \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}%\r
+    \def\citeauthoryear##1##2##3{##3}\@citedata}\r
+\r
+\def\citeA{\def\@citeseppen{-1000}%\r
+    \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}%\r
+    \def\citeauthoryear##1##2##3{##2}\@internalcite}\r
+\def\citeANP{\def\@citeseppen{-1000}%\r
+    \def\@cite##1##2{##1\if@tempswa , ##2\fi}%\r
+    \def\citeauthoryear##1##2##3{##2}\@internalcite}\r
+\r
+\def\citeyear{\def\@citeseppen{-1000}%\r
+    \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}%\r
+    \def\citeauthoryear##1##2##3{##3}\@citedata}\r
+\def\citeyearNP{\def\@citeseppen{-1000}%\r
+    \def\@cite##1##2{##1\if@tempswa , ##2\fi}%\r
+    \def\citeauthoryear##1##2##3{##3}\@citedata}\r
+\r
+%\r
+% \@citedata and \@citedatax:\r
+%\r
+% Place commas in-between citations in the same \citeyear, \citeyearNP,\r
+% or \citeN command.\r
+% Use something like \citeN{ref1,ref2,ref3} and \citeN{ref4} for a list.\r
+%\r
+\def\@citedata{%\r
+        \@ifnextchar [{\@tempswatrue\@citedatax}%\r
+                                  {\@tempswafalse\@citedatax[]}%\r
+}\r
+\r
+\def\@citedatax[#1]#2{%\r
+\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi%\r
+  \def\@citea{}\@cite{\@for\@citeb:=#2\do%\r
+    {\@citea\def\@citea{; }\@ifundefined% by Young\r
+       {b@\@citeb}{{\bf ?}%\r
+       \@warning{Citation `\@citeb' on page \thepage \space undefined}}%\r
+{\csname b@\@citeb\endcsname}}}{#1}}%\r
+\r
+% don't box citations, separate with ; and a space\r
+% also, make the penalty between citations negative: a good place to break.\r
+%\r
+\def\@citex[#1]#2{%\r
+\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi%\r
+  \def\@citea{}\@cite{\@for\@citeb:=#2\do%\r
+    {\@citea\def\@citea{; }\@ifundefined% by Young\r
+       {b@\@citeb}{{\bf ?}%\r
+       \@warning{Citation `\@citeb' on page \thepage \space undefined}}%\r
+{\csname b@\@citeb\endcsname}}}{#1}}%\r
+\r
+% Fix cite so it doesn't repeat author lists in citations:\r
+\r
+\def\cite{\def\@citeseppen{-1000}%\r
+    \def\@cite##1##2{[##1\if@tempswa , ##2\fi]}%\r
+    \let\@lastauthor=\@noauthor\r
+    \let\citeauthoryear=\citeauthoryear@no@repeats\@internalcite}\r
+    %\def\citeauthoryear##1##2##3{##2 ##3}\@internalcite\r
+\r
+\def\@noauthor={\relax}\r
+\let\@lastauthor=\@noauthor\r
+\let\@currauthor=\@noauthor\r
+\r
+\def\citeauthoryear@no@repeats#1#2#3{%\r
+  \def\@currauthor{\csname @author #1\endcsname}%\r
+  \ifx\@lastauthor\@currauthor{#3}\else{#2 #3}\fi%\r
+  \let\@lastauthor=\@currauthor}\r
+}}\r
+\r
+% Bibliography\r
+\let\@biblabel\@gobble\r
+\newdimen\bibindent\r
+\bibindent=16pt\r
+\newcommand\refname{REFERENCES}\r
+\def\thebibliography#1{%\r
+    \footnotesize\r
+    \refsection*{{\refname}\r
+        \@mkboth{\uppercase{\refname}}{\uppercase{\refname}}%\r
+    }\r
+    \list{}{\r
+        \settowidth\labelwidth{}\r
+        \leftmargin0pt\r
+        \advance\leftmargin\bibindent\r
+        \itemindent -\bibindent\r
+        \itemsep2pt\r
+        \parsep \z@\r
+        \usecounter{enumi}%\r
+    }%\r
+    \let\newblock\@empty\r
+    \sloppy\r
+    \sfcode`\.=1000\relax\r
+}\r
+\let\endthebibliography=\endlist\r
+\r
+% Blackboard font \r
+\DeclareFontFamily{OT1}{ams}{}\r
+\DeclareFontShape{OT1}{ams}{m}{n}{ <-> msam10 }{}\r
+\DeclareFontShape{OT1}{ams}{m}{it}{ <-> msam10 }{}\r
+\DeclareFontShape{OT1}{ams}{bx}{n}{ <-> msbm10 }{}\r
+\DeclareFontShape{OT1}{ams}{bx}{it}{ <-> msbm10 }{}\r
+\r
+\def\bb#1{\mathchoice\r
+        {\mbox{\fontfamily{ams}\fontsize{\tf@size}{\tf@size}\selectfont\bf#1}}%\r
+        {\mbox{\fontfamily{ams}\fontsize{\tf@size}{\tf@size}\selectfont\bf#1}}%\r
+        {\mbox{\fontfamily{ams}\fontsize{\sf@size}{\sf@size}\selectfont\bf#1}}%\r
+        {\mbox{\fontfamily{ams}\fontsize{\ssf@size}{\ssf@size}\selectfont\bf#1}}}\r
+\r
+\DeclareMathAlphabet{\mathbb}{OT1}{ams}{bx}{n}\r
+\SetMathAlphabet\mathbb{normal}{OT1}{ams}{bx}{n}\r
+\SetMathAlphabet\mathbb{bold}{OT1}{ams}{bx}{n}\r
+\def\bb{\mathbb}\r
+\r
+\def\text#1{\ifmmode\r
+        \mathchoice\r
+       {\hbox{\fontsize{\tf@size}{\tf@size}\selectfont#1}}%\r
+       {\hbox{\fontsize{\tf@size}{\tf@size}\selectfont#1}}%\r
+       {\hbox{\fontsize{\sf@size}{\sf@size}\selectfont#1}}%\r
+       {\hbox{\fontsize{\ssf@size}{\ssf@size}\selectfont#1}}%\r
+       \else\hbox{\rm#1}\fi}\r
+%\r
+% newdef need to take the optional parameters of newtheorem\r
+\def\newdef#1{\@ifnextchar[{\@xnewdef{#1}}{\@ynewdef{#1}}}\r
+\def\@xnewdef#1[#2]#3{\newtheorem{italic@#1}[#2]{{\em #3}}\@newdef{#1}}\r
+\def\@ynewdef#1#2{\@ifnextchar[{\@xynewdef{#1}{#2}}{\@yynewdef{#1}{#2}}}\r
+\def\@xynewdef#1#2[#3]{\newtheorem{italic@#1}{{\em #2}}[#3]\@newdef{#1}}\r
+\def\@yynewdef#1#2{\newtheorem{italic@#1}{{\em #2}}\@newdef{#1}}\r
+% \r
+\def\@newdef#1{\newenvironment{#1}{\@ifnextchar[{\@xstartdef{#1}}{\@ystartdef{#1}}}{\end{italic@#1}}}\r
+%\r
+\def\@xstartdef#1[#2]{\begin{italic@#1}[{\em #2}]\rm}\r
+\def\@ystartdef#1{\begin{italic@#1}\rm}\r
+%\r
+\newdef{remark}[theorem]{Remark}\r
+\r
+% Page number Panel\r
+\def\openartnum{\vbox to 1.125in{\vskip.125in\vfill\hbox to 26pt{\textcolor{white}{\fontfamily{\sfdefault}\fontsize{12}{7}\selectfont\bfseries\@acmArticle}\hfill}\vfill}}\r
+\def\closeartnum{\vbox to 1.125in{\vskip-.125in\vfill\hbox to 26pt{\textcolor{white}{\fontfamily{\sfdefault}\fontsize{12}{7}\selectfont\bfseries\@acmArticle}\hfill}\vfill}}\r
+\def\artnum{\vbox to 1in{\vfill\hbox to 26pt{\textcolor{white}{\fontfamily{\sfdefault}\fontsize{12}{7}\selectfont\bfseries\@acmArticle}\hfill}\vfill}}\r
+%\r
+\def\opentab{\hbox{\vrule width45.75pt depth0pt height1.125in\hspace*{-35.5pt}\openartnum}}\r
+\def\normtab{\hbox{\vrule width45.75pt depth0pt height1in\hspace*{-35.5pt}\artnum}}\r
+\def\closetab{\hbox{\vrule width45.75pt depth0pt height1.125in\hspace*{-35.5pt}\closeartnum}}\r
+%\r
+\newcommand\tab{\ifcase\@articleSeq\or\r
+\vbox{\vskip-.125in\opentab}\or \vbox{\vskip1in\normtab}\or \vbox{\vskip2in\normtab}\or \vbox{\vskip3in\normtab}\or \vbox{\vskip4in\normtab}\or \vbox{\vskip5in\normtab}\or \vbox{\vskip6in\normtab}\or \vbox{\vskip7in\normtab}\or \vbox{\vskip8in\normtab}\or \vbox{\vskip9in\closetab}\or\r
+\vbox{\vskip-.125in\opentab}\or \vbox{\vskip1in\normtab}\or \vbox{\vskip2in\normtab}\or \vbox{\vskip3in\normtab}\or \vbox{\vskip4in\normtab}\or \vbox{\vskip5in\normtab}\or \vbox{\vskip6in\normtab}\or \vbox{\vskip7in\normtab}\or \vbox{\vskip8in\normtab}\or \vbox{\vskip9in\closetab}\or\r
+\vbox{\vskip-.125in\opentab}\or \vbox{\vskip1in\normtab}\or \vbox{\vskip2in\normtab}\or \vbox{\vskip3in\normtab}\or \vbox{\vskip4in\normtab}\or \vbox{\vskip5in\normtab}\or \vbox{\vskip6in\normtab}\or \vbox{\vskip7in\normtab}\or \vbox{\vskip8in\normtab}\or \vbox{\vskip9in\closetab}\fi}\r
+\r
+% Output Routine\r
+\def\@outputpage{%\r
+\begingroup           % the \endgroup is put in by \aftergroup\r
+  \let \protect \noexpand\r
+  \@resetactivechars\r
+  \@parboxrestore\r
+  \shipout \vbox{%\r
+    \set@typeset@protect\r
+    \aftergroup \endgroup\r
+    \aftergroup \set@typeset@protect\r
+                                % correct? or just restore by ending\r
+                                % the group?\r
+  \if@specialpage\r
+    \global\@specialpagefalse\@nameuse{ps@\@specialstyle}%\r
+  \fi\r
+  \if@twoside\r
+    \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot\r
+         \let\@themargin\oddsidemargin\r
+    \else \let\@thehead\@evenhead\r
+       \let\@thefoot\@evenfoot \let\@themargin\evensidemargin\r
+    \fi\r
+  \fi\r
+  \reset@font\r
+  \normalsize\r
+  \normalsfcodes\r
+  \let\label\@gobble\r
+  \let\index\@gobble\r
+  \let\glossary\@gobble\r
+  \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@\r
+    \@begindvi\r
+    \ifelec@app\else\ifnum\c@page=1\vbox to 0pt{\hbox to \trimwidth{\hfill\tab}}\fi\fi\r
+    \vskip \topmargin\r
+    \moveright\@themargin \vbox {%\r
+      \setbox\@tempboxa \vbox to\headheight{%\r
+        \vfil\r
+        \color@hbox\r
+          \normalcolor\r
+          \hb@xt@\textwidth{\@thehead}%\r
+        \color@endbox\r
+        }%                        %% 22 Feb 87\r
+      \dp\@tempboxa \z@\r
+      \box\@tempboxa\r
+      \vskip \headsep\r
+      \box\@outputbox\r
+      \baselineskip \footskip\r
+      \color@hbox\r
+        \normalcolor\r
+        \hb@xt@\textwidth{\@thefoot}%\r
+      \color@endbox\r
+      }%\r
+    }%\r
+  \global \@colht \textheight\r
+  \stepcounter{page}%\r
+  \let\firstmark\botmark\r
+}\r
+%\r
+\ps@headings\r
+\pagenumbering{arabic}\r
+\onecolumn\r
+\r
+\frenchspacing\r
+\sloppy\r
+\widowpenalty10000\r
+\clubpenalty10000\r
+\r
+\endinput\r
+\r
+% End of file `acmsmall.cls' Version 1.4\r
+\r
+\r
diff --git a/PeCO/article.aux b/PeCO/article.aux
new file mode 100644 (file)
index 0000000..4b49b9d
--- /dev/null
@@ -0,0 +1,118 @@
+\relax 
+\citation{akyildiz2002wireless,puccinelli2005wireless}
+\citation{yick2008wireless}
+\citation{anastasi2009energy}
+\citation{rault2014energy}
+\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}}
+\newlabel{sec:introduction}{{1}{1}}
+\citation{ChinhVu}
+\citation{xu2001geography}
+\citation{Idrees2}
+\citation{li2013survey}
+\citation{Misra}
+\citation{yang2014novel}
+\citation{HeShibo}
+\citation{kim2013maximum}
+\citation{Deng2012}
+\citation{Huang:2003:CPW:941350.941367}
+\@writefile{toc}{\contentsline {section}{\numberline {2}Related Literature}{2}}
+\newlabel{sec:Literature Review}{{2}{2}}
+\citation{wang2011coverage}
+\citation{ling2009energy}
+\citation{jaggi2006}
+\citation{chin2007}
+\citation{yan2008design}
+\citation{pc10}
+\citation{zhou2009variable}
+\citation{Tian02,yangnovel,ChinhVu,qu2013distributed}
+\citation{cardei2005improving,zorbas2010solving,pujari2011high}
+\citation{berman04,zorbas2010solving}
+\citation{cardei2005energy,5714480,pujari2011high,Yang2014}
+\citation{castano2013column,rossi2012exact,deschinkel2012column}
+\citation{Zhang05}
+\citation{huang2005coverage}
+\@writefile{toc}{\contentsline {section}{\numberline {3} The P{\scshape  e}CO Protocol Description}{4}}
+\newlabel{sec:The PeCO Protocol Description}{{3}{4}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Assumptions and Models}{4}}
+\newlabel{CI}{{3.1}{4}}
+\newlabel{pcm2sensors}{{1}{5}}
+\newlabel{expcm}{{2}{6}}
+\newlabel{my-label}{{I}{6}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}The Main Idea}{6}}
+\newlabel{ex4pcm}{{3}{7}}
+\newlabel{fig2}{{4}{7}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}PeCO Protocol Algorithm}{8}}
+\@writefile{loa}{\contentsline {algocf}{\numberline {1}{\ignorespaces PeCO($s_k$)}}{8}}
+\newlabel{alg:PeCO}{{1}{8}}
+\@writefile{toc}{\contentsline {section}{\numberline {4}Perimeter-based Coverage Problem Formulation}{9}}
+\newlabel{cp}{{4}{9}}
+\citation{0031-9155-44-1-012}
+\citation{Idrees2}
+\@writefile{toc}{\contentsline {section}{\numberline {5}Performance Evaluation and Analysis}{10}}
+\newlabel{sec:Simulation Results and Analysis}{{5}{10}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Simulation Settings}{10}}
+\newlabel{table3}{{II}{10}}
+\citation{varga}
+\citation{AMPL}
+\citation{glpk}
+\citation{ChinhVu}
+\citation{xu2001geography}
+\citation{Idrees2}
+\citation{idrees2014coverage}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Simulation Results}{12}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.1}\bf  Coverage Ratio}{12}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.2}\bf  Active Sensors Ratio}{12}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.3}\bf  Energy Consumption}{12}}
+\newlabel{fig333}{{5}{13}}
+\newlabel{fig444}{{6}{13}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.4}\bf  Network Lifetime}{13}}
+\newlabel{fig3EC}{{7}{14}}
+\@writefile{toc}{\contentsline {section}{\numberline {6}Conclusion and Future Works}{14}}
+\newlabel{sec:Conclusion and Future Works}{{6}{14}}
+\bibstyle{ACM-Reference-Format-Journals}
+\bibdata{biblio}
+\newlabel{fig3LT}{{8}{15}}
+\bibcite{akyildiz2002wireless}{\citeauthoryear {Akyildiz, Su, Sankarasubramaniam, and Cayirci}{Akyildiz et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{2002}}
+\bibcite{anastasi2009energy}{\citeauthoryear {Anastasi, Conti, Di\nobreakspace  {}Francesco, and Passarella}{Anastasi et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{2009}}
+\bibcite{berman04}{\citeauthoryear {Berman and Calinescu}{Berman and Calinescu}{2004}}
+\bibcite{cardei2005improving}{\citeauthoryear {Cardei and Du}{Cardei and Du}{2005}}
+\bibcite{cardei2005energy}{\citeauthoryear {Cardei, Thai, Li, and Wu}{Cardei et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{2005}}
+\bibcite{castano2013column}{\citeauthoryear {Casta{\~n}o, Rossi, Sevaux, and Velasco}{Casta{\~n}o et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{2013}}
+\bibcite{Deng2012}{\citeauthoryear {Deng, Jiguo\nobreakspace  {}Yu, and Chen}{Deng et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{2012}}
+\bibcite{deschinkel2012column}{\citeauthoryear {Deschinkel}{Deschinkel}{2012}}
+\bibcite{AMPL}{\citeauthoryear {Fourer, Gay, and Kernighan}{Fourer et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{2002}}
+\bibcite{HeShibo}{\citeauthoryear {He, Gong, Zhang, Chen, and Sun}{He et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{2014}}
+\bibcite{Huang:2003:CPW:941350.941367}{\citeauthoryear {Huang and Tseng}{Huang and Tseng}{2005a}}
+\bibcite{huang2005coverage}{\citeauthoryear {Huang and Tseng}{Huang and Tseng}{2005b}}
+\bibcite{idrees2014coverage}{\citeauthoryear {Idrees, Deschinkel, Salomon, and Couturier}{Idrees et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{2014a}}
+\newlabel{figLTALL}{{9}{16}}
+\bibcite{Idrees2}{\citeauthoryear {Idrees, Deschinkel, Salomon, and Couturier}{Idrees et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{2014b}}
+\bibcite{jaggi2006}{\citeauthoryear {Jaggi and Abouzeid}{Jaggi and Abouzeid}{2006}}
+\bibcite{kim2013maximum}{\citeauthoryear {Kim and Cobb}{Kim and Cobb}{2013}}
+\bibcite{0031-9155-44-1-012}{\citeauthoryear {Lee, Gallagher, Silvern, Wuu, and Zaider}{Lee et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{1999}}
+\bibcite{li2013survey}{\citeauthoryear {Li and Vasilakos}{Li and Vasilakos}{2013}}
+\bibcite{ling2009energy}{\citeauthoryear {Ling and Znati}{Ling and Znati}{2009}}
+\bibcite{glpk}{\citeauthoryear {Makhorin}{Makhorin}{2012}}
+\bibcite{Misra}{\citeauthoryear {Misra, Kumar, and Obaidat}{Misra et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{2011}}
+\bibcite{pc10}{\citeauthoryear {Padmavathy and Chitra}{Padmavathy and Chitra}{2010}}
+\bibcite{puccinelli2005wireless}{\citeauthoryear {Puccinelli and Haenggi}{Puccinelli and Haenggi}{2005}}
+\bibcite{pujari2011high}{\citeauthoryear {Pujari}{Pujari}{2011}}
+\bibcite{qu2013distributed}{\citeauthoryear {Qu and Georgakopoulos}{Qu and Georgakopoulos}{2013}}
+\bibcite{rault2014energy}{\citeauthoryear {Rault, Bouabdallah, and Challal}{Rault et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{2014}}
+\bibcite{rossi2012exact}{\citeauthoryear {Rossi, Singh, and Sevaux}{Rossi et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{2012}}
+\bibcite{Tian02}{\citeauthoryear {Tian and Georganas}{Tian and Georganas}{2002}}
+\bibcite{varga}{\citeauthoryear {Varga}{Varga}{2003}}
+\bibcite{ChinhVu}{\citeauthoryear {Vu, Gao, Deshmukh, and Li}{Vu et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{2006}}
+\bibcite{chin2007}{\citeauthoryear {Vu}{Vu}{2009}}
+\bibcite{wang2011coverage}{\citeauthoryear {Wang}{Wang}{2011}}
+\bibcite{5714480}{\citeauthoryear {Xing, Li, and Wang}{Xing et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{2010}}
+\bibcite{xu2001geography}{\citeauthoryear {Xu, Heidemann, and Estrin}{Xu et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{2001}}
+\bibcite{yan2008design}{\citeauthoryear {Yan, Gu, He, and Stankovic}{Yan et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{2008}}
+\bibcite{yang2014novel}{\citeauthoryear {Yang and Chin}{Yang and Chin}{2014a}}
+\bibcite{yangnovel}{\citeauthoryear {Yang and Chin}{Yang and Chin}{2014b}}
+\bibcite{Yang2014}{\citeauthoryear {Yang and Liu}{Yang and Liu}{2014}}
+\bibcite{yick2008wireless}{\citeauthoryear {Yick, Mukherjee, and Ghosal}{Yick et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{2008}}
+\bibcite{Zhang05}{\citeauthoryear {Zhang and Hou}{Zhang and Hou}{2005}}
+\bibcite{zhou2009variable}{\citeauthoryear {Zhou, Das, and Gupta}{Zhou et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{2009}}
+\bibcite{zorbas2010solving}{\citeauthoryear {Zorbas, Glynos, Kotzanikolaou, and Douligeris}{Zorbas et\nobreakspace  {}al\unhbox \voidb@x \hbox {.}}{2010}}
+\lastpage{18}
diff --git a/PeCO/article.bbl b/PeCO/article.bbl
new file mode 100644 (file)
index 0000000..03ea63d
--- /dev/null
@@ -0,0 +1,465 @@
+%%% -*-BibTeX-*-
+%%% Do NOT edit. File created by BibTeX with style
+%%% ACM-Reference-Format-Journals [18-Jan-2012].
+
+\begin{thebibliography}{00}
+
+%%% ====================================================================
+%%% NOTE TO THE USER: you can override these defaults by providing
+%%% customized versions of any of these macros before the \bibliography
+%%% command.  Each of them MUST provide its own final punctuation,
+%%% except for \shownote{}, \showDOI{}, and \showURL{}.  The latter two
+%%% do not use final punctuation, in order to avoid confusing it with
+%%% the Web address.
+%%%
+%%% To suppress output of a particular field, define its macro to expand
+%%% to an empty string, or better, \unskip, like this:
+%%%
+%%% \newcommand{\showDOI}[1]{\unskip}   % LaTeX syntax
+%%%
+%%% \def \showDOI #1{\unskip}           % plain TeX syntax
+%%%
+%%% ====================================================================
+
+\ifx \showCODEN    \undefined \def \showCODEN     #1{\unskip}     \fi
+\ifx \showDOI      \undefined \def \showDOI       #1{{\tt DOI:}\penalty0{#1}\ }
+  \fi
+\ifx \showISBNx    \undefined \def \showISBNx     #1{\unskip}     \fi
+\ifx \showISBNxiii \undefined \def \showISBNxiii  #1{\unskip}     \fi
+\ifx \showISSN     \undefined \def \showISSN      #1{\unskip}     \fi
+\ifx \showLCCN     \undefined \def \showLCCN      #1{\unskip}     \fi
+\ifx \shownote     \undefined \def \shownote      #1{#1}          \fi
+\ifx \showarticletitle \undefined \def \showarticletitle #1{#1}   \fi
+\ifx \showURL      \undefined \def \showURL       #1{#1}          \fi
+
+\bibitem[\protect\citeauthoryear{Akyildiz, Su, Sankarasubramaniam, and
+  Cayirci}{Akyildiz et~al\mbox{.}}{2002}]%
+        {akyildiz2002wireless}
+{Ian~F Akyildiz}, {Weilian Su}, {Yogesh Sankarasubramaniam}, {and} {Erdal
+  Cayirci}. 2002.
+\newblock \showarticletitle{Wireless sensor networks: a survey}.
+\newblock {\em Computer networks\/} {38}, 4 (2002), 393--422.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Anastasi, Conti, Di~Francesco, and
+  Passarella}{Anastasi et~al\mbox{.}}{2009}]%
+        {anastasi2009energy}
+{Giuseppe Anastasi}, {Marco Conti}, {Mario Di~Francesco}, {and} {Andrea
+  Passarella}. 2009.
+\newblock \showarticletitle{Energy conservation in wireless sensor networks: A
+  survey}.
+\newblock {\em Ad Hoc Networks\/} {7}, 3 (2009), 537--568.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Berman and Calinescu}{Berman and
+  Calinescu}{2004}]%
+        {berman04}
+{P. Berman} {and} {G. Calinescu}. 2004.
+\newblock \showarticletitle{Power Efficient Monitoring Management in Sensor
+  Networks}. In {\em Proceedings of IEEE Wireless Communication and Networking
+  Conference (WCNC'04)}. 2329--2334.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Cardei and Du}{Cardei and Du}{2005}]%
+        {cardei2005improving}
+{Mihaela Cardei} {and} {Ding-Zhu Du}. 2005.
+\newblock \showarticletitle{Improving wireless sensor network lifetime through
+  power aware organization}.
+\newblock {\em Wireless Networks\/} {11}, 3 (2005), 333--340.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Cardei, Thai, Li, and Wu}{Cardei
+  et~al\mbox{.}}{2005}]%
+        {cardei2005energy}
+{Mihaela Cardei}, {My~T Thai}, {Yingshu Li}, {and} {Weili Wu}. 2005.
+\newblock \showarticletitle{Energy-efficient target coverage in wireless sensor
+  networks}. In {\em INFOCOM 2005. 24th Annual Joint Conference of the IEEE
+  Computer and Communications Societies. Proceedings IEEE}, Vol.~3. IEEE,
+  1976--1984.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Casta{\~n}o, Rossi, Sevaux, and
+  Velasco}{Casta{\~n}o et~al\mbox{.}}{2013}]%
+        {castano2013column}
+{Fabian Casta{\~n}o}, {Andr{\'e} Rossi}, {Marc Sevaux}, {and} {Nubia Velasco}.
+  2013.
+\newblock \showarticletitle{A column generation approach to extend lifetime in
+  wireless sensor networks with coverage and connectivity constraints}.
+\newblock {\em Computers \& Operations Research\/} (2013).
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Deng, Jiguo~Yu, and Chen}{Deng
+  et~al\mbox{.}}{2012}]%
+        {Deng2012}
+{Xiu Deng}, {Dongxiao~Yu Jiguo~Yu}, {and} {Congcong Chen}. 2012.
+\newblock \showarticletitle{Transforming Area Coverage to Target Coverage to
+  Maintain Coverage and Connectivity for Wireless Sensor Networks}.
+\newblock {\em International Journal of Distributed Sensor Networks\/}  {2012}
+  (2012).
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Deschinkel}{Deschinkel}{2012}]%
+        {deschinkel2012column}
+{Karine Deschinkel}. 2012.
+\newblock \showarticletitle{A Column Generation based Heuristic to Extend
+  Lifetime in Wireless Sensor Network.}
+\newblock {\em Sensors \& Transducers Journal\/}  {14-2} (2012), 242--253.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Fourer, Gay, and Kernighan}{Fourer
+  et~al\mbox{.}}{2002}]%
+        {AMPL}
+{Robert Fourer}, {David~M. Gay}, {and} {Brian~W. Kernighan}. November 12, 2002.
+\newblock {\em AMPL: A Modeling Language for Mathematical Programming\/} (2nd
+  ed.).
+\newblock Cengage Learning.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{He, Gong, Zhang, Chen, and Sun}{He
+  et~al\mbox{.}}{2014}]%
+        {HeShibo}
+{Shibo He}, {Xiaowen Gong}, {Junshan Zhang}, {Jiming Chen}, {and} {Youxian
+  Sun}. 2014.
+\newblock \showarticletitle{Curve-Based Deployment for Barrier Coverage in
+  Wireless Sensor Networks}.
+\newblock {\em Wireless Communications, IEEE Transactions on\/} {13}, 2
+  (February 2014), 724--735.
+\newblock
+\showISSN{1536-1276}
+\showDOI{%
+\url{http://dx.doi.org/10.1109/TWC.2013.121813.130198}}
+
+
+\bibitem[\protect\citeauthoryear{Huang and Tseng}{Huang and Tseng}{2005a}]%
+        {Huang:2003:CPW:941350.941367}
+{C.-F. Huang} {and} {Y.-C. Tseng}. 2005a.
+\newblock \showarticletitle{The Coverage Problem in a Wireless Sensor Network}.
+\newblock {\em Mobile Networks and Applications\/} {10}, 4 (2005), 519--528.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Huang and Tseng}{Huang and Tseng}{2005b}]%
+        {huang2005coverage}
+{Chi-Fu Huang} {and} {Yu-Chee Tseng}. 2005b.
+\newblock \showarticletitle{The coverage problem in a wireless sensor network}.
+\newblock {\em Mobile Networks and Applications\/} {10}, 4 (2005), 519--528.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Idrees, Deschinkel, Salomon, and
+  Couturier}{Idrees et~al\mbox{.}}{2014a}]%
+        {idrees2014coverage}
+{Ali~Kadhum Idrees}, {Karine Deschinkel}, {Michel Salomon}, {and} {Rapha{\"e}l
+  Couturier}. 2014a.
+\newblock \showarticletitle{Coverage and Lifetime Optimization in Heterogeneous
+  Energy Wireless Sensor Networks}. In {\em ICN 2014, The Thirteenth
+  International Conference on Networks}. 49--54.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Idrees, Deschinkel, Salomon, and
+  Couturier}{Idrees et~al\mbox{.}}{2014b}]%
+        {Idrees2}
+{Ali~Kadhum Idrees}, {Karine Deschinkel}, {Michel Salomon}, {and} {Rapha{\"e}l
+  Couturier}. 2014b.
+\newblock {\em Distributed Lifetime Coverage Optimization Protocol in Wireless
+  Sensor Networks}.
+\newblock {T}echnical {R}eport DISC2014-X. University of Franche-Comte -
+  FEMTO-ST Institute, DISC Research Department.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Jaggi and Abouzeid}{Jaggi and
+  Abouzeid}{2006}]%
+        {jaggi2006}
+{N. Jaggi} {and} {A.A. Abouzeid}. 2006.
+\newblock \showarticletitle{Energy-efficient Connected Covereage in Wireless
+  Sensor Networks}. In {\em Proceeding of 4th Asian International Mobile
+  Computing Conference AMOC2006}.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Kim and Cobb}{Kim and Cobb}{2013}]%
+        {kim2013maximum}
+{Hyunbum Kim} {and} {Jorge~A Cobb}. 2013.
+\newblock \showarticletitle{Maximum lifetime of reinforced barrier-coverage in
+  Wireless Sensor Networks}. In {\em Networks (ICON), 2013 19th IEEE
+  International Conference on}. IEEE, 1--6.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Lee, Gallagher, Silvern, Wuu, and Zaider}{Lee
+  et~al\mbox{.}}{1999}]%
+        {0031-9155-44-1-012}
+{Eva~K Lee}, {Richard~J Gallagher}, {David Silvern}, {Cheng-Shie Wuu}, {and}
+  {Marco Zaider}. 1999.
+\newblock \showarticletitle{Treatment planning for brachytherapy: an integer
+  programming model, two computational approaches and experiments with
+  permanent prostate implant planning}.
+\newblock {\em Physics in Medicine and Biology\/} {44}, 1 (1999), 145.
+\newblock
+\showURL{%
+\url{http://stacks.iop.org/0031-9155/44/i=1/a=012}}
+
+
+\bibitem[\protect\citeauthoryear{Li and Vasilakos}{Li and Vasilakos}{2013}]%
+        {li2013survey}
+{Mo Li} {and} {Athanasios~V Vasilakos}. 2013.
+\newblock \showarticletitle{A Survey on Topology Control in Wireless Sensor
+  Networks: Taxonomy, Comparative Study, and Open Issues}.
+\newblock {\it Proc. IEEE} {101}, 12 (2013).
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Ling and Znati}{Ling and Znati}{2009}]%
+        {ling2009energy}
+{Hui Ling} {and} {Taieb Znati}. 2009.
+\newblock \showarticletitle{Energy efficient adaptive sensing for dynamic
+  coverage in wireless sensor networks}. In {\em Wireless Communications and
+  Networking Conference, 2009. WCNC 2009. IEEE}. IEEE, 1--6.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Makhorin}{Makhorin}{2012}]%
+        {glpk}
+{Andrew Makhorin}. 2012.
+\newblock \showarticletitle{The GLPK (GNU Linear Programming Kit)}.
+\newblock {\em Available: https://www.gnu.org/software/glpk/\/} (2012).
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Misra, Kumar, and Obaidat}{Misra
+  et~al\mbox{.}}{2011}]%
+        {Misra}
+{S. Misra}, {M.~P. Kumar}, {and} {M.~S. Obaidat}. 2011.
+\newblock \showarticletitle{Connectivity preserving localized coverage
+  algorithm for area monitoring using wireless sensor networks}.
+\newblock {\em Computer Communications\/} {34}, 12 (2011), 1484--1496.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Padmavathy and Chitra}{Padmavathy and
+  Chitra}{2010}]%
+        {pc10}
+{T.V. Padmavathy} {and} {M. Chitra}. 2010.
+\newblock \showarticletitle{Extending the Network Lifetime of Wireless Sensor
+  Networks Using Residual Energy Extraction-Hybrid Scheduling Algorithm}.
+\newblock {\em Int. J. of Communications, Network and System Sciences\/} {3}, 1
+  (2010), 98--106.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Puccinelli and Haenggi}{Puccinelli and
+  Haenggi}{2005}]%
+        {puccinelli2005wireless}
+{Daniele Puccinelli} {and} {Martin Haenggi}. 2005.
+\newblock \showarticletitle{Wireless sensor networks: applications and
+  challenges of ubiquitous sensing}.
+\newblock {\em Circuits and Systems Magazine, IEEE\/} {5}, 3 (2005), 19--31.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Pujari}{Pujari}{2011}]%
+        {pujari2011high}
+{Arun~K Pujari}. 2011.
+\newblock \showarticletitle{High-Energy-First (HEF) Heuristic for
+  Energy-Efficient Target Coverage Problem.}
+\newblock {\em International Journal of Ad Hoc, Sensor \& Ubiquitous
+  Computing\/} {2}, 1 (2011).
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Qu and Georgakopoulos}{Qu and
+  Georgakopoulos}{2013}]%
+        {qu2013distributed}
+{Yipeng Qu} {and} {Stavros~V Georgakopoulos}. 2013.
+\newblock \showarticletitle{A distributed area coverage algorithm for
+  maintenance of randomly distributed sensors with adjustable sensing range}.
+  In {\em Global Communications Conference (GLOBECOM), 2013 IEEE}. IEEE,
+  286--291.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Rault, Bouabdallah, and Challal}{Rault
+  et~al\mbox{.}}{2014}]%
+        {rault2014energy}
+{Tifenn Rault}, {Abdelmadjid Bouabdallah}, {and} {Yacine Challal}. 2014.
+\newblock \showarticletitle{Energy efficiency in wireless sensor networks: A
+  top-down survey}.
+\newblock {\em Computer Networks\/}  {67} (2014), 104--122.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Rossi, Singh, and Sevaux}{Rossi
+  et~al\mbox{.}}{2012}]%
+        {rossi2012exact}
+{Andr{\'e} Rossi}, {Alok Singh}, {and} {Marc Sevaux}. 2012.
+\newblock \showarticletitle{An exact approach for maximizing the lifetime of
+  sensor networks with adjustable sensing ranges}.
+\newblock {\em Computers \& Operations Research\/} {39}, 12 (2012), 3166--3176.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Tian and Georganas}{Tian and
+  Georganas}{2002}]%
+        {Tian02}
+{Di Tian} {and} {Nicolas~D. Georganas}. 2002.
+\newblock \showarticletitle{A coverage-preserving node scheduling scheme for
+  large wireless sensor networks}. In {\em Proceedings of the 1st ACM
+  international workshop on Wireless sensor networks and applications} {\em
+  (WSNA '02)}. ACM, 32--41.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Varga}{Varga}{2003}]%
+        {varga}
+{A. Varga}. 2003.
+\newblock \showarticletitle{OMNeT++ Discrete Event Simulation System}.
+\newblock {\em Available: http://www.omnetpp.org\/} (2003).
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Vu, Gao, Deshmukh, and Li}{Vu
+  et~al\mbox{.}}{2006}]%
+        {ChinhVu}
+{Chinh Vu}, {Shan Gao}, {Wiwek Deshmukh}, {and} {Yingshu Li}. 2006.
+\newblock \showarticletitle{Distributed Energy-Efficient Scheduling Approach
+  for K-Coverage in Wireless Sensor Networks}.
+\newblock {\em MILCOM\/}  {0} (2006), 1--7.
+\newblock
+\showISBNx{1-4244-0617-X}
+\showDOI{%
+\url{http://dx.doi.org/10.1109/MILCOM.2006.302146}}
+
+
+\bibitem[\protect\citeauthoryear{Vu}{Vu}{2009}]%
+        {chin2007}
+{C.~T. Vu}. 2009.
+\newblock {\em Distributed energy-efficient solutions for area coverage
+  problems in wireless sensor networks}.
+\newblock Ph.D. Dissertation. Georgia State University.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Wang}{Wang}{2011}]%
+        {wang2011coverage}
+{Bang Wang}. 2011.
+\newblock \showarticletitle{Coverage problems in sensor networks: A survey}.
+\newblock {\em ACM Computing Surveys (CSUR)\/} {43}, 4 (2011), 32.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Xing, Li, and Wang}{Xing
+  et~al\mbox{.}}{2010}]%
+        {5714480}
+{Xiaofei Xing}, {Jie Li}, {and} {Guojun Wang}. 2010.
+\newblock \showarticletitle{Integer Programming Scheme for Target Coverage in
+  Heterogeneous Wireless Sensor Networks}. In {\em Mobile Ad-hoc and Sensor
+  Networks (MSN), 2010 Sixth International Conference on}. 79--84.
+\newblock
+\showDOI{%
+\url{http://dx.doi.org/10.1109/MSN.2010.18}}
+
+
+\bibitem[\protect\citeauthoryear{Xu, Heidemann, and Estrin}{Xu
+  et~al\mbox{.}}{2001}]%
+        {xu2001geography}
+{Ya Xu}, {John Heidemann}, {and} {Deborah Estrin}. 2001.
+\newblock \showarticletitle{Geography-informed energy conservation for ad hoc
+  routing}. In {\em Proceedings of the 7th annual international conference on
+  Mobile computing and networking}. ACM, 70--84.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Yan, Gu, He, and Stankovic}{Yan
+  et~al\mbox{.}}{2008}]%
+        {yan2008design}
+{Ting Yan}, {Yu Gu}, {Tian He}, {and} {John~A Stankovic}. 2008.
+\newblock \showarticletitle{Design and optimization of distributed sensing
+  coverage in wireless sensor networks}.
+\newblock {\em ACM Transactions on Embedded Computing Systems (TECS)\/} {7}, 3
+  (2008), 33.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Yang and Chin}{Yang and Chin}{2014a}]%
+        {yang2014novel}
+{Changlin Yang} {and} {Kwan-Wu Chin}. 2014a.
+\newblock \showarticletitle{Novel Algorithms for Complete Targets Coverage in
+  Energy Harvesting Wireless Sensor Networks}.
+\newblock {\em Communications Letters, IEEE\/} {18}, 1 (January 2014),
+  118--121.
+\newblock
+\showISSN{1089-7798}
+\showDOI{%
+\url{http://dx.doi.org/10.1109/LCOMM.2013.111513.132436}}
+
+
+\bibitem[\protect\citeauthoryear{Yang and Chin}{Yang and Chin}{2014b}]%
+        {yangnovel}
+{Changlin Yang} {and} {Kwan-Wu Chin}. 2014b.
+\newblock \showarticletitle{A Novel Distributed Algorithm for Complete Targets
+  Coverage in Energy Harvesting Wireless Sensor Networks}. In {\em IEEE ICC
+  2014- Ad-hoc and Sensor Networking Symposium}. IEEE, 361--366.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Yang and Liu}{Yang and Liu}{2014}]%
+        {Yang2014}
+{Mengmeng Yang} {and} {Jie Liu}. 2014.
+\newblock \showarticletitle{A Maximum Lifetime Coverage Algorithm Based on
+  Linear Programming}.
+\newblock {\em Journal of Information Hiding an dMultimedia Signal Processing,
+  Ubiquitous International\/} {5}, 2 (2014), 296--301.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Yick, Mukherjee, and Ghosal}{Yick
+  et~al\mbox{.}}{2008}]%
+        {yick2008wireless}
+{Jennifer Yick}, {Biswanath Mukherjee}, {and} {Dipak Ghosal}. 2008.
+\newblock \showarticletitle{Wireless sensor network survey}.
+\newblock {\em Computer networks\/} {52}, 12 (2008), 2292--2330.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Zhang and Hou}{Zhang and Hou}{2005}]%
+        {Zhang05}
+{H. Zhang} {and} {J.~C. Hou}. 2005.
+\newblock \showarticletitle{Maintaining Sensing Coverage and Connectivity in
+  Large Sensor Networks}.
+\newblock {\em Ad Hoc {\&} Sensor Wireless Networks\/} {1}, 1-2 (2005).
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Zhou, Das, and Gupta}{Zhou
+  et~al\mbox{.}}{2009}]%
+        {zhou2009variable}
+{Zongheng Zhou}, {Samir~R Das}, {and} {Himanshu Gupta}. 2009.
+\newblock \showarticletitle{Variable radii connected sensor cover in sensor
+  networks}.
+\newblock {\em ACM Transactions on Sensor Networks (TOSN)\/} {5}, 1 (2009), 8.
+\newblock
+
+
+\bibitem[\protect\citeauthoryear{Zorbas, Glynos, Kotzanikolaou, and
+  Douligeris}{Zorbas et~al\mbox{.}}{2010}]%
+        {zorbas2010solving}
+{Dimitrios Zorbas}, {Dimitris Glynos}, {Panayiotis Kotzanikolaou}, {and}
+  {Christos Douligeris}. 2010.
+\newblock \showarticletitle{Solving coverage problems in wireless sensor
+  networks using cover sets}.
+\newblock {\em Ad Hoc Networks\/} {8}, 4 (2010), 400--415.
+\newblock
+
+
+\end{thebibliography}
diff --git a/PeCO/article.blg b/PeCO/article.blg
new file mode 100644 (file)
index 0000000..4027c2f
--- /dev/null
@@ -0,0 +1,83 @@
+This is BibTeX, Version 0.99d (TeX Live 2012/Debian)
+Capacity: max_strings=35307, hash_size=35307, hash_prime=30011
+The top-level auxiliary file: article.aux
+The style file: ACM-Reference-Format-Journals.bst
+Reallocated singl_function (elt_size=4) to 100 items from 50.
+Reallocated wiz_functions (elt_size=4) to 6000 items from 3000.
+Database file #1: biblio.bib
+Reallocated singl_function (elt_size=4) to 100 items from 50.
+Warning--empty publisher in berman04
+Warning--empty address in berman04
+Warning--empty publisher in cardei2005energy
+Warning--empty address in cardei2005energy
+Warning--no number and no volume in castano2013column
+Warning--page numbers missing in both pages and numpages fields in castano2013column
+Warning--page numbers missing in both pages and numpages fields in Deng2012
+Warning--empty address in AMPL
+Warning--empty publisher in idrees2014coverage
+Warning--empty address in idrees2014coverage
+Warning--empty publisher in jaggi2006
+Warning--empty address in jaggi2006
+Warning--page numbers missing in both pages and numpages fields in jaggi2006
+Warning--empty publisher in kim2013maximum
+Warning--empty address in kim2013maximum
+Warning--page numbers missing in both pages and numpages fields in li2013survey
+Warning--empty publisher in ling2009energy
+Warning--empty address in ling2009energy
+Warning--no number and no volume in glpk
+Warning--page numbers missing in both pages and numpages fields in glpk
+Warning--page numbers missing in both pages and numpages fields in pujari2011high
+Warning--empty publisher in qu2013distributed
+Warning--empty address in qu2013distributed
+Warning--empty address in Tian02
+Warning--no number and no volume in varga
+Warning--page numbers missing in both pages and numpages fields in varga
+Warning--empty publisher in 5714480
+Warning--empty address in 5714480
+Warning--empty publisher in xu2001geography
+Warning--empty address in xu2001geography
+Warning--empty publisher in yangnovel
+Warning--empty address in yangnovel
+Warning--page numbers missing in both pages and numpages fields in Zhang05
+You've used 42 entries,
+            5290 wiz_defined-function locations,
+            1471 strings with 22135 characters,
+and the built_in function-call counts, 44854 in all, are:
+= -- 6480
+> -- 1684
+< -- 2
++ -- 531
+- -- 665
+* -- 2763
+:= -- 4742
+add.period$ -- 212
+call.type$ -- 42
+change.case$ -- 280
+chr.to.int$ -- 39
+cite$ -- 75
+duplicate$ -- 3498
+empty$ -- 2492
+format.name$ -- 733
+if$ -- 11362
+int.to.chr$ -- 4
+int.to.str$ -- 0
+missing$ -- 169
+newline$ -- 372
+num.names$ -- 333
+pop$ -- 1322
+preamble$ -- 1
+purify$ -- 486
+quote$ -- 0
+skip$ -- 1037
+stack$ -- 0
+substring$ -- 3322
+swap$ -- 365
+text.length$ -- 149
+text.prefix$ -- 0
+top$ -- 0
+type$ -- 582
+warning$ -- 33
+while$ -- 329
+width$ -- 0
+write$ -- 750
+(There were 33 warnings)
diff --git a/PeCO/article.log b/PeCO/article.log
new file mode 100644 (file)
index 0000000..d3b9a5d
--- /dev/null
@@ -0,0 +1,586 @@
+This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012/Debian) (format=pdflatex 2013.9.3)  6 FEB 2015 15:34
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**article.tex
+(./article.tex
+LaTeX2e <2011/06/27>
+Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, lo
+aded.
+(./acmsmall.cls
+Document Class: acmsmall 2012/03/05, fonts included on 28 June 2010
+(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2006/04/12  ver 3.3  Verb mode for urls, etc.
+)
+ACM, Production Font style: 2010/06/28 by Aptara
+
+Using ACM, TOSN option: 2010/05/04 by Aptara
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/latexsym.sty
+Package: latexsym 1998/08/17 v2.2e Standard LaTeX package (lasy symbols)
+\symlasy=\mathgroup4
+LaTeX Font Info:    Overwriting symbol font `lasy' in version `bold'
+(Font)                  U/lasy/m/n --> U/lasy/b/n on input line 47.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
+Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg
+File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
+)
+Package color Info: Driver file: pdftex.def on input line 130.
+
+(/usr/share/texlive/texmf-dist/tex/latex/pdftex-def/pdftex.def
+File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count79
+))
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
+Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
+\KV@toks@=\toks14
+)
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
+Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
+Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg
+File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
+)
+Package graphics Info: Driver file: pdftex.def on input line 91.
+)
+\Gin@req@height=\dimen102
+\Gin@req@width=\dimen103
+)
+Document Class `acmsmall' Electronic Submissions v1.4 <July 09, 2012> (ACM).
+\@firstpg=\count80
+\@lastpg=\count81
+\trimheight=\dimen104
+\trimwidth=\dimen105
+\normaltextheight=\dimen106
+\tempdimen=\dimen107
+\tempbox=\box26
+\tbbox=\box27
+\tabledim=\dimen108
+\symnewlargesymbols=\mathgroup5
+LaTeX Font Info:    Redeclaring math symbol \bigsqcup on input line 2328.
+\normalparindent=\dimen109
+\footheight=\skip41
+\@maxsep=\skip42
+\@dblmaxsep=\skip43
+\@totalpg=\count82
+\@abstract=\box28
+\@permissionbox=\box29
+\c@part=\count83
+\c@section=\count84
+\c@subsection=\count85
+\c@subsubsection=\count86
+\c@paragraph=\count87
+\enumdim=\dimen110
+\c@theorem=\count88
+\belowcaptionskip=\skip44
+\abovecaptionskip=\skip45
+\c@figure=\count89
+\c@table=\count90
+\@narrowfig=\dimen111
+\@nfigbox=\box30
+\@nfcapbox=\box31
+\@nfigbox=\box32
+\@nfcapbox=\box33
+\bibindent=\dimen112
+LaTeX Font Info:    Overwriting math alphabet `\mathbb' in version `normal'
+(Font)                  OT1/ams/bx/n --> OT1/ams/bx/n on input line 3910.
+LaTeX Font Info:    Overwriting math alphabet `\mathbb' in version `bold'
+(Font)                  OT1/ams/bx/n --> OT1/ams/bx/n on input line 3911.
+) (/usr/share/texlive/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty
+Package: algorithm2e 2008/00/00 v3.10 algorithms environments
+\c@AlgoLine=\count91
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty
+Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty
+Package: xspace 2009/10/20 v1.13 Space after command names (DPC,MH)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/relsize/relsize.sty
+Package: relsize 2011/09/21 ver 4.0
+
+Examine \normalsize starts \@setfontsize size may be \@xpt. 
+Examine \small starts \@setfontsize size may be \@ixpt. 
+Examine \footnotesize starts \@setfontsize size may be \@viiipt. 
+Examine \large starts \@setfontsize size may be \@xiipt. 
+Examine \Large starts \@setfontsize size may be \@xivpt. 
+Examine \LARGE starts \@setfontsize size may be \@xviipt. 
+Examine \scriptsize starts \@setfontsize size may be \@viipt. 
+Examine \tiny starts \@setfontsize size may be \@vpt. 
+Examine \huge starts \@setfontsize size may be \@xxpt. 
+Examine \Huge starts \@setfontsize size may be \@xxvpt. )
+********************************************************
+Package `algorithm2e' Release 4.01 -- december 14 2009 --
+- algorithm2e-announce@lirmm.fr mailing list for announcement about releases
+- algorithm2e-discussion@lirmm.fr mailing list for discussion about package
+subscribe by emailing sympa@lirmm.fr with 'subscribe <list> <firstname name>'
+- Author: Christophe Fiorio (fiorio@lirmm.fr)
+********************************************************
+\skiptotal=\skip46
+\skiplinenumber=\skip47
+\skiprule=\skip48
+\skiphlne=\skip49
+\skiptext=\skip50
+\skiplength=\skip51
+\algomargin=\skip52
+\skipalgocfslide=\skip53
+\algowidth=\dimen113
+\inoutsize=\dimen114
+\inoutline=\dimen115
+\interspacetitleruled=\dimen116
+\interspacealgoruled=\dimen117
+\interspacetitleboxruled=\dimen118
+\algocf@inoutbox=\box34
+\algocf@inputbox=\box35
+\AlCapSkip=\skip54
+\AlCapHSkip=\skip55
+\algocf@nlbox=\box36
+\algocf@hangingbox=\box37
+\algocf@capbox=\box38
+\algoheightruledefault=\skip56
+\algoheightrule=\skip57
+\algotitleheightruledefault=\skip58
+\algotitleheightrule=\skip59
+\c@algocfline=\count92
+\c@algocfproc=\count93
+\c@algocf=\count94
+\algocf@algoframe=\box39
+\algocf@algobox=\box40
+) (./article.aux)
+\openout1 = `article.aux'.
+
+LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 33.
+LaTeX Font Info:    ... okay on input line 33.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 33.
+LaTeX Font Info:    ... okay on input line 33.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 33.
+LaTeX Font Info:    ... okay on input line 33.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 33.
+LaTeX Font Info:    ... okay on input line 33.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 33.
+LaTeX Font Info:    ... okay on input line 33.
+LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 33.
+LaTeX Font Info:    ... okay on input line 33.
+LaTeX Font Info:    Try loading font information for OT1+pnc on input line 33.
+ (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1pnc.fd
+File: ot1pnc.fd 2001/06/04 font definitions for OT1/pnc.
+)
+(/usr/share/texlive/texmf-dist/tex/context/base/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count95
+\scratchdimen=\dimen119
+\scratchbox=\box41
+\nofMPsegments=\count96
+\nofMParguments=\count97
+\everyMPshowfont=\toks15
+\MPscratchCnt=\count98
+\MPscratchDim=\dimen120
+\MPnumerator=\count99
+\makeMPintoPDFobject=\count100
+\everyMPtoPDFconversion=\toks16
+) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
+Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO
+)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty
+Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO)
+Package ifpdf Info: pdfTeX in PDF mode is detected.
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty
+Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty
+Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty
+Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO)
+))
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
+Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty
+Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds)             That can mean that you are not using pdfTeX 1.50 or
+(etexcmds)             that some package has redefined \expanded.
+(etexcmds)             In the latter case, load this package earlier.
+)))
+Package grfext Info: Graphics extension search list:
+(grfext)             [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE
+G,.JBIG2,.JB2,.eps]
+(grfext)             \AppendGraphicsExtensions on input line 452.
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
+File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
+e
+))
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <8> on input line 95.
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <6> on input line 95.
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <5> on input line 95.
+LaTeX Font Info:    Try loading font information for U+lasy on input line 95.
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/ulasy.fd
+File: ulasy.fd 1998/08/17 v2.2e LaTeX symbol font definitions
+)
+LaTeX Font Info:    Try loading font information for OMS+pnc on input line 95.
+
+(/usr/share/texlive/texmf-dist/tex/latex/psnfss/omspnc.fd
+File: omspnc.fd 
+)
+LaTeX Font Info:    Font shape `OMS/pnc/m/n' in size <8> not available
+(Font)              Font shape `OMS/cmsy/m/n' tried instead on input line 95.
+LaTeX Font Info:    Try loading font information for OT1+phv on input line 97.
+
+(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1phv.fd
+File: ot1phv.fd 2001/06/04 scalable font definitions for OT1/phv.
+)
+LaTeX Font Info:    Font shape `OT1/phv/bx/n' in size <12> not available
+(Font)              Font shape `OT1/phv/b/n' tried instead on input line 97.
+LaTeX Font Info:    Font shape `OT1/pnc/bx/n' in size <8> not available
+(Font)              Font shape `OT1/pnc/b/n' tried instead on input line 97.
+LaTeX Font Info:    Font shape `OT1/phv/bx/n' in size <9> not available
+(Font)              Font shape `OT1/phv/b/n' tried instead on input line 98.
+
+Underfull \vbox (badness 2799) has occurred while \output is active []
+
+
+Overfull \vbox (72.27pt too high) has occurred while \output is active []
+
+ [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}
+Non-PDF special ignored!
+
+]
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <7> on input line 188.
+ [2]
+Underfull \vbox (badness 10000) has occurred while \output is active []
+
+ [3]
+LaTeX Font Info:    Font shape `OT1/phv/bx/sc' in size <9> not available
+(Font)              Font shape `OT1/phv/b/sc' tried instead on input line 293.
+
+<pcm.jpg, id=22, 417.81094pt x 395.97937pt>
+File: pcm.jpg Graphic file (type jpg)
+ <use pcm.jpg>
+Package pdftex.def Info: pcm.jpg used on input line 346.
+(pdftex.def)             Requested size: 213.39566pt x 202.24892pt.
+
+<twosensors.jpg, id=23, 384.83775pt x 268.00125pt>
+File: twosensors.jpg Graphic file (type jpg)
+ <use twosensors.jpg>
+Package pdftex.def Info: twosensors.jpg used on input line 347.
+(pdftex.def)             Requested size: 213.39566pt x 148.61159pt.
+
+[4] <expcm2.jpg, id=31, 518.53725pt x 260.172pt>
+File: expcm2.jpg Graphic file (type jpg)
+ <use expcm2.jpg>
+Package pdftex.def Info: expcm2.jpg used on input line 392.
+(pdftex.def)             Requested size: 362.77263pt x 182.01988pt.
+
+Underfull \vbox (badness 10000) has occurred while \output is active []
+
+ [5 <./pcm.jpg> <./twosensors.jpg>] <ex4pcm.jpg, id=36, 331.2375pt x 275.22826p
+t>
+File: ex4pcm.jpg Graphic file (type jpg)
+
+<use ex4pcm.jpg>
+Package pdftex.def Info: ex4pcm.jpg used on input line 451.
+(pdftex.def)             Requested size: 177.82971pt x 147.76012pt.
+
+
+LaTeX Warning: `!h' float specifier changed to `!ht'.
+
+[6 <./expcm2.jpg>]
+
+pdfTeX warning: pdflatex (file ./Model.pdf): PDF inclusion: found PDF version <
+1.6>, but at most version <1.5> allowed
+<Model.pdf, id=40, 493.24274pt x 361.35pt>
+File: Model.pdf Graphic file (type pdf)
+ <use Model.pdf>
+Package pdftex.def Info: Model.pdf used on input line 490.
+(pdftex.def)             Requested size: 227.62204pt x 166.75784pt.
+
+Underfull \vbox (badness 10000) has occurred while \output is active []
+
+ [7 <./ex4pcm.jpg> <./Model.pdf>]
+LaTeX Font Info:    Font shape `OT1/pnc/bx/n' in size <9> not available
+(Font)              Font shape `OT1/pnc/b/n' tried instead on input line 564.
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <9> on input line 564.
+LaTeX Font Info:    Font shape `OT1/pnc/bx/n' in size <10> not available
+(Font)              Font shape `OT1/pnc/b/n' tried instead on input line 566.
+ [8]
+Underfull \vbox (badness 10000) has occurred while \output is active []
+
+ [9]
+[10]
+
+LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 775.
+
+
+
+LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 790.
+
+
+
+LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 803.
+
+
+
+LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 810.
+
+
+
+LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 812.
+
+
+
+LaTeX Font Warning: Command \scriptsize invalid in math mode on input line 814.
+
+
+
+Underfull \vbox (badness 1472) has occurred while \output is active []
+
+ [11]
+LaTeX Font Info:    Font shape `OT1/phv/m/it' in size <9> not available
+(Font)              Font shape `OT1/phv/m/sl' tried instead on input line 856.
+Package epstopdf Info: Source file: <R/CR.eps>
+(epstopdf)                    date: 2015-02-06 11:42:02
+(epstopdf)                    size: 29526 bytes
+(epstopdf)             Output file: <R/CR-eps-converted-to.pdf>
+(epstopdf)                    date: 2015-02-06 13:06:24
+(epstopdf)                    size: 12638 bytes
+(epstopdf)             Command: <repstopdf --outfile=R/CR-eps-converted-to.pdf 
+R/CR.eps>
+(epstopdf)             \includegraphics on input line 871.
+Package epstopdf Info: Output file is already uptodate.
+
+<R/CR-eps-converted-to.pdf, id=67, 484.81125pt x 350.30875pt>
+File: R/CR-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R/CR-eps-converted-to.pdf>
+Package pdftex.def Info: R/CR-eps-converted-to.pdf used on input line 871.
+(pdftex.def)             Requested size: 242.40503pt x 175.15395pt.
+
+
+LaTeX Warning: `!h' float specifier changed to `!ht'.
+
+Package epstopdf Info: Source file: <R/ASR.eps>
+(epstopdf)                    date: 2015-02-06 11:42:02
+(epstopdf)                    size: 29515 bytes
+(epstopdf)             Output file: <R/ASR-eps-converted-to.pdf>
+(epstopdf)                    date: 2015-02-06 13:06:24
+(epstopdf)                    size: 12695 bytes
+(epstopdf)             Command: <repstopdf --outfile=R/ASR-eps-converted-to.pdf
+ R/ASR.eps>
+(epstopdf)             \includegraphics on input line 895.
+Package epstopdf Info: Output file is already uptodate.
+<R/ASR-eps-converted-to.pdf, id=68, 484.81125pt x 350.30875pt>
+File: R/ASR-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R/ASR-eps-converted-to.pdf>
+Package pdftex.def Info: R/ASR-eps-converted-to.pdf used on input line 895.
+(pdftex.def)             Requested size: 242.40503pt x 175.15395pt.
+
+
+LaTeX Warning: `!h' float specifier changed to `!ht'.
+
+[12]
+Package epstopdf Info: Source file: <R/EC95.eps>
+(epstopdf)                    date: 2015-02-06 11:42:02
+(epstopdf)                    size: 24136 bytes
+(epstopdf)             Output file: <R/EC95-eps-converted-to.pdf>
+(epstopdf)                    date: 2015-02-06 13:06:24
+(epstopdf)                    size: 8179 bytes
+(epstopdf)             Command: <repstopdf --outfile=R/EC95-eps-converted-to.pd
+f R/EC95.eps>
+(epstopdf)             \includegraphics on input line 918.
+Package epstopdf Info: Output file is already uptodate.
+ <R/EC95-eps-converted-to.pdf, id=73, 493.845pt x 350.30875pt>
+File: R/EC95-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R/EC95-eps-converted-to.pdf>
+Package pdftex.def Info: R/EC95-eps-converted-to.pdf used on input line 918.
+(pdftex.def)             Requested size: 234.5788pt x 166.39838pt.
+Package epstopdf Info: Source file: <R/EC50.eps>
+(epstopdf)                    date: 2015-02-06 11:42:02
+(epstopdf)                    size: 24138 bytes
+(epstopdf)             Output file: <R/EC50-eps-converted-to.pdf>
+(epstopdf)                    date: 2015-02-06 13:06:25
+(epstopdf)                    size: 8180 bytes
+(epstopdf)             Command: <repstopdf --outfile=R/EC50-eps-converted-to.pd
+f R/EC50.eps>
+(epstopdf)             \includegraphics on input line 919.
+Package epstopdf Info: Output file is already uptodate.
+
+<R/EC50-eps-converted-to.pdf, id=74, 493.845pt x 350.30875pt>
+File: R/EC50-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R/EC50-eps-converted-to.pdf>
+Package pdftex.def Info: R/EC50-eps-converted-to.pdf used on input line 919.
+(pdftex.def)             Requested size: 234.5788pt x 166.39838pt.
+
+
+LaTeX Warning: `!h' float specifier changed to `!ht'.
+
+[13 <./R/CR-eps-converted-to.pdf> <./R/ASR-eps-converted-to.pdf>]
+Package epstopdf Info: Source file: <R/LT95.eps>
+(epstopdf)                    date: 2015-02-06 11:42:03
+(epstopdf)                    size: 24103 bytes
+(epstopdf)             Output file: <R/LT95-eps-converted-to.pdf>
+(epstopdf)                    date: 2015-02-06 13:06:25
+(epstopdf)                    size: 8351 bytes
+(epstopdf)             Command: <repstopdf --outfile=R/LT95-eps-converted-to.pd
+f R/LT95.eps>
+(epstopdf)             \includegraphics on input line 950.
+Package epstopdf Info: Output file is already uptodate.
+
+<R/LT95-eps-converted-to.pdf, id=89, 493.845pt x 350.30875pt>
+File: R/LT95-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R/LT95-eps-converted-to.pdf>
+Package pdftex.def Info: R/LT95-eps-converted-to.pdf used on input line 950.
+(pdftex.def)             Requested size: 234.5788pt x 166.39838pt.
+Package epstopdf Info: Source file: <R/LT50.eps>
+(epstopdf)                    date: 2015-02-06 11:42:03
+(epstopdf)                    size: 24855 bytes
+(epstopdf)             Output file: <R/LT50-eps-converted-to.pdf>
+(epstopdf)                    date: 2015-02-06 13:06:25
+(epstopdf)                    size: 8466 bytes
+(epstopdf)             Command: <repstopdf --outfile=R/LT50-eps-converted-to.pd
+f R/LT50.eps>
+(epstopdf)             \includegraphics on input line 951.
+Package epstopdf Info: Output file is already uptodate.
+
+<R/LT50-eps-converted-to.pdf, id=90, 493.845pt x 350.30875pt>
+File: R/LT50-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R/LT50-eps-converted-to.pdf>
+Package pdftex.def Info: R/LT50-eps-converted-to.pdf used on input line 951.
+(pdftex.def)             Requested size: 234.5788pt x 166.39838pt.
+
+
+LaTeX Warning: `!h' float specifier changed to `!ht'.
+
+Package epstopdf Info: Source file: <R/LTa.eps>
+(epstopdf)                    date: 2015-02-06 11:42:03
+(epstopdf)                    size: 27000 bytes
+(epstopdf)             Output file: <R/LTa-eps-converted-to.pdf>
+(epstopdf)                    date: 2015-02-06 13:06:26
+(epstopdf)                    size: 7927 bytes
+(epstopdf)             Command: <repstopdf --outfile=R/LTa-eps-converted-to.pdf
+ R/LTa.eps>
+(epstopdf)             \includegraphics on input line 973.
+Package epstopdf Info: Output file is already uptodate.
+<R/LTa-eps-converted-to.pdf, id=91, 484.81125pt x 350.30875pt>
+File: R/LTa-eps-converted-to.pdf Graphic file (type pdf)
+
+<use R/LTa-eps-converted-to.pdf>
+Package pdftex.def Info: R/LTa-eps-converted-to.pdf used on input line 973.
+(pdftex.def)             Requested size: 242.40503pt x 175.15395pt.
+
+
+LaTeX Warning: `!h' float specifier changed to `!ht'.
+
+
+Underfull \vbox (badness 1210) has occurred while \output is active []
+
+ [14 <./R/EC95-eps-converted-to.pdf> <./R/EC50-eps-converted-to.pdf>] (./articl
+e.bbl
+Underfull \vbox (badness 10000) has occurred while \output is active []
+
+ [15 <./R/LT95-eps-converted-to.pdf> <./R/LT50-eps-converted-to.pdf>]
+Underfull \vbox (badness 10000) has occurred while \output is active []
+
+ [16 <./R/LTa-eps-converted-to.pdf>]
+Underfull \hbox (badness 10000) in paragraph at lines 234--238
+[]\OT1/pnc/m/n/8 Andrew Makhorin. 2012. The GLPK (GNU Lin-ear Pro-gram-ming Kit
+). \OT1/pnc/m/it/8 Avail-able:
+ []
+
+
+Underfull \hbox (badness 5050) in paragraph at lines 334--342
+[]\OT1/pnc/m/n/8 Chinh Vu, Shan Gao, Wi-wek Desh-mukh, and Ying-shu Li. 2006. D
+is-tributed Energy-Efficient
+ []
+
+
+Underfull \hbox (badness 2393) in paragraph at lines 334--342
+\OT1/pnc/m/n/8 Schedul-ing Ap-proach for K-Coverage in Wire-less Sen-sor Net-wo
+rks. \OT1/pnc/m/it/8 MIL-COM \OT1/pnc/m/n/8 0 (2006), 1--7.
+ []
+
+
+Underfull \vbox (badness 10000) has occurred while \output is active []
+
+ [17])
+[18] (./article.aux) ) 
+Here is how much of TeX's memory you used:
+ 3502 strings out of 495059
+ 46996 string characters out of 3182031
+ 133803 words of memory out of 3000000
+ 6613 multiletter control sequences out of 15000+200000
+ 34207 words of font info for 67 fonts, out of 3000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 38i,19n,27p,1446b,483s stack positions out of 5000i,500n,10000p,200000b,50000s
+{/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.en
+c}</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb></us
+r/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/shar
+e/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi5.pfb></usr/share/texli
+ve/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi6.pfb></usr/share/texlive/texm
+f-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb></usr/share/texlive/texmf-dist/
+fonts/type1/public/amsfonts/cm/cmmi8.pfb></usr/share/texlive/texmf-dist/fonts/t
+ype1/public/amsfonts/cm/cmmi9.pfb></usr/share/texlive/texmf-dist/fonts/type1/pu
+blic/amsfonts/cm/cmr10.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/am
+sfonts/cm/cmr6.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/c
+m/cmr7.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr8.p
+fb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr9.pfb></usr
+/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share
+/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy7.pfb></usr/share/texliv
+e/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb></usr/share/texlive/texmf
+-dist/fonts/type1/public/amsfonts/cm/cmsy9.pfb></usr/share/texlive/texmf-dist/f
+onts/type1/public/amsfonts/cm/cmtt8.pfb></usr/share/texlive/texmf-dist/fonts/ty
+pe1/urw/helvetic/uhvb8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/helv
+etic/uhvr8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/helvetic/uhvro8a
+.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/ncntrsbk/uncb8a.pfb></usr/s
+hare/texlive/texmf-dist/fonts/type1/urw/ncntrsbk/uncr8a.pfb></usr/share/texlive
+/texmf-dist/fonts/type1/urw/ncntrsbk/uncri8a.pfb>
+Output written on article.pdf (18 pages, 700418 bytes).
+PDF statistics:
+ 206 PDF objects out of 1000 (max. 8388607)
+ 140 compressed objects within 2 object streams
+ 0 named destinations out of 1000 (max. 500000)
+ 61 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/PeCO/article.pdf b/PeCO/article.pdf
new file mode 100644 (file)
index 0000000..81c9889
Binary files /dev/null and b/PeCO/article.pdf differ
diff --git a/PeCO/article.tex b/PeCO/article.tex
new file mode 100644 (file)
index 0000000..e469801
--- /dev/null
@@ -0,0 +1,1046 @@
+% v2-acmsmall-sample.tex, dated March 6 2012\r
+% This is a sample file for ACM small trim journals\r
+%\r
+% Compilation using 'acmsmall.cls' - version 1.3 (March 2012), Aptara Inc.\r
+% (c) 2010 Association for Computing Machinery (ACM)\r
+%\r
+% Questions/Suggestions/Feedback should be addressed to => "acmtexsupport@aptaracorp.com".\r
+% Users can also go through the FAQs available on the journal's submission webpage.\r
+%\r
+% Steps to compile: latex, bibtex, latex latex\r
+%\r
+% For tracking purposes => this is v1.3 - March 2012\r
+\r
+\documentclass[prodmode,acmtosn]{acmsmall} % Aptara syntax\r
+\r
+% Package to generate and customize Algorithm as per ACM style\r
+\usepackage[ruled]{algorithm2e}\r
+\renewcommand{\algorithmcfname}{ALGORITHM}\r
+\SetAlFnt{\small}\r
+\SetAlCapFnt{\small}\r
+\SetAlCapNameFnt{\small}\r
+\SetAlCapHSkip{0pt}\r
+\IncMargin{-\parindent}\r
+\r
+% Metadata Information\r
+\acmVolume{1}\r
+\acmNumber{1}\r
+\acmArticle{1}\r
+\acmYear{2015}\r
+\acmMonth{2}\r
+\r
+% Document starts\r
+\begin{document}\r
+\r
+% Page heads\r
+\markboth{A.K. Idrees et al.}{Perimeter-based Coverage Optimization to Improve Lifetime in Wireless Sensor Networks}\r
+\r
+% Title portion\r
+\title{Perimeter-based Coverage Optimization to Improve Lifetime in Wireless Sensor Networks}\r
+\author{ALI KADHUM IDREES, KARINE DESCHINKEL, MICHEL SALOMON, RAPHAEL COUTURIER\r
+\affil{FEMTO-ST Institute,  University of Franche-Comte}}\r
+\r
+% NOTE! Affiliations placed here should be for the institution where the\r
+%       BULK of the research was done. If the author has gone to a new\r
+%       institution, before publication, the (above) affiliation should NOT be changed.\r
+%       The authors 'current' address may be given in the "Author's addresses:" block (below).\r
+%       So for example, Mr. Abdelzaher, the bulk of the research was done at UIUC, and he is\r
+%       currently affiliated with NASA.\r
+\r
+\begin{abstract}\r
+The most important problem in a Wireless Sensor Network (WSN) is to optimize the\r
+use of its limited energy provision, so that it can fulfill its monitoring task\r
+as long as  possible. Among  known  available approaches  that can  be used  to\r
+improve  power  management,  lifetime coverage  optimization  provides  activity\r
+scheduling which ensures sensing coverage while minimizing the energy cost. In\r
+this paper,  we propose such an approach called Perimeter-based Coverage Optimization\r
+protocol (PeCO). It is a  hybrid of centralized and distributed methods: the\r
+region of interest is first subdivided into subregions and our protocol is then\r
+distributed among sensor nodes in each  subregion.\r
+The novelty of our approach lies essentially in the formulation of a new\r
+mathematical optimization  model based on the  perimeter coverage level  to schedule\r
+sensors' activities.  Extensive simulation experiments have been performed using\r
+OMNeT++, the  discrete event simulator, to  demonstrate that PeCO  can\r
+offer longer lifetime coverage for WSNs in comparison with some other protocols.\r
+\end{abstract}\r
+\r
+\category{C.2.3}{Computer-Communication Networks}{Network Operations}\r
+\r
+\terms{Algorithms, Simulation}\r
+\r
+\keywords{Wireless Sensor Networks, Area Coverage, Network Lifetime, Optimization, Scheduling.}\r
+\r
+\acmformat{Ali Kadhum Idrees, Karine Deschinkel, Michel Salomon, Rapha\"el Couturier. Perimeter-based Coverage Optimization to Improve Lifetime in Wireless Sensor Networks.}\r
+% At a minimum you need to supply the author names, year and a title.\r
+% IMPORTANT:\r
+% Full first names whenever they are known, surname last, followed by a period.\r
+% In the case of two authors, 'and' is placed between them.\r
+% In the case of three or more authors, the serial comma is used, that is, all author names\r
+% except the last one but including the penultimate author's name are followed by a comma,\r
+% and then 'and' is placed before the final author's name.\r
+% If only first and middle initials are known, then each initial\r
+% is followed by a period and they are separated by a space.\r
+% The remaining information (journal title, volume, article number, date, etc.) is 'auto-generated'.\r
+\r
+\begin{bottomstuff}\r
+%This work is supported by the National Science Foundation, under\r
+%grant CNS-0435060, grant CCR-0325197 and grant EN-CS-0329609.\r
+\r
+%Author's addresses: G. Zhou, Computer Science Department,\r
+%College of William and Mary; Y. Wu  {and} J. A. Stankovic,\r
+%Computer Science Department, University of Virginia; T. Yan,\r
+%Eaton Innovation Center; T. He, Computer Science Department,\r
+%University of Minnesota; C. Huang, Google; T. F. Abdelzaher,\r
+%(Current address) NASA Ames Research Center, Moffett Field, California 94035.\r
+\end{bottomstuff}\r
+\r
+\maketitle\r
+\section{Introduction}\r
+\label{sec:introduction}\r
+\r
+\noindent The continuous progress in Micro Electro-Mechanical Systems (MEMS) and\r
+wireless communication hardware  has given rise to the opportunity  to use large\r
+networks    of     tiny    sensors,    called    Wireless     Sensor    Networks\r
+(WSN)~\cite{akyildiz2002wireless,puccinelli2005wireless}, to  fulfill monitoring\r
+tasks.   A  WSN  consists  of  small low-powered  sensors  working  together  by\r
+communicating with one another through multi-hop radio communications. Each node\r
+can send the data  it collects in its environment, thanks to  its sensor, to the\r
+user by means of  sink nodes. The features of a WSN made  it suitable for a wide\r
+range of application  in areas such as business,  environment, health, industry,\r
+military, and so on~\cite{yick2008wireless}.   Typically, a sensor node contains\r
+three main components~\cite{anastasi2009energy}: a  sensing unit able to measure\r
+physical,  chemical, or  biological  phenomena observed  in  the environment;  a\r
+processing unit which will process and store the collected measurements; a radio\r
+communication unit for data transmission and receiving.\r
+\r
+The energy needed  by an active sensor node to  perform sensing, processing, and\r
+communication is supplied by a power supply which is a battery. This battery has\r
+a limited energy provision and it may  be unsuitable or impossible to replace or\r
+recharge it in  most applications. Therefore it is necessary  to deploy WSN with\r
+high density in order to increase  reliability and to exploit node redundancy\r
+thanks to energy-efficient activity  scheduling approaches.  Indeed, the overlap\r
+of sensing  areas can be exploited  to schedule alternatively some  sensors in a\r
+low power sleep mode and thus save  energy. Overall, the main question that must\r
+be answered is: how to extend the lifetime coverage of a WSN as long as possible\r
+while  ensuring   a  high  level  of   coverage?   These past few years  many\r
+energy-efficient mechanisms have been suggested  to retain energy and extend the\r
+lifetime of the WSNs~\cite{rault2014energy}.\r
+\r
+This paper makes the following contributions.\r
+\begin{enumerate}\r
+\item We have devised a framework to schedule nodes to be activated alternatively such\r
+  that the network lifetime is prolonged  while ensuring that a certain level of\r
+  coverage is preserved.  A key idea in  our framework is to exploit spatial and\r
+  temporal subdivision.   On the one hand,  the area of interest  is divided into\r
+  several smaller subregions and, on the other hand, the time line is divided into\r
+  periods of equal length. In each subregion the sensor nodes will cooperatively\r
+  choose a  leader which will schedule  nodes' activities, and this  grouping of\r
+  sensors is similar to typical cluster architecture.\r
+\item We have proposed a new mathematical  optimization model.  Instead of  trying to\r
+  cover a set of specified points/targets as  in most of the methods proposed in\r
+  the literature, we formulate an integer program based on perimeter coverage of\r
+  each sensor.  The  model involves integer variables to  capture the deviations\r
+  between  the actual  level of  coverage and  the required  level.  Hence, an\r
+  optimal scheduling  will be  obtained by  minimizing a  weighted sum  of these\r
+  deviations.\r
+\item We have conducted extensive simulation  experiments, using the  discrete event\r
+  simulator OMNeT++, to demonstrate the  efficiency of our protocol. We have compared\r
+  our   PeCO   protocol   to   two   approaches   found   in   the   literature:\r
+  DESK~\cite{ChinhVu} and  GAF~\cite{xu2001geography}, and also to  our previous\r
+  work published in~\cite{Idrees2} which is  based on another optimization model\r
+  for sensor scheduling.\r
+\end{enumerate}\r
+\r
+\r
+\r
+\r
+\r
+\r
+The rest  of the paper is  organized as follows.  In the next section  we review\r
+some related work in the  field. Section~\ref{sec:The PeCO Protocol Description}\r
+is devoted to the PeCO protocol  description and Section~\ref{cp} focuses on the\r
+coverage model  formulation which is used  to schedule the activation  of sensor\r
+nodes.  Section~\ref{sec:Simulation  Results and Analysis}  presents simulations\r
+results and discusses the comparison  with other approaches. Finally, concluding\r
+remarks   are  drawn   and  some   suggestions are  given  for   future  works   in\r
+Section~\ref{sec:Conclusion and Future Works}.\r
+\r
+% that show that our protocol outperforms others protocols.\r
+\section{Related Literature}\r
+\label{sec:Literature Review}\r
+\r
+\noindent  In  this section,  we  summarize  some  related works  regarding  the\r
+coverage problem and  distinguish our PeCO protocol from the  works presented in\r
+the literature.\r
+\r
+The most  discussed coverage problems in  literature can be classified  in three\r
+categories~\cite{li2013survey}   according   to  their   respective   monitoring\r
+objective.  Hence,  area coverage \cite{Misra}  means that every point  inside a\r
+fixed area  must be monitored, while  target coverage~\cite{yang2014novel} refers\r
+to  the objective  of coverage  for a  finite number  of discrete  points called\r
+targets,  and  barrier coverage~\cite{HeShibo}\cite{kim2013maximum}  focuses  on\r
+preventing  intruders   from  entering   into  the   region  of   interest.   In\r
+\cite{Deng2012}  authors  transform the  area  coverage  problem into  the  target\r
+coverage one taking into account the  intersection points among disks of sensors\r
+nodes    or   between    disk   of    sensor   nodes    and   boundaries.     In\r
+\cite{Huang:2003:CPW:941350.941367}  authors prove  that  if  the perimeters  of\r
+sensors are sufficiently  covered it will be  the case for the  whole area. They\r
+provide an algorithm in $O(nd~log~d)$  time to compute the perimeter-coverage of\r
+each  sensor,  where  $d$  denotes  the  maximum  number  of  sensors  that  are\r
+neighbors  to  a  sensor and  $n$  is  the  total  number of  sensors  in  the\r
+network. {\it In PeCO protocol, instead  of determining the level of coverage of\r
+  a set  of discrete  points, our  optimization model is  based on  checking the\r
+  perimeter-coverage of each sensor to activate a minimal number of sensors.}\r
+\r
+The major  approach to extend network  lifetime while preserving coverage  is to\r
+divide/organize the  sensors into a suitable  number of set covers  (disjoint or\r
+non-disjoint)\cite{wang2011coverage}, where  each set completely  covers a  region of interest,  and to\r
+activate these set  covers successively. The network activity can  be planned in\r
+advance and scheduled  for the entire network lifetime or  organized in periods,\r
+and the set  of active sensor nodes  is decided at the beginning  of each period\r
+\cite{ling2009energy}.  Active node selection is determined based on the problem\r
+requirements (e.g.   area monitoring,  connectivity, or power  efficiency).  For\r
+instance, Jaggi {\em et al.}~\cite{jaggi2006}  address the problem of maximizing\r
+the lifetime  by dividing sensors  into the  maximum number of  disjoint subsets\r
+such  that each  subset  can ensure  both coverage  and  connectivity. A  greedy\r
+algorithm  is applied  once to  solve  this problem  and the  computed sets  are\r
+activated  in   succession  to  achieve   the  desired  network   lifetime.   Vu\r
+\cite{chin2007},  \cite{yan2008design}, Padmatvathy  {\em   et  al.}~\cite{pc10},  propose  algorithms\r
+working in a periodic fashion where a  cover set is computed at the beginning of\r
+each period.   {\it Motivated by  these works,  PeCO protocol works  in periods,\r
+  where each  period contains a  preliminary phase for information  exchange and\r
+  decisions, followed by a sensing phase where one cover set is in charge of the\r
+  sensing task.}\r
+\r
+Various centralized  and distributed approaches, or  even a mixing  of these two\r
+concepts, have  been proposed  to extend the  network lifetime \cite{zhou2009variable}.   In distributed algorithms~\cite{Tian02,yangnovel,ChinhVu,qu2013distributed} each sensor decides of its\r
+own activity scheduling  after an information exchange with  its neighbors.  The\r
+main interest of such an approach is to avoid long range communications and thus\r
+to reduce the energy dedicated to the communications.  Unfortunately, since each\r
+node has only information on  its immediate neighbors (usually the one-hop ones)\r
+it may make a bad decision leading to a global suboptimal solution.  Conversely,\r
+centralized\r
+algorithms~\cite{cardei2005improving,zorbas2010solving,pujari2011high}     always\r
+provide nearly  or close to  optimal solution since  the algorithm has  a global\r
+view of the whole network. The disadvantage of a centralized method is obviously\r
+its high  cost in communications needed to  transmit to a single  node, the base\r
+station which will globally schedule  nodes' activities, data from all the other\r
+sensor nodes  in the area.  The price  in communications can be  huge since\r
+long range  communications will be  needed. In fact  the larger the WNS  is, the\r
+higher the  communication and  thus the energy  cost are.   {\it In order  to be\r
+  suitable for large-scale  networks, in the PeCO protocol,  the area of interest\r
+  is divided into several smaller subregions, and in each one, a node called the\r
+  leader  is  in  charge  of  selecting  the active  sensors  for  the  current\r
+  period.  Thus our  protocol is  scalable  and is a  globally distributed  method,\r
+  whereas it is centralized in each subregion.}\r
+\r
+Various  coverage scheduling  algorithms have  been developed  these past few years.\r
+Many of  them, dealing with  the maximization of the  number of cover  sets, are\r
+heuristics.   These  heuristics involve  the  construction  of  a cover  set  by\r
+including in priority the sensor nodes  which cover critical targets, that is to\r
+say   targets   that  are   covered   by   the   smallest  number   of   sensors\r
+\cite{berman04,zorbas2010solving}.  Other  approaches are based  on mathematical\r
+programming formulations~\cite{cardei2005energy,5714480,pujari2011high,Yang2014}\r
+and dedicated techniques (solving with a branch-and-bound algorithm available in\r
+optimization  solver).  The  problem is  formulated as  an optimization  problem\r
+(maximization of the lifetime or number of cover sets) under target coverage and\r
+energy  constraints.   Column  generation   techniques,  well-known  and  widely\r
+practiced techniques for  solving linear programs with too  many variables, have\r
+also                                                                        been\r
+used~\cite{castano2013column,rossi2012exact,deschinkel2012column}. {\it  In the PeCO\r
+  protocol, each  leader, in charge  of a  subregion, solves an  integer program\r
+  which has a twofold objective: minimize the overcoverage and the undercoverage\r
+  of the perimeter of each sensor.}\r
+\r
+%\noindent Recently, the coverage problem has been received a high attention, which concentrates on how the physical space could be well monitored  after the deployment. Coverage is one of the Quality of Service (QoS) parameters in WSNs, which is highly concerned with power depletion~\cite{zhu2012survey}. Most of the works about the coverage protocols have been suggested in the literature focused on three types of the coverage in WSNs~\cite{mulligan2010coverage}: the first, area coverage means that each point in the area of interest within the sensing range of at least one sensor node; the second, target coverage in which a fixed set of targets need to be monitored; the third, barrier coverage refers to detect the intruders crossing a boundary of WSN. The work in this paper emphasized on the area coverage, so,  some area coverage protocols have been reviewed in this section, and the shortcomings of reviewed approaches are being summarized.\r
+\r
+%The problem of k-coverage in WSNs was addressed~\cite{ammari2012centralized}. It mathematically formulated and the spacial sensor density for full k-coverage determined, where the relation between the communication range and the sensing range constructed by this work to retain the k-coverage and connectivity in WSN. After that, a four configuration protocols have proposed for treating the k-coverage in WSNs.  \r
+\r
+%In~\cite{rebai2014branch}, the problem of full grid coverage is formulated using two integer linear programming models: the first, a model that takes into account only the overall coverage constraint; the second, both the connectivity and the full grid coverage constraints have taken into consideration. This work did not take into account the energy constraint.\r
+\r
+%Li et al.~\cite{li2011transforming} presented a framework to convert any complete coverage problem to a partial coverage one with any coverage ratio by means of executing a complete coverage algorithm to find a full coverage sets with virtual radii and transforming the coverage sets to a partial coverage sets by adjusting sensing radii.  The properties of the original algorithms can be maintained by this framework and the transformation process has a low execution time.\r
+\r
+%The authors in~\cite{liu2014generalized} explained that in some applications of WSNs such as structural health monitoring (SHM) and volcano monitoring, the traditional coverage model which is a geographic area defined for individual sensors is not always valid. For this reason, they define a generalized coverage model, which is not need to have the coverage area of individual nodes, but only based on a function to determine whether a set of\r
+%sensor nodes is capable of satisfy the requested monitoring task for a certain area. They have proposed two approaches to divide the deployed nodes into suitable cover sets, which can be used to prolong the network lifetime. \r
\r
+%The work in~\cite{wang2010preserving} addressed the target area coverage problem by proposing a geometric-based activity scheduling scheme, named GAS, to fully cover the target area in WSNs. The authors deals with small area (target area coverage), which can be monitored by a single sensor instead of area coverage, which focuses on a large area that should be monitored by many sensors cooperatively. They explained that GAS is capable to monitor the target area by using a few sensors as possible and it can produce as many cover sets as possible.\r
+\r
+%Cho et al.~\cite{cho2007distributed} proposed a distributed node scheduling protocol, which can retain sensing coverage needed by applications\r
+%and increase network lifetime via putting in sleep mode some redundant nodes. In this work, the effective sensing area (ESA) concept of a sensor node is used, which refers to the sensing area that is not overlapping with another sensor's sensing area. A sensor node and by compute it's ESA can be determine whether it will be active or sleep. The suggested  work permits to sensor nodes to be in sleep mode opportunistically whilst fulfill the needed sensing coverage.\r
\r
+%In~\cite{quang2008algorithm}, the authors defined a maximum sensing coverage region problem (MSCR) in WSNs and then proposed an algorithm to solve it. The\r
+%maximum observed area fully covered by a minimum active sensors. In this work, the major property is to getting rid from the redundant sensors  in high-density WSNs and putting them in sleep mode, and choosing a smaller number of active sensors so as to be sure  that the full area is k-covered, and all events appeared in that area can be precisely and timely detected. This algorithm minimized the total energy consumption and increased the lifetime.\r
+\r
+%A novel method to divide the sensors in the WSN, called node coverage grouping (NCG) suggested~\cite{lin2010partitioning}. The sensors in the connectivity group are within sensing range of each other, and the data collected by them in the same group are supposed to be similar. They are proved that dividing n sensors via NCG into connectivity groups is a NP-hard problem. So, a heuristic algorithm of NCG with time complexity of $O(n^3)$ is proposed.\r
+%For some applications, such as monitoring an ecosystem with extremely diversified environment, It might be premature assumption that sensors near to each other sense similar data.\r
+\r
+%In~\cite{zaidi2009minimum}, the problem of minimum cost coverage in which full coverage is performed by using the minimum number of sensors for an arbitrary geometric shape region is addressed.  a geometric solution to the minimum cost coverage problem under a deterministic deployment is proposed. The probabilistic coverage solution which provides a relationship between the probability of coverage and the number of randomly deployed sensors in an arbitrarily-shaped region is suggested. The authors are clarified that with a random deployment about seven times more nodes are required to supply full coverage.\r
+\r
+%A graph theoretical framework for connectivity-based coverage with configurable coverage granularity was proposed~\cite{dong2012distributed}. A new coverage criterion and scheduling approach is proposed based on cycle partition. This method is capable of build a sparse coverage set in distributed way by means of only connectivity information. This work considers only the communication range of the sensor is smaller two times the sensing range of sensor.\r
+\r
+%Liu et al.~\cite{liu2010energy} formulated maximum disjoint sets problem for retaining coverage and connectivity in WSN. Two algorithms are proposed for solving this problem, heuristic algorithm and network flow algorithm. This work did not take into account the sensor node failure, which is an unpredictable event because the two solutions are full centralized algorithms.\r
+\r
+%The work that presented in~\cite{aslanyan2013optimal} solved the coverage and connectivity problem in sensor networks in\r
+%an integrated way. The network lifetime is divided in a fixed number of rounds. A coverage bitmap of sensors of the domain has been generated in each round and based on this bitmap,  it has been decided which sensors\r
+%stay active or turn it to sleep. They checked the connection of the graph via laplacian of adjancy graph of active sensors in each round.  the generation of coverage bitmap by using  Minkowski technique, the network is able to providing the desired ratio of coverage. They have been defined the  connected coverage problem as an optimization problem and a centralized genetic algorithm is used to find the solution.\r
+\r
+%Several algorithms to retain the coverage and maximize the network lifetime were proposed in~\cite{cardei2006energy,wang2011coverage}. \r
+\r
+%\uppercase{\textbf{shortcomings}}. In spite of many energy-efficient protocols for maintaining the coverage and improving the network lifetime in WSNs were proposed, non of them ensure the coverage for the sensing field with optimal minimum number of active sensor nodes, and for a long time as possible. For example, in a full centralized algorithms, an optimal solutions can be given by using optimization approaches, but in the same time, a high energy is consumed for the execution time of the algorithm and the communications among the sensors in the sensing field, so, the  full centralized approaches are not good candidate to use it especially in large WSNs. Whilst, a full distributed algorithms can not give optimal solutions because this algorithms use only local information of the neighboring sensors, but in the same time, the energy consumption during the communications and executing the algorithm is highly lower. Whatever the case, this would result in a shorter lifetime coverage in WSNs.\r
+\r
+%\uppercase{\textbf{Our Protocol}}. In this paper, a Lifetime Coverage Optimization Protocol, called (PeCO) in WSNs is suggested. The sensing field is divided into smaller subregions by means of divide-and-conquer method, and a PeCO protocol is distributed in each sensor in the subregion. The network lifetime in each subregion is divided into periods, each period includes 4 stages: Information Exchange, Leader election, decision based activity scheduling optimization, and sensing. The leaders are elected in an independent, asynchronous, and distributed way in all the subregions of the WSN. After that, energy-efficient activity scheduling mechanism based new optimization model is performed by each leader in the subregions. This optimization model is based on the perimeter coverage model in order to producing the optimal cover set of active sensors, which are taken the responsibility of sensing during the current period. PeCO protocol merges between two energy efficient mechanisms, which are used the main advantages of the centralized and distributed approaches and avoids the most of their disadvantages.\r
+\r
+\section{ The P{\scshape e}CO Protocol Description}\r
+\label{sec:The PeCO Protocol Description}\r
+\r
+\noindent  In  this  section,  we  describe in  details  our Perimeter-based  Coverage\r
+Optimization protocol.  First we present the  assumptions we made and the models\r
+we considered (in particular the perimeter coverage one), second we describe the\r
+background idea of our protocol, and third  we give the outline of the algorithm\r
+executed by each node.\r
+\r
+% It is based on two efficient-energy mechanisms: the first, is partitioning the sensing field into smaller subregions, and one leader is elected for each subregion;  the second, a sensor activity scheduling based new optimization model so as to produce the optimal cover set of active sensors for the sensing stage during the period.  Obviously, these two mechanisms can be contribute in extend the network lifetime coverage efficiently. \r
+%Before proceeding in the presentation of the main ideas of the protocol, we will briefly describe the perimeter coverage model and give some necessary assumptions and definitions.\r
+\r
+\subsection{Assumptions and Models}\r
+\label{CI}\r
+\r
+\noindent A WSN consisting of $J$ stationary sensor nodes randomly and uniformly\r
+distributed in  a bounded sensor field  is considered. The wireless  sensors are\r
+deployed in high density  to ensure initially a high coverage  ratio of the area\r
+of interest.  We  assume that all the  sensor nodes are homogeneous  in terms of\r
+communication,  sensing,  and  processing capabilities  and  heterogeneous  from\r
+the energy provision  point of  view.  The  location information  is available  to a\r
+sensor node either  through hardware such as embedded GPS  or location discovery\r
+algorithms.   We  assume  that  each  sensor  node  can  directly  transmit  its\r
+measurements to  a mobile  sink node.  For  example, a sink  can be  an unmanned\r
+aerial  vehicle  (UAV)  flying  regularly  over  the  sensor  field  to  collect\r
+measurements from sensor nodes. A mobile sink node collects the measurements and\r
+transmits them to the base station.   We consider a Boolean disk coverage model,\r
+which is the most  widely used sensor coverage model in  the literature, and all\r
+sensor nodes  have a constant sensing  range $R_s$.  Thus, all  the space points\r
+within a disk centered at a sensor with  a radius equal to the sensing range are\r
+said to be covered  by this sensor. We also assume  that the communication range\r
+$R_c$ satisfies $R_c  \geq 2 \cdot R_s$. In fact,  Zhang and Zhou~\cite{Zhang05}\r
+proved  that if  the  transmission  range fulfills  the  previous hypothesis,  the\r
+complete coverage of a convex area implies connectivity among active nodes.\r
+\r
+The PeCO protocol  uses the  same perimeter-coverage  model as  Huang and\r
+Tseng in~\cite{huang2005coverage}. It  can be expressed as follows:  a sensor is\r
+said to be perimeter  covered if all the points on its  perimeter are covered by\r
+at least  one sensor  other than  itself.  They  proved that  a network  area is\r
+$k$-covered if and only if each sensor in the network is $k$-perimeter-covered (perimeter covered by at least $k$ sensors).\r
+%According to this model, we named the intersections among the sensor nodes in the sensing field as intersection points. Instead of working with the coverage area, we consider for each sensor a set of intersection points which are determined by using perimeter-coverage model. \r
+Figure~\ref{pcm2sensors}(a)  shows  the coverage  of  sensor  node~$0$. On  this\r
+figure, we can  see that sensor~$0$ has  nine neighbors and we  have reported on\r
+its  perimeter (the  perimeter  of the  disk  covered by  the  sensor) for  each\r
+neighbor  the  two  points  resulting  from the intersection  of  the  two  sensing\r
+areas. These points are denoted for  neighbor~$i$ by $iL$ and $iR$, respectively\r
+for  left and  right from  a neighboing  point of  view.  The  resulting couples  of\r
+intersection points subdivide  the perimeter of sensor~$0$  into portions called\r
+arcs.\r
+\r
+\begin{figure}[ht!]\r
+  \centering\r
+  \begin{tabular}{@{}cr@{}}\r
+    \includegraphics[width=75mm]{pcm.jpg} & \raisebox{3.25cm}{(a)} \\\r
+    \includegraphics[width=75mm]{twosensors.jpg} & \raisebox{2.75cm}{(b)}\r
+  \end{tabular}\r
+  \caption{(a) Perimeter  coverage of sensor node  0 and (b) finding  the arc of\r
+    $u$'s perimeter covered by $v$.}\r
+  \label{pcm2sensors}\r
+\end{figure} \r
+\r
+Figure~\ref{pcm2sensors}(b) describes the geometric information used to find the\r
+locations of the  left and right points of  an arc on the perimeter  of a sensor\r
+node~$u$ covered by a sensor node~$v$. Node~$v$ is supposed to be located on the\r
+west  side of  sensor~$u$,  with  the following  respective  coordinates in  the\r
+sensing area~: $(v_x,v_y)$ and $(u_x,u_y)$. From the previous coordinates we can\r
+compute the euclidean distance between nodes~$u$ and $v$: $Dist(u,v)=\sqrt{\vert\r
+  u_x  - v_x  \vert^2 +  \vert u_y-v_y  \vert^2}$, while  the angle~$\alpha$  is\r
+obtained through  the formula:\r
+ \[\r
+\alpha =  \arccos \left(\frac{Dist(u,v)}{2R_s}\r
+\right).\r
+\] \r
+The arc on the perimeter of~$u$ defined by the angular interval $[\pi\r
+  - \alpha,\pi + \alpha]$ is said to be perimeter-covered by sensor~$v$.\r
+\r
+Every couple of intersection points is placed on the angular interval $[0,2\pi]$\r
+in  a  counterclockwise manner,  leading  to  a  partitioning of  the  interval.\r
+Figure~\ref{pcm2sensors}(a)  illustrates  the arcs  for  the  nine neighbors  of\r
+sensor $0$ and  Figure~\ref{expcm} gives the position of  the corresponding arcs\r
+in  the interval  $[0,2\pi]$. More  precisely, we  can see  that the  points are\r
+ordered according  to the  measures of  the angles  defined by  their respective\r
+positions. The intersection points are  then visited one after another, starting\r
+from the first  intersection point  after  point~zero,  and  the maximum  level  of\r
+coverage is determined  for each interval defined by two  successive points. The\r
+maximum  level of  coverage is  equal to  the number  of overlapping  arcs.  For\r
+example, \r
+between~$5L$  and~$6L$ the maximum  level of  coverage is equal  to $3$\r
+(the value is highlighted in yellow  at the bottom of Figure~\ref{expcm}), which\r
+means that at most 2~neighbors can cover  the perimeter in addition to node $0$. \r
+Table~\ref{my-label} summarizes for each coverage  interval the maximum level of\r
+coverage and  the sensor  nodes covering the  perimeter.  The  example discussed\r
+above is thus given by the sixth line of the table.\r
+\r
+%The points reported on the line segment $[0,2\pi]$ separates it in intervals as shown in figure~\ref{expcm}. For example, for each neighboring sensor of sensor 0, place the points  $\alpha^ 1_L$, $\alpha^ 1_R$, $\alpha^ 2_L$, $\alpha^ 2_R$, $\alpha^ 3_L$, $\alpha^ 3_R$, $\alpha^ 4_L$, $\alpha^ 4_R$, $\alpha^ 5_L$, $\alpha^ 5_R$, $\alpha^ 6_L$, $\alpha^ 6_R$, $\alpha^ 7_L$, $\alpha^ 7_R$, $\alpha^ 8_L$, $\alpha^ 8_R$, $\alpha^ 9_L$, and $\alpha^ 9_R$; on the line segment $[0,2\pi]$, and then sort all these points in an ascending order into a list.  Traverse the line segment $[0,2\pi]$ by visiting each point in the sorted list from left to right and determine the coverage level of each interval of the sensor 0 (see figure \ref{expcm}). For each interval, we sum up the number of parts of segments, and we deduce a level of coverage for each interval. For instance, the interval delimited by the points $5L$ and $6L$ contains three parts of segments. That means that this part of the perimeter of the sensor $0$ may be covered by three sensors, sensor $0$ itself and sensors $2$ and $5$. The level of coverage of this interval may reach $3$ if all previously mentioned sensors are active. Let say that sensors $0$, $2$ and $5$ are involved in the coverage of this interval. Table~\ref{my-label} summarizes the level of coverage for each interval and the sensors involved in for sensor node 0 in figure~\ref{pcm2sensors}(a). \r
+% to determine the level of the perimeter coverage for each left and right point of a segment.\r
+\r
+\begin{figure*}[t!]\r
+\centering\r
+\includegraphics[width=127.5mm]{expcm2.jpg}  \r
+\caption{Maximum coverage levels for perimeter of sensor node $0$.}\r
+\label{expcm}\r
+\end{figure*} \r
+\r
+%For example, consider the sensor node $0$ in figure~\ref{pcmfig}, which has 9 neighbors. Figure~\ref{expcm} shows the perimeter coverage level for all left and right points of a segment that covered by a neighboring sensor nodes. Based on the figure~\ref{expcm}, the set of sensors for each left and right point of the segments illustrated in figure~\ref{ex2pcm} for the sensor node 0.\r
+\r
+\iffalse\r
+\r
+\begin{figure}[ht!]\r
+\centering\r
+\includegraphics[width=90mm]{ex2pcm.jpg}  \r
+\caption{Coverage intervals and contributing sensors for sensor node 0.}\r
+\label{ex2pcm}\r
+\end{figure} \r
+\r
+\fi\r
+\r
+ \begin{table}\r
+ \tbl{Coverage intervals and contributing sensors for sensor node 0 \label{my-label}}\r
+{\begin{tabular}{|c|c|c|c|c|c|c|c|c|}\r
+\hline\r
+\begin{tabular}[c]{@{}c@{}}Left \\ point \\ angle~$\alpha$ \end{tabular} & \begin{tabular}[c]{@{}c@{}}Interval \\ left \\ point\end{tabular} & \begin{tabular}[c]{@{}c@{}}Interval \\ right \\ point\end{tabular} & \begin{tabular}[c]{@{}c@{}}Maximum \\ coverage\\  level\end{tabular} & \multicolumn{5}{c|}{\begin{tabular}[c]{@{}c@{}}Set of sensors\\ involved \\ in coverage interval\end{tabular}} \\ \hline\r
+0.0291    & 1L                                                                        & 2L                                                        & 4                                                                     & 0                     & 1                     & 3                    & 4                    &                      \\ \hline\r
+0.104     & 2L                                                                        & 3R                                                        & 5                                                                     & 0                     & 1                     & 3                    & 4                    & 2                    \\ \hline\r
+0.3168    & 3R                                                                        & 4R                                                        & 4                                                                     & 0                     & 1                     & 4                    & 2                    &                      \\ \hline\r
+0.6752    & 4R                                                                        & 1R                                                        & 3                                                                     & 0                     & 1                     & 2                    &                      &                      \\ \hline\r
+1.8127    & 1R                                                                        & 5L                                                        & 2                                                                     & 0                     & 2                     &                      &                      &                      \\ \hline\r
+1.9228    & 5L                                                                        & 6L                                                        & 3                                                                     & 0                     & 2                     & 5                    &                      &                      \\ \hline\r
+2.3959    & 6L                                                                        & 2R                                                        & 4                                                                     & 0                     & 2                     & 5                    & 6                    &                      \\ \hline\r
+2.4258    & 2R                                                                        & 7L                                                        & 3                                                                     & 0                     & 5                     & 6                    &                      &                      \\ \hline\r
+2.7868    & 7L                                                                        & 8L                                                        & 4                                                                     & 0                     & 5                     & 6                    & 7                    &                      \\ \hline\r
+2.8358    & 8L                                                                        & 5R                                                        & 5                                                                     & 0                     & 5                     & 6                    & 7                    & 8                    \\ \hline\r
+2.9184    & 5R                                                                        & 7R                                                        & 4                                                                     & 0                     & 6                     & 7                    & 8                    &                      \\ \hline\r
+3.3301    & 7R                                                                        & 9R                                                        & 3                                                                     & 0                     & 6                     & 8                    &                      &                      \\ \hline\r
+3.9464    & 9R                                                                        & 6R                                                        & 4                                                                     & 0                     & 6                     & 8                    & 9                    &                      \\ \hline\r
+4.767     & 6R                                                                        & 3L                                                        & 3                                                                     & 0                     & 8                     & 9                    &                      &                      \\ \hline\r
+4.8425    & 3L                                                                        & 8R                                                        & 4                                                                     & 0                     & 3                     & 8                    & 9                    &                      \\ \hline\r
+4.9072    & 8R                                                                        & 4L                                                        & 3                                                                     & 0                     & 3                     & 9                    &                      &                      \\ \hline\r
+5.3804    & 4L                                                                        & 9R                                                        & 4                                                                     & 0                     & 3                     & 4                    & 9                    &                      \\ \hline\r
+5.9157    & 9R                                                                        & 1L                                                        & 3                                                                     & 0                     & 3                     & 4                    &                      &                      \\ \hline\r
+\end{tabular}}\r
+\r
+\r
+\end{table}\r
+\r
+\r
+%The optimization algorithm that used by PeCO protocol based on the perimeter coverage levels of the left and right points of the segments and worked to minimize the number of sensor nodes for each left or right point of the segments within each sensor node. The algorithm minimize the perimeter coverage level of the left and right points of the segments, while, it assures that every perimeter coverage level of the left and right points of the segments greater than or equal to 1.\r
+\r
+In the PeCO  protocol, the scheduling of the sensor  nodes' activities is formulated  with an\r
+integer program  based on  coverage intervals. The  formulation of  the coverage\r
+optimization problem is  detailed in~section~\ref{cp}.  Note that  when a sensor\r
+node  has a  part of  its sensing  range outside  the WSN  sensing field,  as in\r
+Figure~\ref{ex4pcm}, the maximum coverage level for  this arc is set to $\infty$\r
+and  the  corresponding  interval  will  not   be  taken  into  account  by  the\r
+optimization algorithm.\r
\r
+\begin{figure}[h!]\r
+\centering\r
+\includegraphics[width=62.5mm]{ex4pcm.jpg}  \r
+\caption{Sensing range outside the WSN's area of interest.}\r
+\label{ex4pcm}\r
+\end{figure} \r
+%Figure~\ref{ex5pcm} gives an example to compute the perimeter coverage levels for the left and right points of the segments for a sensor node $0$, which has a part of its sensing range exceeding the border of the sensing field of WSN, and it has a six neighbors. In figure~\ref{ex5pcm}, the sensor node $0$ has two segments outside the border of the network sensing field, so the left and right points of the two segments called $-1L$, $-1R$, $-2L$, and $-2R$.\r
+%\begin{figure}[ht!]\r
+%\centering\r
+%\includegraphics[width=75mm]{ex5pcm.jpg}  \r
+%\caption{Coverage intervals and contributing sensors for sensor node 0 having a  part of its sensing range outside the border.}\r
+%\label{ex5pcm}\r
+%\end{figure} \r
+\r
+\subsection{The Main Idea}\r
+\r
+\noindent The  WSN area of  interest is, in a  first step, divided  into regular\r
+homogeneous subregions  using a divide-and-conquer  algorithm. In a  second step\r
+our  protocol  will  be  executed  in   a  distributed  way  in  each  subregion\r
+simultaneously to schedule nodes' activities for one sensing period.\r
+\r
+As  shown in  Figure~\ref{fig2}, node  activity  scheduling is  produced by  our\r
+protocol in a periodic manner. Each period is divided into 4 stages: Information\r
+(INFO)  Exchange,  Leader Election,  Decision  (the  result of  an  optimization\r
+problem),  and  Sensing.   For  each  period there  is  exactly  one  set  cover\r
+responsible for  the sensing task.  Protocols  based on a periodic  scheme, like\r
+PeCO, are more  robust against an unexpected  node failure. On the  one hand, if\r
+a node failure is discovered before  taking the decision, the corresponding sensor\r
+node will  not be considered  by the optimization  algorithm. On  the other\r
+hand, if the sensor failure happens after  the decision, the sensing task of the\r
+network will be temporarily affected: only  during the period of sensing until a\r
+new period starts, since a new set cover will take charge of the sensing task in\r
+the next period. The energy consumption and some other constraints can easily be\r
+taken  into  account since  the  sensors  can  update  and then  exchange  their\r
+information (including their  residual energy) at the beginning  of each period.\r
+However, the pre-sensing  phases (INFO Exchange, Leader  Election, and Decision)\r
+are energy consuming, even for nodes that will not join the set cover to monitor\r
+the area.\r
+\r
+\begin{figure}[t!]\r
+\centering\r
+\includegraphics[width=80mm]{Model.pdf}  \r
+\caption{PeCO protocol.}\r
+\label{fig2}\r
+\end{figure} \r
+\r
+We define two types of packets to be used by PeCO protocol:\r
+%\begin{enumerate}[(a)]\r
+\begin{itemize} \r
+\item INFO  packet: sent  by each  sensor node to  all the  nodes inside  a same\r
+  subregion for information exchange.\r
+\item ActiveSleep packet: sent  by the leader to all the  nodes in its subregion\r
+  to transmit to  them their respective status (stay Active  or go Sleep) during\r
+  sensing phase.\r
+\end{itemize}\r
+%\end{enumerate}\r
+\r
+Five status are possible for a sensor node in the network:\r
+%\begin{enumerate}[(a)] \r
+\begin{itemize} \r
+\item LISTENING: waits for a decision (to be active or not);\r
+\item COMPUTATION: executes the optimization algorithm as leader to\r
+  determine the activities scheduling;\r
+\item ACTIVE: node is sensing;\r
+\item SLEEP: node is turned off;\r
+\item COMMUNICATION: transmits or receives packets.\r
+\end{itemize}\r
+%\end{enumerate}\r
+%Below, we describe each phase in more details.\r
+\r
+\subsection{PeCO Protocol Algorithm}\r
+\r
+\noindent The  pseudocode implementing the  protocol on  a node is  given below.\r
+More  precisely,  Algorithm~\ref{alg:PeCO}  gives  a brief  description  of  the\r
+protocol applied by a sensor node $s_k$ where $k$ is the node index in the WSN.\r
+\r
+\begin{algorithm}[h!]                \r
+ % \KwIn{all the parameters related to information exchange}\r
+%  \KwOut{$winer-node$ (: the id of the winner sensor node, which is the leader of current round)}\r
+  \BlankLine\r
+  %\emph{Initialize the sensor node and determine it's position and subregion} \; \r
+  \r
+  \If{ $RE_k \geq E_{th}$ }{\r
+      \emph{$s_k.status$ = COMMUNICATION}\;\r
+      \emph{Send $INFO()$ packet to other nodes in subregion}\;\r
+      \emph{Wait $INFO()$ packet from other nodes in subregion}\; \r
+      \emph{Update K.CurrentSize}\;\r
+      \emph{LeaderID = Leader election}\;\r
+      \If{$ s_k.ID = LeaderID $}{\r
+         \emph{$s_k.status$ = COMPUTATION}\;\r
+         \r
+      \If{$ s_k.ID $ is Not previously selected as a Leader }{\r
+          \emph{ Execute the perimeter coverage model}\;\r
+         % \emph{ Determine the segment points using perimeter coverage model}\;\r
+      }\r
+      \r
+      \If{$ (s_k.ID $ is the same Previous Leader) And (K.CurrentSize = K.PreviousSize)}{\r
+      \r
+        \emph{ Use the same previous cover set for current sensing stage}\;\r
+      }\r
+      \Else{\r
+            \emph{Update $a^j_{ik}$; prepare data for IP~Algorithm}\;\r
+            \emph{$\left\{\left(X_{1},\dots,X_{l},\dots,X_{K}\right)\right\}$ = Execute Integer Program Algorithm($K$)}\;\r
+            \emph{K.PreviousSize = K.CurrentSize}\;\r
+           }\r
+      \r
+        \emph{$s_k.status$ = COMMUNICATION}\;\r
+        \emph{Send $ActiveSleep()$ to each node $l$ in subregion}\;\r
+        \emph{Update $RE_k $}\;\r
+      }          \r
+      \Else{\r
+        \emph{$s_k.status$ = LISTENING}\;\r
+        \emph{Wait $ActiveSleep()$ packet from the Leader}\;\r
+        \emph{Update $RE_k $}\;\r
+      }  \r
+  }\r
+  \Else { Exclude $s_k$ from entering in the current sensing stage}\r
+\caption{PeCO($s_k$)}\r
+\label{alg:PeCO}\r
+\end{algorithm}\r
+\r
+In this  algorithm, K.CurrentSize and K.PreviousSize  respectively represent the\r
+current number and  the previous number of living nodes in  the subnetwork of the\r
+subregion.  Initially, the sensor node checks its remaining energy $RE_k$, which\r
+must be greater than a threshold $E_{th}$ in order to participate in the current\r
+period.  Each  sensor node  determines its position  and its subregion  using an\r
+embedded  GPS or a  location discovery  algorithm. After  that, all  the sensors\r
+collect position coordinates,  remaining energy, sensor node ID,  and the number\r
+of their  one-hop live  neighbors during the  information exchange.  The sensors\r
+inside a same region cooperate to elect a leader. The selection criteria for the\r
+leader, in order of priority,  are: larger numbers of neighbors, larger remaining\r
+energy, and  then in case  of equality, larger  index.  Once chosen,  the leader\r
+collects information to formulate and  solve the integer program which allows to\r
+construct the set of active sensors in the sensing stage.\r
+\r
+%After the cooperation among the sensor nodes in the same subregion, the leader will be elected in distributed way, where each sensor node and based on it's information decide who is the leader. The selection criteria for the leader in order  of priority  are: larger number of neighbors,  larger remaining  energy, and  then in  case of equality, larger index. Thereafter,  if the sensor node is leader, it will execute the perimeter-coverage model for each sensor in the subregion in order to determine the segment points which would be used in the next stage by the optimization algorithm of the PeCO protocol. Every sensor node is selected as a leader, it is executed the perimeter coverage model only one time during it's life in the network.\r
+\r
+% The leader has the responsibility of applying the integer program algorithm (see section~\ref{cp}), which provides a set of sensors planned to be active in the sensing stage.  As leader, it will send an Active-Sleep packet to each sensor in the same subregion to inform it if it has to be active or not. On the contrary, if the sensor is not the leader, it will wait for the Active-Sleep packet to know its state for the sensing stage.\r
+\r
+\section{Perimeter-based Coverage Problem Formulation}\r
+\label{cp}\r
+\r
+\noindent In this  section, the coverage model is  mathematically formulated. We\r
+start  with a  description of the notations that will  be used  throughout the\r
+section.\\\r
+First, we have the following sets:\r
+\begin{itemize}\r
+\item $S$ represents the set of WSN sensor nodes;\r
+\item $A \subseteq S $ is the subset of alive sensors;\r
+\item  $I_j$  designates  the  set  of  coverage  intervals  (CI)  obtained  for\r
+  sensor~$j$.\r
+\end{itemize}\r
+$I_j$ refers to the set of  coverage intervals which have been defined according\r
+to the  method introduced in  subsection~\ref{CI}. For a coverage  interval $i$,\r
+let $a^j_{ik}$ denotes  the indicator function of whether  sensor~$k$ is involved\r
+in coverage interval~$i$ of sensor~$j$, that is:\r
+\begin{equation}\r
+a^j_{ik} = \left \{ \r
+\begin{array}{lll}\r
+  1 & \mbox{if sensor $k$ is involved in the } \\\r
+       &       \mbox{coverage interval $i$ of sensor $j$}, \\\r
+  0 & \mbox{otherwise.}\\\r
+\end{array} \right.\r
+%\label{eq12} \r
+%\notag\r
+\end{equation}\r
+Note that $a^k_{ik}=1$ by definition of the interval.\r
+%, where the objective is to find the maximum number of non-disjoint sets of sensor nodes such that each set cover can assure the coverage for the whole region so as to extend the network lifetime in WSN. Our model uses the PCL~\cite{huang2005coverage} in order to optimize the lifetime coverage in each subregion.\r
+%We defined some parameters, which are related to our optimization model. In our model,  we  consider binary variables $X_{k}$, which determine the activation of sensor $k$ in the sensing round $k$. .\r
+Second,  we define  several binary  and integer  variables.  Hence,  each binary\r
+variable $X_{k}$  determines the activation of  sensor $k$ in the  sensing phase\r
+($X_k=1$ if  the sensor $k$  is active or 0  otherwise).  $M^j_i$ is  an integer\r
+variable  which  measures  the  undercoverage  for  the  coverage  interval  $i$\r
+corresponding to  sensor~$j$. In  the same  way, the  overcoverage for  the same\r
+coverage interval is given by the variable $V^j_i$.\r
+\r
+If we decide to sustain a level of coverage equal to $l$ all along the perimeter\r
+of sensor  $j$, we have  to ensure  that at least  $l$ sensors involved  in each\r
+coverage  interval $i  \in I_j$  of  sensor $j$  are active.   According to  the\r
+previous notations, the number of active sensors in the coverage interval $i$ of\r
+sensor $j$  is given by  $\sum_{k \in A} a^j_{ik}  X_k$.  To extend  the network\r
+lifetime,  the objective  is to  activate a  minimal number  of sensors  in each\r
+period to  ensure the  desired coverage  level. As the  number of  alive sensors\r
+decreases, it becomes impossible to reach  the desired level of coverage for all\r
+coverage intervals. Therefore we use variables  $M^j_i$ and $V^j_i$ as a measure\r
+of the  deviation between  the desired  number of active  sensors in  a coverage\r
+interval and  the effective  number. And  we try  to minimize  these deviations,\r
+first to  force the  activation of  a minimal  number of  sensors to  ensure the\r
+desired coverage level, and if the desired level cannot be completely satisfied,\r
+to reach a coverage level as close as possible to the desired one.\r
+\r
+%A system of linear constraints is imposed to attempt to keep the coverage level in each coverage interval to within specified PCL. Since it is physically impossible to satisfy all constraints simultaneously, each constraint uses a variable to either record when the coverage level is achieved, or to record the deviation from the desired coverage level. These additional variables are embedded into an objective function to be minimized. \r
+\r
+%\noindent In this paper, let us define some parameters, which are used in our protocol.\r
+%the set of segment points is denoted by $I$, the set of all sensors in the network by $J$, and the set of alive sensors within $J$ by $K$.\r
+\r
+\r
+%\noindent \begin{equation}\r
+%X_{k} = \left \{ \r
+%\begin{array}{l l}\r
+ % 1& \mbox{if sensor $k$  is active,} \\\r
+%  0 &  \mbox{otherwise.}\\\r
+%\end{array} \right.\r
+%\label{eq11} \r
+%\notag\r
+%\end{equation}\r
+\r
+%\noindent $M^j_i (undercoverage): $ integer value $\in  \mathbb{N}$ for segment point $i$ of sensor $j$.\r
+\r
+%\noindent $V^j_i (overcoverage): $ integer value $\in  \mathbb{N}$ for segment point $i$ of sensor $j$.\r
+\r
+Our coverage optimization problem can then be mathematically expressed as follows: \r
+%Objective:\r
+\begin{equation} %\label{eq:ip2r}\r
+\left \{\r
+\begin{array}{ll}\r
+\min \sum_{j \in S} \sum_{i \in I_j} (\alpha^j_i ~ M^j_i + \beta^j_i ~ V^j_i )&\\\r
+\textrm{subject to :}&\\\r
+\sum_{k \in A} ( a^j_{ik} ~ X_{k}) + M^j_i  \geq l \quad \forall i \in I_j, \forall j \in S\\\r
+%\label{c1} \r
+\sum_{k \in A} ( a^j_{ik} ~ X_{k}) - V^j_i  \leq l \quad \forall i \in I_j, \forall j \in S\\\r
+% \label{c2}\r
+% \Theta_{p}\in \mathbb{N}, &\forall p \in P\\\r
+% U_{p} \in \{0,1\}, &\forall p \in P\\\r
+X_{k} \in \{0,1\}, \forall k \in A\r
+\end{array}\r
+\right.\r
+%\notag\r
+\end{equation}\r
+$\alpha^j_i$ and $\beta^j_i$  are nonnegative weights selected  according to the\r
+relative importance of satisfying the associated level of coverage. For example,\r
+weights associated with  coverage intervals of a specified part  of a region may\r
+be  given by a  relatively larger  magnitude than  weights associated  with another\r
+region. This  kind of integer program  is inspired from the  model developed for\r
+brachytherapy treatment planning  for optimizing dose  distribution\r
+\cite{0031-9155-44-1-012}. The integer  program must be solved by  the leader in\r
+each subregion at the beginning of  each sensing phase, whenever the environment\r
+has  changed (new  leader,  death of  some  sensors). Note  that  the number  of\r
+constraints in the model is constant  (constraints of coverage expressed for all\r
+sensors), whereas the number of variables $X_k$ decreases over periods, since we\r
+consider only alive  sensors (sensors with enough energy to  be alive during one\r
+sensing phase) in the model.\r
+\r
+\section{Performance Evaluation and Analysis}  \r
+\label{sec:Simulation Results and Analysis}\r
+%\noindent \subsection{Simulation Framework}\r
+\r
+\subsection{Simulation Settings}\r
+%\label{sub1}\r
+\r
+The WSN  area of interest is  supposed to be divided  into 16~regular subregions\r
+and we use the same energy consumption than in our previous work~\cite{Idrees2}.\r
+Table~\ref{table3} gives the chosen parameters settings.\r
+\r
+\begin{table}[ht]\r
+\tbl{Relevant parameters for network initialization \label{table3}}{\r
+% title of Table\r
+\centering\r
+% used for centering table\r
+\begin{tabular}{c|c}\r
+% centered columns (4 columns)\r
+\hline\r
+Parameter & Value  \\ [0.5ex]\r
+   \r
+\hline\r
+% inserts single horizontal line\r
+Sensing field & $(50 \times 25)~m^2 $   \\\r
+\r
+WSN size &  100, 150, 200, 250, and 300~nodes   \\\r
+%\hline\r
+Initial energy  & in range 500-700~Joules  \\  \r
+%\hline\r
+Sensing period & duration of 60 minutes \\\r
+$E_{th}$ & 36~Joules\\\r
+$R_s$ & 5~m   \\     \r
+%\hline\r
+$\alpha^j_i$ & 0.6   \\\r
+% [1ex] adds vertical space\r
+%\hline\r
+$\beta^j_i$ & 0.4\r
+%inserts single line\r
+\end{tabular}}\r
+\r
+% is used to refer this table in the text\r
+\end{table}\r
+To  obtain  experimental  results  which are  relevant,  simulations  with  five\r
+different node densities going from  100 to 300~nodes were performed considering\r
+each time 25~randomly  generated networks. The nodes are deployed  on a field of\r
+interest of $(50 \times 25)~m^2 $ in such a way that they cover the field with a\r
+high coverage ratio. Each node has an  initial energy level, in Joules, which is\r
+randomly drawn in the interval $[500-700]$.   If its energy provision reaches a\r
+value below  the threshold $E_{th}=36$~Joules,  the minimum energy needed  for a\r
+node  to stay  active during  one period,  it will  no more  participate in  the\r
+coverage task. This value corresponds to the energy needed by the sensing phase,\r
+obtained by multiplying  the energy consumed in active state  (9.72 mW) with the\r
+time in  seconds for one  period (3600 seconds), and  adding the energy  for the\r
+pre-sensing phases.  According  to the interval of initial energy,  a sensor may\r
+be active during at most 20 periods.\r
+\r
+The values  of $\alpha^j_i$ and  $\beta^j_i$ have been  chosen to ensure  a good\r
+network coverage and a longer WSN lifetime.  We have given a higher priority to\r
+the  undercoverage  (by  setting  the  $\alpha^j_i$ with  a  larger  value  than\r
+$\beta^j_i$)  so as  to prevent  the non-coverage  for the  interval~$i$ of  the\r
+sensor~$j$.  On the  other hand,  we have assigned to\r
+$\beta^j_i$ a value which is slightly lower so as to minimize the number of active sensor nodes which contribute\r
+in covering the interval.\r
+\r
+We introduce the following performance metrics to evaluate the efficiency of our\r
+approach.\r
+\r
+%\begin{enumerate}[i)]\r
+\begin{itemize}\r
+\item {\bf Network Lifetime}: the lifetime  is defined as the time elapsed until\r
+  the  coverage  ratio  falls  below a  fixed  threshold.   $Lifetime_{95}$  and\r
+  $Lifetime_{50}$  denote, respectively,  the  amount of  time  during which  is\r
+  guaranteed a  level of coverage  greater than $95\%$  and $50\%$. The  WSN can\r
+  fulfill the expected  monitoring task until all its nodes  have depleted their\r
+  energy or if the network is no  more connected. This last condition is crucial\r
+  because without  network connectivity a  sensor may not be  able to send  to a\r
+  base station an event it has sensed.\r
+\item {\bf  Coverage Ratio (CR)} : it  measures how  well the  WSN is  able to\r
+  observe the area of interest. In our  case, we discretized the sensor field as\r
+  a regular grid, which yields the following equation:\r
+  \r
+%\begin{equation*}\r
+\[\r
+    \scriptsize\r
+    \mbox{CR}(\%) = \frac{\mbox{$n$}}{\mbox{$N$}} \times 100\r
+\]\r
+%  \end{equation*}\r
+\r
+  where $n$  is the  number of covered  grid points by  active sensors  of every\r
+  subregions during  the current sensing phase  and $N$ is total  number of grid\r
+  points in  the sensing  field.  In  our simulations  we have  set a  layout of\r
+  $N~=~51~\times~26~=~1326$~grid points.\r
+\item {\bf Active Sensors Ratio (ASR)}: a  major objective of our protocol is to\r
+  activate  as few nodes as possible,  in order  to minimize  the communication\r
+  overhead and maximize the WSN lifetime. The active sensors ratio is defined as\r
+  follows:\r
+  %\begin{equation*}\r
+\[\r
+    \scriptsize\r
+    \mbox{ASR}(\%) =  \frac{\sum\limits_{r=1}^R \mbox{$|A_r^p|$}}{\mbox{$|S|$}} \times 100\r
+\]\r
+  %\end{equation*}\r
+  where $|A_r^p|$ is  the number of active  sensors in the subregion  $r$ in the\r
+  current sensing period~$p$, $|S|$ is the number of sensors in the network, and\r
+  $R$ is the number of subregions.\r
+\item {\bf Energy Consumption (EC)}: energy consumption can be seen as the total\r
+  energy  consumed by  the  sensors during  $Lifetime_{95}$ or  $Lifetime_{50}$,\r
+  divided by  the number of  periods. The value of  EC is computed  according to\r
+  this formula:\r
+  %\begin{equation*}\r
+\[  \r
+  \scriptsize\r
+    \mbox{EC} = \frac{\sum\limits_{p=1}^{P} \left( E^{\mbox{com}}_p+E^{\mbox{list}}_p+E^{\mbox{comp}}_p  \r
+      + E^{a}_p+E^{s}_p \right)}{P},\r
+\]\r
+ % \end{equation*}\r
+  where $P$ corresponds  to the number of periods. The  total energy consumed by\r
+  the  sensors  comes  through  taking   into  consideration  four  main  energy\r
+  factors. The first one, denoted $E^{\scriptsize \mbox{com}}_p$, represents the\r
+  energy consumption spent  by all the nodes for  wireless communications during\r
+  period $p$.  $E^{\scriptsize \mbox{list}}_p$,  the next factor, corresponds to\r
+  the energy  consumed by the sensors  in LISTENING status before  receiving the\r
+  decision to go active or sleep in period $p$.  $E^{\scriptsize \mbox{comp}}_p$\r
+  refers to  the energy  needed by  all the  leader nodes  to solve  the integer\r
+  program during a period.  Finally, $E^a_{p}$ and $E^s_{p}$ indicate the energy\r
+  consumed by the WSN during the sensing phase (active and sleeping nodes).\r
+\end{itemize}\r
+%\end{enumerate}\r
+\r
+\subsection{Simulation Results}\r
+\r
+In  order  to  assess and  analyze  the  performance  of  our protocol  we  have\r
+implemented PeCO protocol in  OMNeT++~\cite{varga} simulator.  Besides PeCO, two\r
+other  protocols,  described  in  the  next paragraph,  will  be  evaluated  for\r
+comparison purposes.   The simulations were run  on a DELL laptop  with an Intel\r
+Core~i3~2370~M (2.4~GHz)  processor (2  cores) whose MIPS  (Million Instructions\r
+Per Second) rate  is equal to 35330. To  be consistent with the use  of a sensor\r
+node based on  Atmels AVR ATmega103L microcontroller (6~MHz) having  a MIPS rate\r
+equal to 6,  the original execution time  on the laptop is  multiplied by 2944.2\r
+$\left(\frac{35330}{2} \times  \frac{1}{6} \right)$.  The modeling  language for\r
+Mathematical Programming (AMPL)~\cite{AMPL} is  employed to generate the integer\r
+program instance  in a  standard format, which  is then read  and solved  by the\r
+optimization solver  GLPK (GNU  linear Programming Kit  available in  the public\r
+domain) \cite{glpk} through a Branch-and-Bound method.\r
+\r
+As said previously, the PeCO is  compared to three other approaches. The first\r
+one,  called  DESK,  is  a  fully distributed  coverage  algorithm  proposed  by\r
+\cite{ChinhVu}. The second one,  called GAF~\cite{xu2001geography}, consists in\r
+dividing  the monitoring  area into  fixed  squares. Then,  during the  decision\r
+phase, in each square, one sensor is  chosen to remain active during the sensing\r
+phase. The last  one, the DiLCO protocol~\cite{Idrees2}, is  an improved version\r
+of a research work we presented in~\cite{idrees2014coverage}. Let us notice that\r
+PeCO and  DiLCO protocols are  based on the  same framework. In  particular, the\r
+choice for the simulations of a partitioning in 16~subregions was made because\r
+it corresponds to the configuration producing  the best results for DiLCO. The\r
+protocols are distinguished  from one another by the formulation  of the integer\r
+program providing the set of sensors which  have to be activated in each sensing\r
+phase. DiLCO protocol tries to satisfy the coverage of a set of primary points,\r
+whereas the PeCO protocol objective is to reach a desired level of coverage for each\r
+sensor perimeter. In our experimentations, we chose a level of coverage equal to\r
+one ($l=1$).\r
+\r
+\subsubsection{\bf Coverage Ratio}\r
+\r
+Figure~\ref{fig333}  shows the  average coverage  ratio for  200 deployed  nodes\r
+obtained with the  four protocols. DESK, GAF, and DiLCO  provide a slightly better\r
+coverage ratio with respectively 99.99\%,  99.91\%, and 99.02\%, compared to the 98.76\%\r
+produced by  PeCO for the  first periods. This  is due to  the fact that  at the\r
+beginning the DiLCO protocol  puts to  sleep status  more redundant  sensors (which\r
+slightly decreases the coverage ratio), while the three other protocols activate\r
+more sensor  nodes. Later, when the  number of periods is  beyond~70, it clearly\r
+appears that  PeCO provides a better  coverage ratio and keeps  a coverage ratio\r
+greater  than 50\%  for  longer periods  (15  more compared  to  DiLCO, 40  more\r
+compared to DESK). The energy saved by  PeCO in the early periods allows later a\r
+substantial increase of the coverage performance.\r
+\r
+\parskip 0pt    \r
+\begin{figure}[h!]\r
+\centering\r
+ \includegraphics[scale=0.5] {R/CR.eps} \r
+\caption{Coverage ratio for 200 deployed nodes.}\r
+\label{fig333}\r
+\end{figure} \r
+\r
+%When the number of periods increases, coverage ratio produced by DESK and GAF protocols decreases. This is due to dead nodes. However, DiLCO protocol maintains almost a good coverage from the round 31 to the round 63 and it is close to PeCO protocol. The coverage ratio of PeCO protocol is better than other approaches from the period 64.\r
+\r
+%because the optimization algorithm used by PeCO has been optimized the lifetime coverage based on the perimeter coverage model, so it provided acceptable coverage for a larger number of periods and prolonging the network lifetime based on the perimeter of the sensor nodes in each subregion of WSN. Although some nodes are dead, sensor activity scheduling based optimization of PeCO selected another nodes to ensure the coverage of the area of interest. i.e. DiLCO-16 showed a good coverage in the beginning then PeCO, when the number of periods increases, the coverage ratio decreases due to died sensor nodes. Meanwhile, thanks to sensor activity scheduling based new optimization model, which is used by PeCO protocol to ensure a longer lifetime coverage in comparison with other approaches. \r
+\r
+\r
+\subsubsection{\bf Active Sensors Ratio}\r
+\r
+Having the less active sensor nodes in  each period is essential to minimize the\r
+energy consumption  and thus to  maximize the network  lifetime.  Figure~\ref{fig444}\r
+shows the  average active nodes ratio  for 200 deployed nodes.   We observe that\r
+DESK and  GAF have 30.36  \% and  34.96 \% active  nodes for the  first fourteen\r
+rounds and  DiLCO and PeCO  protocols compete perfectly  with only 17.92~\% and\r
+20.16~\% active  nodes during the same  time interval. As the  number of periods\r
+increases, PeCO protocol  has a lower number of active  nodes in comparison with\r
+the three other approaches, while keeping a greater coverage ratio as shown in\r
+Figure \ref{fig333}.\r
+\r
+\begin{figure}[h!]\r
+\centering\r
+\includegraphics[scale=0.5]{R/ASR.eps}  \r
+\caption{Active sensors ratio for 200 deployed nodes.}\r
+\label{fig444}\r
+\end{figure} \r
+\r
+\subsubsection{\bf Energy Consumption}\r
+\r
+We studied the effect of the energy  consumed by the WSN during the communication,\r
+computation, listening, active, and sleep status for different network densities\r
+and  compared  it for  the  four  approaches.  Figures~\ref{fig3EC}(a)  and  (b)\r
+illustrate  the  energy   consumption  for  different  network   sizes  and  for\r
+$Lifetime95$ and  $Lifetime50$. The results show  that our PeCO protocol  is the\r
+most competitive  from the energy  consumption point of  view. As shown  in both\r
+figures, PeCO consumes much less energy than the three other methods.  One might\r
+think that the  resolution of the integer  program is too costly  in energy, but\r
+the  results show  that it  is very  beneficial to  lose a  bit of  time in  the\r
+selection of  sensors to  activate.  Indeed the  optimization program  allows to\r
+reduce significantly the number of active  sensors and so the energy consumption\r
+while keeping a good coverage level.\r
+\r
+\begin{figure}[h!]\r
+  \centering\r
+  \begin{tabular}{@{}cr@{}}\r
+    \includegraphics[scale=0.475]{R/EC95.eps} & \raisebox{2.75cm}{(a)} \\\r
+    \includegraphics[scale=0.475]{R/EC50.eps} & \raisebox{2.75cm}{(b)}\r
+  \end{tabular}\r
+  \caption{Energy consumption per period for (a)~$Lifetime_{95}$ and (b)~$Lifetime_{50}$.}\r
+  \label{fig3EC}\r
+\end{figure} \r
+\r
+%The optimization algorithm, which used by PeCO protocol,  was improved the lifetime coverage efficiently based on the perimeter coverage model.\r
+\r
+ %The other approaches have a high energy consumption due to activating a larger number of sensors. In fact,  a distributed  method on the subregions greatly reduces the number of communications and the time of listening so thanks to the partitioning of the initial network into several independent subnetworks. \r
+\r
+\r
+%\subsubsection{Execution Time}\r
+\r
+\subsubsection{\bf Network Lifetime}\r
+\r
+We observe the superiority of PeCO and DiLCO protocols in comparison with the\r
+two    other   approaches    in    prolonging   the    network   lifetime.    In\r
+Figures~\ref{fig3LT}(a)  and (b),  $Lifetime95$ and  $Lifetime50$ are  shown for\r
+different  network  sizes.   As  highlighted  by  these  figures,  the  lifetime\r
+increases with the size  of the network, and it is clearly   largest for DiLCO\r
+and PeCO  protocols.  For instance,  for a  network of 300~sensors  and coverage\r
+ratio greater than 50\%, we can  see on Figure~\ref{fig3LT}(b) that the lifetime\r
+is about twice longer with  PeCO compared to DESK protocol.  The performance\r
+difference    is    more    obvious   in    Figure~\ref{fig3LT}(b)    than    in\r
+Figure~\ref{fig3LT}(a) because the gain induced  by our protocols increases with\r
+ time, and the lifetime with a coverage  of 50\% is far  longer than with\r
+95\%.\r
+\r
+\begin{figure}[h!]\r
+  \centering\r
+  \begin{tabular}{@{}cr@{}}\r
+    \includegraphics[scale=0.475]{R/LT95.eps} & \raisebox{2.75cm}{(a)} \\  \r
+    \includegraphics[scale=0.475]{R/LT50.eps} & \raisebox{2.75cm}{(b)}\r
+  \end{tabular}\r
+  \caption{Network Lifetime for (a)~$Lifetime_{95}$ \\\r
+    and (b)~$Lifetime_{50}$.}\r
+  \label{fig3LT}\r
+\end{figure} \r
+\r
+%By choosing the best suited nodes, for each period, by optimizing the coverage and lifetime of the network to cover the area of interest and by letting the other ones sleep in order to be used later in next rounds, PeCO protocol efficiently prolonged the network lifetime especially for a coverage ratio greater than $50 \%$, whilst it stayed very near to  DiLCO-16 protocol for $95 \%$.\r
+\r
+Figure~\ref{figLTALL}  compares  the  lifetime  coverage of  our  protocols  for\r
+different coverage  ratios. We denote by  Protocol/50, Protocol/80, Protocol/85,\r
+Protocol/90, and  Protocol/95 the amount  of time  during which the  network can\r
+satisfy an area coverage greater than $50\%$, $80\%$, $85\%$, $90\%$, and $95\%$\r
+respectively, where the term Protocol refers to  DiLCO  or PeCO.  Indeed there  are applications\r
+that do not require a 100\% coverage of  the area to be monitored. PeCO might be\r
+an interesting  method since  it achieves  a good balance  between a  high level\r
+coverage ratio and network lifetime. PeCO always outperforms DiLCO for the three\r
+lower  coverage  ratios,  moreover  the   improvements  grow  with  the  network\r
+size. DiLCO is better  for coverage ratios near 100\%, but in  that case PeCO is\r
+not ineffective for the smallest network sizes.\r
+\r
+\begin{figure}[h!]\r
+\centering \includegraphics[scale=0.5]{R/LTa.eps}\r
+\caption{Network lifetime for different coverage ratios.}\r
+\label{figLTALL}\r
+\end{figure} \r
+\r
+%Comparison shows that PeCO protocol, which are used distributed optimization over the subregions, is the more relevance one for most coverage ratios and WSN sizes because it is robust to network disconnection during the network lifetime as well as it consume less energy in comparison with other approaches. PeCO protocol gave acceptable coverage ratio for a larger number of periods using new optimization algorithm that based on a perimeter coverage model. It also means that distributing the algorithm in each node and subdividing the sensing field into many subregions, which are managed independently and simultaneously, is the most relevant way to maximize the lifetime of a network.\r
+\r
+\r
+\section{Conclusion and Future Works}\r
+\label{sec:Conclusion and Future Works}\r
+\r
+In this paper  we have studied the problem of  Perimeter-based Coverage Optimization in\r
+WSNs. We have designed  a new protocol, called Perimeter-based  Coverage Optimization, which\r
+schedules nodes'  activities (wake up  and sleep  stages) with the  objective of\r
+maintaining a  good coverage ratio  while maximizing the network  lifetime. This\r
+protocol is  applied in a distributed  way in regular subregions  obtained after\r
+partitioning the area of interest in a preliminary step. It works in periods and\r
+is based on the resolution of an integer program to select the subset of sensors\r
+operating in active status for each period. Our work is original in so far as it\r
+proposes for  the first  time an  integer program  scheduling the  activation of\r
+sensors  based on  their perimeter  coverage level,  instead of  using a  set of\r
+targets/points to be covered.\r
+\r
+%To cope with this problem, the area of interest is divided into a smaller subregions using  divide-and-conquer method, and then a PeCO protocol for optimizing the lifetime coverage in each subregion. PeCO protocol combines two efficient techniques:  network\r
+%leader election, which executes the perimeter coverage model (only one time), the optimization algorithm, and sending the schedule produced by the optimization algorithm to other nodes in the subregion ; the second, sensor activity scheduling based optimization in which a new lifetime coverage optimization model is proposed. The main challenges include how to select the  most efficient leader in each subregion and the best schedule of sensor nodes that will optimize the network lifetime coverage\r
+%in the subregion. \r
+%The network lifetime coverage in each subregion is divided into\r
+%periods, each period consists  of four stages: (i) Information Exchange,\r
+%(ii) Leader Election, (iii) a Decision based new optimization model in order to\r
+%select the  nodes remaining  active for the last stage,  and  (iv) Sensing.\r
+We  have carried out  several simulations  to  evaluate the  proposed protocol.   The\r
+simulation  results  show   that  PeCO  is  more   energy-efficient  than  other\r
+approaches, with respect to lifetime,  coverage ratio, active sensors ratio, and\r
+energy consumption.\r
+%Indeed, when dealing with large and dense WSNs, a distributed optimization approach on the subregions of WSN like the one we are proposed allows to reduce the difficulty of a single global optimization problem by partitioning it in many smaller problems, one per subregion, that can be solved more easily. We have  identified different  research directions  that arise  out of  the work presented here.\r
+We plan to extend our framework so that the schedules are planned for multiple\r
+sensing periods.\r
+%in order to compute all active sensor schedules in only one step for many periods;\r
+We also want  to improve our integer program to  take into account heterogeneous\r
+sensors  from both  energy  and node  characteristics point of views.\r
+%the third, we are investigating new optimization model based on the sensing range so as to maximize the lifetime coverage in WSN;\r
+Finally,  it   would  be   interesting  to  implement   our  protocol   using  a\r
+sensor-testbed to evaluate it in real world applications.\r
+\r
+\r
+\r
+\r
+\r
+% Acknowledgments\r
+\begin{acks}\r
+As a  Ph.D.   student, Ali Kadhum IDREES  would  like to  gratefully\r
+acknowledge the  University of Babylon -  IRAQ for financial support  and Campus\r
+France for the  received support. This work is also partially funded by the Labex ACTION program (contract ANR-11-LABX-01-01). \r
+%The authors would like to thank Dr. Maura Turolla of Telecom\r
+%Italia for providing specifications about the application scenario.\r
+\end{acks}\r
+\r
+% Bibliography\r
+\bibliographystyle{ACM-Reference-Format-Journals}\r
+\bibliography{biblio}\r
+                             % Sample .bib file with references that match those in\r
+                             % the 'Specifications Document (V1.5)' as well containing\r
+                             % 'legacy' bibs and bibs with 'alternate codings'.\r
+                             % Gerry Murray - March 2012\r
+\r
+% History dates\r
+\received{February 2015}{}{}\r
+\r
+\r
+\r
+\end{document}\r
+% End of v2-acmsmall-sample.tex (March 2012) - Gerry Murray, ACM\r
+\r
+\r
diff --git a/PeCO/article.tex~ b/PeCO/article.tex~
new file mode 100644 (file)
index 0000000..e469801
--- /dev/null
@@ -0,0 +1,1046 @@
+% v2-acmsmall-sample.tex, dated March 6 2012\r
+% This is a sample file for ACM small trim journals\r
+%\r
+% Compilation using 'acmsmall.cls' - version 1.3 (March 2012), Aptara Inc.\r
+% (c) 2010 Association for Computing Machinery (ACM)\r
+%\r
+% Questions/Suggestions/Feedback should be addressed to => "acmtexsupport@aptaracorp.com".\r
+% Users can also go through the FAQs available on the journal's submission webpage.\r
+%\r
+% Steps to compile: latex, bibtex, latex latex\r
+%\r
+% For tracking purposes => this is v1.3 - March 2012\r
+\r
+\documentclass[prodmode,acmtosn]{acmsmall} % Aptara syntax\r
+\r
+% Package to generate and customize Algorithm as per ACM style\r
+\usepackage[ruled]{algorithm2e}\r
+\renewcommand{\algorithmcfname}{ALGORITHM}\r
+\SetAlFnt{\small}\r
+\SetAlCapFnt{\small}\r
+\SetAlCapNameFnt{\small}\r
+\SetAlCapHSkip{0pt}\r
+\IncMargin{-\parindent}\r
+\r
+% Metadata Information\r
+\acmVolume{1}\r
+\acmNumber{1}\r
+\acmArticle{1}\r
+\acmYear{2015}\r
+\acmMonth{2}\r
+\r
+% Document starts\r
+\begin{document}\r
+\r
+% Page heads\r
+\markboth{A.K. Idrees et al.}{Perimeter-based Coverage Optimization to Improve Lifetime in Wireless Sensor Networks}\r
+\r
+% Title portion\r
+\title{Perimeter-based Coverage Optimization to Improve Lifetime in Wireless Sensor Networks}\r
+\author{ALI KADHUM IDREES, KARINE DESCHINKEL, MICHEL SALOMON, RAPHAEL COUTURIER\r
+\affil{FEMTO-ST Institute,  University of Franche-Comte}}\r
+\r
+% NOTE! Affiliations placed here should be for the institution where the\r
+%       BULK of the research was done. If the author has gone to a new\r
+%       institution, before publication, the (above) affiliation should NOT be changed.\r
+%       The authors 'current' address may be given in the "Author's addresses:" block (below).\r
+%       So for example, Mr. Abdelzaher, the bulk of the research was done at UIUC, and he is\r
+%       currently affiliated with NASA.\r
+\r
+\begin{abstract}\r
+The most important problem in a Wireless Sensor Network (WSN) is to optimize the\r
+use of its limited energy provision, so that it can fulfill its monitoring task\r
+as long as  possible. Among  known  available approaches  that can  be used  to\r
+improve  power  management,  lifetime coverage  optimization  provides  activity\r
+scheduling which ensures sensing coverage while minimizing the energy cost. In\r
+this paper,  we propose such an approach called Perimeter-based Coverage Optimization\r
+protocol (PeCO). It is a  hybrid of centralized and distributed methods: the\r
+region of interest is first subdivided into subregions and our protocol is then\r
+distributed among sensor nodes in each  subregion.\r
+The novelty of our approach lies essentially in the formulation of a new\r
+mathematical optimization  model based on the  perimeter coverage level  to schedule\r
+sensors' activities.  Extensive simulation experiments have been performed using\r
+OMNeT++, the  discrete event simulator, to  demonstrate that PeCO  can\r
+offer longer lifetime coverage for WSNs in comparison with some other protocols.\r
+\end{abstract}\r
+\r
+\category{C.2.3}{Computer-Communication Networks}{Network Operations}\r
+\r
+\terms{Algorithms, Simulation}\r
+\r
+\keywords{Wireless Sensor Networks, Area Coverage, Network Lifetime, Optimization, Scheduling.}\r
+\r
+\acmformat{Ali Kadhum Idrees, Karine Deschinkel, Michel Salomon, Rapha\"el Couturier. Perimeter-based Coverage Optimization to Improve Lifetime in Wireless Sensor Networks.}\r
+% At a minimum you need to supply the author names, year and a title.\r
+% IMPORTANT:\r
+% Full first names whenever they are known, surname last, followed by a period.\r
+% In the case of two authors, 'and' is placed between them.\r
+% In the case of three or more authors, the serial comma is used, that is, all author names\r
+% except the last one but including the penultimate author's name are followed by a comma,\r
+% and then 'and' is placed before the final author's name.\r
+% If only first and middle initials are known, then each initial\r
+% is followed by a period and they are separated by a space.\r
+% The remaining information (journal title, volume, article number, date, etc.) is 'auto-generated'.\r
+\r
+\begin{bottomstuff}\r
+%This work is supported by the National Science Foundation, under\r
+%grant CNS-0435060, grant CCR-0325197 and grant EN-CS-0329609.\r
+\r
+%Author's addresses: G. Zhou, Computer Science Department,\r
+%College of William and Mary; Y. Wu  {and} J. A. Stankovic,\r
+%Computer Science Department, University of Virginia; T. Yan,\r
+%Eaton Innovation Center; T. He, Computer Science Department,\r
+%University of Minnesota; C. Huang, Google; T. F. Abdelzaher,\r
+%(Current address) NASA Ames Research Center, Moffett Field, California 94035.\r
+\end{bottomstuff}\r
+\r
+\maketitle\r
+\section{Introduction}\r
+\label{sec:introduction}\r
+\r
+\noindent The continuous progress in Micro Electro-Mechanical Systems (MEMS) and\r
+wireless communication hardware  has given rise to the opportunity  to use large\r
+networks    of     tiny    sensors,    called    Wireless     Sensor    Networks\r
+(WSN)~\cite{akyildiz2002wireless,puccinelli2005wireless}, to  fulfill monitoring\r
+tasks.   A  WSN  consists  of  small low-powered  sensors  working  together  by\r
+communicating with one another through multi-hop radio communications. Each node\r
+can send the data  it collects in its environment, thanks to  its sensor, to the\r
+user by means of  sink nodes. The features of a WSN made  it suitable for a wide\r
+range of application  in areas such as business,  environment, health, industry,\r
+military, and so on~\cite{yick2008wireless}.   Typically, a sensor node contains\r
+three main components~\cite{anastasi2009energy}: a  sensing unit able to measure\r
+physical,  chemical, or  biological  phenomena observed  in  the environment;  a\r
+processing unit which will process and store the collected measurements; a radio\r
+communication unit for data transmission and receiving.\r
+\r
+The energy needed  by an active sensor node to  perform sensing, processing, and\r
+communication is supplied by a power supply which is a battery. This battery has\r
+a limited energy provision and it may  be unsuitable or impossible to replace or\r
+recharge it in  most applications. Therefore it is necessary  to deploy WSN with\r
+high density in order to increase  reliability and to exploit node redundancy\r
+thanks to energy-efficient activity  scheduling approaches.  Indeed, the overlap\r
+of sensing  areas can be exploited  to schedule alternatively some  sensors in a\r
+low power sleep mode and thus save  energy. Overall, the main question that must\r
+be answered is: how to extend the lifetime coverage of a WSN as long as possible\r
+while  ensuring   a  high  level  of   coverage?   These past few years  many\r
+energy-efficient mechanisms have been suggested  to retain energy and extend the\r
+lifetime of the WSNs~\cite{rault2014energy}.\r
+\r
+This paper makes the following contributions.\r
+\begin{enumerate}\r
+\item We have devised a framework to schedule nodes to be activated alternatively such\r
+  that the network lifetime is prolonged  while ensuring that a certain level of\r
+  coverage is preserved.  A key idea in  our framework is to exploit spatial and\r
+  temporal subdivision.   On the one hand,  the area of interest  is divided into\r
+  several smaller subregions and, on the other hand, the time line is divided into\r
+  periods of equal length. In each subregion the sensor nodes will cooperatively\r
+  choose a  leader which will schedule  nodes' activities, and this  grouping of\r
+  sensors is similar to typical cluster architecture.\r
+\item We have proposed a new mathematical  optimization model.  Instead of  trying to\r
+  cover a set of specified points/targets as  in most of the methods proposed in\r
+  the literature, we formulate an integer program based on perimeter coverage of\r
+  each sensor.  The  model involves integer variables to  capture the deviations\r
+  between  the actual  level of  coverage and  the required  level.  Hence, an\r
+  optimal scheduling  will be  obtained by  minimizing a  weighted sum  of these\r
+  deviations.\r
+\item We have conducted extensive simulation  experiments, using the  discrete event\r
+  simulator OMNeT++, to demonstrate the  efficiency of our protocol. We have compared\r
+  our   PeCO   protocol   to   two   approaches   found   in   the   literature:\r
+  DESK~\cite{ChinhVu} and  GAF~\cite{xu2001geography}, and also to  our previous\r
+  work published in~\cite{Idrees2} which is  based on another optimization model\r
+  for sensor scheduling.\r
+\end{enumerate}\r
+\r
+\r
+\r
+\r
+\r
+\r
+The rest  of the paper is  organized as follows.  In the next section  we review\r
+some related work in the  field. Section~\ref{sec:The PeCO Protocol Description}\r
+is devoted to the PeCO protocol  description and Section~\ref{cp} focuses on the\r
+coverage model  formulation which is used  to schedule the activation  of sensor\r
+nodes.  Section~\ref{sec:Simulation  Results and Analysis}  presents simulations\r
+results and discusses the comparison  with other approaches. Finally, concluding\r
+remarks   are  drawn   and  some   suggestions are  given  for   future  works   in\r
+Section~\ref{sec:Conclusion and Future Works}.\r
+\r
+% that show that our protocol outperforms others protocols.\r
+\section{Related Literature}\r
+\label{sec:Literature Review}\r
+\r
+\noindent  In  this section,  we  summarize  some  related works  regarding  the\r
+coverage problem and  distinguish our PeCO protocol from the  works presented in\r
+the literature.\r
+\r
+The most  discussed coverage problems in  literature can be classified  in three\r
+categories~\cite{li2013survey}   according   to  their   respective   monitoring\r
+objective.  Hence,  area coverage \cite{Misra}  means that every point  inside a\r
+fixed area  must be monitored, while  target coverage~\cite{yang2014novel} refers\r
+to  the objective  of coverage  for a  finite number  of discrete  points called\r
+targets,  and  barrier coverage~\cite{HeShibo}\cite{kim2013maximum}  focuses  on\r
+preventing  intruders   from  entering   into  the   region  of   interest.   In\r
+\cite{Deng2012}  authors  transform the  area  coverage  problem into  the  target\r
+coverage one taking into account the  intersection points among disks of sensors\r
+nodes    or   between    disk   of    sensor   nodes    and   boundaries.     In\r
+\cite{Huang:2003:CPW:941350.941367}  authors prove  that  if  the perimeters  of\r
+sensors are sufficiently  covered it will be  the case for the  whole area. They\r
+provide an algorithm in $O(nd~log~d)$  time to compute the perimeter-coverage of\r
+each  sensor,  where  $d$  denotes  the  maximum  number  of  sensors  that  are\r
+neighbors  to  a  sensor and  $n$  is  the  total  number of  sensors  in  the\r
+network. {\it In PeCO protocol, instead  of determining the level of coverage of\r
+  a set  of discrete  points, our  optimization model is  based on  checking the\r
+  perimeter-coverage of each sensor to activate a minimal number of sensors.}\r
+\r
+The major  approach to extend network  lifetime while preserving coverage  is to\r
+divide/organize the  sensors into a suitable  number of set covers  (disjoint or\r
+non-disjoint)\cite{wang2011coverage}, where  each set completely  covers a  region of interest,  and to\r
+activate these set  covers successively. The network activity can  be planned in\r
+advance and scheduled  for the entire network lifetime or  organized in periods,\r
+and the set  of active sensor nodes  is decided at the beginning  of each period\r
+\cite{ling2009energy}.  Active node selection is determined based on the problem\r
+requirements (e.g.   area monitoring,  connectivity, or power  efficiency).  For\r
+instance, Jaggi {\em et al.}~\cite{jaggi2006}  address the problem of maximizing\r
+the lifetime  by dividing sensors  into the  maximum number of  disjoint subsets\r
+such  that each  subset  can ensure  both coverage  and  connectivity. A  greedy\r
+algorithm  is applied  once to  solve  this problem  and the  computed sets  are\r
+activated  in   succession  to  achieve   the  desired  network   lifetime.   Vu\r
+\cite{chin2007},  \cite{yan2008design}, Padmatvathy  {\em   et  al.}~\cite{pc10},  propose  algorithms\r
+working in a periodic fashion where a  cover set is computed at the beginning of\r
+each period.   {\it Motivated by  these works,  PeCO protocol works  in periods,\r
+  where each  period contains a  preliminary phase for information  exchange and\r
+  decisions, followed by a sensing phase where one cover set is in charge of the\r
+  sensing task.}\r
+\r
+Various centralized  and distributed approaches, or  even a mixing  of these two\r
+concepts, have  been proposed  to extend the  network lifetime \cite{zhou2009variable}.   In distributed algorithms~\cite{Tian02,yangnovel,ChinhVu,qu2013distributed} each sensor decides of its\r
+own activity scheduling  after an information exchange with  its neighbors.  The\r
+main interest of such an approach is to avoid long range communications and thus\r
+to reduce the energy dedicated to the communications.  Unfortunately, since each\r
+node has only information on  its immediate neighbors (usually the one-hop ones)\r
+it may make a bad decision leading to a global suboptimal solution.  Conversely,\r
+centralized\r
+algorithms~\cite{cardei2005improving,zorbas2010solving,pujari2011high}     always\r
+provide nearly  or close to  optimal solution since  the algorithm has  a global\r
+view of the whole network. The disadvantage of a centralized method is obviously\r
+its high  cost in communications needed to  transmit to a single  node, the base\r
+station which will globally schedule  nodes' activities, data from all the other\r
+sensor nodes  in the area.  The price  in communications can be  huge since\r
+long range  communications will be  needed. In fact  the larger the WNS  is, the\r
+higher the  communication and  thus the energy  cost are.   {\it In order  to be\r
+  suitable for large-scale  networks, in the PeCO protocol,  the area of interest\r
+  is divided into several smaller subregions, and in each one, a node called the\r
+  leader  is  in  charge  of  selecting  the active  sensors  for  the  current\r
+  period.  Thus our  protocol is  scalable  and is a  globally distributed  method,\r
+  whereas it is centralized in each subregion.}\r
+\r
+Various  coverage scheduling  algorithms have  been developed  these past few years.\r
+Many of  them, dealing with  the maximization of the  number of cover  sets, are\r
+heuristics.   These  heuristics involve  the  construction  of  a cover  set  by\r
+including in priority the sensor nodes  which cover critical targets, that is to\r
+say   targets   that  are   covered   by   the   smallest  number   of   sensors\r
+\cite{berman04,zorbas2010solving}.  Other  approaches are based  on mathematical\r
+programming formulations~\cite{cardei2005energy,5714480,pujari2011high,Yang2014}\r
+and dedicated techniques (solving with a branch-and-bound algorithm available in\r
+optimization  solver).  The  problem is  formulated as  an optimization  problem\r
+(maximization of the lifetime or number of cover sets) under target coverage and\r
+energy  constraints.   Column  generation   techniques,  well-known  and  widely\r
+practiced techniques for  solving linear programs with too  many variables, have\r
+also                                                                        been\r
+used~\cite{castano2013column,rossi2012exact,deschinkel2012column}. {\it  In the PeCO\r
+  protocol, each  leader, in charge  of a  subregion, solves an  integer program\r
+  which has a twofold objective: minimize the overcoverage and the undercoverage\r
+  of the perimeter of each sensor.}\r
+\r
+%\noindent Recently, the coverage problem has been received a high attention, which concentrates on how the physical space could be well monitored  after the deployment. Coverage is one of the Quality of Service (QoS) parameters in WSNs, which is highly concerned with power depletion~\cite{zhu2012survey}. Most of the works about the coverage protocols have been suggested in the literature focused on three types of the coverage in WSNs~\cite{mulligan2010coverage}: the first, area coverage means that each point in the area of interest within the sensing range of at least one sensor node; the second, target coverage in which a fixed set of targets need to be monitored; the third, barrier coverage refers to detect the intruders crossing a boundary of WSN. The work in this paper emphasized on the area coverage, so,  some area coverage protocols have been reviewed in this section, and the shortcomings of reviewed approaches are being summarized.\r
+\r
+%The problem of k-coverage in WSNs was addressed~\cite{ammari2012centralized}. It mathematically formulated and the spacial sensor density for full k-coverage determined, where the relation between the communication range and the sensing range constructed by this work to retain the k-coverage and connectivity in WSN. After that, a four configuration protocols have proposed for treating the k-coverage in WSNs.  \r
+\r
+%In~\cite{rebai2014branch}, the problem of full grid coverage is formulated using two integer linear programming models: the first, a model that takes into account only the overall coverage constraint; the second, both the connectivity and the full grid coverage constraints have taken into consideration. This work did not take into account the energy constraint.\r
+\r
+%Li et al.~\cite{li2011transforming} presented a framework to convert any complete coverage problem to a partial coverage one with any coverage ratio by means of executing a complete coverage algorithm to find a full coverage sets with virtual radii and transforming the coverage sets to a partial coverage sets by adjusting sensing radii.  The properties of the original algorithms can be maintained by this framework and the transformation process has a low execution time.\r
+\r
+%The authors in~\cite{liu2014generalized} explained that in some applications of WSNs such as structural health monitoring (SHM) and volcano monitoring, the traditional coverage model which is a geographic area defined for individual sensors is not always valid. For this reason, they define a generalized coverage model, which is not need to have the coverage area of individual nodes, but only based on a function to determine whether a set of\r
+%sensor nodes is capable of satisfy the requested monitoring task for a certain area. They have proposed two approaches to divide the deployed nodes into suitable cover sets, which can be used to prolong the network lifetime. \r
\r
+%The work in~\cite{wang2010preserving} addressed the target area coverage problem by proposing a geometric-based activity scheduling scheme, named GAS, to fully cover the target area in WSNs. The authors deals with small area (target area coverage), which can be monitored by a single sensor instead of area coverage, which focuses on a large area that should be monitored by many sensors cooperatively. They explained that GAS is capable to monitor the target area by using a few sensors as possible and it can produce as many cover sets as possible.\r
+\r
+%Cho et al.~\cite{cho2007distributed} proposed a distributed node scheduling protocol, which can retain sensing coverage needed by applications\r
+%and increase network lifetime via putting in sleep mode some redundant nodes. In this work, the effective sensing area (ESA) concept of a sensor node is used, which refers to the sensing area that is not overlapping with another sensor's sensing area. A sensor node and by compute it's ESA can be determine whether it will be active or sleep. The suggested  work permits to sensor nodes to be in sleep mode opportunistically whilst fulfill the needed sensing coverage.\r
\r
+%In~\cite{quang2008algorithm}, the authors defined a maximum sensing coverage region problem (MSCR) in WSNs and then proposed an algorithm to solve it. The\r
+%maximum observed area fully covered by a minimum active sensors. In this work, the major property is to getting rid from the redundant sensors  in high-density WSNs and putting them in sleep mode, and choosing a smaller number of active sensors so as to be sure  that the full area is k-covered, and all events appeared in that area can be precisely and timely detected. This algorithm minimized the total energy consumption and increased the lifetime.\r
+\r
+%A novel method to divide the sensors in the WSN, called node coverage grouping (NCG) suggested~\cite{lin2010partitioning}. The sensors in the connectivity group are within sensing range of each other, and the data collected by them in the same group are supposed to be similar. They are proved that dividing n sensors via NCG into connectivity groups is a NP-hard problem. So, a heuristic algorithm of NCG with time complexity of $O(n^3)$ is proposed.\r
+%For some applications, such as monitoring an ecosystem with extremely diversified environment, It might be premature assumption that sensors near to each other sense similar data.\r
+\r
+%In~\cite{zaidi2009minimum}, the problem of minimum cost coverage in which full coverage is performed by using the minimum number of sensors for an arbitrary geometric shape region is addressed.  a geometric solution to the minimum cost coverage problem under a deterministic deployment is proposed. The probabilistic coverage solution which provides a relationship between the probability of coverage and the number of randomly deployed sensors in an arbitrarily-shaped region is suggested. The authors are clarified that with a random deployment about seven times more nodes are required to supply full coverage.\r
+\r
+%A graph theoretical framework for connectivity-based coverage with configurable coverage granularity was proposed~\cite{dong2012distributed}. A new coverage criterion and scheduling approach is proposed based on cycle partition. This method is capable of build a sparse coverage set in distributed way by means of only connectivity information. This work considers only the communication range of the sensor is smaller two times the sensing range of sensor.\r
+\r
+%Liu et al.~\cite{liu2010energy} formulated maximum disjoint sets problem for retaining coverage and connectivity in WSN. Two algorithms are proposed for solving this problem, heuristic algorithm and network flow algorithm. This work did not take into account the sensor node failure, which is an unpredictable event because the two solutions are full centralized algorithms.\r
+\r
+%The work that presented in~\cite{aslanyan2013optimal} solved the coverage and connectivity problem in sensor networks in\r
+%an integrated way. The network lifetime is divided in a fixed number of rounds. A coverage bitmap of sensors of the domain has been generated in each round and based on this bitmap,  it has been decided which sensors\r
+%stay active or turn it to sleep. They checked the connection of the graph via laplacian of adjancy graph of active sensors in each round.  the generation of coverage bitmap by using  Minkowski technique, the network is able to providing the desired ratio of coverage. They have been defined the  connected coverage problem as an optimization problem and a centralized genetic algorithm is used to find the solution.\r
+\r
+%Several algorithms to retain the coverage and maximize the network lifetime were proposed in~\cite{cardei2006energy,wang2011coverage}. \r
+\r
+%\uppercase{\textbf{shortcomings}}. In spite of many energy-efficient protocols for maintaining the coverage and improving the network lifetime in WSNs were proposed, non of them ensure the coverage for the sensing field with optimal minimum number of active sensor nodes, and for a long time as possible. For example, in a full centralized algorithms, an optimal solutions can be given by using optimization approaches, but in the same time, a high energy is consumed for the execution time of the algorithm and the communications among the sensors in the sensing field, so, the  full centralized approaches are not good candidate to use it especially in large WSNs. Whilst, a full distributed algorithms can not give optimal solutions because this algorithms use only local information of the neighboring sensors, but in the same time, the energy consumption during the communications and executing the algorithm is highly lower. Whatever the case, this would result in a shorter lifetime coverage in WSNs.\r
+\r
+%\uppercase{\textbf{Our Protocol}}. In this paper, a Lifetime Coverage Optimization Protocol, called (PeCO) in WSNs is suggested. The sensing field is divided into smaller subregions by means of divide-and-conquer method, and a PeCO protocol is distributed in each sensor in the subregion. The network lifetime in each subregion is divided into periods, each period includes 4 stages: Information Exchange, Leader election, decision based activity scheduling optimization, and sensing. The leaders are elected in an independent, asynchronous, and distributed way in all the subregions of the WSN. After that, energy-efficient activity scheduling mechanism based new optimization model is performed by each leader in the subregions. This optimization model is based on the perimeter coverage model in order to producing the optimal cover set of active sensors, which are taken the responsibility of sensing during the current period. PeCO protocol merges between two energy efficient mechanisms, which are used the main advantages of the centralized and distributed approaches and avoids the most of their disadvantages.\r
+\r
+\section{ The P{\scshape e}CO Protocol Description}\r
+\label{sec:The PeCO Protocol Description}\r
+\r
+\noindent  In  this  section,  we  describe in  details  our Perimeter-based  Coverage\r
+Optimization protocol.  First we present the  assumptions we made and the models\r
+we considered (in particular the perimeter coverage one), second we describe the\r
+background idea of our protocol, and third  we give the outline of the algorithm\r
+executed by each node.\r
+\r
+% It is based on two efficient-energy mechanisms: the first, is partitioning the sensing field into smaller subregions, and one leader is elected for each subregion;  the second, a sensor activity scheduling based new optimization model so as to produce the optimal cover set of active sensors for the sensing stage during the period.  Obviously, these two mechanisms can be contribute in extend the network lifetime coverage efficiently. \r
+%Before proceeding in the presentation of the main ideas of the protocol, we will briefly describe the perimeter coverage model and give some necessary assumptions and definitions.\r
+\r
+\subsection{Assumptions and Models}\r
+\label{CI}\r
+\r
+\noindent A WSN consisting of $J$ stationary sensor nodes randomly and uniformly\r
+distributed in  a bounded sensor field  is considered. The wireless  sensors are\r
+deployed in high density  to ensure initially a high coverage  ratio of the area\r
+of interest.  We  assume that all the  sensor nodes are homogeneous  in terms of\r
+communication,  sensing,  and  processing capabilities  and  heterogeneous  from\r
+the energy provision  point of  view.  The  location information  is available  to a\r
+sensor node either  through hardware such as embedded GPS  or location discovery\r
+algorithms.   We  assume  that  each  sensor  node  can  directly  transmit  its\r
+measurements to  a mobile  sink node.  For  example, a sink  can be  an unmanned\r
+aerial  vehicle  (UAV)  flying  regularly  over  the  sensor  field  to  collect\r
+measurements from sensor nodes. A mobile sink node collects the measurements and\r
+transmits them to the base station.   We consider a Boolean disk coverage model,\r
+which is the most  widely used sensor coverage model in  the literature, and all\r
+sensor nodes  have a constant sensing  range $R_s$.  Thus, all  the space points\r
+within a disk centered at a sensor with  a radius equal to the sensing range are\r
+said to be covered  by this sensor. We also assume  that the communication range\r
+$R_c$ satisfies $R_c  \geq 2 \cdot R_s$. In fact,  Zhang and Zhou~\cite{Zhang05}\r
+proved  that if  the  transmission  range fulfills  the  previous hypothesis,  the\r
+complete coverage of a convex area implies connectivity among active nodes.\r
+\r
+The PeCO protocol  uses the  same perimeter-coverage  model as  Huang and\r
+Tseng in~\cite{huang2005coverage}. It  can be expressed as follows:  a sensor is\r
+said to be perimeter  covered if all the points on its  perimeter are covered by\r
+at least  one sensor  other than  itself.  They  proved that  a network  area is\r
+$k$-covered if and only if each sensor in the network is $k$-perimeter-covered (perimeter covered by at least $k$ sensors).\r
+%According to this model, we named the intersections among the sensor nodes in the sensing field as intersection points. Instead of working with the coverage area, we consider for each sensor a set of intersection points which are determined by using perimeter-coverage model. \r
+Figure~\ref{pcm2sensors}(a)  shows  the coverage  of  sensor  node~$0$. On  this\r
+figure, we can  see that sensor~$0$ has  nine neighbors and we  have reported on\r
+its  perimeter (the  perimeter  of the  disk  covered by  the  sensor) for  each\r
+neighbor  the  two  points  resulting  from the intersection  of  the  two  sensing\r
+areas. These points are denoted for  neighbor~$i$ by $iL$ and $iR$, respectively\r
+for  left and  right from  a neighboing  point of  view.  The  resulting couples  of\r
+intersection points subdivide  the perimeter of sensor~$0$  into portions called\r
+arcs.\r
+\r
+\begin{figure}[ht!]\r
+  \centering\r
+  \begin{tabular}{@{}cr@{}}\r
+    \includegraphics[width=75mm]{pcm.jpg} & \raisebox{3.25cm}{(a)} \\\r
+    \includegraphics[width=75mm]{twosensors.jpg} & \raisebox{2.75cm}{(b)}\r
+  \end{tabular}\r
+  \caption{(a) Perimeter  coverage of sensor node  0 and (b) finding  the arc of\r
+    $u$'s perimeter covered by $v$.}\r
+  \label{pcm2sensors}\r
+\end{figure} \r
+\r
+Figure~\ref{pcm2sensors}(b) describes the geometric information used to find the\r
+locations of the  left and right points of  an arc on the perimeter  of a sensor\r
+node~$u$ covered by a sensor node~$v$. Node~$v$ is supposed to be located on the\r
+west  side of  sensor~$u$,  with  the following  respective  coordinates in  the\r
+sensing area~: $(v_x,v_y)$ and $(u_x,u_y)$. From the previous coordinates we can\r
+compute the euclidean distance between nodes~$u$ and $v$: $Dist(u,v)=\sqrt{\vert\r
+  u_x  - v_x  \vert^2 +  \vert u_y-v_y  \vert^2}$, while  the angle~$\alpha$  is\r
+obtained through  the formula:\r
+ \[\r
+\alpha =  \arccos \left(\frac{Dist(u,v)}{2R_s}\r
+\right).\r
+\] \r
+The arc on the perimeter of~$u$ defined by the angular interval $[\pi\r
+  - \alpha,\pi + \alpha]$ is said to be perimeter-covered by sensor~$v$.\r
+\r
+Every couple of intersection points is placed on the angular interval $[0,2\pi]$\r
+in  a  counterclockwise manner,  leading  to  a  partitioning of  the  interval.\r
+Figure~\ref{pcm2sensors}(a)  illustrates  the arcs  for  the  nine neighbors  of\r
+sensor $0$ and  Figure~\ref{expcm} gives the position of  the corresponding arcs\r
+in  the interval  $[0,2\pi]$. More  precisely, we  can see  that the  points are\r
+ordered according  to the  measures of  the angles  defined by  their respective\r
+positions. The intersection points are  then visited one after another, starting\r
+from the first  intersection point  after  point~zero,  and  the maximum  level  of\r
+coverage is determined  for each interval defined by two  successive points. The\r
+maximum  level of  coverage is  equal to  the number  of overlapping  arcs.  For\r
+example, \r
+between~$5L$  and~$6L$ the maximum  level of  coverage is equal  to $3$\r
+(the value is highlighted in yellow  at the bottom of Figure~\ref{expcm}), which\r
+means that at most 2~neighbors can cover  the perimeter in addition to node $0$. \r
+Table~\ref{my-label} summarizes for each coverage  interval the maximum level of\r
+coverage and  the sensor  nodes covering the  perimeter.  The  example discussed\r
+above is thus given by the sixth line of the table.\r
+\r
+%The points reported on the line segment $[0,2\pi]$ separates it in intervals as shown in figure~\ref{expcm}. For example, for each neighboring sensor of sensor 0, place the points  $\alpha^ 1_L$, $\alpha^ 1_R$, $\alpha^ 2_L$, $\alpha^ 2_R$, $\alpha^ 3_L$, $\alpha^ 3_R$, $\alpha^ 4_L$, $\alpha^ 4_R$, $\alpha^ 5_L$, $\alpha^ 5_R$, $\alpha^ 6_L$, $\alpha^ 6_R$, $\alpha^ 7_L$, $\alpha^ 7_R$, $\alpha^ 8_L$, $\alpha^ 8_R$, $\alpha^ 9_L$, and $\alpha^ 9_R$; on the line segment $[0,2\pi]$, and then sort all these points in an ascending order into a list.  Traverse the line segment $[0,2\pi]$ by visiting each point in the sorted list from left to right and determine the coverage level of each interval of the sensor 0 (see figure \ref{expcm}). For each interval, we sum up the number of parts of segments, and we deduce a level of coverage for each interval. For instance, the interval delimited by the points $5L$ and $6L$ contains three parts of segments. That means that this part of the perimeter of the sensor $0$ may be covered by three sensors, sensor $0$ itself and sensors $2$ and $5$. The level of coverage of this interval may reach $3$ if all previously mentioned sensors are active. Let say that sensors $0$, $2$ and $5$ are involved in the coverage of this interval. Table~\ref{my-label} summarizes the level of coverage for each interval and the sensors involved in for sensor node 0 in figure~\ref{pcm2sensors}(a). \r
+% to determine the level of the perimeter coverage for each left and right point of a segment.\r
+\r
+\begin{figure*}[t!]\r
+\centering\r
+\includegraphics[width=127.5mm]{expcm2.jpg}  \r
+\caption{Maximum coverage levels for perimeter of sensor node $0$.}\r
+\label{expcm}\r
+\end{figure*} \r
+\r
+%For example, consider the sensor node $0$ in figure~\ref{pcmfig}, which has 9 neighbors. Figure~\ref{expcm} shows the perimeter coverage level for all left and right points of a segment that covered by a neighboring sensor nodes. Based on the figure~\ref{expcm}, the set of sensors for each left and right point of the segments illustrated in figure~\ref{ex2pcm} for the sensor node 0.\r
+\r
+\iffalse\r
+\r
+\begin{figure}[ht!]\r
+\centering\r
+\includegraphics[width=90mm]{ex2pcm.jpg}  \r
+\caption{Coverage intervals and contributing sensors for sensor node 0.}\r
+\label{ex2pcm}\r
+\end{figure} \r
+\r
+\fi\r
+\r
+ \begin{table}\r
+ \tbl{Coverage intervals and contributing sensors for sensor node 0 \label{my-label}}\r
+{\begin{tabular}{|c|c|c|c|c|c|c|c|c|}\r
+\hline\r
+\begin{tabular}[c]{@{}c@{}}Left \\ point \\ angle~$\alpha$ \end{tabular} & \begin{tabular}[c]{@{}c@{}}Interval \\ left \\ point\end{tabular} & \begin{tabular}[c]{@{}c@{}}Interval \\ right \\ point\end{tabular} & \begin{tabular}[c]{@{}c@{}}Maximum \\ coverage\\  level\end{tabular} & \multicolumn{5}{c|}{\begin{tabular}[c]{@{}c@{}}Set of sensors\\ involved \\ in coverage interval\end{tabular}} \\ \hline\r
+0.0291    & 1L                                                                        & 2L                                                        & 4                                                                     & 0                     & 1                     & 3                    & 4                    &                      \\ \hline\r
+0.104     & 2L                                                                        & 3R                                                        & 5                                                                     & 0                     & 1                     & 3                    & 4                    & 2                    \\ \hline\r
+0.3168    & 3R                                                                        & 4R                                                        & 4                                                                     & 0                     & 1                     & 4                    & 2                    &                      \\ \hline\r
+0.6752    & 4R                                                                        & 1R                                                        & 3                                                                     & 0                     & 1                     & 2                    &                      &                      \\ \hline\r
+1.8127    & 1R                                                                        & 5L                                                        & 2                                                                     & 0                     & 2                     &                      &                      &                      \\ \hline\r
+1.9228    & 5L                                                                        & 6L                                                        & 3                                                                     & 0                     & 2                     & 5                    &                      &                      \\ \hline\r
+2.3959    & 6L                                                                        & 2R                                                        & 4                                                                     & 0                     & 2                     & 5                    & 6                    &                      \\ \hline\r
+2.4258    & 2R                                                                        & 7L                                                        & 3                                                                     & 0                     & 5                     & 6                    &                      &                      \\ \hline\r
+2.7868    & 7L                                                                        & 8L                                                        & 4                                                                     & 0                     & 5                     & 6                    & 7                    &                      \\ \hline\r
+2.8358    & 8L                                                                        & 5R                                                        & 5                                                                     & 0                     & 5                     & 6                    & 7                    & 8                    \\ \hline\r
+2.9184    & 5R                                                                        & 7R                                                        & 4                                                                     & 0                     & 6                     & 7                    & 8                    &                      \\ \hline\r
+3.3301    & 7R                                                                        & 9R                                                        & 3                                                                     & 0                     & 6                     & 8                    &                      &                      \\ \hline\r
+3.9464    & 9R                                                                        & 6R                                                        & 4                                                                     & 0                     & 6                     & 8                    & 9                    &                      \\ \hline\r
+4.767     & 6R                                                                        & 3L                                                        & 3                                                                     & 0                     & 8                     & 9                    &                      &                      \\ \hline\r
+4.8425    & 3L                                                                        & 8R                                                        & 4                                                                     & 0                     & 3                     & 8                    & 9                    &                      \\ \hline\r
+4.9072    & 8R                                                                        & 4L                                                        & 3                                                                     & 0                     & 3                     & 9                    &                      &                      \\ \hline\r
+5.3804    & 4L                                                                        & 9R                                                        & 4                                                                     & 0                     & 3                     & 4                    & 9                    &                      \\ \hline\r
+5.9157    & 9R                                                                        & 1L                                                        & 3                                                                     & 0                     & 3                     & 4                    &                      &                      \\ \hline\r
+\end{tabular}}\r
+\r
+\r
+\end{table}\r
+\r
+\r
+%The optimization algorithm that used by PeCO protocol based on the perimeter coverage levels of the left and right points of the segments and worked to minimize the number of sensor nodes for each left or right point of the segments within each sensor node. The algorithm minimize the perimeter coverage level of the left and right points of the segments, while, it assures that every perimeter coverage level of the left and right points of the segments greater than or equal to 1.\r
+\r
+In the PeCO  protocol, the scheduling of the sensor  nodes' activities is formulated  with an\r
+integer program  based on  coverage intervals. The  formulation of  the coverage\r
+optimization problem is  detailed in~section~\ref{cp}.  Note that  when a sensor\r
+node  has a  part of  its sensing  range outside  the WSN  sensing field,  as in\r
+Figure~\ref{ex4pcm}, the maximum coverage level for  this arc is set to $\infty$\r
+and  the  corresponding  interval  will  not   be  taken  into  account  by  the\r
+optimization algorithm.\r
\r
+\begin{figure}[h!]\r
+\centering\r
+\includegraphics[width=62.5mm]{ex4pcm.jpg}  \r
+\caption{Sensing range outside the WSN's area of interest.}\r
+\label{ex4pcm}\r
+\end{figure} \r
+%Figure~\ref{ex5pcm} gives an example to compute the perimeter coverage levels for the left and right points of the segments for a sensor node $0$, which has a part of its sensing range exceeding the border of the sensing field of WSN, and it has a six neighbors. In figure~\ref{ex5pcm}, the sensor node $0$ has two segments outside the border of the network sensing field, so the left and right points of the two segments called $-1L$, $-1R$, $-2L$, and $-2R$.\r
+%\begin{figure}[ht!]\r
+%\centering\r
+%\includegraphics[width=75mm]{ex5pcm.jpg}  \r
+%\caption{Coverage intervals and contributing sensors for sensor node 0 having a  part of its sensing range outside the border.}\r
+%\label{ex5pcm}\r
+%\end{figure} \r
+\r
+\subsection{The Main Idea}\r
+\r
+\noindent The  WSN area of  interest is, in a  first step, divided  into regular\r
+homogeneous subregions  using a divide-and-conquer  algorithm. In a  second step\r
+our  protocol  will  be  executed  in   a  distributed  way  in  each  subregion\r
+simultaneously to schedule nodes' activities for one sensing period.\r
+\r
+As  shown in  Figure~\ref{fig2}, node  activity  scheduling is  produced by  our\r
+protocol in a periodic manner. Each period is divided into 4 stages: Information\r
+(INFO)  Exchange,  Leader Election,  Decision  (the  result of  an  optimization\r
+problem),  and  Sensing.   For  each  period there  is  exactly  one  set  cover\r
+responsible for  the sensing task.  Protocols  based on a periodic  scheme, like\r
+PeCO, are more  robust against an unexpected  node failure. On the  one hand, if\r
+a node failure is discovered before  taking the decision, the corresponding sensor\r
+node will  not be considered  by the optimization  algorithm. On  the other\r
+hand, if the sensor failure happens after  the decision, the sensing task of the\r
+network will be temporarily affected: only  during the period of sensing until a\r
+new period starts, since a new set cover will take charge of the sensing task in\r
+the next period. The energy consumption and some other constraints can easily be\r
+taken  into  account since  the  sensors  can  update  and then  exchange  their\r
+information (including their  residual energy) at the beginning  of each period.\r
+However, the pre-sensing  phases (INFO Exchange, Leader  Election, and Decision)\r
+are energy consuming, even for nodes that will not join the set cover to monitor\r
+the area.\r
+\r
+\begin{figure}[t!]\r
+\centering\r
+\includegraphics[width=80mm]{Model.pdf}  \r
+\caption{PeCO protocol.}\r
+\label{fig2}\r
+\end{figure} \r
+\r
+We define two types of packets to be used by PeCO protocol:\r
+%\begin{enumerate}[(a)]\r
+\begin{itemize} \r
+\item INFO  packet: sent  by each  sensor node to  all the  nodes inside  a same\r
+  subregion for information exchange.\r
+\item ActiveSleep packet: sent  by the leader to all the  nodes in its subregion\r
+  to transmit to  them their respective status (stay Active  or go Sleep) during\r
+  sensing phase.\r
+\end{itemize}\r
+%\end{enumerate}\r
+\r
+Five status are possible for a sensor node in the network:\r
+%\begin{enumerate}[(a)] \r
+\begin{itemize} \r
+\item LISTENING: waits for a decision (to be active or not);\r
+\item COMPUTATION: executes the optimization algorithm as leader to\r
+  determine the activities scheduling;\r
+\item ACTIVE: node is sensing;\r
+\item SLEEP: node is turned off;\r
+\item COMMUNICATION: transmits or receives packets.\r
+\end{itemize}\r
+%\end{enumerate}\r
+%Below, we describe each phase in more details.\r
+\r
+\subsection{PeCO Protocol Algorithm}\r
+\r
+\noindent The  pseudocode implementing the  protocol on  a node is  given below.\r
+More  precisely,  Algorithm~\ref{alg:PeCO}  gives  a brief  description  of  the\r
+protocol applied by a sensor node $s_k$ where $k$ is the node index in the WSN.\r
+\r
+\begin{algorithm}[h!]                \r
+ % \KwIn{all the parameters related to information exchange}\r
+%  \KwOut{$winer-node$ (: the id of the winner sensor node, which is the leader of current round)}\r
+  \BlankLine\r
+  %\emph{Initialize the sensor node and determine it's position and subregion} \; \r
+  \r
+  \If{ $RE_k \geq E_{th}$ }{\r
+      \emph{$s_k.status$ = COMMUNICATION}\;\r
+      \emph{Send $INFO()$ packet to other nodes in subregion}\;\r
+      \emph{Wait $INFO()$ packet from other nodes in subregion}\; \r
+      \emph{Update K.CurrentSize}\;\r
+      \emph{LeaderID = Leader election}\;\r
+      \If{$ s_k.ID = LeaderID $}{\r
+         \emph{$s_k.status$ = COMPUTATION}\;\r
+         \r
+      \If{$ s_k.ID $ is Not previously selected as a Leader }{\r
+          \emph{ Execute the perimeter coverage model}\;\r
+         % \emph{ Determine the segment points using perimeter coverage model}\;\r
+      }\r
+      \r
+      \If{$ (s_k.ID $ is the same Previous Leader) And (K.CurrentSize = K.PreviousSize)}{\r
+      \r
+        \emph{ Use the same previous cover set for current sensing stage}\;\r
+      }\r
+      \Else{\r
+            \emph{Update $a^j_{ik}$; prepare data for IP~Algorithm}\;\r
+            \emph{$\left\{\left(X_{1},\dots,X_{l},\dots,X_{K}\right)\right\}$ = Execute Integer Program Algorithm($K$)}\;\r
+            \emph{K.PreviousSize = K.CurrentSize}\;\r
+           }\r
+      \r
+        \emph{$s_k.status$ = COMMUNICATION}\;\r
+        \emph{Send $ActiveSleep()$ to each node $l$ in subregion}\;\r
+        \emph{Update $RE_k $}\;\r
+      }          \r
+      \Else{\r
+        \emph{$s_k.status$ = LISTENING}\;\r
+        \emph{Wait $ActiveSleep()$ packet from the Leader}\;\r
+        \emph{Update $RE_k $}\;\r
+      }  \r
+  }\r
+  \Else { Exclude $s_k$ from entering in the current sensing stage}\r
+\caption{PeCO($s_k$)}\r
+\label{alg:PeCO}\r
+\end{algorithm}\r
+\r
+In this  algorithm, K.CurrentSize and K.PreviousSize  respectively represent the\r
+current number and  the previous number of living nodes in  the subnetwork of the\r
+subregion.  Initially, the sensor node checks its remaining energy $RE_k$, which\r
+must be greater than a threshold $E_{th}$ in order to participate in the current\r
+period.  Each  sensor node  determines its position  and its subregion  using an\r
+embedded  GPS or a  location discovery  algorithm. After  that, all  the sensors\r
+collect position coordinates,  remaining energy, sensor node ID,  and the number\r
+of their  one-hop live  neighbors during the  information exchange.  The sensors\r
+inside a same region cooperate to elect a leader. The selection criteria for the\r
+leader, in order of priority,  are: larger numbers of neighbors, larger remaining\r
+energy, and  then in case  of equality, larger  index.  Once chosen,  the leader\r
+collects information to formulate and  solve the integer program which allows to\r
+construct the set of active sensors in the sensing stage.\r
+\r
+%After the cooperation among the sensor nodes in the same subregion, the leader will be elected in distributed way, where each sensor node and based on it's information decide who is the leader. The selection criteria for the leader in order  of priority  are: larger number of neighbors,  larger remaining  energy, and  then in  case of equality, larger index. Thereafter,  if the sensor node is leader, it will execute the perimeter-coverage model for each sensor in the subregion in order to determine the segment points which would be used in the next stage by the optimization algorithm of the PeCO protocol. Every sensor node is selected as a leader, it is executed the perimeter coverage model only one time during it's life in the network.\r
+\r
+% The leader has the responsibility of applying the integer program algorithm (see section~\ref{cp}), which provides a set of sensors planned to be active in the sensing stage.  As leader, it will send an Active-Sleep packet to each sensor in the same subregion to inform it if it has to be active or not. On the contrary, if the sensor is not the leader, it will wait for the Active-Sleep packet to know its state for the sensing stage.\r
+\r
+\section{Perimeter-based Coverage Problem Formulation}\r
+\label{cp}\r
+\r
+\noindent In this  section, the coverage model is  mathematically formulated. We\r
+start  with a  description of the notations that will  be used  throughout the\r
+section.\\\r
+First, we have the following sets:\r
+\begin{itemize}\r
+\item $S$ represents the set of WSN sensor nodes;\r
+\item $A \subseteq S $ is the subset of alive sensors;\r
+\item  $I_j$  designates  the  set  of  coverage  intervals  (CI)  obtained  for\r
+  sensor~$j$.\r
+\end{itemize}\r
+$I_j$ refers to the set of  coverage intervals which have been defined according\r
+to the  method introduced in  subsection~\ref{CI}. For a coverage  interval $i$,\r
+let $a^j_{ik}$ denotes  the indicator function of whether  sensor~$k$ is involved\r
+in coverage interval~$i$ of sensor~$j$, that is:\r
+\begin{equation}\r
+a^j_{ik} = \left \{ \r
+\begin{array}{lll}\r
+  1 & \mbox{if sensor $k$ is involved in the } \\\r
+       &       \mbox{coverage interval $i$ of sensor $j$}, \\\r
+  0 & \mbox{otherwise.}\\\r
+\end{array} \right.\r
+%\label{eq12} \r
+%\notag\r
+\end{equation}\r
+Note that $a^k_{ik}=1$ by definition of the interval.\r
+%, where the objective is to find the maximum number of non-disjoint sets of sensor nodes such that each set cover can assure the coverage for the whole region so as to extend the network lifetime in WSN. Our model uses the PCL~\cite{huang2005coverage} in order to optimize the lifetime coverage in each subregion.\r
+%We defined some parameters, which are related to our optimization model. In our model,  we  consider binary variables $X_{k}$, which determine the activation of sensor $k$ in the sensing round $k$. .\r
+Second,  we define  several binary  and integer  variables.  Hence,  each binary\r
+variable $X_{k}$  determines the activation of  sensor $k$ in the  sensing phase\r
+($X_k=1$ if  the sensor $k$  is active or 0  otherwise).  $M^j_i$ is  an integer\r
+variable  which  measures  the  undercoverage  for  the  coverage  interval  $i$\r
+corresponding to  sensor~$j$. In  the same  way, the  overcoverage for  the same\r
+coverage interval is given by the variable $V^j_i$.\r
+\r
+If we decide to sustain a level of coverage equal to $l$ all along the perimeter\r
+of sensor  $j$, we have  to ensure  that at least  $l$ sensors involved  in each\r
+coverage  interval $i  \in I_j$  of  sensor $j$  are active.   According to  the\r
+previous notations, the number of active sensors in the coverage interval $i$ of\r
+sensor $j$  is given by  $\sum_{k \in A} a^j_{ik}  X_k$.  To extend  the network\r
+lifetime,  the objective  is to  activate a  minimal number  of sensors  in each\r
+period to  ensure the  desired coverage  level. As the  number of  alive sensors\r
+decreases, it becomes impossible to reach  the desired level of coverage for all\r
+coverage intervals. Therefore we use variables  $M^j_i$ and $V^j_i$ as a measure\r
+of the  deviation between  the desired  number of active  sensors in  a coverage\r
+interval and  the effective  number. And  we try  to minimize  these deviations,\r
+first to  force the  activation of  a minimal  number of  sensors to  ensure the\r
+desired coverage level, and if the desired level cannot be completely satisfied,\r
+to reach a coverage level as close as possible to the desired one.\r
+\r
+%A system of linear constraints is imposed to attempt to keep the coverage level in each coverage interval to within specified PCL. Since it is physically impossible to satisfy all constraints simultaneously, each constraint uses a variable to either record when the coverage level is achieved, or to record the deviation from the desired coverage level. These additional variables are embedded into an objective function to be minimized. \r
+\r
+%\noindent In this paper, let us define some parameters, which are used in our protocol.\r
+%the set of segment points is denoted by $I$, the set of all sensors in the network by $J$, and the set of alive sensors within $J$ by $K$.\r
+\r
+\r
+%\noindent \begin{equation}\r
+%X_{k} = \left \{ \r
+%\begin{array}{l l}\r
+ % 1& \mbox{if sensor $k$  is active,} \\\r
+%  0 &  \mbox{otherwise.}\\\r
+%\end{array} \right.\r
+%\label{eq11} \r
+%\notag\r
+%\end{equation}\r
+\r
+%\noindent $M^j_i (undercoverage): $ integer value $\in  \mathbb{N}$ for segment point $i$ of sensor $j$.\r
+\r
+%\noindent $V^j_i (overcoverage): $ integer value $\in  \mathbb{N}$ for segment point $i$ of sensor $j$.\r
+\r
+Our coverage optimization problem can then be mathematically expressed as follows: \r
+%Objective:\r
+\begin{equation} %\label{eq:ip2r}\r
+\left \{\r
+\begin{array}{ll}\r
+\min \sum_{j \in S} \sum_{i \in I_j} (\alpha^j_i ~ M^j_i + \beta^j_i ~ V^j_i )&\\\r
+\textrm{subject to :}&\\\r
+\sum_{k \in A} ( a^j_{ik} ~ X_{k}) + M^j_i  \geq l \quad \forall i \in I_j, \forall j \in S\\\r
+%\label{c1} \r
+\sum_{k \in A} ( a^j_{ik} ~ X_{k}) - V^j_i  \leq l \quad \forall i \in I_j, \forall j \in S\\\r
+% \label{c2}\r
+% \Theta_{p}\in \mathbb{N}, &\forall p \in P\\\r
+% U_{p} \in \{0,1\}, &\forall p \in P\\\r
+X_{k} \in \{0,1\}, \forall k \in A\r
+\end{array}\r
+\right.\r
+%\notag\r
+\end{equation}\r
+$\alpha^j_i$ and $\beta^j_i$  are nonnegative weights selected  according to the\r
+relative importance of satisfying the associated level of coverage. For example,\r
+weights associated with  coverage intervals of a specified part  of a region may\r
+be  given by a  relatively larger  magnitude than  weights associated  with another\r
+region. This  kind of integer program  is inspired from the  model developed for\r
+brachytherapy treatment planning  for optimizing dose  distribution\r
+\cite{0031-9155-44-1-012}. The integer  program must be solved by  the leader in\r
+each subregion at the beginning of  each sensing phase, whenever the environment\r
+has  changed (new  leader,  death of  some  sensors). Note  that  the number  of\r
+constraints in the model is constant  (constraints of coverage expressed for all\r
+sensors), whereas the number of variables $X_k$ decreases over periods, since we\r
+consider only alive  sensors (sensors with enough energy to  be alive during one\r
+sensing phase) in the model.\r
+\r
+\section{Performance Evaluation and Analysis}  \r
+\label{sec:Simulation Results and Analysis}\r
+%\noindent \subsection{Simulation Framework}\r
+\r
+\subsection{Simulation Settings}\r
+%\label{sub1}\r
+\r
+The WSN  area of interest is  supposed to be divided  into 16~regular subregions\r
+and we use the same energy consumption than in our previous work~\cite{Idrees2}.\r
+Table~\ref{table3} gives the chosen parameters settings.\r
+\r
+\begin{table}[ht]\r
+\tbl{Relevant parameters for network initialization \label{table3}}{\r
+% title of Table\r
+\centering\r
+% used for centering table\r
+\begin{tabular}{c|c}\r
+% centered columns (4 columns)\r
+\hline\r
+Parameter & Value  \\ [0.5ex]\r
+   \r
+\hline\r
+% inserts single horizontal line\r
+Sensing field & $(50 \times 25)~m^2 $   \\\r
+\r
+WSN size &  100, 150, 200, 250, and 300~nodes   \\\r
+%\hline\r
+Initial energy  & in range 500-700~Joules  \\  \r
+%\hline\r
+Sensing period & duration of 60 minutes \\\r
+$E_{th}$ & 36~Joules\\\r
+$R_s$ & 5~m   \\     \r
+%\hline\r
+$\alpha^j_i$ & 0.6   \\\r
+% [1ex] adds vertical space\r
+%\hline\r
+$\beta^j_i$ & 0.4\r
+%inserts single line\r
+\end{tabular}}\r
+\r
+% is used to refer this table in the text\r
+\end{table}\r
+To  obtain  experimental  results  which are  relevant,  simulations  with  five\r
+different node densities going from  100 to 300~nodes were performed considering\r
+each time 25~randomly  generated networks. The nodes are deployed  on a field of\r
+interest of $(50 \times 25)~m^2 $ in such a way that they cover the field with a\r
+high coverage ratio. Each node has an  initial energy level, in Joules, which is\r
+randomly drawn in the interval $[500-700]$.   If its energy provision reaches a\r
+value below  the threshold $E_{th}=36$~Joules,  the minimum energy needed  for a\r
+node  to stay  active during  one period,  it will  no more  participate in  the\r
+coverage task. This value corresponds to the energy needed by the sensing phase,\r
+obtained by multiplying  the energy consumed in active state  (9.72 mW) with the\r
+time in  seconds for one  period (3600 seconds), and  adding the energy  for the\r
+pre-sensing phases.  According  to the interval of initial energy,  a sensor may\r
+be active during at most 20 periods.\r
+\r
+The values  of $\alpha^j_i$ and  $\beta^j_i$ have been  chosen to ensure  a good\r
+network coverage and a longer WSN lifetime.  We have given a higher priority to\r
+the  undercoverage  (by  setting  the  $\alpha^j_i$ with  a  larger  value  than\r
+$\beta^j_i$)  so as  to prevent  the non-coverage  for the  interval~$i$ of  the\r
+sensor~$j$.  On the  other hand,  we have assigned to\r
+$\beta^j_i$ a value which is slightly lower so as to minimize the number of active sensor nodes which contribute\r
+in covering the interval.\r
+\r
+We introduce the following performance metrics to evaluate the efficiency of our\r
+approach.\r
+\r
+%\begin{enumerate}[i)]\r
+\begin{itemize}\r
+\item {\bf Network Lifetime}: the lifetime  is defined as the time elapsed until\r
+  the  coverage  ratio  falls  below a  fixed  threshold.   $Lifetime_{95}$  and\r
+  $Lifetime_{50}$  denote, respectively,  the  amount of  time  during which  is\r
+  guaranteed a  level of coverage  greater than $95\%$  and $50\%$. The  WSN can\r
+  fulfill the expected  monitoring task until all its nodes  have depleted their\r
+  energy or if the network is no  more connected. This last condition is crucial\r
+  because without  network connectivity a  sensor may not be  able to send  to a\r
+  base station an event it has sensed.\r
+\item {\bf  Coverage Ratio (CR)} : it  measures how  well the  WSN is  able to\r
+  observe the area of interest. In our  case, we discretized the sensor field as\r
+  a regular grid, which yields the following equation:\r
+  \r
+%\begin{equation*}\r
+\[\r
+    \scriptsize\r
+    \mbox{CR}(\%) = \frac{\mbox{$n$}}{\mbox{$N$}} \times 100\r
+\]\r
+%  \end{equation*}\r
+\r
+  where $n$  is the  number of covered  grid points by  active sensors  of every\r
+  subregions during  the current sensing phase  and $N$ is total  number of grid\r
+  points in  the sensing  field.  In  our simulations  we have  set a  layout of\r
+  $N~=~51~\times~26~=~1326$~grid points.\r
+\item {\bf Active Sensors Ratio (ASR)}: a  major objective of our protocol is to\r
+  activate  as few nodes as possible,  in order  to minimize  the communication\r
+  overhead and maximize the WSN lifetime. The active sensors ratio is defined as\r
+  follows:\r
+  %\begin{equation*}\r
+\[\r
+    \scriptsize\r
+    \mbox{ASR}(\%) =  \frac{\sum\limits_{r=1}^R \mbox{$|A_r^p|$}}{\mbox{$|S|$}} \times 100\r
+\]\r
+  %\end{equation*}\r
+  where $|A_r^p|$ is  the number of active  sensors in the subregion  $r$ in the\r
+  current sensing period~$p$, $|S|$ is the number of sensors in the network, and\r
+  $R$ is the number of subregions.\r
+\item {\bf Energy Consumption (EC)}: energy consumption can be seen as the total\r
+  energy  consumed by  the  sensors during  $Lifetime_{95}$ or  $Lifetime_{50}$,\r
+  divided by  the number of  periods. The value of  EC is computed  according to\r
+  this formula:\r
+  %\begin{equation*}\r
+\[  \r
+  \scriptsize\r
+    \mbox{EC} = \frac{\sum\limits_{p=1}^{P} \left( E^{\mbox{com}}_p+E^{\mbox{list}}_p+E^{\mbox{comp}}_p  \r
+      + E^{a}_p+E^{s}_p \right)}{P},\r
+\]\r
+ % \end{equation*}\r
+  where $P$ corresponds  to the number of periods. The  total energy consumed by\r
+  the  sensors  comes  through  taking   into  consideration  four  main  energy\r
+  factors. The first one, denoted $E^{\scriptsize \mbox{com}}_p$, represents the\r
+  energy consumption spent  by all the nodes for  wireless communications during\r
+  period $p$.  $E^{\scriptsize \mbox{list}}_p$,  the next factor, corresponds to\r
+  the energy  consumed by the sensors  in LISTENING status before  receiving the\r
+  decision to go active or sleep in period $p$.  $E^{\scriptsize \mbox{comp}}_p$\r
+  refers to  the energy  needed by  all the  leader nodes  to solve  the integer\r
+  program during a period.  Finally, $E^a_{p}$ and $E^s_{p}$ indicate the energy\r
+  consumed by the WSN during the sensing phase (active and sleeping nodes).\r
+\end{itemize}\r
+%\end{enumerate}\r
+\r
+\subsection{Simulation Results}\r
+\r
+In  order  to  assess and  analyze  the  performance  of  our protocol  we  have\r
+implemented PeCO protocol in  OMNeT++~\cite{varga} simulator.  Besides PeCO, two\r
+other  protocols,  described  in  the  next paragraph,  will  be  evaluated  for\r
+comparison purposes.   The simulations were run  on a DELL laptop  with an Intel\r
+Core~i3~2370~M (2.4~GHz)  processor (2  cores) whose MIPS  (Million Instructions\r
+Per Second) rate  is equal to 35330. To  be consistent with the use  of a sensor\r
+node based on  Atmels AVR ATmega103L microcontroller (6~MHz) having  a MIPS rate\r
+equal to 6,  the original execution time  on the laptop is  multiplied by 2944.2\r
+$\left(\frac{35330}{2} \times  \frac{1}{6} \right)$.  The modeling  language for\r
+Mathematical Programming (AMPL)~\cite{AMPL} is  employed to generate the integer\r
+program instance  in a  standard format, which  is then read  and solved  by the\r
+optimization solver  GLPK (GNU  linear Programming Kit  available in  the public\r
+domain) \cite{glpk} through a Branch-and-Bound method.\r
+\r
+As said previously, the PeCO is  compared to three other approaches. The first\r
+one,  called  DESK,  is  a  fully distributed  coverage  algorithm  proposed  by\r
+\cite{ChinhVu}. The second one,  called GAF~\cite{xu2001geography}, consists in\r
+dividing  the monitoring  area into  fixed  squares. Then,  during the  decision\r
+phase, in each square, one sensor is  chosen to remain active during the sensing\r
+phase. The last  one, the DiLCO protocol~\cite{Idrees2}, is  an improved version\r
+of a research work we presented in~\cite{idrees2014coverage}. Let us notice that\r
+PeCO and  DiLCO protocols are  based on the  same framework. In  particular, the\r
+choice for the simulations of a partitioning in 16~subregions was made because\r
+it corresponds to the configuration producing  the best results for DiLCO. The\r
+protocols are distinguished  from one another by the formulation  of the integer\r
+program providing the set of sensors which  have to be activated in each sensing\r
+phase. DiLCO protocol tries to satisfy the coverage of a set of primary points,\r
+whereas the PeCO protocol objective is to reach a desired level of coverage for each\r
+sensor perimeter. In our experimentations, we chose a level of coverage equal to\r
+one ($l=1$).\r
+\r
+\subsubsection{\bf Coverage Ratio}\r
+\r
+Figure~\ref{fig333}  shows the  average coverage  ratio for  200 deployed  nodes\r
+obtained with the  four protocols. DESK, GAF, and DiLCO  provide a slightly better\r
+coverage ratio with respectively 99.99\%,  99.91\%, and 99.02\%, compared to the 98.76\%\r
+produced by  PeCO for the  first periods. This  is due to  the fact that  at the\r
+beginning the DiLCO protocol  puts to  sleep status  more redundant  sensors (which\r
+slightly decreases the coverage ratio), while the three other protocols activate\r
+more sensor  nodes. Later, when the  number of periods is  beyond~70, it clearly\r
+appears that  PeCO provides a better  coverage ratio and keeps  a coverage ratio\r
+greater  than 50\%  for  longer periods  (15  more compared  to  DiLCO, 40  more\r
+compared to DESK). The energy saved by  PeCO in the early periods allows later a\r
+substantial increase of the coverage performance.\r
+\r
+\parskip 0pt    \r
+\begin{figure}[h!]\r
+\centering\r
+ \includegraphics[scale=0.5] {R/CR.eps} \r
+\caption{Coverage ratio for 200 deployed nodes.}\r
+\label{fig333}\r
+\end{figure} \r
+\r
+%When the number of periods increases, coverage ratio produced by DESK and GAF protocols decreases. This is due to dead nodes. However, DiLCO protocol maintains almost a good coverage from the round 31 to the round 63 and it is close to PeCO protocol. The coverage ratio of PeCO protocol is better than other approaches from the period 64.\r
+\r
+%because the optimization algorithm used by PeCO has been optimized the lifetime coverage based on the perimeter coverage model, so it provided acceptable coverage for a larger number of periods and prolonging the network lifetime based on the perimeter of the sensor nodes in each subregion of WSN. Although some nodes are dead, sensor activity scheduling based optimization of PeCO selected another nodes to ensure the coverage of the area of interest. i.e. DiLCO-16 showed a good coverage in the beginning then PeCO, when the number of periods increases, the coverage ratio decreases due to died sensor nodes. Meanwhile, thanks to sensor activity scheduling based new optimization model, which is used by PeCO protocol to ensure a longer lifetime coverage in comparison with other approaches. \r
+\r
+\r
+\subsubsection{\bf Active Sensors Ratio}\r
+\r
+Having the less active sensor nodes in  each period is essential to minimize the\r
+energy consumption  and thus to  maximize the network  lifetime.  Figure~\ref{fig444}\r
+shows the  average active nodes ratio  for 200 deployed nodes.   We observe that\r
+DESK and  GAF have 30.36  \% and  34.96 \% active  nodes for the  first fourteen\r
+rounds and  DiLCO and PeCO  protocols compete perfectly  with only 17.92~\% and\r
+20.16~\% active  nodes during the same  time interval. As the  number of periods\r
+increases, PeCO protocol  has a lower number of active  nodes in comparison with\r
+the three other approaches, while keeping a greater coverage ratio as shown in\r
+Figure \ref{fig333}.\r
+\r
+\begin{figure}[h!]\r
+\centering\r
+\includegraphics[scale=0.5]{R/ASR.eps}  \r
+\caption{Active sensors ratio for 200 deployed nodes.}\r
+\label{fig444}\r
+\end{figure} \r
+\r
+\subsubsection{\bf Energy Consumption}\r
+\r
+We studied the effect of the energy  consumed by the WSN during the communication,\r
+computation, listening, active, and sleep status for different network densities\r
+and  compared  it for  the  four  approaches.  Figures~\ref{fig3EC}(a)  and  (b)\r
+illustrate  the  energy   consumption  for  different  network   sizes  and  for\r
+$Lifetime95$ and  $Lifetime50$. The results show  that our PeCO protocol  is the\r
+most competitive  from the energy  consumption point of  view. As shown  in both\r
+figures, PeCO consumes much less energy than the three other methods.  One might\r
+think that the  resolution of the integer  program is too costly  in energy, but\r
+the  results show  that it  is very  beneficial to  lose a  bit of  time in  the\r
+selection of  sensors to  activate.  Indeed the  optimization program  allows to\r
+reduce significantly the number of active  sensors and so the energy consumption\r
+while keeping a good coverage level.\r
+\r
+\begin{figure}[h!]\r
+  \centering\r
+  \begin{tabular}{@{}cr@{}}\r
+    \includegraphics[scale=0.475]{R/EC95.eps} & \raisebox{2.75cm}{(a)} \\\r
+    \includegraphics[scale=0.475]{R/EC50.eps} & \raisebox{2.75cm}{(b)}\r
+  \end{tabular}\r
+  \caption{Energy consumption per period for (a)~$Lifetime_{95}$ and (b)~$Lifetime_{50}$.}\r
+  \label{fig3EC}\r
+\end{figure} \r
+\r
+%The optimization algorithm, which used by PeCO protocol,  was improved the lifetime coverage efficiently based on the perimeter coverage model.\r
+\r
+ %The other approaches have a high energy consumption due to activating a larger number of sensors. In fact,  a distributed  method on the subregions greatly reduces the number of communications and the time of listening so thanks to the partitioning of the initial network into several independent subnetworks. \r
+\r
+\r
+%\subsubsection{Execution Time}\r
+\r
+\subsubsection{\bf Network Lifetime}\r
+\r
+We observe the superiority of PeCO and DiLCO protocols in comparison with the\r
+two    other   approaches    in    prolonging   the    network   lifetime.    In\r
+Figures~\ref{fig3LT}(a)  and (b),  $Lifetime95$ and  $Lifetime50$ are  shown for\r
+different  network  sizes.   As  highlighted  by  these  figures,  the  lifetime\r
+increases with the size  of the network, and it is clearly   largest for DiLCO\r
+and PeCO  protocols.  For instance,  for a  network of 300~sensors  and coverage\r
+ratio greater than 50\%, we can  see on Figure~\ref{fig3LT}(b) that the lifetime\r
+is about twice longer with  PeCO compared to DESK protocol.  The performance\r
+difference    is    more    obvious   in    Figure~\ref{fig3LT}(b)    than    in\r
+Figure~\ref{fig3LT}(a) because the gain induced  by our protocols increases with\r
+ time, and the lifetime with a coverage  of 50\% is far  longer than with\r
+95\%.\r
+\r
+\begin{figure}[h!]\r
+  \centering\r
+  \begin{tabular}{@{}cr@{}}\r
+    \includegraphics[scale=0.475]{R/LT95.eps} & \raisebox{2.75cm}{(a)} \\  \r
+    \includegraphics[scale=0.475]{R/LT50.eps} & \raisebox{2.75cm}{(b)}\r
+  \end{tabular}\r
+  \caption{Network Lifetime for (a)~$Lifetime_{95}$ \\\r
+    and (b)~$Lifetime_{50}$.}\r
+  \label{fig3LT}\r
+\end{figure} \r
+\r
+%By choosing the best suited nodes, for each period, by optimizing the coverage and lifetime of the network to cover the area of interest and by letting the other ones sleep in order to be used later in next rounds, PeCO protocol efficiently prolonged the network lifetime especially for a coverage ratio greater than $50 \%$, whilst it stayed very near to  DiLCO-16 protocol for $95 \%$.\r
+\r
+Figure~\ref{figLTALL}  compares  the  lifetime  coverage of  our  protocols  for\r
+different coverage  ratios. We denote by  Protocol/50, Protocol/80, Protocol/85,\r
+Protocol/90, and  Protocol/95 the amount  of time  during which the  network can\r
+satisfy an area coverage greater than $50\%$, $80\%$, $85\%$, $90\%$, and $95\%$\r
+respectively, where the term Protocol refers to  DiLCO  or PeCO.  Indeed there  are applications\r
+that do not require a 100\% coverage of  the area to be monitored. PeCO might be\r
+an interesting  method since  it achieves  a good balance  between a  high level\r
+coverage ratio and network lifetime. PeCO always outperforms DiLCO for the three\r
+lower  coverage  ratios,  moreover  the   improvements  grow  with  the  network\r
+size. DiLCO is better  for coverage ratios near 100\%, but in  that case PeCO is\r
+not ineffective for the smallest network sizes.\r
+\r
+\begin{figure}[h!]\r
+\centering \includegraphics[scale=0.5]{R/LTa.eps}\r
+\caption{Network lifetime for different coverage ratios.}\r
+\label{figLTALL}\r
+\end{figure} \r
+\r
+%Comparison shows that PeCO protocol, which are used distributed optimization over the subregions, is the more relevance one for most coverage ratios and WSN sizes because it is robust to network disconnection during the network lifetime as well as it consume less energy in comparison with other approaches. PeCO protocol gave acceptable coverage ratio for a larger number of periods using new optimization algorithm that based on a perimeter coverage model. It also means that distributing the algorithm in each node and subdividing the sensing field into many subregions, which are managed independently and simultaneously, is the most relevant way to maximize the lifetime of a network.\r
+\r
+\r
+\section{Conclusion and Future Works}\r
+\label{sec:Conclusion and Future Works}\r
+\r
+In this paper  we have studied the problem of  Perimeter-based Coverage Optimization in\r
+WSNs. We have designed  a new protocol, called Perimeter-based  Coverage Optimization, which\r
+schedules nodes'  activities (wake up  and sleep  stages) with the  objective of\r
+maintaining a  good coverage ratio  while maximizing the network  lifetime. This\r
+protocol is  applied in a distributed  way in regular subregions  obtained after\r
+partitioning the area of interest in a preliminary step. It works in periods and\r
+is based on the resolution of an integer program to select the subset of sensors\r
+operating in active status for each period. Our work is original in so far as it\r
+proposes for  the first  time an  integer program  scheduling the  activation of\r
+sensors  based on  their perimeter  coverage level,  instead of  using a  set of\r
+targets/points to be covered.\r
+\r
+%To cope with this problem, the area of interest is divided into a smaller subregions using  divide-and-conquer method, and then a PeCO protocol for optimizing the lifetime coverage in each subregion. PeCO protocol combines two efficient techniques:  network\r
+%leader election, which executes the perimeter coverage model (only one time), the optimization algorithm, and sending the schedule produced by the optimization algorithm to other nodes in the subregion ; the second, sensor activity scheduling based optimization in which a new lifetime coverage optimization model is proposed. The main challenges include how to select the  most efficient leader in each subregion and the best schedule of sensor nodes that will optimize the network lifetime coverage\r
+%in the subregion. \r
+%The network lifetime coverage in each subregion is divided into\r
+%periods, each period consists  of four stages: (i) Information Exchange,\r
+%(ii) Leader Election, (iii) a Decision based new optimization model in order to\r
+%select the  nodes remaining  active for the last stage,  and  (iv) Sensing.\r
+We  have carried out  several simulations  to  evaluate the  proposed protocol.   The\r
+simulation  results  show   that  PeCO  is  more   energy-efficient  than  other\r
+approaches, with respect to lifetime,  coverage ratio, active sensors ratio, and\r
+energy consumption.\r
+%Indeed, when dealing with large and dense WSNs, a distributed optimization approach on the subregions of WSN like the one we are proposed allows to reduce the difficulty of a single global optimization problem by partitioning it in many smaller problems, one per subregion, that can be solved more easily. We have  identified different  research directions  that arise  out of  the work presented here.\r
+We plan to extend our framework so that the schedules are planned for multiple\r
+sensing periods.\r
+%in order to compute all active sensor schedules in only one step for many periods;\r
+We also want  to improve our integer program to  take into account heterogeneous\r
+sensors  from both  energy  and node  characteristics point of views.\r
+%the third, we are investigating new optimization model based on the sensing range so as to maximize the lifetime coverage in WSN;\r
+Finally,  it   would  be   interesting  to  implement   our  protocol   using  a\r
+sensor-testbed to evaluate it in real world applications.\r
+\r
+\r
+\r
+\r
+\r
+% Acknowledgments\r
+\begin{acks}\r
+As a  Ph.D.   student, Ali Kadhum IDREES  would  like to  gratefully\r
+acknowledge the  University of Babylon -  IRAQ for financial support  and Campus\r
+France for the  received support. This work is also partially funded by the Labex ACTION program (contract ANR-11-LABX-01-01). \r
+%The authors would like to thank Dr. Maura Turolla of Telecom\r
+%Italia for providing specifications about the application scenario.\r
+\end{acks}\r
+\r
+% Bibliography\r
+\bibliographystyle{ACM-Reference-Format-Journals}\r
+\bibliography{biblio}\r
+                             % Sample .bib file with references that match those in\r
+                             % the 'Specifications Document (V1.5)' as well containing\r
+                             % 'legacy' bibs and bibs with 'alternate codings'.\r
+                             % Gerry Murray - March 2012\r
+\r
+% History dates\r
+\received{February 2015}{}{}\r
+\r
+\r
+\r
+\end{document}\r
+% End of v2-acmsmall-sample.tex (March 2012) - Gerry Murray, ACM\r
+\r
+\r
diff --git a/PeCO/articleref.aux b/PeCO/articleref.aux
new file mode 100644 (file)
index 0000000..1e49091
--- /dev/null
@@ -0,0 +1,52 @@
+\relax 
+\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}}
+\@writefile{toc}{\contentsline {section}{\numberline {2}MMSN Protocol}{2}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Frequency Assignment}{2}}
+\newlabel{eqn:01}{{1}{2}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.1}Exclusive Frequency Assignment}{2}}
+\@writefile{loa}{\contentsline {algocf}{\numberline {1}{\ignorespaces Frequency Number Computation}}{3}}
+\newlabel{alg:one}{{1}{3}}
+\@writefile{toc}{\contentsline {paragraph}{Eavesdropping}{3}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Basic Notations}{3}}
+\@writefile{toc}{\contentsline {section}{\numberline {3}Simulator}{3}}
+\newlabel{sec:sim}{{3}{3}}
+\newlabel{fig:one}{{1}{4}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Problem Formulation}{4}}
+\@writefile{toc}{\contentsline {section}{\numberline {4}Performance Evaluation}{4}}
+\citation{Abril07}
+\citation{Cohen07}
+\citation{JCohen96}
+\citation{Kosiur01}
+\citation{Harel79}
+\citation{Editor00}
+\citation{Editor00a}
+\citation{Spector90}
+\citation{Douglass98}
+\citation{Knuth97}
+\citation{Andler79}
+\citation{Smith10}
+\citation{VanGundy07}
+\citation{Harel78}
+\citation{Clarkson85}
+\citation{anisi03}
+\citation{Thornburg01}
+\citation{Ablamowicz07}
+\citation{Poker06}
+\citation{Obama08}
+\citation{Novak03}
+\citation{Lee05}
+\citation{JoeScientist001}
+\citation{rous08}
+\citation{SaeediMEJ10}
+\citation{SaeediJETC10}
+\citation{Kirschmer:2010:AEI:1958016.1958018}
+\citation{MR781536}
+\citation{MR781537}
+\newlabel{tab:one}{{I}{5}}
+\@writefile{toc}{\contentsline {section}{\numberline {5}Conclusions}{5}}
+\@writefile{toc}{\contentsline {section}{\numberline {6}Typical references in new ACM Reference Format}{5}}
+\bibstyle{ACM-Reference-Format-Journals}
+\bibdata{acmsmall-sample-bibfile}
+\lastpage{6}
+\@writefile{toc}{\contentsline {section}{\numberline {A}This is an example of Appendix section head}{App--1}}
+\@writefile{toc}{\contentsline {section}{\numberline {B}Appendix section head}{App--1}}
diff --git a/PeCO/articleref.log b/PeCO/articleref.log
new file mode 100644 (file)
index 0000000..61774c7
--- /dev/null
@@ -0,0 +1,438 @@
+This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012/Debian) (format=pdflatex 2013.9.3)  6 FEB 2015 13:54
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**articleref.tex
+(./articleref.tex
+LaTeX2e <2011/06/27>
+Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, lo
+aded.
+(./acmsmall.cls
+Document Class: acmsmall 2012/03/05, fonts included on 28 June 2010
+(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2006/04/12  ver 3.3  Verb mode for urls, etc.
+)
+ACM, Production Font style: 2010/06/28 by Aptara
+
+Using ACM, TECS option: 2010/05/04 by Aptara
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/latexsym.sty
+Package: latexsym 1998/08/17 v2.2e Standard LaTeX package (lasy symbols)
+\symlasy=\mathgroup4
+LaTeX Font Info:    Overwriting symbol font `lasy' in version `bold'
+(Font)                  U/lasy/m/n --> U/lasy/b/n on input line 47.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty
+Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg
+File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
+)
+Package color Info: Driver file: pdftex.def on input line 130.
+
+(/usr/share/texlive/texmf-dist/tex/latex/pdftex-def/pdftex.def
+File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count79
+))
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
+Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
+\KV@toks@=\toks14
+)
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
+Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
+Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg
+File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
+)
+Package graphics Info: Driver file: pdftex.def on input line 91.
+)
+\Gin@req@height=\dimen102
+\Gin@req@width=\dimen103
+)
+Document Class `acmsmall' Electronic Submissions v1.4 <July 09, 2012> (ACM).
+\@firstpg=\count80
+\@lastpg=\count81
+\trimheight=\dimen104
+\trimwidth=\dimen105
+\normaltextheight=\dimen106
+\tempdimen=\dimen107
+\tempbox=\box26
+\tbbox=\box27
+\tabledim=\dimen108
+\symnewlargesymbols=\mathgroup5
+LaTeX Font Info:    Redeclaring math symbol \bigsqcup on input line 2328.
+\normalparindent=\dimen109
+\footheight=\skip41
+\@maxsep=\skip42
+\@dblmaxsep=\skip43
+\@totalpg=\count82
+\@abstract=\box28
+\@permissionbox=\box29
+\c@part=\count83
+\c@section=\count84
+\c@subsection=\count85
+\c@subsubsection=\count86
+\c@paragraph=\count87
+\enumdim=\dimen110
+\c@theorem=\count88
+\belowcaptionskip=\skip44
+\abovecaptionskip=\skip45
+\c@figure=\count89
+\c@table=\count90
+\@narrowfig=\dimen111
+\@nfigbox=\box30
+\@nfcapbox=\box31
+\@nfigbox=\box32
+\@nfcapbox=\box33
+\bibindent=\dimen112
+LaTeX Font Info:    Overwriting math alphabet `\mathbb' in version `normal'
+(Font)                  OT1/ams/bx/n --> OT1/ams/bx/n on input line 3910.
+LaTeX Font Info:    Overwriting math alphabet `\mathbb' in version `bold'
+(Font)                  OT1/ams/bx/n --> OT1/ams/bx/n on input line 3911.
+) (/usr/share/texlive/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty
+Package: algorithm2e 2008/00/00 v3.10 algorithms environments
+\c@AlgoLine=\count91
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty
+Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty
+Package: xspace 2009/10/20 v1.13 Space after command names (DPC,MH)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/relsize/relsize.sty
+Package: relsize 2011/09/21 ver 4.0
+
+Examine \normalsize starts \@setfontsize size may be \@xpt. 
+Examine \small starts \@setfontsize size may be \@ixpt. 
+Examine \footnotesize starts \@setfontsize size may be \@viiipt. 
+Examine \large starts \@setfontsize size may be \@xiipt. 
+Examine \Large starts \@setfontsize size may be \@xivpt. 
+Examine \LARGE starts \@setfontsize size may be \@xviipt. 
+Examine \scriptsize starts \@setfontsize size may be \@viipt. 
+Examine \tiny starts \@setfontsize size may be \@vpt. 
+Examine \huge starts \@setfontsize size may be \@xxpt. 
+Examine \Huge starts \@setfontsize size may be \@xxvpt. )
+********************************************************
+Package `algorithm2e' Release 4.01 -- december 14 2009 --
+- algorithm2e-announce@lirmm.fr mailing list for announcement about releases
+- algorithm2e-discussion@lirmm.fr mailing list for discussion about package
+subscribe by emailing sympa@lirmm.fr with 'subscribe <list> <firstname name>'
+- Author: Christophe Fiorio (fiorio@lirmm.fr)
+********************************************************
+\skiptotal=\skip46
+\skiplinenumber=\skip47
+\skiprule=\skip48
+\skiphlne=\skip49
+\skiptext=\skip50
+\skiplength=\skip51
+\algomargin=\skip52
+\skipalgocfslide=\skip53
+\algowidth=\dimen113
+\inoutsize=\dimen114
+\inoutline=\dimen115
+\interspacetitleruled=\dimen116
+\interspacealgoruled=\dimen117
+\interspacetitleboxruled=\dimen118
+\algocf@inoutbox=\box34
+\algocf@inputbox=\box35
+\AlCapSkip=\skip54
+\AlCapHSkip=\skip55
+\algocf@nlbox=\box36
+\algocf@hangingbox=\box37
+\algocf@capbox=\box38
+\algoheightruledefault=\skip56
+\algoheightrule=\skip57
+\algotitleheightruledefault=\skip58
+\algotitleheightrule=\skip59
+\c@algocfline=\count92
+\c@algocfproc=\count93
+\c@algocf=\count94
+\algocf@algoframe=\box39
+\algocf@algobox=\box40
+) (./articleref.aux)
+\openout1 = `articleref.aux'.
+
+LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 33.
+LaTeX Font Info:    ... okay on input line 33.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 33.
+LaTeX Font Info:    ... okay on input line 33.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 33.
+LaTeX Font Info:    ... okay on input line 33.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 33.
+LaTeX Font Info:    ... okay on input line 33.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 33.
+LaTeX Font Info:    ... okay on input line 33.
+LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 33.
+LaTeX Font Info:    ... okay on input line 33.
+LaTeX Font Info:    Try loading font information for OT1+pnc on input line 33.
+ (/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1pnc.fd
+File: ot1pnc.fd 2001/06/04 font definitions for OT1/pnc.
+) (/usr/share/texlive/texmf-dist/tex/context/base/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count95
+\scratchdimen=\dimen119
+\scratchbox=\box41
+\nofMPsegments=\count96
+\nofMParguments=\count97
+\everyMPshowfont=\toks15
+\MPscratchCnt=\count98
+\MPscratchDim=\dimen120
+\MPnumerator=\count99
+\makeMPintoPDFobject=\count100
+\everyMPtoPDFconversion=\toks16
+) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
+Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO
+)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty
+Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO)
+Package ifpdf Info: pdfTeX in PDF mode is detected.
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty
+Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty
+Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty
+Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO)
+))
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
+Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO)
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty
+Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds)             That can mean that you are not using pdfTeX 1.50 or
+(etexcmds)             that some package has redefined \expanded.
+(etexcmds)             In the latter case, load this package earlier.
+)))
+Package grfext Info: Graphics extension search list:
+(grfext)             [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE
+G,.JBIG2,.JB2,.eps]
+(grfext)             \AppendGraphicsExtensions on input line 452.
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
+File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
+e
+))
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <8> on input line 113.
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <6> on input line 113.
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <5> on input line 113.
+LaTeX Font Info:    Try loading font information for U+lasy on input line 113.
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/ulasy.fd
+File: ulasy.fd 1998/08/17 v2.2e LaTeX symbol font definitions
+)
+LaTeX Font Info:    Try loading font information for OMS+pnc on input line 113.
+
+
+(/usr/share/texlive/texmf-dist/tex/latex/psnfss/omspnc.fd
+File: omspnc.fd 
+)
+LaTeX Font Info:    Font shape `OMS/pnc/m/n' in size <8> not available
+(Font)              Font shape `OMS/cmsy/m/n' tried instead on input line 113.
+LaTeX Font Info:    Try loading font information for OT1+phv on input line 115.
+
+
+(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1phv.fd
+File: ot1phv.fd 2001/06/04 scalable font definitions for OT1/phv.
+)
+LaTeX Font Info:    Font shape `OT1/phv/bx/n' in size <12> not available
+(Font)              Font shape `OT1/phv/b/n' tried instead on input line 115.
+LaTeX Font Info:    Font shape `OT1/pnc/bx/n' in size <8> not available
+(Font)              Font shape `OT1/pnc/b/n' tried instead on input line 115.
+LaTeX Font Info:    Font shape `OT1/phv/bx/n' in size <9> not available
+(Font)              Font shape `OT1/phv/b/n' tried instead on input line 118.
+
+Overfull \vbox (72.27pt too high) has occurred while \output is active []
+
+ [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}
+Non-PDF special ignored!
+
+]
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <7> on input line 169.
+
+Underfull \hbox (badness 10000) in paragraph at lines 189--199
+[]\OT1/pnc/m/n/10 So pro-to-cols [Bahl 2002,Culler 2001,Zhou 2006,Adya 2001,Cul
+ler 2001;
+ []
+
+LaTeX Font Info:    Font shape `OT1/phv/m/it' in size <9> not available
+(Font)              Font shape `OT1/phv/m/sl' tried instead on input line 203.
+[2]
+LaTeX Font Info:    Font shape `OT1/pnc/bx/n' in size <9> not available
+(Font)              Font shape `OT1/pnc/b/n' tried instead on input line 226.
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <9> on input line 226.
+LaTeX Font Info:    Font shape `OT1/pnc/bx/n' in size <10> not available
+(Font)              Font shape `OT1/pnc/b/n' tried instead on input line 247.
+ [3] <acmsmall-mouse.pdf, id=33, 151.56625pt x 134.5025pt>
+File: acmsmall-mouse.pdf Graphic file (type pdf)
+
+<use acmsmall-mouse.pdf>
+Package pdftex.def Info: acmsmall-mouse.pdf used on input line 300.
+(pdftex.def)             Requested size: 151.56587pt x 134.50215pt.
+ [4 <./acmsmall-mouse.pdf>]
+
+LaTeX Warning: Citation `Abril07' on page 5 undefined on input line 393.
+
+
+LaTeX Warning: Citation `Cohen07' on page 5 undefined on input line 394.
+
+
+LaTeX Warning: Citation `JCohen96' on page 5 undefined on input line 394.
+
+
+LaTeX Warning: Citation `Kosiur01' on page 5 undefined on input line 395.
+
+
+LaTeX Warning: Citation `Harel79' on page 5 undefined on input line 396.
+
+
+LaTeX Warning: Citation `Editor00' on page 5 undefined on input line 396.
+
+
+LaTeX Warning: Citation `Editor00a' on page 5 undefined on input line 398.
+
+
+LaTeX Warning: Citation `Spector90' on page 5 undefined on input line 399.
+
+
+LaTeX Warning: Citation `Douglass98' on page 5 undefined on input line 400.
+
+
+LaTeX Warning: Citation `Knuth97' on page 5 undefined on input line 400.
+
+
+LaTeX Warning: Citation `Andler79' on page 5 undefined on input line 402.
+
+
+LaTeX Warning: Citation `Smith10' on page 5 undefined on input line 403.
+
+
+LaTeX Warning: Citation `VanGundy07' on page 5 undefined on input line 404.
+
+
+LaTeX Warning: Citation `Harel78' on page 5 undefined on input line 405.
+
+
+LaTeX Warning: Citation `Clarkson85' on page 5 undefined on input line 405.
+
+
+LaTeX Warning: Citation `anisi03' on page 5 undefined on input line 406.
+
+
+LaTeX Warning: Citation `Thornburg01' on page 5 undefined on input line 406.
+
+
+LaTeX Warning: Citation `Ablamowicz07' on page 5 undefined on input line 406.
+
+
+LaTeX Warning: Citation `Poker06' on page 5 undefined on input line 407.
+
+
+LaTeX Warning: Citation `Obama08' on page 5 undefined on input line 407.
+
+
+LaTeX Warning: Citation `Novak03' on page 5 undefined on input line 407.
+
+
+LaTeX Warning: Citation `Lee05' on page 5 undefined on input line 408.
+
+
+LaTeX Warning: Citation `JoeScientist001' on page 5 undefined on input line 408
+.
+
+
+LaTeX Warning: Citation `rous08' on page 5 undefined on input line 409.
+
+
+LaTeX Warning: Citation `SaeediMEJ10' on page 5 undefined on input line 410.
+
+
+LaTeX Warning: Citation `SaeediJETC10' on page 5 undefined on input line 410.
+
+
+LaTeX Warning: Citation `Kirschmer:2010:AEI:1958016.1958018' on page 5 undefine
+d on input line 411.
+
+
+LaTeX Warning: Citation `MR781536' on page 5 undefined on input line 413.
+
+
+LaTeX Warning: Citation `MR781537' on page 5 undefined on input line 413.
+
+
+Underfull \vbox (badness 6575) has occurred while \output is active []
+
+ [5]
+No file articleref.bbl.
+[6] [1
+
+] (./articleref.aux) ) 
+Here is how much of TeX's memory you used:
+ 3404 strings out of 495059
+ 45219 string characters out of 3182031
+ 123562 words of memory out of 3000000
+ 6531 multiletter control sequences out of 15000+200000
+ 33034 words of font info for 66 fonts, out of 3000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 38i,17n,27p,307b,499s stack positions out of 5000i,500n,10000p,200000b,50000s
+{/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.en
+c}</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></us
+r/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi5.pfb></usr/share
+/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi6.pfb></usr/share/texliv
+e/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb></usr/share/texlive/texmf
+-dist/fonts/type1/public/amsfonts/cm/cmmi9.pfb></usr/share/texlive/texmf-dist/f
+onts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/texmf-dist/fonts/ty
+pe1/public/amsfonts/cm/cmr5.pfb></usr/share/texlive/texmf-dist/fonts/type1/publ
+ic/amsfonts/cm/cmr6.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfo
+nts/cm/cmr7.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/c
+mr8.pfb></usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr9.pfb>
+</usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/
+share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy8.pfb></usr/share/t
+exlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy9.pfb></usr/share/texlive/
+texmf-dist/fonts/type1/public/amsfonts/cm/cmtt8.pfb></usr/share/texlive/texmf-d
+ist/fonts/type1/urw/helvetic/uhvb8a.pfb></usr/share/texlive/texmf-dist/fonts/ty
+pe1/urw/helvetic/uhvr8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/helv
+etic/uhvro8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/ncntrsbk/uncb8a
+.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/ncntrsbk/uncr8a.pfb></usr/s
+hare/texlive/texmf-dist/fonts/type1/urw/ncntrsbk/uncri8a.pfb>
+Output written on articleref.pdf (7 pages, 216219 bytes).
+PDF statistics:
+ 118 PDF objects out of 1000 (max. 8388607)
+ 85 compressed objects within 1 object stream
+ 0 named destinations out of 1000 (max. 500000)
+ 6 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/PeCO/articleref.pdf b/PeCO/articleref.pdf
new file mode 100644 (file)
index 0000000..a173711
Binary files /dev/null and b/PeCO/articleref.pdf differ
diff --git a/PeCO/articleref.tex b/PeCO/articleref.tex
new file mode 100644 (file)
index 0000000..230cc8f
--- /dev/null
@@ -0,0 +1,486 @@
+% v2-acmsmall-sample.tex, dated March 6 2012\r
+% This is a sample file for ACM small trim journals\r
+%\r
+% Compilation using 'acmsmall.cls' - version 1.3 (March 2012), Aptara Inc.\r
+% (c) 2010 Association for Computing Machinery (ACM)\r
+%\r
+% Questions/Suggestions/Feedback should be addressed to => "acmtexsupport@aptaracorp.com".\r
+% Users can also go through the FAQs available on the journal's submission webpage.\r
+%\r
+% Steps to compile: latex, bibtex, latex latex\r
+%\r
+% For tracking purposes => this is v1.3 - March 2012\r
+\r
+\documentclass[prodmode,acmtecs]{acmsmall} % Aptara syntax\r
+\r
+% Package to generate and customize Algorithm as per ACM style\r
+\usepackage[ruled]{algorithm2e}\r
+\renewcommand{\algorithmcfname}{ALGORITHM}\r
+\SetAlFnt{\small}\r
+\SetAlCapFnt{\small}\r
+\SetAlCapNameFnt{\small}\r
+\SetAlCapHSkip{0pt}\r
+\IncMargin{-\parindent}\r
+\r
+% Metadata Information\r
+\acmVolume{9}\r
+\acmNumber{4}\r
+\acmArticle{39}\r
+\acmYear{2010}\r
+\acmMonth{3}\r
+\r
+% Document starts\r
+\begin{document}\r
+\r
+% Page heads\r
+\markboth{G. Zhou et al.}{A Multifrequency MAC Specially Designed for WSN Applications}\r
+\r
+% Title portion\r
+\title{A Multifrequency MAC Specially Designed for Wireless Sensor Network Applications}\r
+\author{GANG ZHOU\r
+\affil{College of William and Mary}\r
+YAFENG WU\r
+\affil{University of Virginia}\r
+TING YAN\r
+\affil{Eaton Innovation Center}\r
+TIAN HE\r
+\affil{University of Minnesota}\r
+CHENGDU HUANG\r
+\affil{Google}\r
+JOHN A. STANKOVIC\r
+\affil{University of Virginia}\r
+TAREK F. ABDELZAHER\r
+\affil{University of Illinois at Urbana-Champaign}}\r
+% NOTE! Affiliations placed here should be for the institution where the\r
+%       BULK of the research was done. If the author has gone to a new\r
+%       institution, before publication, the (above) affiliation should NOT be changed.\r
+%       The authors 'current' address may be given in the "Author's addresses:" block (below).\r
+%       So for example, Mr. Abdelzaher, the bulk of the research was done at UIUC, and he is\r
+%       currently affiliated with NASA.\r
+\r
+\begin{abstract}\r
+Multifrequency media access control has been well understood in\r
+general wireless ad hoc networks, while in wireless sensor networks,\r
+researchers still focus on single frequency solutions. In wireless\r
+sensor networks, each device is typically equipped with a single\r
+radio transceiver and applications adopt much smaller packet sizes\r
+compared to those in general wireless ad hoc networks. Hence, the\r
+multifrequency MAC protocols proposed for general wireless ad hoc\r
+networks are not suitable for wireless sensor network applications,\r
+which we further demonstrate through our simulation experiments. In\r
+this article, we propose MMSN, which takes advantage of\r
+multifrequency availability while, at the same time, takes into\r
+consideration the restrictions of wireless sensor networks. Through\r
+extensive experiments, MMSN exhibits the prominent ability to utilize\r
+parallel transmissions among neighboring nodes. When multiple physical\r
+frequencies are available, it also achieves increased energy\r
+efficiency, demonstrating the ability to work against radio\r
+interference and the tolerance to a wide range of measured time\r
+synchronization errors.\r
+\end{abstract}\r
+\r
+\category{C.2.2}{Computer-Communication Networks}{Network Protocols}\r
+\r
+\terms{Design, Algorithms, Performance}\r
+\r
+\keywords{Wireless sensor networks, media access control,\r
+multi-channel, radio interference, time synchronization}\r
+\r
+\acmformat{Gang Zhou, Yafeng Wu, Ting Yan, Tian He, Chengdu Huang, John A. Stankovic,\r
+and Tarek F. Abdelzaher, 2010. A multifrequency MAC specially\r
+designed for  wireless sensor network applications.}\r
+% At a minimum you need to supply the author names, year and a title.\r
+% IMPORTANT:\r
+% Full first names whenever they are known, surname last, followed by a period.\r
+% In the case of two authors, 'and' is placed between them.\r
+% In the case of three or more authors, the serial comma is used, that is, all author names\r
+% except the last one but including the penultimate author's name are followed by a comma,\r
+% and then 'and' is placed before the final author's name.\r
+% If only first and middle initials are known, then each initial\r
+% is followed by a period and they are separated by a space.\r
+% The remaining information (journal title, volume, article number, date, etc.) is 'auto-generated'.\r
+\r
+\begin{bottomstuff}\r
+This work is supported by the National Science Foundation, under\r
+grant CNS-0435060, grant CCR-0325197 and grant EN-CS-0329609.\r
+\r
+Author's addresses: G. Zhou, Computer Science Department,\r
+College of William and Mary; Y. Wu  {and} J. A. Stankovic,\r
+Computer Science Department, University of Virginia; T. Yan,\r
+Eaton Innovation Center; T. He, Computer Science Department,\r
+University of Minnesota; C. Huang, Google; T. F. Abdelzaher,\r
+(Current address) NASA Ames Research Center, Moffett Field, California 94035.\r
+\end{bottomstuff}\r
+\r
+\maketitle\r
+\r
+\r
+\section{Introduction}\r
+\r
+As a new technology, Wireless Sensor Networks (WSNs) has a wide\r
+range of applications [Culler 2001,Bahl 2002,Akyildiz 2001], including\r
+environment monitoring, smart buildings, medical care, industrial and\r
+military applications. Among them, a recent trend is to develop\r
+commercial sensor networks that require pervasive sensing of both\r
+environment and human beings, for example, assisted living\r
+[Akyildiz 2002,Harvard 2001,CROSSBOW] and smart homes\r
+[Harvard 2001,Adya 2001,CROSSBOW].\r
+% quote\r
+\begin{quote}\r
+``For these applications, sensor devices are incorporated into human\r
+cloths [Natarajan 2001,Zhou 2006,Bahl 2002,Adya 2001] for monitoring\r
+health related information like EKG readings, fall detection, and voice recognition".\r
+\end{quote}\r
+While collecting all these multimedia information\r
+[Akyildiz 2002] requires a high network throughput, off-the-shelf\r
+sensor devices only provide very limited bandwidth in a single\r
+channel: 19.2Kbps in MICA2 [Bahl 2002] and 250Kbps in MICAz.\r
+\r
+In this article, we propose MMSN, abbreviation for Multifrequency\r
+Media access control for wireless Sensor Networks. The main\r
+contributions of this work can be summarized as follows.\r
+% itemize\r
+\begin{itemize}\r
+\item To the best of our knowledge, the MMSN protocol is the first\r
+multifrequency MAC protocol especially designed for WSNs, in which\r
+each device is equipped with a single radio transceiver and\r
+the MAC layer packet size is very small.\r
+\item Instead of using pairwise RTS/CTS frequency negotiation\r
+[Adya 2001,Culler 2001; Tzamaloukas 2001; Zhou 2006],\r
+we propose lightweight frequency assignments, which are good choices\r
+for many deployed comparatively static WSNs.\r
+\item We develop new toggle transmission and snooping techniques to\r
+enable a single radio transceiver in a sensor device to achieve\r
+scalable performance, avoiding the nonscalable ``one\r
+control channel + multiple data channels'' design [Natarajan 2001].\r
+\end{itemize}\r
+\r
+% Head 1\r
+\section{MMSN Protocol}\r
+\r
+% Head 2\r
+\subsection{Frequency Assignment}\r
+\r
+We propose a suboptimal distribution to be used by each node, which is\r
+easy to compute and does not depend on the number of competing\r
+nodes. A natural candidate is an increasing geometric sequence, in\r
+which\r
+% Numbered Equation\r
+\begin{equation}\r
+\label{eqn:01}\r
+P(t)=\frac{b^{\frac{t+1}{T+1}}-b^{\frac{t}{T+1}}}{b-1},\r
+\end{equation}\r
+where $t=0,{\ldots}\,,T$, and $b$ is a number greater than $1$.\r
+\r
+In our algorithm, we use the suboptimal approach for simplicity and\r
+generality. We need to make the distribution of the selected back-off\r
+time slice at each node conform to what is shown in Equation\r
+(\ref{eqn:01}). It is implemented as follows: First, a random\r
+variable $\alpha$ with a uniform distribution within the interval\r
+$(0, 1)$ is generated on each node, then time slice $i$ is selected\r
+according to the following equation:\r
+% Unnumbered Equation\r
+\[\r
+i=\lfloor(T+1)\log_b[\alpha(b-1)+1]\rfloor.\r
+\]\r
+It can be easily proven that the distribution of $i$ conforms to Equation\r
+(\ref{eqn:01}).\r
+\r
+So protocols [Bahl 2002,Culler 2001,Zhou 2006,Adya 2001,Culler 2001;\r
+Tzamaloukas-01; Akyildiz-01] that use RTS/CTS\r
+controls\footnote{RTS/CTS controls are required to be implemented by\r
+802.11-compliant devices. They can be used as an optional mechanism\r
+to avoid Hidden Terminal Problems in the 802.11 standard and\r
+protocols based on those similar to [Akyildiz 2001] and\r
+[Adya 2001].} for frequency negotiation and reservation are not\r
+suitable for WSN applications, even though they exhibit good\r
+performance in general wireless ad hoc\r
+networks.\r
+\r
+% Head 3\r
+\subsubsection{Exclusive Frequency Assignment}\r
+\r
+In exclusive frequency assignment, nodes first exchange their IDs\r
+among two communication hops so that each node knows its two-hop\r
+neighbors' IDs. In the second broadcast, each node beacons all\r
+neighbors' IDs it has collected during the first broadcast period.\r
+\r
+% Head 4\r
+\paragraph{Eavesdropping}\r
+\r
+Even though the even selection scheme leads to even sharing of\r
+available frequencies among any two-hop neighborhood, it involves a\r
+number of two-hop broadcasts. To reduce the communication cost, we\r
+propose a lightweight eavesdropping scheme.\r
+\r
+\subsection{Basic Notations}\r
+\r
+As Algorithm~\ref{alg:one} states, for each frequency\r
+number, each node calculates a random number (${\textit{Rnd}}_{\alpha}$) for\r
+itself and a random number (${\textit{Rnd}}_{\beta}$) for each of its two-hop\r
+neighbors with the same pseudorandom number generator.\r
+% Algorithm\r
+\begin{algorithm}[t]\r
+\SetAlgoNoLine\r
+\KwIn{Node $\alpha$'s ID ($ID_{\alpha}$), and node $\alpha$'s\r
+neighbors' IDs within two communication hops.}\r
+\KwOut{The frequency number ($FreNum_{\alpha}$) node $\alpha$ gets assigned.}\r
+$index$ = 0; $FreNum_{\alpha}$ = -1\;\r
+\Repeat{$FreNum_{\alpha} > -1$}{\r
+        $Rnd_{\alpha}$ = Random($ID_{\alpha}$, $index$)\;\r
+        $Found$ = $TRUE$\;\r
+        \For{each node $\beta$ in $\alpha$'s two communication hops\r
+    }{\r
+      $Rnd_{\beta}$ = Random($ID_{\beta}$, $index$)\;\r
+      \If{($Rnd_{\alpha} < Rnd_{\beta}$) \text{or} ($Rnd_{\alpha}$ ==\r
+          $Rnd_{\beta}$ \text{and} $ID_{\alpha} < ID_{\beta}$)\;\r
+      }{\r
+        $Found$ = $FALSE$; break\;\r
+      }\r
+        }\r
+     \eIf{$Found$}{\r
+           $FreNum_{\alpha}$ = $index$\;\r
+         }{\r
+           $index$ ++\;\r
+     }\r
+      }\r
+\caption{Frequency Number Computation}\r
+\label{alg:one}\r
+\end{algorithm}\r
+\r
+Bus masters are divided into two disjoint sets, $\mathcal{M}_{RT}$\r
+and $\mathcal{M}_{NRT}$.\r
+% description\r
+\begin{description}\r
+\item[RT Masters]\r
+$\mathcal{M}_{RT}=\{ \vec{m}_{1},\dots,\vec{m}_{n}\}$ denotes the\r
+$n$ RT masters issuing real-time constrained requests. To model the\r
+current request issued by an $\vec{m}_{i}$ in $\mathcal{M}_{RT}$,\r
+three parameters---the recurrence time $(r_i)$, the service cycle\r
+$(c_i)$, and the relative deadline $(d_i)$---are used, with their\r
+relationships.\r
+\item[NRT Masters]\r
+$\mathcal{M}_{NRT}=\{ \vec{m}_{n+1},\dots,\vec{m}_{n+m}\}$ is a set\r
+of $m$ masters issuing nonreal-time constrained requests. In our\r
+model, each $\vec{m}_{j}$ in $\mathcal{M}_{NRT}$ needs only one\r
+parameter, the service cycle, to model the current request it\r
+issues.\r
+\end{description}\r
+\r
+Here, a question may arise, since each node has a global ID. Why\r
+don't we just map nodes' IDs within two hops into a group of\r
+frequency numbers and assign those numbers to all nodes within two\r
+hops?\r
+\r
+\section{Simulator}\r
+\label{sec:sim}\r
+\r
+If the model checker requests successors of a state which are not\r
+created yet, the state space uses the simulator to create the\r
+successors on-the-fly. To create successor states the simulator\r
+conducts the following steps.\r
+% enumerate\r
+\begin{enumerate}\r
+\item Load state into microcontroller model.\r
+\item Determine assignments needed for resolving nondeterminism.\r
+\item For each assignment.\r
+      \begin{enumerate}\r
+      \item either call interrupt handler or simulate effect of next instruction, or\r
+      \item evaluate truth values of atomic propositions.\r
+      \end{enumerate}\r
+\item Return resulting states.\r
+\end{enumerate}\r
+Figure~\ref{fig:one} shows a typical microcontroller C program that\r
+controls an automotive power window lift. The program is one of the\r
+programs used in the case study described in Section~\ref{sec:sim}.\r
+At first sight, the programs looks like an ANSI~C program. It\r
+contains function calls, assignments, if clauses, and while loops.\r
+% Figure\r
+\begin{figure}\r
+\centerline{\includegraphics{acmsmall-mouse}}\r
+\caption{Code before preprocessing.}\r
+\label{fig:one}\r
+\end{figure}\r
+\r
+\subsection{Problem Formulation}\r
+\r
+The objective of variable coalescence-based offset assignment is to find\r
+both the coalescence scheme and the MWPC on the coalesced graph. We start\r
+with a few definitions and lemmas for variable coalescence.\r
+\r
+% Enunciations\r
+\begin{definition}[Coalesced Node (C-Node)]A C-node is a set of\r
+live ranges (webs) in the AG or IG that are coalesced. Nodes within the same\r
+C-node cannot interfere with each other on the IG. Before any coalescing is\r
+done, each live range is a C-node by itself.\r
+\end{definition}\r
+\r
+\begin{definition}[C-AG (Coalesced Access Graph)]The C-AG is the access\r
+graph after node coalescence, which is composed of all C-nodes and C-edges.\r
+\end{definition}\r
+\r
+\begin{lemma}\r
+The C-MWPC problem is NP-complete.\r
+\end{lemma}\r
+\begin{proof} C-MWPC can be easily reduced to the MWPC problem assuming a\r
+coalescence graph without any edge or a fully connected interference graph.\r
+Therefore, each C-node is an uncoalesced live range after value separation\r
+and C-PC is equivalent to PC. A fully connected interference graph is made\r
+possible when all live ranges interfere with each other. Thus, the C-MWPC\r
+problem is NP-complete.\r
+\end{proof}\r
+\r
+\begin{lemma}[Lemma Subhead]The solution to the C-MWPC problem is no\r
+worse than the solution to the MWPC.\r
+\end{lemma}\r
+\begin{proof}\r
+Simply, any solution to the MWPC is also a solution to the\r
+C-MWPC. But some solutions to C-MWPC may not apply to the MWPC (if any\r
+coalescing were made).\r
+\end{proof}\r
+\r
+\section{Performance Evaluation}\r
+\r
+During all the experiments, the Geographic Forwarding (GF)\r
+[Akyildiz 2001] routing protocol is used. GF exploits geographic\r
+information of nodes and conducts local data-forwarding to achieve\r
+end-to-end routing. Our simulation is\r
+configured according to the settings in\r
+Table~\ref{tab:one}. Each run lasts for 2 minutes and\r
+repeated 100 times. For each data value we present in the results,\r
+we also give its 90\% confidence interval.\r
+% Table\r
+\begin{table}%\r
+\tbl{Simulation Configuration\label{tab:one}}{%\r
+\begin{tabular}{|l|l|}\r
+\hline\r
+TERRAIN{$^a$}   & (200m$\times$200m) Square\\\hline\r
+Node Number     & 289\\\hline\r
+Node Placement  & Uniform\\\hline\r
+Application     & Many-to-Many/Gossip CBR Streams\\\hline\r
+Payload Size    & 32 bytes\\\hline\r
+Routing Layer   & GF\\\hline\r
+MAC Layer       & CSMA/MMSN\\\hline\r
+Radio Layer     & RADIO-ACCNOISE\\\hline\r
+Radio Bandwidth & 250Kbps\\\hline\r
+Radio Range     & 20m--45m\\\hline\r
+\end{tabular}}\r
+\begin{tabnote}%\r
+\Note{Source:}{This is a table\r
+sourcenote. This is a table sourcenote. This is a table\r
+sourcenote.}\r
+\vskip2pt\r
+\Note{Note:}{This is a table footnote.}\r
+\tabnoteentry{$^a$}{This is a table footnote. This is a\r
+table footnote. This is a table footnote.}\r
+\end{tabnote}%\r
+\end{table}%\r
+\r
+\section{Conclusions}\r
+\r
+In this article, we develop the first multifrequency MAC protocol for\r
+WSN applications in which each device adopts a\r
+single radio transceiver. The different MAC design requirements for\r
+WSNs and general wireless ad-hoc networks are\r
+compared, and a complete WSN multifrequency MAC design (MMSN) is\r
+put forth. During the MMSN design, we analyze and evaluate different\r
+choices for frequency assignments and also discuss the nonuniform\r
+back-off algorithms for the slotted media access design.\r
+\r
+% Start of "Sample References" section\r
+\r
+\section{Typical references in new ACM Reference Format}\r
+A paginated journal article \cite{Abril07}, an enumerated\r
+journal article \cite{Cohen07}, a reference to an entire issue \cite{JCohen96},\r
+a monograph (whole book) \cite{Kosiur01}, a monograph/whole book in a series (see 2a in spec. document)\r
+\cite{Harel79}, a divisible-book such as an anthology or compilation \cite{Editor00}\r
+followed by the same example, however we only output the series if the volume number is given\r
+\cite{Editor00a} (so Editor00a's series should NOT be present since it has no vol. no.),\r
+a chapter in a divisible book \cite{Spector90}, a chapter in a divisible book\r
+in a series \cite{Douglass98}, a multi-volume work as book \cite{Knuth97},\r
+an article in a proceedings (of a conference, symposium, workshop for example)\r
+(paginated proceedings article) \cite{Andler79}, a proceedings article\r
+with all possible elements \cite{Smith10}, an example of an enumerated\r
+proceedings article \cite{VanGundy07},\r
+an informally published work \cite{Harel78}, a doctoral dissertation \cite{Clarkson85},\r
+a master's thesis: \cite{anisi03}, an online document / world wide web resource \cite{Thornburg01}, \cite{Ablamowicz07},\r
+\cite{Poker06}, a video game (Case 1) \cite{Obama08} and (Case 2) \cite{Novak03}\r
+and \cite{Lee05} and (Case 3) a patent \cite{JoeScientist001},\r
+work accepted for publication \cite{rous08}, 'YYYYb'-test for prolific author\r
+\cite{SaeediMEJ10} and \cite{SaeediJETC10}. Other cites might contain\r
+'duplicate' DOI and URLs (some SIAM articles) \cite{Kirschmer:2010:AEI:1958016.1958018}.\r
+Boris / Barbara Beeton: multi-volume works as books\r
+\cite{MR781536} and \cite{MR781537}.\r
+\r
+% Appendix\r
+\appendix\r
+\section*{APPENDIX}\r
+\setcounter{section}{1}\r
+In this appendix, we measure\r
+the channel switching time of Micaz [CROSSBOW] sensor devices.\r
+In our experiments, one mote alternatingly switches between Channels\r
+11 and 12. Every time after the node switches to a channel, it sends\r
+out a packet immediately and then changes to a new channel as soon\r
+as the transmission is finished. We measure the\r
+number of packets the test mote can send in 10 seconds, denoted as\r
+$N_{1}$. In contrast, we also measure the same value of the test\r
+mote without switching channels, denoted as $N_{2}$. We calculate\r
+the channel-switching time $s$ as\r
+\begin{eqnarray}%\r
+s=\frac{10}{N_{1}}-\frac{10}{N_{2}}. \nonumber\r
+\end{eqnarray}%\r
+By repeating the experiments 100 times, we get the average\r
+channel-switching time of Micaz motes: 24.3$\mu$s.\r
+\r
+\appendixhead{ZHOU}\r
+\r
+% Acknowledgments\r
+\begin{acks}\r
+The authors would like to thank Dr. Maura Turolla of Telecom\r
+Italia for providing specifications about the application scenario.\r
+\end{acks}\r
+\r
+% Bibliography\r
+\bibliographystyle{ACM-Reference-Format-Journals}\r
+\bibliography{acmsmall-sample-bibfile}\r
+                             % Sample .bib file with references that match those in\r
+                             % the 'Specifications Document (V1.5)' as well containing\r
+                             % 'legacy' bibs and bibs with 'alternate codings'.\r
+                             % Gerry Murray - March 2012\r
+\r
+% History dates\r
+\received{February 2007}{March 2009}{June 2009}\r
+\r
+% Electronic Appendix\r
+\elecappendix\r
+\r
+\medskip\r
+\r
+\section{This is an example of Appendix section head}\r
+\r
+Channel-switching time is measured as the time length it takes for\r
+motes to successfully switch from one channel to another. This\r
+parameter impacts the maximum network throughput, because motes\r
+cannot receive or send any packet during this period of time, and it\r
+also affects the efficiency of toggle snooping in MMSN, where motes\r
+need to sense through channels rapidly.\r
+\r
+By repeating experiments 100 times, we get the average\r
+channel-switching time of Micaz motes: 24.3 $\mu$s. We then conduct\r
+the same experiments with different Micaz motes, as well as\r
+experiments with the transmitter switching from Channel 11 to other\r
+channels. In both scenarios, the channel-switching time does not have\r
+obvious changes. (In our experiments, all values are in the range of\r
+23.6 $\mu$s to 24.9 $\mu$s.)\r
+\r
+\section{Appendix section head}\r
+\r
+The primary consumer of energy in WSNs is idle listening. The key to\r
+reduce idle listening is executing low duty-cycle on nodes. Two\r
+primary approaches are considered in controlling duty-cycles in the\r
+MAC layer.\r
+\r
+\end{document}\r
+% End of v2-acmsmall-sample.tex (March 2012) - Gerry Murray, ACM\r
+\r
+\r
diff --git a/PeCO/biblio.bib b/PeCO/biblio.bib
new file mode 100644 (file)
index 0000000..e25c404
--- /dev/null
@@ -0,0 +1,1107 @@
+\iffalse
+
+@INPROCEEDINGS{Moore99,
+  AUTHOR =       "R. Moore and J. Lopes",
+  TITLE =        "Paper templates",
+  BOOKTITLE =    "TEMPLATE'06, 1st International Conference on Template Production",
+  YEAR =         "1999",
+  publisher =    "SCITEPRESS",
+  file = F
+}
+
+@BOOK{Smith98,
+  AUTHOR =       "J. Smith",
+  TITLE =        "The Book",
+  PUBLISHER =    "The publishing company",
+  YEAR =         "1998",
+  address =      "London",
+  edition =      "2nd",
+  file = F
+}
+
+
+@inproceedings{vashistha2007energy,
+  title={Energy efficient area monitoring using information coverage in wireless sensor networks},
+  author={Vashistha, Sumit and Azad, Amar Prakash and Chockalingam, Ananthanarayanan},
+  booktitle={World of Wireless, Mobile and Multimedia Networks, 2007. WoWMoM 2007. IEEE International Symposium on a},
+  pages={1--10},
+  year={2007},
+  organization={IEEE}
+}
+
+
+@ARTICLE{Torkestani,
+ author = "J. A. Torkestani",
+ title = "An adaptive energy-efficient area coverage algorithm for wireless sensor networks ",
+ journal = {Ad Hoc Networks},
+ volume = {11},
+ number = {6},
+ pages = {1655-1666},
+ year = {2013},
+ }
+@ARTICLE{Zhang,
+ author = "L. Zhang and Q. Zhu and J. Wang",
+ title = "Adaptive Clustering for Maximizing Network Lifetime and Maintaining Coverage ",
+ journal = {JOURNAL OF NETWORKS},
+ volume = {8},
+ number = {3},
+ pages = {616-622},
+ year = {2013},
+ }
+
+@ARTICLE{pc10,
+ author = "T.V. Padmavathy and M. Chitra",
+ title = "Extending the Network Lifetime of Wireless Sensor Networks Using Residual Energy Extraction-Hybrid Scheduling Algorithm",
+  JOURNAL = {Int. J. of Communications, Network and System Sciences},
+ VOLUME = {3},
+ NUMBER = {1},
+PAGES = {98-106},
+YEAR = {2010},
+ }
+
+
+
+@ARTICLE{Zhixin,
+ author = "Z. Liu and Q. Zheng and L. Xue and X. Guan",
+ title = "A distributed energy-efficient clustering algorithm with improved coverage in
+wireless sensor networks",
+ JOURNAL = {Future Generation Computer Systems},
+ VOLUME = {28},
+ NUMBER = {5},
+ PAGES = {780-790},
+ YEAR = {2012},
+ }
+
+@ARTICLE{Bang,
+ author = "B. Wang and H. B. Lim and D. Ma ",
+ title = "A coverage-aware clustering protocol for wireless sensor networks",
+ JOURNAL = {Computer Networks},
+ VOLUME = {56},
+ NUMBER = {5},
+ PAGES = {1599-1611},
+ YEAR = {2012},
+ }
+
+
+
+@book{Akyildiz02,
+ author = {I. F. Akyildiz and M. C. Vuran},
+ title = {Wireless Sensor Networks},
+ publisher = {John Wiley and Sons Ltd.},
+ year = {2010},
+} 
+
+@book{Sudip03,
+ author = {S. Misra and I. Woungang and S. C. Misra},
+ title = {Guide to Wireless Sensor Networks},
+ publisher = {Springer-Verlag London Limited},
+ year = {2009},
+} 
+
+@book{Nayak04,
+ author = {A. Nayak and I. Stojmenovic},
+ title = {Wireless Sensor and Actuator Networks: Algorithms and Protocols for Scalable Coordination and Data Communication},
+ publisher = {John Wiley and Sons, Inc},
+  year = {2010},
+} 
+
+
+
+@ARTICLE{Huang:2003:CPW:941350.941367,
+ author = "C.-F. Huang and Y.-C. Tseng",
+ title = "The Coverage Problem in a Wireless Sensor Network",
+ JOURNAL = {Mobile Networks and Applications},
+ VOLUME = {10},
+ NUMBER = {4},
+ PAGES = {519-528}, 
+ YEAR = {2005},
+ }
+
+
+@ARTICLE{Zhang05,
+  author    = {H. Zhang and J. C. Hou},
+  title     = {Maintaining Sensing Coverage and Connectivity in Large Sensor Networks},
+  journal   = {Ad Hoc {\&} Sensor Wireless Networks},
+  volume    = {1},
+  number    = {1-2},
+  year      = {2005},
+
+}
+
+@ARTICLE{HeinzelmanCB02,
+  author    = {W. B. Heinzelman and A. P. Chandrakasan and H. Balakrishnan},
+  title     = {An application-specific protocol architecture for wireless microsensor networks},
+  journal   = {IEEE Transactions on Wireless Communications},
+  volume    = {1},
+  number    = {4},
+  pages     = {660-670},
+  year      = {2002},
+}
+
+
+@inproceedings{pedraza2006,
+       author = {F. Pedraza and A. L. Medaglia and A. Garcia},
+       title = {Efficient coverage algorithms for wireless sensor networks},   
+       booktitle = {Proceedings of the 2006 Systems and Information Engineering Design Symposium},
+       pages = {78-83},
+       YEAR = {2006},
+} 
+
+@PhDThesis{chin2007,
+author = {C. T. Vu},
+title = {Distributed energy-efficient solutions for area coverage problems in wireless sensor networks},
+school = {Georgia State University},
+year = {2009},
+}
+
+@ARTICLE{varga,
+author = {A. Varga},
+title = {OMNeT++ Discrete Event Simulation System},
+journal = {Available: http://www.omnetpp.org},
+year = {2003},
+}
+
+
+@ARTICLE{die09,
+  author    = {Isabel Dietrich and
+               Falko Dressler},
+  title     = {On the lifetime of wireless sensor networks},
+  journal   = {TOSN},
+  volume    = {5},
+  number    = {1},
+  year      = {2009},
+  ee        = {http://doi.acm.org/10.1145/1464420.1464425},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+  
+@ARTICLE{mulligan2010coverage,
+  title={Coverage in Wireless Sensor Networks: A Survey.},
+  author={Mulligan, Raymond and Ammari, Habib M},
+  journal={Network Protocols \& Algorithms},
+  volume={2},
+  number={2},
+  year={2010}
+}
+
+
+@phdthesis{vu2009distributed,
+  title={Distributed energy-efficient solutions for area coverage problems in wireless sensor networks},
+  author={Vu, Chinh Trung},
+  year={2009},
+  school={GEORGIA STATE UNIVERSITY}
+}
+
+
+@ARTICLE{raghunathan2002energy,
+  title={Energy-aware wireless microsensor networks},
+  author={Raghunathan, Vijay and Schurgers, Curt and Park, Sung and Srivastava, Mani B},
+  journal={Signal Processing Magazine, IEEE},
+  volume={19},
+  number={2},
+  pages={40--50},
+  year={2002},
+  publisher={IEEE}
+}
+
+@ARTICLE{ChinhVu,
+author = {Chinh Vu and Shan Gao and Wiwek Deshmukh and Yingshu Li},
+title = {Distributed Energy-Efficient Scheduling Approach for K-Coverage in Wireless Sensor Networks},
+journal ={MILCOM},
+volume = {0},
+isbn = {1-4244-0617-X},
+year = {2006},
+pages = {1-7},
+doi = {http://doi.ieeecomputersociety.org/10.1109/MILCOM.2006.302146},
+publisher = {IEEE Computer Society},
+address = {Los Alamitos, CA, USA},
+}
+
+
+@ARTICLE{ghosh2008coverage,
+  title={Coverage and connectivity issues in wireless sensor networks: A survey},
+  author={Ghosh, Amitabha and Das, Sajal K},
+  journal={Pervasive and Mobile Computing},
+  volume={4},
+  number={3},
+  pages={303--334},
+  year={2008},
+  publisher={Elsevier}
+}
+
+
+
+@ARTICLE{yang2014novel, 
+author={Changlin Yang and Kwan-Wu Chin}, 
+journal={Communications Letters, IEEE}, 
+title={Novel Algorithms for Complete Targets Coverage in Energy Harvesting Wireless Sensor Networks}, 
+year={2014}, 
+month={January}, 
+volume={18}, 
+number={1}, 
+pages={118-121}, 
+keywords={energy harvesting;linear programming;secondary cells;telecommunication power supplies;wireless sensor networks;MUA;WSN;activation schedule;complete targets coverage;energy conservation;energy harvesting wireless sensor networks;linear programming based solution;maximum utility algorithm;network lifetime maximization problem;recharging opportunities;sensor nodes;sleep state;time interval;wake-up schedule;Batteries;Energy harvesting;Erbium;Monitoring;Schedules;Sensors;Wireless sensor networks;Wireless sensor network;energy harvesting;targets coverage}, 
+doi={10.1109/LCOMM.2013.111513.132436}, 
+ISSN={1089-7798},}
+
+@ARTICLE{HeShibo, 
+author={He, Shibo and Gong, Xiaowen and Zhang, Junshan and Chen, Jiming and Sun, Youxian}, 
+journal={Wireless Communications, IEEE Transactions on}, 
+title={Curve-Based Deployment for Barrier Coverage in Wireless Sensor Networks}, 
+year={2014}, 
+month={February}, 
+volume={13}, 
+number={2}, 
+pages={724-735}, 
+keywords={Algorithm design and analysis;Approximation algorithms;Approximation methods;Educational institutions;Sensors;Wireless communication;Wireless sensor networks;Barrier coverage;curved-based deployment;deployment algorithms;optimal deployment curve}, 
+doi={10.1109/TWC.2013.121813.130198}, 
+ISSN={1536-1276},
+}
+
+
+
+@inproceedings{Zorbas2007,
+ author = {D. Zorbas and D. Glynos and P. Kotzanikolaou and C. Douligeris},
+ title = {B\{GOP\}: an adaptive coverage algorithm for wireless sensor networks},
+ booktitle = {Proceedings of the 13th European Wireless Conference},
+ series = {EW'07},
+ year = {2007},
+ location = {Paris, France},
+} 
+
+@ARTICLE{zorbas2010solving,
+  title={Solving coverage problems in wireless sensor networks using cover sets},
+  author={Zorbas, Dimitrios and Glynos, Dimitris and Kotzanikolaou, Panayiotis and Douligeris, Christos},
+  journal={Ad Hoc Networks},
+  volume={8},
+  number={4},
+  pages={400-415},
+  year={2010},
+  publisher={Elsevier},
+}
+
+@INPROCEEDINGS{Slijepcevic01powerefficient,
+    author = {S. Slijepcevic and M. Potkonjak},
+    title = {Power Efficient Organization of Wireless Sensor Networks},
+    booktitle = {IEEE International conference on Communications},
+    year = {2001},
+    pages = {472-476}
+}
+
+@ARTICLE{cardei2006energy,
+  title={Energy-efficient coverage problems in wireless ad-hoc sensor networks},
+  author={Cardei, Mihaela and Wu, Jie},
+  journal={Computer communications},
+  volume={29},
+  number={4},
+  pages={413-420},
+  year={2006},
+  publisher={Elsevier}
+}
+
+@inproceedings{cardei2005energy,
+  title={Energy-efficient target coverage in wireless sensor networks},
+  author={Cardei, Mihaela and Thai, My T and Li, Yingshu and Wu, Weili},
+  booktitle={INFOCOM 2005. 24th Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings IEEE},
+  volume={3},
+  pages={1976-1984},
+  year={2005},
+  organization={IEEE}
+}
+
+@ARTICLE{cardei2005improving,
+  title={Improving wireless sensor network lifetime through power aware organization},
+  author={Cardei, Mihaela and Du, Ding-Zhu},
+  journal={Wireless Networks},
+  volume={11},
+  number={3},
+  pages={333-340},
+  year={2005},
+  publisher={Springer-Verlag New York, Inc.}
+}
+
+@inproceedings{abrams2004set,
+  title={Set k-cover algorithms for energy efficient monitoring in wireless sensor networks},
+  author={Abrams, Zo{\"e} and Goel, Ashish and Plotkin, Serge},
+  booktitle={Proceedings of the 3rd international symposium on Information processing in sensor networks},
+  pages={424-432},
+  year={2004},
+  organization={ACM}
+}
+
+@ARTICLE{pujari2011high,
+  title={High-Energy-First (HEF) Heuristic for Energy-Efficient Target Coverage Problem.},
+  author={Pujari, Arun K},
+  journal={International Journal of Ad Hoc, Sensor \& Ubiquitous Computing},
+  volume={2},
+  number={1},
+  year={2011}
+}
+
+@INPROCEEDINGS{berman04,
+    author = {P. Berman and G. Calinescu},
+    title = {Power Efficient Monitoring Management in Sensor Networks},
+    booktitle = {Proceedings of IEEE Wireless Communication and Networking Conference (WCNC'04)},
+    year = {2004},
+    pages = {2329--2334}
+}
+
+@inproceedings{Gallais06,
+ author = {Gallais, Antoine and Carle, Jean and Simplot-Ryl, David and Stojmenovic, Ivan},
+ title = {Localized Sensor Area Coverage with Low Communication Overhead},
+ booktitle = {Proceedings of the Fourth Annual IEEE International Conference on Pervasive Computing and Communications},
+ year = {2006},
+ pages = {328-337},
+}
+
+@inproceedings{Tian02,
+ author = {Tian, Di and Georganas, Nicolas D.},
+ title = {A coverage-preserving node scheduling scheme for large wireless sensor networks},
+ booktitle = {Proceedings of the 1st ACM international workshop on Wireless sensor networks and applications},
+ series = {WSNA '02},
+ year = {2002},
+ pages = {32-41},
+ publisher = {ACM},
+} 
+
+@inproceedings{Ye03,
+ author = {Ye, Fan and Zhong, Gary and Cheng, Jesse and Lu, Songwu and Zhang, Lixia},
+ title = {PEAS: A Robust Energy Conserving Protocol for Long-lived Sensor Networks},
+ booktitle = {Proceedings of the 23rd International Conference on Distributed Computing Systems},
+ series = {ICDCS'03},
+ year = {2003},
+ pages = {28-37},
+} 
+
+
+@INPROCEEDINGS{Berman05efficientenergy,
+    author = {P. Berman and G. Calinescu and C. Shah and A. Zelikovsky},
+    title = {Efficient energy management in sensor networks},
+    booktitle = {Ad Hoc and Sensor Networks. Nova Science Publishers},
+    year = {2005},
+    publisher = {Nova Science Publisher}
+}
+
+@inproceedings{lu2003coverage,
+  title={Coverage-aware self-scheduling in sensor networks},
+  author={Lu, Jun and Suda, Tatsuya},
+  booktitle={Computer Communications, 2003. CCW 2003. Proceedings. 2003 IEEE 18th Annual Workshop on},
+  pages={117--123},
+  year={2003},
+  organization={IEEE}
+}
+
+@incollection{prasad2007distributed,
+  title={Distributed algorithms for lifetime of wireless sensor networks based on dependencies among cover sets},
+  author={Prasad, Sushil K and Dhawan, Akshaye},
+  booktitle={High Performance Computing--HiPC 2007},
+  pages={381-392},
+  year={2007},
+  publisher={Springer}
+}
+
+@inproceedings{cardei2005maximum,
+  title={Maximum network lifetime in wireless sensor networks with adjustable sensing ranges},
+  author={Cardei, Mihaela and Wu, Jie and Lu, Mingming and Pervaiz, Mohammad O},
+  booktitle={Wireless And Mobile Computing, Networking And Communications, 2005.(WiMob'2005), IEEE International Conference on},
+  volume={3},
+  pages={438--445},
+  year={2005},
+  organization={IEEE}
+}
+
+@inproceedings{garg98,
+ author = {Garg, Naveen and Koenemann, Jochen},
+ title = {Faster and Simpler Algorithms for Multicommodity Flow and other Fractional Packing Problems.},
+ booktitle = {Proceedings of the 39th Annual Symposium on Foundations of Computer Science},
+ series = {FOCS '98},
+ year = {1998},
+ pages = {300-309},
+}
+
+@article{wang2010clique,
+  title={A clique base node scheduling method for wireless sensor networks},
+  author={Wang, Lei and Wei, Ruizhong and Lin, Yaping and Wang, Bo},
+  journal={Journal of Network and Computer Applications},
+  volume={33},
+  number={4},
+  pages={383--396},
+  year={2010},
+  publisher={Elsevier}
+}
+
+@article{yardibi2010distributed,
+  title={A distributed activity scheduling algorithm for wireless sensor networks with partial coverage},
+  author={Yardibi, Tarik and Karasan, Ezhan},
+  journal={Wireless Networks},
+  volume={16},
+  number={1},
+  pages={213--225},
+  year={2010},
+  publisher={Springer}
+}
+
+@article{conti2014mobile,
+  title={Mobile ad hoc networking: milestones, challenges, and new research directions},
+  author={Conti, Marco and Giordano, Silvia},
+  journal={Communications Magazine, IEEE},
+  volume={52},
+  number={1},
+  pages={85--96},
+  year={2014},
+  publisher={IEEE}
+}
+
+@inproceedings{idrees2014coverage,
+  title={Coverage and Lifetime Optimization in Heterogeneous Energy Wireless Sensor Networks},
+  author={Idrees, Ali Kadhum and Deschinkel, Karine and Salomon, Michel and Couturier, Rapha{\"e}l},
+  booktitle={ICN 2014, The Thirteenth International Conference on Networks},
+  pages={49--54},
+  year={2014}
+}
+
+@inproceedings{xu2001geography,
+  title={Geography-informed energy conservation for ad hoc routing},
+  author={Xu, Ya and Heidemann, John and Estrin, Deborah},
+  booktitle={Proceedings of the 7th annual international conference on Mobile computing and networking},
+  pages={70--84},
+  year={2001},
+  organization={ACM}
+}
+
+@article{zhou2009variable,
+  title={Variable radii connected sensor cover in sensor networks},
+  author={Zhou, Zongheng and Das, Samir R and Gupta, Himanshu},
+  journal={ACM Transactions on Sensor Networks (TOSN)},
+  volume={5},
+  number={1},
+  pages={8},
+  year={2009},
+  publisher={ACM}
+}
+
+@article{wang2009parallel,
+  title={Parallel energy-efficient coverage optimization with maximum entropy clustering in wireless sensor networks},
+  author={Wang, Xue and Ma, Junjie and Wang, Sheng},
+  journal={Journal of Parallel and Distributed Computing},
+  volume={69},
+  number={10},
+  pages={838--847},
+  year={2009},
+  publisher={Elsevier}
+}
+
+@article{yan2008design,
+  title={Design and optimization of distributed sensing coverage in wireless sensor networks},
+  author={Yan, Ting and Gu, Yu and He, Tian and Stankovic, John A},
+  journal={ACM Transactions on Embedded Computing Systems (TECS)},
+  volume={7},
+  number={3},
+  pages={33},
+  year={2008},
+  publisher={ACM}
+}
+
+@article{he2012leveraging,
+  title={Leveraging prediction to improve the coverage of wireless sensor networks},
+  author={He, Shibo and Chen, Jiming and Li, Xu and Shen, Xuemin and Sun, Youxian},
+  journal={Parallel and Distributed Systems, IEEE Transactions on},
+  volume={23},
+  number={4},
+  pages={701-712},
+  year={2012},
+  publisher={IEEE}
+}
+
+@article{esnaashari2010learning,
+  title={A learning automata based scheduling solution to the dynamic point coverage problem in wireless sensor networks},
+  author={Esnaashari, Mehdi and Meybodi, Mohammad Reza},
+  journal={Computer Networks},
+  volume={54},
+  number={14},
+  pages={2410--2438},
+  year={2010},
+  publisher={Elsevier}
+}
+
+
+@ARTICLE{Misra,
+ author = "S. Misra and M. P. Kumar and M. S. Obaidat",
+ title = "Connectivity preserving localized coverage algorithm for area monitoring using
+wireless sensor networks ",
+ JOURNAL = {Computer Communications},
+ VOLUME = {34},
+ NUMBER = {12},
+ PAGES = {1484-1496},
+ YEAR = {2011},
+}
+
+
+
+@article{rizvi2012a1,
+  title={A1: An energy efficient topology control algorithm for connected area coverage in wireless sensor networks},
+  author={Rizvi, Sajjad and Qureshi, Hassaan Khaliq and Ali Khayam, Syed and Rakocevic, Veselin and Rajarajan, Muttukrishnan},
+  journal={Journal of Network and Computer Applications},
+  volume={35},
+  number={2},
+  pages={597--605},
+  year={2012},
+  publisher={Elsevier}
+}
+
+@article{tran2009novel,
+  title={A novel gossip-based sensing coverage algorithm for dense wireless sensor networks},
+  author={Tran-Quang, Vinh and Miyoshi, Takumi},
+  journal={Computer Networks},
+  volume={53},
+  number={13},
+  pages={2275--2287},
+  year={2009},
+  publisher={Elsevier}
+}
+
+@ARTICLE{wang2011coverage,
+  title={Coverage problems in sensor networks: A survey},
+  author={Wang, Bang},
+  journal={ACM Computing Surveys (CSUR)},
+  volume={43},
+  number={4},
+  pages={32},
+  year={2011},
+  publisher={ACM}
+}
+
+
+@article{luo2014parameterized,
+  title={Parameterized complexity of max-lifetime target coverage in wireless sensor networks},
+  author={Luo, Weizhong and Wang, Jianxin and Guo, Jiong and Chen, Jianer},
+  journal={Theoretical Computer Science},
+  volume={518},
+  pages={32--41},
+  year={2014},
+  publisher={Elsevier}
+}
+
+@article{jarray2013lagrangean,
+  title={A Lagrangean-based heuristics for the target covering problem in wireless sensor network},
+  author={Jarray, Fethi},
+  journal={Applied Mathematical Modelling},
+  volume={37},
+  number={10},
+  pages={6780--6785},
+  year={2013},
+  publisher={Elsevier}
+}
+
+@article{naderan2013sensing,
+  title={Sensing task assignment via sensor selection for maximum target coverage in WSNs},
+  author={Naderan, Marjan and Dehghan, Mehdi and Pedram, Hossein},
+  journal={Journal of Network and Computer Applications},
+  volume={36},
+  number={1},
+  pages={262--273},
+  year={2013},
+  publisher={Elsevier}
+}
+
+@article{erdelj2013multiple,
+  title={Multiple point of interest discovery and coverage with mobile wireless sensors},
+  author={Erdelj, Milan and Loscri, Valeria and Natalizio, Enrico and Razafindralambo, Tahiry},
+  journal={Ad Hoc Networks},
+  volume={11},
+  number={8},
+  pages={2288--2300},
+  year={2013},
+  publisher={Elsevier}
+}
+
+@article{tian2014distributed,
+  title={Distributed Multitarget Probabilistic Coverage Control Algorithm for Wireless Sensor Networks},
+  author={Tian, Ying and Ou, Yang and Hamid, Reza Karimi and Liu, Yan Tao and Han, Jian Qun},
+  journal={Mathematical Problems in Engineering},
+  volume={2014},
+  pages={1--8},
+  year={2014},
+  publisher={Hindawi Publishing Corporation}
+}
+
+@article{castano2013column,
+  title={A column generation approach to extend lifetime in wireless sensor networks with coverage and connectivity constraints},
+  author={Casta{\~n}o, Fabian and Rossi, Andr{\'e} and Sevaux, Marc and Velasco, Nubia},
+  journal={Computers \& Operations Research},
+  year={2013},
+  publisher={Elsevier}
+}
+
+@article{yu2013cwsc,
+  title={CWSC: Connected< i> k</i>-coverage working sets construction algorithm in wireless sensor networks},
+  author={Yu, Jiguo and Deng, Xiu and Yu, Dongxiao and Wang, Guanghui and Gu, Xin},
+  journal={AEU-International Journal of Electronics and Communications},
+  volume={67},
+  number={11},
+  pages={937--946},
+  year={2013},
+  publisher={Elsevier}
+}
+
+@article{cheng2014achieving,
+  title={Achieving Asymmetric Sensing Coverage for Duty Cycled Wireless Sensor Networks},
+  author={Cheng, Long and He, Tian and Niu, Jianwei and Du, David HC},
+  journal={IEEE Transactions on Parallel and Distributed Systems},
+  pages={1--11},
+  year={2014},
+  publisher={IEEE}
+}
+
+@article{yang2013energy,
+  title={Energy-Efficient Probabilistic Area Coverage in Wireless Sensor Networks},
+  author={Yang, Qianqian and He, Shibo and Li, Junkun and Chen, Jiming and Sun, Youxian},
+  journal={IEEE Transactions on Vehicular Technology},
+  year={2013},
+  publisher={IEEE}
+}
+
+@inproceedings{kim2013maximum,
+  title={Maximum lifetime of reinforced barrier-coverage in Wireless Sensor Networks},
+  author={Kim, Hyunbum and Cobb, Jorge A},
+  booktitle={Networks (ICON), 2013 19th IEEE International Conference on},
+  pages={1--6},
+  year={2013},
+  organization={IEEE}
+}
+
+
+
+@inproceedings{chang2012joint,
+  title={Joint energy-balanced and full-coverage mechanism using sensing range control for maximizing network lifetime in WSNs},
+  author={Chang, Chih-Yung and Yu, Gwo-Jong and Lin, Chih-Yu and Wang, Tzu-Lin},
+  booktitle={Ubiquitous and Future Networks (ICUFN), 2012 Fourth International Conference on},
+  pages={34--39},
+  year={2012},
+  organization={IEEE}
+}
+
+
+
+@inproceedings{al2013energy,
+  title={Energy-efficient k-coverage scheduling algorithm for sensor networks with adjustable sensing range},
+  author={Al-Shalabi, Ahmed Abdullah and Manaf, Mazani},
+  booktitle={Wireless Technology and Applications (ISWTA), 2013 IEEE Symposium on},
+  pages={316--321},
+  year={2013},
+  organization={IEEE}
+}
+
+@inproceedings{kim2012sleep,
+  title={On sleep-wakeup scheduling of non-penetrable barrier-coverage of wireless sensors},
+  author={Kim, Donghyun and Kim, Jiwoong and Li, Deying and Kwon, Sung-Sik and Tokuta, Alade O},
+  booktitle={Global Communications Conference (GLOBECOM), 2012 IEEE},
+  pages={321--327},
+  year={2012},
+  organization={IEEE}
+}
+
+@article{li2013survey,
+  title={A Survey on Topology Control in Wireless Sensor Networks: Taxonomy, Comparative Study, and Open Issues},
+  author={Li, Mo and Vasilakos, Athanasios V},
+  journal={Proceedings of the IEEE},
+  volume={101},
+  number={12},
+  year={2013}
+}
+
+
+@inproceedings{wang2007energy,
+  title={Energy efficient coverage with variable sensing radii in wireless sensor networks},
+  author={Wang, Jiong and Medidi, Sirisha},
+  booktitle={Wireless and Mobile Computing, Networking and Communications, 2007. WiMOB 2007. Third IEEE International Conference on},
+  pages={61--61},
+  year={2007},
+  organization={IEEE}
+}
+
+@inproceedings{vu2009delaunay,
+  title={Delaunay-triangulation based complete coverage in wireless sensor networks},
+  author={Vu, Chinh T and Li, Yingshu},
+  booktitle={Pervasive Computing and Communications, 2009. PerCom 2009. IEEE International Conference on},
+  pages={1--5},
+  year={2009},
+  organization={IEEE}
+}
+
+@article{yang2014energy,
+author={Yang, Q. and He, S. and Li, J. and Chen, J. and Sun, Y.},
+journal={Vehicular Technology, IEEE Transactions on},
+title={Energy-Efficient Probabilistic Area Coverage in Wireless Sensor Networks},
+volume={PP},
+number={99},
+pages={1-1},
+year={2014},
+
+}
+
+@inproceedings{ling2009energy,
+  title={Energy efficient adaptive sensing for dynamic coverage in wireless sensor networks},
+  author={Ling, Hui and Znati, Taieb},
+  booktitle={Wireless Communications and Networking Conference, 2009. WCNC 2009. IEEE},
+  pages={1--6},
+  year={2009},
+  organization={IEEE}
+}
+
+@inproceedings{diongue2013alarm,
+  title={ALARM: An energy aware sleep scheduling algorithm for lifetime maximization in wireless sensor networks},
+  author={Diongue, Dame and Thiare, Ousmane},
+  booktitle={Wireless Technology and Applications (ISWTA), 2013 IEEE Symposium on},
+  pages={74--79},
+  year={2013},
+  organization={IEEE}
+}
+
+
+@INPROCEEDINGS{shi2009, 
+author={Qinghua Shi and Xiaozhen Wei and Yu Peng and Shiqian Li}, 
+booktitle={Computer Network and Multimedia Technology, 2009. CNMT 2009. International Symposium on}, 
+title={An Energy-Efficient Central-Scheduling Scheme in Wireless Sensor Networks}, 
+year={2009}, 
+month={Jan}, 
+pages={1-4}, 
+}
+
+@inproceedings{qu2013distributed,
+  title={A distributed area coverage algorithm for maintenance of randomly distributed sensors with adjustable sensing range},
+  author={Qu, Yipeng and Georgakopoulos, Stavros V},
+  booktitle={Global Communications Conference (GLOBECOM), 2013 IEEE},
+  pages={286--291},
+  year={2013},
+  organization={IEEE}
+}
+
+@inproceedings{xin2009area,
+  title={The area coverage algorithm to maintain connectivity for WSN},
+  author={Xin, He and Ke, Yin and Xiaolin, Gui},
+  booktitle={Computer and Information Technology, 2009. CIT'09. Ninth IEEE International Conference on},
+  volume={2},
+  pages={81--86},
+  year={2009},
+  organization={IEEE}
+}
+
+\fi
+
+@article{huang2005coverage,
+  title={The coverage problem in a wireless sensor network},
+  author={Huang, Chi-Fu and Tseng, Yu-Chee},
+  journal={Mobile Networks and Applications},
+  volume={10},
+  number={4},
+  pages={519--528},
+  year={2005},
+  publisher={Springer-Verlag New York, Inc.}
+}
+
+
+@techreport{Idrees2,
+       author = {Idrees, Ali Kadhum and Deschinkel, Karine and Salomon, Michel and Couturier, Rapha{\"e}l},
+       institution = {University of Franche-Comte - FEMTO-ST Institute, DISC Research Department},
+       title = {Distributed Lifetime Coverage Optimization Protocol in Wireless Sensor Networks},
+       number = {DISC2014-X},
+       month = {Octobre},
+       year = {2014}
+}
+
+@article{puccinelli2005wireless,
+  title={Wireless sensor networks: applications and challenges of ubiquitous sensing},
+  author={Puccinelli, Daniele and Haenggi, Martin},
+  journal={Circuits and Systems Magazine, IEEE},
+  volume={5},
+  number={3},
+  pages={19--31},
+  year={2005},
+  publisher={IEEE}
+}
+
+@article{akyildiz2002wireless,
+  title={Wireless sensor networks: a survey},
+  author={Akyildiz, Ian F and Su, Weilian and Sankarasubramaniam, Yogesh and Cayirci, Erdal},
+  journal={Computer networks},
+  volume={38},
+  number={4},
+  pages={393--422},
+  year={2002},
+  publisher={Elsevier}
+}
+
+@article{anastasi2009energy,
+  title={Energy conservation in wireless sensor networks: A survey},
+  author={Anastasi, Giuseppe and Conti, Marco and Di Francesco, Mario and Passarella, Andrea},
+  journal={Ad Hoc Networks},
+  volume={7},
+  number={3},
+  pages={537--568},
+  year={2009},
+  publisher={Elsevier}
+}
+
+@article{yick2008wireless,
+  title={Wireless sensor network survey},
+  author={Yick, Jennifer and Mukherjee, Biswanath and Ghosal, Dipak},
+  journal={Computer networks},
+  volume={52},
+  number={12},
+  pages={2292--2330},
+  year={2008},
+  publisher={Elsevier}
+}
+
+@article{rault2014energy,
+  title={Energy efficiency in wireless sensor networks: A top-down survey},
+  author={Rault, Tifenn and Bouabdallah, Abdelmadjid and Challal, Yacine},
+  journal={Computer Networks},
+  volume={67},
+  pages={104--122},
+  year={2014},
+  publisher={Elsevier}
+}
+
+@article{zhu2012survey,
+  title={A survey on coverage and connectivity issues in wireless sensor networks},
+  author={Zhu, Chuan and Zheng, Chunlin and Shu, Lei and Han, Guangjie},
+  journal={Journal of Network and Computer Applications},
+  volume={35},
+  number={2},
+  pages={619--632},
+  year={2012},
+  publisher={Elsevier}
+}
+
+@article{ammari2012centralized,
+  title={Centralized and clustered k-coverage protocols for wireless sensor networks},
+  author={Ammari, Habib M and Das, Sajal K},
+  journal={Computers, IEEE Transactions on},
+  volume={61},
+  number={1},
+  pages={118--133},
+  year={2012},
+  publisher={IEEE}
+}
+
+@article{rebai2014branch,
+  title={A Branch and Bound Algorithm for the Critical Grid Coverage Problem in Wireless Sensor Networks},
+  author={Rebai, Maher and Le Berre, Matthieu and Hnaien, Faicel and Snoussi, Hichem and Khoukhi, Lyes},
+  journal={International Journal of Distributed Sensor Networks},
+  volume={2014},
+  year={2014},
+  publisher={Hindawi Publishing Corporation}
+}
+
+@inproceedings{rebai2013linear,
+  title={Linear models for the total coverage problem in wireless sensor networks},
+  author={Rebai, Maher and Snoussi, Hichem and Khoukhi, I and Hnaien, Faicel},
+  booktitle={Modeling, Simulation and Applied Optimization (ICMSAO), 2013 5th International Conference on},
+  pages={1--4},
+  year={2013},
+  organization={IEEE}
+}
+
+@article{nayak2010wireless,
+  title={Wireless sensor and actuator networks},
+  author={Nayak, Amiya and Stojmenovic, Ivan},
+  journal={John-Whiley \& sons},
+  year={2010},
+  publisher={Wiley Online Library}
+}
+
+@article{li2011transforming,
+  title={Transforming complete coverage algorithms to partial coverage algorithms for wireless sensor networks},
+  author={Li, Yingshu and Vu, Chinh and Ai, Chunyu and Chen, Guantao and Zhao, Yi},
+  journal={Parallel and Distributed Systems, IEEE Transactions on},
+  volume={22},
+  number={4},
+  pages={695--703},
+  year={2011},
+  publisher={IEEE}
+}
+
+@inproceedings{liu2014generalized,
+  title={A generalized coverage-preserving scheduling in WSNs: A case study in structural health monitoring},
+  author={Liu, Xuefeng and Cao, Jiannong and Tang, Shaojie and Guo, Peng},
+  booktitle={INFOCOM, 2014 Proceedings IEEE},
+  pages={718--726},
+  year={2014},
+  organization={IEEE}
+}
+
+@inproceedings{wang2010preserving,
+  title={Preserving target area coverage in wireless sensor networks by using computational geometry},
+  author={Wang, San-Yuan and Shih, Kuei-Ping and Chen, Yen-Da and Ku, Hsin-Hui},
+  booktitle={Wireless Communications and Networking Conference (WCNC), 2010 IEEE},
+  pages={1--6},
+  year={2010},
+  organization={IEEE}
+}
+
+@inproceedings{cho2007distributed,
+  title={A Distributed node scheduling protocol considering sensing coverage in wireless sensor networks},
+  author={Cho, Jaekyu and Kim, Gilsoo and Kwon, Taekyoung and Choi, Yanghee},
+  booktitle={Vehicular Technology Conference, 2007. VTC-2007 Fall. 2007 IEEE 66th},
+  pages={352--356},
+  year={2007},
+  organization={IEEE}
+}
+
+@inproceedings{quang2008algorithm,
+  title={An algorithm for sensing coverage problem in wireless sensor networks},
+  author={Quang, Vinh Tran and Miyoshi, Takumi},
+  booktitle={Sarnoff Symposium, 2008 IEEE},
+  pages={1--5},
+  year={2008},
+  organization={IEEE}
+}
+
+
+@inproceedings{lin2010partitioning,
+  title={Partitioning sensors by node coverage grouping in wireless sensor networks},
+  author={Lin, Chow-Sing and Chen, Chih-Chung and Chen, An-Chi},
+  booktitle={Parallel and Distributed Processing with Applications (ISPA), 2010 International Symposium on},
+  pages={306--312},
+  year={2010},
+  organization={IEEE}
+}
+
+@inproceedings{zaidi2009minimum,
+  title={On minimum cost coverage in wireless sensor networks},
+  author={Zaidi, Syed Ali Raza and Hafeez, Maryam and Khayam, Syed A and McLernon, Desmond C and Ghogho, Mounir and Kim, K},
+  booktitle={Information Sciences and Systems, 2009. CISS 2009. 43rd Annual Conference on},
+  pages={213--218},
+  year={2009},
+  organization={IEEE}
+}
+
+@article{dong2012distributed,
+  title={Distributed coverage in wireless ad hoc and sensor networks by topological graph approaches},
+  author={Dong, Dezun and Liao, Xiangke and Liu, Kebin and Liu, Yunhao and Xu, Weixia},
+  journal={Computers, IEEE Transactions on},
+  volume={61},
+  number={10},
+  pages={1417--1428},
+  year={2012},
+  publisher={IEEE}
+}
+
+@article{liu2010energy,
+  title={Energy conservation algorithms for maintaining coverage and connectivity in wireless sensor networks},
+  author={Liu, L and Hu, B and Li, L},
+  journal={IET communications},
+  volume={4},
+  number={7},
+  pages={786--800},
+  year={2010},
+  publisher={IET}
+}
+
+@inproceedings{aslanyan2013optimal,
+  title={Optimal node scheduling for integrated connected-coverage in wireless sensor networks},
+  author={Aslanyan, Levon and Aslanyan, Hakob and Khosravi, Hamid},
+  booktitle={Computer Science and Information Technologies (CSIT), 2013},
+  pages={1--13},
+  year={2013},
+  organization={IEEE}
+}
+
+@article{0031-9155-44-1-012,
+  author={Eva K Lee and Richard J Gallagher and David Silvern and Cheng-Shie Wuu and Marco Zaider},
+  title={Treatment planning for brachytherapy: an integer programming model, two computational approaches and experiments with permanent prostate implant planning},
+  journal={Physics in Medicine and Biology},
+  volume={44},
+  number={1},
+  pages={145},
+  url={http://stacks.iop.org/0031-9155/44/i=1/a=012},
+  year={1999}
+}
+
+@BOOK{AMPL,
+  AUTHOR =       "Robert Fourer and David M. Gay and Brian W. Kernighan",
+  TITLE =        "AMPL: A Modeling Language for Mathematical Programming",
+  PUBLISHER =    "Cengage Learning",
+  YEAR =         "November 12, 2002",
+  edition =      "2nd",
+}
+
+@article{Deng2012,
+  title={Transforming Area Coverage to Target Coverage to Maintain Coverage and Connectivity for Wireless Sensor Networks},
+  author={Xiu Deng and Jiguo Yu, Dongxiao Yu and Congcong Chen},
+  journal={International Journal of Distributed Sensor Networks},
+  volume={2012},
+  year={2012},
+  ee = {http://dx.doi.org/10.1155/2012/254318}
+}
+
+@inproceedings{jaggi2006,
+  title={Energy-efficient Connected Covereage in Wireless Sensor Networks},
+  author={N. Jaggi and A.A. Abouzeid},
+  booktitle={Proceeding of 4th Asian International Mobile Computing Conference AMOC2006},
+  year={2006}
+}
+
+@inproceedings{yangnovel,
+  title={A Novel Distributed Algorithm for Complete Targets Coverage in Energy Harvesting Wireless Sensor Networks },
+  author={Yang, Changlin and Chin, Kwan-Wu},
+  booktitle={IEEE ICC 2014- Ad-hoc and Sensor Networking Symposium},
+  pages={361--366},
+  year={2014},
+  organization={IEEE}
+}
+
+@INPROCEEDINGS{5714480,
+author={Xiaofei Xing and Jie Li and Guojun Wang},
+booktitle={Mobile Ad-hoc and Sensor Networks (MSN), 2010 Sixth International Conference on},
+title={Integer Programming Scheme for Target Coverage in Heterogeneous Wireless Sensor Networks},
+year={2010},
+month={Dec},
+pages={79-84},
+keywords={energy conservation;integer programming;wireless sensor networks;ETCA;clustered configurations;clusterheads;energy first algorithm;energy-efficient target coverage algorithm;heterogeneous wireless sensor networks;integer programming;network lifetime;polytype target coverage;sensor node;Algorithm design and analysis;Clustering algorithms;Energy consumption;Logic gates;Sensors;Simulation;Wireless sensor networks;Heterogeneous wireless sensor networks;network lifetime;optimization;target coverage},
+doi={10.1109/MSN.2010.18},}
+
+@article{Yang2014,
+  title={A Maximum Lifetime Coverage Algorithm Based on Linear Programming},
+  author={Mengmeng Yang and Jie Liu},
+  journal={Journal of Information Hiding an dMultimedia Signal Processing, Ubiquitous International},
+  volume={5},
+  number={2},
+  pages={296-301},
+  year={2014}
+}
+
+@article{rossi2012exact,
+  title={An exact approach for maximizing the lifetime of sensor networks with adjustable sensing ranges},
+  author={Rossi, Andr{\'e} and Singh, Alok and Sevaux, Marc},
+  journal={Computers \& Operations Research},
+  volume={39},
+  number={12},
+  pages={3166--3176},
+  year={2012},
+  publisher={Elsevier}
+}
+
+@ARTICLE{glpk,
+author = {Andrew Makhorin},
+title = {The GLPK (GNU Linear Programming Kit)},
+journal = {Available: https://www.gnu.org/software/glpk/},
+year = {2012},
+}
+
+@article{deschinkel2012column,
+  title={A Column Generation based Heuristic to Extend Lifetime in Wireless Sensor Network.},
+  author={Deschinkel, Karine},
+  journal={Sensors \& Transducers Journal},
+  volume={14-2},
+  pages={242--253},
+  year={2012}
+}
diff --git a/PeCO/biblio.bib~ b/PeCO/biblio.bib~
new file mode 100644 (file)
index 0000000..a87d412
--- /dev/null
@@ -0,0 +1,1107 @@
+\iffalse
+
+@INPROCEEDINGS{Moore99,
+  AUTHOR =       "R. Moore and J. Lopes",
+  TITLE =        "Paper templates",
+  BOOKTITLE =    "TEMPLATE'06, 1st International Conference on Template Production",
+  YEAR =         "1999",
+  publisher =    "SCITEPRESS",
+  file = F
+}
+
+@BOOK{Smith98,
+  AUTHOR =       "J. Smith",
+  TITLE =        "The Book",
+  PUBLISHER =    "The publishing company",
+  YEAR =         "1998",
+  address =      "London",
+  edition =      "2nd",
+  file = F
+}
+
+
+@inproceedings{vashistha2007energy,
+  title={Energy efficient area monitoring using information coverage in wireless sensor networks},
+  author={Vashistha, Sumit and Azad, Amar Prakash and Chockalingam, Ananthanarayanan},
+  booktitle={World of Wireless, Mobile and Multimedia Networks, 2007. WoWMoM 2007. IEEE International Symposium on a},
+  pages={1--10},
+  year={2007},
+  organization={IEEE}
+}
+
+
+@ARTICLE{Torkestani,
+ author = "J. A. Torkestani",
+ title = "An adaptive energy-efficient area coverage algorithm for wireless sensor networks ",
+ journal = {Ad Hoc Networks},
+ volume = {11},
+ number = {6},
+ pages = {1655-1666},
+ year = {2013},
+ }
+@ARTICLE{Zhang,
+ author = "L. Zhang and Q. Zhu and J. Wang",
+ title = "Adaptive Clustering for Maximizing Network Lifetime and Maintaining Coverage ",
+ journal = {JOURNAL OF NETWORKS},
+ volume = {8},
+ number = {3},
+ pages = {616-622},
+ year = {2013},
+ }
+
+@ARTICLE{pc10,
+ author = "T.V. Padmavathy and M. Chitra",
+ title = "Extending the Network Lifetime of Wireless Sensor Networks Using Residual Energy Extraction-Hybrid Scheduling Algorithm",
+  JOURNAL = {Int. J. of Communications, Network and System Sciences},
+ VOLUME = {3},
+ NUMBER = {1},
+PAGES = {98-106},
+YEAR = {2010},
+ }
+
+
+
+@ARTICLE{Zhixin,
+ author = "Z. Liu and Q. Zheng and L. Xue and X. Guan",
+ title = "A distributed energy-efficient clustering algorithm with improved coverage in
+wireless sensor networks",
+ JOURNAL = {Future Generation Computer Systems},
+ VOLUME = {28},
+ NUMBER = {5},
+ PAGES = {780-790},
+ YEAR = {2012},
+ }
+
+@ARTICLE{Bang,
+ author = "B. Wang and H. B. Lim and D. Ma ",
+ title = "A coverage-aware clustering protocol for wireless sensor networks",
+ JOURNAL = {Computer Networks},
+ VOLUME = {56},
+ NUMBER = {5},
+ PAGES = {1599-1611},
+ YEAR = {2012},
+ }
+
+
+
+@book{Akyildiz02,
+ author = {I. F. Akyildiz and M. C. Vuran},
+ title = {Wireless Sensor Networks},
+ publisher = {John Wiley and Sons Ltd.},
+ year = {2010},
+} 
+
+@book{Sudip03,
+ author = {S. Misra and I. Woungang and S. C. Misra},
+ title = {Guide to Wireless Sensor Networks},
+ publisher = {Springer-Verlag London Limited},
+ year = {2009},
+} 
+
+@book{Nayak04,
+ author = {A. Nayak and I. Stojmenovic},
+ title = {Wireless Sensor and Actuator Networks: Algorithms and Protocols for Scalable Coordination and Data Communication},
+ publisher = {John Wiley and Sons, Inc},
+  year = {2010},
+} 
+
+
+
+@ARTICLE{Huang:2003:CPW:941350.941367,
+ author = "C.-F. Huang and Y.-C. Tseng",
+ title = "The Coverage Problem in a Wireless Sensor Network",
+ JOURNAL = {Mobile Networks and Applications},
+ VOLUME = {10},
+ NUMBER = {4},
+ PAGES = {519-528}, 
+ YEAR = {2005},
+ }
+
+
+@ARTICLE{Zhang05,
+  author    = {H. Zhang and J. C. Hou},
+  title     = {Maintaining Sensing Coverage and Connectivity in Large Sensor Networks},
+  journal   = {Ad Hoc {\&} Sensor Wireless Networks},
+  volume    = {1},
+  number    = {1-2},
+  year      = {2005},
+
+}
+
+@ARTICLE{HeinzelmanCB02,
+  author    = {W. B. Heinzelman and A. P. Chandrakasan and H. Balakrishnan},
+  title     = {An application-specific protocol architecture for wireless microsensor networks},
+  journal   = {IEEE Transactions on Wireless Communications},
+  volume    = {1},
+  number    = {4},
+  pages     = {660-670},
+  year      = {2002},
+}
+
+
+@inproceedings{pedraza2006,
+       author = {F. Pedraza and A. L. Medaglia and A. Garcia},
+       title = {Efficient coverage algorithms for wireless sensor networks},   
+       booktitle = {Proceedings of the 2006 Systems and Information Engineering Design Symposium},
+       pages = {78-83},
+       YEAR = {2006},
+} 
+
+@PhDThesis{chin2007,
+author = {C. T. Vu},
+title = {DISTRIBUTED ENERGY-EFFICIENT SOLUTIONS FOR AREA COVERAGE PROBLEMS IN WIRELESS SENSOR NETWORKS},
+school = {Georgia State University},
+year = {2009},
+}
+
+@ARTICLE{varga,
+author = {A. Varga},
+title = {OMNeT++ Discrete Event Simulation System},
+journal = {Available: http://www.omnetpp.org},
+year = {2003},
+}
+
+
+@ARTICLE{die09,
+  author    = {Isabel Dietrich and
+               Falko Dressler},
+  title     = {On the lifetime of wireless sensor networks},
+  journal   = {TOSN},
+  volume    = {5},
+  number    = {1},
+  year      = {2009},
+  ee        = {http://doi.acm.org/10.1145/1464420.1464425},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+  
+@ARTICLE{mulligan2010coverage,
+  title={Coverage in Wireless Sensor Networks: A Survey.},
+  author={Mulligan, Raymond and Ammari, Habib M},
+  journal={Network Protocols \& Algorithms},
+  volume={2},
+  number={2},
+  year={2010}
+}
+
+
+@phdthesis{vu2009distributed,
+  title={Distributed energy-efficient solutions for area coverage problems in wireless sensor networks},
+  author={Vu, Chinh Trung},
+  year={2009},
+  school={GEORGIA STATE UNIVERSITY}
+}
+
+
+@ARTICLE{raghunathan2002energy,
+  title={Energy-aware wireless microsensor networks},
+  author={Raghunathan, Vijay and Schurgers, Curt and Park, Sung and Srivastava, Mani B},
+  journal={Signal Processing Magazine, IEEE},
+  volume={19},
+  number={2},
+  pages={40--50},
+  year={2002},
+  publisher={IEEE}
+}
+
+@ARTICLE{ChinhVu,
+author = {Chinh Vu and Shan Gao and Wiwek Deshmukh and Yingshu Li},
+title = {Distributed Energy-Efficient Scheduling Approach for K-Coverage in Wireless Sensor Networks},
+journal ={MILCOM},
+volume = {0},
+isbn = {1-4244-0617-X},
+year = {2006},
+pages = {1-7},
+doi = {http://doi.ieeecomputersociety.org/10.1109/MILCOM.2006.302146},
+publisher = {IEEE Computer Society},
+address = {Los Alamitos, CA, USA},
+}
+
+
+@ARTICLE{ghosh2008coverage,
+  title={Coverage and connectivity issues in wireless sensor networks: A survey},
+  author={Ghosh, Amitabha and Das, Sajal K},
+  journal={Pervasive and Mobile Computing},
+  volume={4},
+  number={3},
+  pages={303--334},
+  year={2008},
+  publisher={Elsevier}
+}
+
+
+
+@ARTICLE{yang2014novel, 
+author={Changlin Yang and Kwan-Wu Chin}, 
+journal={Communications Letters, IEEE}, 
+title={Novel Algorithms for Complete Targets Coverage in Energy Harvesting Wireless Sensor Networks}, 
+year={2014}, 
+month={January}, 
+volume={18}, 
+number={1}, 
+pages={118-121}, 
+keywords={energy harvesting;linear programming;secondary cells;telecommunication power supplies;wireless sensor networks;MUA;WSN;activation schedule;complete targets coverage;energy conservation;energy harvesting wireless sensor networks;linear programming based solution;maximum utility algorithm;network lifetime maximization problem;recharging opportunities;sensor nodes;sleep state;time interval;wake-up schedule;Batteries;Energy harvesting;Erbium;Monitoring;Schedules;Sensors;Wireless sensor networks;Wireless sensor network;energy harvesting;targets coverage}, 
+doi={10.1109/LCOMM.2013.111513.132436}, 
+ISSN={1089-7798},}
+
+@ARTICLE{HeShibo, 
+author={He, Shibo and Gong, Xiaowen and Zhang, Junshan and Chen, Jiming and Sun, Youxian}, 
+journal={Wireless Communications, IEEE Transactions on}, 
+title={Curve-Based Deployment for Barrier Coverage in Wireless Sensor Networks}, 
+year={2014}, 
+month={February}, 
+volume={13}, 
+number={2}, 
+pages={724-735}, 
+keywords={Algorithm design and analysis;Approximation algorithms;Approximation methods;Educational institutions;Sensors;Wireless communication;Wireless sensor networks;Barrier coverage;curved-based deployment;deployment algorithms;optimal deployment curve}, 
+doi={10.1109/TWC.2013.121813.130198}, 
+ISSN={1536-1276},
+}
+
+
+
+@inproceedings{Zorbas2007,
+ author = {D. Zorbas and D. Glynos and P. Kotzanikolaou and C. Douligeris},
+ title = {B\{GOP\}: an adaptive coverage algorithm for wireless sensor networks},
+ booktitle = {Proceedings of the 13th European Wireless Conference},
+ series = {EW'07},
+ year = {2007},
+ location = {Paris, France},
+} 
+
+@ARTICLE{zorbas2010solving,
+  title={Solving coverage problems in wireless sensor networks using cover sets},
+  author={Zorbas, Dimitrios and Glynos, Dimitris and Kotzanikolaou, Panayiotis and Douligeris, Christos},
+  journal={Ad Hoc Networks},
+  volume={8},
+  number={4},
+  pages={400-415},
+  year={2010},
+  publisher={Elsevier},
+}
+
+@INPROCEEDINGS{Slijepcevic01powerefficient,
+    author = {S. Slijepcevic and M. Potkonjak},
+    title = {Power Efficient Organization of Wireless Sensor Networks},
+    booktitle = {IEEE International conference on Communications},
+    year = {2001},
+    pages = {472-476}
+}
+
+@ARTICLE{cardei2006energy,
+  title={Energy-efficient coverage problems in wireless ad-hoc sensor networks},
+  author={Cardei, Mihaela and Wu, Jie},
+  journal={Computer communications},
+  volume={29},
+  number={4},
+  pages={413-420},
+  year={2006},
+  publisher={Elsevier}
+}
+
+@inproceedings{cardei2005energy,
+  title={Energy-efficient target coverage in wireless sensor networks},
+  author={Cardei, Mihaela and Thai, My T and Li, Yingshu and Wu, Weili},
+  booktitle={INFOCOM 2005. 24th Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings IEEE},
+  volume={3},
+  pages={1976-1984},
+  year={2005},
+  organization={IEEE}
+}
+
+@ARTICLE{cardei2005improving,
+  title={Improving wireless sensor network lifetime through power aware organization},
+  author={Cardei, Mihaela and Du, Ding-Zhu},
+  journal={Wireless Networks},
+  volume={11},
+  number={3},
+  pages={333-340},
+  year={2005},
+  publisher={Springer-Verlag New York, Inc.}
+}
+
+@inproceedings{abrams2004set,
+  title={Set k-cover algorithms for energy efficient monitoring in wireless sensor networks},
+  author={Abrams, Zo{\"e} and Goel, Ashish and Plotkin, Serge},
+  booktitle={Proceedings of the 3rd international symposium on Information processing in sensor networks},
+  pages={424-432},
+  year={2004},
+  organization={ACM}
+}
+
+@ARTICLE{pujari2011high,
+  title={High-Energy-First (HEF) Heuristic for Energy-Efficient Target Coverage Problem.},
+  author={Pujari, Arun K},
+  journal={International Journal of Ad Hoc, Sensor \& Ubiquitous Computing},
+  volume={2},
+  number={1},
+  year={2011}
+}
+
+@INPROCEEDINGS{berman04,
+    author = {P. Berman and G. Calinescu},
+    title = {Power Efficient Monitoring Management in Sensor Networks},
+    booktitle = {Proceedings of IEEE Wireless Communication and Networking Conference (WCNC'04)},
+    year = {2004},
+    pages = {2329--2334}
+}
+
+@inproceedings{Gallais06,
+ author = {Gallais, Antoine and Carle, Jean and Simplot-Ryl, David and Stojmenovic, Ivan},
+ title = {Localized Sensor Area Coverage with Low Communication Overhead},
+ booktitle = {Proceedings of the Fourth Annual IEEE International Conference on Pervasive Computing and Communications},
+ year = {2006},
+ pages = {328-337},
+}
+
+@inproceedings{Tian02,
+ author = {Tian, Di and Georganas, Nicolas D.},
+ title = {A coverage-preserving node scheduling scheme for large wireless sensor networks},
+ booktitle = {Proceedings of the 1st ACM international workshop on Wireless sensor networks and applications},
+ series = {WSNA '02},
+ year = {2002},
+ pages = {32-41},
+ publisher = {ACM},
+} 
+
+@inproceedings{Ye03,
+ author = {Ye, Fan and Zhong, Gary and Cheng, Jesse and Lu, Songwu and Zhang, Lixia},
+ title = {PEAS: A Robust Energy Conserving Protocol for Long-lived Sensor Networks},
+ booktitle = {Proceedings of the 23rd International Conference on Distributed Computing Systems},
+ series = {ICDCS'03},
+ year = {2003},
+ pages = {28-37},
+} 
+
+
+@INPROCEEDINGS{Berman05efficientenergy,
+    author = {P. Berman and G. Calinescu and C. Shah and A. Zelikovsky},
+    title = {Efficient energy management in sensor networks},
+    booktitle = {Ad Hoc and Sensor Networks. Nova Science Publishers},
+    year = {2005},
+    publisher = {Nova Science Publisher}
+}
+
+@inproceedings{lu2003coverage,
+  title={Coverage-aware self-scheduling in sensor networks},
+  author={Lu, Jun and Suda, Tatsuya},
+  booktitle={Computer Communications, 2003. CCW 2003. Proceedings. 2003 IEEE 18th Annual Workshop on},
+  pages={117--123},
+  year={2003},
+  organization={IEEE}
+}
+
+@incollection{prasad2007distributed,
+  title={Distributed algorithms for lifetime of wireless sensor networks based on dependencies among cover sets},
+  author={Prasad, Sushil K and Dhawan, Akshaye},
+  booktitle={High Performance Computing--HiPC 2007},
+  pages={381-392},
+  year={2007},
+  publisher={Springer}
+}
+
+@inproceedings{cardei2005maximum,
+  title={Maximum network lifetime in wireless sensor networks with adjustable sensing ranges},
+  author={Cardei, Mihaela and Wu, Jie and Lu, Mingming and Pervaiz, Mohammad O},
+  booktitle={Wireless And Mobile Computing, Networking And Communications, 2005.(WiMob'2005), IEEE International Conference on},
+  volume={3},
+  pages={438--445},
+  year={2005},
+  organization={IEEE}
+}
+
+@inproceedings{garg98,
+ author = {Garg, Naveen and Koenemann, Jochen},
+ title = {Faster and Simpler Algorithms for Multicommodity Flow and other Fractional Packing Problems.},
+ booktitle = {Proceedings of the 39th Annual Symposium on Foundations of Computer Science},
+ series = {FOCS '98},
+ year = {1998},
+ pages = {300-309},
+}
+
+@article{wang2010clique,
+  title={A clique base node scheduling method for wireless sensor networks},
+  author={Wang, Lei and Wei, Ruizhong and Lin, Yaping and Wang, Bo},
+  journal={Journal of Network and Computer Applications},
+  volume={33},
+  number={4},
+  pages={383--396},
+  year={2010},
+  publisher={Elsevier}
+}
+
+@article{yardibi2010distributed,
+  title={A distributed activity scheduling algorithm for wireless sensor networks with partial coverage},
+  author={Yardibi, Tarik and Karasan, Ezhan},
+  journal={Wireless Networks},
+  volume={16},
+  number={1},
+  pages={213--225},
+  year={2010},
+  publisher={Springer}
+}
+
+@article{conti2014mobile,
+  title={Mobile ad hoc networking: milestones, challenges, and new research directions},
+  author={Conti, Marco and Giordano, Silvia},
+  journal={Communications Magazine, IEEE},
+  volume={52},
+  number={1},
+  pages={85--96},
+  year={2014},
+  publisher={IEEE}
+}
+
+@inproceedings{idrees2014coverage,
+  title={Coverage and Lifetime Optimization in Heterogeneous Energy Wireless Sensor Networks},
+  author={Idrees, Ali Kadhum and Deschinkel, Karine and Salomon, Michel and Couturier, Rapha{\"e}l},
+  booktitle={ICN 2014, The Thirteenth International Conference on Networks},
+  pages={49--54},
+  year={2014}
+}
+
+@inproceedings{xu2001geography,
+  title={Geography-informed energy conservation for ad hoc routing},
+  author={Xu, Ya and Heidemann, John and Estrin, Deborah},
+  booktitle={Proceedings of the 7th annual international conference on Mobile computing and networking},
+  pages={70--84},
+  year={2001},
+  organization={ACM}
+}
+
+@article{zhou2009variable,
+  title={Variable radii connected sensor cover in sensor networks},
+  author={Zhou, Zongheng and Das, Samir R and Gupta, Himanshu},
+  journal={ACM Transactions on Sensor Networks (TOSN)},
+  volume={5},
+  number={1},
+  pages={8},
+  year={2009},
+  publisher={ACM}
+}
+
+@article{wang2009parallel,
+  title={Parallel energy-efficient coverage optimization with maximum entropy clustering in wireless sensor networks},
+  author={Wang, Xue and Ma, Junjie and Wang, Sheng},
+  journal={Journal of Parallel and Distributed Computing},
+  volume={69},
+  number={10},
+  pages={838--847},
+  year={2009},
+  publisher={Elsevier}
+}
+
+@article{yan2008design,
+  title={Design and optimization of distributed sensing coverage in wireless sensor networks},
+  author={Yan, Ting and Gu, Yu and He, Tian and Stankovic, John A},
+  journal={ACM Transactions on Embedded Computing Systems (TECS)},
+  volume={7},
+  number={3},
+  pages={33},
+  year={2008},
+  publisher={ACM}
+}
+
+@article{he2012leveraging,
+  title={Leveraging prediction to improve the coverage of wireless sensor networks},
+  author={He, Shibo and Chen, Jiming and Li, Xu and Shen, Xuemin and Sun, Youxian},
+  journal={Parallel and Distributed Systems, IEEE Transactions on},
+  volume={23},
+  number={4},
+  pages={701-712},
+  year={2012},
+  publisher={IEEE}
+}
+
+@article{esnaashari2010learning,
+  title={A learning automata based scheduling solution to the dynamic point coverage problem in wireless sensor networks},
+  author={Esnaashari, Mehdi and Meybodi, Mohammad Reza},
+  journal={Computer Networks},
+  volume={54},
+  number={14},
+  pages={2410--2438},
+  year={2010},
+  publisher={Elsevier}
+}
+
+
+@ARTICLE{Misra,
+ author = "S. Misra and M. P. Kumar and M. S. Obaidat",
+ title = "Connectivity preserving localized coverage algorithm for area monitoring using
+wireless sensor networks ",
+ JOURNAL = {Computer Communications},
+ VOLUME = {34},
+ NUMBER = {12},
+ PAGES = {1484-1496},
+ YEAR = {2011},
+}
+
+
+
+@article{rizvi2012a1,
+  title={A1: An energy efficient topology control algorithm for connected area coverage in wireless sensor networks},
+  author={Rizvi, Sajjad and Qureshi, Hassaan Khaliq and Ali Khayam, Syed and Rakocevic, Veselin and Rajarajan, Muttukrishnan},
+  journal={Journal of Network and Computer Applications},
+  volume={35},
+  number={2},
+  pages={597--605},
+  year={2012},
+  publisher={Elsevier}
+}
+
+@article{tran2009novel,
+  title={A novel gossip-based sensing coverage algorithm for dense wireless sensor networks},
+  author={Tran-Quang, Vinh and Miyoshi, Takumi},
+  journal={Computer Networks},
+  volume={53},
+  number={13},
+  pages={2275--2287},
+  year={2009},
+  publisher={Elsevier}
+}
+
+@ARTICLE{wang2011coverage,
+  title={Coverage problems in sensor networks: A survey},
+  author={Wang, Bang},
+  journal={ACM Computing Surveys (CSUR)},
+  volume={43},
+  number={4},
+  pages={32},
+  year={2011},
+  publisher={ACM}
+}
+
+
+@article{luo2014parameterized,
+  title={Parameterized complexity of max-lifetime target coverage in wireless sensor networks},
+  author={Luo, Weizhong and Wang, Jianxin and Guo, Jiong and Chen, Jianer},
+  journal={Theoretical Computer Science},
+  volume={518},
+  pages={32--41},
+  year={2014},
+  publisher={Elsevier}
+}
+
+@article{jarray2013lagrangean,
+  title={A Lagrangean-based heuristics for the target covering problem in wireless sensor network},
+  author={Jarray, Fethi},
+  journal={Applied Mathematical Modelling},
+  volume={37},
+  number={10},
+  pages={6780--6785},
+  year={2013},
+  publisher={Elsevier}
+}
+
+@article{naderan2013sensing,
+  title={Sensing task assignment via sensor selection for maximum target coverage in WSNs},
+  author={Naderan, Marjan and Dehghan, Mehdi and Pedram, Hossein},
+  journal={Journal of Network and Computer Applications},
+  volume={36},
+  number={1},
+  pages={262--273},
+  year={2013},
+  publisher={Elsevier}
+}
+
+@article{erdelj2013multiple,
+  title={Multiple point of interest discovery and coverage with mobile wireless sensors},
+  author={Erdelj, Milan and Loscri, Valeria and Natalizio, Enrico and Razafindralambo, Tahiry},
+  journal={Ad Hoc Networks},
+  volume={11},
+  number={8},
+  pages={2288--2300},
+  year={2013},
+  publisher={Elsevier}
+}
+
+@article{tian2014distributed,
+  title={Distributed Multitarget Probabilistic Coverage Control Algorithm for Wireless Sensor Networks},
+  author={Tian, Ying and Ou, Yang and Hamid, Reza Karimi and Liu, Yan Tao and Han, Jian Qun},
+  journal={Mathematical Problems in Engineering},
+  volume={2014},
+  pages={1--8},
+  year={2014},
+  publisher={Hindawi Publishing Corporation}
+}
+
+@article{castano2013column,
+  title={A column generation approach to extend lifetime in wireless sensor networks with coverage and connectivity constraints},
+  author={Casta{\~n}o, Fabian and Rossi, Andr{\'e} and Sevaux, Marc and Velasco, Nubia},
+  journal={Computers \& Operations Research},
+  year={2013},
+  publisher={Elsevier}
+}
+
+@article{yu2013cwsc,
+  title={CWSC: Connected< i> k</i>-coverage working sets construction algorithm in wireless sensor networks},
+  author={Yu, Jiguo and Deng, Xiu and Yu, Dongxiao and Wang, Guanghui and Gu, Xin},
+  journal={AEU-International Journal of Electronics and Communications},
+  volume={67},
+  number={11},
+  pages={937--946},
+  year={2013},
+  publisher={Elsevier}
+}
+
+@article{cheng2014achieving,
+  title={Achieving Asymmetric Sensing Coverage for Duty Cycled Wireless Sensor Networks},
+  author={Cheng, Long and He, Tian and Niu, Jianwei and Du, David HC},
+  journal={IEEE Transactions on Parallel and Distributed Systems},
+  pages={1--11},
+  year={2014},
+  publisher={IEEE}
+}
+
+@article{yang2013energy,
+  title={Energy-Efficient Probabilistic Area Coverage in Wireless Sensor Networks},
+  author={Yang, Qianqian and He, Shibo and Li, Junkun and Chen, Jiming and Sun, Youxian},
+  journal={IEEE Transactions on Vehicular Technology},
+  year={2013},
+  publisher={IEEE}
+}
+
+@inproceedings{kim2013maximum,
+  title={Maximum lifetime of reinforced barrier-coverage in Wireless Sensor Networks},
+  author={Kim, Hyunbum and Cobb, Jorge A},
+  booktitle={Networks (ICON), 2013 19th IEEE International Conference on},
+  pages={1--6},
+  year={2013},
+  organization={IEEE}
+}
+
+
+
+@inproceedings{chang2012joint,
+  title={Joint energy-balanced and full-coverage mechanism using sensing range control for maximizing network lifetime in WSNs},
+  author={Chang, Chih-Yung and Yu, Gwo-Jong and Lin, Chih-Yu and Wang, Tzu-Lin},
+  booktitle={Ubiquitous and Future Networks (ICUFN), 2012 Fourth International Conference on},
+  pages={34--39},
+  year={2012},
+  organization={IEEE}
+}
+
+
+
+@inproceedings{al2013energy,
+  title={Energy-efficient k-coverage scheduling algorithm for sensor networks with adjustable sensing range},
+  author={Al-Shalabi, Ahmed Abdullah and Manaf, Mazani},
+  booktitle={Wireless Technology and Applications (ISWTA), 2013 IEEE Symposium on},
+  pages={316--321},
+  year={2013},
+  organization={IEEE}
+}
+
+@inproceedings{kim2012sleep,
+  title={On sleep-wakeup scheduling of non-penetrable barrier-coverage of wireless sensors},
+  author={Kim, Donghyun and Kim, Jiwoong and Li, Deying and Kwon, Sung-Sik and Tokuta, Alade O},
+  booktitle={Global Communications Conference (GLOBECOM), 2012 IEEE},
+  pages={321--327},
+  year={2012},
+  organization={IEEE}
+}
+
+@article{li2013survey,
+  title={A Survey on Topology Control in Wireless Sensor Networks: Taxonomy, Comparative Study, and Open Issues},
+  author={Li, Mo and Vasilakos, Athanasios V},
+  journal={Proceedings of the IEEE},
+  volume={101},
+  number={12},
+  year={2013}
+}
+
+
+@inproceedings{wang2007energy,
+  title={Energy efficient coverage with variable sensing radii in wireless sensor networks},
+  author={Wang, Jiong and Medidi, Sirisha},
+  booktitle={Wireless and Mobile Computing, Networking and Communications, 2007. WiMOB 2007. Third IEEE International Conference on},
+  pages={61--61},
+  year={2007},
+  organization={IEEE}
+}
+
+@inproceedings{vu2009delaunay,
+  title={Delaunay-triangulation based complete coverage in wireless sensor networks},
+  author={Vu, Chinh T and Li, Yingshu},
+  booktitle={Pervasive Computing and Communications, 2009. PerCom 2009. IEEE International Conference on},
+  pages={1--5},
+  year={2009},
+  organization={IEEE}
+}
+
+@article{yang2014energy,
+author={Yang, Q. and He, S. and Li, J. and Chen, J. and Sun, Y.},
+journal={Vehicular Technology, IEEE Transactions on},
+title={Energy-Efficient Probabilistic Area Coverage in Wireless Sensor Networks},
+volume={PP},
+number={99},
+pages={1-1},
+year={2014},
+
+}
+
+@inproceedings{ling2009energy,
+  title={Energy efficient adaptive sensing for dynamic coverage in wireless sensor networks},
+  author={Ling, Hui and Znati, Taieb},
+  booktitle={Wireless Communications and Networking Conference, 2009. WCNC 2009. IEEE},
+  pages={1--6},
+  year={2009},
+  organization={IEEE}
+}
+
+@inproceedings{diongue2013alarm,
+  title={ALARM: An energy aware sleep scheduling algorithm for lifetime maximization in wireless sensor networks},
+  author={Diongue, Dame and Thiare, Ousmane},
+  booktitle={Wireless Technology and Applications (ISWTA), 2013 IEEE Symposium on},
+  pages={74--79},
+  year={2013},
+  organization={IEEE}
+}
+
+
+@INPROCEEDINGS{shi2009, 
+author={Qinghua Shi and Xiaozhen Wei and Yu Peng and Shiqian Li}, 
+booktitle={Computer Network and Multimedia Technology, 2009. CNMT 2009. International Symposium on}, 
+title={An Energy-Efficient Central-Scheduling Scheme in Wireless Sensor Networks}, 
+year={2009}, 
+month={Jan}, 
+pages={1-4}, 
+}
+
+@inproceedings{qu2013distributed,
+  title={A distributed area coverage algorithm for maintenance of randomly distributed sensors with adjustable sensing range},
+  author={Qu, Yipeng and Georgakopoulos, Stavros V},
+  booktitle={Global Communications Conference (GLOBECOM), 2013 IEEE},
+  pages={286--291},
+  year={2013},
+  organization={IEEE}
+}
+
+@inproceedings{xin2009area,
+  title={The area coverage algorithm to maintain connectivity for WSN},
+  author={Xin, He and Ke, Yin and Xiaolin, Gui},
+  booktitle={Computer and Information Technology, 2009. CIT'09. Ninth IEEE International Conference on},
+  volume={2},
+  pages={81--86},
+  year={2009},
+  organization={IEEE}
+}
+
+\fi
+
+@article{huang2005coverage,
+  title={The coverage problem in a wireless sensor network},
+  author={Huang, Chi-Fu and Tseng, Yu-Chee},
+  journal={Mobile Networks and Applications},
+  volume={10},
+  number={4},
+  pages={519--528},
+  year={2005},
+  publisher={Springer-Verlag New York, Inc.}
+}
+
+
+@techreport{Idrees2,
+       author = {Idrees, Ali Kadhum and Deschinkel, Karine and Salomon, Michel and Couturier, Rapha{\"e}l},
+       institution = {University of Franche-Comte - FEMTO-ST Institute, DISC Research Department},
+       title = {Distributed Lifetime Coverage Optimization Protocol in Wireless Sensor Networks},
+       number = {DISC2014-X},
+       month = {Octobre},
+       year = {2014}
+}
+
+@article{puccinelli2005wireless,
+  title={Wireless sensor networks: applications and challenges of ubiquitous sensing},
+  author={Puccinelli, Daniele and Haenggi, Martin},
+  journal={Circuits and Systems Magazine, IEEE},
+  volume={5},
+  number={3},
+  pages={19--31},
+  year={2005},
+  publisher={IEEE}
+}
+
+@article{akyildiz2002wireless,
+  title={Wireless sensor networks: a survey},
+  author={Akyildiz, Ian F and Su, Weilian and Sankarasubramaniam, Yogesh and Cayirci, Erdal},
+  journal={Computer networks},
+  volume={38},
+  number={4},
+  pages={393--422},
+  year={2002},
+  publisher={Elsevier}
+}
+
+@article{anastasi2009energy,
+  title={Energy conservation in wireless sensor networks: A survey},
+  author={Anastasi, Giuseppe and Conti, Marco and Di Francesco, Mario and Passarella, Andrea},
+  journal={Ad Hoc Networks},
+  volume={7},
+  number={3},
+  pages={537--568},
+  year={2009},
+  publisher={Elsevier}
+}
+
+@article{yick2008wireless,
+  title={Wireless sensor network survey},
+  author={Yick, Jennifer and Mukherjee, Biswanath and Ghosal, Dipak},
+  journal={Computer networks},
+  volume={52},
+  number={12},
+  pages={2292--2330},
+  year={2008},
+  publisher={Elsevier}
+}
+
+@article{rault2014energy,
+  title={Energy efficiency in wireless sensor networks: A top-down survey},
+  author={Rault, Tifenn and Bouabdallah, Abdelmadjid and Challal, Yacine},
+  journal={Computer Networks},
+  volume={67},
+  pages={104--122},
+  year={2014},
+  publisher={Elsevier}
+}
+
+@article{zhu2012survey,
+  title={A survey on coverage and connectivity issues in wireless sensor networks},
+  author={Zhu, Chuan and Zheng, Chunlin and Shu, Lei and Han, Guangjie},
+  journal={Journal of Network and Computer Applications},
+  volume={35},
+  number={2},
+  pages={619--632},
+  year={2012},
+  publisher={Elsevier}
+}
+
+@article{ammari2012centralized,
+  title={Centralized and clustered k-coverage protocols for wireless sensor networks},
+  author={Ammari, Habib M and Das, Sajal K},
+  journal={Computers, IEEE Transactions on},
+  volume={61},
+  number={1},
+  pages={118--133},
+  year={2012},
+  publisher={IEEE}
+}
+
+@article{rebai2014branch,
+  title={A Branch and Bound Algorithm for the Critical Grid Coverage Problem in Wireless Sensor Networks},
+  author={Rebai, Maher and Le Berre, Matthieu and Hnaien, Faicel and Snoussi, Hichem and Khoukhi, Lyes},
+  journal={International Journal of Distributed Sensor Networks},
+  volume={2014},
+  year={2014},
+  publisher={Hindawi Publishing Corporation}
+}
+
+@inproceedings{rebai2013linear,
+  title={Linear models for the total coverage problem in wireless sensor networks},
+  author={Rebai, Maher and Snoussi, Hichem and Khoukhi, I and Hnaien, Faicel},
+  booktitle={Modeling, Simulation and Applied Optimization (ICMSAO), 2013 5th International Conference on},
+  pages={1--4},
+  year={2013},
+  organization={IEEE}
+}
+
+@article{nayak2010wireless,
+  title={Wireless sensor and actuator networks},
+  author={Nayak, Amiya and Stojmenovic, Ivan},
+  journal={John-Whiley \& sons},
+  year={2010},
+  publisher={Wiley Online Library}
+}
+
+@article{li2011transforming,
+  title={Transforming complete coverage algorithms to partial coverage algorithms for wireless sensor networks},
+  author={Li, Yingshu and Vu, Chinh and Ai, Chunyu and Chen, Guantao and Zhao, Yi},
+  journal={Parallel and Distributed Systems, IEEE Transactions on},
+  volume={22},
+  number={4},
+  pages={695--703},
+  year={2011},
+  publisher={IEEE}
+}
+
+@inproceedings{liu2014generalized,
+  title={A generalized coverage-preserving scheduling in WSNs: A case study in structural health monitoring},
+  author={Liu, Xuefeng and Cao, Jiannong and Tang, Shaojie and Guo, Peng},
+  booktitle={INFOCOM, 2014 Proceedings IEEE},
+  pages={718--726},
+  year={2014},
+  organization={IEEE}
+}
+
+@inproceedings{wang2010preserving,
+  title={Preserving target area coverage in wireless sensor networks by using computational geometry},
+  author={Wang, San-Yuan and Shih, Kuei-Ping and Chen, Yen-Da and Ku, Hsin-Hui},
+  booktitle={Wireless Communications and Networking Conference (WCNC), 2010 IEEE},
+  pages={1--6},
+  year={2010},
+  organization={IEEE}
+}
+
+@inproceedings{cho2007distributed,
+  title={A Distributed node scheduling protocol considering sensing coverage in wireless sensor networks},
+  author={Cho, Jaekyu and Kim, Gilsoo and Kwon, Taekyoung and Choi, Yanghee},
+  booktitle={Vehicular Technology Conference, 2007. VTC-2007 Fall. 2007 IEEE 66th},
+  pages={352--356},
+  year={2007},
+  organization={IEEE}
+}
+
+@inproceedings{quang2008algorithm,
+  title={An algorithm for sensing coverage problem in wireless sensor networks},
+  author={Quang, Vinh Tran and Miyoshi, Takumi},
+  booktitle={Sarnoff Symposium, 2008 IEEE},
+  pages={1--5},
+  year={2008},
+  organization={IEEE}
+}
+
+
+@inproceedings{lin2010partitioning,
+  title={Partitioning sensors by node coverage grouping in wireless sensor networks},
+  author={Lin, Chow-Sing and Chen, Chih-Chung and Chen, An-Chi},
+  booktitle={Parallel and Distributed Processing with Applications (ISPA), 2010 International Symposium on},
+  pages={306--312},
+  year={2010},
+  organization={IEEE}
+}
+
+@inproceedings{zaidi2009minimum,
+  title={On minimum cost coverage in wireless sensor networks},
+  author={Zaidi, Syed Ali Raza and Hafeez, Maryam and Khayam, Syed A and McLernon, Desmond C and Ghogho, Mounir and Kim, K},
+  booktitle={Information Sciences and Systems, 2009. CISS 2009. 43rd Annual Conference on},
+  pages={213--218},
+  year={2009},
+  organization={IEEE}
+}
+
+@article{dong2012distributed,
+  title={Distributed coverage in wireless ad hoc and sensor networks by topological graph approaches},
+  author={Dong, Dezun and Liao, Xiangke and Liu, Kebin and Liu, Yunhao and Xu, Weixia},
+  journal={Computers, IEEE Transactions on},
+  volume={61},
+  number={10},
+  pages={1417--1428},
+  year={2012},
+  publisher={IEEE}
+}
+
+@article{liu2010energy,
+  title={Energy conservation algorithms for maintaining coverage and connectivity in wireless sensor networks},
+  author={Liu, L and Hu, B and Li, L},
+  journal={IET communications},
+  volume={4},
+  number={7},
+  pages={786--800},
+  year={2010},
+  publisher={IET}
+}
+
+@inproceedings{aslanyan2013optimal,
+  title={Optimal node scheduling for integrated connected-coverage in wireless sensor networks},
+  author={Aslanyan, Levon and Aslanyan, Hakob and Khosravi, Hamid},
+  booktitle={Computer Science and Information Technologies (CSIT), 2013},
+  pages={1--13},
+  year={2013},
+  organization={IEEE}
+}
+
+@article{0031-9155-44-1-012,
+  author={Eva K Lee and Richard J Gallagher and David Silvern and Cheng-Shie Wuu and Marco Zaider},
+  title={Treatment planning for brachytherapy: an integer programming model, two computational approaches and experiments with permanent prostate implant planning},
+  journal={Physics in Medicine and Biology},
+  volume={44},
+  number={1},
+  pages={145},
+  url={http://stacks.iop.org/0031-9155/44/i=1/a=012},
+  year={1999}
+}
+
+@BOOK{AMPL,
+  AUTHOR =       "Robert Fourer and David M. Gay and Brian W. Kernighan",
+  TITLE =        "AMPL: A Modeling Language for Mathematical Programming",
+  PUBLISHER =    "Cengage Learning",
+  YEAR =         "November 12, 2002",
+  edition =      "2nd",
+}
+
+@article{Deng2012,
+  title={Transforming Area Coverage to Target Coverage to Maintain Coverage and Connectivity for Wireless Sensor Networks},
+  author={Xiu Deng and Jiguo Yu, Dongxiao Yu and Congcong Chen},
+  journal={International Journal of Distributed Sensor Networks},
+  volume={2012},
+  year={2012},
+  ee = {http://dx.doi.org/10.1155/2012/254318}
+}
+
+@inproceedings{jaggi2006,
+  title={Energy-efficient Connected Covereage in Wireless Sensor Networks},
+  author={N. Jaggi and A.A. Abouzeid},
+  booktitle={Proceeding of 4th Asian International Mobile Computing Conference AMOC2006},
+  year={2006}
+}
+
+@inproceedings{yangnovel,
+  title={A Novel Distributed Algorithm for Complete Targets Coverage in Energy Harvesting Wireless Sensor Networks },
+  author={Yang, Changlin and Chin, Kwan-Wu},
+  booktitle={IEEE ICC 2014- Ad-hoc and Sensor Networking Symposium},
+  pages={361--366},
+  year={2014},
+  organization={IEEE}
+}
+
+@INPROCEEDINGS{5714480,
+author={Xiaofei Xing and Jie Li and Guojun Wang},
+booktitle={Mobile Ad-hoc and Sensor Networks (MSN), 2010 Sixth International Conference on},
+title={Integer Programming Scheme for Target Coverage in Heterogeneous Wireless Sensor Networks},
+year={2010},
+month={Dec},
+pages={79-84},
+keywords={energy conservation;integer programming;wireless sensor networks;ETCA;clustered configurations;clusterheads;energy first algorithm;energy-efficient target coverage algorithm;heterogeneous wireless sensor networks;integer programming;network lifetime;polytype target coverage;sensor node;Algorithm design and analysis;Clustering algorithms;Energy consumption;Logic gates;Sensors;Simulation;Wireless sensor networks;Heterogeneous wireless sensor networks;network lifetime;optimization;target coverage},
+doi={10.1109/MSN.2010.18},}
+
+@article{Yang2014,
+  title={A Maximum Lifetime Coverage Algorithm Based on Linear Programming},
+  author={Mengmeng Yang and Jie Liu},
+  journal={Journal of Information Hiding an dMultimedia Signal Processing, Ubiquitous International},
+  volume={5},
+  number={2},
+  pages={296-301},
+  year={2014}
+}
+
+@article{rossi2012exact,
+  title={An exact approach for maximizing the lifetime of sensor networks with adjustable sensing ranges},
+  author={Rossi, Andr{\'e} and Singh, Alok and Sevaux, Marc},
+  journal={Computers \& Operations Research},
+  volume={39},
+  number={12},
+  pages={3166--3176},
+  year={2012},
+  publisher={Elsevier}
+}
+
+@ARTICLE{glpk,
+author = {Andrew Makhorin},
+title = {The GLPK (GNU Linear Programming Kit)},
+journal = {Available: https://www.gnu.org/software/glpk/},
+year = {2012},
+}
+
+@article{deschinkel2012column,
+  title={A Column Generation based Heuristic to Extend Lifetime in Wireless Sensor Network.},
+  author={Deschinkel, Karine},
+  journal={Sensors \& Transducers Journal},
+  volume={14-2},
+  pages={242--253},
+  year={2012}
+}
\ No newline at end of file
diff --git a/PeCO/ex4pcm.jpg b/PeCO/ex4pcm.jpg
new file mode 100644 (file)
index 0000000..5eca23f
Binary files /dev/null and b/PeCO/ex4pcm.jpg differ
diff --git a/PeCO/ex5pcm.jpg b/PeCO/ex5pcm.jpg
new file mode 100644 (file)
index 0000000..2d07ae1
Binary files /dev/null and b/PeCO/ex5pcm.jpg differ
diff --git a/PeCO/expcm.pdf b/PeCO/expcm.pdf
new file mode 100644 (file)
index 0000000..6b096fb
Binary files /dev/null and b/PeCO/expcm.pdf differ
diff --git a/PeCO/expcm2.jpg b/PeCO/expcm2.jpg
new file mode 100644 (file)
index 0000000..ccf94aa
Binary files /dev/null and b/PeCO/expcm2.jpg differ
diff --git a/PeCO/pcm.jpg b/PeCO/pcm.jpg
new file mode 100644 (file)
index 0000000..131895d
Binary files /dev/null and b/PeCO/pcm.jpg differ
diff --git a/PeCO/twosensors.jpg b/PeCO/twosensors.jpg
new file mode 100644 (file)
index 0000000..aa0ed5d
Binary files /dev/null and b/PeCO/twosensors.jpg differ
diff --git a/algorithm2e.sty b/algorithm2e.sty
new file mode 100644 (file)
index 0000000..10383df
--- /dev/null
@@ -0,0 +1,2636 @@
+%  algorithm2e.sty --- style file for algorithms\r
+%                      almost everything can be customized by users. See the document for more explanations\r
+%% Copyright 1996-2008 Christophe Fiorio\r
+%\r
+% This program may be distributed and/or modified under the\r
+% conditions of the LaTeX Project Public License, either version 1.2\r
+% of this license or (at your option) any later version.\r
+% The latest version of this license is in\r
+%   http://www.latex-project.org/lppl.txt\r
+% and version 1.2 or later is part of all distributions of LaTeX \r
+% version 1999/12/01 or later.\r
+%\r
+% This program consists of the files algorithm2e.sty and algorithm2e.tex and algorithm2e-compatibility.sty\r
+%  \r
+%  Report bugs and comments to:\r
+%  - algorithm2e-announce@lirmm.fr  mailing list for announcement about releases^^J%\r
+%  - algorithm2e-discussion@lirmm.fr mailing list for discussion about package^^J%\r
+%  subscribe by emailing sympa@lirmm.fr with 'subscribe <list> <firstname name>'^^J%\r
+%\r
+%  $Id: algorithm2e.sty,v 4.1 2009/12/15 08:54:08 cfiorio Exp $\r
+%\r
+%  PACKAGES REQUIRED:\r
+%\r
+%  - float   (in contrib/supported/float)\r
+%  - ifthen  (in base)\r
+%  - xspace  (in packages/tools)\r
+%  - relsize (in contrib/misc/relsize.sty)\r
+%\r
+%%%%%%%%%%%%%%%  Release 4.01\r
+%\r
+%   Package options: \r
+%   ---------------\r
+%   - oldcommands                      : to use old command names\r
+%   - french, english, german, \r
+%     portuguese, czech, italiano,\r
+%     slovak                           : for the name of the algorithm and some keyword code\r
+%   - onelanguage                      : to simply switch keyword from one language to another without changing\r
+%                                        keyword commands\r
+%   - boxed, boxruled, ruled, tworuled, \r
+%     algoruled, plain                 : layout of the algorithm\r
+%   - algo2e                           : environment is algorithm2e instead of algorithms and \listofalgorithmes\r
+%                                        instead of \listofalgorithms\r
+%   - slide                            : to use when making slides\r
+%   - noline,lined,vlined              : how block are designed.\r
+%   - shortend, longend, noend         : short or long end keyword as endif for e.g.\r
+%   - linesnumbered                    : auto numbering of the algorithm's lines\r
+%   - linesnumberedhidden              : to hide autonumbered lines (show number on a line with \ShowLn\r
+%   - commentsnumbered, inoutnumbered  : to autonumber comments and inout keywords (by defaut not numbered)\r
+%   - rightnl                          : to have line number on the right instead of on the left as default\r
+%   - algonl                           : line numbers preceded by algo number\r
+%   - scright, scleft                  : right or left justified side comments\r
+%   - fillcomment, nofillcomment       : end mark of comment is flushed to the right so comments fill the line\r
+%   - dotocloa                         : add an entry in the toc for list of algorithms (require tocbibind package)\r
+%   - endfloat                         : add algoendfloat environment pushing algorithm so written to the end of document\r
+%   - resetcount, noresetcount         : start value of line numbers.\r
+%   - algopart,algochapter,algosection : algo numbering within part, chapter or section\r
+%   - titlenumbered,titlenotnumbered   : numbering of title set by \Titleofalgo\r
+%   - figure                           : algorithms are figures, numbered as figures, and put in the list of figures.\r
+%   - procnumbered                     : procedure or function are numbered as algorithm\r
+%   - nokwfunc                         : procedure or function name doens't become a command\r
+%   - norelsize                        : don't use relsize package (useful if it breaks the compatibily)\r
+%  \r
+%   defaults are; english,plain,resetcount,titlenotnumbered\r
+%\r
+%%%%%%%%%%%%%%\r
+%\r
+%   Short summary  \r
+%   -------------\r
+%  \r
+%   algorithm is an environment for writing algorithm in LaTeX2e.\r
+%   Almost all is customizable. You can add keywords, change style, change the layout, ...\r
+%   It provide macros that allow you to create differents sorts of key words, therefore a set of predefined key\r
+%   word is gived.\r
+%\r
+%   IT should be used as follows\r
+%\r
+%   \begin{algorithm}\r
+%       ...\r
+%       ...\r
+%   \end{algorithm}\r
+%\r
+%\r
+%   IMPORTANT : each line MUST end with \;\r
+%\r
+%   Note that if you define macros outside algorithm environment they\r
+%   are avaible in all the document and particulary you can use then\r
+%   inside all algorithms without re-define them.\r
+%  \r
+%   an example:\r
+%\r
+%   \begin{algorithm}\r
+%     \SetAlgoLined\r
+%     \KwIn{this text}\r
+%     \KwOut{how to write algorithm with \LaTeX2e }\r
+%     \r
+%     initialization\;\r
+%     \While{not at end of this document}{\r
+%       read current section\;\r
+%       \eIf{understand}{\r
+%         go to next section\;\r
+%         current section becomes this one\;\r
+%         }{\r
+%         go back to the beginning of current section\;\r
+%         }\r
+%       }\r
+%     \caption{How to write algorithm}\r
+%   \end{algorithm}\r
+%\r
+%\r
+%%%%%%%%%%%%%%         predefined keywords\r
+%\r
+%     \KwIn{input}\r
+%     \KwOut{output}\r
+%     \KwData{input}\r
+%     \KwResult{output}\r
+%     \KwTo                                       % a simple keyword\r
+%     \KwFrom                                     % a simple keyword\r
+%     \KwRet{[value]}\r
+%     \Return{[value]}\r
+%     \Begin{block inside}\r
+%     \eIf{condition}{Then Block}{Else block}     % in blocks\r
+%     \If{condition}{Then block}                  % in a block\r
+%     \uIf{condition}{Then block}                 % in a block unended\r
+%     \lIf{condition}{Else text}                  % on the same line\r
+%     \Else{inside Else}                          % in a block\r
+%     \lElse{Else text}                           % on the same line        \r
+%     \uElse{Else text}                           % in a block unended\r
+%     \ElseIf{inside Elseif}                      % in a block\r
+%     \lElseIf{Elseif text}                       % on the same line        \r
+%     \uElseIf{Elseif text}                       % in a block unended\r
+%     \Switch{Condition}{Switch block}\r
+%     \Case{a case}{case block}                   % in a block\r
+%     \lCase{a case}{case text}                   % on the same line\r
+%     \Other{otherwise block}                     % in a block\r
+%     \lOther{otherwise block}                    % on the same line\r
+%     \For{condition}{text loop}                  % in a block\r
+%     \lFor{condition}{text}                      % on the same line\r
+%     \ForEach{condition}{text loop}              % in a block\r
+%     \lForEach{condition}{text}                  % on the same line\r
+%     \ForPar{condition}{text loop}               % in a block\r
+%     \lForPar{condition}{text}                   % on the same line\r
+%     \While{condition}{text loop}                % in a block\r
+%     \lWhile{condition}{text loop}               % on the same line\r
+%     \Repeat{End condition}{text loop}           % in a block\r
+%     \lRepeat{condition}{text}                   % on the same line\r
+%\r
+%%%%%%%%%%%%%%\r
+%\r
+%   History: \r
+%\r
+%   - december 14 2009 - revision 4.01\r
+%                     * ADD : new command \SetKwHangingKw{Name}{text} (hanging indent with keyword): This creates a\r
+%                             hanging indent much like \texttt{SetKwInput}, except that it removes the trailing `:'\r
+%                             and does not reset numbering.\r
+%\r
+%   - november 17 2009  - revision 4.00 -\r
+%\r
+%                      * CHANGE : IMPORTANT : some commands have been renamed to have consistent naming (CamlCase\r
+%                                 syntax) and old commands are no more available. If you doesn't want to change\r
+%                                 your mind or use old latex files, you can use oldcommands option to enable old\r
+%                                 commands back.\r
+%                                 text. Here are these commands:\r
+%                                 - \SetNoLine becomes \SetAlgoNoLine\r
+%                                 - \SetVline  becomes \SetAlgoVlined\r
+%                                 - \Setvlineskip  becomes \SetVlineSkip\r
+%                                 - \SetLine   becomes \SetAlgoLined\r
+%                                 - \dontprintsemicolon becomes \DontPrintSemicolon\r
+%                                 - \printsemicolon becomes \PrintSemicolon\r
+%                                 - \incmargin becomes \IncMargin\r
+%                                 - \decmargin becomes \DecMargin\r
+%                                 - \setnlskip becomes \SetNlSkip\r
+%                                 - \Setnlskip becomes \SetNlSkip\r
+%                                 - \setalcapskip becomes \SetAlCapSkip\r
+%                                 - \setalcaphskip becomes \SetAlCapHSkip\r
+%                                 - \nlSty becomes \NlSty\r
+%                                 - \Setnlsty becomes \SetNlSty\r
+%                                 - \linesnumbered becomes \LinesNumbered\r
+%                                 - \linesnotnumbered becomes \LinesNotNumbered\r
+%                                 - \linesnumberedhidden becomes \LinesNumberedHidden\r
+%                                 - \showln becomes \ShowLn\r
+%                                 - \showlnlabel becomes \ShowLnLabel\r
+%                                 - \nocaptionofalgo becomes \NoCaptionOfAlgo\r
+%                                 - \restorecaptionofalgo becomes \RestoreCaptionOfAlgo\r
+%                                 - \restylealgo becomes \RestyleAlgo\r
+%                                 - gIf macros and so on do no more exist\r
+%                      * NEW: - Compatibily with other packages improven by changing name of internal\r
+%                               macros. Algorithm2e can now be used with arabtex for example, if this last is\r
+%                               loaded after algorithm2e package.\r
+%                      * ADD: - OPTION endfloat: endfloat packages doesn't allow float environment inside other\r
+%                               environment. So using it with figure option of algorithm2e makes error. This\r
+%                               option enables a new environment algoendfloat to be used instead of algorithm\r
+%                               environment that put algorithm at the end. algoendfloat environment make\r
+%                               algorithm acting as endfloat figures. This option requires endfloat packages.\r
+%                      * ADD: - OPTION norelsize: starting from this release (v4.00), algorithm2e package uses\r
+%                               relsize package in order to get relative size for lines numbers; but it seems\r
+%                               that some rare classes (such as inform1.cls) are not compatible with relsize; to\r
+%                               have algorithm2e working, this option makes algorithm2e not to load relsize\r
+%                               package and go back to previous definition by using \scriptsize font for lines\r
+%                               numbers.\r
+%                      * ADD: - OPTION onelanguage: allow, if using standard keywords listed below, to switch\r
+%                               from one language to another without changing keywords by using appropriate\r
+%                               language option :\r
+%                               . KwIn, KwOut, KwData, KwResult\r
+%                               . KwTo KwFrom\r
+%                               . KwRet, Return\r
+%                               . Begin\r
+%                               . Repeat\r
+%                               . If, ElseIf, Else\r
+%                               . Switch, Case, Other\r
+%                               . For, ForPar, ForEach, ForAll, While\r
+%                               .\r
+%                      * ADD: - OPTION rightnl: put lines numbers to the right of the algorithm instead of left.\r
+%                      * ADD:   new commands \setRightLinesNumbers and \setLeftLinesNumbers which sets the lines\r
+%                               numbers to the right or to the left of the algorithm.\r
+%                      * ADD: - new kind of keywords : KwArray used to define arrays:\r
+%                               \SetKwArray{Kw}{array} defines an array keywords Kw called array and printed in\r
+%                               DataSty style when call with \Kw. It can be used with one argument which\r
+%                               denotes the element index: \Kw{n} prints array[n] with array in DataSty and n in\r
+%                               ArgSty.\r
+%                      * ADD/FIX: rules of ruled, algoruled, tworuled styles used rules of different sizes! This\r
+%                                 is now fixed. Moreover size of the rules is now controlled by a length and so\r
+%                                 can be customized by the user.\r
+%                                 \algoheightrule is the height of the rules and can be changed via \setlength\r
+%                                 \algoheightruledefault is the default height of he rules (0.8pt)\r
+%                                 \algotitleheightrule is the height of the rule that comes just after the\r
+%                                 caption in ruled and algoruled style; it can be changed via \setlength\r
+%                                 \algotitleheightruledefault is the default height of this rules (0.8pt)\r
+%                                 Thanks to Philippe Dumas who reports the bug and make the suggestion.\r
+%                      * ADD: - \SetAlgoCaptionSeparator which sets the separator between Algorithm 1 and the\r
+%                               title. By default it's ':' and caption looks like "Algorithm 2: title" but now\r
+%                               you can change it by using for example \SetAlgoCaptionSeparator{.} which will\r
+%                               give "Algorithm 3. title"\r
+%                      * ADD: - \SetAlgoLongEnd and \SetAlgoShortEnd and \SetAlgoNoEnd commands which act as\r
+%                               corresponding package options\r
+%                      * ADD: - OPTIONS italiano and slovak as new language (thanks to Roberto Posenato and\r
+%                               Miroslav Binas) \r
+%                      * CHANGE: - Fnt and Sty macro to have consistent use and naming (see below)\r
+%                      * ADD: - \AlCapSty, \AlCapNameSty, \AlCapFnt, \AlCapNameFnt, \ProcSty, \ProcFnt,\r
+%                               \ProcNameSty, \ProcNameFnt, \ProcArgSty, ProcArgFnt and corresponding "set macro" \r
+%                               \SetAlCapSty, \SetAlCapNameSty, \SetAlCapFnt, \SetAlCapNameFnt, \SetProcSty,\r
+%                               \SetProcFnt, \SetProcNameSty, \SetProcNameFnt, \SetProcArgSty, \SetProcArgFnt which\r
+%                               control the way caption is printed. Sty macro use command taking one parameter as\r
+%                               argument, Fnt macros use directly command. In Fact caption is printed as follow :\r
+%                               \AlCapSty{\AlCapFnt Algorithm 1:}\AlCapNameSty{\AlCapNameFnt my algorithm}\r
+%                               By default, \AlCapSty is textbf and \AlCapFnt is nothing. \AlCapNameSty keep text \r
+%                               as it is, and \AlCapNameFnt do nothing also.\r
+%                               You can redefine \AlCapFnt and \AlCapNameFnt by giving macro to \Set commands. For\r
+%                               example, you can do \SetAlCapFnt{\large} to see Algorithm printed in \large font.\r
+%                               You can redefine \AlCapSty, \AlCapFnt, \AlCapNameSty and \AlCapNameFnt with the\r
+%                               corresponding \Set command. For the Sty commands, you have to give in parameter\r
+%                               name of a macro (whithout \)  which takes one argument. For example,\r
+%                               \SetAlCapFnt{textbf} defines the default behaviour. If you want to do more\r
+%                               complicated thing, you should define your own macro and give it to \SetAlCapFnt or\r
+%                               \SetAlCapNameFnt. Here are two examples:\r
+%                               - \newcommand{\mycapsty}[1]{\tiny #1}\SetAlCapNameSty{mycapsty}\r
+%                               - \newcommand{\mycapsty}[1]{\textsl{\small #1}}\SetAlCapNameSty{mycapsty}\r
+%                               Or you can combine the two, for the last example you can also do:\r
+%                               \SetAlCapNameSty{textsl}\SetAlCapNameFnt{\small}\r
+%                               Thanks to Jan Stilhammer who gives me the idea of \AlCapNameFnt.\r
+%                      * CHANGE \AlTitleFnt to match definition of all other Fnt macros and add a \AlTitleSty \r
+%                               macro (see below) . Now you set \AlTitleFnt by calling \SetAlTitleFnt with \r
+%                               directly a macro without parameter in argument:\r
+%                               Example: \SetAlTitleFnt{\small} to set title in small font.\r
+%                      * ADD: - \AlTitleSty and \SetAlTitleSty commands to set a style for title. These commands\r
+%                               are defined from a macro taking the text in argument, as \textbf for example. \r
+%                               To set the TitleSty you have to give name of the macro (without the '\') \r
+%                               to \SetAlTitleSty. For example \SetAlTitleSty{textbf} to set \textbf style.\r
+%                      * ADD: - new command \SetAlgorithmName{algorithmname}{list of algorithms name} which\r
+%                               redefines name of the algorithms and the sentence list of algorithms. Second\r
+%                               argument is the name that \autoref, from hyperref package, will use. Example:\r
+%                               \SetAlgorithmName{Protocol}{List of protocols} if you prefer protocol than\r
+%                               algorithm.\r
+%                      * ADD: - new \SetAlgoRefName{QXY} which change the default ref (number of the algorithm) by\r
+%                               the name given in parameter (QXY in the example). \r
+%                      * ADD: - new command \SetAlgoRefRelativeSize{-2} which sets the output size of refs, defined\r
+%                               by \SetAlgoRefName, used in list of algorithms.\r
+%                      * ADD: - two dimensions to control the layout of caption in ruled, algoruled and boxruled\r
+%                               algorithms:\r
+%                               - interspacetitleruled (2pt by defaut) which controls the vertical space between\r
+%                                 rules and title in ruled and algoruled algorithms.\r
+%                               - interspaceboxruled (2\lineskip by default) which controls the vertical space\r
+%                                 between rules and title in boxruled algorithms.\r
+%                               These two dimensions can be changed by using \setlength command.\r
+%                      * ADD: - With the fix (see below) of procedure and function environments, a new feature has\r
+%                               been added: the name of the procedure or function set in caption is automatically\r
+%                               defined as a KwFunction and so can be used as a macro. For example, if inside a\r
+%                               procedure environment you set \caption{myproc()}, you can use \myproc macro in you\r
+%                               main text. Beware that the macro is only defined after the \caption!\r
+%                      * ADD: - OPTION nokwfunc to unable the new feature described above in function and\r
+%                               procedure environment. Useful if you use name of procedure or function that cannot\r
+%                               be a command name as a math display for example.\r
+%                      * ADD: - \SetAlgoNlRelativeSize{number} command which sets the relative size of line\r
+%                               numbers. By default, line numbers are two size smaller than algorithm text. Use\r
+%                               this macro to change this behavior. For example, \SetAlgoNlRelativeSize{0} sets it\r
+%                               to the same size, \SetAlgoNlRelativeSize{-1} to one size smaller and\r
+%                               \SetAlgoNlRelativeSize{1} to one size bigger\r
+%                      * ADD: - \SetAlgoProcName{aname} command which sets the name of Procedure printed by\r
+%                               procedure environment (the environment prints Procedure by default). Second\r
+%                               argument is the name that \autoref, from hyperref package, will use.\r
+%                      * ADD: - \SetAlgoFuncName{aname} command which sets the name of Function printed by\r
+%                               procedure environment (the environment prints Function by default). Second\r
+%                               argument is the name that \autoref, from hyperref package, will use. \r
+%                      * ADD: - \SetAlgoCaptionLayout{style} command which sets style of the caption; style must\r
+%                               be the name of a macro taking one argument (the text of the caption). Examples\r
+%                               below show how to use it:\r
+%                               . \SetAlgoCaptionLayout{centerline} to have centered caption\r
+%                               . \SetAlgoCaptionLayout{textbf} to have bold caption\r
+%                               If you want to apply two styles in the same time, such as centered bold, you have\r
+%                               to define you own macro and then use \SetAlgoCaptionLayout with its name.\r
+%                      * ADD: - OPTION procnumbered: which makes the procedure and function to be numbered as\r
+%                               algorithm\r
+%                      * ADD: - OPTIONS tworuled and boxruled\r
+%                               these are two new layouts: tworuled acts like ruled but doesn't put a line after\r
+%                               caption ; boxruled surround algorithm by a box, puts caption above and add a line\r
+%                               after caption.\r
+%                      * REMOVE: - SetKwInParam has been deleted since not useful itself because of different\r
+%                                macros which can do the same in a better and a more consistent way as\r
+%                                SetKwFunction or SetKw.\r
+%                      * FIX: - line number is now correctly vertically aligned with math display.\r
+%                      * FIX: - references with hyperref. No more same identifier or missing name error. BUT now\r
+%                               you must NOT use naturalnames option of hyperref packages if you do PdfLaTeX\r
+%                      * FIX: - autoref with hyperref package (thanks to Jörg Sommer who notices the problem).\r
+%                      * FIX: - titlenumbered was not working! fixed.\r
+%                      * FIX: - Else(){} acted like uElse. Corrected.\r
+%                      * FIX: - noend management: when a block was inside another and end of block was following\r
+%                               each other, a blank line was added: it's now corrected.\r
+%                      * FIX: - Function and Procedure environment was no more working as defined originally: the\r
+%                               label was no more name of the procedure, it acts always as if procumbered option\r
+%                               has been used.\r
+%                      * FIX: - line numbers had a fixed size which can be bigger than algorithm text accordingly\r
+%                               to \AlFnt set (see also new command \SetAlgoNlRelativeSize above)\r
+%                      * FIX: - semicolon in comments when dontprintsemicolon is used.\r
+%                      * FIX: - listofalgorithms adds a vertical space before first algo of a chapter as for\r
+%                               listoffigures or listoftables\r
+%                      * FIX: - listofalgorithms with twocolumns mode and some classes which don't allow onecolumn\r
+%                               and so don't define \if@restonecol as prescribed in LaTeX (sig-alternate for\r
+%                               example)\r
+%                      * FIX: - algorithm2e now works with elsart cls and some more classes.\r
+%                      * FIX: - blocks defined by SetKwBlock act now as other blocks (if for instance) and don't\r
+%                               write end in vlined mode, instead they print a small horizontal line as required\r
+%                               by the option.\r
+%                      * FIX: - underfull hbox warning at each end of algorithm environment removed.\r
+%\r
+%                      * INTERNAL CHANGE: - short end keyword are deduce from long end keyword by keeping the\r
+%                                           first one. Allows to avoid double definition.\r
+%                      * INTERNAL CHANGE: - procedure, function and algorithm are now resolved by the same\r
+%                               environment to avoid code duplication. \r
+%\r
+%   - October  04 2005  - revision 3.9 -\r
+%                      * ADD: - \setalcaphskip command which sets the horizontal skip before Algorithm: in caption\r
+%                               when used in ruled algorithm.\r
+%                      * ADD: - \SetAlgoInsideSkip command which allows to add an extra vertical space before and\r
+%                               after the core of the algorithm (ie: \SetAlgoInsideSkip{bigskip}) \r
+%                      * CHANGE: - caption, when used with figure option, is no more controlled by algorithm2e\r
+%                                  package and so follows the exact behaviour of figures. The drawback is that you\r
+%                                  cannot change the typo with AlTitleFnt or CapFnt. The avantage is that if you\r
+%                                  use caption package, it works.\r
+%                      * FIX: - problem with numbering line and pdflatex\r
+%                      * FIX: - error when algorithm2e package was used with beamer and listings together\r
+%   - February 12 2005  - revision 3.8 -\r
+%                      * FIX: - extra line with noend option.\r
+%   - February 10 2005  - revision 3.7 -\r
+%                      * ADD: - sidecomment: different macros allowing to put text right after code on the same\r
+%                               line. They are defined in the same time comment macros are defined with a star\r
+%                               after the macro name. By default comments are right justified but this can be\r
+%                               change with appropriate option in the macro. Ex:\r
+%                               . default: \tcc*{side comment}\r
+%                               . same as previous: \tcc*[r]{side comment}\r
+%                               . left justify: \tcc*[l]{side comment}\r
+%                               . here: \tcc*[h]{side comment} don't put the end of line mark before\r
+%                                       comment (; by default) and don't end the line.\r
+%                               . flushed: \tcc*[f]{side comment} same as the precedent but right\r
+%                                 justified\r
+%                      * ADD: - OPTION scright (default): right justified side comments (side comments\r
+%                               are flushed to the righr)\r
+%                      * ADD: - OPTION scleft: left justified side comments (side comments are put right after the\r
+%                               code line)\r
+%                      * ADD: - \SetSideCommentLeft acts as scleft option\r
+%                      * ADD: - \SetSideCommentRight acts as scright option\r
+%                      * ADD: - block like macro side text: all macro defining a block allows now to put text right\r
+%                               after key words by putting text into (). Done to be used with sidecomment macros,\r
+%                               but all text can be used. \r
+%                               Ex: \eIf(\tcc*[f]{then comment}){test}{then text}(else side text){else text}\r
+%                      * ADD: - OPTION fillcomment (default): end mark of comment is flushed to the right so\r
+%                               comments fill all the width of text.\r
+%                      * ADD: - OPTION nofillcomment: end mark of comment is put right after the comment.\r
+%                      * ADD: - \SetNoFillComment acts as nofillcomment option.\r
+%                      * ADD: - \SetFillComment acts as fillcomment option.\r
+%                      * ADD: - OPTION dotocloa: which adds an entry in the toc for the list of algorithms. This\r
+%                               option load package tocbibind if not already done and so list of figures and list\r
+%                               of tables are also added in the toc. If you want to control which ones of the lists\r
+%                               will be added in the toc, please load package tocbibind before package algorithm\r
+%                               and give it the options you want.\r
+%                      * FIX: - vertical spacing for uif macro with noend option\r
+%                      * FIX: - all the compatibility problems between caption and other packages\r
+%                      * FIX: - typographical differences between list of algorithms and other lists  when in\r
+%                               report or book \r
+%\r
+%   - January 24 2005  - revision 3.6 -\r
+%                      * FIX: - vertical spacing and space characters at the beginning or end of comments.\r
+%                               line numbers of comments not in the NlSty.\r
+%                               Thanks to Arnaud Giersch for his comments and suggestions.\r
+%                      * FIX: - Set*Sty macro: the styles defined was not protected and was modified by surrounding\r
+%                               context. For example KwTo in a \For{}{} was in bold AND italic instead of just in\r
+%                               bold.\r
+%                      * FIX: - line number misplacement after \Indp\r
+%\r
+%   - January 21 2005  - revision 3.5 -\r
+%                      * ADD: - hidden numbering of the lines. Lines are auto-numbered but numbers are shown only\r
+%                               on lines you specify:\r
+%                               * linesnumberedhidden option or \LinesNumberedHidden macro activate this\r
+%                                 functionnality.\r
+%                               * \ShowLn and \ShowLnLabel{lab} macros make the number visible on the\r
+%                               line. \ShowLnLabel{lab} allows to set a label for this line. \r
+%                               Thanks to Samson de Jager who makes this suggestion and provides the macros.\r
+%                      * ADD: - \AlCapFnt and \SetAlCapFnt which allow to have a different font for\r
+%                               caption. Works like \AlFnt and \SetAlFnt and by default is the same.\r
+%                      * ADD: - \AlCapSkip skip length. This vertical space is added before caption in plain ou\r
+%                               boxed mode. It allows to change distance between text and caption.\r
+%                      * FIX: - caption compatible with IEEEtran class. \r
+%                      * FIX: - some vertical spacing error with \uIf macros (Thanks to Arnaud Giersch)\r
+%                      * FIX: - Procedure and Function: lines are also numbered like algorithms\r
+%                      * FIX: - CommentSty was not used for Comments\r
+%\r
+%   - January 10 2005  - revision 3.4 -\r
+%                      * FIX: - caption compatible with new release of Beamer class. \r
+%\r
+%   - June 16 2004     - revision 3.3 - \r
+%                      * FIX: - Hyperlink references of Hyperref package works now if compiled with pdflatex \r
+%                               and [naturalnames] option of hyperref package is used.\r
+%                      * FIX: - algorithm[H] had problem in an list environment - corrected\r
+%                      * FIX: - interline was not so regular in nested blocks - corrected\r
+%                      * ADD  - \SetVlineSkip macro which sets the vertical skip after the little horizontal \r
+%                               rule which closes a block in Vlined mode. By default 0.8ex\r
+%\r
+%   - June 11 2004     - revision 3.2 - AUTO NUMBERING LINES !!!\r
+%                      * ADD: auto numbering of the lines (the so asked and so long awaiting feature)\r
+%                             this feature is managed by 3 options and 3 commands:\r
+%                             - linesnumbered option: lines of the algo are numbered except for comments and\r
+%                               input/output (KwInput and KwInOut)\r
+%                             - commentsnumbered option: makes comments be numbered\r
+%                             - inoutnumbered option: makes data input/output be numbered\r
+%                             - \nllabel{lab} labels the line so you can cite with \ref{lab}\r
+%                             - \LinesNumbered make the following algorithms having auto-numbered lines\r
+%                             - \linesnotnumbered make the following algorithms having no auto-numbered lines\r
+%                      * Change: algo2e option renames listofalgorithms in listofalgorithmes\r
+%                      * FIX: new solution for compatibility with color package, more robust and not tricky.\r
+%                             Many thanks to David Carlisle for his advices\r
+%\r
+%   - June 09 2004     - revision 3.1 -\r
+%                      * Change: \SetKwSwitch command defines an additionnal macro \uCase and \Case prints end\r
+%                      * Change: now macros SetKw* do a renewcommand if the keyword is already defined. So you can\r
+%                                redefine default definition at your own convenience or change your definition\r
+%                                without introducing a new macro and changing your text.\r
+%                      * ADD: new macro \SetKwIF which do \SetKwIf and\r
+%                             \SetKwIfElseIf.The following default definition has been added:\r
+%                             \SetKwIF{If}{ElseIf}{Else}{if}{then}{else if}{else}{endif}\r
+%                             and so you get the macros;\r
+%                             \If \eIf \lIf \uIf \ElseIf \uElseIf \lElseIf \Else \uElse \lElse\r
+%                      * ADD: new macro \SetAlgoSkip which allow to fix the vertical skip before and after the\r
+%                             algorithms. Default is smallskip, do \SetAlgoSkip{} if you don't want an extra space\r
+%                             or \SetAlgoSkip{medskip} or \SetAlgoSkip{bigskip} if you want bigger space.\r
+%                      * ADD: macro \SetKwIf defines in addition a new macro \uElse  (depending on wat name you\r
+%                             have given in #2 arg).\r
+%                      * ADD: macro \SetKwIfElseIf defines in addition a new macro \uElse and \ugElseIf (depending\r
+%                             on what name you have given in #2 and #3 arg).\r
+%                      * Change: baseline of algorithm is now top, so two algorithms can be put side by side.\r
+%                      * FIX: Compatibility with color package solved. The problem was due to a redefinition of\r
+%                             standard macros by color package. This solves compatibility problem with other\r
+%                             packages as pstcol or colortbl. (notified by Dirk Fressmann, Antti Tarvainen and Koby\r
+%                             Crammer)\r
+%                      * Fix: extra little shift to the right with boxed style algorithm removed (notified by\r
+%                             P. Tanovski)\r
+%                      * Fix: algoln option was buggy (notified bye Jiaying Shen)\r
+%                      * Fix: german and portuges option didn't work due to bad typo (notified by Martin Sievers,\r
+%                             Thorsten Vitt and Jeronimo Pellegrini)\r
+%                      \r
+%   - February 13 2004 - revision 3.0 -\r
+%                      * Major revision which makes the package independent from float.sty, so now\r
+%                        - algorithm* works better, in particular can be used in multicols environments\r
+%                        - (known bug corrected)\r
+%                          [H] works now for all sort of environment but is handled differently for classic\r
+%                          environment and star environment (algorithm, figure, procedure and function). For star\r
+%                          environment, H acts like for classical figure environment, so it doesn't stay here\r
+%                          absolutely.\r
+%                        - (known bug corrected)\r
+%                          you can use now floatflt package with algorithm package and even with figure\r
+%                          option. Beware that if you want to put an algorithm inside a floatingfigure, it cannot\r
+%                          be floating, so [H] is required and then figure option should not be used, since\r
+%                          standard figure[H] are still floating with LaTeX.\r
+%                      * boxruled: a new style added. Possible now since no style no more defined by the float\r
+%                        package.\r
+%                      * nocaptionofalgo: dosen't print Algorithm #: in the caption for algorithm in ruled or\r
+%                        algoruled style.\r
+%                        note: this is just documentation of a macro which was already in the package.\r
+%   - December 14 2003 - revision 2.52 -\r
+%                      * output message shorter\r
+%                      * french keyword macro \PourTous was missing for longend option, it has been added.\r
+%                      * TitleofAlgo prints Function or Procedure in corresponding environments.\r
+%\r
+%   - October 27 2003  - revision 2.51 - Revision submitted to CTAN archive\r
+%                      * correction of a minor which make caption in procedure\r
+%                        and function to be blanck with pdfscreen package\r
+%                        (thanks to Joel Gossens for the notification)\r
+%                      * add two internal definition to avoid some errors when\r
+%                        used with Hyperref package (Hyperref package need to\r
+%                        define new counter macro from existing ones, and\r
+%                        don't do it for algorithm2e package, so we do it)\r
+%\r
+%   - October 17 2003  - revision 2.50 - first revision for CTAN archive\r
+%                      * add \AlFnt and \SetAlFnt{font} macros: \AlFnt is used at the beginning of the caption and\r
+%                        the body of algorithm in order to define the fonts used for typesetting algorithms. You\r
+%                        can use it elsewhere you want to typeset text as algorithm. For example you can do\r
+%                        \SetAlFnt{\small\sf} to have algorithms typeset in small sf font. Default is nothing so\r
+%                        algorithm is typeset as the text of the document.\r
+%                      * add \AlTitleFnt{text} and \SetAlTitleFnt{font} macros: The {Algorithm: } in the caption is\r
+%                        typeset with \AlTitleFnt{Algorithm:}. You can use it to have text typeset as {Algorithm:}\r
+%                        of captions. Default is textbf.  Default can be redefined by \SetAlTitleFnt{font}, for\r
+%                        example you can do \SetAlTitleFnt{emph}\r
+%                      * add CommentSty typo for text comment.  \r
+%                      * add some compatibility with hyperref package (still an error on multiply defined refs but\r
+%                        pdf correctly generated)\r
+%                      * flush text to left in order to have correct indentation even with class as amsart which\r
+%                        center all figures\r
+%                      * add german, portugues and czech options for title of algorithms and typo.\r
+%                      * add portuguese translation of predefined keywords * add czech translation of some\r
+%                        predefined keywords\r
+%\r
+%   - December 23 2002 - revision 2.40\r
+%                      * add some french keyword missing\r
+%                      * add function* and procedure* environment like algorithme* environment: print in one column\r
+%                        even if twocolumn option is specified for the document.\r
+%                      * add a new macro \SetKwComment to define macro which writes comments in the text. First\r
+%                        argument is the name of the macro, second is the text put before the comment, third is the\r
+%                        text put at the end of the comment.Default are \tcc and \tcp\r
+%                      * add new options to change the way algo are numbered:\r
+%                        [algopart] algo are numbered within part (counter must exist)\r
+%                        [algochapter] algo are numbered within chapter\r
+%                        [algosection] algo are numbered within section\r
+%\r
+%   - March 27 2002   - revision 2.39\r
+%                      * Gilles Geeraerts: added the \SetKwIfElseIf to manage\r
+%                        if (c)\r
+%                             i;\r
+%                        else if (c)\r
+%                             i;\r
+%                        ...\r
+%                        else\r
+%                             i;\r
+%                        end\r
+%                      * Also added \gIf \gElseIf \gElse.\r
+%\r
+%   - January 02 2001 - revision 2.38\r
+%                      * bugs related to the caption in procedure and function\r
+%                        environment are corrected.\r
+%                      * bug related to option noend (extra vertical space added\r
+%                        after block command as If or For) is corrected.\r
+%                      * czech option language added (thanks to Libor Bus: l.bus@sh.cvut.cz).\r
+%  \r
+%   - October 16 2000 - revision 2.37\r
+%                      * option algo2e added: change the name of environment\r
+%                        algorithm into algorithm2e. So allow to use the package\r
+%                        with some journal style which already define an algorithm\r
+%                        environment.\r
+%  \r
+%   - September 13 2000 - revision 2.36\r
+%                      * option slide added: require package color\r
+%                      * Hack for slide class in order to have correct\r
+%                        margins\r
+%  \r
+%   - November 25 1999 - revision 2.35\r
+%                      * revision number match RCS number\r
+%                      * Thanks to David A. Bader, a new option is added:\r
+%                        noend: no end keywords are printed.\r
+%  \r
+%   - November 19 1999 - revision 2.32\r
+%                      * minor bug on longend option corrected.\r
+%  \r
+%   - August 26 1999 - revision 2.31\r
+%                      * add an option : figure\r
+%                        this option makes algorithms be figure and so are numbered\r
+%                        as figures, have Figure as caption and are put in \r
+%                        the \listoffigures\r
+%  \r
+%   - January 21 1999 - revision 2.3 beta\r
+%                    add 2 new environments: procedure and function.\r
+%                    These environments works like algorithm environment but:\r
+%                    - the ruled (or algoruled) style is imperative.\r
+%                    - the caption now writes Procedure name....\r
+%                    - the syntax of the \caption command is restricted as\r
+%                      follow: you MUST put a name followed by 2 braces like\r
+%                      this ``()''. You can put arguments inside the braces and\r
+%                      text after. If no argument is given, the braces will be\r
+%                      removed in the title. \r
+%                    - label now puts the name (the text before the braces in the\r
+%                      caption) of the procedure or function as reference (not\r
+%                      the number like a classic algorithm environment).\r
+%                    There are also two new styles : ProcNameSty and\r
+%                    ProcArgSty. These style are by default the same as FuncSty\r
+%                    and ArgSty but are used in the caption of a procedure or a\r
+%                    function.\r
+%                    \r
+%   - November 28 1996 - revision 2.22\r
+%                    add a new macro \SetKwInParam{arg1}{arg2}{arg3}:\r
+%                    it defines a macro \arg1{name}{arg} which prints name in keyword\r
+%                    style followed byt arg surrounded by arg2 and arg3. The main\r
+%                    application is to a function working as \SetKwInput to be used\r
+%                    in the head of the algorithm. For example\r
+%                    \SetKwInParam{Func}{(}{)} allows\r
+%                    \Func{functionname}{list of arguments} which prints:\r
+%                    \KwSty{functioname(}list of arguments\KwSty{)}\r
+%       \r
+%\r
+%   - November 27 1996 - revision 2.21 :\r
+%                    minor bug in length of InOut boxes fixed.\r
+%                    add algorithm* environment.\r
+%\r
+%   - July 12 1996 - revision 2.2 : \SetArg and \SetKwArg macros removed.\r
+%                        \r
+%                    \SetArg has been removed since it never has been\r
+%                    documented.\r
+%                    \SetKwArg has been removed since \SetKw can now\r
+%                    take an argument in order to be consistent with\r
+%                    \SetKwData and \SetKwFunction macros.\r
+%\r
+%   - July 04 1996 - revision 2.1 : still more LaTeX2e! Minor compatibility break\r
+%\r
+%                    Macros use now \newcommand instead of \def, use of \setlength, \r
+%                    \newsavebox, ... and other LaTeX2e specific stuff.\r
+%                    The compatibility break:\r
+%                    - \SetData becomes \SetKwData to be more consistent. So the old \r
+%                      \SetKwData becomes \SetKwInput\r
+%                    - old macros \titleofalgo, \Freetitleofalgo and \freetitleofalgo\r
+%                      from LaTeX209 version which did print a warning message and call \r
+%                      \Titleofalgo in version 2.0 are now removed!\r
+%\r
+%   - March 13 1996 - revision 2.0: first official major revision.\r
+%   \r
+%\r
+%%%%%%%%%%%%%%\r
+%\r
+%   Known bugs: \r
+%   -----------\r
+%   - no more known bugs... all are corrected!\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+% for more complete informations you can see algorithm2e.tex\r
+%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%% Identification Part %%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]\r
+%\r
+\ProvidesPackage{algorithm2e}[2008/00/00 v3.10 algorithms environments]\r
+%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%% Initial Code %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+\@makeother\*% some package redefined it as a letter (as color.sty)\r
+\def\@firstword#1 #2\@nil{#1}% an useful fonction\r
+%\r
+% definition of commands which can be redefined in options of the package.\r
+%\r
+\newcounter{AlgoLine}%\r
+\setcounter{AlgoLine}{0}%\r
+%\r
+\newcommand{\algocf@algocfref}{\relax}%\r
+\newcommand{\listalgorithmcfname}{}%\r
+\newcommand{\algorithmcfname}{}%\r
+\@ifundefined{algorithmautorefname}{\newcommand{\algorithmautorefname}{algorithm}}{\renewcommand{\algorithmautorefname}{algorithm}}%\r
+\newcommand{\algorithmcflinename}{}%\r
+\newcommand{\algocf@typo}{}%\r
+\newcommand{\@algocf@procname}{}\newcommand{\procedureautorefname}{}%\r
+\newcommand{\SetAlgoProcName}[2]{\renewcommand{\@algocf@procname}{#1}\renewcommand{\procedureautorefname}{#2}}%\r
+\newcommand{\@algocf@funcname}{}\newcommand{\functionautorefname}{}%\r
+\newcommand{\SetAlgoFuncName}[2]{\renewcommand{\@algocf@funcname}{#1}\renewcommand{\functionautorefname}{#2}}%\r
+\newcommand{\@algocf@titleofalgoname}{\algorithmcfname}%\r
+\newcommand{\@algocf@algotitleofalgo}{%\r
+  \renewcommand{\@algocf@titleofalgoname}{\algorithmcfname}}%\r
+\newcommand{\@algocf@proctitleofalgo}{%\r
+  \renewcommand{\@algocf@titleofalgoname}{\algocf@procname}}%\r
+%\r
+\newcommand{\algocf@style}{plain}%\r
+\newcommand{\@ResetCounterIfNeeded}{}%\r
+\newcommand{\@titleprefix}{}%\r
+%\r
+\newcommand{\algocf@numbering}[1]{\newcommand{\algocf@within}{#1}}%\r
+%\r
+\newcommand{\defaultsmacros@algo}{\algocf@defaults@shortend}%\r
+%\r
+\newcommand{\algocf@list}{loa}%\r
+\newcommand{\algocf@float}{algocf}%\r
+%\r
+\newcommand{\algocf@envname}{algorithm}%\r
+\newcommand{\algocf@listofalgorithms}{listofalgorithms}%\r
+%\r
+%\r
+%% redefine chapter so that it adds a vspace in the loa as the original does for lof and lot\r
+\let\algocf@original@chapter=\chapter%\r
+\def\chapter{\expandafter\addtocontents{loa}{\protect\addvspace{10\p@}}\algocf@original@chapter}%\r
+%\r
+%% if@restonecol is defined in article and book but some other classes don't define it and we need it, so we do\r
+\ifx\if@restonecol\relax\else\newif\if@restonecol\fi%\r
+%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%% Declaration of Options %%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+\RequirePackage{ifthen}%\r
+%\r
+\newboolean{algocf@nokwfunc}\setboolean{algocf@nokwfunc}{false}%\r
+\DeclareOption{nokwfunc}{%\r
+  \setboolean{algocf@nokwfunc}{true}%\r
+}%\r
+%\r
+\newboolean{algocf@oldcommands}\setboolean{algocf@oldcommands}{false}%\r
+\DeclareOption{oldcommands}{%\r
+  \setboolean{algocf@oldcommands}{true}%\r
+}%\r
+%\r
+\newboolean{algocf@leftlinenumber}\setboolean{algocf@leftlinenumber}{true}%\r
+\newcommand{\setLeftLinesNumbers}{\setboolean{algocf@leftlinenumber}{true}}%\r
+\newcommand{\setRightLinesNumbers}{\setboolean{algocf@leftlinenumber}{false}}%\r
+\DeclareOption{rightnl}{%\r
+  \setRightLinesNumbers%\r
+}%\r
+%\r
+\newboolean{algocf@endfloat}\setboolean{algocf@endfloat}{false}%\r
+\DeclareOption{endfloat}{%\r
+  \setboolean{algocf@endfloat}{true}%\r
+  \newcounter{postalgo}\setcounter{postalgo}{0}%\r
+}%\r
+%\r
+\newboolean{algocf@procnumbered}\setboolean{algocf@procnumbered}{false}%\r
+\DeclareOption{procnumbered}{%\r
+  \setboolean{algocf@procnumbered}{true}%\r
+}%\r
+%\r
+\DeclareOption{algo2e}{%\r
+  \renewcommand{\algocf@envname}{algorithm2e}%\r
+  \renewcommand{\algocf@listofalgorithms}{listofalgorithmes}%\r
+}%\r
+%\r
+\newboolean{algocf@slide}\setboolean{algocf@slide}{false}%\r
+\DeclareOption{slide}{%\r
+  \setboolean{algocf@slide}{true}%\r
+}%\r
+%\r
+\DeclareOption{figure}{%\r
+\renewcommand{\algocf@list}{lof}%\r
+\renewcommand{\algocf@float}{figure}%\r
+}%\r
+%\r
+\newboolean{algocf@optonelanguage}\setboolean{algocf@optonelanguage}{false}%\r
+\DeclareOption{onelanguage}{\setboolean{algocf@optonelanguage}{true}}%\r
+%\r
+\newcommand{\algocf@languagechoosen}{english}%\r
+%\r
+\DeclareOption{english}{%\r
+\renewcommand{\listalgorithmcfname}{List of Algorithms}%\r
+\renewcommand{\algorithmcfname}{Algorithm}%\r
+\renewcommand{\algorithmautorefname}{algorithm}%\r
+\renewcommand{\algorithmcflinename}{line}%\r
+\renewcommand{\algocf@typo}{}%\r
+\renewcommand{\@algocf@procname}{Procedure}%\r
+\renewcommand{\@algocf@funcname}{Function}%\r
+\renewcommand{\procedureautorefname}{procedure}%\r
+\renewcommand{\functionautorefname}{function}%\r
+\renewcommand{\algocf@languagechoosen}{english}%\r
+}%\r
+%\r
+\DeclareOption{french}{%\r
+\renewcommand{\listalgorithmcfname}{Liste des Algorithmes}%\r
+\renewcommand{\algorithmcfname}{Algorithme}%\r
+\renewcommand{\algorithmautorefname}{algorithme}%\r
+\renewcommand{\algorithmcflinename}{ligne}%\r
+\renewcommand{\algocf@typo}{\ }%\r
+\renewcommand{\@algocf@procname}{Procédure}%\r
+\renewcommand{\@algocf@funcname}{Fonction}%\r
+\renewcommand{\procedureautorefname}{procédure}%\r
+\renewcommand{\functionautorefname}{fonction}%\r
+\renewcommand{\algocf@languagechoosen}{french}%\r
+}%\r
+%\r
+\DeclareOption{czech}{%\r
+\renewcommand{\listalgorithmcfname}{Seznam algoritm\v{u}}%\r
+\renewcommand{\algorithmcfname}{Algoritmus}%\r
+\renewcommand{\algorithmautorefname}{\algorithmcfname}%\r
+\renewcommand{\algorithmcflinename}{Radek}%\r
+\renewcommand{\algocf@typo}{}%\r
+\renewcommand{\@algocf@procname}{Procedura}%\r
+\renewcommand{\@algocf@funcname}{Funkce}%\r
+\renewcommand{\procedureautorefname}{\@algocf@procname}%\r
+\renewcommand{\functionautorefname}{\@algocf@funcname}%\r
+\renewcommand{\algocf@languagechoosen}{czech}%\r
+}%\r
+%\r
+\DeclareOption{german}{%\r
+\renewcommand{\listalgorithmcfname}{Liste der Algorithmen}%\r
+\renewcommand{\algorithmcfname}{Algorithmus}%\r
+\renewcommand{\algorithmautorefname}{\algorithmcfname}%\r
+\renewcommand{\algorithmcflinename}{Zeile}%\r
+\renewcommand{\algocf@typo}{\ }%\r
+\renewcommand{\@algocf@procname}{Prozedur}%\r
+\renewcommand{\@algocf@funcname}{Funktion}%\r
+\renewcommand{\procedureautorefname}{\@algocf@procname}%\r
+\renewcommand{\functionautorefname}{\@algocf@funcname}%\r
+\renewcommand{\algocf@languagechoosen}{german}%\r
+}%\r
+%\r
+\DeclareOption{portuguese}{%\r
+\renewcommand{\listalgorithmcfname}{Lista de Algoritmos}%\r
+\renewcommand{\algorithmcfname}{Algoritmo}%\r
+\renewcommand{\algorithmautorefname}{algoritmo}%\r
+\renewcommand{\algorithmcflinename}{linha}%\r
+\renewcommand{\algocf@typo}{}%\r
+\renewcommand{\@algocf@procname}{Procedimento}%\r
+\renewcommand{\@algocf@funcname}{Fun\c{c}\~{a}o}%\r
+\renewcommand{\procedureautorefname}{procedimento}%\r
+\renewcommand{\functionautorefname}{fun\c{c}\~{a}o}%\r
+\renewcommand{\algocf@languagechoosen}{portuguese}%\r
+}%\r
+%\r
+\DeclareOption{italiano}{%\r
+\renewcommand{\listalgorithmcfname}{Elenco degli algoritmi}%\r
+\renewcommand{\algorithmcfname}{Algoritmo}%\r
+\renewcommand{\algorithmautorefname}{algoritmo}%\r
+\renewcommand{\algorithmcflinename}{riga}%\r
+\renewcommand{\algocf@typo}{}%\r
+\renewcommand{\@algocf@procname}{Procedura}%\r
+\renewcommand{\@algocf@funcname}{Funzione}%\r
+\renewcommand{\procedureautorefname}{procedura}%\r
+\renewcommand{\functionautorefname}{funzione}%\r
+\renewcommand{\algocf@languagechoosen}{italiano}%\r
+}%\r
+\DeclareOption{slovak}{%\r
+\renewcommand{\listalgorithmcfname}{Zoznam algoritmov}%\r
+\renewcommand{\algorithmcfname}{Algoritmus}%\r
+\renewcommand{\algorithmautorefname}{\algorithmcfname}%\r
+\renewcommand{\algorithmcflinename}{Radek}%\r
+\renewcommand{\algocf@typo}{}%\r
+\renewcommand{\@algocf@procname}{Proced\'{u}ra}%\r
+\renewcommand{\@algocf@funcname}{Funkcia}%\r
+\renewcommand{\procedureautorefname}{\@algocf@procname}%\r
+\renewcommand{\functionautorefname}{\@algocf@funcname}%\r
+\renewcommand{\algocf@languagechoosen}{slovak}%\r
+}%\r
+%\r
+% OPTIONs plain, boxed, ruled, algoruled & boxruled\r
+%\r
+\newcommand{\algocf@style@plain}{\renewcommand{\algocf@style}{plain}}%\r
+\newcommand{\algocf@style@boxed}{\renewcommand{\algocf@style}{boxed}}%\r
+\newcommand{\algocf@style@ruled}{\renewcommand{\algocf@style}{ruled}}%\r
+\newcommand{\algocf@style@algoruled}{\renewcommand{\algocf@style}{algoruled}}%\r
+\newcommand{\algocf@style@boxruled}{\renewcommand{\algocf@style}{boxruled}}%\r
+\newcommand{\algocf@style@tworuled}{\renewcommand{\algocf@style}{tworuled}}%\r
+\newcommand{\RestyleAlgo}[1]{\csname algocf@style@#1\endcsname}%\r
+\DeclareOption{plain}{\algocf@style@plain}%\r
+\DeclareOption{boxed}{\algocf@style@boxed}%\r
+\DeclareOption{ruled}{\algocf@style@ruled}%\r
+\DeclareOption{algoruled}{\algocf@style@algoruled}%\r
+\DeclareOption{boxruled}{\algocf@style@boxruled}%\r
+\DeclareOption{tworuled}{\algocf@style@tworuled}%\r
+%\r
+% OPTIONs algopart,algochapter & algosection\r
+%\r
+\DeclareOption{algopart}{\algocf@numbering{part}}%       %algo part numbered\r
+\DeclareOption{algochapter}{\algocf@numbering{chapter}}% %algo chapter numbered\r
+\DeclareOption{algosection}{\algocf@numbering{section}}% %algo section numbered\r
+%\r
+% OPTIONs resetcount & noresetcount\r
+%\r
+\DeclareOption{resetcount}{\renewcommand{\@ResetCounterIfNeeded}{\setcounter{AlgoLine}{0}}}%\r
+\DeclareOption{noresetcount}{\renewcommand{\@ResetCounterIfNeeded}{}}%\r
+%\r
+% OPTION linesnumbered\r
+%\r
+\newboolean{algocf@linesnumbered}\setboolean{algocf@linesnumbered}{false}%\r
+\newcommand{\algocf@linesnumbered}{\relax}%\r
+\DeclareOption{linesnumbered}{%\r
+  \setboolean{algocf@linesnumbered}{true}%\r
+  \renewcommand{\algocf@linesnumbered}{\everypar={\nl}}%\r
+}%\r
+%\r
+% OPTION linesnumberedhidden\r
+%\r
+\DeclareOption{linesnumberedhidden}{%\r
+  \setboolean{algocf@linesnumbered}{true}%\r
+  \renewcommand{\algocf@linesnumbered}{\everypar{\stepcounter{AlgoLine}}}%\r
+}%\r
+%\r
+% OPTION commentsnumbered inoutnumbered\r
+%\r
+\newboolean{algocf@commentsnumbered}\setboolean{algocf@commentsnumbered}{false}%\r
+\DeclareOption{commentsnumbered}{\setboolean{algocf@commentsnumbered}{true}}%\r
+\newboolean{algocf@inoutnumbered}\setboolean{algocf@inoutnumbered}{false}%\r
+\DeclareOption{inoutnumbered}{\setboolean{algocf@inoutnumbered}{true}}%\r
+%\r
+% OPTIONs titlenumbered & titlenotnumbered\r
+%\r
+\DeclareOption{titlenumbered}{%\r
+  \renewcommand{\@titleprefix}{%\r
+    \refstepcounter{\algocf@float}%\r
+    \AlTitleSty{\AlTitleFnt\@algocf@titleofalgoname\ \expandafter\csname the\algocf@float\endcsname\algocf@typo: }%\r
+  }%\r
+}%\r
+%\r
+\DeclareOption{titlenotnumbered}{\renewcommand{\@titleprefix}{%\r
+    \AlTitleSty{\AlTitleFnt\@algocf@titleofalgoname\algocf@typo: }}%\r
+}%\r
+%\r
+% OPTIONs algonl\r
+% line numbered with the counter of the algorithm\r
+%\r
+\DeclareOption{algonl}{\renewcommand{\theAlgoLine}{\expandafter\csname the\algocf@float\endcsname.\arabic{AlgoLine}}}%\r
+%\r
+% OPTIONs lined, vlined & noline\r
+%\r
+\DeclareOption{lined}{\AtBeginDocument{\SetAlgoLined}}%   \SetAlgoLined\r
+\DeclareOption{vlined}{\AtBeginDocument{\SetAlgoVlined}}% \SetAlgoVlined\r
+\DeclareOption{noline}{\AtBeginDocument{\SetAlgoNoLine}}%\SetAlgoNoLine (default)\r
+%\r
+% OPTIONs longend, shotend & noend\r
+%\r
+\DeclareOption{longend}{\AtBeginDocument{\SetAlgoLongEnd}}%  \SetAlgoLongEnd\r
+\DeclareOption{shortend}{\AtBeginDocument{\SetAlgoShortEnd}}%\SetAlgoShortEnd\r
+\DeclareOption{noend}{\AtBeginDocument{\SetAlgoNoEnd}}%      \SetAlgoNoEnd\r
+%\r
+% OPTION dotoc\r
+%\r
+\newboolean{algocf@dotocloa}\setboolean{algocf@dotocloa}{false}%\r
+\DeclareOption{dotocloa}{%\r
+  \setboolean{algocf@dotocloa}{true}%\r
+}\r
+%\r
+% OPTION comments\r
+%\r
+\newboolean{algocf@optfillcomment}\setboolean{algocf@optfillcomment}{true}%\r
+\DeclareOption{nofillcomment}{%\r
+  \setboolean{algocf@optfillcomment}{false}%\r
+}%\r
+\DeclareOption{fillcomment}{%\r
+  \setboolean{algocf@optfillcomment}{true}%\r
+}%\r
+%\r
+% OPTION sidecommments\r
+%\r
+\newboolean{algocf@scleft}\setboolean{algocf@scleft}{false}%\r
+\DeclareOption{scleft}{%\r
+  \setboolean{algocf@scleft}{true}%\r
+}%\r
+\DeclareOption{sright}{% default\r
+  \setboolean{algocf@scleft}{false}%\r
+}%\r
+%\r
+% OPTION norelsize\r
+%\r
+\newboolean{algocf@norelsize}\setboolean{algocf@norelsize}{false}%\r
+\DeclareOption{norelsize}{%\r
+  \setboolean{algocf@norelsize}{true}%\r
+}%\r
+%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%% Execution of Options %%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+\ExecuteOptions{english,plain,resetcount,titlenotnumbered,lined,shortend}%\r
+%\r
+\ProcessOptions%\r
+%\r
+\@algocf@algotitleofalgo% fix name for \TitleOfAlgo to \algorithmcfname by default\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%% Package Loading %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+%\r
+\RequirePackage{xspace}%\r
+%\r
+\ifthenelse{\boolean{algocf@endfloat}}{%\r
+  \RequirePackage{endfloat}%\r
+}{\relax}%\r
+%\r
+\ifthenelse{\boolean{algocf@norelsize}}{%\r
+  \newcommand{\relsize}[1]{\scriptsize}%\r
+}{%\r
+  \RequirePackage{relsize}%\r
+}%\r
+%\r
+\ifthenelse{\boolean{algocf@slide}}{\RequirePackage{color}}{}%\r
+%\r
+\r
+\AtEndOfPackage{%\r
+  \ifthenelse{\boolean{algocf@dotocloa}}{%\r
+    \renewcommand{\listofalgorithmes}{\tocfile{\listalgorithmcfname}{loa}}%\r
+  }{\relax}%\r
+}%\r
+%\r
+% if loa in toc required, load tocbibind package if not already done.\r
+\ifthenelse{\boolean{algocf@dotocloa}}{%\r
+  \ifx\@tocextra\undefined%\r
+  \RequirePackage{tocbibind}%\r
+  \fi%\r
+}%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Main Part %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+\newcommand{\algocf@name}{algorithm2e}%\r
+\newcommand{\algocf@date}{december 14 2009}%\r
+\newcommand{\algocf@version}{Release 4.01}%\r
+\newcommand{\algocf@id}{\algocf@version\space -- \algocf@date\space --}%\r
+\typeout{********************************************************^^JPackage `\algocf@name'\space\algocf@id^^J%\r
+         - algorithm2e-announce@lirmm.fr  mailing list for announcement about releases^^J%\r
+         - algorithm2e-discussion@lirmm.fr mailing list for discussion about package^^J%\r
+         subscribe by emailing sympa@lirmm.fr with 'subscribe <list> <firstname name>'^^J%\r
+         - Author: Christophe Fiorio (fiorio@lirmm.fr)^^J********************************************************}%\r
+%%\r
+%%\r
+%%\r
+%%\r
+%%\r
+%%\r
+%%%% hyperref compatibility tricks: Hyperref package defines H counters from\r
+   % standard counters (i.e \theHpage from \thepage) and check some particular\r
+   % counters of some packages, unfortunately it doesn't do the same for\r
+   % algorithm2e package but act as Hcounter was defined. To avoid errors we\r
+   % defined \theHalgocf ourself\r
+%%%%\r
+%\r
+\@ifundefined{theHalgocf}{\def\theHalgocf{\thealgocf}}{}%\r
+\@ifundefined{theHAlgoLine}{\def\theHAlgoLine{\theAlgoLine}}{}%\r
+\@ifundefined{theHalgocfproc}{\def\theHalgocfproc{0}}{}%\r
+\@ifundefined{theHalgocffunc}{\def\theHalgocffunc{0}}{}%\r
+\@ifundefined{toclevel@algocf}{\def\toclevel@algocf{0}}{}%\r
+%\r
+% autoref from hyperref needs an autorefname, so we give it.\r
+\def\AlgoLineautorefname{\algorithmcflinename}%\r
+\def\algocfautorefname{\algorithmautorefname}%\r
+\def\algocfprocautorefname{\procedureautorefname}%\r
+\def\algocffuncautorefname{\functionautorefname}%\r
+%%\r
+%%\r
+%%\r
+\newcommand{\@defaultskiptotal}{0.5em}%\r
+\newskip\skiptotal\skiptotal=0.5em%\r
+\newskip\skiplinenumber\skiplinenumber=\hsize\advance\skiplinenumber by-\skiptotal%\r
+\newskip\skiprule%\r
+\newskip\skiphlne%\r
+\newskip\skiptext%\r
+\newskip\skiplength%\r
+\newskip\algomargin%\r
+\newskip\skipalgocfslide\skipalgocfslide=1em%\r
+\newdimen\algowidth%\r
+\newdimen\inoutsize%\r
+\newdimen\inoutline%\r
+\newdimen\interspacetitleruled\setlength{\interspacetitleruled}{2pt}%\r
+\newdimen\interspacealgoruled\setlength{\interspacealgoruled}{2pt}%\r
+\newdimen\interspacetitleboxruled\setlength{\interspacetitleboxruled}{2\lineskip}%\r
+%\r
+\newcommand{\@algoskip}{\smallskip}%\r
+\newcommand{\SetAlgoSkip}[1]{\renewcommand{\@algoskip}{\csname#1\endcsname}}%\r
+\newcommand{\@algoinsideskip}{\relax}%\r
+\newcommand{\SetAlgoInsideSkip}[1]{\renewcommand{\@algoinsideskip}{\csname#1\endcsname}}%\r
+%\r
+\newsavebox{\algocf@inoutbox}%\r
+\newsavebox{\algocf@inputbox}%\r
+%%\r
+%%\r
+\newcommand{\arg@e}{}%\r
+\newcommand{\arg@space}{\ }%\r
+\newcommand{\BlankLine}{\vskip 1ex}%\r
+%%\r
+\newcommand{\vespace}{1ex}%\r
+\newcommand{\SetInd}[2]{%\r
+\skiprule=#1%\r
+\skiptext=#2%\r
+\skiplength=\skiptext\advance\skiplength by \skiprule\advance\skiplength by 0.4pt}%\r
+\SetInd{0.5em}{1em}\r
+\algomargin=\leftskip\advance\algomargin by \parindent%\r
+\newcommand{\IncMargin}[1]{\advance\algomargin by #1}%\r
+\newcommand{\DecMargin}[1]{\advance\algomargin by -#1}%\r
+\newcommand{\SetNlSkip}[1]{%\r
+  \renewcommand{\@defaultskiptotal}{#1}%\r
+  \setlength{\skiptotal}{#1}}%\r
+%%\r
+\newskip\AlCapSkip\AlCapSkip=0ex%\r
+\newskip\AlCapHSkip\AlCapSkip=0ex%\r
+\newcommand{\SetAlCapSkip}[1]{\setlength{\AlCapSkip}{#1}}%\r
+\newcommand{\SetAlCapHSkip}[1]{\setlength{\AlCapHSkip}{#1}}%\r
+\SetAlCapHSkip{.5\algomargin}%\r
+%%\r
+%%\r
+\newcommand{\Indentp}[1]{\advance\leftskip by #1}%\r
+\newcommand{\Indp}{\advance\leftskip by 1em}%\r
+\newcommand{\Indpp}{\advance\leftskip by 0.5em}%\r
+\newcommand{\Indm}{\advance\leftskip by -1em}%\r
+\newcommand{\Indmm}{\advance\leftskip by -0.5em}%\r
+%%\r
+%%\r
+%% Line Numbering\r
+%%\r
+%%\r
+% number line style\r
+\newcommand{\algocf@nlrelsize}{-2}\newcommand{\SetAlgoNlRelativeSize}[1]{\renewcommand{\algocf@nlrelsize}{#1}}%\r
+\newcommand{\NlSty}[1]{\textnormal{\textbf{\relsize{\algocf@nlrelsize}#1}}}% default definition\r
+\newcommand{\SetNlSty}[3]{\renewcommand{\NlSty}[1]{\textnormal{\csname#1\endcsname{\relsize{\algocf@nlrelsize}#2##1#3}}}}%\r
+%\r
+% nl definitions\r
+%\r
+\newsavebox{\algocf@nlbox}%\r
+\newcommand{\algocf@printnl}[1]{%\r
+  \ifthenelse{\boolean{algocf@leftlinenumber}}{%\r
+    \skiplinenumber=\skiptotal\advance\skiplinenumber by\leftskip%\r
+    \strut\raisebox{0pt}{\llap{\NlSty{#1}\kern\skiplinenumber}}\ignorespaces%\r
+  }{%\r
+    \sbox\algocf@nlbox{\NlSty{#1}}%\r
+    \skiplinenumber=\hsize\advance\skiplinenumber by-\leftskip\advance\skiplinenumber by-\skiptext%\r
+    \advance\skiplinenumber by\algomargin\advance\skiplinenumber by.3em\advance\skiplinenumber by-\wd\algocf@nlbox%\r
+    \strut\raisebox{0pt}{\rlap{\kern\skiplinenumber\NlSty{#1\ignorespaces}}}\ignorespaces%\r
+  }%\r
+}%\r
+\newcommand{\algocf@nl@sethref}[1]{%\r
+  \renewcommand{\theHAlgoLine}{\thealgocfproc.#1}%\r
+  \hyper@refstepcounter{AlgoLine}\gdef\@currentlabel{#1}%\r
+}%\r
+\newcommand{\nl}{%\r
+  \@ifundefined{hyper@refstepcounter}{% if not hyperref then do a simple refstepcounter\r
+    \refstepcounter{AlgoLine}%\r
+  }{% else if hyperref, do the anchor so 2 lines in two differents algorithms cannot have the same href\r
+    \stepcounter{AlgoLine}\algocf@nl@sethref{\theAlgoLine}%\r
+  }% now we can do the line numbering\r
+  \algocf@printnl{\theAlgoLine}%\r
+}%\r
+%\r
+\newcommand{\nllabel}[1]{\label{#1}}%\r
+%\r
+\newcommand{\enl}{%\r
+  \@ifundefined{hyper@refstepcounte}{% if not hyperref then do a simple refstepcounter\r
+    \refstepcounter{AlgoLine}%\r
+  }{% else if hyperref, do the anchor so 2 lines in two differents algorithms cannot have the same href\r
+    \stepcounter{AlgoLine}\algocf@nl@sethref{\theAlgoLine}%\r
+  }% now we can do the line numbering\r
+  \skiplinenumber=\hsize\advance\skiplinenumber by-\leftskip%\r
+  \strut\raisebox{0pt}{\rlap{\kern\skiplinenumber\strut\NlSty{\theAlgoLine}}}\ignorespaces%\r
+}\r
+%% nlset\r
+\newcommand{\nlset}[1]{%\r
+  \@ifundefined{hyper@refstepcounter}{\protected@edef\@currentlabel{#1}}{\algocf@nl@sethref{#1}}\algocf@printnl{#1}%\r
+}%\r
+%\r
+%% lnl definitions\r
+\newcommand{\lnl}[1]{\nl\label{#1}}%\r
+%\r
+%% lnlset\r
+\newcommand{\lnlset}[2]{\nlset{#2}\label{#1}}%\r
+%\r
+% set char put at end of each line\r
+%\r
+\newcommand{\algocf@endline}{\string;}\r
+\newcommand{\SetEndCharOfAlgoLine}[1]{\renewcommand{\algocf@endline}{#1}}\r
+%\r
+% end of line definition\r
+%\r
+\newcommand{\@endalgocfline}{\algocf@endline}% default definition: printsemicolon\r
+\newcommand{\DontPrintSemicolon}{\renewcommand{\@endalgocfline}{\relax}}%\r
+\newcommand{\PrintSemicolon}{\renewcommand{\@endalgocfline}{\algocf@endline}}%\r
+\newcommand{\@endalgoln}{\@endalgocfline\hfill\strut\par}%\r
+%\r
+% line numbering\r
+%\r
+\newcommand{\LinesNumbered}{\setboolean{algocf@linesnumbered}{true}\renewcommand{\algocf@linesnumbered}{\everypar={\nl}}}%\r
+\newcommand{\LinesNotNumbered}{%\r
+  \setboolean{algocf@linesnumbered}{false}%\r
+  \renewcommand{\algocf@linesnumbered}{\relax}%\r
+}%\r
+%\r
+\newcommand{\LinesNumberedHidden}{%\r
+  \setboolean{algocf@linesnumbered}{true}\renewcommand{\algocf@linesnumbered}{\everypar{\stepcounter{AlgoLine}}}}%\r
+\newcommand{\ShowLn}{\nlset{\theAlgoLine}\ignorespaces}% display the line number on this line (without labelling)\r
+\newcommand{\ShowLnLabel}[1]{\lnlset{#1}{\theAlgoLine}\ignorespaces}% display the line number and label this line\r
+%\r
+%%\r
+%\r
+%%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+% Styling text commands\r
+%\r
+\newcommand{\AlFnt}{\relax}% default definition\r
+\newcommand{\SetAlFnt}[1]{\renewcommand{\AlFnt}{#1}}%\r
+\newcommand{\AlTitleFnt}{\relax}% default definition\r
+\newcommand{\SetAlTitleFnt}[1]{\renewcommand{\AlTitleFnt}{#1}}%\r
+%\r
+\newcommand{\AlCapFnt}{\relax}% default definition\r
+\newcommand{\SetAlCapFnt}[1]{\renewcommand{\AlCapFnt}{#1}}%\r
+\newcommand{\AlCapNameFnt}{\relax}% default definition\r
+\newcommand{\SetAlCapNameFnt}[1]{\renewcommand{\AlCapNameFnt}{#1}}%\r
+%\r
+\newcommand{\ProcFnt}{\relax}% default definition\r
+\newcommand{\SetProcFnt}[1]{\renewcommand{\ProcFnt}{#1}}%\r
+\newcommand{\ProcNameFnt}{\relax}% default definition\r
+\newcommand{\SetProcNameFnt}[1]{\renewcommand{\ProcNameFnt}{#1}}%\r
+\newcommand{\ProcArgFnt}{\relax}% default definition\r
+\newcommand{\SetProcArgFnt}[1]{\renewcommand{\ProcArgFnt}{#1}}%\r
+%\r
+\newcommand{\AlTitleSty}[1]{\textbf{#1}\unskip}% default definition\r
+\newcommand{\SetAlTitleSty}[1]{\renewcommand{\AlTitleSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%\r
+\newcommand{\AlCapSty}[1]{\textnormal{\textbf{#1}}\unskip}% default definition\r
+\newcommand{\SetAlCapSty}[1]{\renewcommand{\AlCapSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%\r
+\newcommand{\AlCapNameSty}[1]{\textnormal{#1}\unskip}% default definition\r
+\newcommand{\SetAlCapNameSty}[1]{\renewcommand{\AlCapNameSty}[1]{\textnormal{\csname #1\endcsname{##1}}\unskip}}%\r
+%\r
+\newcommand{\ProcSty}[1]{\AlCapSty{#1}}%\r
+\newcommand{\SetProcSty}[1]{\renewcommand{\ProcSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%\r
+\newcommand{\ProcNameSty}[1]{\AlCapNameSty{#1}}%\r
+\newcommand{\SetProcNameSty}[1]{\renewcommand{\ProcNameSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%\r
+\newcommand{\ProcArgSty}[1]{\AlCapNameSty{#1}}%\r
+\newcommand{\SetProcArgSty}[1]{\renewcommand{\ProcArgSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%\r
+%\r
+\newcommand{\KwSty}[1]{\textnormal{\textbf{#1}}\unskip}% default definition\r
+\newcommand{\SetKwSty}[1]{\renewcommand{\KwSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%\r
+\newcommand{\ArgSty}[1]{\textnormal{\emph{#1}}\unskip}%\SetArgSty{emph}\r
+\newcommand{\SetArgSty}[1]{\renewcommand{\ArgSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%\r
+\newcommand{\FuncSty}[1]{\textnormal{\texttt{#1}}\unskip}%\SetFuncSty{texttt}\r
+\newcommand{\SetFuncSty}[1]{\renewcommand{\FuncSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%\r
+\newcommand{\DataSty}[1]{\textnormal{\textsf{#1}}\unskip}%%\SetDataSty{textsf}\r
+\newcommand{\SetDataSty}[1]{\renewcommand{\DataSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%\r
+\newcommand{\CommentSty}[1]{\textnormal{\texttt{#1}}\unskip}%%\SetDataSty{texttt}\r
+\newcommand{\SetCommentSty}[1]{\renewcommand{\CommentSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}%\r
+\newcommand{\TitleSty}[1]{#1\unskip}%\SetTitleSty{}{}\r
+\newcommand{\SetTitleSty}[2]{\renewcommand{\TitleSty}[1]{%\r
+\csname#1\endcsname{\csname#2\endcsname##1}}\unskip}%\r
+%\r
+%%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+% Block basic commands\r
+%\r
+\newcommand{\algocf@push}[1]{\advance\skiptotal by #1\moveright #1}%\r
+\newcommand{\algocf@pop}[1]{\advance\skiptotal by -#1}%\r
+\newcommand{\algocf@addskiptotal}{\advance\skiptotal by 0.4pt\advance\hsize by -0.4pt}% 0.4 pt=width of \vrule\r
+\newcommand{\algocf@subskiptotal}{\advance\skiptotal by -0.4pt\advance\hsize by 0.4pt}% 0.4 pt=width of \vrule\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%%\r
+%% group of instructions definition\r
+%\r
+\skiphlne=.8ex%\r
+\newcommand{\SetVlineSkip}[1]{\skiphlne=#1}%\r
+%\r
+%% block with a vertical line end by a little horizontal line\r
+\newcommand{\algocf@Vline}[1]{%     no vskip in between boxes but a strut to separate them, \r
+  \strut\par\nointerlineskip% then interblock space stay the same whatever is inside it\r
+  \algocf@push{\skiprule}%        move to the right before the vertical rule\r
+  \hbox{\vrule%\r
+    \vtop{\algocf@push{\skiptext}%move the right after the rule\r
+      \vtop{\algocf@addskiptotal\advance\hsize by -\skiplength #1}\Hlne}}\vskip\skiphlne% inside the block\r
+  \algocf@pop{\skiprule}%\algocf@subskiptotal% restore indentation\r
+  \nointerlineskip}% no vskip after\r
+%\r
+%% block with a vertical line\r
+\newcommand{\algocf@Vsline}[1]{%    no vskip in between boxes but a strut to separate them, \r
+  \strut\par\nointerlineskip% then interblock space stay the same whatever is inside it\r
+  \algocf@push{\skiprule}%        move to the right before the vertical rule\r
+  \hbox{\vrule%               the vertical rule\r
+    \vtop{\algocf@push{\skiptext}%move the right after the rule\r
+      \vtop{\algocf@addskiptotal\advance\hsize by -\skiplength #1}}}% inside the block\r
+  \algocf@pop{\skiprule}}% restore indentation\r
+%\r
+\newcommand{\algocf@Hlne}{\hrule height 0.4pt depth 0pt width .5em}%\r
+%\r
+%% block without line\r
+\newcommand{\algocf@Noline}[1]{%    no vskip in between boxes but a strut to separate them, \r
+  \strut\par\nointerlineskip% then interblock space stay the same whatever is inside it\r
+  \algocf@push{\skiprule}%\r
+  \hbox{%\r
+    \vtop{\algocf@push{\skiptext}%\r
+      \vtop{\advance\hsize by -\skiplength #1}}}% inside the block\r
+  \algocf@pop{\skiprule}%\r
+  % \nointerlineskip% no vskip after\r
+}%\r
+%\r
+%% default=NoLine\r
+%\r
+\newcommand{\algocf@group}[1]{\algocf@Noline{##1}}% group: set of instruction depending from another (ex: then part of the If)\r
+\newcommand{\algocf@@block}[2]{\algocf@Noline{##1}\KwSty{##2}\par}% block: group with a end keyword.\r
+\newcommand{\algocf@block}[2]{\algocf@@block{#1}{#2}}% command that will be used and redefined accordingly to noend option\r
+\newcommand{\algocf@setBlock}{%\r
+  \ifthenelse{\boolean{algocf@optnoend}}{%     if no end option\r
+    \renewcommand{\algocf@block}[2]{\algocf@group{##1}}%     block will be a group\r
+  }{%                                          else\r
+    \renewcommand{\algocf@block}[2]{\algocf@@block{##1}{##2}}% block stays a block\r
+  }%\r
+}%\r
+%\r
+\newcommand{\Hlne}{}% little hrizontal line ending a block in vline mode\r
+%\r
+\newcommand{\@algocf@endoption}[1]{#1}%\r
+\newboolean{algocf@optnoend}\setboolean{algocf@optnoend}{false}%\r
+%\r
+\newcommand{\SetAlgoLongEnd}{%%%%%%%%%%%%%%%%%%%%%%%%% Long End\r
+  \setboolean{algocf@optnoend}{false}%\r
+  \renewcommand{\@algocf@endoption}[1]{##1}%\r
+  \algocf@setBlock}%\r
+%\r
+\newcommand{\SetAlgoShortEnd}{%%%%%%%%%%%%%%%%%%%%%%%% ShortEnd\r
+  \setboolean{algocf@optnoend}{false}%\r
+  \renewcommand{\@algocf@endoption}[1]{\@firstword##1 \@nil}%\r
+  \algocf@setBlock}%\r
+%\r
+\newcommand{\SetAlgoNoEnd}{%%%%%%%%%%%%%%%%%%%%%%%%%%% NoEnd\r
+  \setboolean{algocf@optnoend}{true}%\r
+  \renewcommand{\@algocf@endoption}[1]{}%\r
+  \algocf@setBlock}%\r
+%\r
+\newcommand{\SetAlgoNoLine}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Noline\r
+\renewcommand{\algocf@@block}[2]{\algocf@Noline{##1}\KwSty{##2}\strut\par}%\r
+\renewcommand{\algocf@group}[1]{\algocf@Noline{##1}}%\r
+\renewcommand{\Hlne}{}}%\r
+%\r
+\newcommand{\SetAlgoVlined}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Vline\r
+\renewcommand{\algocf@@block}[2]{\algocf@Vline{##1}}%\r
+\renewcommand{\algocf@group}[1]{\algocf@Vsline{##1}\ifthenelse{\boolean{algocf@optnoend}}{\relax}{\strut\ignorespaces}}%\r
+\renewcommand{\Hlne}{\algocf@Hlne}}%\r
+%\r
+\newcommand{\SetAlgoLined}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Line\r
+\renewcommand{\algocf@@block}[2]{\strut\algocf@Vsline{##1}\KwSty{##2}\strut\par}% no skip after a block so garantie at least a line\r
+\renewcommand{\algocf@group}[1]{\algocf@Vsline{##1}\ifthenelse{\boolean{algocf@optnoend}}{\relax}{\strut\ignorespaces}}%\r
+\renewcommand{\Hlne}{}}%\r
+%\r
+\newcommand{\SetNothing}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Noline\r
+\renewcommand{\algocf@@block}[2]{\algocf@Noline{##1}\par}%\r
+%\long\r
+\renewcommand{\algocf@group}[1]{\algocf@Noline{##1}}%\r
+\renewcommand{\Hlne}{}}%\r
+%\r
+%%\r
+%%\r
+%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+% ``Input :'''s like command \r
+%\r
+%%%\r
+% text staying at the right of the longer keyword of KwInOut commands \r
+% (text of KwInOut commands are all vertically aligned)\r
+%\r
+\newcommand{\algocf@newinout}{\par\parindent=\wd\algocf@inoutbox}% to put right indentation after a \\ in the KwInOut\r
+\newcommand{\SetKwInOut}[2]{%\r
+  \sbox\algocf@inoutbox{\KwSty{#2}\algocf@typo:}%\r
+  \expandafter\ifx\csname InOutSizeDefined\endcsname\relax% if first time used\r
+    \newcommand\InOutSizeDefined{}\setlength{\inoutsize}{\wd\algocf@inoutbox}%\r
+  \else% else keep the larger dimension\r
+    \ifdim\wd\algocf@inoutbox>\inoutsize\setlength{\inoutsize}{\wd\algocf@inoutbox}\fi%\r
+  \fi% the dimension of the box is now defined.\r
+  \@ifundefined{#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%\r
+  \expandafter\algocf@mkcmd\csname#1\endcsname[1]{%\r
+    \ifthenelse{\boolean{algocf@inoutnumbered}}{\relax}{\everypar={\relax}}%\r
+    {\let\\\algocf@newinout\hangindent=\wd\algocf@inoutbox\hangafter=1\parbox[t]{\inoutsize}{\KwSty{#2}\algocf@typo\hfill:}~##1\par}%\r
+    \algocf@linesnumbered% reset the numbering of the lines\r
+  }}%\r
+%\r
+%% allow to ajust the skip size of InOut\r
+%%\r
+\newcommand{\ResetInOut}[1]{%\r
+  \sbox\algocf@inoutbox{\hbox{\KwSty{#1}\algocf@typo:\ }}%\r
+  \setlength{\inoutsize}{\wd\algocf@inoutbox}%\r
+  }%\r
+%\r
+% \r
+%%%\r
+% text staying at the right of the keyword.\r
+%\r
+\newcommand{\algocf@newinput}{\par\parindent=\wd\algocf@inputbox}% to put right indentation after a \\ in the KwInput\r
+\newcommand{\SetKwInput}[2]{%\r
+  \@ifundefined{#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%\r
+  \expandafter\algocf@mkcmd\csname#1\endcsname[1]{%\r
+    \sbox\algocf@inputbox{\hbox{\KwSty{#2}\algocf@typo: }}%\r
+    \ifthenelse{\boolean{algocf@inoutnumbered}}{\relax}{\everypar={\relax}}%\r
+    {\let\\\algocf@newinput\hangindent=\wd\algocf@inputbox\hangafter=1\unhbox\algocf@inputbox##1\par}%\r
+    \algocf@linesnumbered% reset the numbering of the lines\r
+  }}%\r
+\newcommand{\SetKwData}[2]{%\r
+  \@ifundefined{#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%\r
+  \expandafter\algocf@mkcmd\csname @#1\endcsname[1]{\DataSty{#2(}\ArgSty{##1}\DataSty{)}}%\r
+  \expandafter\algocf@mkcmd\csname#1\endcsname{%\r
+    \@ifnextchar\bgroup{\csname @#1\endcsname}{\DataSty{#2}\xspace}}%\r
+  }%\r
+%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+% tallent:\r
+%\r
+% Add following macros:\r
+%   \SetKwHangingKw:  [kw] ------------   <= hanging determined by [kw]\r
+%                          ------------\r
+% Should act like a combination of \SetKwInput and \SetKw.\r
+% Based on \SetKwInput:\r
+%   - remove ':' at end of keyword\r
+%   - do not reset numbering\r
+%   - use separate savebox\r
+\newsavebox{\algocf@hangingbox}\r
+\newcommand{\algocf@newhanging}{\par\parindent=\wd\algocf@hangingbox}% to put right indentation after a \\ in the KwInput\r
+\newcommand{\SetKwHangingKw}[2]{%\r
+  \@ifundefined{#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%\r
+  \expandafter\algocf@mkcmd\csname#1\endcsname[1]{%\r
+    \sbox\algocf@hangingbox{\hbox{\KwSty{#2}\algocf@typo\ }}%\r
+    {\let\\\algocf@newhanging\hangindent=\wd\algocf@hangingbox\hangafter=1\unhbox\algocf@hangingbox##1\;}%\r
+  }%\r
+}%\r
+%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+% Comments macros\r
+%\r
+%%%%\r
+% comment in the text, first argument is the name of the macro, second is\r
+% the text put before the comment, third is the text put at the end of the\r
+% comment.\r
+%\r
+% first side comment justification\r
+\newcommand{\SetSideCommentLeft}{\setboolean{algocf@scleft}{true}}%\r
+\newcommand{\SetSideCommentRight}{\setboolean{algocf@scleft}{false}}%\r
+\newcommand{\SetNoFillComment}{\setboolean{algocf@optfillcomment}{false}}%\r
+\newcommand{\SetFillComment}{\setboolean{algocf@optfillcomment}{true}}%\r
+%\r
+% next comment and side comment\r
+%\r
+\newcommand{\algocf@endmarkcomment}{\relax}%\r
+\newcommand{\algocf@fillcomment}{%\r
+  \ifthenelse{\boolean{algocf@optfillcomment}}{\hfill}{\relax}}%\r
+%\r
+\newcommand{\algocf@startcomment}{%\r
+  \hangindent=\wd\algocf@inputbox\hangafter=1\usebox\algocf@inputbox}%\r
+\newcommand{\algocf@endcomment}{\algocf@fillcomment\algocf@endmarkcomment\ignorespaces\par}%\r
+\newcommand{\algocf@endstartcomment}{\algocf@endcomment\algocf@startcomment\ignorespaces}%\r
+%\r
+\newboolean{algocf@sidecomment}%\r
+\newboolean{algocf@altsidecomment}\setboolean{algocf@altsidecomment}{false}%\r
+\newcommand{\algocf@scpar}{\ifthenelse{\boolean{algocf@altsidecomment}}{\relax}{\par}}%\r
+\newcommand{\algocf@sclfill}{\ifthenelse{\boolean{algocf@scleft}}{\algocf@fillcomment}{\relax}}%\r
+\newcommand{\algocf@scrfill}{\ifthenelse{\boolean{algocf@scleft}}{\relax}{\hfill}}%\r
+\newcommand{\algocf@startsidecomment}{\usebox\algocf@inputbox}%\r
+\newcommand{\algocf@endsidecomment}{\algocf@endmarkcomment\algocf@scpar}%\r
+\newcommand{\algocf@endstartsidecomment}{%\r
+  \algocf@sclfill\algocf@endsidecomment%\r
+  \algocf@scrfill\algocf@startsidecomment\ignorespaces}%\r
+%\r
+\newcommand{\SetKwComment}[3]{%\r
+  % newcommand or renewcommand ?\r
+  \@ifundefined{#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%\r
+  %%% comment definition\r
+  \expandafter\algocf@mkcmd\csname algocf@#1\endcsname[1]{%\r
+    \sbox\algocf@inputbox{\CommentSty{\hbox{#2}}}%\r
+    \ifthenelse{\boolean{algocf@commentsnumbered}}{\relax}{\everypar={\relax}}%\r
+    {\renewcommand{\algocf@endmarkcomment}{#3}%\r
+      \let\\\algocf@endstartcomment%\r
+      \algocf@startcomment\CommentSty{%\r
+        \strut\ignorespaces##1\strut\algocf@fillcomment#3}\par}%\r
+    \algocf@linesnumbered% reset the numbering of the lines\r
+  }%\r
+  %%% side comment definitions\r
+  % option or not?\r
+  \expandafter\algocf@mkcmd\csname algocf@#1@star\endcsname{%\r
+    \@ifnextchar [{\csname algocf@#1@staropt\endcsname}{\csname algocf@#1@sidecomment\endcsname}%\r
+  }%\r
+  % manage option\r
+  \expandafter\def\csname algocf@#1@staropt\endcsname[##1]##2{%\r
+    \ifthenelse{\boolean{algocf@scleft}}{\setboolean{algocf@sidecomment}{true}}{\setboolean{algocf@sidecomment}{false}}%\r
+    \ifx##1h\setboolean{algocf@altsidecomment}{true}\SetSideCommentLeft\fi%\r
+    \ifx##1f\setboolean{algocf@altsidecomment}{true}\SetSideCommentRight\fi%\r
+    \ifx##1l\setboolean{algocf@altsidecomment}{false}\SetSideCommentLeft\fi%\r
+    \ifx##1r\setboolean{algocf@altsidecomment}{false}\SetSideCommentRight\fi%\r
+    \csname algocf@#1@sidecomment\endcsname{##2}% call sidecomment\r
+    \ifthenelse{\boolean{algocf@sidecomment}}{\setboolean{algocf@scleft}{true}}{\setboolean{algocf@scleft}{false}}%\r
+    \setboolean{algocf@altsidecomment}{false}%\r
+  }%\r
+  % side comment\r
+  \expandafter\algocf@mkcmd\csname algocf@#1@sidecomment\endcsname[1]{%\r
+    \sbox\algocf@inputbox{\CommentSty{\hbox{#2}}}%\r
+    \ifthenelse{\boolean{algocf@commentsnumbered}}{\relax}{\everypar={\relax}}%\r
+    {%\r
+      \renewcommand{\algocf@endmarkcomment}{#3}%\r
+      \let\\\algocf@endstartsidecomment%\r
+      % here is the comment\r
+      %\ifthenelse{\boolean{algocf@altsidecomment}}{\relax}{\algocf@endline\ }%\r
+      \ifthenelse{\boolean{algocf@altsidecomment}}{\relax}{\@endalgocfline\ }%\r
+      \algocf@scrfill\algocf@startsidecomment\CommentSty{%\r
+        \strut\ignorespaces##1\strut\algocf@sclfill#3}\algocf@scpar%\r
+    }%\r
+    \algocf@linesnumbered% reset the numbering of the lines\r
+  }\r
+  \expandafter\algocf@mkcmd\csname#1\endcsname{\@ifstar{\csname algocf@#1@star\endcsname}{\csname algocf@#1\endcsname}}%\r
+}%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+% Kw\r
+%\r
+\newcommand{\SetKw}[2]{%\r
+  \@ifundefined{#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%\r
+  \expandafter\algocf@mkcmd\csname @#1\endcsname[1]{\KwSty{#2} \ArgSty{##1}}%\r
+  \expandafter\algocf@mkcmd\csname#1\endcsname{%\r
+    \@ifnextchar\bgroup{\csname @#1\endcsname}{\KwSty{#2}\xspace}}%\r
+  }%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+% KwFunction\r
+%\r
+\newcommand{\SetKwFunction}[2]{%\r
+%%% use of gdef since newcommand doesn't manage to define the macro when SetKwFunction is used in \algocf@caption@proc\r
+  \expandafter\gdef\csname @#1\endcsname##1{\FuncSty{#2(}\ArgSty{##1}\FuncSty{)}}%\r
+  \expandafter\gdef\csname#1\endcsname{%\r
+    \@ifnextchar\bgroup{\csname @#1\endcsname}{\FuncSty{#2}\xspace}}%\r
+}%\r
+%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+% KwTab\r
+%\r
+\newcommand{\SetKwArray}[2]{%\r
+%%% use of gdef since newcommand doesn't manage to define the macro when SetKwFunction is used in \algocf@caption@proc\r
+  \expandafter\gdef\csname @#1\endcsname##1{\DataSty{#2[}\ArgSty{##1}\DataSty{]}}%\r
+  \expandafter\gdef\csname#1\endcsname{%\r
+    \@ifnextchar\bgroup{\csname @#1\endcsname}{\DataSty{#2}\xspace}}%\r
+}%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+% KwBlock\r
+%\r
+\newcommand{\SetKwBlock}[3]{%\r
+\@ifundefined{algocf@#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%\r
+% side text or not? \r
+\expandafter\def\csname#1\endcsname{%Begin\r
+  \@ifnextchar({\csname algocf@#1opt\endcsname}{\csname algocf@#1\endcsname}}%\r
+% with side text\r
+\expandafter\def\csname algocf@#1opt\endcsname(##1)##2{% \Begin(){}\r
+  \KwSty{#2} ##1\algocf@block{##2}{\@algocf@endoption{#3}}%\r
+  \@ifnextchar({\csname algocf@#1end\endcsname}{\par}}%\r
+% without side text at the beginning\r
+\expandafter\algocf@mkcmd\csname algocf@#1\endcsname[1]{% \Begin{}\r
+  \KwSty{#2}\algocf@block{##1}{\@algocf@endoption{#3}}\@ifnextchar({\csname algocf@#1end\endcsname}{\par}}%\r
+% side text at the end\r
+\expandafter\def\csname algocf@#1end\endcsname(##1){% \Begin{}\r
+  \ ##1\par}%\r
+}%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+% For Switch\r
+%\r
+\newcommand{\SetKwSwitch}[8]{% #1=\Switch #2=\Case #3=\Other #4=swicth #5=case #6=do #7=otherwise #8=endsw\r
+%%%% Switch\r
+\@ifundefined{algocf@#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%\r
+% side text or not? \r
+\expandafter\def\csname#1\endcsname{%Switch\r
+  \@ifnextchar({\csname algocf@#1opt\endcsname}{\csname algocf@#1\endcsname}}%\r
+% with side text\r
+\expandafter\def\csname algocf@#1opt\endcsname(##1)##2##3{% \Switch(){}{}\r
+  \KwSty{#4} \ArgSty{##2} \KwSty{#5} ##1\algocf@block{##3}{\@algocf@endoption{#8}}}%\r
+% without side text\r
+\expandafter\algocf@mkcmd\csname algocf@#1\endcsname[2]{% \Switch{}{}\r
+  \KwSty{#4} \ArgSty{##1} \KwSty{#5}\algocf@block{##2}{\@algocf@endoption{#8}}}%\r
+% side text at the end\r
+\expandafter\def\csname algocf@#1end\endcsname(##1){% \Switch{}{}()\r
+}%\r
+%\r
+%%%% Case\r
+\@ifundefined{algocf@#2}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%\r
+% side text or not?\r
+\expandafter\def\csname#2\endcsname{%Case\r
+  \@ifnextchar({\csname algocf@#2opt\endcsname}{\csname algocf@#2\endcsname}}%\r
+\expandafter\def\csname u#2\endcsname{%uCase\r
+  \@ifnextchar({\csname algocf@u#2opt\endcsname}{\csname algocf@u#2\endcsname}}%\r
+\expandafter\def\csname l#2\endcsname{%lCase\r
+  \@ifnextchar({\csname algocf@l#2opt\endcsname}{\csname algocf@l#2\endcsname}}%\r
+% with side text\r
+\expandafter\def\csname algocf@#2opt\endcsname(##1)##2##3{% \Case(){}{}\r
+  \KwSty{#6} \ArgSty{##2} ##1\algocf@block{##3}{\@algocf@endoption{#8}}}%\r
+\expandafter\def\csname algocf@u#2opt\endcsname(##1)##2##3{% \uCase(){}{}\r
+  \KwSty{#6} \ArgSty{##2} ##1\algocf@group{##3}}%\r
+\expandafter\def\csname algocf@l#2opt\endcsname(##1)##2##3{% \lCase(){}{}\r
+  \KwSty{#6} \ArgSty{##2} ##3\algocf@endline\ ##1\par}%\r
+% without side text\r
+\expandafter\algocf@mkcmd\csname algocf@#2\endcsname[2]{% \Case{}{}\r
+  \KwSty{#6} \ArgSty{##1}\algocf@block{##2}{\@algocf@endoption{#8}}}%\r
+\expandafter\algocf@mkcmd\csname algocf@u#2\endcsname[2]{% \uCase{}{}\r
+  \KwSty{#6} \ArgSty{##1}\algocf@group{##2}}%\r
+\expandafter\algocf@mkcmd\csname algocf@l#2\endcsname[2]{% \lCase{}{}\r
+  \KwSty{#6} \ArgSty{##1} ##2}%\r
+%%%% Other\r
+\@ifundefined{algocf@#3}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%\r
+% side text or not?\r
+\expandafter\def\csname#3\endcsname{%Other\r
+  \@ifnextchar({\csname algocf@#3opt\endcsname}{\csname algocf@#3\endcsname}}%\r
+\expandafter\def\csname l#3\endcsname{%Other\r
+  \@ifnextchar({\csname algocf@l#3opt\endcsname}{\csname algocf@l#3\endcsname}}%\r
+% with side text\r
+\expandafter\def\csname algocf@#3opt\endcsname(##1)##2{% \Other(){}{}\r
+  \KwSty{#7} ##1\algocf@block{##2}{\@algocf@endoption{#8}}}%\r
+\expandafter\def\csname algocf@l#3opt\endcsname(##1)##2{% \Other(){}{}\r
+  \KwSty{#7} ##2\algocf@endline\ ##1\par}%\r
+% without side text\r
+\expandafter\algocf@mkcmd\csname algocf@#3\endcsname[1]{% default\r
+  \KwSty{#7}\algocf@block{##1}{\@algocf@endoption{#8}}}%\r
+\expandafter\algocf@mkcmd\csname algocf@l#3\endcsname[1]{% ldefault\r
+  \KwSty{#7} ##1}%\r
+}%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+% If macros\r
+%\r
+\newcommand{\SetKwIF}[8]{% #1=\If #2=\ElseIf #3=\Else #4=if #5=then #6=elseif si #7=else #8=endif\r
+% \r
+% common text\r
+\@ifundefined{#1@ifthen}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%\r
+\expandafter\algocf@mkcmd\csname #1@ifthen\endcsname[1]{%\r
+  \KwSty{#4} \ArgSty{##1} \KwSty{#5}}%\r
+\expandafter\algocf@mkcmd\csname #1@endif\endcsname[1]{\algocf@block{##1}{\@algocf@endoption{#8}}}%\r
+\expandafter\algocf@mkcmd\csname #1@noend\endcsname[1]{\algocf@group{##1}}%\r
+\expandafter\algocf@mkcmd\csname #1@else\endcsname[1]{\algocf@group{##1}\KwSty{#7}}%\r
+\@ifundefined{#2@elseif}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%\r
+\expandafter\algocf@mkcmd\csname #2@elseif\endcsname[1]{%\r
+  \KwSty{#6} \ArgSty{##1} \KwSty{#5}}%\r
+\@ifundefined{#3@else}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%\r
+\expandafter\algocf@mkcmd\csname #3@else\endcsname{\KwSty{#7}}%\r
+%%%% If then { } endif\r
+%\r
+\@ifundefined{algocf@#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%\r
+% side text or not?\r
+\expandafter\def\csname#1\endcsname{%\r
+  \@ifnextchar({\csname algocf@#1opt\endcsname}{\csname algocf@#1\endcsname}}%\r
+% with side text\r
+\expandafter\def\csname algocf@#1opt\endcsname(##1)##2##3{% \If(){}{}\r
+  \csname #1@ifthen\endcsname{##2} ##1\csname #1@endif\endcsname{##3}}%\r
+% without side text\r
+\expandafter\algocf@mkcmd\csname algocf@#1\endcsname[2]{% \If{}{}\r
+  \csname #1@ifthen\endcsname{##1}\csname #1@endif\endcsname{##2}}%\r
+%\r
+%%%% If then {} else {} endif\r
+%\r
+% side text or not?\r
+\expandafter\def\csname e#1\endcsname{%\r
+  \@ifnextchar({\csname algocf@e#1thenopt\endcsname}{\csname algocf@e#1then\endcsname}}%\r
+% with side text after if\r
+\expandafter\def\csname algocf@e#1thenopt\endcsname(##1)##2##3{% \eIf()\r
+  \csname #1@ifthen\endcsname{##2} ##1\csname #1@else\endcsname{##3}%\r
+  \csname algocf@e#1thenelse\endcsname}%\r
+% without side text after if\r
+\expandafter\def\csname algocf@e#1then\endcsname##1##2{% \eIf()\r
+  \csname #1@ifthen\endcsname{##1}\csname #1@else\endcsname{##2}%\r
+  \csname algocf@e#1thenelse\endcsname}%\r
+% side text after else or not ?\r
+\expandafter\def\csname algocf@e#1thenelse\endcsname{%\r
+  \@ifnextchar({\csname algocf@e#1elseopt\endcsname}{\csname algocf@e#1else\endcsname}}%\r
+% else with a side text\r
+\expandafter\def\csname algocf@e#1elseopt\endcsname(##1)##2{% \r
+  ##1\csname #1@endif\endcsname{##2}}%\r
+% else without side text\r
+\expandafter\algocf@mkcmd\csname algocf@e#1else\endcsname[1]{%\r
+  \csname #1@endif\endcsname{##1}}%\r
+%\r
+%%%% If then \r
+%\r
+% side text or not?\r
+\expandafter\def\csname l#1\endcsname{% lif\r
+  \@ifnextchar({\csname algocf@l#1opt\endcsname}{\csname algocf@l#1\endcsname}}%\r
+\expandafter\def\csname u#1\endcsname{% uif\r
+  \@ifnextchar({\csname algocf@u#1opt\endcsname}{\csname algocf@u#1\endcsname}}%\r
+% with side text\r
+\expandafter\def\csname algocf@l#1opt\endcsname(##1)##2##3{% \lIf(){}{}\r
+  \csname #1@ifthen\endcsname{##2} ##3\algocf@endline\ ##1\par}%\r
+\expandafter\def\csname algocf@u#1opt\endcsname(##1)##2##3{% \uIf(){}{}\r
+  \csname #1@ifthen\endcsname{##2} ##1\csname#1@noend\endcsname{##3}}%\r
+% without side text\r
+\expandafter\algocf@mkcmd\csname algocf@l#1\endcsname[2]{% \lIf{}{}\r
+  \csname #1@ifthen\endcsname{##1} ##2}%\r
+\expandafter\algocf@mkcmd\csname algocf@u#1\endcsname[2]{% \uIf{}{}\r
+  \csname #1@ifthen\endcsname{##1}\csname#1@noend\endcsname{##2}}%\r
+%\r
+%%%% ElseIf {} endif\r
+%\r
+\@ifundefined{algocf@#2}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%\r
+% side text or not?\r
+\expandafter\def\csname#2\endcsname{% ElseIf\r
+  \@ifnextchar({\csname algocf@#2opt\endcsname}{\csname algocf@#2\endcsname}}%\r
+% with side text\r
+\expandafter\def\csname algocf@#2opt\endcsname(##1)##2##3{% \ElseIf(){}{}\r
+  \csname #2@elseif\endcsname{##2} ##1\csname #1@endif\endcsname{##3}}%\r
+% without side text\r
+\expandafter\algocf@mkcmd\csname algocf@#2\endcsname[2]{% \ElseIf{}{}\r
+  \csname #2@elseif\endcsname{##1}\csname #1@endif\endcsname{##2}}%\r
+%\r
+%%%% ElseIf\r
+%\r
+% side text or not?\r
+\expandafter\def\csname l#2\endcsname{% lElseIf\r
+  \@ifnextchar({\csname algocf@l#2opt\endcsname}{\csname algocf@l#2\endcsname}}%\r
+\expandafter\def\csname u#2\endcsname{% uElseIf\r
+  \@ifnextchar({\csname algocf@u#2opt\endcsname}{\csname algocf@u#2\endcsname}}%\r
+% with side text\r
+\expandafter\def\csname algocf@l#2opt\endcsname(##1)##2##3{% \lElseIf(){}{}\r
+  \csname #2@elseif\endcsname{##2} ##3\algocf@endline\ ##1\par}%\r
+\expandafter\def\csname algocf@u#2opt\endcsname(##1)##2##3{% \uElseIf(){}{}\r
+  \csname #2@elseif\endcsname{##2} ##1\csname #1@noend\endcsname{##3}}%\r
+% without side text\r
+\expandafter\algocf@mkcmd\csname algocf@l#2\endcsname[2]{% \lElseIf{}{}\r
+  \csname #2@elseif\endcsname{##1} ##2}%\r
+\expandafter\algocf@mkcmd\csname algocf@u#2\endcsname[2]{% \uElseIf{}{}\r
+  \csname #2@elseif\endcsname{##1}\csname #1@noend\endcsname{##2}}%\r
+%\r
+%%%% Else {} endif\r
+%\r
+\@ifundefined{algocf@#3}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%\r
+% side text or not?\r
+\expandafter\def\csname#3\endcsname{% Else\r
+  \@ifnextchar({\csname algocf@#3opt\endcsname}{\csname algocf@#3\endcsname}}%\r
+% with side text\r
+\expandafter\def\csname algocf@#3opt\endcsname(##1)##2{% \Else(){}\r
+  \csname #3@else\endcsname\ ##1\csname #1@endif\endcsname{##2}}%\r
+% without side text\r
+\expandafter\algocf@mkcmd\csname algocf@#3\endcsname[1]{% \Else{}\r
+  \csname #3@else\endcsname\csname #1@endif\endcsname{##1}}%\r
+%\r
+%%%% Else \r
+%\r
+% side text or not?\r
+\expandafter\def\csname l#3\endcsname{% lElse\r
+  \@ifnextchar({\csname algocf@l#3opt\endcsname}{\csname algocf@l#3\endcsname}}%\r
+\expandafter\def\csname u#3\endcsname{% uElse\r
+  \@ifnextchar({\csname algocf@u#3opt\endcsname}{\csname algocf@u#3\endcsname}}%\r
+% with side text\r
+\expandafter\def\csname algocf@l#3opt\endcsname(##1)##2{% \lElse(){}\r
+  \csname #3@else\endcsname\ ##2\algocf@endline\ ##1\par}%\r
+\expandafter\def\csname algocf@u#3opt\endcsname(##1)##2{% \uElse(){}\r
+  \csname #3@else\endcsname\ ##1\csname #1@noend\endcsname{##2}}%\r
+% without side text\r
+\expandafter\algocf@mkcmd\csname algocf@l#3\endcsname[1]{% \lElse{}\r
+  \csname #3@else\endcsname\ ##1}%\r
+\expandafter\algocf@mkcmd\csname algocf@u#3\endcsname[1]{% \uElse{}\r
+  \csname #3@else\endcsname\csname #1@noend\endcsname{##1}}%\r
+}%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+% For macros\r
+%\r
+\newcommand{\SetKwFor}[4]{%\r
+\@ifundefined{algocf@#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%\r
+% side text or not? \r
+\expandafter\def\csname#1\endcsname{%For\r
+  \@ifnextchar({\csname algocf@#1opt\endcsname}{\csname algocf@#1\endcsname}}%\r
+\expandafter\def\csname l#1\endcsname{%For\r
+  \@ifnextchar({\csname algocf@l#1opt\endcsname}{\csname algocf@l#1\endcsname}}%\r
+% with side text\r
+\expandafter\def\csname algocf@#1opt\endcsname(##1)##2##3{% \For(){}{}\r
+  \KwSty{#2} \ArgSty{##2} \KwSty{#3} ##1\algocf@block{##3}{\@algocf@endoption{#4}}}%\r
+\expandafter\def\csname algocf@l#1opt\endcsname(##1)##2##3{% \lFor(){}{}\r
+  \KwSty{#2} \ArgSty{##2} \KwSty{#3} ##3\algocf@endline\ ##1\par}%\r
+% without side text\r
+\expandafter\algocf@mkcmd\csname algocf@#1\endcsname[2]{% \For{}{}\r
+  \KwSty{#2} \ArgSty{##1} \KwSty{#3}\algocf@block{##2}{\@algocf@endoption{#4}}}%\r
+\expandafter\algocf@mkcmd\csname algocf@l#1\endcsname[2]{% \lFor{}{}\r
+  \KwSty{#2} \ArgSty{##1} \KwSty{#3} ##2}%\r
+}%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+% Repeat macros\r
+%\r
+\newcommand{\SetKwRepeat}[3]{%\r
+\@ifundefined{algocf@#1}{\let\algocf@mkcmd=\newcommand}{\let\algocf@mkcmd=\renewcommand}%\r
+% side text or not?\r
+\expandafter\def\csname#1\endcsname{% Repeat\r
+  \@ifnextchar({\csname algocf@#1opt\endcsname}{\csname algocf@#1\endcsname}}%\r
+\expandafter\def\csname l#1\endcsname{% lRepeat\r
+  \@ifnextchar({\csname algocf@l#1opt\endcsname}{\csname algocf@l#1\endcsname}}%\r
+% with side text\r
+\expandafter\def\csname algocf@#1opt\endcsname(##1)##2##3{% \Repeat(){}{}\r
+  \KwSty{#2} ##1\algocf@group{##3}\KwSty{#3} \ArgSty{##2}%\r
+  \@ifnextchar({\csname algocf@#1optopt\endcsname}{\@endalgoln}%\r
+}%\r
+\expandafter\def\csname algocf@#1optopt\endcsname(##1){% \Repeat(){}{}()\r
+  ##1\@endalgoln}%\r
+\expandafter\def\csname algocf@l#1opt\endcsname(##1)##2##3{% \lRepeat(){}{}\r
+  \KwSty{#2} ##3 \KwSty{#3} \ArgSty{##2}\algocf@endline\ ##1\par}%\r
+% without side text\r
+\expandafter\algocf@mkcmd\csname algocf@#1\endcsname[2]{% \Repeat{}{}\r
+  \KwSty{#2}\algocf@group{##2}\KwSty{#3} \ArgSty{##1}%\r
+  \@ifnextchar({\csname algocf@#1optopt\endcsname}{\@endalgoln}%\r
+}%\r
+\expandafter\algocf@mkcmd\csname algocf@l#1\endcsname[2]{% \lRepeat{}{}\r
+  \KwSty{#2} ##2 \KwSty{#3} \ArgSty{##1}}%\r
+}%\r
+%\r
+% \r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%%%%%%%%%%%%%%%%%%%%        Environments definitions     %%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+%%\r
+%% Caption management\r
+%%\r
+% for the following macros:\r
+% #1 is given by caption and is equal to fnum@algocf\r
+% #2 is the text given in argument by the user in the \caption macro\r
+%\r
+%%%%% text of caption\r
+\newcommand{\algocf@captionlayout}[1]{#1}%\r
+\newcommand{\SetAlgoCaptionLayout}[1]{%\r
+  \renewcommand{\algocf@captionlayout}[1]{\csname #1\endcsname{##1}}}%\r
+\newcommand{\algocf@capseparator}{:}%\r
+\newcommand{\SetAlgoCaptionSeparator}[1]{\renewcommand{\algocf@capseparator}{#1}}%\r
+\newcommand{\algocf@captiontext}[2]{%\r
+  \algocf@captionlayout{\AlCapSty{\AlCapFnt #1\algocf@typo\algocf@capseparator}\nobreakspace%\r
+    \AlCapNameSty{\AlCapNameFnt{}#2}}}% text of caption\r
+%\r
+%%%%% default caption of algorithm: used if no specific style caption is defined\r
+\newcommand{\algocf@makecaption}[2]{%\r
+  \addtolength{\hsize}{\algomargin}%\r
+  \sbox\@tempboxa{\algocf@captiontext{#1}{#2}}%\r
+  \ifdim\wd\@tempboxa >\hsize%     % if caption is longer than a line\r
+    \hskip .5\algomargin%\r
+    \parbox[t]{\hsize}{\algocf@captiontext{#1}{#2}}% then caption is not centered\r
+  \else%\r
+    \global\@minipagefalse%\r
+    \hbox to\hsize{\hfil\box\@tempboxa\hfil}% else caption is centered\r
+  \fi%\r
+  \addtolength{\hsize}{-\algomargin}%\r
+}%\r
+%\r
+\newsavebox\algocf@capbox%\r
+\newcommand{\algocf@makecaption@plain}[2]{%\r
+  \global\sbox\algocf@capbox{\algocf@makecaption{#1}{#2}}}%\r
+\newcommand{\algocf@makecaption@boxed}[2]{%\r
+  \addtolength{\hsize}{-\algomargin}%\r
+  \global\sbox\algocf@capbox{\algocf@makecaption{#1}{#2}}%\r
+  \addtolength{\hsize}{\algomargin}%\r
+ }%\r
+%\r
+\newcommand{\algocf@makecaption@tworuled}[2]{\algocf@makecaption@ruled{#1}{#2}}%\r
+\newcommand{\algocf@makecaption@algoruled}[2]{\algocf@makecaption@ruled{#1}{#2}}%\r
+\newcommand{\algocf@makecaption@boxruled}[2]{\algocf@makecaption@ruled{#1}{#2}}%\r
+\newcommand{\algocf@makecaption@ruled}[2]{%\r
+  \global\sbox\algocf@capbox{\hskip\AlCapHSkip% .5\algomargin%\r
+    \parbox[t]{\hsize}{\algocf@captiontext{#1}{#2}}}% then caption is not centered\r
+}%\r
+%\r
+\newlength{\algoheightruledefault}\setlength{\algoheightruledefault}{0.8pt}%\r
+\newlength{\algoheightrule}\setlength{\algoheightrule}{\algoheightruledefault}%\r
+\newlength{\algotitleheightruledefault}\setlength{\algotitleheightruledefault}{0.8pt}%\r
+\newlength{\algotitleheightrule}\setlength{\algotitleheightrule}{\algotitleheightruledefault}%\r
+\newcommand{\algocf@caption@plain}{\vskip\AlCapSkip\box\algocf@capbox}%\r
+\newcommand{\algocf@caption@boxed}{\vskip\AlCapSkip\box\algocf@capbox}%\r
+\newcommand{\algocf@caption@ruled}{\box\algocf@capbox\kern\interspacetitleruled\hrule  height\algotitleheightrule depth0pt\kern\interspacealgoruled}%\r
+\newcommand{\algocf@caption@tworuled}{\box\algocf@capbox\kern\interspacetitleruled}%\r
+\newcommand{\algocf@caption@algoruled}{\algocf@caption@ruled}%\r
+\newcommand{\algocf@caption@boxruled}{%\r
+  \addtolength{\hsize}{-0.8pt}%\r
+  \hbox to\hsize{%\r
+    \vrule%\hskip-0.35pt%\r
+    \vbox{%\r
+      \hrule\vskip\interspacetitleboxruled%\r
+      \hbox to\hsize{\unhbox\algocf@capbox\hfill}\vskip\interspacetitleboxruled%\r
+    }% \r
+    %\hskip-0.35pt%\r
+    \vrule%\r
+  }\nointerlineskip%\r
+  \addtolength{\hsize}{0.8pt}%\r
+}%\r
+%\r
+%\r
+%%%% set caption for the environment\r
+\newcommand{\algocf@captionref}{%\r
+  \renewcommand{\fnum@algocf}[1]{\AlCapSty{\AlCapFnt\algorithmcfname\nobreakspace\algocf@algocfref}}%\r
+  \addtocounter{algocf}{-1}% \caption do a refstepcounter, so we restore the precedent value\r
+  \let\old@thealgocf=\thealgocf\renewcommand{\thealgocf}{{\relsize{\algocf@refrelsize}\algocf@algocfref}}%\r
+  \gdef\@currentlabel{\algocf@algocfref}% let the label use the new ref\r
+}%\r
+%\r
+% Unfortunatly, we also need our own caption to set some specific stuff for special references. But after these\r
+% settings, we call the original caption.\r
+%\r
+\long\def\algocf@caption@algo#1[#2]#3{%\r
+  \ifthenelse{\equal{\algocf@algocfref}{\relax}}{}{\algocf@captionref}%\r
+  \@ifundefined{hyper@refstepcounter}{\relax}{% if hyper@refstepcounter undefind, no hyperref, else...\r
+    \ifthenelse{\equal{\algocf@algocfref}{\relax}}{\renewcommand{\theHalgocf}{\thealgocf}}{% take algocf as Href\r
+      \renewcommand{\theHalgocf}{\algocf@algocfref}}%else if SetAlgoRefName done, take this name as ref.\r
+    \hyper@refstepcounter{algocf}%set algocf as category of ref\r
+  }%\r
+  \algocf@latexcaption{#1}[#2]{#3}% call original caption\r
+}%\r
+%\r
+% beamer define is own caption overrinding latex caption!\r
+% as we need it, we have put here the original definition\r
+% to handle manual ref, unfortunately we have to add one line to handle algocf@algocfref\r
+\long\def\algocf@latexcaption#1[#2]#3{% original definition of caption\r
+  \par%\r
+  \addcontentsline{\csname ext@#1\endcsname}{#1}%\r
+  {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%\r
+  \begingroup%\r
+  \@parboxrestore%\r
+  \if@minipage%\r
+    \@setminipage%\r
+  \fi%\r
+  \normalsize%\r
+  \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par%\r
+  \endgroup%\r
+}%\r
+%\r
+% \ifx\beamer@makecaption\undefined%\r
+% \else% beamer detected\r
+\ifx\@makecaption\undefined%\r
+\newcommand{\@makecaption}[2]{\relax}%\r
+\fi%\r
+%%\r
+\r
+%\r
+% more and more packages redefine \@caption instead of just \@makecaption which makes algorithm2e\r
+% caption not works since based on standard \@caption. So we force the definition of \@caption to be\r
+% the standard one (the one from LaTeX) inside algorithm environment.\r
+%\r
+% unfortunately, makecaption is called with \ignorespace #3 so \r
+% we can't do the @currentlabel definition inside \algocf@captionproctext\r
+\long\def\algocf@caption@proc#1[#2]#3{%\r
+  \ifthenelse{\boolean{algocf@nokwfunc}}{\relax}{%\r
+    \SetKwFunction{\algocf@captname#3@}{\algocf@captname#3@}%\r
+  }%\r
+  % we tell hyperref to use algocfproc as category and to take the appropriate ref.\r
+  \ifthenelse{\boolean{algocf@func}}{\def\@proc@func{algocffunc}}{\def\@proc@func{algocfproc}}%\r
+  \@ifundefined{hyper@refstepcounter}{\relax}{% if hyper@refstepcounter undefind, no hyperref, else...\r
+    \ifthenelse{\boolean{algocf@procnumbered}}{% \r
+      \expandafter\def\csname theH\@proc@func\endcsname{\algocf@captname#3@}%if procnumbered, take \thealgocf as ref\r
+    }{%\r
+      \expandafter\def\csname theH\@proc@func\endcsname{\algocf@captname#3@}%else take procedure or function name\r
+    }%\r
+    \hyper@refstepcounter{\@proc@func}%\r
+  }%\r
+  \ifthenelse{\boolean{algocf@procnumbered}}{\relax}{%\r
+    \addtocounter{algocf}{-1}% \caption do a refstepcounter, so we restore the precedent value\r
+    \gdef\@currentlabel{\algocf@captname#3@}% let the label be the name of the function, not the counter\r
+  }%\r
+  \ifthenelse{\equal{\algocf@captparam#2@}{\arg@e}}{% if no paramater, we remove the ()\r
+    \algocf@latexcaption{#1}[\algocf@procname\nobreakspace\algocf@captname#2@]{#3}%\r
+  }{%                                                 else we give the complete name\r
+    \algocf@latexcaption{#1}[\algocf@procname\nobreakspace#2]{#3}%\r
+  }%\r
+}%\r
+%%\r
+%%% setcaption\r
+\newcommand{\algocf@setcaption}{%\r
+  \ifthenelse{\boolean{algocf@procenvironment}}{% if proc environment, caption text must be changed\r
+    \let\algocf@oldcaptiontext=\algocf@captiontext%\r
+    \renewcommand{\algocf@captiontext}[2]{%\r
+      \algocf@captionproctext{##1}{##2}%\r
+    }%\r
+  }{}%\r
+  \let\algocf@savecaption=\@caption%\r
+  \ifthenelse{\boolean{algocf@procenvironment}}{\let\@caption=\algocf@caption@proc}{\let\@caption=\algocf@caption@algo}%\r
+  \let\algocf@oldmakecaption=\@makecaption%\r
+  \renewcommand{\@makecaption}[2]{%\r
+    \expandafter\csname algocf@makecaption@\algocf@style\endcsname{##1}{##2}%\r
+  }%\r
+}%\r
+%\r
+%%%%% reset caption\r
+%\r
+% since we have force the LaTeX caption for algorithm environment, we must go back to the caption\r
+% used in the text.\r
+\newcommand{\algocf@resetcaption}{%\r
+  \ifthenelse{\boolean{algocf@procenvironment}}{% if proc environment\r
+    \let\thealgocf=\old@thealgocf% restore normal counter printing\r
+    \let\algocf@captiontext=\algocf@oldcaptiontext% restore normal caption text\r
+  }{}%\r
+  \let\@caption=\algocf@savecaption% now restore caption outside algo/proc/func environment\r
+  \let\@makecaption=\algocf@oldmakecaption% and restore makecaption outside outside algo/proc/func environment\r
+  \algocf@resetfnum%\r
+}%\r
+%\r
+%%%%% nocaptionofalgo and restorecaptionofalgo --\r
+\newcommand{\NoCaptionOfAlgo}{%\r
+  \let\@old@algocf@captiontext=\algocf@captiontext%\r
+  \renewcommand{\algocf@captiontext}[2]{\AlCapNameSty{\AlCapNameFnt{}##2}}%\r
+}%\r
+\newcommand{\RestoreCaptionOfAlgo}{%\r
+  \let\algocf@captiontext=\@old@algocf@captiontext%\r
+}%\r
+%\r
+% ----------------------  algocf environment\r
+%\r
+\newcounter{algocfline}%                    % new counter to make lines numbers be internally \r
+\setcounter{algocfline}{0}%                 % different in different algorithms\r
+\newcounter{algocfproc}% counter to count all algo environment (proc, func), just used by hyperref to avoir "same\r
+\setcounter{algocfproc}{0}% identifier" error caused by algocf being set to '-' for procedure or function or not\r
+  % changed if no caption is given.\r
+%\r
+\expandafter\ifx\csname algocf@within\endcsname\relax% if \algocf@within doesn't exist\r
+\newcounter{algocf}%                        % just define a new counter\r
+\renewcommand{\thealgocf}{\@arabic\c@algocf}% and the way it is printed\r
+\else%                                     else\r
+\newcounter{algocf}[\algocf@within]%        % counter is numbered within \algocf@within\r
+\renewcommand\thealgocf{\csname the\algocf@within\endcsname.\@arabic\c@algocf}%\r
+\fi%\r
+%\r
+\def\fps@algocf{htbp}%        % default\r
+\def\ftype@algocf{10}%        % float type\r
+\def\ext@algocf{\algocf@list} % loa by default, lof if figure option used\r
+\newcommand{\fnum@algocf}[1]{\AlCapSty{\AlCapFnt\algorithmcfname\nobreakspace\thealgocf}}%\r
+\newcommand{\algocf@resetfnum}{\renewcommand{\fnum@algocf}[1]{\AlCapSty{\AlCapFnt\algorithmcfname\nobreakspace\thealgocf}}}%\r
+\newenvironment{algocf}%      % float environment for algorithms\r
+               {\@float{algocf}}%\r
+               {\end@float}%\r
+\newenvironment{algocf*}%     % float* environment for algorithms\r
+               {\@dblfloat{algocf}}%\r
+               {\end@dblfloat}%\r
+%\r
+\def\algocf@seclistalgo{}%\r
+\ifx\l@chapter\undefined\let\algocf@seclistalgo=\section\else\let\algocf@seclistalgo=\chapter\fi%\r
+\@ifundefined{if@restonecol}{\newif\if@restonecol}\relax%\r
+\newcommand\listofalgocfs{%\r
+     \ifx\algocf@seclistalgo\chapter%\r
+      \if@twocolumn\@restonecoltrue\onecolumn\else\@restonecolfalse\fi%\r
+    \fi%\r
+     \algocf@seclistalgo*{\listalgorithmcfname}%\r
+       \@mkboth{\MakeUppercase\listalgorithmcfname}%\r
+               {\MakeUppercase\listalgorithmcfname}%\r
+     \@starttoc{loa}%\r
+    \ifx\algocf@seclistalgo\chapter%\r
+      \if@restonecol\twocolumn\fi%\r
+    \fi%\r
+}\r
+%\r
+\newcommand*\l@algocf{\@dottedtocline{1}{1em}{2.3em}}% line of the list\r
+%\r
+% ----------------------  algorithm environment\r
+%\r
+%%%%%%%\r
+%%\r
+%% Algorithm environment definition\r
+%%\r
+%%%%%%%\r
+%%\r
+%\r
+\newsavebox\algocf@algoframe%\r
+\def\@algocf@pre@plain{\relax}%  action to be done before printing the algo.\r
+\def\@algocf@post@plain{\relax}% action to be done after printing the algo.\r
+\def\@algocf@capt@plain{bottom}% where the caption should be localized.\r
+\def\@algocf@pre@boxed{\noindent\begin{lrbox}{\algocf@algoframe}}\r
+\def\@algocf@post@boxed{\end{lrbox}\framebox[\hsize]{\box\algocf@algoframe}\par}%\r
+\def\@algocf@capt@boxed{under}%\r
+\def\@algocf@pre@ruled{\hrule height\algoheightrule depth0pt\kern\interspacetitleruled}%\r
+\def\@algocf@post@ruled{\kern\interspacealgoruled\hrule height\algoheightrule\relax}%\r
+\def\@algocf@capt@ruled{top}%\r
+\def\@algocf@pre@algoruled{\hrule height\algoheightrule depth0pt\kern\interspacetitleruled}%\r
+\def\@algocf@post@algoruled{\kern\interspacealgoruled\hrule height\algoheightrule \relax}%\r
+\def\@algocf@capt@algoruled{top}%\r
+\def\@algocf@pre@tworuled{\hrule height\algoheightrule depth0pt\kern\interspacetitleruled}%\r
+\def\@algocf@post@tworuled{\kern\interspacealgoruled\hrule height\algoheightrule\relax}%\r
+\def\@algocf@capt@tworuled{top}%\r
+\def\@algocf@pre@boxruled{\noindent\begin{lrbox}{\algocf@algoframe}}%\r
+\def\@algocf@post@boxruled{\end{lrbox}\framebox[\hsize]{\box\algocf@algoframe}\par}%\r
+\def\@algocf@capt@boxruled{above}%\r
+%\r
+\newcommand{\noalgocaption}{\def\@algocf@capt@ruled{none}}\r
+%\r
+%% before algocf or figure environment\r
+\newcommand{\@algocf@init@caption}{%\r
+  \ifthenelse{\boolean{algocf@procenvironment}}{% if we are inside a procedure/function environment\r
+    \@algocf@proctitleofalgo% set Titleofalgo to Procedure: or Function:\r
+                            % accordingly to the environment\r
+    \let\old@thealgocf=\thealgocf\ifthenelse{\boolean{algocf@procnumbered}}{\relax}{%\r
+      \renewcommand{\thealgocf}{-}}%\r
+  }{% else inside environment algorithm\r
+    \@algocf@algotitleofalgo% fix name for \Titleofalgo to \algorithmcfname\r
+  }%\r
+  \algocf@setcaption%       set caption to our caption style\r
+}%\r
+%\r
+\newcommand{\@algofloatboxreset}{\@setminipage}\r
+\newcommand{\@algocf@init}{%\r
+  \refstepcounter{algocfline}%\r
+  \stepcounter{algocfproc}%to have a different counter for each environment and being abble to make the difference\r
+    %between href of algoline in different algorithms.\r
+  \ifthenelse{\boolean{algocf@optnoend}}{%\r
+      \renewcommand{\algocf@block}[2]{\algocf@group{##1}}%\r
+    }{%\r
+      \renewcommand{\algocf@block}[2]{\algocf@@block{##1}{##2}}%\r
+    }%\r
+}%\r
+%% after the end of algocf or figure environment\r
+\newcommand{\@algocf@term@caption}{%\r
+  \algocf@resetcaption% restore original caption\r
+}%\r
+%\r
+\newcommand{\@algocf@term}{%\r
+  \setboolean{algocf@algoH}{false}% no H by default\r
+  \ifthenelse{\boolean{algocf@optnoend}}{%\r
+    \renewcommand{\algocf@block}[2]{\algocf@@block{##1}{##2}}%\r
+  }{%\r
+    \renewcommand{\algocf@block}[2]{\algocf@group{##1}}%\r
+  }%\r
+  \SetAlgoRefName{\relax}%\r
+}%\r
+%\r
+%%%%%%%%%%%%%%%%%\r
+%% makethealgo: macro which print effectively the algo in its box\r
+%% \r
+\newsavebox\algocf@algobox%\r
+\newcommand{\algocf@makethealgo}{%\r
+  \vtop{%\r
+    % place caption above if needed  bye the style\r
+    \ifthenelse{\equal{\csname @algocf@capt@\algocf@style\endcsname}{above}}%\r
+    {\csname algocf@caption@\algocf@style\endcsname}{}%\r
+    %\r
+    % precommand according to the style\r
+    \csname @algocf@pre@\algocf@style\endcsname%\r
+    % place caption at top if needed  bye the style\r
+     \ifthenelse{\equal{\csname @algocf@capt@\algocf@style\endcsname}{top}}%\r
+     {\csname algocf@caption@\algocf@style\endcsname}{}%\r
+    %\r
+    \box\algocf@algobox% the algo\r
+    % place caption at bottom if needed  bye the style\r
+     \ifthenelse{\equal{\csname @algocf@capt@\algocf@style\endcsname}{bottom}}%\r
+     {\csname algocf@caption@\algocf@style\endcsname}{}%\r
+    % postcommand according to the style\r
+    \csname @algocf@post@\algocf@style\endcsname%\r
+    % place caption under if needed  bye the style\r
+     \ifthenelse{\equal{\csname @algocf@capt@\algocf@style\endcsname}{under}}%\r
+     {\csname algocf@caption@\algocf@style\endcsname}{}%\r
+  }%\r
+}%\r
+%%%%%%%%%%%%%%%%%%%\r
+%\r
+%% at the beginning of algocf or figure environment\r
+\newcommand{\@algocf@start}{%\r
+  \@algoskip%\r
+  \begin{lrbox}{\algocf@algobox}%\r
+  \setlength{\algowidth}{\hsize}%\r
+  \vbox\bgroup% save all the algo in a box\r
+  \hbox to\algowidth\bgroup\hbox to \algomargin{\hfill}\vtop\bgroup%\r
+  \ifthenelse{\boolean{algocf@slide}}{\parskip 0.5ex\color{black}}{}%\r
+  % initialization\r
+  \addtolength{\hsize}{-1.5\algomargin}%\r
+  \let\@mathsemicolon=\;\def\;{\ifmmode\@mathsemicolon\else\@endalgoln\fi}%\r
+  \raggedright\AlFnt{}%\r
+  \ifthenelse{\boolean{algocf@slide}}{\IncMargin{\skipalgocfslide}}{}%\r
+  \@algoinsideskip%\r
+}%\r
+%\r
+%% at the end of algocf or figure environment\r
+\newcommand{\@algocf@finish}{%\r
+  \@algoinsideskip%\r
+  \egroup%end of vtop which contain all the text\r
+  \hfill\egroup%end of hbox wich contains [margin][vtop]\r
+  \ifthenelse{\boolean{algocf@slide}}{\DecMargin{\skipalgocfslide}}{}%\r
+  %\r
+  \egroup%end of main vbox\r
+  \end{lrbox}%\r
+  \algocf@makethealgo% print the algo\r
+  \@algoskip%\r
+  % restore dimension and macros\r
+  \setlength{\hsize}{\algowidth}%\r
+  \lineskip\normallineskip\setlength{\skiptotal}{\@defaultskiptotal}%\r
+  \let\;=\@mathsemicolon%  \r
+}%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%\r
+%% basic definition of the environment algorithm\r
+%%\r
+%\r
+\newboolean{algocf@procenvironment}\setboolean{algocf@procenvironment}{false}%\r
+\newboolean{algocf@func}\setboolean{algocf@func}{false}%\r
+\newboolean{algocf@algoH}\setboolean{algocf@algoH}{false}%\r
+\newboolean{algocf@algostar}\setboolean{algocf@algostar}{false}%\r
+%\r
+%%% environment for {algorithm}[H]\r
+\newenvironment{algocf@Here}{\noindent%\r
+  \def\@captype{algocf}% if not defined, caption exit with an error\r
+  \begin{minipage}{\hsize}%\r
+}{%\r
+  \end{minipage}%\par%\r
+}%\r
+%%% real algorithm environment which manages H and * option\r
+%    \let\algocf@originalfloatboxreset=\@floatboxreset%\r
+%    \let\@floatboxreset=\@algofloatboxreset%\r
+\newenvironment{algocf@algorithm}[1][htbp]{\r
+   \@algocf@init%\r
+   \ifthenelse{\equal{\algocf@float}{figure}}{% if option figure set\r
+     \ifthenelse{\boolean{algocf@algostar}}{% if algorithm* with figure option\r
+       \begin{figure*}[#1]% call figure*\r
+     }{% else algorithm environment with figure option\r
+       \begin{figure}[#1]%  call figure\r
+     }%\r
+   }{% else normal algorithm environment\r
+     \@algocf@init@caption%\r
+     \ifthenelse{\equal{#1}{H}}{% if [H] algorithm\r
+       \if@twocolumn\@latex@error{[H] in two columns mode is not allowed for algorithms}\fi% TODO: SCREAM if H in two colums!\r
+       \setboolean{algocf@algoH}{true}\begin{algocf@Here}% call corresponding environment\r
+     }{% else floating algorithm environment\r
+       \ifthenelse{\boolean{algocf@algostar}}{% if algorithm*\r
+         \begin{algocf*}[#1]% call algocf*\r
+       }{% else algorithm environment\r
+         \begin{algocf}[#1]%  call algcf\r
+       }%\r
+     }%\r
+   }% fin test option figure ou pas\r
+   \@algocf@start% \r
+   \@ResetCounterIfNeeded%\r
+   \algocf@linesnumbered\ignorespaces%\r
+}{%\r
+  \@algocf@finish%\r
+  \ifthenelse{\equal{\algocf@float}{figure}}{%\r
+     \ifthenelse{\boolean{algocf@algostar}}{% if algorithm* with figure option\r
+       \end{figure*}% call figure*\r
+     }{% else algorithm environment with figure option\r
+       \end{figure}%  call figure\r
+     }%\r
+  }{%\r
+    \@algocf@term@caption%\r
+    \ifthenelse{\boolean{algocf@algoH}}{% if [H] algorithm\r
+       \end{algocf@Here}\par% call corresponding environment\r
+     }{% else floating algorithm environment\r
+       \ifthenelse{\boolean{algocf@algostar}}{% if algorithm*\r
+         \end{algocf*}% call algocf*\r
+       }{% else algorithm environment\r
+         \end{algocf}%  call algocf\r
+       }%\r
+     }%\r
+  }%\r
+  \@algocf@term\ignorespacesafterend%\r
+}%\r
+%\r
+%%% user algorithm environment\r
+\newenvironment{\algocf@envname}[1][htbp]{%\r
+  \setboolean{algocf@algostar}{false}%\r
+  \setboolean{algocf@procenvironment}{false}\gdef\algocfautorefname{\algorithmautorefname}%\r
+  \begin{algocf@algorithm}[#1]\ignorespaces%\r
+}{%\r
+  \end{algocf@algorithm}\ignorespacesafterend%\r
+}%\r
+%%% user algorithm* environment\r
+\newenvironment{\algocf@envname*}[1][htbp]{%\r
+  \setboolean{algocf@algostar}{true}%\r
+  \setboolean{algocf@procenvironment}{false}\gdef\algocfautorefname{\algorithmautorefname}%\r
+  \begin{algocf@algorithm}[#1]\ignorespaces%\r
+}{%\r
+  \end{algocf@algorithm}\ignorespacesafterend%\r
+}%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%\r
+%%%\r
+%\r
+\expandafter\newcommand\csname\algocf@listofalgorithms\endcsname{%\r
+  \ifthenelse{\equal{\algocf@float}{figure}}{\listoffigures}{\listofalgocfs}%\r
+}%\r
+%%%\r
+%%%\r
+%\r
+% ----------------------  procedure and function environments\r
+%\r
+%\r
+% -- new style (used in particular in the caption of function and procedure environments)\r
+%\r
+% three macros to extract parts of the caption\r
+\gdef\algocf@captname#1(#2)#3@{#1}  % keep characters before the first brace\r
+\gdef\algocf@captparam#1(#2)#3@{#2} % keep character in between the braces\r
+\gdef\algocf@captother#1(#2)#3@{#3} % keep character after the braces\r
+%\r
+%%% Text of caption for Procedure or Function\r
+\newcommand{\algocf@captionproctext}[2]{%\r
+  {%\r
+    \ProcSty{\ProcFnt\algocf@procname\ifthenelse{\boolean{algocf@procnumbered}}{\nobreakspace\thealgocf\algocf@typo\algocf@capseparator}{\relax}}%\r
+    \nobreakspace\ProcNameSty{\ProcNameFnt\algocf@captname #2@}% Name of the procedure in ProcName Style. \r
+    \ifthenelse{\equal{\algocf@captparam #2@}{\arg@e}}{}{% if no argument, write nothing\r
+      \ProcNameSty{\ProcNameFnt(}\ProcArgSty{\ProcArgFnt\algocf@captparam #2@}\ProcNameSty{\ProcNameFnt)}%else put arguments in ProcArgSty:\r
+    }% endif\r
+    \algocf@captother #2@%\r
+  }%\r
+}%\r
+%\r
+%\r
+% -- procedure and function environments are defined from algocf@algorithm environment\r
+%\r
+\newenvironment{procedure}[1][htbp]{%\r
+  \setboolean{algocf@algostar}{false}%\r
+  \setboolean{algocf@procenvironment}{true}\setboolean{algocf@func}{false}%\r
+  \newcommand{\algocf@procname}{\@algocf@procname}\gdef\algocfprocautorefname{\procedureautorefname}%\r
+  \begin{algocf@algorithm}[#1]\ignorespaces%\r
+}{%\r
+  \end{algocf@algorithm}\ignorespacesafterend%\r
+}%\r
+\newenvironment{function}[1][htbp]{%\r
+  \setboolean{algocf@algostar}{false}%\r
+  \setboolean{algocf@procenvironment}{true}\setboolean{algocf@func}{true}%\r
+  \newcommand{\algocf@procname}{\@algocf@funcname}\gdef\algocffuncautorefname{\functionautorefname}%\r
+  \begin{algocf@algorithm}[#1]\ignorespaces%\r
+}{%\r
+  \end{algocf@algorithm}\ignorespacesafterend%\r
+}%\r
+%\r
+\newenvironment{procedure*}[1][htbp]{%\r
+  \setboolean{algocf@algostar}{true}%\r
+  \setboolean{algocf@procenvironment}{true}\setboolean{algocf@func}{false}%\r
+  \newcommand{\algocf@procname}{\@algocf@procname}\gdef\algocfprocautorefname{\procedureautorefname}%\r
+  \begin{algocf@algorithm}[#1]\ignorespaces%\r
+}{%\r
+  \end{algocf@algorithm}\ignorespacesafterend%\r
+}%\r
+\newenvironment{function*}[1][htbp]{%\r
+  \setboolean{algocf@algostar}{true}%\r
+  \setboolean{algocf@procenvironment}{true}\setboolean{algocf@func}{true}%\r
+  \newcommand{\algocf@procname}{\@algocf@funcname}\gdef\algocffuncautorefname{\functionautorefname}%\r
+  \begin{algocf@algorithm}[#1]\ignorespaces%\r
+}{%\r
+  \end{algocf@algorithm}\ignorespacesafterend%\r
+}%\r
+%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%\r
+%% definition of algondfloat environment\r
+%%\r
+\ifthenelse{\boolean{algocf@endfloat}}{% if endfloat option then\r
+\newcommand{\algoplace}{% macro which is used to writhe algorithm about there\r
+   \begin{center}%\r
+     [\algorithmcfname~\thepostfig\ about here.]%\r
+   \end{center}%\r
+}%\r
+\newcommand{\algoendfloat}{% use as a \begin{algoendfloat} environment to start scanning of line\r
+%  \immediate\openout\@mainfff\jobname.fff%\r
+  \efloat@condopen{fff}\r
+  \efloat@iwrite{fff}{\string\begin{\algocf@envname}}%\r
+    \if@domarkers%\r
+       \ifthenelse{\equal{\algocf@list}{lof}}{%\r
+         \addtocounter{postfig}{1}%\r
+       }{%\r
+         \addtocounter{postalgo}{1}%\r
+       }%\r
+       \algoplace%\r
+    \fi%\r
+    \bgroup%\r
+    \let\do\ef@makeinnocent\dospecials%\r
+    \ef@makeinnocent\^^L% and whatever other special cases\r
+    \endlinechar`\^^M \catcode`\^^M=12 \ef@xalgocfendfloat}%\r
+}{\relax}%%%% end of endfloat option ifthenelse\r
+%% some macros useful for endfloat option that cannot be defined inside the ifthenelse\r
+%scan algoendfloat algorithm and write the text into .fff file\r
+{\catcode`\^^M=12 \endlinechar=-1 %\r
+ \gdef\ef@xalgocfendfloat#1^^M{% scan the lines inside algoendfloat environment being read by latex\r
+   \def\test{#1}% test is the line being currently scan by latex\r
+   \ifx\test\ef@endalgocftest% if it is \end{algoendfloat}\r
+     \def\next{% define next as to not continue the scan and write \end{algorithm} into .fff file\r
+       \egroup\end{algoendfloat}%\r
+       \efloat@iwrite{fff}{\string\end{\algocf@envname}}%\r
+       \efloat@iwrite{fff}{\string\efloatseparator}%\r
+       \efloat@iwrite{fff}{ }%\r
+     }%\r
+     \else% else write the current line being scanned by latex and set next to continue the scan\r
+       \efloat@iwrite{fff}{#1}%\r
+       \let\next\ef@xalgocfendfloat%\r
+     \fi% endif\r
+     \next}% next is continue if it was else condition, else it does not continue the scan and write end to file\r
+}%\r
+% test if the scan is finish by looking at the string \end{algoendfloat}\r
+{\escapechar=-1%\r
+ \xdef\ef@endalgocftest{\string\\end\string\{algoendfloat\string\}}%\r
+}%\r
+%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+% \r
+\newcommand{\TitleOfAlgo}[1]{\@titleprefix\ \r
+  \TitleSty{#1}\par\smallskip}%\r
+%\r
+\newcommand{\SetAlgorithmName}[3]{%\r
+  \renewcommand{\listalgorithmcfname}{#3}%\r
+  \renewcommand{\algorithmcfname}{#1}%\r
+  \renewcommand{\algorithmautorefname}{#2}%\r
+}%\r
+%\r
+\newcommand{\algocf@refrelsize}{-2}\newcommand{\SetAlgoRefRelativeSize}[1]{\renewcommand{\algocf@refrelsize}{#1}}%\r
+\newcommand{\SetAlgoRefName}[1]{%\r
+  \renewcommand{\algocf@algocfref}{#1}%\r
+}%\r
+%\r
+%\r
+%\r
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\r
+%\r
+% \r
+% -------------------------   Default Definitions\r
+%\r
+%%\r
+%%\r
+%\r
+\SetKwComment{tcc}{/* }{ */}%\r
+\SetKwComment{tcp}{// }{}%\r
+%\r
+%\newcommand{\algocf@defaults@common}{\r
+%\r
+%\r
+% french keywords\r
+%\r
+%\SetKwInOut{AlgDonnees}{Donn\'ees}\SetKwInOut{AlgRes}{R\'esultat}\r
+\SetKwInput{Donnees}{Donn\'ees}%\r
+\SetKwInput{Res}{R\'esultat}%\r
+\SetKwInput{Entree}{Entr\'ees}%\r
+\SetKwInput{Sortie}{Sorties}%\r
+\SetKw{KwA}{\`a}%\r
+\SetKw{Retour}{retourner}%\r
+\SetKwBlock{Deb}{d\'ebut}{fin}%\r
+\SetKwRepeat{Repeter}{r\'ep\'eter}{jusqu'\`a}%\r
+%\r
+\SetKwIF{Si}{SinonSi}{Sinon}{si}{alors}{sinon si}{sinon}{fin si}%\r
+\SetKwSwitch{Suivant}{Cas}{Autre}{suivant}{faire}{cas o\`u}{autres cas}{fin d'alternative}%\r
+\SetKwFor{Pour}{pour}{faire}{fin pour}%\r
+\SetKwFor{PourPar}{pour}{faire en parallèle}{fin pour}%\r
+\SetKwFor{PourCh}{pour chaque}{faire}{fin pour chaque}%\r
+\SetKwFor{PourTous}{pour tous les}{faire}{fin pour tous}%\r
+\SetKwFor{Tq}{tant que}{faire}{fin tq}%\r
+%\r
+% english keywords\r
+%\r
+\SetKwInput{KwIn}{Input}%\r
+\SetKwInput{KwOut}{Output}%\r
+\SetKwInput{KwData}{Data}%\r
+\SetKwInput{KwResult}{Result}%\r
+\SetKw{KwTo}{to}\r
+\SetKw{KwRet}{return}%\r
+\SetKw{Return}{return}%\r
+\SetKwBlock{Begin}{begin}{end}%\r
+\SetKwRepeat{Repeat}{repeat}{until}%\r
+%\r
+\SetKwIF{If}{ElseIf}{Else}{if}{then}{else if}{else}{end if}%\r
+\SetKwSwitch{Switch}{Case}{Other}{switch}{do}{case}{otherwise}{end switch}%\r
+\SetKwFor{For}{for}{do}{end for}%\r
+\SetKwFor{ForPar}{for}{do in parallel}{end forpar}\r
+\SetKwFor{ForEach}{foreach}{do}{end foreach}%\r
+\SetKwFor{ForAll}{forall the}{do}{end forall}%\r
+\SetKwFor{While}{while}{do}{end while}%\r
+%\r
+% --- German keywords\r
+%\r
+\SetKwInput{Ein}{Eingabe}%KwIn\r
+\SetKwInput{Aus}{Ausgabe}%KwOut\r
+\SetKwInput{Daten}{Daten}%KwData\r
+\SetKwInput{Ergebnis}{Ergebnis}%KwResult\r
+\SetKw{Bis}{bis}%KwTo\r
+\SetKw{KwZurueck}{zur\"uck}%KwRet\r
+\SetKw{Zurueck}{zur\"uck}%Return\r
+\SetKwBlock{Beginn}{Beginn}{Ende}%Begin\r
+\SetKwRepeat{Wiederh}{wiederhole}{bis}%Repeat\r
+%\r
+\SetKwIF{Wenn}{SonstWenn}{Sonst}{wenn}{dann}{sonst wenn}{sonst}{Ende wenn}%gIf\r
+\SetKwSwitch{Unterscheide}{Fall}{Anderes}{unterscheide}{tue}{Fall}{sonst}{Ende Unt.}%Switch\r
+\SetKwFor{Fuer}{f\"ur}{tue}{Ende f\"ur}%For\r
+\SetKwFor{FuerPar}{f\"ur}{tue gleichzeitig}{Ende gleichzeitig}%ForPar\r
+\SetKwFor{FuerJedes}{f\"ur jedes}{tue}{Ende f\"ur}%ForEach\r
+\SetKwFor{FuerAlle}{f\"ur alle}{tue}{Ende f\"ur}%ForAll\r
+\SetKwFor{Solange}{solange}{tue}{Ende solange}%While\r
+%\r
+% --- Czech keywords\r
+%\r
+\SetKwInput{Vst}{Vstup}%\r
+\SetKwInput{Vyst}{V\'{y}stup}%\r
+\SetKwInput{Vysl}{V\'{y}sledek}%\r
+%\r
+% --- Portuguese keywords\r
+%\r
+\SetKwInput{Entrada}{Entrada}%\r
+\SetKwInput{Saida}{Sa\'{i}da}%\r
+\SetKwInput{Dados}{Dados}%\r
+\SetKwInput{Resultado}{Resultado}%\r
+\SetKw{Ate}{at\'{e}}\r
+\SetKw{KwRetorna}{retorna}%\r
+\SetKw{Retorna}{retorna}%\r
+\SetKwBlock{Inicio}{in\'{i}cio}{fim}%\r
+\SetKwRepeat{Repita}{repita}{at\'{e}}%\r
+%\r
+\SetKwIF{Se}{SenaoSe}{Senao}{se}{ent\~{a}o}{sen\~{a}o se}{sen\~{a}o}{fim se}%\r
+\SetKwSwitch{Selec}{Caso}{Outro}{selecione}{fa\c{c}a}{caso}{sen\~{a}o}{fim selec}%\r
+\SetKwFor{Para}{para}{fa\c{c}a}{fim para}%\r
+\SetKwFor{ParaPar}{para}{fa\c{c}a em paralelo}{fim para}\r
+\SetKwFor{ParaCada}{para cada}{fa\c{c}a}{fim para cada}%\r
+\SetKwFor{ParaTodo}{para todo}{fa\c{c}a}{fim para todo}%\r
+\SetKwFor{Enqto}{enquanto}{fa\c{c}a}{fim enqto}%\r
+%\r
+% --- Italian keywords\r
+%\r
+\SetKwInput{KwIng}{Ingresso}%\r
+\SetKwInput{KwUsc}{Uscita}%\r
+\SetKwInput{KwDati}{Dati}%\r
+\SetKwInput{KwRisult}{Risultato}%\r
+\SetKw{KwA}{a}%\r
+\SetKw{KwRitorna}{ritorna}%\r
+\SetKw{Ritorna}{ritorna}%\r
+\SetKwBlock{Inizio}{inizio}{fine}%\r
+\SetKwRepeat{Ripeti}{ripeti}{finché}%\r
+%\r
+\SetKwIF{Sea}{AltSe}{Altrimenti}{se}{allora}{altrimenti se}{allora}{fine se}%\r
+\SetKwSwitch{Switch}{Case}{Other}{switch}{do}{case}{otherwise}{endsw}%\r
+\SetKwFor{Per}{per}{fai}{fine per}%\r
+\SetKwFor{PerPar}{per}{fai in parallelo}{fine per}%\r
+\SetKwFor{PerCiascun}{per ciascun}{fai}{fine per ciascun}%\r
+\SetKwFor{PerTutti}{per tutti i}{fai}{fine per tutti}%\r
+\SetKwFor{Finche}{finché}{fai}{fine finché}%\r
+%\r
+% --- End \r
+%}\r
+%\r
+%\algocf@defaults@common\r
+%\r
+% option onelanguage redefinition\r
+%\r
+\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{french}}{%\r
+\SetKwInput{KwIn}{Entr\'ees}%\r
+\SetKwInput{KwOutSortie}{Sorties}%\r
+\SetKwInput{KwData}{Donn\'ees}%\r
+\SetKwInput{KwResult}{R\'esultat}%\r
+\SetKw{KwTo}{\`a}%\r
+\SetKw{KwRet}{retourner}%\r
+\SetKw{Return}{retourner}%\r
+\SetKwBlock{Begin}{d\'ebut}{fin}%\r
+\SetKwRepeat{Repeat}{r\'ep\'eter}{jusqu'\`a}%\r
+%\r
+\SetKwIF{If}{ElseIf}{Else}{si}{alors}{sinon si}{sinon}{fin si}%\r
+\SetKwSwitch{Switch}{Case}{Other}{suivant}{faire}{cas o\`u}{autres cas}{fin d'alternative}%\r
+\SetKwFor{For}{pour}{faire}{fin pour}%\r
+\SetKwFor{ForPar}{pour}{faire en parallèle}{fin pour}%\r
+\SetKwFor{ForEach}{pour chaque}{faire}{fin pour chaque}%\r
+\SetKwFor{ForAll}{pour tous les}{faire}{fin pour tous}%\r
+\SetKwFor{While}{tant que}{faire}{fin tq}%\r
+}{}%\r
+\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{german}}{%\r
+\SetKwInput{KwIn}{Eingabe}%KwIn\r
+\SetKwInput{KwOut}{Ausgabe}%KwOut\r
+\SetKwInput{KwData}{Daten}%KwData\r
+\SetKwInput{KwResult}{Ergebnis}%KwResult\r
+\SetKw{KwTo}{bis}%KwTo\r
+\SetKw{KwRet}{zur\"uck}%KwRet\r
+\SetKw{Return}{zur\"uck}%Return\r
+\SetKwBlock{Begin}{Beginn}{Ende}%Begin\r
+\SetKwRepeat{Repeat}{wiederhole}{bis}%Repeat\r
+%\r
+\SetKwIF{If}{ElseIf}{Else}{wenn}{dann}{sonst wenn}{sonst}{Ende wenn}%gIf\r
+\SetKwSwitch{Switch}{Case}{Other}{unterscheide}{tue}{Fall}{sonst}{Ende Unt.}%Switch\r
+\SetKwFor{For}{f\"ur}{tue}{Ende f\"ur}%For\r
+\SetKwFor{ForPar}{f\"ur}{tue gleichzeitig}{Ende gleichzeitig}%ForPar\r
+\SetKwFor{ForEach}{f\"ur jedes}{tue}{Ende f\"ur}%ForEach\r
+\SetKwFor{ForAll}{f\"ur alle}{tue}{Ende f\"ur}%ForAll\r
+\SetKwFor{While}{solange}{tue}{Ende solange}%While\r
+}{}%\r
+\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{portugues}}{%\r
+\SetKwInput{KwIn}{Entrada}%\r
+\SetKwInput{KwOut}{Sa\'{i}da}%\r
+\SetKwInput{KwData}{Dados}%\r
+\SetKwInput{KwResult}{Resultado}%\r
+\SetKw{KwTo}{at\'{e}}\r
+\SetKw{KwRet}{retorna}%\r
+\SetKw{Return}{retorna}%\r
+\SetKwBlock{Begin}{in\'{i}cio}{fim}%\r
+\SetKwRepeat{Repeat}{repita}{at\'{e}}%\r
+%\r
+\SetKwIF{If}{ElseIf}{Else}{se}{ent\~{a}o}{sen\~{a}o se}{sen\~{a}o}{fim se}%\r
+\SetKwSwitch{Switch}{Case}{Other}{selecione}{fa\c{c}a}{caso}{sen\~{a}o}{fim selec}%\r
+\SetKwFor{For}{para}{fa\c{c}a}{fim para}%\r
+\SetKwFor{ForPar}{para}{fa\c{c}a em paralelo}{fim para}\r
+\SetKwFor{ForEach}{para cada}{fa\c{c}a}{fim para cada}%\r
+\SetKwFor{ForAll}{para todo}{fa\c{c}a}{fim para todo}%\r
+\SetKwFor{While}{enquanto}{fa\c{c}a}{fim enqto}%\r
+}{}%\r
+\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{italiano}}{%\r
+\SetKwInput{KwIn}{Ingresso}%\r
+\SetKwInput{KwOut}{Uscita}%\r
+\SetKwInput{KwData}{Dati}%\r
+\SetKwInput{KwResult}{Risultato}%\r
+\SetKw{KwTo}{a}%\r
+\SetKw{KwRet}{ritorna}%\r
+\SetKw{Return}{ritorna}%\r
+\SetKwBlock{Begin}{inizio}{fine}%\r
+\SetKwRepeat{Repeat}{ripeti}{finché}%\r
+%\r
+\SetKwIF{If}{ElseIf}{Else}{se}{allora}{altrimenti se}{allora}{fine se}%\r
+\SetKwSwitch{Switch}{Case}{Other}{switch}{do}{case}{otherwise}{endsw}%\r
+\SetKwFor{For}{per}{fai}{fine per}%\r
+\SetKwFor{ForPar}{per}{fai in parallelo}{fine per}%\r
+\SetKwFor{ForEach}{per ciascun}{fai}{fine per ciascun}%\r
+\SetKwFor{ForAll}{per tutti i}{fai}{fine per tutti}%\r
+\SetKwFor{While}{finché}{fai}{fine finché}%\r
+}{}%\r
+%\r
+%%%% old commands compatibility\r
+%\r
+\ifthenelse{\boolean{algocf@oldcommands}}{%\r
+\newcommand{\SetNoLine}{\SetAlgoNoLine}%\r
+\newcommand{\SetVline}{\SetAlgoVlined}%\r
+\newcommand{\SetLine}{\SetAlgoLined}%\r
+%\r
+\newcommand{\dontprintsemicolon}{\DontPrintSemicolon}%\r
+\newcommand{\printsemicolon}{\PrintSemicolon}%\r
+\newcommand{\incmargin}[1]{\IncMargin{#1}}%\r
+\newcommand{\decmargin}[1]{\DecMargin{-#1}}%\r
+\newcommand{\setnlskip}[1]{\SetNlSkip{#1}}%\r
+\newcommand{\Setnlskip}[1]{\SetNlSkip{#1}}%\r
+\newcommand{\setalcapskip}[1]{\SetAlCapSkip{#1}}%\r
+\newcommand{\setalcaphskip}[1]{\SetAlCapHSkip{#1}}%\r
+\newcommand{\nlSty}[1]{\NlSty{#1}}%\r
+\newcommand{\Setnlsty}[3]{\SetNlSty{#1}{#2}{#3}}%\r
+\newcommand{\linesnumbered}{\LinesNumbered}%\r
+\newcommand{\linesnotnumbered}{\LinesNotNumbered}%\r
+\newcommand{\linesnumberedhidden}{\LinesNumberedHidden}%\r
+\newcommand{\showln}{\ShowLn}%\r
+\newcommand{\showlnlabel}[1]{\ShowLnLabel{#1}}%\r
+\newcommand{\nocaptionofalgo}{\NoCaptionOfAlgo}%\r
+\newcommand{\restorecaptionofalgo}{\RestoreCaptionOfAlgo}%\r
+\newcommand{\restylealgo}[1]{\RestyleAlgo{#1}}%\r
+%\r
+\newcommand{\Titleofalgo}[1]{\TitleOfAlgo{#1}}%\r
+\SetKwIF{gSi}{gSinonSi}{gSinon}{si}{alors}{sinon si}{sinon}{fin si}%\r
+\SetKwIF{gIf}{gElsIf}{gElse}{if}{then}{else if}{else}{end if}%\r
+\SetKwIF{gIf}{gElseIf}{gElse}{if}{then}{else if}{else}{end if}%\r
+\SetKwIF{gWenn}{gSonstWenn}{gSonst}{wenn}{dann}{sonst wenn}{sonst}{Ende wenn}%gIf\r
+\SetKwIF{gSe}{gSenaoSe}{gSenao}{se}{ent\~{a}o}{sen\~{a}o se}{sen\~{a}o}{fim se}%\r
+\SetKwIF{gSea}{gAltSe}{gAltrimenti}{se}{allora}{altrimenti se}{allora}{fine se}%\r
+}{%\r
+  \relax%\r
+}%\r
+%\r
+%\r
+%\r
+%%\r
+%%%\r
+%%%% END
\ No newline at end of file
diff --git a/url.sty b/url.sty
new file mode 100644 (file)
index 0000000..30baf53
--- /dev/null
+++ b/url.sty
@@ -0,0 +1,490 @@
+% url.sty  ver 3.3    12-Apr-2006   Donald Arseneau   asnd@triumf.ca
+% Copyright 1996-2006 Donald Arseneau,  Vancouver, Canada.
+% This program can be used, distributed, and modified under the terms
+% of the LaTeX Project Public License.
+%
+% A form of \verb that allows linebreaks at certain characters or
+% combinations of characters, accepts reconfiguration, and can usually
+% be used in the argument to another command.  It is intended for email
+% addresses, hypertext links, directories/paths, etc., which normally
+% have no spaces.  The font may be selected using the \urlstyle command,
+% and new url-like commands can be defined using \urldef.
+%
+% Usage:    Conditions:
+% \url{ }   If the argument contains any "%" or "^^", or ends with
+%           "\", it can't be used in the argument to another command.
+%           The argument must not contain unbalanced braces.
+% \url|  |  ...where "|" is any character not used in the argument and not
+%           "{" or a space.  The same restrictions as above except that the
+%           argument may contain unbalanced braces.
+% \urldef\xyz\url{ }
+% \xyz      a defined-url: "\xyz" can be used anywhere, no matter what
+%           characters it contains.
+% \DeclareUrlCommand\abc{settings}: makes \abc{ } like \url{ }
+%
+% See further instructions after "\endinput"
+%
+
+% default style assignments
+\def\UrlBreaks{\do\.\do\@\do\\\do\/\do\!\do\_\do\|\do\;\do\>\do\]%
+ \do\)\do\,\do\?\do\'\do+\do\=\do\#}%
+\def\UrlBigBreaks{\do\:\do@url@hyp}%
+\def\UrlNoBreaks{\do\(\do\[\do\{\do\<}%
+% any ordinary characters that aren't usually:
+\def\UrlOrds{\do\*\do\-\do\~\do\'\do\"\do\-}%
+\def\UrlSpecials{\do\ {\Url@space}\do\%{\Url@percent}\do\^^M{\Url@space}%
+   \Url@force@Tilde}% package option may force faked text-ascii-tilde
+
+\@namedef{Url@OT1encSpecials}{%
+  %  *Some* latin-1 or windows characters that ot1 has elsewhere:  OE  oe  ss
+  \do\^^8c{\mathchar30 }\do\^^9c{\mathchar27 }\do\^^df{\mathchar25 }%
+  \do\~{\lower.45ex\hbox{\m@th$\mathchar126$}}% For tt style
+  % lots more to add, but I should later link into inputenc
+  \do\^^b5{\mu}%
+  \Url@OTnonTT % more for any but typewriter
+  }
+
+\def\Url@OTnonTT{\do\<{\langle}\do\>{\mathbin{\rangle}}\do
+  \_{\_\penalty\@m}\do\|{\mid}\do\{{\lbrace}\do\}{\mathbin{\rbrace}}\do
+  \\{\mathbin{\backslash}}\UrlTildeSpecial}
+
+% *Some* latin-1 or windows characters. Most will pass through safely to T1 enc
+% mu  inverted-?  OE  oe
+% lots more to add, but I should later link into inputenc
+\@namedef{Url@T1encSpecials}{\do\^^b5{\mu}\do\^^bf{\mathchar190 }%
+  \do\^^8c{\mathchar215 }\do\^^9c{\mathchar247 }\do\^^df{\mathchar255 }%
+  \do\^^ff{\mathchar184 }}
+
+\@namedef{Url@LY1encSpecials}{\do\~{\mathchar158 }}
+
+\def\UrlTildeSpecial{\do\~{\raise.45ex\hbox{\m@th$\scriptstyle\sim$}}}
+\let\Url@force@Tilde\relax
+
+\def\url@ttstyle{%
+ \@ifundefined{selectfont}{\def\UrlFont{\tt}}{\def\UrlFont{\ttfamily}}}
+
+\def\url@rmstyle{%
+ \@ifundefined{selectfont}{\def\UrlFont{\rm}}{\def\UrlFont{\rmfamily}}}
+
+\def\url@sfstyle{%
+ \@ifundefined{selectfont}{\def\UrlFont{\sf}}{\def\UrlFont{\sffamily}}}
+
+\def\url@samestyle{\def\UrlFont{}}
+
+\@ifundefined{strip@prefix}{\def\strip@prefix#1>{}}{}
+\@ifundefined{verbatim@nolig@list}{\def\verbatim@nolig@list{\do\`}}{}
+
+% \Url sets up the reading the argument verbatim if possible
+\def\Url{%
+ \Url@movingtest
+ \ifmmode\@nomatherr$\fi %$
+ \let\do\@makeother \dospecials % verbatim catcodes
+ \catcode`{\@ne \catcode`}\tw@ % with exceptions
+ \catcode`\ =10 % allow "\url {x}"
+ \catcode`\#=6  % always # -> ##, so I can later convert ## -> #
+ \@ifnextchar\bgroup{\obeyspaces\obeylines\Url@z}\Url@y}
+
+% \Url@y read arguments delimited like |...|, passing to \Url@z
+\def\Url@y#1{\catcode`{11 \catcode`}11\obeyspaces\obeylines
+  \def\@tempa##1#1{\Url@z{##1}}\@tempa}
+
+% \Url@z read arguments delimited like {...}, verbatimizes with \meaning,
+% performs character translations, then invokes the formatter.
+\def\Url@z#1{\toks@{#1}\edef\Url@String{\the\toks@}%
+  \edef\Url@String{\expandafter\strip@prefix\meaning\Url@String}%
+%\if\urldebug \message{------------------------------------------------------}%
+%\message{ \Url@String}\fi
+% \meaning introduces spurious spaces in the text, so it would be nice
+% to preserve the real spaces before \meaning, but that doesn't work --
+% we can only do replacement on streams of non-syntactic characters.
+  \Url@ObeySp % may be no-op; otherwise put ordinary (12) space characters
+%\if\urldebug \message{ \Url@String}\fi
+% we left the catcode of # with its normal value (6) so \meaning
+% doubles it to ##.  Now we convert back to single #.  This allows
+% \url{#} to appear in the arguments of other commands, where we can't
+% make # be an ordinary character.  We make the single # active rather
+% than `other' to support hyperref.sty.
+  \Url@acthash
+%\if\urldebug \message{ \Url@String}\fi
+% Also make % active to support hyperref.
+  \Url@actpercent
+% now do any hyper referencing due to hyperref (or perform a url-def)
+  \Url@HyperHook
+% Now do the formatting in a group (can also have \Url@HyperHook take
+% this as an argument.
+  {\Url@FormatString}%
+  \endgroup}
+
+\let\Url@ObeySp\@empty
+\let\UrlRight\@empty
+\let\UrlLeft\@empty
+\let\Url@HyperHook\@empty
+
+% This is the normal way to format the strings, using math mode.
+\def\Url@FormatString{%
+ \UrlFont \Url@MathSetup 
+ $\fam\z@ \textfont\z@\font
+ \expandafter\UrlLeft\Url@String\UrlRight
+ \m@th$%
+% \if\urldebug \showlists \fi 
+}%
+
+\def\Url@MathSetup{%
+ \medmuskip\Urlmuskip \thickmuskip\medmuskip \thinmuskip0mu%
+ \relpenalty\UrlBigBreakPenalty \binoppenalty\UrlBreakPenalty
+ \expandafter\let\expandafter\UrlEncSpecials\csname Url@\f@encoding encSpecials\endcsname
+ % Insert test for unknown encodings here \ifx\UrlEncSpecials\relax
+ \ifdim\fontdimen\thr@@\font=\z@ \let\Url@OTnonTT\relax \fi
+ \@tempcnta\z@ %  \fam\multiply\@tempcnta\@cclvi
+ \let\do\set@mathcode \UrlOrds % ordinary characters that were special
+ \advance\@tempcnta 8192 \UrlBreaks % bin
+ \advance\@tempcnta 4096 \UrlBigBreaks % rel
+ \advance\@tempcnta 4096 \UrlNoBreaks % open
+ \let\do\set@mathact \UrlSpecials \UrlEncSpecials % active
+ \let\do\set@mathnolig \verbatim@nolig@list % prevent ligatures
+}
+
+\def\set@mathcode#1{\count@`#1\advance\count@\@tempcnta
+%\message{Set mathcode of \string #1 (\number`#1) = \number`#1 + \number\@tempcnta. }%
+\mathcode`#1\count@}
+\def\set@mathact#1#2{\mathcode`#1=32768 \begingroup 
+    \lccode`\~`#1\lowercase{\endgroup\def~}{#2}}
+\def\set@mathnolig#1{\ifnum\mathcode`#1<32768
+   \begingroup\lccode`\~`#1\lowercase{\endgroup
+     \edef~}{\mathchar\number\mathcode`#1_{\/}}%
+   \mathcode`#1=32768 \fi}
+
+\def\Url@movingtest{\begingroup
+ \ifx\let\HyPsd@LetCommand % we are already in a pdf string!
+  \expandafter\Url@unmove \fi % give the argument and hope for the best
+ \let\Url@moving\relax\relax\relax
+ \ifx\Url@moving\relax\else \expandafter\Url@unmove \fi
+ \endgroup}
+\long\def\Url@unmove#1\Url@y{\endgroup \ifx\protect\relax\else\protect\Url\fi}
+\edef\Url@moving{\csname Url Error\endcsname}
+\expandafter\edef\Url@moving
+ {\csname url used in a moving argument.\endcsname}
+\expandafter\expandafter\expandafter \let \Url@moving\@undefined
+
+\def\urldef#1#2{\begingroup \setbox\z@\hbox\bgroup
+  \def\Url@HyperHook##1\endgroup{\Url@def{#1}{#2}}%
+  % Because hyperref breaks \urldef and does not define its own (Grrrr!)...
+  \def\url@##1{\egroup\endgroup\DeclareRobustCommand#1{#2{##1}}}%
+ #2}
+\def\Url@def#1#2{%
+   \toks0\expandafter{\Url@String}%
+   \protected@edef\Url@String{\Url@String}%
+   \toks1\expandafter{\Url@String}%
+   \edef\Url@String{\endgroup\egroup\endgroup\def
+     \expandafter\noexpand\csname\expandafter\@gobble\string#1 \endcsname
+     {\noexpand\Url@eitherdef{\the\toks1}{\noexpand#2{\the\toks0}}}}%
+   \Url@String
+   \edef#1{\noexpand\protect
+      \expandafter\noexpand\csname\expandafter\@gobble\string#1 \endcsname}%
+  }
+\def\Url@eitherdef{\ifx\let\HyPsd@LetCommand % we are already in a pdf string!
+  \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi}
+
+\def\urlstyle#1{\expandafter\protect\csname url@#1style\endcsname}
+
+\def\DeclareUrlCommand#1#2{\def#1{\leavevmode\begingroup #2\Url}}
+
+% Sample (and default) configuration:
+%
+\DeclareUrlCommand\url{}
+\urlstyle{tt}
+%
+\newmuskip\Urlmuskip \Urlmuskip=0mu
+\mathchardef\UrlBreakPenalty=\binoppenalty
+\mathchardef\UrlBigBreakPenalty=\relpenalty
+%
+% picTeX defines \path, so declare it optionally:
+\@ifundefined{path}{\DeclareUrlCommand\path{\urlstyle{tt}}}{}
+%
+% too many styles define \email like \address, so I will not define it.
+% \DeclareUrlCommand\email{\urlstyle{rm}}
+
+% Process LaTeX \package options
+%
+\let\Url@sppen\@M
+\def\Url@space{\penalty\Url@sppen}
+\def\do@url@hyp{}% by default, no breaks after hyphens
+
+\@ifundefined{ProvidesPackage}{
+}{\ProvidesPackage
+ {url}[2006/04/12 \space ver 3.3 \space Verb mode for urls, etc.]
+\DeclareOption{hyphens}{\def\do@url@hyp{\do\-}}% allow breaks after hyphens
+\DeclareOption{obeyspaces}{\let\Url@ObeySp\relax}% a flag for later
+\DeclareOption{spaces}{\def\Url@sppen{\UrlBreakPenalty}}
+\DeclareOption{LY1}{}
+\DeclareOption{T1}{}
+\DeclareOption{allowmove}{\let\Url@moving\@empty}
+\DeclareOption{lowtilde}{%
+  \def\UrlTildeSpecial{\do\~{\raise.2ex\hbox{\m@th$\scriptstyle\sim$}}}
+  \let\Url@force@Tilde\UrlTildeSpecial
+}
+\ProcessOptions\relax
+\ifx\Url@ObeySp\relax % [obeyspaces] was declared
+  \begingroup \lccode`+=32 \lowercase
+   {\endgroup \def\Url@ObeySp{\Url@Edit\Url@String{ }{+}}}
+   \def\Url@space{\penalty\Url@sppen\ }
+\fi
+}
+\ifx\f@encoding\undefined \def\f@encoding{OT1}\fi
+
+\begingroup
+% \Url@acthash:    convert `other' (doubled) ## to active #
+% \Url@actpercent: convert `other' % to active %
+ \lccode`+=`\# \lccode`\~=`\#
+  \lowercase {\long\gdef\Url@acthash{\Url@Edit\Url@String{++}{~}%
+     \ifnum\mathcode`\#<32768 \def~{\#}\fi}}%
+ \lccode`+=`\% \lccode`\~=`\%
+  \lowercase {\long\gdef\Url@actpercent{\Url@Edit\Url@String{+}{~}%
+    \ifnum\mathcode`\%<32768 \def~{\%}\fi}}%
+ \catcode13=12 %
+ \gdef\Url@percent{\@ifnextchar^^M{\@gobble}{\mathbin{\mathchar`\%}}}%
+\endgroup%
+
+%   Edit macro #1 changing all appearances of pattern #2 to replacement #3.
+%   The replacement is recursive, so don't put the search pattern into the
+%   replacement text!
+
+{ \catcode`Q=3
+
+\gdef\Url@Edit#1#2#3{%
+ \begingroup % \tracingall
+ \def\DOE@a{\endgroup\def#1}% Just so I can \expandafter it safely.
+ \def\DOE@b##1#2##2Q##3{\@ifblank{##2}% if finished,
+   {\DOE@c ##1Q}% then remove \@empty's and redefine macro
+   {\DOE@b##1##3##2Q{##3}}% else, re-iterate
+ }%  the leading \@empty preserves braces, as does the trailing pattern:
+ \expandafter\DOE@b\expandafter\@empty #1\@empty#2Q{#3}}
+\gdef\DOE@c#1\@empty Q{\expandafter\DOE@a\expandafter{#1}}
+%
+%  \@ifblank (LaTeX syntax) --- checks if parameter is blank (Spaces
+%     count as blank) use \@ifblank{#1}{true case}{false case} etc
+\long\gdef\@ifblank#1{\@Ifbl@nk#1QQ\@secondoftwo\@firstoftwo!}%
+\long\gdef\@Ifbl@nk#1#2Q#3#4#5!{#4}
+
+} % restore Q catcode
+
+
+%\ifx\urldebug\@undefined \def\urldebug{01}\fi
+
+\endinput
+%
+% url.sty  ver 3.3    12-Apr-2006   Donald Arseneau   asnd@triumf.ca
+%
+% This package defines "\url", a form of "\verb" that allows linebreaks,
+% and can often be used in the argument to another command.  It can be
+% configured to print in different formats, and is particularly useful for
+% hypertext links, email addresses, directories/paths, etc.  The font may
+% be selected using the "\urlstyle" command and pre-defined text can be
+% stored with the "\urldef" command. New url-like commands can be defined,
+% and a "\path" command is provided this way.
+%
+% Usage:    Conditions:
+% \url{ }   If the argument contains any "%", "#", or "^^", or ends with
+%           "\", it can't be used in the argument to another command.
+%           The argument must not contain unbalanced braces.
+% \url|  |  ...where "|" is any character not used in the argument and not
+%           "{" or a space.  The same restrictions as above except that the
+%           argument may contain unbalanced braces.
+% \xyz      for "\xyz" a defined-url;  this can be used anywhere, no matter
+%           what characters it contains.
+%
+% The "\url" command is fragile, and its argument is likely to be very
+% fragile, but a defined-url is robust.
+%
+% Package Option:  obeyspaces
+% Ordinarily, all spaces are ignored in the url-text.  The "[obeyspaces]"
+% option allows spaces, but may introduce spurious spaces when a url
+% containing "\" characters is given in the argument to another command.
+% So if you need to obey spaces you can say "\usepackage[obeyspaces]{url}",
+% and if you need both spaces and backslashes, use a `defined-url' for
+% anything with "\".
+%
+% Package Option:  hyphens
+% Ordinarily, breaks are not allowed after "-" characters because this
+% leads to confusion. (Is the "-" part of the address or just a hyphen?)
+% The package option "[hyphens]" allows breaks after explicit hyphen
+% characters.  The "\url" command will *never ever* hyphenate words.
+%
+% Package Option:  spaces
+% Likewise, breaks are not usually allowed after spaces under the
+% "[obeyspaces]" option, but giving the options "[obeyspaces,spaces]"
+% will allow breaks at those spaces. (Note that it seems logical to
+% allow the sole option "[spaces]" to let input spaces indicate break
+% points, but not to display them in the output. This would be easy to
+% implement, but is left out to avoid(?) confusion.)
+%
+% Package Option:  lowtilde
+% Normal treatment of the ~ character is to use the font's "\textasciitilde"
+% character, if it has one (or claims to).  Otherwise, the character is
+% faked using a mathematic "\sim".  The "[lowtilde]" option causes a
+% faked character to be used always (and a bit lower than usual).
+%
+% Defining a defined-url:
+% Take for example the email address "myself%node@gateway.net" which could
+% not be given (using "\url" or "\verb") in a caption or parbox due to the
+% percent sign.  This address can be predefined with
+%    \urldef{\myself}\url{myself%node@gateway.net}   or
+%    \urldef{\myself}\url|myself%node@gateway.net|
+% and then you may use "\myself" instead of "\url{myself%node@gateway.net}"
+% in an argument, and even in a moving argument like a caption because a
+% defined-url is robust.
+%
+% Style:
+% You can switch the style of printing using "\urlstyle{tt}", where "tt"
+% can be any defined style.  The pre-defined styles are "tt", "rm", "sf",
+% and "same" which all allow the same linebreaks but different fonts --
+% the first three select a specific font and the "same" style uses the
+% current text font.  You can define your own styles with different fonts
+% and/or line-breaking by following the explanations below.  The "\url"
+% command follows whatever the currently-set style dictates.
+%
+% Alternate commands:
+% It may be desireable to have different things treated differently, each
+% in a predefined style; e.g., if you want directory paths to always be
+% in typewriter and email addresses to be roman, then you would define new
+% url-like commands as follows:
+%
+%    \DeclareUrlCommand\email{\urlstyle{rm}}
+%    \DeclareUrlCommand\directory{\urlstyle{tt}}
+%
+% In fact, the "\directory" example is exactly the "\path" definition which
+% is pre-defined in the package.  If you look above, you will see that "\url"
+% is defined with
+%    \DeclareUrlCommand\url{}
+% I.e., using whatever "\urlstyle" and other settings are already in effect.
+%
+% You can make a defined-url for these other styles, using the usual
+% "\urldef" command as in this example:
+%
+%    \urldef{\myself}{\email}{myself%node.domain@gateway.net}
+%
+% which makes "\myself" act like "\email{myself%node.domain@gateway.net}",
+% if the "\email" command is defined as above.  The "\myself" command
+% would then be robust.
+%
+% Defining styles:
+% Before describing how to customize the printing style, it is best to
+% mention something about the unusual implementation of "\url".  Although
+% the material is textual in nature, and the font specification required
+% is a text-font command, the text is actually typeset in *math* mode.
+% This allows the context-sensitive linebreaking, but also accounts for
+% the default behavior of ignoring spaces.  Now on to defining styles.
+%
+% To change the font or the list of characters that allow linebreaks, you
+% could redefine the commands "\UrlFont", "\UrlBreaks", "\UrlSpecials" etc.
+% directly in the document, but it is better to define a new `url-style'
+% (following the example of "\url@ttstyle" and "\url@rmstyle") which defines
+% all of "\UrlBigbreaks", "\UrlNoBreaks", "\UrlBreaks", "\UrlSpecials", and
+% "\UrlFont".
+%
+% Changing font:
+% The "\UrlFont" command selects the font.  The definition of "\UrlFont"
+% done by the pre-defined styles varies to cope with a variety of LaTeX
+% font selection schemes, but it could be as simple as "\def\UrlFont{\tt}".
+% Depending on the font selected, some characters may need to be defined
+% in the "\UrlSpecials" list because many fonts don't contain all the
+% standard input characters.
+%
+% Changing linebreaks:
+% The list of characters that allow line-breaks is given by "\UrlBreaks"
+% and "\UrlBigBreaks", which have the format "\do\c" for character "c".
+% The differences are that `BigBreaks' usually have a lower penalty and have
+% different breakpoints when in sequence (as in "http://"): `BigBreaks'
+% are treated as mathrels while `Breaks' are mathbins (see The TeXbook,
+% p.170). In particular, a series of `BigBreak' characters will break at
+% the end and only at the end; a series of `Break' characters will break
+% after the first and after every following *pair*; there will be no
+% break after a `Break' character if a `BigBreak' follows.  In the case
+% of "http://" it doesn't matter whether ":" is a `Break' or `BigBreak' --
+% the breaks are the same in either case; but for DECnet nodes with "::"
+% it is important to prevent breaks *between* the colons, and that is why
+% colons are `BigBreaks'.
+%
+% It is possible for characters to prevent breaks after the next following
+% character (I use this for parentheses).  Specify these in "\UrlNoBreaks".
+%
+% You can do arbitrarily complex things with characters by making them
+% active in math mode (mathcode hex-8000) and specifying the definition(s)
+% in "\UrlSpecials".  This is used in the rm and sf styles for OT1 font
+% encoding to handle several characters that are not present in those
+% computer-modern style fonts.  See the definition of "\Url@do", which
+% is used by both "\url@rmstyle" and "\url@sfstyle"; it handles missing
+% characters via "\UrlSpecials".  The nominal format for setting each
+% special character "c" is: "\do\c{<definition>}", but you can include
+% other definitions too.
+%
+% If all this sounds confusing ... well, it is!  But I hope you won't need
+% to redefine breakpoints -- the default assignments seem to work well for
+% a wide variety of applications.  If you do need to make changes, you can
+% test for breakpoints using regular math mode and the characters "+=(a".
+%
+% You can allow some spacing around the breakable characters by assigning
+%    \Urlmuskip = 0mu plus 1mu
+% You can change the penalties used for BigBreaks and Breaks by assigning
+%    \mathchardef\UrlBreakPenalty=100 \mathchardef\UrlBigBreakPenalty=100
+% The default penalties are "\binoppenalty" and "\relpenalty".  These have
+% such odd non-LaTeX syntax because I don't expect people to need to
+% change them often.
+%
+% Yet more flexibility:
+% You can also customize the verbatim text by defining "\UrlRight" and/or
+% "\UrlLeft", e.g., for ISO formatting of urls surrounded by "<  >", define
+%
+%    \DeclareUrlCommand\url{\def\UrlLeft{<url:\ }\def\UrlRight{>}%
+%        \urlstyle{tt}}
+%
+% The meanings of "\UrlLeft" and "\UrlRight" are *not* reproduced verbatim.
+% This lets you use formatting commands there, but you must be careful not
+% to use TeX's special characters ("\^_%~#$&{}" etc.) improperly.
+% You can also define "\UrlLeft" to reprocess the verbatim text, but the
+% format of the definition is special:
+%
+%    \def\UrlLeft#1\UrlRight{ ... do things with #1 ... }
+%
+% Yes, that is "#1" followed by "\UrlRight" then the definition.  For
+% example, to put a hyperTeX hypertext link in the DVI file:
+%
+%    \def\UrlLeft#1\UrlRight{\special{html:<a href="#1">}#1\special{html:</a>}}
+%
+% Using this technique, url.sty can provide a convenient interface for
+% performing various operations on verbatim text.  You don't even need
+% to print out the argument!  For greatest efficiency in such obscure
+% applications, you can define a null url-style where all the lists like
+% "\UrlBreaks" are empty.
+%
+% Revision History:
+% ver 1.1 6-Feb-1996:
+% Fix hyphens that wouldn't break and ligatures that weren't suppressed.
+% ver 1.2 19-Oct-1996:
+% Package option for T1 encoding; Hooks: "\UrlLeft" and "\UrlRight".
+% ver 1.3 21-Jul-1997:
+% Prohibit spaces as delimiter characters; change ascii tilde in OT1.
+% ver 1.4 02-Mar-1999:
+% LaTeX license; moving-argument-error
+% ver 1.5 28-Mar-1999:
+% possibility of spacing around break characters; re-settable penalties
+% ver 1.6 20-Jun-2002:
+% un-double #, fix obeyed-spaces, ignore trailing %, hook for hyperref
+% (\Url@HyperHook), no macros in pre-processed url string (in \Url@String),
+% limit catcode change of ~.
+% ver 3.0 June 2003/Nov 2003:
+% \DeclareUrlCommand; make font encoding automatic (only a few inputenc characters
+% are supported yet - needs refactoring); reverse penalties. 
+% ver 3.1 Mar 2004:
+% Remove spurious spaces in \url@XXstyle commands.
+% ver 3.2 June 2005:
+% Fix cmsy-symbols in tt bug (from 3.0); LY1 encoding bug; Enable plain
+% with miniltx (again); Define the \urldef for hyperref; Lower "sim" tilde
+% a little; fix \lowercase error in \UrlSpecials handling.
+% ver 3.3 April 2006:
+% Fix some encoding bugs and remove 8-bit characters.  lowtilde option
+% The End
+
+Test file integrity:  ASCII 32-57, 58-126:  !"#$%&'()*+,-./0123456789
+:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
+
diff --git a/v2-acmsmall-sample.bbl b/v2-acmsmall-sample.bbl
new file mode 100644 (file)
index 0000000..28d4dde
--- /dev/null
@@ -0,0 +1,348 @@
+%%% -*-BibTeX-*-\r
+%%% Do NOT edit. File created by BibTeX with style\r
+%%% ACM-Reference-Format-Journals [18-Jan-2012].\r
+\r
+\begin{thebibliography}{00}\r
+\r
+%%% ====================================================================\r
+%%% NOTE TO THE USER: you can override these defaults by providing\r
+%%% customized versions of any of these macros before the \bibliography\r
+%%% command.  Each of them MUST provide its own final punctuation,\r
+%%% except for \shownote{}, \showDOI{}, and \showURL{}.  The latter two\r
+%%% do not use final punctuation, in order to avoid confusing it with\r
+%%% the Web address.\r
+%%%\r
+%%% To suppress output of a particular field, define its macro to expand\r
+%%% to an empty string, or better, \unskip, like this:\r
+%%%\r
+%%% \newcommand{\showDOI}[1]{\unskip}   % LaTeX syntax\r
+%%%\r
+%%% \def \showDOI #1{\unskip}           % plain TeX syntax\r
+%%%\r
+%%% ====================================================================\r
+\r
+\ifx \showCODEN    \undefined \def \showCODEN     #1{\unskip}     \fi\r
+\ifx \showDOI      \undefined \def \showDOI       #1{{\tt DOI:}\penalty0{#1}\ }\r
+  \fi\r
+\ifx \showISBNx    \undefined \def \showISBNx     #1{\unskip}     \fi\r
+\ifx \showISBNxiii \undefined \def \showISBNxiii  #1{\unskip}     \fi\r
+\ifx \showISSN     \undefined \def \showISSN      #1{\unskip}     \fi\r
+\ifx \showLCCN     \undefined \def \showLCCN      #1{\unskip}     \fi\r
+\ifx \shownote     \undefined \def \shownote      #1{#1}          \fi\r
+\ifx \showarticletitle \undefined \def \showarticletitle #1{#1}   \fi\r
+\ifx \showURL      \undefined \def \showURL       #1{#1}          \fi\r
+\r
+\bibitem[\protect\citeauthoryear{Ablamowicz and Fauser}{Ablamowicz and\r
+  Fauser}{2007}]%\r
+        {Ablamowicz07}\r
+{Rafal Ablamowicz} {and} {Bertfried Fauser}. 2007.\r
+\newblock CLIFFORD: a Maple 11 Package for Clifford Algebra Computations,\r
+  version 11.\r
+\newblock   (2007).\r
+\newblock\r
+\showURL{%\r
+Retrieved February 28, 2008 from\r
+  \url{http://math.tntech.edu/rafal/cliff11/index.html}}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Abril and Plant}{Abril and Plant}{2007}]%\r
+        {Abril07}\r
+{Patricia~S. Abril} {and} {Robert Plant}. 2007.\r
+\newblock \showarticletitle{The patent holder's dilemma: Buy, sell, or troll?}\r
+\newblock {\it Commun. ACM} {50}, 1 (Jan. 2007), 36--44.\r
+\newblock\r
+\showDOI{%\r
+\url{http://dx.doi.org/10.1145/1188913.1188915}}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Andler}{Andler}{1979}]%\r
+        {Andler79}\r
+{Sten Andler}. 1979.\r
+\newblock \showarticletitle{Predicate Path expressions}. In {\em Proceedings of\r
+  the 6th. ACM SIGACT-SIGPLAN symposium on Principles of Programming Languages}\r
+  {\em (POPL '79)}. ACM Press, New York, NY, 226--236.\r
+\newblock\r
+\showDOI{%\r
+\url{http://dx.doi.org/10.1145/567752.567774}}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Anisi}{Anisi}{2003}]%\r
+        {anisi03}\r
+{David~A. Anisi}. 2003.\r
+\newblock {\em Optimal Motion Control of a Ground Vehicle}.\r
+\newblock Master's\ thesis. Royal Institute of Technology (KTH), Stockholm,\r
+  Sweden.\r
+\newblock\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Clarkson}{Clarkson}{1985}]%\r
+        {Clarkson85}\r
+{Kenneth~L. Clarkson}. 1985.\r
+\newblock {\em Algorithms for Closest-Point Problems (Computational Geometry)}.\r
+\newblock Ph.D. Dissertation. Stanford University, Palo Alto, CA.\r
+\newblock\r
+\newblock\r
+\shownote{UMI Order Number: AAT 8506171.}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Cohen}{Cohen}{1996}]%\r
+        {JCohen96}\r
+{Jacques Cohen} (Ed.). 1996.\r
+\newblock \showarticletitle{Special Issue: Digital Libraries}.\r
+\newblock {\em Commun. {ACM}\/} {39}, 11 (Nov. 1996).\r
+\newblock\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Cohen, Nutt, and Sagic}{Cohen\r
+  et~al\mbox{.}}{2007}]%\r
+        {Cohen07}\r
+{Sarah Cohen}, {Werner Nutt}, {and} {Yehoshua Sagic}. 2007.\r
+\newblock \showarticletitle{Deciding equivalances among conjunctive aggregate\r
+  queries}.\r
+\newblock {\em J. ACM\/} {54}, 2, Article 5 (April 2007), 50 pages.\r
+\newblock\r
+\showDOI{%\r
+\url{http://dx.doi.org/10.1145/1219092.1219093}}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Douglass, Harel, and Trakhtenbrot}{Douglass\r
+  et~al\mbox{.}}{1998}]%\r
+        {Douglass98}\r
+{Bruce~P. Douglass}, {David Harel}, {and} {Mark~B. Trakhtenbrot}. 1998.\r
+\newblock \showarticletitle{Statecarts in use: structured analysis and\r
+  object-orientation}.\r
+\newblock In {\em Lectures on Embedded Systems}, {Grzegorz Rozenberg} {and}\r
+  {Frits~W. Vaandrager} (Eds.). Lecture Notes in Computer Science, Vol. 1494.\r
+  Springer-Verlag, London, 368--394.\r
+\newblock\r
+\showDOI{%\r
+\url{http://dx.doi.org/10.1007/3-540-65193-4_29}}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Editor}{Editor}{2007}]%\r
+        {Editor00}\r
+{Ian Editor} (Ed.). 2007.\r
+\newblock {\em The title of book one\/} (1st. ed.). The name of the series one,\r
+  Vol.~9.\r
+\newblock University of Chicago Press, Chicago.\r
+\newblock\r
+\showDOI{%\r
+\url{http://dx.doi.org/10.1007/3-540-09237-4}}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Editor}{Editor}{2008}]%\r
+        {Editor00a}\r
+{Ian Editor} (Ed.). 2008.\r
+\newblock {\em The title of book two\/} (2nd. ed.).\r
+\newblock University of Chicago Press, Chicago, Chapter 100.\r
+\newblock\r
+\showDOI{%\r
+\url{http://dx.doi.org/10.1007/3-540-09237-4}}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Gundy, Balzarotti, and Vigna}{Gundy\r
+  et~al\mbox{.}}{2007}]%\r
+        {VanGundy07}\r
+{Matthew~Van Gundy}, {Davide Balzarotti}, {and} {Giovanni Vigna}. 2007.\r
+\newblock \showarticletitle{Catch me, if you can: Evading network signatures\r
+  with web-based polymorphic worms}. In {\em Proceedings of the first USENIX\r
+  workshop on Offensive Technologies} {\em (WOOT '07)}. USENIX Association,\r
+  Berkley, CA, Article 7, 9 pages.\r
+\newblock\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Harel}{Harel}{1978}]%\r
+        {Harel78}\r
+{David Harel}. 1978.\r
+\newblock {\em LOGICS of Programs: AXIOMATICS and DESCRIPTIVE POWER}.\r
+\newblock MIT Research Lab Technical Report TR-200. Massachusetts Institute of\r
+  Technology, Cambridge, MA.\r
+\newblock\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Harel}{Harel}{1979}]%\r
+        {Harel79}\r
+{David Harel}. 1979.\r
+\newblock {\em First-Order Dynamic Logic}. Lecture Notes in Computer Science,\r
+  Vol.~68.\r
+\newblock Springer-Verlag, New York, NY.\r
+\newblock\r
+\showDOI{%\r
+\url{http://dx.doi.org/10.1007/3-540-09237-4}}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{H{\"o}rmander}{H{\"o}rmander}{1985a}]%\r
+        {MR781537}\r
+{Lars H{\"o}rmander}. 1985a.\r
+\newblock {\em The analysis of linear partial differential operators. {III}}.\r
+  Grundlehren der Mathematischen Wissenschaften [Fundamental Principles of\r
+  Mathematical Sciences], Vol. 275.\r
+\newblock Springer-Verlag, Berlin, Germany. viii+525 pages.\r
+\newblock\r
+\showISBNx{3-540-13828-5}\r
+\newblock\r
+\shownote{Pseudodifferential operators.}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{H{\"o}rmander}{H{\"o}rmander}{1985b}]%\r
+        {MR781536}\r
+{Lars H{\"o}rmander}. 1985b.\r
+\newblock {\em The analysis of linear partial differential operators. {IV}}.\r
+  Grundlehren der Mathematischen Wissenschaften [Fundamental Principles of\r
+  Mathematical Sciences], Vol. 275.\r
+\newblock Springer-Verlag, Berlin, Germany. vii+352 pages.\r
+\newblock\r
+\showISBNx{3-540-13829-3}\r
+\newblock\r
+\shownote{Fourier integral operators.}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Kirschmer and Voight}{Kirschmer and\r
+  Voight}{2010}]%\r
+        {Kirschmer:2010:AEI:1958016.1958018}\r
+{Markus Kirschmer} {and} {John Voight}. 2010.\r
+\newblock \showarticletitle{Algorithmic Enumeration of Ideal Classes for\r
+  Quaternion Orders}.\r
+\newblock {\em SIAM J. Comput.\/} {39}, 5 (Jan. 2010), 1714--1747.\r
+\newblock\r
+\showISSN{0097-5397}\r
+\showDOI{%\r
+\url{http://dx.doi.org/10.1137/080734467}}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Knuth}{Knuth}{1997}]%\r
+        {Knuth97}\r
+{Donald~E. Knuth}. 1997.\r
+\newblock {\em The Art of Computer Programming, Vol. 1: Fundamental Algorithms\r
+  (3rd. ed.)}.\r
+\newblock Addison Wesley Longman Publishing Co., Inc.\r
+\newblock\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Kosiur}{Kosiur}{2001}]%\r
+        {Kosiur01}\r
+{David Kosiur}. 2001.\r
+\newblock {\em Understanding Policy-Based Networking\/} (2nd. ed.).\r
+\newblock Wiley, New York, NY.\r
+\newblock\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Lee}{Lee}{2005}]%\r
+        {Lee05}\r
+{Newton Lee}. 2005.\r
+\newblock \showarticletitle{Interview with Bill Kinder: January 13, 2005}.\r
+\newblock Video, {\em Comput. Entertain.\/} {3}, 1, Article 4 (Jan.-March\r
+  2005).\r
+\newblock\r
+\showDOI{%\r
+\url{http://dx.doi.org/10.1145/1057270.1057278}}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Novak}{Novak}{2003}]%\r
+        {Novak03}\r
+{Dave Novak}. 2003.\r
+\newblock \showarticletitle{Solder man}. Video. In {\em ACM SIGGRAPH 2003 Video\r
+  Review on Animation theater Program: Part I - Vol. 145 (July 27--27, 2003)}.\r
+  ACM Press, New York, NY, 4.\r
+\newblock\r
+\showDOI{%\r
+\url{http://dx.doi.org/99.9999/woot07-S422}}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Obama}{Obama}{2008}]%\r
+        {Obama08}\r
+{Barack Obama}. 2008.\r
+\newblock A more perfect union.\r
+\newblock Video.   (5 March 2008).\r
+\newblock\r
+\showURL{%\r
+Retrieved March 21, 2008 from\r
+  \url{http://video.google.com/videoplay?docid=6528042696351994555}}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Poker-Edge.Com}{Poker-Edge.Com}{2006}]%\r
+        {Poker06}\r
+{Poker-Edge.Com}. 2006.\r
+\newblock Stats and Analysis.\r
+\newblock   (March 2006).\r
+\newblock\r
+\showURL{%\r
+Retrieved June 7, 2006 from \url{http://www.poker-edge.com/stats.php}}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Rous}{Rous}{2008}]%\r
+        {rous08}\r
+{Bernard Rous}. 2008.\r
+\newblock \showarticletitle{The Enabling of Digital Libraries}.\r
+\newblock {\em Digital Libraries\/} {12}, 3, Article 5 (July 2008).\r
+\newblock\r
+\newblock\r
+\shownote{To appear.}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Saeedi, Zamani, and Sedighi}{Saeedi\r
+  et~al\mbox{.}}{2010a}]%\r
+        {SaeediMEJ10}\r
+{Mehdi Saeedi}, {Morteza~Saheb Zamani}, {and} {Mehdi Sedighi}. 2010a.\r
+\newblock \showarticletitle{A library-based synthesis methodology for\r
+  reversible logic}.\r
+\newblock {\em Microelectron. J.\/} {41}, 4 (April 2010), 185--194.\r
+\newblock\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Saeedi, Zamani, Sedighi, and Sasanian}{Saeedi\r
+  et~al\mbox{.}}{2010b}]%\r
+        {SaeediJETC10}\r
+{Mehdi Saeedi}, {Morteza~Saheb Zamani}, {Mehdi Sedighi}, {and} {Zahra\r
+  Sasanian}. 2010b.\r
+\newblock \showarticletitle{Synthesis of Reversible Circuit Using Cycle-Based\r
+  Approach}.\r
+\newblock {\em J. Emerg. Technol. Comput. Syst.\/} {6}, 4 (Dec. 2010).\r
+\newblock\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Scientist}{Scientist}{2009}]%\r
+        {JoeScientist001}\r
+{Joseph Scientist}. 2009.\r
+\newblock The fountain of youth.\r
+\newblock   (Aug. 2009).\r
+\newblock\r
+\newblock\r
+\shownote{Patent No. 12345, Filed July 1st., 2008, Issued Aug. 9th., 2009.}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Smith}{Smith}{2010}]%\r
+        {Smith10}\r
+{Stan~W. Smith}. 2010.\r
+\newblock \showarticletitle{An experiment in bibliographic mark-up: Parsing\r
+  metadata for XML export}. In {\em Proceedings of the 3rd. annual workshop on\r
+  Librarians and Computers} {\em (LAC '10)}, {Reginald~N. Smythe} {and}\r
+  {Alexander Noble} (Eds.), Vol.~3. Paparazzi Press, Milan Italy, 422--431.\r
+\newblock\r
+\showDOI{%\r
+\url{http://dx.doi.org/99.9999/woot07-S422}}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Spector}{Spector}{1990}]%\r
+        {Spector90}\r
+{Asad~Z. Spector}. 1990.\r
+\newblock \showarticletitle{Achieving application requirements}.\r
+\newblock In {\em Distributed Systems} (2nd. ed.), {Sape Mullender} (Ed.). ACM\r
+  Press, New York, NY, 19--33.\r
+\newblock\r
+\showDOI{%\r
+\url{http://dx.doi.org/10.1145/90417.90738}}\r
+\r
+\r
+\bibitem[\protect\citeauthoryear{Thornburg}{Thornburg}{2001}]%\r
+        {Thornburg01}\r
+{Harry Thornburg}. 2001.\r
+\newblock Introduction to Bayesian Statistics.\r
+\newblock   (March 2001).\r
+\newblock\r
+\showURL{%\r
+Retrieved March 2, 2005 from\r
+  \url{http://ccrma.stanford.edu/~jos/bayes/bayes.html}}\r
+\r
+\r
+\end{thebibliography}\r
diff --git a/v2-acmsmall-sample.pdf b/v2-acmsmall-sample.pdf
new file mode 100644 (file)
index 0000000..92e10b3
Binary files /dev/null and b/v2-acmsmall-sample.pdf differ
diff --git a/v2-acmsmall-sample.tex b/v2-acmsmall-sample.tex
new file mode 100644 (file)
index 0000000..230cc8f
--- /dev/null
@@ -0,0 +1,486 @@
+% v2-acmsmall-sample.tex, dated March 6 2012\r
+% This is a sample file for ACM small trim journals\r
+%\r
+% Compilation using 'acmsmall.cls' - version 1.3 (March 2012), Aptara Inc.\r
+% (c) 2010 Association for Computing Machinery (ACM)\r
+%\r
+% Questions/Suggestions/Feedback should be addressed to => "acmtexsupport@aptaracorp.com".\r
+% Users can also go through the FAQs available on the journal's submission webpage.\r
+%\r
+% Steps to compile: latex, bibtex, latex latex\r
+%\r
+% For tracking purposes => this is v1.3 - March 2012\r
+\r
+\documentclass[prodmode,acmtecs]{acmsmall} % Aptara syntax\r
+\r
+% Package to generate and customize Algorithm as per ACM style\r
+\usepackage[ruled]{algorithm2e}\r
+\renewcommand{\algorithmcfname}{ALGORITHM}\r
+\SetAlFnt{\small}\r
+\SetAlCapFnt{\small}\r
+\SetAlCapNameFnt{\small}\r
+\SetAlCapHSkip{0pt}\r
+\IncMargin{-\parindent}\r
+\r
+% Metadata Information\r
+\acmVolume{9}\r
+\acmNumber{4}\r
+\acmArticle{39}\r
+\acmYear{2010}\r
+\acmMonth{3}\r
+\r
+% Document starts\r
+\begin{document}\r
+\r
+% Page heads\r
+\markboth{G. Zhou et al.}{A Multifrequency MAC Specially Designed for WSN Applications}\r
+\r
+% Title portion\r
+\title{A Multifrequency MAC Specially Designed for Wireless Sensor Network Applications}\r
+\author{GANG ZHOU\r
+\affil{College of William and Mary}\r
+YAFENG WU\r
+\affil{University of Virginia}\r
+TING YAN\r
+\affil{Eaton Innovation Center}\r
+TIAN HE\r
+\affil{University of Minnesota}\r
+CHENGDU HUANG\r
+\affil{Google}\r
+JOHN A. STANKOVIC\r
+\affil{University of Virginia}\r
+TAREK F. ABDELZAHER\r
+\affil{University of Illinois at Urbana-Champaign}}\r
+% NOTE! Affiliations placed here should be for the institution where the\r
+%       BULK of the research was done. If the author has gone to a new\r
+%       institution, before publication, the (above) affiliation should NOT be changed.\r
+%       The authors 'current' address may be given in the "Author's addresses:" block (below).\r
+%       So for example, Mr. Abdelzaher, the bulk of the research was done at UIUC, and he is\r
+%       currently affiliated with NASA.\r
+\r
+\begin{abstract}\r
+Multifrequency media access control has been well understood in\r
+general wireless ad hoc networks, while in wireless sensor networks,\r
+researchers still focus on single frequency solutions. In wireless\r
+sensor networks, each device is typically equipped with a single\r
+radio transceiver and applications adopt much smaller packet sizes\r
+compared to those in general wireless ad hoc networks. Hence, the\r
+multifrequency MAC protocols proposed for general wireless ad hoc\r
+networks are not suitable for wireless sensor network applications,\r
+which we further demonstrate through our simulation experiments. In\r
+this article, we propose MMSN, which takes advantage of\r
+multifrequency availability while, at the same time, takes into\r
+consideration the restrictions of wireless sensor networks. Through\r
+extensive experiments, MMSN exhibits the prominent ability to utilize\r
+parallel transmissions among neighboring nodes. When multiple physical\r
+frequencies are available, it also achieves increased energy\r
+efficiency, demonstrating the ability to work against radio\r
+interference and the tolerance to a wide range of measured time\r
+synchronization errors.\r
+\end{abstract}\r
+\r
+\category{C.2.2}{Computer-Communication Networks}{Network Protocols}\r
+\r
+\terms{Design, Algorithms, Performance}\r
+\r
+\keywords{Wireless sensor networks, media access control,\r
+multi-channel, radio interference, time synchronization}\r
+\r
+\acmformat{Gang Zhou, Yafeng Wu, Ting Yan, Tian He, Chengdu Huang, John A. Stankovic,\r
+and Tarek F. Abdelzaher, 2010. A multifrequency MAC specially\r
+designed for  wireless sensor network applications.}\r
+% At a minimum you need to supply the author names, year and a title.\r
+% IMPORTANT:\r
+% Full first names whenever they are known, surname last, followed by a period.\r
+% In the case of two authors, 'and' is placed between them.\r
+% In the case of three or more authors, the serial comma is used, that is, all author names\r
+% except the last one but including the penultimate author's name are followed by a comma,\r
+% and then 'and' is placed before the final author's name.\r
+% If only first and middle initials are known, then each initial\r
+% is followed by a period and they are separated by a space.\r
+% The remaining information (journal title, volume, article number, date, etc.) is 'auto-generated'.\r
+\r
+\begin{bottomstuff}\r
+This work is supported by the National Science Foundation, under\r
+grant CNS-0435060, grant CCR-0325197 and grant EN-CS-0329609.\r
+\r
+Author's addresses: G. Zhou, Computer Science Department,\r
+College of William and Mary; Y. Wu  {and} J. A. Stankovic,\r
+Computer Science Department, University of Virginia; T. Yan,\r
+Eaton Innovation Center; T. He, Computer Science Department,\r
+University of Minnesota; C. Huang, Google; T. F. Abdelzaher,\r
+(Current address) NASA Ames Research Center, Moffett Field, California 94035.\r
+\end{bottomstuff}\r
+\r
+\maketitle\r
+\r
+\r
+\section{Introduction}\r
+\r
+As a new technology, Wireless Sensor Networks (WSNs) has a wide\r
+range of applications [Culler 2001,Bahl 2002,Akyildiz 2001], including\r
+environment monitoring, smart buildings, medical care, industrial and\r
+military applications. Among them, a recent trend is to develop\r
+commercial sensor networks that require pervasive sensing of both\r
+environment and human beings, for example, assisted living\r
+[Akyildiz 2002,Harvard 2001,CROSSBOW] and smart homes\r
+[Harvard 2001,Adya 2001,CROSSBOW].\r
+% quote\r
+\begin{quote}\r
+``For these applications, sensor devices are incorporated into human\r
+cloths [Natarajan 2001,Zhou 2006,Bahl 2002,Adya 2001] for monitoring\r
+health related information like EKG readings, fall detection, and voice recognition".\r
+\end{quote}\r
+While collecting all these multimedia information\r
+[Akyildiz 2002] requires a high network throughput, off-the-shelf\r
+sensor devices only provide very limited bandwidth in a single\r
+channel: 19.2Kbps in MICA2 [Bahl 2002] and 250Kbps in MICAz.\r
+\r
+In this article, we propose MMSN, abbreviation for Multifrequency\r
+Media access control for wireless Sensor Networks. The main\r
+contributions of this work can be summarized as follows.\r
+% itemize\r
+\begin{itemize}\r
+\item To the best of our knowledge, the MMSN protocol is the first\r
+multifrequency MAC protocol especially designed for WSNs, in which\r
+each device is equipped with a single radio transceiver and\r
+the MAC layer packet size is very small.\r
+\item Instead of using pairwise RTS/CTS frequency negotiation\r
+[Adya 2001,Culler 2001; Tzamaloukas 2001; Zhou 2006],\r
+we propose lightweight frequency assignments, which are good choices\r
+for many deployed comparatively static WSNs.\r
+\item We develop new toggle transmission and snooping techniques to\r
+enable a single radio transceiver in a sensor device to achieve\r
+scalable performance, avoiding the nonscalable ``one\r
+control channel + multiple data channels'' design [Natarajan 2001].\r
+\end{itemize}\r
+\r
+% Head 1\r
+\section{MMSN Protocol}\r
+\r
+% Head 2\r
+\subsection{Frequency Assignment}\r
+\r
+We propose a suboptimal distribution to be used by each node, which is\r
+easy to compute and does not depend on the number of competing\r
+nodes. A natural candidate is an increasing geometric sequence, in\r
+which\r
+% Numbered Equation\r
+\begin{equation}\r
+\label{eqn:01}\r
+P(t)=\frac{b^{\frac{t+1}{T+1}}-b^{\frac{t}{T+1}}}{b-1},\r
+\end{equation}\r
+where $t=0,{\ldots}\,,T$, and $b$ is a number greater than $1$.\r
+\r
+In our algorithm, we use the suboptimal approach for simplicity and\r
+generality. We need to make the distribution of the selected back-off\r
+time slice at each node conform to what is shown in Equation\r
+(\ref{eqn:01}). It is implemented as follows: First, a random\r
+variable $\alpha$ with a uniform distribution within the interval\r
+$(0, 1)$ is generated on each node, then time slice $i$ is selected\r
+according to the following equation:\r
+% Unnumbered Equation\r
+\[\r
+i=\lfloor(T+1)\log_b[\alpha(b-1)+1]\rfloor.\r
+\]\r
+It can be easily proven that the distribution of $i$ conforms to Equation\r
+(\ref{eqn:01}).\r
+\r
+So protocols [Bahl 2002,Culler 2001,Zhou 2006,Adya 2001,Culler 2001;\r
+Tzamaloukas-01; Akyildiz-01] that use RTS/CTS\r
+controls\footnote{RTS/CTS controls are required to be implemented by\r
+802.11-compliant devices. They can be used as an optional mechanism\r
+to avoid Hidden Terminal Problems in the 802.11 standard and\r
+protocols based on those similar to [Akyildiz 2001] and\r
+[Adya 2001].} for frequency negotiation and reservation are not\r
+suitable for WSN applications, even though they exhibit good\r
+performance in general wireless ad hoc\r
+networks.\r
+\r
+% Head 3\r
+\subsubsection{Exclusive Frequency Assignment}\r
+\r
+In exclusive frequency assignment, nodes first exchange their IDs\r
+among two communication hops so that each node knows its two-hop\r
+neighbors' IDs. In the second broadcast, each node beacons all\r
+neighbors' IDs it has collected during the first broadcast period.\r
+\r
+% Head 4\r
+\paragraph{Eavesdropping}\r
+\r
+Even though the even selection scheme leads to even sharing of\r
+available frequencies among any two-hop neighborhood, it involves a\r
+number of two-hop broadcasts. To reduce the communication cost, we\r
+propose a lightweight eavesdropping scheme.\r
+\r
+\subsection{Basic Notations}\r
+\r
+As Algorithm~\ref{alg:one} states, for each frequency\r
+number, each node calculates a random number (${\textit{Rnd}}_{\alpha}$) for\r
+itself and a random number (${\textit{Rnd}}_{\beta}$) for each of its two-hop\r
+neighbors with the same pseudorandom number generator.\r
+% Algorithm\r
+\begin{algorithm}[t]\r
+\SetAlgoNoLine\r
+\KwIn{Node $\alpha$'s ID ($ID_{\alpha}$), and node $\alpha$'s\r
+neighbors' IDs within two communication hops.}\r
+\KwOut{The frequency number ($FreNum_{\alpha}$) node $\alpha$ gets assigned.}\r
+$index$ = 0; $FreNum_{\alpha}$ = -1\;\r
+\Repeat{$FreNum_{\alpha} > -1$}{\r
+        $Rnd_{\alpha}$ = Random($ID_{\alpha}$, $index$)\;\r
+        $Found$ = $TRUE$\;\r
+        \For{each node $\beta$ in $\alpha$'s two communication hops\r
+    }{\r
+      $Rnd_{\beta}$ = Random($ID_{\beta}$, $index$)\;\r
+      \If{($Rnd_{\alpha} < Rnd_{\beta}$) \text{or} ($Rnd_{\alpha}$ ==\r
+          $Rnd_{\beta}$ \text{and} $ID_{\alpha} < ID_{\beta}$)\;\r
+      }{\r
+        $Found$ = $FALSE$; break\;\r
+      }\r
+        }\r
+     \eIf{$Found$}{\r
+           $FreNum_{\alpha}$ = $index$\;\r
+         }{\r
+           $index$ ++\;\r
+     }\r
+      }\r
+\caption{Frequency Number Computation}\r
+\label{alg:one}\r
+\end{algorithm}\r
+\r
+Bus masters are divided into two disjoint sets, $\mathcal{M}_{RT}$\r
+and $\mathcal{M}_{NRT}$.\r
+% description\r
+\begin{description}\r
+\item[RT Masters]\r
+$\mathcal{M}_{RT}=\{ \vec{m}_{1},\dots,\vec{m}_{n}\}$ denotes the\r
+$n$ RT masters issuing real-time constrained requests. To model the\r
+current request issued by an $\vec{m}_{i}$ in $\mathcal{M}_{RT}$,\r
+three parameters---the recurrence time $(r_i)$, the service cycle\r
+$(c_i)$, and the relative deadline $(d_i)$---are used, with their\r
+relationships.\r
+\item[NRT Masters]\r
+$\mathcal{M}_{NRT}=\{ \vec{m}_{n+1},\dots,\vec{m}_{n+m}\}$ is a set\r
+of $m$ masters issuing nonreal-time constrained requests. In our\r
+model, each $\vec{m}_{j}$ in $\mathcal{M}_{NRT}$ needs only one\r
+parameter, the service cycle, to model the current request it\r
+issues.\r
+\end{description}\r
+\r
+Here, a question may arise, since each node has a global ID. Why\r
+don't we just map nodes' IDs within two hops into a group of\r
+frequency numbers and assign those numbers to all nodes within two\r
+hops?\r
+\r
+\section{Simulator}\r
+\label{sec:sim}\r
+\r
+If the model checker requests successors of a state which are not\r
+created yet, the state space uses the simulator to create the\r
+successors on-the-fly. To create successor states the simulator\r
+conducts the following steps.\r
+% enumerate\r
+\begin{enumerate}\r
+\item Load state into microcontroller model.\r
+\item Determine assignments needed for resolving nondeterminism.\r
+\item For each assignment.\r
+      \begin{enumerate}\r
+      \item either call interrupt handler or simulate effect of next instruction, or\r
+      \item evaluate truth values of atomic propositions.\r
+      \end{enumerate}\r
+\item Return resulting states.\r
+\end{enumerate}\r
+Figure~\ref{fig:one} shows a typical microcontroller C program that\r
+controls an automotive power window lift. The program is one of the\r
+programs used in the case study described in Section~\ref{sec:sim}.\r
+At first sight, the programs looks like an ANSI~C program. It\r
+contains function calls, assignments, if clauses, and while loops.\r
+% Figure\r
+\begin{figure}\r
+\centerline{\includegraphics{acmsmall-mouse}}\r
+\caption{Code before preprocessing.}\r
+\label{fig:one}\r
+\end{figure}\r
+\r
+\subsection{Problem Formulation}\r
+\r
+The objective of variable coalescence-based offset assignment is to find\r
+both the coalescence scheme and the MWPC on the coalesced graph. We start\r
+with a few definitions and lemmas for variable coalescence.\r
+\r
+% Enunciations\r
+\begin{definition}[Coalesced Node (C-Node)]A C-node is a set of\r
+live ranges (webs) in the AG or IG that are coalesced. Nodes within the same\r
+C-node cannot interfere with each other on the IG. Before any coalescing is\r
+done, each live range is a C-node by itself.\r
+\end{definition}\r
+\r
+\begin{definition}[C-AG (Coalesced Access Graph)]The C-AG is the access\r
+graph after node coalescence, which is composed of all C-nodes and C-edges.\r
+\end{definition}\r
+\r
+\begin{lemma}\r
+The C-MWPC problem is NP-complete.\r
+\end{lemma}\r
+\begin{proof} C-MWPC can be easily reduced to the MWPC problem assuming a\r
+coalescence graph without any edge or a fully connected interference graph.\r
+Therefore, each C-node is an uncoalesced live range after value separation\r
+and C-PC is equivalent to PC. A fully connected interference graph is made\r
+possible when all live ranges interfere with each other. Thus, the C-MWPC\r
+problem is NP-complete.\r
+\end{proof}\r
+\r
+\begin{lemma}[Lemma Subhead]The solution to the C-MWPC problem is no\r
+worse than the solution to the MWPC.\r
+\end{lemma}\r
+\begin{proof}\r
+Simply, any solution to the MWPC is also a solution to the\r
+C-MWPC. But some solutions to C-MWPC may not apply to the MWPC (if any\r
+coalescing were made).\r
+\end{proof}\r
+\r
+\section{Performance Evaluation}\r
+\r
+During all the experiments, the Geographic Forwarding (GF)\r
+[Akyildiz 2001] routing protocol is used. GF exploits geographic\r
+information of nodes and conducts local data-forwarding to achieve\r
+end-to-end routing. Our simulation is\r
+configured according to the settings in\r
+Table~\ref{tab:one}. Each run lasts for 2 minutes and\r
+repeated 100 times. For each data value we present in the results,\r
+we also give its 90\% confidence interval.\r
+% Table\r
+\begin{table}%\r
+\tbl{Simulation Configuration\label{tab:one}}{%\r
+\begin{tabular}{|l|l|}\r
+\hline\r
+TERRAIN{$^a$}   & (200m$\times$200m) Square\\\hline\r
+Node Number     & 289\\\hline\r
+Node Placement  & Uniform\\\hline\r
+Application     & Many-to-Many/Gossip CBR Streams\\\hline\r
+Payload Size    & 32 bytes\\\hline\r
+Routing Layer   & GF\\\hline\r
+MAC Layer       & CSMA/MMSN\\\hline\r
+Radio Layer     & RADIO-ACCNOISE\\\hline\r
+Radio Bandwidth & 250Kbps\\\hline\r
+Radio Range     & 20m--45m\\\hline\r
+\end{tabular}}\r
+\begin{tabnote}%\r
+\Note{Source:}{This is a table\r
+sourcenote. This is a table sourcenote. This is a table\r
+sourcenote.}\r
+\vskip2pt\r
+\Note{Note:}{This is a table footnote.}\r
+\tabnoteentry{$^a$}{This is a table footnote. This is a\r
+table footnote. This is a table footnote.}\r
+\end{tabnote}%\r
+\end{table}%\r
+\r
+\section{Conclusions}\r
+\r
+In this article, we develop the first multifrequency MAC protocol for\r
+WSN applications in which each device adopts a\r
+single radio transceiver. The different MAC design requirements for\r
+WSNs and general wireless ad-hoc networks are\r
+compared, and a complete WSN multifrequency MAC design (MMSN) is\r
+put forth. During the MMSN design, we analyze and evaluate different\r
+choices for frequency assignments and also discuss the nonuniform\r
+back-off algorithms for the slotted media access design.\r
+\r
+% Start of "Sample References" section\r
+\r
+\section{Typical references in new ACM Reference Format}\r
+A paginated journal article \cite{Abril07}, an enumerated\r
+journal article \cite{Cohen07}, a reference to an entire issue \cite{JCohen96},\r
+a monograph (whole book) \cite{Kosiur01}, a monograph/whole book in a series (see 2a in spec. document)\r
+\cite{Harel79}, a divisible-book such as an anthology or compilation \cite{Editor00}\r
+followed by the same example, however we only output the series if the volume number is given\r
+\cite{Editor00a} (so Editor00a's series should NOT be present since it has no vol. no.),\r
+a chapter in a divisible book \cite{Spector90}, a chapter in a divisible book\r
+in a series \cite{Douglass98}, a multi-volume work as book \cite{Knuth97},\r
+an article in a proceedings (of a conference, symposium, workshop for example)\r
+(paginated proceedings article) \cite{Andler79}, a proceedings article\r
+with all possible elements \cite{Smith10}, an example of an enumerated\r
+proceedings article \cite{VanGundy07},\r
+an informally published work \cite{Harel78}, a doctoral dissertation \cite{Clarkson85},\r
+a master's thesis: \cite{anisi03}, an online document / world wide web resource \cite{Thornburg01}, \cite{Ablamowicz07},\r
+\cite{Poker06}, a video game (Case 1) \cite{Obama08} and (Case 2) \cite{Novak03}\r
+and \cite{Lee05} and (Case 3) a patent \cite{JoeScientist001},\r
+work accepted for publication \cite{rous08}, 'YYYYb'-test for prolific author\r
+\cite{SaeediMEJ10} and \cite{SaeediJETC10}. Other cites might contain\r
+'duplicate' DOI and URLs (some SIAM articles) \cite{Kirschmer:2010:AEI:1958016.1958018}.\r
+Boris / Barbara Beeton: multi-volume works as books\r
+\cite{MR781536} and \cite{MR781537}.\r
+\r
+% Appendix\r
+\appendix\r
+\section*{APPENDIX}\r
+\setcounter{section}{1}\r
+In this appendix, we measure\r
+the channel switching time of Micaz [CROSSBOW] sensor devices.\r
+In our experiments, one mote alternatingly switches between Channels\r
+11 and 12. Every time after the node switches to a channel, it sends\r
+out a packet immediately and then changes to a new channel as soon\r
+as the transmission is finished. We measure the\r
+number of packets the test mote can send in 10 seconds, denoted as\r
+$N_{1}$. In contrast, we also measure the same value of the test\r
+mote without switching channels, denoted as $N_{2}$. We calculate\r
+the channel-switching time $s$ as\r
+\begin{eqnarray}%\r
+s=\frac{10}{N_{1}}-\frac{10}{N_{2}}. \nonumber\r
+\end{eqnarray}%\r
+By repeating the experiments 100 times, we get the average\r
+channel-switching time of Micaz motes: 24.3$\mu$s.\r
+\r
+\appendixhead{ZHOU}\r
+\r
+% Acknowledgments\r
+\begin{acks}\r
+The authors would like to thank Dr. Maura Turolla of Telecom\r
+Italia for providing specifications about the application scenario.\r
+\end{acks}\r
+\r
+% Bibliography\r
+\bibliographystyle{ACM-Reference-Format-Journals}\r
+\bibliography{acmsmall-sample-bibfile}\r
+                             % Sample .bib file with references that match those in\r
+                             % the 'Specifications Document (V1.5)' as well containing\r
+                             % 'legacy' bibs and bibs with 'alternate codings'.\r
+                             % Gerry Murray - March 2012\r
+\r
+% History dates\r
+\received{February 2007}{March 2009}{June 2009}\r
+\r
+% Electronic Appendix\r
+\elecappendix\r
+\r
+\medskip\r
+\r
+\section{This is an example of Appendix section head}\r
+\r
+Channel-switching time is measured as the time length it takes for\r
+motes to successfully switch from one channel to another. This\r
+parameter impacts the maximum network throughput, because motes\r
+cannot receive or send any packet during this period of time, and it\r
+also affects the efficiency of toggle snooping in MMSN, where motes\r
+need to sense through channels rapidly.\r
+\r
+By repeating experiments 100 times, we get the average\r
+channel-switching time of Micaz motes: 24.3 $\mu$s. We then conduct\r
+the same experiments with different Micaz motes, as well as\r
+experiments with the transmitter switching from Channel 11 to other\r
+channels. In both scenarios, the channel-switching time does not have\r
+obvious changes. (In our experiments, all values are in the range of\r
+23.6 $\mu$s to 24.9 $\mu$s.)\r
+\r
+\section{Appendix section head}\r
+\r
+The primary consumer of energy in WSNs is idle listening. The key to\r
+reduce idle listening is executing low duty-cycle on nodes. Two\r
+primary approaches are considered in controlling duty-cycles in the\r
+MAC layer.\r
+\r
+\end{document}\r
+% End of v2-acmsmall-sample.tex (March 2012) - Gerry Murray, ACM\r
+\r
+\r
diff --git a/v2-acmsmall.zip b/v2-acmsmall.zip
new file mode 100644 (file)
index 0000000..c1c429d
Binary files /dev/null and b/v2-acmsmall.zip differ
diff --git a/v2-readme.txt b/v2-readme.txt
new file mode 100644 (file)
index 0000000..da72285
--- /dev/null
@@ -0,0 +1,23 @@
+ACM Transactions and Journals (small trim Size) - V2 (April 2012)\r
+-----------------------------------------------------------------\r
+\r
+The following files are available in the v2-acmlarge.zip archive:\r
+\r
+acmsmall.cls                           - This is V1.4 of the LaTeX2e class file for the 'acmsmall template/format'\r
+ACM-Reference-Format-Journals.bst      - This is the bibliography style file for the New ACM Reference Format (March 2012)\r
+acmsmall-sample-bibfile.bib            - This is the bibliography database file\r
+v2-acmsmall-guide.pdf                  - This is a PDF of the "author guidelines' for the acmlsmall template\r
+v2-acmsmall-sample.pdf                 - This is a PDF file showing what YOU should obtain\r
+                                         when YOU compile the sample source .tex file\r
+\r
+v2-acmsmall-sample.tex                 - the revised (v2) source sample .tex file \r
+v2-acmsmall-sample.bbl                 - the bbl file as a result of 'BibTeX'ing \r
+acmsmall-mouse.eps                     - Graphics file used in sample\r
+acmsmall-mouse.pdf                     - a graphics file in PDF format, (compatible with pdflatex)\r
+algorithm2e.sty                                - Algorithm package used in sample\r
+url.sty                                        - URL package used in formatting the references\r
+readme.txt                             - This file!\r
+\r
+Happy (La)TeXing!!!\r
+\r
+Aptara/Gerry Murray - April 2012\r