From pankaj@cs.duke.edu Tue Jan 28 12:18:48 1997
Received: from Sunburn.Stanford.EDU (Sunburn.Stanford.EDU [171.64.67.178]) by flamingo.Stanford.EDU (8.8.4/8.7.1) with ESMTP id MAA29467 for <latombe@flamingo.Stanford.EDU>; Tue, 28 Jan 1997 12:18:47 -0800
From: pankaj@cs.duke.edu
Received: from CS.Stanford.EDU (CS.Stanford.EDU [171.64.64.64])
          by Sunburn.Stanford.EDU (8.8.4/8.8.4) with ESMTP
	  id MAA14874; Tue, 28 Jan 1997 12:18:46 -0800 (PST)
Received: from bobcat.cs.duke.edu (bobcat.cs.duke.edu [152.3.140.36])
          by CS.Stanford.EDU (8.8.4/8.8.4) with ESMTP
	  id MAA27468; Tue, 28 Jan 1997 12:17:24 -0800 (PST)
Received: from euclid.cs.duke.edu (euclid [152.3.140.121]) by bobcat.cs.duke.edu (8.8.5/8.6.9) with ESMTP id PAA06656; Tue, 28 Jan 1997 15:18:38 -0500 (EST)
Received: (pankaj@localhost) 
	by euclid.cs.duke.edu (8.8.5/8.6.9)
	id PAA23421; Tue, 28 Jan 1997 15:18:38 -0500 (EST)
Date: Tue, 28 Jan 1997 15:18:38 -0500 (EST)
Message-Id: <199701282018.PAA23421@euclid.cs.duke.edu>
To: latombe@CS.Stanford.EDU, pragh@almaden.ibm.com, rajeev@CS.Stanford.EDU
Subject: all.shar
Status: RO

#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#	paper.tex
#	resolve.fig
#	resolve.ps
#	resolve.tex
#	cone.fig
#	cone.ps
#	cone.tex
#	shadow.fig
#	shadow.ps
#	shadow.tex
#	para.eps
#	plot-t.eps
#	traj.eps
# This archive created: Tue Jan 28 15:18:14 1997
# By:	Pankaj Kumar Agarwal (pankaj@cs.duke.edu)
# 	Duke University CS Dept.
export PATH; PATH=/bin:$PATH
if test -f 'paper.tex'
then
	echo shar: will not over-write existing file "'paper.tex'"
else
cat << \SHAR_EOF > 'paper.tex'
% If you are not Pankaj, set \pankaj to false and everything
% will work just fine. Of course, Pankaj should do the opposite.
\newif\ifpankaj
% \pankajfalse
\pankajtrue

\ifpankaj
\documentstyle[proc,epsfig]{article}
%\input epsfig
\else
\documentstyle[proc,epsf]{article}
%\input epsf
\fi

%\input amssym.def
%\input amssym

\def\ph{\varphi}
%\def\reals{{\Bbb R}}
%\def\sphere{{\Bbb S}}
\def\reals{{\Re}}
\def\sphere{{\cal S}}
\def\PP{{\bf \Pi}}
\def\O{{\cal O}}
\def\C{{\cal C}}
\def\M{{\cal M}}


\newtheorem{theorem}{Theorem}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{claim}[theorem]{Claim}
\newtheorem{observation}[theorem]{Observation}

\begin{document}


\title{Nonholonomic Path Planning for Pushing a Disk Among Obstacles}
\author{
Pankaj K.~Agarwal\thanks{\hspace*{2mm}Computer Science Department,
        Duke University, Box 90129, Durham, NC 27708-0129.
        Supported by National Science Foundation Grant
        CCR-93--01259, by an Army Research Office MURI grant
        DAAH04-96-1-0013, by a Sloan fellowship, by an NYI award,
        and by matching funds from Xerox Corporation, and by a
	grant from the U.S.-Israeli Binational Science Foundation.
}
\and
Jean-Claude~Latombe
\thanks{\hspace*{2mm}Department of Computer Science,
                Stanford University, Stanford, CA 95305.
                Supported by an ARO MURI Grant DAAH04-96-1-0007.}
\and
Rajeev~Motwani
\thanks{\hspace*{2mm}Department of Computer Science,
                Stanford University,
        Stanford, CA 94305. Supported by an Alfred P.~Sloan Research
Fellowship, an IBM Faculty Partnership Award, an ARO MURI Grant
DAAH04-96-1-0007, and NSF Young Investigator Award CCR-9357849,
with matching funds from IBM, Mitsubishi, Schlumberger Foundation,
Shell Foundation, and Xerox Corporation.
}
\and
Prabhakar Raghavan
\thanks{\hspace*{2mm}IBM Almaden Research Center,
        650 Harry Road, San Jose, CA 95120.}
}
\maketitle
\begin{abstract}
We consider the path-planning problem for a robot {\em pushing}
an object in an environment containing obstacles. This new variant
of the classical robot path-planning problem has several interesting
geometric aspects, which we explore.
We focus on the setting where the robot makes a point contact with the
object which is assumed to be a unit disk, while the obstacles are
assumed to be polygonal.
\end{abstract}

\section{Introduction}
Nonprehensile manipulation exploits task mechanics to achieve a goal
without grasping~\cite{Lyn96}. Pushing is one important type of
nonprehensile manipulation that can allow complex tasks to be
performed by simple mechanisms; it may also enable a robot to move
parts that are too heavy to be lifted. The mechanics of pushing is
studied in~\cite{Mas86}, where a simple rule is established to
qualitatively determine the motion of a pushed object.  This analysis
has inspired several nonprehensile manipulation algorithms, in
particular the design of part feeders to re-orient parts arriving on a
conveyor belt~\cite{AHLM96,PS88,WGPB96}.

In this paper we consider the path-planning problem for a robot
pushing an object on a plane cluttered with obstacles, under
quasi-static assumptions. This problem has been previously studied
in~\cite{Lyn92,Lyn93,Lyn96,LM95}, where it was shown that conditions for
stable pushing induce {\em nonholonomic constraints} in the motion of
the pushed object. The controllability of the pushed object was
analyzed in depth and an effective path planner was implemented using
a variant of the algorithm in~\cite{BL93}. This algorithm discretizes
the search space by integrating, at each step, a small number of
feasible motions over a short duration $\delta t$ (for a given
constant velocity). It is asymptotically complete, i.e., if a solution
path exists, the planners finds it, provided that $\delta t$ is
selected small enough.  Here, our goal is to build the foundations of
a complete (or exact) planning algorithm for the pushing problem, by
exploring in detail the geometric properties of the possible pushing
paths.
% THIS SEEMS TO BE REPEATED IMMEDIATELY BELOW, SO I COMMENTED
% IT OUT - PR
%In Section~\ref{sec:reach} we focus on computing a single pushing
%motion (during which the pushing contact and the direction of motion
%of the robot remain constant) to bring the pushed object to its goal,
%if one such motion exists.
%In the process we establish several properties
%of the trajectory followed by a pushed disk.
%In Section~\ref{sec:planner} we generalize these insights to
%obtain a planner for the general case
%where the robot would have to change the pushing contact and
%direction.

We have initiated our investigation by
considering a simple setting where the robot makes a point contact
with the object which is assumed to be a unit disk, while the
obstacles are assumed to be polygonal.  The first part of our
study (Section~\ref{sec:model}) concerns the nonholonomic trajectory
followed by the disk-center as the robot pushes the disk.  We study
the geometric properties of this trajectory and establish a variety of
properties, some of which are counter-intuitive. For example, the
hooked shape of the trajectory allows the pushing robot to move the
disk around corners of the obstacles, with only a single push of fixed
direction. In Section~\ref{sec:reach}, we explicate the structure of
the reachable region in the presence of a point obstacle, as a
stepping stone to devising a complete planning algorithm. Based on
this, in Section~\ref{sec:planner} we provide a scheme for 
the path-planning problem in the presence of obstacles. In 
Section~\ref{sec:conc}, we conclude by arguing that the properties of the
nonholonomic trajectories of a pushed disk, which underlie
our planning scheme, should hold in more general settings.

\section{The Model}
\label{sec:model}
Let $D$ be a disk of unit radius, and let $P$ be a point pusher that
chooses a point $p$ on the boundary of $D$ and pushes $D$ at unit
velocity by maintaining the contact at $p$. Once $p$ is chosen, it
remains fixed during the course of a single push (stable
pushing~\cite{LM95}), in the sense that $P$ always maintains a sticking
contact at $p$ and that it never slips around the periphery. This
follows from the assumption of a perfectly rough surface~\cite{LM96}
at the point of contact\footnote{Lynch and Mason~\cite{LM96} point out
that, in general, an assumption of infinite friction is not sufficient
to guarantee a sticking contact, and they provide some extra conditions 
that must be satisfied for this purpose. Since our setting satisfies
these conditions, it suffices for our purposes to assume infinite
friction.}.
%% I COULDN'T QUITE FIGURE OUT WHAT WE WERE SUPPOSED TO
%% REMEMBER AND FORGET, SO I JUST CUT THE FOLLOWING OUT. -- PR
% This corresponds to assuming an
% infinite coefficient of friction at the pusher-disk contact point.
% {\bf Prabhakar -- this infinite friction bit needs to be fixed since
% Mason's paper had a counter-example.}
% Removing this assumption and allowing finite friction is easy,
% as will be shown later in the paper.  {\bf [*** Don't forget to say
% somewhere that finite friction is handled by curring the nonholonomic
% trajectories earlier.] I spoke to J-C about this and he realized
% that this should be forgotten.}
The contact between $P$ and $D$ breaks when
$P$'s motion is tangent to $D$. As in~\cite{LM95,Mas86}, we assume
the {\em quasi-static\/} model, where friction between the disk and
its supporting plane is large enough so that there is no motion after
pushing ceases.
%(This is an idealization when $\theta$ becomes close to
%$\pi/2$, unless we have pincers that bind the pusher at $p$
%and yet allow the disk to rotate freely about $p$.)
Let $O$ denote the center of $D$.
We study the trajectory followed by $O$ as $P$ pushes $D$.
%consider what happens when the pusher at $p$ moves to the
%right at unit velocity.

A configuration of the pair $(P,D)$ can be represented as a point $(x, y,
\theta)$ in $\reals^2 \times \sphere^1$, where $(x,y)$ denote
the $x$- and $y$-coordinates of the center of $D$ and $\theta$
denotes the angle between the ray emanating from $p$ in
direction $\vec{pO}$ and the $x$-axis; see Figure~\ref{fig:position}.
Let $(0,0,\ph)$ denote the initial position of $D$, i.e.,
$D$ is originally centered at the origin and the initial direction of
$\vec{pO}$ is $\ph$.

We first derive the equation for the trajectory of $D$,
assuming that $P$ is pushing $D$ to right at $p$ in the horizontal
direction.
Later we will
consider the case where $P$ pushes $D$ at $p$ in an arbitrary
direction.

\begin{figure}[htbp]
\begin{center}
\input resolve
%\centerline{\epsfxsize=2.0in\epsfbox{resolve.ps}}
\caption{\em Resolution of the unit-velocity push at $p$.}
\label{fig:position}
\end{center}
\end{figure}

If $\ph=0$, i.e., $p$ is the leftmost point of $D$,
then the center of $D$ translates along the $x$-axis;
if $\ph=\pi/2$, then $D$ does not move
at all. Suppose the position of $D$ at time $t$ is $(x(t), y(t),
\theta (t))$.
Then the unit velocity motion at $p$ may be resolved into a radial
component (towards the center of the disk)
of magnitude $\cos\theta$, and a
tangential component of magnitude $\sin\theta$.
Thus we have
\[
d\theta/dt = \sin\theta,
\]
which implies
\[ t = \int {1 \over \sin \theta} d\theta =
                \ln \left(\tan {\theta \over 2}\right ) + c,
\]
where $c$ is a constant. Since $\theta=\ph$ at $t=0$, we
obtain
\begin{equation}
\label{eq:theta}
\theta(t) = 2 \tan^{-1} \left ( \tan \left ({\ph \over 2}\right)
                \cdot e^t \right ) .
\end{equation}
$D$ stops moving once $\theta=\pi/2$,
therefore
$$0 \le t \le \ln (\cot (\ph/2)).$$

The radial component of the unit velocity determines the $x$-
and $y$-motion of the center of $D$ as follows.
\begin{eqnarray*}
dx/dt & = & \cos^2\theta,\\
dy/dt & = & \sin\theta \cos\theta.
\end{eqnarray*}
Solving  these equations and using the fact that the initial
position of $D$ is $(0,0,\ph)$, we obtain the following:
\begin{eqnarray}
x(\theta) & = & \ln \left(\frac{\tan\theta/2}{\tan\ph/2} \right)
        + \cos\theta -\cos\ph \\
y(\theta) & = & \sin\theta - \sin\ph.
\end{eqnarray}

Substituting (\ref{eq:theta}) in these equations, we obtain
\begin{eqnarray}
x(t) & = & t + {1 - \tan^2(\ph/2) \cdot e^{2t} \over 1 + \tan^2(\ph/2)
\cdot e^{2t}} - \cos\ph \\
y (t) & = & {2 \tan(\ph/2)\cdot e^t \over 1 + \tan^2(\ph/2)
					\cdot e^{2t}} - \sin\ph
\end{eqnarray}
for $0 \le t \le \ln\cot(\ph/2)$.
Figure~\ref{fig:trajectory}(i) plots $\theta$, $x$, and $y$, as a
function of time; and Figure~\ref{fig:trajectory}~(ii) shows how
$x$- and $y$-positions vary with $\theta$.
(Note that for $\ph=0$, the trajectory will be a straight
line; this is the infinite prefix of the curve ``before'' it
enters the regime starting from the small $\ph$ plotted in
Figure~\ref{fig:trajectory}.)

\begin{figure}[htbp]
\begin{center}
\centerline{\epsfxsize=2.0in\epsfbox{para.eps}}
%\centerline{\epsfxsize=2.0in\epsfbox{parameter.eps}}
\vspace{-5mm}
(i)

\centerline{\epsfxsize=2.0in\epsfbox{plot-t.eps}}
%\centerline{\epsfxsize=2.0in\epsfbox{plot-theta.eps}}
\vspace{-5mm}
(ii)
\caption{(i)$\theta(t)$, $x(t)$, and $y(t)$, with $\ph=\pi/1000$;
(ii) $x(\theta)$ and $y(\theta)$, with $\ph=\pi/1000$.
\label{fig:trajectory}}
\end{center}
\end{figure}

The trajectory of $O$,  as $D$ is being pushed, resembles a
``hockey stick'' (see
Figure~~\ref{fig:stick}). We will use $\Pi$ to denote
this trajectory.

\begin{figure}[htbp]
%\begin{center}
\centerline{\epsfxsize=3.0in\epsfbox{traj.eps}}
%\centerline{\epsfxsize=3.0in\epsfbox{stick.eps}}
\caption{The hockey stick curve, with $\ph=\pi/100$.}
\label{fig:stick}
%\end{center}
\end{figure}

The vertical displacement from initial position $\theta=\ph$ to
$\theta=\pi/2$ is, as expected, $1-\sin\ph$
(this is exactly the initial height of $p$ below the center of
the disk).
The curve has the following ``memoryless'' property: the
trajectory subsequent to any particular value of $\theta$
is independent of the initial angle $\ph\leq\theta$ at
which the pushing motion was begun.
We now state some basic properties of $\Pi$; the proofs are
omitted here.

\begin{theorem}
\label{theo:prop}
(i) $\Pi$ is a convex curve.\\
(ii) Let $\ell$ be a line intersecting $\Pi$ at two points,
then $\Pi$ is monotone with respect to $\ell$.\\
(iii) The curvature of $\Pi$ at a point with orientation
$\theta$ is $\tan \theta$. If we denote by
$\kappa(t)$ the curvature of $\Pi$ as a function of time, then
$$\kappa(t) = {2 \tan (\ph/2) \cdot  e^t \over 1 - \tan^2(\ph/2)
						\cdot  e^{2t}}$$
for $0 \le t \le \ln \cot(\ph/2)$.
\end{theorem}

Instead of pushing $D$ at $p$ in the
horizontal direction, $P$ can push $D$ in any direction while
keeping the contact at $p$.
Suppose $P$ pushes $D$ at $p$ (with unit speed) in a direction $\psi$;
set $\alpha=\ph-\psi$.
If we rotate the coordinate frame by an angle of $\psi$ in
the counterclockwise direction, with respect to origin, and
denote a configuration of $(P, D)$ in the new frame as $(x',
y', \theta')$, then 
$\theta' (t), x'(t)$, and $y'(t)$ can be rewritten as follows.
\begin{eqnarray}
\theta'(t) &=& 2 \tan^{-1} \left ( \tan (\alpha/2) \cdot e^t\right)\\
x'(t) & = & t + {1 - \tan^2(\alpha/2) \cdot e^{2t} \over 1 +
                \tan^2(\alpha/2) e^{2t}} - \cos\alpha \\
y' (t) & = & {2 \tan(\alpha/2) e^t \over 1 + \tan^2(\alpha/2)
\cdot e^{2t}} - \sin\alpha .
\end{eqnarray}
The corresponding configuration in the original coordinate frame 
can be written as 
\begin{eqnarray*}
\theta (t) & = & \theta' (t) + \psi\\
\left [ \matrix{x(t)\cr y(t)}\right ] & = & 
	\left [ \matrix{\cos\psi & -\sin\psi\cr
			\sin\psi & \cos\psi
			} \right ]
	\left[ \matrix{x'(t) \cr y'(t)}\right ] .
\end{eqnarray*}
%If we want to push $D$ to the
%right, then $\ph - \pi/2 \le \psi \le \ph$; otherwise
%$\ph-\pi/2 \le \psi \le \ph + \pi/2$.
If we fix a pair $\ph, \psi$, the trajectory of $O$ is uniquely
defined.
We denote it by $\Pi_{\ph,\psi}$, and refer to such a
push as the {\em $(\ph,\psi)$-push\/}. Let
$$\PP = \{ \Pi_{\ph,\psi} \mid -\pi/2 \le \ph \le \pi/2, \,
\ph-\pi/2 \le \psi \le \ph+\pi/2 \}$$
denote the set of all possible trajectories that
$O$ can follow, starting from the origin.
For a trajectory $\Pi \in \PP$, we will
refer to the final position on $\Pi$ as
the {\em tip\/} of $\Pi$. We say that a point $q$ is {\em reachable\/}
from the origin by a {\em $(\ph,\psi)$-push\/} if $q \in
\Pi_{\ph,\psi}$. Suppose $q = \Pi_{\ph,\psi}(t)$, then
$\theta (t)-\psi$ is called the {\em arriving angle}.
If we allow to vary the pushing direction, we represent a
{\em configuration\/} of $(P,D)$ by $(x,y,\theta-\psi)$, where
$(x,y)$ denote the $x$- and $y$-coordinates of $O$ and
$\theta-\psi$
denotes the arriving angle of disk at $(x,y)$.


Using Theorem~\ref{theo:prop}, one can prove the following
properties of curves in $\PP$.
\begin{lemma}
\label{lem:2-intersect}
Any two curves $\Pi_1, \Pi_2$ in $\PP$, such that $\Pi_1$ is
not contained in $\Pi_2$, intersect in at most one point other
than the origin.
\end{lemma}


\begin{lemma}
\label{lem:arrive}
For any point $q$ and  for any $-\pi/2 \le \theta \le \pi/2$, there
is a unique $(\ph,\psi)$ pair such that $D$ reaches $q$ by the
$(\ph,\psi)$-push with arriving angle $\theta$.
\end{lemma}
%
%An immediate consequence of Lemma~\ref{lem:2-intersect} is
%the following corollary.

\begin{corollary}
\label{cor:2-intersect}
Given two points $q_1, q_2$ in the plane, different from the
origin,
there is at most one
curve $\Pi \in \PP$ that passes through $q_1$ and $q_2$.
(Recall that all curves in $\PP$ pass through the origin.)
\end{corollary}

\section{The Reachable Region}
\label{sec:reach}
Let $\O$ be a set of polygonal obstacles, with a total of
$n$ vertices.
We study the set $R$ of points to which the
center of $D$ can be moved from the origin {\em using a single push\/}
without intersecting any of the obstacles.
In the process we develop the shape of the reachable region
for motion via pushing, which plays a fundamental role
analogous to the visibility region in
conventional path planning.
In Section~\ref{sec:planner} below we will build on this notion to devise
a path-planning scheme.

Let $p$ and $q$ be any two points in the plane, and let
$\theta$ be an arbitrary arriving angle in $[-\pi/2,\pi/2]$.
In the absence of obstacles it is possible
to push a disk from $p$ to $q$, or vice versa, such that the
arriving angle is $\theta$.
The situation is very different in the presence of
obstacles: one may have trajectories from $p$ to $q$ for
several arriving angles, and yet have no trajectory from $q$
to $p$ at all.
(Consider a single trajectory from $p$ to $q$ starting from a
small value $\phi$, say $\pi/100$ as in Figure~\ref{fig:stick};
mark out a swath of width 2 about this trajectory.
Imagine the rest of the plane being covered by small obstacles
that allow no gaps between them.
Now the asymmetric nature of the hockey stick curve prevents
motion from $q$ to $p$.)

Let $(x,y,\theta)$ be a configuration of $(P,D)$.
Lemma~\ref{lem:arrive} implies that there is a unique
$(\ph,\psi)$-push by which $D$ reaches the point $(x,y)$ at
the angle $\theta$. The configuration $(x, y, \theta)$ is
called {\em reachable\/} if $D$ does not intersect any
obstacle as it is moved from the origin to the point $(x,y)$
along $\Pi_{\ph,\psi}$.
A point $q=(x_q,y_q)$ is called {\em reachable\/} if there
exists an arriving angle $\alpha$ ($-\pi/2 \le \alpha \le
\pi/2$) so that the configuration
$(x_q, y_q, \alpha)$ is reachable.
We will refer to the set of nonreachable points from the
origin as the {\em shadow region\/} of $\O$, and denote it by
$R$.

In order to have a better understanding of the shadow region,
we first study the simplest case in which
$\O$ is just a {\em point\/} $v$ on the $x$-axis, with $x(v) > 1$.
Let $B$ be the unit-radius disk centered at $v$.
For any configuration $(x,y, \theta)$ with $(x,y) \in B$, the
moving disk $D$ intersects the point obstacle $v$. Therefore
all points lying in $B$ are unreachable, i.e., $B \subseteq
R$.
Moreover a point $q$ is reachable if there is a curve $\Pi_{\ph,\psi}
\in \PP$ that contains $q$ and  $\Pi_{\ph,\psi}[o,q]$
does not intersect $B$.
For any two points $a, b \in \partial B$, let $\widehat{ab}
\subseteq \partial B$
be the clockwise-oriented arc from $a$ to $b$.
Let $l$ and $r$ be the leftmost and the rightmost points of
$B$, respectively; $l$ and $r$ partition $\partial B$ into two
semicircles --- lower and upper semicircles.
Let $u$ (resp.\ $w$) be the point on the lower (resp.\ upper)
semicircle so that
the line tangent to $B$ at  $u$ (resp.\ $w$) passes through
the origin.
Let $\rho_u$ be the rightward-directed ray emanating from
$u$ in direction $\vec{ou}$; similarly define $\rho_w$.
Let $C$ be the region bounded by the rays $\rho_u$, $\rho_w$, and
the arc $\widehat{wu}$ (shaded
region in Figure~\ref{fig:cone}). For any point $q \not\in D \cup
C$, the segment $oq$ does not intersect $B$, therefore $q$ is
reachable, thereby implying that $R \subseteq D \cup C$.
We next describe the portion of $C$ that forms the shadow
region.

\begin{figure}[htbp]
\begin{center}
\input cone
\caption{Disk $B$ and the region $C$.}
\label{fig:cone}
\end{center}
\end{figure}

\begin{lemma}
For any point $q \in \partial B$, there is at most one curve
in $\PP$ that is tangent to $B$ at $q$.
\end{lemma}

\begin{lemma}
There is a unique point $\xi^-$ on the arc $\widehat{ur}$ so
that the curve $\Pi \in \PP$ with $\xi^-$ as its tip
is tangent to the arc $\widehat{u\xi^-}$ at
another point $\chi^-$. Moreover, for any point $s \in \widehat{u\chi^-}$,
the curve in $\Pi$ tangent to $B$ at $s$ does not intersect
the interior of $D$.
There are corresponding points $\xi^+, \chi^+$ on the
upper semicircle.
\end{lemma}

We now define two arcs $\gamma^-, \gamma^+$ as follows. For a point $s \in
\widehat{u\chi^+}$, let $\tau(s)$ denote the tip of the hockey-stick
curve that is tangent to $B$ at $s$.
Define 
\begin{eqnarray*}
\gamma^{-} &=& \{ \tau(s) \mid s \in \widehat{u\chi^-} \}\\
\gamma^+ &=& \{ \tau(s) \mid s \in \widehat{\chi^+w} \}.
\end{eqnarray*}
We claim that $\gamma^-$ is a $x$-monotone curve whose
leftmost endpoint if $\xi^-$ and whose
asymptote is the line parallel to $\rho_u$ and passing through
$v$, the center of $B$; $\gamma^+$ also satisfies similar
properties.

\begin{lemma}
A point $q \in R$ lies in the shadow region
if and only if $q$ lies above $\gamma^-$ and below $\gamma^+$.
\end{lemma}

The above lemma implies that $R$ is the region
bounded by the circular arc $\widehat{\xi^+\xi^-}$ and the arcs
$\gamma^-$ and $\gamma^+$; see Figure~\ref{fig:reachable}.
The shadow region of a segment can also be analyzed in a
similar way. It is also bounded by $O(1)$ curves, and has a
similar structure.


\begin{figure}[htbp]
\begin{center}
\input shadow
%\centerline{\epsfxsize=2.0in\epsfbox{extreme.eps}}
\caption{Reachable region; the shaded region is not reachable;
$\ph=\pi/100$}
\label{fig:reachable}
\end{center}
\end{figure}

The shadow region induced by multiple obstacles is
quite complex.
If $R_e$ denotes the shadow region of an obstacle edge
$e$, then one is tempted to say that the overall shadow region
$R$  is equal to $\bigcup_{e \in \O} R_e$.
Although it is true that $\bigcup_e R_e \subseteq R$, some
other points may also be nonreachable.
Let $\overline{R}$ be the set of nonreachable configurations
of $(P,D)$, then by definition, the shadow region is
$R= \{ (x,y) \mid (x,y,\alpha) \in \overline{R},\, \forall \alpha
\in [-\pi/2,\pi/2]\}$.
In a companion paper we will prove that $R$ has $O(n^2)$
vertices and edges,
and describe an efficient algorithm for
computing $R$ in an appropriate model of computation.
One can construct a scene with $n$ obstacle edges so that the
shadow region has $\Omega(n^2)$ vertices.

\section{Path Planning}
\label{sec:planner}
We consider the problem of moving a disk through a scene with
obstacles by a sequence of pushes.
Formally, given a set $\O$ of obstacles and a pair of points
$I$ and $F$, we want to compute a path $\Gamma$ for the
center of $D$ from $I$ to $F$ that satisfies the following
properties: (i) $D$ does not intersect any obstacle as its center
moves from $I$ to $F$ along $\Gamma$, and (ii) $\Gamma = \gamma_1 \|
\gamma_2 \| \cdots \| \gamma_k$ for some $k \ge 1$ such that $\gamma_i$
is a $(\ph_i, \psi_i)$-push from a point $q_{i-1}$ to $q_i$
($q_0=I$ and $q_k=F$).
We propose an efficient scheme for computing such a path $\Gamma$.
The goal is to plan a path that minimizes the number
of distinct pushes needed to move $O$ from $I$ to $F$.
Here we are assuming a model of computation in which
various {\em basic operations} on curves in $\PP$ (such as
intersection points between two curves, intersection detection
with a line, etc.) can be performed in constant time.

The fact that there is an infinite family of trajectories 
(rather than just a straight line segment)
that the disk can use to reach a point from a fixed point
could be used to go ``around'' obstacles with
a single push, giving rise to plans that require fewer pushes
than if only straight-line motion were used. We now explore the
power of such pushes and how they can be used to plan motion.
A push, in general, will consist of a pair of angles
$\ph$ and $\ph'$ -- the push is begun as before at
$\ph$; when the position $\theta=\ph'$ is reached, we
cease pushing.

We assume that the obstacles are disjoint polygons in the plane;
let $n$ be the total number of obstacle vertices.
We expand each obstacle $\O_i \in \O$  by taking its Minkowski
sum with a unit-radius disk.
Let ${\cal C}$ denote the set of expanded obstacles.
For a point $q$ in the plane, let $\PP[q]$ denote the set of
trajectories of $O$ induced by $(\ph, \psi)$-pushes, assuming that
the $O$ was initially at $q$.

We propose the following preprocessing algorithm.
The idea is to
construct a {\em roadmap} in the plane by constructing
a {\em directed reachability graph} $G$ on a set ${\cal M}$ of $m$ points
selected in the plane; $I$ and $F$ are also added to ${\cal M}$.
A milestone $M_2$ is said to be
{\em reachable} from a milestone $M_1$ when it is possible to move the
disk center from $M_1$ to $M_2$ using only one push, i.e., if there exists
a trajectory $\Pi \in \PP[M_1]$ such that $M_2 \in \Pi$ and
$\Pi[M_1,M_2]$ does not intersect any expanded obstacle in
$\C$.
The reachability graph $G$ has the set of points
in ${\cal M}$ as its vertex set. There is a directed edge from a vertex
$u$ to a vertex $v$ if and only if $v$ is reachable from $u$; in addition,
we label the edge $(u,v)$ with a representation of the trajectory $\Pi$
that reaches from $u$ to $v$. The path-planning algorithm
is summarized below.

\bigskip

\noindent{\bf Algorithm Path planning}\\
\noindent{\em Input:} Obstacles ${\cal C}$ and points $I$ and
$F$.\\
\noindent{\em Output:} A path from $I$ to $F$.
\begin{enumerate}
\item Choose an integer $m$.
\item Select a set ${\cal M}$ of $m$ milestones on the
boundaries of the obstacles in ${\cal C}$, and add $I, F$ to
${\cal M}$.
\item {\bf for} all $M_1, M_2 \in {\cal M}$ {\bf do}
\begin{itemize}
\item check whether there exists $\Pi \in \PP[M_1]$
such that $M_2 \in \Pi$ and $\Pi[M_1,M_2]$ does not intersect
any expanded obstacle in $\C$;
\item if so, add the edge from $M_1$ to $M_2$ into $G$ and label it with $\Pi$.
\end{itemize}
\item Compute a shortest path in $G$ from $I$ to $F$.
\end{enumerate}

Several details need to be filled in before we can analyze this algorithm.
The milestones are selected as uniformly spaced points along the boundaries
of the polygons in ${\cal C}$, although various other selection
strategies are possible such as selecting the milestones at random.
To decide whether milestone $M_2$ is reachable from the milestone $M_1$,
we discretize the family of curves in $\PP[M_1]$ by suitably
discretizing the angle $\ph$ that parametrize the curves
$\Pi \in \PP[M_1]$.
For each $\ph$, there is at most one $\Pi_{\ph,\psi} \in
\PP[M_1]$ that contains $M_2$. Assuming that we can compute
this trajectory in constant time, we can easily check in $O(n)$
time whether
$\Pi_{\ph,\psi}[M_1,M_2]$ intersects any expanded obstacle.
If we find such a $\Pi_{\ph,\psi}$, we add $(M_1, M_2)$ as an
edge in $G$.
The granularity of the discretization determines
the trade-off between the efficiency and the
robustness of the algorithm.
If we choose $1/\epsilon$ different values of $\ph$, then
a naive implementation of this algorithm requires
$\Theta(m^2 n/\epsilon)$ time.
For each $\ph$, we can however compute in $O(n \log n)$ time
the set of points that
are reachable from $M_1$ by a single $(\ph, \psi)$-push, for
some $\psi$. After having computed this set, all the
milestones in $M_2 \in \M$ that are reachable from $M_1$ by a
$(\ph,\psi)$-push can be computed in $O(m \log n)$ time.
Hence, the overall running time of the algorithm is
$O((1/\epsilon) \cdot m(m+n)\log n)$.


\begin{theorem}
Algorithm Path-planning can be implemented to run using $O((1/\epsilon)
\cdot m(m+n) \log n)$ basic operations.
\end{theorem}

%Given the reachability graph $G$, query processing reduces to a shortest
%path computation in the graph $G$. Given the initial and final locations,
%$q_i$ and $q_f$, we first determine the sets of milestones $R_i$
%reachable from $q_i$, and the set of milestones $R_f$ from which $q_f$
%is reachable. Then, the path requiring the minimum number of pushes is
%a shortest directed path from a vertex in $R_i$ to a vertex in $R_f$. This
%is summarized in the following algorithm.
%
%\bigskip
%
%\noindent{\bf Algorithm Query}\\
%\noindent{\em Input:} Reachability graph $G$, and a query $(q_id, q_f)$.\\
%\noindent{\em Output:} A path from $q_i$ to $q_f$..
%\begin{enumerate}
%\item Determine the set $R_i$ of milestones reachable from $q_i$.
%\item Determine the set $R_f$ of milestones from which $q_f$ is
%reachable.
%\item Compute the shortest path in $G$ from $R_i$ to $R_f$.
%\item Return the concatenation of the curves labeling the edges in the
%shortest path.
%\end{enumerate}
%
%Note that the shortest path can be computed via breadth-first search
%in $G$. However, it may be desirable to solve the all-pairs shortest
%paths problem in $G$ during the preprocessing stage, since that would
%make the query processing significantly more efficient, albeit at the
%cost of increasing the preprocessing time to $O(m^3)$.
%
%{\bf The query stage is pretty inefficient. Should we stick to
%single-shot path planning?}

\section{Conclusions}
\label{sec:conc}
In this paper we have laid a foundation for the design of
algorithms for planning nonholonomic motion via pushing.
We now remark that our work extends beyond the case when the
object being pushed is a disk, to other geometries.
For example, our analysis in Section~\ref{sec:model} 
extends to the case in which the
moving object $D$ is a convex polygon and the point of contact
lies in the interior of an edge; the actual trajectory
followed by $D$ in this case depends on the point of contact.
In general, all we require is (a) a trajectory for the object
being pushed that is defined by one parameter (in our case
$\theta$); (b) a finite termination point for the trajectory
(in our case the point $\theta=\pi/2$); (c) the properties
in the statements of Lemmas~\ref{lem:2-intersect} and \ref{lem:arrive},
as well as properties (i)--(iii) of Theorem~\ref{theo:prop}.
These properties suffice to allow us to build up machinery similar
to that in Section~\ref{sec:reach}.
Our work opens up the study of such more general settings, and
the descriptive complexities of shadow regions.

\begin{thebibliography}{99}

\bibitem{AHLM96}
Akella, S., Huang, W., Lynch, K., and Mason, M. 1996.  Planar
manipulation on a conveyor with a one joint robot.  In {\em Robotics
Research}, G.~Giralt and G.~Hirzinger (eds.), Springer, New York, NY,
pp.~265--276.

\bibitem{BL93}
J.~Barraquand and J.C.~Latombe. 1993. Nonholonomic multibody mobile
robots: Controllability and motion planning in the presence of
obstacles, {\em Algorithmica}, 10(2-3-4):121--155.

\bibitem{Lyn92}
Lynch, K. 1992. The mechanics of fine manipulation by pushing. In {\em
Proc.~Int.~Conf.~on Robotics and Automation}, pp.~2269--2276.

\bibitem{Lyn93}
Lynch, K. 1993. Estimating the friction parameters of pushed objects.
In {\em Proc.~IEEE/RSJ Int.~Conf.~Intelligent Robots and Systems},
pp.~186--193.

\bibitem{Lyn96}
Lynch, K. 1996.  {\em Nonprehensile Robotic Manipulation}.  PhD
Thesis, The Robotics Institute, Carnegie Mellon University.

\bibitem{LM95}
Lynch, K.~and Mason, M.T. 1995. Stable pushing: Mechanics, controllability,
and planning. In {\em Algorithmic Foundations of Robotics}, Goldberg, K.~et al.
(eds.), A K Peters, Wellesley, MA, pp.~239--262.

\bibitem{LM96}
Lynch, K.~and Mason, M.T. 1996. Pulling by Pushing, Slip with Infinite
Friction, and Perfectly Rough Surfaces. {\em Int.~J.~of Robotics Research},
14(2):174--183.

\bibitem{Mas86}
M.T.~Mason. 1986. Mechanics and planning of manipulator pushing
operations, {\em Int.~J.~of Robotics Research}, 5(3):53--71.

\bibitem{PS88}
M.A.~Peshkin and A.C.~Sanderson. 1988. Planning robotic manipulation
strategies for workpieces that slide. {\em IEEE Tr.~on Robotics and
Automation}, 4(5):524--531.

\bibitem{WGPB96}
Wiegley, J., Goldberg, K., Peshkin, M., and Brokowski, M. 1996.  A
complete algorithm for designing and passive fences to orient parts.
In {\em Proc.~Int.~Conf.~on Robotics and Automation}, pp.~1133--1139.

\end{thebibliography}

\end{document}

SHAR_EOF
fi # end of overwriting check
if test -f 'resolve.fig'
then
	echo shar: will not over-write existing file "'resolve.fig'"
else
cat << \SHAR_EOF > 'resolve.fig'
#FIG 3.1
Portrait
Center
Inches
1200 2
5 1 0 1 -1 7 0 0 -1 0.000 0 0 0 0 4690.050 3982.598 4794 3855 4846 3930 4854 3997
1 3 0 1 -1 7 0 0 -1 0.0000000 1 0.000 4600 4000 800 800 4600 4000 5400 4800
1 3 0 1 -1 0 0 0 20 0.0000000 1 0.000 4600 4000 25 25 4600 4000 4625 4025
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
	 3935 4420 4600 4000
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
	1 1 1.00 40.00 80.00
	 4600 4000 5040 3690
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
	1 1 1.00 45.00 90.00
	 2940 4425 3915 4425
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
	1 1 1.00 45.00 90.00
	 3931 4444 4351 5109
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
	1 1 1.00 40.00 80.00
	 4600 4000 5055 4005
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 1 2
	1 1 1.00 40.00 80.00
	 4600 3570 4600 4000
4 0 -1 0 0 0 9 0.0000000 6 255 405 3915 4275 $p$\001
4 0 -1 0 0 0 9 0.0000000 6 210 870 4891 3945 $\\theta$\001
4 0 -1 0 0 0 9 0.0000000 6 120 195 2987 4399 $P$\001
4 0 -1 0 0 0 9 0.0000000 6 210 465 4427 3997 $O$\001
4 0 -1 0 0 0 9 0.0000000 6 255 780 4590 4132 $(x,y)$\001
4 0 -1 0 0 0 9 0.0000000 6 120 555 4382 5059 $\\sin\\theta$\001
SHAR_EOF
fi # end of overwriting check
if test -f 'resolve.ps'
then
	echo shar: will not over-write existing file "'resolve.ps'"
else
cat << \SHAR_EOF > 'resolve.ps'
%!PS-Adobe-2.0 EPSF-2.0
%%Title: resolve.fig
%%Creator: fig2dev Version 3.1 Patchlevel 1
%%CreationDate: Wed Sep  4 18:38:22 1996
%%For: pankaj@euclid (Pankaj Kumar Agarwal,,6540,)
%%Orientation: Portrait
%%BoundingBox: 0 0 172 117
%%Pages: 0
%%BeginSetup
%%IncludeFeature: *PageSize Letter
%%EndSetup
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {} def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def

end
save
-175.0 308.0 translate
1 -1 scale

/clp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/l {lineto} bind def
/m {moveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
  bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
  4 -2 roll mul srgb} bind def
 /DrawEllipse {
	/endangle exch def
	/startangle exch def
	/yrad exch def
	/xrad exch def
	/y exch def
	/x exch def
	/savematrix mtrx currentmatrix def
	x y tr xrad yrad sc 0 0 1 startangle endangle arc
	closepath
	savematrix setmatrix
	} def

/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
%%EndProlog

$F2psBegin
10 setmiterlimit
 0.06000 0.06000 sc
7.500 slw
% Arc
n 4690.05 3982.60 164.58 -50.83 5.02 arc
gs col-1 s gr

% Ellipse
n 4600 4000 800 800 0 360 DrawEllipse gs col-1 s gr

% Ellipse
n 4600 4000 25 25 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr

% Polyline
n 3935 4420 m 4600 4000 l  gs col-1 s gr 
% Polyline
n 4600 4000 m 5040 3690 l  gs col-1 s gr 
n 4963.08 3719.73 m 5040.00 3690.00 l 4986.12 3752.43 l  4975.10 3736.58 l 4963.08 3719.73 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 2940 4425 m 3915 4425 l  gs col-1 s gr 
n 3825.00 4402.50 m 3915.00 4425.00 l 3825.00 4447.50 l  3825.50 4425.50 l 3825.00 4402.50 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 3931 4444 m 4351 5109 l  gs col-1 s gr 
n 4321.96 5020.89 m 4351.00 5109.00 l 4283.92 5044.92 l  4303.44 5033.41 l 4321.96 5020.89 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 4600 4000 m 5055 4005 l  gs col-1 s gr 
n 4975.22 3984.12 m 5055.00 4005.00 l 4974.79 4024.12 l  4975.50 4004.62 l 4975.22 3984.12 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 4600 3570 m 4600 4000 l  gs col-1 s gr 
n 4580.00 3650.00 m 4600.00 3570.00 l 4620.00 3650.00 l  4600.50 3650.50 l 4580.00 3650.00 l clp gs 0.00 setgray ef gr gs col-1 s gr
$F2psEnd
restore
SHAR_EOF
fi # end of overwriting check
if test -f 'resolve.tex'
then
	echo shar: will not over-write existing file "'resolve.tex'"
else
cat << \SHAR_EOF > 'resolve.tex'
\begin{picture}(0,0)%
\ifpankaj
\epsfig{file=resolve.ps}%
\else
\epsfbox{resolve.ps}%
\fi
\end{picture}%
\setlength{\unitlength}{0.00083300in}%
%
\begingroup\makeatletter\ifx\SetFigFont\undefined
% extract first six characters in \fmtname
\def\x#1#2#3#4#5#6#7\relax{\def\x{#1#2#3#4#5#6}}%
\expandafter\x\fmtname xxxxxx\relax \def\y{splain}%
\ifx\x\y   % LaTeX or SliTeX?
\gdef\SetFigFont#1#2#3{%
  \ifnum #1<17\tiny\else \ifnum #1<20\small\else
  \ifnum #1<24\normalsize\else \ifnum #1<29\large\else
  \ifnum #1<34\Large\else \ifnum #1<41\LARGE\else
     \huge\fi\fi\fi\fi\fi\fi
  \csname #3\endcsname}%
\else
\gdef\SetFigFont#1#2#3{\begingroup
  \count@#1\relax \ifnum 25<\count@\count@25\fi
  \def\x{\endgroup\@setsize\SetFigFont{#2pt}}%
  \expandafter\x
    \csname \romannumeral\the\count@ pt\expandafter\endcsname
    \csname @\romannumeral\the\count@ pt\endcsname
  \csname #3\endcsname}%
\fi
\fi\endgroup
\begin{picture}(2480,1928)(2929,-4282)
\put(3916,-3436){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{rm}$p$}}}
\put(4892,-3106){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{rm}$\theta$}}}
\put(2988,-3560){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{rm}$P$}}}
\put(4428,-3158){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{rm}$O$}}}
\put(4591,-3293){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{rm}$(x,y)$}}}
\put(4383,-4220){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{rm}$\sin\theta$}}}
\end{picture}
SHAR_EOF
fi # end of overwriting check
if test -f 'cone.fig'
then
	echo shar: will not over-write existing file "'cone.fig'"
else
cat << \SHAR_EOF > 'cone.fig'
#FIG 3.1
Portrait
Center
Inches
1200 2
1 3 0 1 -1 0 0 0 20 0.0000000 1 0.000 4138 3776 20 20 4138 3776 4158 3796
1 3 0 1 -1 7 0 0 -1 0.0000000 1 0.000 4138 3776 566 566 4138 3776 4704 4342
1 3 0 1 -1 0 0 0 20 0.0000000 1 0.000 2284 3776 20 20 2284 3776 2304 3796
2 1 1 1 -1 7 0 0 -1 2.000 0 0 -1 0 0 2
	 2193 3776 5042 3776
2 1 1 1 -1 7 0 0 -1 1.800 0 0 -1 0 0 2
	 2289 3776 5198 4729
2 1 1 1 -1 7 0 0 -1 1.800 0 0 -1 0 0 2
	 2303 3776 5193 2831
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
	1 1 1.00 40.00 80.00
	 3998 4335 5181 4723
2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 1 0 2
	1 1 1.00 40.00 80.00
	 3968 3231 5174 2837
2 1 0 0 -1 0 2 0 2 0.000 0 0 -1 0 0 19
	 5186 2831 4017 3219 4199 3213 4381 3255 4495 3327 4587 3407
	 4653 3540 4701 3691 4708 3770 4696 3904 4641 4049 4587 4128
	 4526 4189 4471 4231 4398 4280 4271 4322 4120 4340 3998 4322
	 5193 4716
4 0 -1 0 0 0 7 0.0000000 6 180 315 2259 3728 $o$\001
4 0 -1 0 0 0 7 0.0000000 6 180 315 4162 3722 $v$\001
4 0 -1 0 0 0 7 0.0000000 6 180 270 3610 3734 $l$\001
4 0 -1 0 0 0 7 0.0000000 6 180 285 4750 3746 $r$\001
4 0 -1 0 0 0 7 0.0000000 6 180 360 3944 3201 $w$\001
4 0 -1 0 0 0 7 0.0000000 6 180 315 3986 4292 $u$\001
4 0 -1 0 0 0 7 0.0000000 6 180 345 4052 3504 $B$\001
4 0 -1 0 0 0 7 0.0000000 6 90 165 4987 3219 $C$\001
4 0 -1 0 0 0 7 0.0000000 6 90 360 5110 2775 $\\rho_w$\001
4 0 -1 0 0 0 7 0.0000000 6 90 330 5095 4628 $\\rho_u$\001
SHAR_EOF
fi # end of overwriting check
if test -f 'cone.ps'
then
	echo shar: will not over-write existing file "'cone.ps'"
else
cat << \SHAR_EOF > 'cone.ps'
%!PS-Adobe-2.0 EPSF-2.0
%%Title: cone.fig
%%Creator: fig2dev Version 3.1 Patchlevel 1
%%CreationDate: Tue Jan 28 14:58:52 1997
%%For: pankaj@euclid (Pankaj Kumar Agarwal,,6540,)
%%Orientation: Portrait
%%BoundingBox: 0 0 199 123
%%Pages: 0
%%BeginSetup
%%IncludeFeature: *PageSize Letter
%%EndSetup
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {} def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def

end
save
-130.0 285.0 translate
1 -1 scale

/clp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/l {lineto} bind def
/m {moveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
  bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
  4 -2 roll mul srgb} bind def
 /DrawEllipse {
	/endangle exch def
	/startangle exch def
	/yrad exch def
	/xrad exch def
	/y exch def
	/x exch def
	/savematrix mtrx currentmatrix def
	x y tr xrad yrad sc 0 0 1 startangle endangle arc
	closepath
	savematrix setmatrix
	} def

/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
%%EndProlog

$F2psBegin
10 setmiterlimit
 0.06000 0.06000 sc
% Polyline
n 5186 2831 m 4017 3219 l  4199 3213 l  4381 3255 l  4495 3327 l  4587 3407 l 
 4653 3540 l  4701 3691 l  4708 3770 l  4696 3904 l  4641 4049 l 
 4587 4128 l  4526 4189 l  4471 4231 l  4398 4280 l  4271 4322 l 
 4120 4340 l  3998 4322 l  5193 4716 l gs 0.90 setgray ef gr 
7.500 slw
% Ellipse
n 4138 3776 566 566 0 360 DrawEllipse gs col-1 s gr

% Ellipse
n 2284 3776 20 20 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr

% Polyline
	[33.3] 0 setdash
n 2193 3776 m 5042 3776 l  gs col-1 s gr 	[] 0 setdash
% Polyline
	[30.0] 0 setdash
n 2289 3776 m 5198 4729 l  gs col-1 s gr 	[] 0 setdash
% Polyline
	[30.0] 0 setdash
n 2303 3776 m 5193 2831 l  gs col-1 s gr 	[] 0 setdash
% Polyline
n 3998 4335 m 5181 4723 l  gs col-1 s gr 
n 5111.22 4679.06 m 5181.00 4723.00 l 5098.75 4717.07 l  5105.48 4698.57 l 5111.22 4679.06 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Polyline
n 3968 3231 m 5174 2837 l  gs col-1 s gr 
n 5091.74 2842.83 m 5174.00 2837.00 l 5104.17 2880.85 l  5098.46 2862.34 l 5091.74 2842.83 l clp gs 0.00 setgray ef gr gs col-1 s gr
% Ellipse
n 4138 3776 20 20 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr

$F2psEnd
restore
SHAR_EOF
fi # end of overwriting check
if test -f 'cone.tex'
then
	echo shar: will not over-write existing file "'cone.tex'"
else
cat << \SHAR_EOF > 'cone.tex'
\begin{picture}(0,0)%
\epsfig{file=cone.ps}%
\end{picture}%
\setlength{\unitlength}{0.00083300in}%
%
\begingroup\makeatletter\ifx\SetFigFont\undefined
% extract first six characters in \fmtname
\def\x#1#2#3#4#5#6#7\relax{\def\x{#1#2#3#4#5#6}}%
\expandafter\x\fmtname xxxxxx\relax \def\y{splain}%
\ifx\x\y   % LaTeX or SliTeX?
\gdef\SetFigFont#1#2#3{%
  \ifnum #1<17\tiny\else \ifnum #1<20\small\else
  \ifnum #1<24\normalsize\else \ifnum #1<29\large\else
  \ifnum #1<34\Large\else \ifnum #1<41\LARGE\else
     \huge\fi\fi\fi\fi\fi\fi
  \csname #3\endcsname}%
\else
\gdef\SetFigFont#1#2#3{\begingroup
  \count@#1\relax \ifnum 25<\count@\count@25\fi
  \def\x{\endgroup\@setsize\SetFigFont{#2pt}}%
  \expandafter\x
    \csname \romannumeral\the\count@ pt\expandafter\endcsname
    \csname @\romannumeral\the\count@ pt\endcsname
  \csname #3\endcsname}%
\fi
\fi\endgroup
\begin{picture}(3029,2038)(2182,-3902)
\put(2260,-2889){\makebox(0,0)[lb]{\smash{\SetFigFont{7}{8.4}{rm}$o$}}}
\put(4163,-2883){\makebox(0,0)[lb]{\smash{\SetFigFont{7}{8.4}{rm}$v$}}}
\put(3611,-2895){\makebox(0,0)[lb]{\smash{\SetFigFont{7}{8.4}{rm}$l$}}}
\put(4751,-2907){\makebox(0,0)[lb]{\smash{\SetFigFont{7}{8.4}{rm}$r$}}}
\put(3945,-2362){\makebox(0,0)[lb]{\smash{\SetFigFont{7}{8.4}{rm}$w$}}}
\put(3987,-3453){\makebox(0,0)[lb]{\smash{\SetFigFont{7}{8.4}{rm}$u$}}}
\put(4053,-2665){\makebox(0,0)[lb]{\smash{\SetFigFont{7}{8.4}{rm}$B$}}}
\put(4988,-2380){\makebox(0,0)[lb]{\smash{\SetFigFont{7}{8.4}{rm}$C$}}}
\put(5111,-1936){\makebox(0,0)[lb]{\smash{\SetFigFont{7}{8.4}{rm}$\rho_w$}}}
\put(5096,-3789){\makebox(0,0)[lb]{\smash{\SetFigFont{7}{8.4}{rm}$\rho_u$}}}
\end{picture}
SHAR_EOF
fi # end of overwriting check
if test -f 'shadow.fig'
then
	echo shar: will not over-write existing file "'shadow.fig'"
else
cat << \SHAR_EOF > 'shadow.fig'
#FIG 3.1
Portrait
Center
Inches
1200 2
1 3 0 1 -1 0 0 0 20 0.0000000 1 0.000 4138 3776 20 20 4138 3776 4158 3796
1 3 0 1 -1 0 2 0 2 0.0000000 1 0.000 4138 3776 566 566 4138 3776 4704 4342
2 1 1 1 -1 7 0 0 -1 2.000 0 0 -1 0 0 2
	 3445 3776 5042 3776
2 1 1 1 -1 7 0 0 -1 1.800 0 0 -1 0 0 2
	 4142 3768 5692 4282
2 1 1 1 -1 7 0 0 -1 1.800 0 0 -1 0 0 2
	 4142 3768 5732 3259
2 1 1 1 -1 7 0 0 -1 2.000 0 0 -1 0 0 2
	 3998 4335 5181 4723
2 1 1 1 -1 7 0 0 -1 2.000 0 0 -1 0 0 2
	 3968 3231 5174 2837
3 0 0 1 -1 7 0 0 -1 0.000 0 0 0 5
	 4495 3342 4735 3394 5088 3387 5260 3372 5635 3252
3 0 0 1 -1 7 0 0 -1 0.000 0 0 0 5
	 4494 4203 4734 4151 5087 4158 5259 4173 5634 4293
3 0 0 0 -1 0 2 0 2 0.000 0 0 0 17
	 5627 3259 5305 3356 5020 3386 4727 3386 4495 3341 4622 3461
	 4675 3573 4705 3723 4705 3858 4645 4053 4592 4129 4525 4189
	 4690 4166 4982 4151 5125 4159 5380 4211 5627 4286
4 0 -1 0 0 0 7 0.0000000 6 180 315 4162 3722 $v$\001
4 0 -1 0 0 0 7 0.0000000 6 180 360 3944 3201 $w$\001
4 0 -1 0 0 0 7 0.0000000 6 180 345 4052 3504 $B$\001
4 0 -1 0 0 0 9 0.0000000 6 210 450 5372 3731 $R$\001
4 0 -1 0 0 0 9 0.0000000 6 210 825 4510 3304 $\\xi^+$\001
4 0 -1 0 0 0 9 0.0000000 6 210 825 4517 4301 $\\xi^-$\001
4 0 -1 0 0 0 9 0.0000000 6 210 405 3977 4429 $u$\001
4 0 -1 0 0 0 9 0.0000000 6 120 465 5222 2824 $\\rho_w$\001
4 0 -1 0 0 0 9 0.0000000 6 120 435 5162 4684 $\\rho_u$\001
4 0 -1 0 0 0 9 0.0000000 6 135 675 5605 3191 $\\gamma^+$\001
4 0 -1 0 0 0 9 0.0000000 6 135 675 5612 4399 $\\gamma^-$\001
SHAR_EOF
fi # end of overwriting check
if test -f 'shadow.ps'
then
	echo shar: will not over-write existing file "'shadow.ps'"
else
cat << \SHAR_EOF > 'shadow.ps'
%!PS-Adobe-2.0 EPSF-2.0
%%Title: shadow.fig
%%Creator: fig2dev Version 3.1 Patchlevel 1
%%CreationDate: Wed Sep 11 14:32:13 1996
%%For: pankaj@euclid (Pankaj Kumar Agarwal,,6540,)
%%Orientation: Portrait
%%BoundingBox: 0 0 174 122
%%Pages: 0
%%BeginSetup
%%IncludeFeature: *PageSize Letter
%%EndSetup
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {} def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def

end
save
-205.0 285.0 translate
1 -1 scale

/clp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/l {lineto} bind def
/m {moveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
  bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
  4 -2 roll mul srgb} bind def
 /DrawEllipse {
	/endangle exch def
	/startangle exch def
	/yrad exch def
	/xrad exch def
	/y exch def
	/x exch def
	/savematrix mtrx currentmatrix def
	x y tr xrad yrad sc 0 0 1 startangle endangle arc
	closepath
	savematrix setmatrix
	} def

 /DrawSplineSection {
	/y3 exch def
	/x3 exch def
	/y2 exch def
	/x2 exch def
	/y1 exch def
	/x1 exch def
	/xa x1 x2 x1 sub 0.666667 mul add def
	/ya y1 y2 y1 sub 0.666667 mul add def
	/xb x3 x2 x3 sub 0.666667 mul add def
	/yb y3 y2 y3 sub 0.666667 mul add def
	x1 y1 lineto
	xa ya xb yb x3 y3 curveto
	} def

/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
%%EndProlog

$F2psBegin
10 setmiterlimit
 0.06000 0.06000 sc
7.500 slw
% Ellipse
n 4138 3776 566 566 0 360 DrawEllipse gs 0.90 setgray ef gr gs col-1 s gr

0.000 slw
% Open spline
n 5627.00 3259.00 m 5466.00 3307.50 l
	5466.00 3307.50 5305.00 3356.00 5162.50 3371.00 DrawSplineSection
	5162.50 3371.00 5020.00 3386.00 4873.50 3386.00 DrawSplineSection
	4873.50 3386.00 4727.00 3386.00 4611.00 3363.50 DrawSplineSection
	4611.00 3363.50 4495.00 3341.00 4558.50 3401.00 DrawSplineSection
	4558.50 3401.00 4622.00 3461.00 4648.50 3517.00 DrawSplineSection
	4648.50 3517.00 4675.00 3573.00 4690.00 3648.00 DrawSplineSection
	4690.00 3648.00 4705.00 3723.00 4705.00 3790.50 DrawSplineSection
	4705.00 3790.50 4705.00 3858.00 4675.00 3955.50 DrawSplineSection
	4675.00 3955.50 4645.00 4053.00 4618.50 4091.00 DrawSplineSection
	4618.50 4091.00 4592.00 4129.00 4558.50 4159.00 DrawSplineSection
	4558.50 4159.00 4525.00 4189.00 4607.50 4177.50 DrawSplineSection
	4607.50 4177.50 4690.00 4166.00 4836.00 4158.50 DrawSplineSection
	4836.00 4158.50 4982.00 4151.00 5053.50 4155.00 DrawSplineSection
	5053.50 4155.00 5125.00 4159.00 5252.50 4185.00 DrawSplineSection
	5252.50 4185.00 5380.00 4211.00 5503.50 4248.50 DrawSplineSection
	5627.00 4286.00 l gs 0.90 setgray ef gr 
7.500 slw
% Ellipse
n 4138 3776 20 20 0 360 DrawEllipse gs 0.00 setgray ef gr gs col-1 s gr

% Polyline
	[33.3] 0 setdash
n 3445 3776 m 5042 3776 l  gs col-1 s gr 	[] 0 setdash
% Polyline
	[30.0] 0 setdash
n 4142 3768 m 5692 4282 l  gs col-1 s gr 	[] 0 setdash
% Polyline
	[30.0] 0 setdash
n 4142 3768 m 5732 3259 l  gs col-1 s gr 	[] 0 setdash
% Polyline
	[33.3] 0 setdash
n 3998 4335 m 5181 4723 l  gs col-1 s gr 	[] 0 setdash
% Polyline
	[33.3] 0 setdash
n 3968 3231 m 5174 2837 l  gs col-1 s gr 	[] 0 setdash
% Open spline
n 4495.00 3342.00 m 4615.00 3368.00 l
	4615.00 3368.00 4735.00 3394.00 4911.50 3390.50 DrawSplineSection
	4911.50 3390.50 5088.00 3387.00 5174.00 3379.50 DrawSplineSection
	5174.00 3379.50 5260.00 3372.00 5447.50 3312.00 DrawSplineSection
	5635.00 3252.00 l  gs col-1 s gr

% Open spline
n 4494.00 4203.00 m 4614.00 4177.00 l
	4614.00 4177.00 4734.00 4151.00 4910.50 4154.50 DrawSplineSection
	4910.50 4154.50 5087.00 4158.00 5173.00 4165.50 DrawSplineSection
	5173.00 4165.50 5259.00 4173.00 5446.50 4233.00 DrawSplineSection
	5634.00 4293.00 l  gs col-1 s gr

$F2psEnd
restore
SHAR_EOF
fi # end of overwriting check
if test -f 'shadow.tex'
then
	echo shar: will not over-write existing file "'shadow.tex'"
else
cat << \SHAR_EOF > 'shadow.tex'
\begin{picture}(0,0)%
\epsfig{file=shadow.ps}%
\end{picture}%
\setlength{\unitlength}{0.00083300in}%
%
\begingroup\makeatletter\ifx\SetFigFont\undefined
% extract first six characters in \fmtname
\def\x#1#2#3#4#5#6#7\relax{\def\x{#1#2#3#4#5#6}}%
\expandafter\x\fmtname xxxxxx\relax \def\y{splain}%
\ifx\x\y   % LaTeX or SliTeX?
\gdef\SetFigFont#1#2#3{%
  \ifnum #1<17\tiny\else \ifnum #1<20\small\else
  \ifnum #1<24\normalsize\else \ifnum #1<29\large\else
  \ifnum #1<34\Large\else \ifnum #1<41\LARGE\else
     \huge\fi\fi\fi\fi\fi\fi
  \csname #3\endcsname}%
\else
\gdef\SetFigFont#1#2#3{\begingroup
  \count@#1\relax \ifnum 25<\count@\count@25\fi
  \def\x{\endgroup\@setsize\SetFigFont{#2pt}}%
  \expandafter\x
    \csname \romannumeral\the\count@ pt\expandafter\endcsname
    \csname @\romannumeral\the\count@ pt\endcsname
  \csname #3\endcsname}%
\fi
\fi\endgroup
\begin{picture}(2311,2007)(3434,-3896)
\put(4163,-2883){\makebox(0,0)[lb]{\smash{\SetFigFont{7}{8.4}{rm}$v$}}}
\put(3945,-2362){\makebox(0,0)[lb]{\smash{\SetFigFont{7}{8.4}{rm}$w$}}}
\put(4053,-2665){\makebox(0,0)[lb]{\smash{\SetFigFont{7}{8.4}{rm}$B$}}}
\put(5373,-2892){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{rm}$R$}}}
\put(4511,-2465){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{rm}$\xi^+$}}}
\put(4518,-3462){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{rm}$\xi^-$}}}
\put(3978,-3590){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{rm}$u$}}}
\put(5223,-1985){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{rm}$\rho_w$}}}
\put(5163,-3845){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{rm}$\rho_u$}}}
\put(5606,-2352){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{rm}$\gamma^+$}}}
\put(5613,-3560){\makebox(0,0)[lb]{\smash{\SetFigFont{9}{10.8}{rm}$\gamma^-$}}}
\end{picture}
SHAR_EOF
fi # end of overwriting check
if test -f 'para.eps'
then
	echo shar: will not over-write existing file "'para.eps'"
else
cat << \SHAR_EOF > 'para.eps'
%!PS-Adobe-2.0 EPSF-2.0
%%Title: para.fig
%%Creator: fig2dev Version 3.1 Patchlevel 1
%%CreationDate: Mon Jan 27 14:59:05 1997
%%For: pankaj@euclid (Pankaj Kumar Agarwal,,6540,)
%%Orientation: Portrait
%%BoundingBox: 0 0 112 76
%%Pages: 0
%%BeginSetup
%%IncludeFeature: *PageSize Letter
%%EndSetup
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {} def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def

end
save
-138.0 187.0 translate
1 -1 scale

/clp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/l {lineto} bind def
/m {moveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
  bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
  4 -2 roll mul srgb} bind def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
%%EndProlog

$F2psBegin
10 setmiterlimit
 0.06000 0.06000 sc
% Polyline
%
% Begin Imported EPS File: parameter.eps
%
n gs
2325 1875 tr
5.750000 -5.726415 sc
0 -212 tr
0 -40 tr
save
/showpage {} def
% EPS file follows:
%!PS-Adobe-2.0 EPSF-2.0
%%BoundingBox: 0 40 300 252
%%Creator: Mathematica
%%CreationDate: Tue Sep  3 18:58:50 EDT 1996
%%EndComments

/Mathdict 150 dict def
Mathdict begin
/Mlmarg		0 72 mul def
/Mrmarg		0 72 mul def
/Mbmarg		0 72 mul def
/Mtmarg		0 72 mul def
/Mwidth		4 72 mul def
/Mheight	4 72 mul def
/Mtransform	{  } bind def
/Mnodistort	true def
/Mfixwid	true	def
/Mfixdash	false def
/Mrot		0	def
/Mpstart {
MathPictureStart
} bind def
/Mpend {
MathPictureEnd
} bind def
/Mscale {
0 1 0 1
5 -1 roll
MathScale
} bind def
/ISOLatin1Encoding dup where
{ pop pop }
{
[
/.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
} ifelse
/MFontDict 50 dict def
/MStrCat
{
exch
dup length
2 index length add
string
dup 3 1 roll
copy
length
exch dup
4 2 roll exch
putinterval
} def
/MCreateEncoding
{
1 index
255 string cvs
(-) MStrCat
1 index MStrCat
cvn exch
(Encoding) MStrCat
cvn dup where
{
exch get
}
{
pop
StandardEncoding
} ifelse
3 1 roll
dup MFontDict exch known not
{
1 index findfont
dup length dict
begin
{1 index /FID ne
{def}
{pop pop}
ifelse} forall
/Encoding 3 index
def
currentdict
end
1 index exch definefont pop
MFontDict 1 index
null put
}
if
exch pop
exch pop
} def
/ISOLatin1 { (ISOLatin1) MCreateEncoding } def
/ISO8859 { (ISOLatin1) MCreateEncoding } def
/Mcopyfont {
dup
maxlength
dict
exch
{
1 index
/FID
eq
{
pop pop
}
{
2 index
3 1 roll
put
}
ifelse
}
forall
} def
/Plain	/Courier findfont Mcopyfont definefont pop
/Bold	/Courier-Bold findfont Mcopyfont definefont pop
/Italic /Courier-Oblique findfont Mcopyfont definefont pop
/MathPictureStart {
gsave
Mtransform
Mlmarg
Mbmarg
translate
Mwidth
Mlmarg Mrmarg add
sub
/Mwidth exch def
Mheight
Mbmarg Mtmarg add
sub
/Mheight exch def
/Mtmatrix
matrix currentmatrix
def
/Mgmatrix
matrix currentmatrix
def
} bind def
/MathPictureEnd {
grestore
} bind def
/MFill {
0 0 		moveto
Mwidth 0 	lineto
Mwidth Mheight 	lineto
0 Mheight 	lineto
fill
} bind def
/MPlotRegion {
3 index
Mwidth mul
2 index
Mheight mul
translate
exch sub
Mheight mul
/Mheight
exch def
exch sub
Mwidth mul
/Mwidth
exch def
} bind def
/MathSubStart {
Momatrix
Mgmatrix Mtmatrix
Mwidth Mheight
7 -2 roll
moveto
Mtmatrix setmatrix
currentpoint
Mgmatrix setmatrix
9 -2 roll
moveto
Mtmatrix setmatrix
currentpoint
2 copy translate
/Mtmatrix matrix currentmatrix def
3 -1 roll
exch sub
/Mheight exch def
sub
/Mwidth exch def
} bind def
/MathSubEnd {
/Mheight exch def
/Mwidth exch def
/Mtmatrix exch def
dup setmatrix
/Mgmatrix exch def
/Momatrix exch def
} bind def
/Mdot {
moveto
0 0 rlineto
stroke
} bind def
/Mtetra {
moveto
lineto
lineto
lineto
fill
} bind def
/Metetra {
moveto
lineto
lineto
lineto
closepath
gsave
fill
grestore
0 setgray
stroke
} bind def
/Mistroke {
flattenpath
0 0 0
{
4 2 roll
pop pop
}
{
4 -1 roll
2 index
sub dup mul
4 -1 roll
2 index
sub dup mul
add sqrt
4 -1 roll
add
3 1 roll
}
{
stop
}
{
stop
}
pathforall
pop pop
currentpoint
stroke
moveto
currentdash
3 -1 roll
add
setdash
} bind def
/Mfstroke {
stroke
currentdash
pop 0
setdash
} bind def
/Mrotsboxa {
gsave
dup
/Mrot
exch def
Mrotcheck
Mtmatrix
dup
setmatrix
7 1 roll
4 index
4 index
translate
rotate
3 index
-1 mul
3 index
-1 mul
translate
/Mtmatrix
matrix
currentmatrix
def
grestore
Msboxa
3  -1 roll
/Mtmatrix
exch def
/Mrot
0 def
} bind def
/Msboxa {
newpath
5 -1 roll
Mvboxa
pop
Mboxout
6 -1 roll
5 -1 roll
4 -1 roll
Msboxa1
5 -3 roll
Msboxa1
Mboxrot
[
7 -2 roll
2 copy
[
3 1 roll
10 -1 roll
9 -1 roll
]
6 1 roll
5 -2 roll
]
} bind def
/Msboxa1 {
sub
2 div
dup
2 index
1 add
mul
3 -1 roll
-1 add
3 -1 roll
mul
} bind def
/Mvboxa	{
Mfixwid
{
Mvboxa1
}
{
dup
Mwidthcal
0 exch
{
add
}
forall
exch
Mvboxa1
4 index
7 -1 roll
add
4 -1 roll
pop
3 1 roll
}
ifelse
} bind def
/Mvboxa1 {
gsave
newpath
[ true
3 -1 roll
{
Mbbox
5 -1 roll
{
0
5 1 roll
}
{
7 -1 roll
exch sub
(m) stringwidth pop
.3 mul
sub
7 1 roll
6 -1 roll
4 -1 roll
Mmin
3 -1 roll
5 index
add
5 -1 roll
4 -1 roll
Mmax
4 -1 roll
}
ifelse
false
}
forall
{ stop } if
counttomark
1 add
4 roll
]
grestore
} bind def
/Mbbox {
1 dict begin
0 0 moveto
/temp (T) def
{	gsave
currentpoint newpath moveto
temp 0 3 -1 roll put temp
false charpath flattenpath currentpoint
pathbbox
grestore moveto lineto moveto} forall
pathbbox
newpath
end
} bind def
/Mmin {
2 copy
gt
{ exch } if
pop
} bind def
/Mmax {
2 copy
lt
{ exch } if
pop
} bind def
/Mrotshowa {
dup
/Mrot
exch def
Mrotcheck
Mtmatrix
dup
setmatrix
7 1 roll
4 index
4 index
translate
rotate
3 index
-1 mul
3 index
-1 mul
translate
/Mtmatrix
matrix
currentmatrix
def
Mgmatrix setmatrix
Mshowa
/Mtmatrix
exch def
/Mrot 0 def
} bind def
/Mshowa {
4 -2 roll
moveto
2 index
Mtmatrix setmatrix
Mvboxa
7 1 roll
Mboxout
6 -1 roll
5 -1 roll
4 -1 roll
Mshowa1
4 1 roll
Mshowa1
rmoveto
currentpoint
Mfixwid
{
Mshowax
}
{
Mshoway
}
ifelse
pop pop pop pop
Mgmatrix setmatrix
} bind def
/Mshowax {	
0 1
4 index length
-1 add
{
2 index
4 index
2 index
get
3 index
add
moveto
4 index
exch get
Mfixdash
{
Mfixdashp		
}
if
show
} for
} bind def
/Mfixdashp {
dup
length
1
gt
1 index
true exch
{
45
eq
and
} forall
and
{
gsave
(--)		
stringwidth pop
(-)
stringwidth pop
sub
2 div
0 rmoveto
dup
length
1 sub
{
(-)
show
}
repeat
grestore
}
if
} bind def	
/Mshoway {
3 index
Mwidthcal
5 1 roll
0 1
4 index length
-1 add
{
2 index
4 index
2 index
get
3 index
add
moveto
4 index
exch get
[
6 index
aload
length
2 add
-1 roll
{
pop
Strform
stringwidth
pop
neg 
exch
add
0 rmoveto
}
exch
kshow
cleartomark
} for
pop	
} bind def
/Mwidthcal {
[
exch
{
Mwidthcal1
}
forall
]
[
exch
dup
Maxlen
-1 add
0 1
3 -1 roll
{
[
exch
2 index
{		 
1 index	
Mget
exch
}
forall		
pop
Maxget
exch
}
for
pop
]
Mreva
} bind def
/Mreva	{
[
exch
aload
length
-1 1
{1 roll}
for
]
} bind def
/Mget	{
1 index
length
-1 add
1 index
ge
{
get
}
{
pop pop
0
}
ifelse
} bind def
/Maxlen	{
[
exch
{
length
}
forall
Maxget
} bind def
/Maxget	{
counttomark
-1 add
1 1
3 -1 roll
{
pop
Mmax
}
for
exch
pop
} bind def
/Mwidthcal1 {
[
exch
{
Strform
stringwidth
pop
}
forall
]
} bind def
/Strform {
/tem (x) def
tem 0
3 -1 roll
put
tem
} bind def
/Mshowa1 {
2 copy
add
4 1 roll
sub
mul
sub
-2 div
} bind def
/MathScale {
Mwidth
Mheight
Mlp
translate
scale
/yscale exch def
/ybias exch def
/xscale exch def
/xbias exch def
/Momatrix
xscale yscale matrix scale
xbias ybias matrix translate
matrix concatmatrix def
/Mgmatrix
matrix currentmatrix
def
} bind def
/Mlp {
3 copy
Mlpfirst
{
Mnodistort
{
Mmin
dup
} if
4 index
2 index
2 index
Mlprun
11 index
11 -1 roll
10 -4 roll
Mlp1
8 index
9 -5 roll
Mlp1
4 -1 roll
and
{ exit } if
3 -1 roll
pop pop
} loop
exch
3 1 roll
7 -3 roll
pop pop pop
} bind def
/Mlpfirst {
3 -1 roll
dup length
2 copy
-2 add
get
aload
pop pop pop
4 -2 roll
-1 add
get
aload
pop pop pop
6 -1 roll
3 -1 roll
5 -1 roll
sub
div
4 1 roll
exch sub
div
} bind def
/Mlprun {
2 copy
4 index
0 get
dup
4 1 roll
Mlprun1
3 copy
8 -2 roll
9 -1 roll
{
3 copy
Mlprun1
3 copy
11 -3 roll
/gt Mlpminmax
8 3 roll
11 -3 roll
/lt Mlpminmax
8 3 roll
} forall
pop pop pop pop
3 1 roll
pop pop
aload pop
5 -1 roll
aload pop
exch
6 -1 roll
Mlprun2
8 2 roll
4 -1 roll
Mlprun2
6 2 roll
3 -1 roll
Mlprun2
4 2 roll
exch
Mlprun2
6 2 roll
} bind def
/Mlprun1 {
aload pop
exch
6 -1 roll
5 -1 roll
mul add
4 -2 roll
mul
3 -1 roll
add
} bind def
/Mlprun2 {
2 copy
add 2 div
3 1 roll
exch sub
} bind def
/Mlpminmax {
cvx
2 index
6 index
2 index
exec
{
7 -3 roll
4 -1 roll
} if
1 index
5 index
3 -1 roll
exec
{
4 1 roll
pop
5 -1 roll
aload
pop pop
4 -1 roll
aload pop
[
8 -2 roll
pop
5 -2 roll
pop
6 -2 roll
pop
5 -1 roll
]
4 1 roll
pop
}
{
pop pop pop
} ifelse
} bind def
/Mlp1 {
5 index
3 index	sub
5 index
2 index mul
1 index
le
1 index
0 le
or
dup
not
{
1 index
3 index	div
.99999 mul
8 -1 roll
pop
7 1 roll
}
if
8 -1 roll
2 div
7 -2 roll
pop sub
5 index
6 -3 roll
pop pop
mul sub
exch
} bind def
/intop 0 def
/inrht 0 def
/inflag 0 def
/outflag 0 def
/xadrht 0 def
/xadlft 0 def
/yadtop 0 def
/yadbot 0 def
/Minner {
outflag
1
eq
{
/outflag 0 def
/intop 0 def
/inrht 0 def
} if		
5 index
gsave
Mtmatrix setmatrix
Mvboxa pop
grestore
3 -1 roll
pop
dup
intop
gt
{
/intop
exch def
}
{ pop }
ifelse
dup
inrht
gt
{
/inrht
exch def
}
{ pop }
ifelse
pop
/inflag
1 def
} bind def
/Mouter {
/xadrht 0 def
/xadlft 0 def
/yadtop 0 def
/yadbot 0 def
inflag
1 eq
{
dup
0 lt
{
dup
intop
mul
neg
/yadtop
exch def
} if
dup
0 gt
{
dup
intop
mul
/yadbot
exch def
}
if
pop
dup
0 lt
{
dup
inrht
mul
neg
/xadrht
exch def
} if
dup
0 gt
{
dup
inrht
mul
/xadlft
exch def
} if
pop
/outflag 1 def
}
{ pop pop}
ifelse
/inflag 0 def
/inrht 0 def
/intop 0 def
} bind def	
/Mboxout {
outflag
1
eq
{
4 -1
roll
xadlft
leadjust
add
sub
4 1 roll
3 -1
roll
yadbot
leadjust
add
sub
3 1
roll
exch
xadrht
leadjust
add
add
exch
yadtop
leadjust
add
add
/outflag 0 def
/xadlft 0 def
/yadbot 0 def
/xadrht 0 def
/yadtop 0 def
} if
} bind def
/leadjust {
(m) stringwidth pop
.5 mul
} bind def
/Mrotcheck {
dup
90
eq
{
yadbot
/yadbot
xadrht
def	
/xadrht
yadtop
def
/yadtop
xadlft
def
/xadlft
exch
def
}
if
dup
cos
1 index
sin
Checkaux
dup
cos
1 index
sin neg
exch
Checkaux
3 1 roll
pop pop
} bind def
/Checkaux {
4 index
exch
4 index
mul
3 1 roll
mul add
4 1 roll
} bind def
/Mboxrot {
Mrot
90 eq
{
brotaux
4 2
roll
}
if
Mrot
180 eq
{
4 2
roll
brotaux
4 2
roll
brotaux
}	
if
Mrot
270 eq
{
4 2
roll
brotaux
}
if
} bind def
/brotaux {
neg
exch
neg
} bind def
/Mabsproc {
0
matrix defaultmatrix
dtransform idtransform
dup mul exch
dup mul
add sqrt
} bind def
/Mabswid {
Mabsproc
setlinewidth	
} bind def
/Mabsdash {
exch
[
exch
{
Mabsproc
}
forall
]
exch
setdash
} bind def
/MBeginOrig { Momatrix concat} bind def
/MEndOrig { Mgmatrix setmatrix} bind def
/sampledsound where
{ pop}
{ /sampledsound {
exch
pop
exch
5 1 roll
mul
4 idiv
mul
2 idiv
exch pop
exch
/Mtempproc exch def
{ Mtempproc pop}
repeat
} bind def
} ifelse
/g { setgray} bind def
/k { setcmykcolor} bind def
/m { moveto} bind def
/p { gsave} bind def
/r { setrgbcolor} bind def
/w { setlinewidth} bind def
/C { curveto} bind def
/F { fill} bind def
/L { lineto} bind def
/P { grestore} bind def
/s { stroke} bind def
/setcmykcolor where
{ pop}
{ /setcmykcolor {
4 1
roll
[
4 1 
roll
]
{
1 index
sub
1
sub neg
dup
0
lt
{
pop
0
}
if
dup
1
gt
{
pop
1
}
if
exch
} forall
pop
setrgbcolor
} bind def
} ifelse
/Mcharproc
{
currentfile
(x)
readhexstring
pop
0 get
exch
div
} bind def
/Mshadeproc
{
dup
3 1
roll
{
dup
Mcharproc
3 1
roll
} repeat
1 eq
{
setgray
}
{
3 eq
{
setrgbcolor
}
{
setcmykcolor
} ifelse
} ifelse
} bind def
/Mrectproc
{
3 index
2 index
moveto
2 index
3 -1
roll
lineto
dup
3 1
roll
lineto
lineto
fill
} bind def
/Mcolorimage
{
7 1
roll
pop
pop
matrix
invertmatrix
concat
2 exch exp
1 sub
3 1 roll
1 1
2 index
{
1 1
4 index
{
dup
1 sub
exch
2 index
dup
1 sub
exch
7 index
9 index
Mshadeproc
Mrectproc
} for
pop
} for
pop pop pop pop
} bind def
/Mimage
{
pop
matrix
invertmatrix
concat
2 exch exp
1 sub
3 1 roll
1 1
2 index
{
1 1
4 index
{
dup
1 sub
exch
2 index
dup
1 sub
exch
7 index
Mcharproc
setgray
Mrectproc
} for
pop
} for
pop pop pop
} bind def

%%AspectRatio: .61803 
MathPictureStart
%% Graphics
/Courier findfont 10  scalefont  setfont
% Scaling calculations
0.0238095 0.147515 0.0147151 0.107878 [
[(1)] .17132 .01472 0 2 Msboxa
[(2)] .31884 .01472 0 2 Msboxa
[(3)] .46635 .01472 0 2 Msboxa
[(4)] .61387 .01472 0 2 Msboxa
[(5)] .76138 .01472 0 2 Msboxa
[(6)] .9089 .01472 0 2 Msboxa
[(1)] .01131 .12259 1 0 Msboxa
[(2)] .01131 .23047 1 0 Msboxa
[(3)] .01131 .33835 1 0 Msboxa
[(4)] .01131 .44623 1 0 Msboxa
[(5)] .01131 .55411 1 0 Msboxa
[ -0.001 -0.001 0 0 ]
[ 1.001 .61903 0 0 ]
] MathScale
% Start of Graphics
1 setlinecap
1 setlinejoin
newpath
[ ] 0 setdash
0 g
p
p
.002 w
.17132 .01472 m
.17132 .02097 L
s
P
[(1)] .17132 .01472 0 2 Mshowa
p
.002 w
.31884 .01472 m
.31884 .02097 L
s
P
[(2)] .31884 .01472 0 2 Mshowa
p
.002 w
.46635 .01472 m
.46635 .02097 L
s
P
[(3)] .46635 .01472 0 2 Mshowa
p
.002 w
.61387 .01472 m
.61387 .02097 L
s
P
[(4)] .61387 .01472 0 2 Mshowa
p
.002 w
.76138 .01472 m
.76138 .02097 L
s
P
[(5)] .76138 .01472 0 2 Mshowa
p
.002 w
.9089 .01472 m
.9089 .02097 L
s
P
[(6)] .9089 .01472 0 2 Mshowa
p
.001 w
.05331 .01472 m
.05331 .01847 L
s
P
p
.001 w
.08282 .01472 m
.08282 .01847 L
s
P
p
.001 w
.11232 .01472 m
.11232 .01847 L
s
P
p
.001 w
.14182 .01472 m
.14182 .01847 L
s
P
p
.001 w
.20083 .01472 m
.20083 .01847 L
s
P
p
.001 w
.23033 .01472 m
.23033 .01847 L
s
P
p
.001 w
.25983 .01472 m
.25983 .01847 L
s
P
p
.001 w
.28934 .01472 m
.28934 .01847 L
s
P
p
.001 w
.34834 .01472 m
.34834 .01847 L
s
P
p
.001 w
.37785 .01472 m
.37785 .01847 L
s
P
p
.001 w
.40735 .01472 m
.40735 .01847 L
s
P
p
.001 w
.43685 .01472 m
.43685 .01847 L
s
P
p
.001 w
.49586 .01472 m
.49586 .01847 L
s
P
p
.001 w
.52536 .01472 m
.52536 .01847 L
s
P
p
.001 w
.55486 .01472 m
.55486 .01847 L
s
P
p
.001 w
.58437 .01472 m
.58437 .01847 L
s
P
p
.001 w
.64337 .01472 m
.64337 .01847 L
s
P
p
.001 w
.67287 .01472 m
.67287 .01847 L
s
P
p
.001 w
.70238 .01472 m
.70238 .01847 L
s
P
p
.001 w
.73188 .01472 m
.73188 .01847 L
s
P
p
.001 w
.79089 .01472 m
.79089 .01847 L
s
P
p
.001 w
.82039 .01472 m
.82039 .01847 L
s
P
p
.001 w
.84989 .01472 m
.84989 .01847 L
s
P
p
.001 w
.8794 .01472 m
.8794 .01847 L
s
P
p
.001 w
.9384 .01472 m
.9384 .01847 L
s
P
p
.001 w
.9679 .01472 m
.9679 .01847 L
s
P
p
.001 w
.99741 .01472 m
.99741 .01847 L
s
P
p
.002 w
0 .01472 m
1 .01472 L
s
P
p
.002 w
.02381 .12259 m
.03006 .12259 L
s
P
[(1)] .01131 .12259 1 0 Mshowa
p
.002 w
.02381 .23047 m
.03006 .23047 L
s
P
[(2)] .01131 .23047 1 0 Mshowa
p
.002 w
.02381 .33835 m
.03006 .33835 L
s
P
[(3)] .01131 .33835 1 0 Mshowa
p
.002 w
.02381 .44623 m
.03006 .44623 L
s
P
[(4)] .01131 .44623 1 0 Mshowa
p
.002 w
.02381 .55411 m
.03006 .55411 L
s
P
[(5)] .01131 .55411 1 0 Mshowa
p
.001 w
.02381 .03629 m
.02756 .03629 L
s
P
p
.001 w
.02381 .05787 m
.02756 .05787 L
s
P
p
.001 w
.02381 .07944 m
.02756 .07944 L
s
P
p
.001 w
.02381 .10102 m
.02756 .10102 L
s
P
p
.001 w
.02381 .14417 m
.02756 .14417 L
s
P
p
.001 w
.02381 .16574 m
.02756 .16574 L
s
P
p
.001 w
.02381 .18732 m
.02756 .18732 L
s
P
p
.001 w
.02381 .2089 m
.02756 .2089 L
s
P
p
.001 w
.02381 .25205 m
.02756 .25205 L
s
P
p
.001 w
.02381 .27362 m
.02756 .27362 L
s
P
p
.001 w
.02381 .2952 m
.02756 .2952 L
s
P
p
.001 w
.02381 .31677 m
.02756 .31677 L
s
P
p
.001 w
.02381 .35993 m
.02756 .35993 L
s
P
p
.001 w
.02381 .3815 m
.02756 .3815 L
s
P
p
.001 w
.02381 .40308 m
.02756 .40308 L
s
P
p
.001 w
.02381 .42465 m
.02756 .42465 L
s
P
p
.001 w
.02381 .4678 m
.02756 .4678 L
s
P
p
.001 w
.02381 .48938 m
.02756 .48938 L
s
P
p
.001 w
.02381 .51096 m
.02756 .51096 L
s
P
p
.001 w
.02381 .53253 m
.02756 .53253 L
s
P
p
.001 w
.02381 .57568 m
.02756 .57568 L
s
P
p
.001 w
.02381 .59726 m
.02756 .59726 L
s
P
p
.002 w
.02381 0 m
.02381 .61803 L
s
P
P
0 0 m
1 0 L
1 .61803 L
0 .61803 L
closepath
clip
newpath
p
p
p
.004 w
.02381 .01505 m
.06349 .01516 L
.10317 .0153 L
.14286 .01547 L
.18254 .01571 L
.22222 .01602 L
.2619 .01642 L
.30159 .01694 L
.34127 .01763 L
.38095 .01853 L
.42063 .01971 L
.46032 .02125 L
.5 .02326 L
.53968 .0259 L
.57937 .02934 L
.61905 .03383 L
.65873 .03968 L
.69841 .04729 L
.7381 .05711 L
.77778 .0697 L
.81746 .08561 L
.85714 .10526 L
.89683 .12874 L
.93651 .15549 L
.97619 .18417 L
s
P
P
p
p
.004 w
.02381 .01472 m
.06349 .04373 L
.10317 .07275 L
.14286 .10177 L
.18254 .13079 L
.22222 .15981 L
.2619 .18882 L
.30159 .21783 L
.34127 .24684 L
.38095 .27583 L
.42063 .3048 L
.46032 .33374 L
.5 .36262 L
.53968 .3914 L
.57937 .42001 L
.61905 .44833 L
.65873 .47616 L
.69841 .50318 L
.7381 .52885 L
.77778 .55238 L
.81746 .57265 L
.8373 .58114 L
.85714 .58832 L
.87698 .59405 L
.8869 .59636 L
.89683 .5983 L
.90675 .59987 L
.91667 .6011 L
.92659 .60201 L
.93155 .60236 L
.93651 .60264 L
.94147 .60286 L
.94643 .60303 L
.94891 .60309 L
.95139 .60315 L
.95387 .6032 L
.95635 .60323 L
.95883 .60326 L
.96131 .60328 L
.96379 .6033 L
.96503 .6033 L
.96627 .60331 L
.96751 .60331 L
.96875 .60331 L
.96999 .60332 L
.97123 .60332 L
.97247 .60332 L
.97371 .60332 L
.97495 .60332 L
.97619 .60332 L
Mistroke
Mfstroke
P
P
p
p
.004 w
.02381 .01472 m
.06349 .01482 L
.10317 .01496 L
.14286 .01514 L
.18254 .01537 L
.22222 .01568 L
.2619 .01608 L
.30159 .0166 L
.34127 .01729 L
.38095 .01819 L
.42063 .01937 L
.46032 .0209 L
.5 .02291 L
.53968 .02554 L
.57937 .02895 L
.61905 .03339 L
.65873 .03912 L
.69841 .04646 L
.7381 .05569 L
.77778 .06701 L
.81746 .08028 L
.85714 .09466 L
.89683 .10833 L
.91667 .11403 L
.93651 .11847 L
.94643 .1201 L
.95139 .12075 L
.95635 .12129 L
.96131 .12171 L
.96379 .12187 L
.96627 .12201 L
.96875 .12212 L
.96999 .12216 L
.97123 .12219 L
.97247 .12222 L
.97371 .12224 L
.97495 .12225 L
.97619 .12225 L
s
P
P
P
% End of Graphics
MathPictureEnd
end
restore gr
%
% End Imported PIC File: parameter.eps
%
/Times-Italic findfont 120.00 scalefont setfont
3900 1950 m
gs 1 -1 sc (x\(t\)) col0 show gr
/Times-Italic findfont 120.00 scalefont setfont
3975 2865 m
gs 1 -1 sc (y\(t\)) col0 show gr
/Symbol findfont 120.00 scalefont setfont
3930 2663 m
gs 1 -1 sc (q) col0 show gr
/Times-Italic findfont 120.00 scalefont setfont
3997 2662 m
gs 1 -1 sc (\(t\)) col0 show gr
$F2psEnd
restore
SHAR_EOF
fi # end of overwriting check
if test -f 'plot-t.eps'
then
	echo shar: will not over-write existing file "'plot-t.eps'"
else
cat << \SHAR_EOF > 'plot-t.eps'
%!PS-Adobe-2.0 EPSF-2.0
%%Title: plot-t.fig
%%Creator: fig2dev Version 3.1 Patchlevel 1
%%CreationDate: Mon Jan 27 14:53:23 1997
%%For: pankaj@euclid (Pankaj Kumar Agarwal,,6540,)
%%Orientation: Portrait
%%BoundingBox: 0 0 152 146
%%Pages: 0
%%BeginSetup
%%IncludeFeature: *PageSize Letter
%%EndSetup
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {} def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def

end
save
-147.0 334.0 translate
1 -1 scale

/clp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/l {lineto} bind def
/m {moveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
  bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
  4 -2 roll mul srgb} bind def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
%%EndProlog

$F2psBegin
10 setmiterlimit
 0.06000 0.06000 sc
% Polyline
%
% Begin Imported EPS File: plot-theta.eps
%
n gs
2475 3150 tr
8.333333 -8.333333 sc
0 -288 tr
0 0 tr
save
/showpage {} def
% EPS file follows:
%!PS-Adobe-2.0 EPSF-2.0
%%BoundingBox: 0 0 288 288
%%Creator: Mathematica
%%CreationDate: Wed Sep  4 15:40:46 EDT 1996
%%EndComments

/Mathdict 150 dict def
Mathdict begin
/Mlmarg		0 72 mul def
/Mrmarg		0 72 mul def
/Mbmarg		0 72 mul def
/Mtmarg		0 72 mul def
/Mwidth		4 72 mul def
/Mheight	4 72 mul def
/Mtransform	{  } bind def
/Mnodistort	true def
/Mfixwid	true	def
/Mfixdash	false def
/Mrot		0	def
/Mpstart {
MathPictureStart
} bind def
/Mpend {
MathPictureEnd
} bind def
/Mscale {
0 1 0 1
5 -1 roll
MathScale
} bind def
/ISOLatin1Encoding dup where
{ pop pop }
{
[
/.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
} ifelse
/MFontDict 50 dict def
/MStrCat
{
exch
dup length
2 index length add
string
dup 3 1 roll
copy
length
exch dup
4 2 roll exch
putinterval
} def
/MCreateEncoding
{
1 index
255 string cvs
(-) MStrCat
1 index MStrCat
cvn exch
(Encoding) MStrCat
cvn dup where
{
exch get
}
{
pop
StandardEncoding
} ifelse
3 1 roll
dup MFontDict exch known not
{
1 index findfont
dup length dict
begin
{1 index /FID ne
{def}
{pop pop}
ifelse} forall
/Encoding 3 index
def
currentdict
end
1 index exch definefont pop
MFontDict 1 index
null put
}
if
exch pop
exch pop
} def
/ISOLatin1 { (ISOLatin1) MCreateEncoding } def
/ISO8859 { (ISOLatin1) MCreateEncoding } def
/Mcopyfont {
dup
maxlength
dict
exch
{
1 index
/FID
eq
{
pop pop
}
{
2 index
3 1 roll
put
}
ifelse
}
forall
} def
/Plain	/Courier findfont Mcopyfont definefont pop
/Bold	/Courier-Bold findfont Mcopyfont definefont pop
/Italic /Courier-Oblique findfont Mcopyfont definefont pop
/MathPictureStart {
gsave
Mtransform
Mlmarg
Mbmarg
translate
Mwidth
Mlmarg Mrmarg add
sub
/Mwidth exch def
Mheight
Mbmarg Mtmarg add
sub
/Mheight exch def
/Mtmatrix
matrix currentmatrix
def
/Mgmatrix
matrix currentmatrix
def
} bind def
/MathPictureEnd {
grestore
} bind def
/MFill {
0 0 		moveto
Mwidth 0 	lineto
Mwidth Mheight 	lineto
0 Mheight 	lineto
fill
} bind def
/MPlotRegion {
3 index
Mwidth mul
2 index
Mheight mul
translate
exch sub
Mheight mul
/Mheight
exch def
exch sub
Mwidth mul
/Mwidth
exch def
} bind def
/MathSubStart {
Momatrix
Mgmatrix Mtmatrix
Mwidth Mheight
7 -2 roll
moveto
Mtmatrix setmatrix
currentpoint
Mgmatrix setmatrix
9 -2 roll
moveto
Mtmatrix setmatrix
currentpoint
2 copy translate
/Mtmatrix matrix currentmatrix def
3 -1 roll
exch sub
/Mheight exch def
sub
/Mwidth exch def
} bind def
/MathSubEnd {
/Mheight exch def
/Mwidth exch def
/Mtmatrix exch def
dup setmatrix
/Mgmatrix exch def
/Momatrix exch def
} bind def
/Mdot {
moveto
0 0 rlineto
stroke
} bind def
/Mtetra {
moveto
lineto
lineto
lineto
fill
} bind def
/Metetra {
moveto
lineto
lineto
lineto
closepath
gsave
fill
grestore
0 setgray
stroke
} bind def
/Mistroke {
flattenpath
0 0 0
{
4 2 roll
pop pop
}
{
4 -1 roll
2 index
sub dup mul
4 -1 roll
2 index
sub dup mul
add sqrt
4 -1 roll
add
3 1 roll
}
{
stop
}
{
stop
}
pathforall
pop pop
currentpoint
stroke
moveto
currentdash
3 -1 roll
add
setdash
} bind def
/Mfstroke {
stroke
currentdash
pop 0
setdash
} bind def
/Mrotsboxa {
gsave
dup
/Mrot
exch def
Mrotcheck
Mtmatrix
dup
setmatrix
7 1 roll
4 index
4 index
translate
rotate
3 index
-1 mul
3 index
-1 mul
translate
/Mtmatrix
matrix
currentmatrix
def
grestore
Msboxa
3  -1 roll
/Mtmatrix
exch def
/Mrot
0 def
} bind def
/Msboxa {
newpath
5 -1 roll
Mvboxa
pop
Mboxout
6 -1 roll
5 -1 roll
4 -1 roll
Msboxa1
5 -3 roll
Msboxa1
Mboxrot
[
7 -2 roll
2 copy
[
3 1 roll
10 -1 roll
9 -1 roll
]
6 1 roll
5 -2 roll
]
} bind def
/Msboxa1 {
sub
2 div
dup
2 index
1 add
mul
3 -1 roll
-1 add
3 -1 roll
mul
} bind def
/Mvboxa	{
Mfixwid
{
Mvboxa1
}
{
dup
Mwidthcal
0 exch
{
add
}
forall
exch
Mvboxa1
4 index
7 -1 roll
add
4 -1 roll
pop
3 1 roll
}
ifelse
} bind def
/Mvboxa1 {
gsave
newpath
[ true
3 -1 roll
{
Mbbox
5 -1 roll
{
0
5 1 roll
}
{
7 -1 roll
exch sub
(m) stringwidth pop
.3 mul
sub
7 1 roll
6 -1 roll
4 -1 roll
Mmin
3 -1 roll
5 index
add
5 -1 roll
4 -1 roll
Mmax
4 -1 roll
}
ifelse
false
}
forall
{ stop } if
counttomark
1 add
4 roll
]
grestore
} bind def
/Mbbox {
1 dict begin
0 0 moveto
/temp (T) def
{	gsave
currentpoint newpath moveto
temp 0 3 -1 roll put temp
false charpath flattenpath currentpoint
pathbbox
grestore moveto lineto moveto} forall
pathbbox
newpath
end
} bind def
/Mmin {
2 copy
gt
{ exch } if
pop
} bind def
/Mmax {
2 copy
lt
{ exch } if
pop
} bind def
/Mrotshowa {
dup
/Mrot
exch def
Mrotcheck
Mtmatrix
dup
setmatrix
7 1 roll
4 index
4 index
translate
rotate
3 index
-1 mul
3 index
-1 mul
translate
/Mtmatrix
matrix
currentmatrix
def
Mgmatrix setmatrix
Mshowa
/Mtmatrix
exch def
/Mrot 0 def
} bind def
/Mshowa {
4 -2 roll
moveto
2 index
Mtmatrix setmatrix
Mvboxa
7 1 roll
Mboxout
6 -1 roll
5 -1 roll
4 -1 roll
Mshowa1
4 1 roll
Mshowa1
rmoveto
currentpoint
Mfixwid
{
Mshowax
}
{
Mshoway
}
ifelse
pop pop pop pop
Mgmatrix setmatrix
} bind def
/Mshowax {	
0 1
4 index length
-1 add
{
2 index
4 index
2 index
get
3 index
add
moveto
4 index
exch get
Mfixdash
{
Mfixdashp		
}
if
show
} for
} bind def
/Mfixdashp {
dup
length
1
gt
1 index
true exch
{
45
eq
and
} forall
and
{
gsave
(--)		
stringwidth pop
(-)
stringwidth pop
sub
2 div
0 rmoveto
dup
length
1 sub
{
(-)
show
}
repeat
grestore
}
if
} bind def	
/Mshoway {
3 index
Mwidthcal
5 1 roll
0 1
4 index length
-1 add
{
2 index
4 index
2 index
get
3 index
add
moveto
4 index
exch get
[
6 index
aload
length
2 add
-1 roll
{
pop
Strform
stringwidth
pop
neg 
exch
add
0 rmoveto
}
exch
kshow
cleartomark
} for
pop	
} bind def
/Mwidthcal {
[
exch
{
Mwidthcal1
}
forall
]
[
exch
dup
Maxlen
-1 add
0 1
3 -1 roll
{
[
exch
2 index
{		 
1 index	
Mget
exch
}
forall		
pop
Maxget
exch
}
for
pop
]
Mreva
} bind def
/Mreva	{
[
exch
aload
length
-1 1
{1 roll}
for
]
} bind def
/Mget	{
1 index
length
-1 add
1 index
ge
{
get
}
{
pop pop
0
}
ifelse
} bind def
/Maxlen	{
[
exch
{
length
}
forall
Maxget
} bind def
/Maxget	{
counttomark
-1 add
1 1
3 -1 roll
{
pop
Mmax
}
for
exch
pop
} bind def
/Mwidthcal1 {
[
exch
{
Strform
stringwidth
pop
}
forall
]
} bind def
/Strform {
/tem (x) def
tem 0
3 -1 roll
put
tem
} bind def
/Mshowa1 {
2 copy
add
4 1 roll
sub
mul
sub
-2 div
} bind def
/MathScale {
Mwidth
Mheight
Mlp
translate
scale
/yscale exch def
/ybias exch def
/xscale exch def
/xbias exch def
/Momatrix
xscale yscale matrix scale
xbias ybias matrix translate
matrix concatmatrix def
/Mgmatrix
matrix currentmatrix
def
} bind def
/Mlp {
3 copy
Mlpfirst
{
Mnodistort
{
Mmin
dup
} if
4 index
2 index
2 index
Mlprun
11 index
11 -1 roll
10 -4 roll
Mlp1
8 index
9 -5 roll
Mlp1
4 -1 roll
and
{ exit } if
3 -1 roll
pop pop
} loop
exch
3 1 roll
7 -3 roll
pop pop pop
} bind def
/Mlpfirst {
3 -1 roll
dup length
2 copy
-2 add
get
aload
pop pop pop
4 -2 roll
-1 add
get
aload
pop pop pop
6 -1 roll
3 -1 roll
5 -1 roll
sub
div
4 1 roll
exch sub
div
} bind def
/Mlprun {
2 copy
4 index
0 get
dup
4 1 roll
Mlprun1
3 copy
8 -2 roll
9 -1 roll
{
3 copy
Mlprun1
3 copy
11 -3 roll
/gt Mlpminmax
8 3 roll
11 -3 roll
/lt Mlpminmax
8 3 roll
} forall
pop pop pop pop
3 1 roll
pop pop
aload pop
5 -1 roll
aload pop
exch
6 -1 roll
Mlprun2
8 2 roll
4 -1 roll
Mlprun2
6 2 roll
3 -1 roll
Mlprun2
4 2 roll
exch
Mlprun2
6 2 roll
} bind def
/Mlprun1 {
aload pop
exch
6 -1 roll
5 -1 roll
mul add
4 -2 roll
mul
3 -1 roll
add
} bind def
/Mlprun2 {
2 copy
add 2 div
3 1 roll
exch sub
} bind def
/Mlpminmax {
cvx
2 index
6 index
2 index
exec
{
7 -3 roll
4 -1 roll
} if
1 index
5 index
3 -1 roll
exec
{
4 1 roll
pop
5 -1 roll
aload
pop pop
4 -1 roll
aload pop
[
8 -2 roll
pop
5 -2 roll
pop
6 -2 roll
pop
5 -1 roll
]
4 1 roll
pop
}
{
pop pop pop
} ifelse
} bind def
/Mlp1 {
5 index
3 index	sub
5 index
2 index mul
1 index
le
1 index
0 le
or
dup
not
{
1 index
3 index	div
.99999 mul
8 -1 roll
pop
7 1 roll
}
if
8 -1 roll
2 div
7 -2 roll
pop sub
5 index
6 -3 roll
pop pop
mul sub
exch
} bind def
/intop 0 def
/inrht 0 def
/inflag 0 def
/outflag 0 def
/xadrht 0 def
/xadlft 0 def
/yadtop 0 def
/yadbot 0 def
/Minner {
outflag
1
eq
{
/outflag 0 def
/intop 0 def
/inrht 0 def
} if		
5 index
gsave
Mtmatrix setmatrix
Mvboxa pop
grestore
3 -1 roll
pop
dup
intop
gt
{
/intop
exch def
}
{ pop }
ifelse
dup
inrht
gt
{
/inrht
exch def
}
{ pop }
ifelse
pop
/inflag
1 def
} bind def
/Mouter {
/xadrht 0 def
/xadlft 0 def
/yadtop 0 def
/yadbot 0 def
inflag
1 eq
{
dup
0 lt
{
dup
intop
mul
neg
/yadtop
exch def
} if
dup
0 gt
{
dup
intop
mul
/yadbot
exch def
}
if
pop
dup
0 lt
{
dup
inrht
mul
neg
/xadrht
exch def
} if
dup
0 gt
{
dup
inrht
mul
/xadlft
exch def
} if
pop
/outflag 1 def
}
{ pop pop}
ifelse
/inflag 0 def
/inrht 0 def
/intop 0 def
} bind def	
/Mboxout {
outflag
1
eq
{
4 -1
roll
xadlft
leadjust
add
sub
4 1 roll
3 -1
roll
yadbot
leadjust
add
sub
3 1
roll
exch
xadrht
leadjust
add
add
exch
yadtop
leadjust
add
add
/outflag 0 def
/xadlft 0 def
/yadbot 0 def
/xadrht 0 def
/yadtop 0 def
} if
} bind def
/leadjust {
(m) stringwidth pop
.5 mul
} bind def
/Mrotcheck {
dup
90
eq
{
yadbot
/yadbot
xadrht
def	
/xadrht
yadtop
def
/yadtop
xadlft
def
/xadlft
exch
def
}
if
dup
cos
1 index
sin
Checkaux
dup
cos
1 index
sin neg
exch
Checkaux
3 1 roll
pop pop
} bind def
/Checkaux {
4 index
exch
4 index
mul
3 1 roll
mul add
4 1 roll
} bind def
/Mboxrot {
Mrot
90 eq
{
brotaux
4 2
roll
}
if
Mrot
180 eq
{
4 2
roll
brotaux
4 2
roll
brotaux
}	
if
Mrot
270 eq
{
4 2
roll
brotaux
}
if
} bind def
/brotaux {
neg
exch
neg
} bind def
/Mabsproc {
0
matrix defaultmatrix
dtransform idtransform
dup mul exch
dup mul
add sqrt
} bind def
/Mabswid {
Mabsproc
setlinewidth	
} bind def
/Mabsdash {
exch
[
exch
{
Mabsproc
}
forall
]
exch
setdash
} bind def
/MBeginOrig { Momatrix concat} bind def
/MEndOrig { Mgmatrix setmatrix} bind def
/sampledsound where
{ pop}
{ /sampledsound {
exch
pop
exch
5 1 roll
mul
4 idiv
mul
2 idiv
exch pop
exch
/Mtempproc exch def
{ Mtempproc pop}
repeat
} bind def
} ifelse
/g { setgray} bind def
/k { setcmykcolor} bind def
/m { moveto} bind def
/p { gsave} bind def
/r { setrgbcolor} bind def
/w { setlinewidth} bind def
/C { curveto} bind def
/F { fill} bind def
/L { lineto} bind def
/P { grestore} bind def
/s { stroke} bind def
/setcmykcolor where
{ pop}
{ /setcmykcolor {
4 1
roll
[
4 1 
roll
]
{
1 index
sub
1
sub neg
dup
0
lt
{
pop
0
}
if
dup
1
gt
{
pop
1
}
if
exch
} forall
pop
setrgbcolor
} bind def
} ifelse
/Mcharproc
{
currentfile
(x)
readhexstring
pop
0 get
exch
div
} bind def
/Mshadeproc
{
dup
3 1
roll
{
dup
Mcharproc
3 1
roll
} repeat
1 eq
{
setgray
}
{
3 eq
{
setrgbcolor
}
{
setcmykcolor
} ifelse
} ifelse
} bind def
/Mrectproc
{
3 index
2 index
moveto
2 index
3 -1
roll
lineto
dup
3 1
roll
lineto
lineto
fill
} bind def
/Mcolorimage
{
7 1
roll
pop
pop
matrix
invertmatrix
concat
2 exch exp
1 sub
3 1 roll
1 1
2 index
{
1 1
4 index
{
dup
1 sub
exch
2 index
dup
1 sub
exch
7 index
9 index
Mshadeproc
Mrectproc
} for
pop
} for
pop pop pop pop
} bind def
/Mimage
{
pop
matrix
invertmatrix
concat
2 exch exp
1 sub
3 1 roll
1 1
2 index
{
1 1
4 index
{
dup
1 sub
exch
2 index
dup
1 sub
exch
7 index
Mcharproc
setgray
Mrectproc
} for
pop
} for
pop pop pop
} bind def

%%AspectRatio: .61803 
MathPictureStart
%% Graphics
/Courier findfont 10  scalefont  setfont
% Scaling calculations
0.0238095 0.606305 0.0147151 0.107878 [
[(0.25)] .17539 .01472 0 2 Msboxa
[(0.5)] .32696 .01472 0 2 Msboxa
[(0.75)] .47854 .01472 0 2 Msboxa
[(1)] .63011 .01472 0 2 Msboxa
[(1.25)] .78169 .01472 0 2 Msboxa
[(1.5)] .93327 .01472 0 2 Msboxa
[(1)] .01131 .12259 1 0 Msboxa
[(2)] .01131 .23047 1 0 Msboxa
[(3)] .01131 .33835 1 0 Msboxa
[(4)] .01131 .44623 1 0 Msboxa
[(5)] .01131 .55411 1 0 Msboxa
[ -0.001 -0.001 0 0 ]
[ 1.001 .61903 0 0 ]
] MathScale
% Start of Graphics
1 setlinecap
1 setlinejoin
newpath
[ ] 0 setdash
0 g
p
p
.002 w
.17539 .01472 m
.17539 .02097 L
s
P
[(0.25)] .17539 .01472 0 2 Mshowa
p
.002 w
.32696 .01472 m
.32696 .02097 L
s
P
[(0.5)] .32696 .01472 0 2 Mshowa
p
.002 w
.47854 .01472 m
.47854 .02097 L
s
P
[(0.75)] .47854 .01472 0 2 Mshowa
p
.002 w
.63011 .01472 m
.63011 .02097 L
s
P
[(1)] .63011 .01472 0 2 Mshowa
p
.002 w
.78169 .01472 m
.78169 .02097 L
s
P
[(1.25)] .78169 .01472 0 2 Mshowa
p
.002 w
.93327 .01472 m
.93327 .02097 L
s
P
[(1.5)] .93327 .01472 0 2 Mshowa
p
.001 w
.05412 .01472 m
.05412 .01847 L
s
P
p
.001 w
.08444 .01472 m
.08444 .01847 L
s
P
p
.001 w
.11476 .01472 m
.11476 .01847 L
s
P
p
.001 w
.14507 .01472 m
.14507 .01847 L
s
P
p
.001 w
.2057 .01472 m
.2057 .01847 L
s
P
p
.001 w
.23602 .01472 m
.23602 .01847 L
s
P
p
.001 w
.26633 .01472 m
.26633 .01847 L
s
P
p
.001 w
.29665 .01472 m
.29665 .01847 L
s
P
p
.001 w
.35728 .01472 m
.35728 .01847 L
s
P
p
.001 w
.38759 .01472 m
.38759 .01847 L
s
P
p
.001 w
.41791 .01472 m
.41791 .01847 L
s
P
p
.001 w
.44822 .01472 m
.44822 .01847 L
s
P
p
.001 w
.50885 .01472 m
.50885 .01847 L
s
P
p
.001 w
.53917 .01472 m
.53917 .01847 L
s
P
p
.001 w
.56948 .01472 m
.56948 .01847 L
s
P
p
.001 w
.5998 .01472 m
.5998 .01847 L
s
P
p
.001 w
.66043 .01472 m
.66043 .01847 L
s
P
p
.001 w
.69074 .01472 m
.69074 .01847 L
s
P
p
.001 w
.72106 .01472 m
.72106 .01847 L
s
P
p
.001 w
.75137 .01472 m
.75137 .01847 L
s
P
p
.001 w
.81201 .01472 m
.81201 .01847 L
s
P
p
.001 w
.84232 .01472 m
.84232 .01847 L
s
P
p
.001 w
.87264 .01472 m
.87264 .01847 L
s
P
p
.001 w
.90295 .01472 m
.90295 .01847 L
s
P
p
.001 w
.96358 .01472 m
.96358 .01847 L
s
P
p
.001 w
.9939 .01472 m
.9939 .01847 L
s
P
p
.002 w
0 .01472 m
1 .01472 L
s
P
p
.002 w
.02381 .12259 m
.03006 .12259 L
s
P
[(1)] .01131 .12259 1 0 Mshowa
p
.002 w
.02381 .23047 m
.03006 .23047 L
s
P
[(2)] .01131 .23047 1 0 Mshowa
p
.002 w
.02381 .33835 m
.03006 .33835 L
s
P
[(3)] .01131 .33835 1 0 Mshowa
p
.002 w
.02381 .44623 m
.03006 .44623 L
s
P
[(4)] .01131 .44623 1 0 Mshowa
p
.002 w
.02381 .55411 m
.03006 .55411 L
s
P
[(5)] .01131 .55411 1 0 Mshowa
p
.001 w
.02381 .03629 m
.02756 .03629 L
s
P
p
.001 w
.02381 .05787 m
.02756 .05787 L
s
P
p
.001 w
.02381 .07944 m
.02756 .07944 L
s
P
p
.001 w
.02381 .10102 m
.02756 .10102 L
s
P
p
.001 w
.02381 .14417 m
.02756 .14417 L
s
P
p
.001 w
.02381 .16574 m
.02756 .16574 L
s
P
p
.001 w
.02381 .18732 m
.02756 .18732 L
s
P
p
.001 w
.02381 .2089 m
.02756 .2089 L
s
P
p
.001 w
.02381 .25205 m
.02756 .25205 L
s
P
p
.001 w
.02381 .27362 m
.02756 .27362 L
s
P
p
.001 w
.02381 .2952 m
.02756 .2952 L
s
P
p
.001 w
.02381 .31677 m
.02756 .31677 L
s
P
p
.001 w
.02381 .35993 m
.02756 .35993 L
s
P
p
.001 w
.02381 .3815 m
.02756 .3815 L
s
P
p
.001 w
.02381 .40308 m
.02756 .40308 L
s
P
p
.001 w
.02381 .42465 m
.02756 .42465 L
s
P
p
.001 w
.02381 .4678 m
.02756 .4678 L
s
P
p
.001 w
.02381 .48938 m
.02756 .48938 L
s
P
p
.001 w
.02381 .51096 m
.02756 .51096 L
s
P
p
.001 w
.02381 .53253 m
.02756 .53253 L
s
P
p
.001 w
.02381 .57568 m
.02756 .57568 L
s
P
p
.001 w
.02381 .59726 m
.02756 .59726 L
s
P
p
.002 w
.02381 0 m
.02381 .61803 L
s
P
P
0 0 m
1 0 L
1 .61803 L
0 .61803 L
closepath
clip
newpath
p
p
p
.004 w
.02571 .01472 m
.02695 .06872 L
.02819 .10454 L
.03066 .15286 L
.0319 .17077 L
.03314 .18611 L
.03562 .21149 L
.04057 .24925 L
.04552 .27715 L
.05542 .31763 L
.06532 .34694 L
.08512 .38876 L
.10492 .41861 L
.12472 .44174 L
.14452 .46054 L
.18413 .4898 L
.22373 .51191 L
.26333 .52934 L
.30294 .54344 L
.34254 .55501 L
.38214 .56459 L
.42175 .57255 L
.46135 .57917 L
.50095 .58464 L
.54056 .58914 L
.58016 .59279 L
.61976 .59572 L
.65937 .59803 L
.69897 .5998 L
.73857 .60112 L
.75837 .60163 L
.77817 .60205 L
.79798 .6024 L
.81778 .60267 L
.83758 .60289 L
.85738 .60305 L
.87718 .60316 L
.88708 .6032 L
.89698 .60324 L
.90688 .60327 L
.91679 .60329 L
.92174 .60329 L
.92669 .6033 L
.93164 .6033 L
.93659 .60331 L
.94154 .60331 L
.94649 .60331 L
.94896 .60332 L
.95144 .60332 L
.95391 .60332 L
Mistroke
.95639 .60332 L
.95886 .60332 L
.96134 .60332 L
.96258 .60332 L
.96381 .60332 L
.96505 .60332 L
.96629 .60332 L
.96753 .60332 L
.96876 .60332 L
.97 .60332 L
.97124 .60332 L
.97248 .60332 L
.97372 .60332 L
.97495 .60332 L
.97619 .60332 L
Mfstroke
P
P
p
p
.004 w
.02571 .01472 m
.06532 .02176 L
.10492 .02877 L
.14452 .03571 L
.18413 .04257 L
.22373 .04931 L
.26333 .05589 L
.30294 .0623 L
.34254 .06851 L
.38214 .07449 L
.42175 .08021 L
.46135 .08564 L
.50095 .09078 L
.54056 .09559 L
.58016 .10005 L
.61976 .10414 L
.65937 .10786 L
.69897 .11117 L
.73857 .11408 L
.77817 .11655 L
.81778 .11859 L
.85738 .12019 L
.87718 .12082 L
.89698 .12134 L
.91679 .12174 L
.92669 .1219 L
.93659 .12202 L
.94649 .12213 L
.95144 .12216 L
.95639 .1222 L
.96134 .12222 L
.96381 .12223 L
.96629 .12224 L
.96876 .12225 L
.97 .12225 L
.97124 .12225 L
.97248 .12225 L
.97372 .12225 L
.97495 .12225 L
.97619 .12225 L
s
P
P
P
% End of Graphics
MathPictureEnd
end
restore gr
%
% End Imported PIC File: plot-theta.eps
%
/Times-Italic findfont 180.00 scalefont setfont
4725 3600 m
gs 1 -1 sc (x\(t\)) col0 show gr
/Times-Italic findfont 180.00 scalefont setfont
4725 4725 m
gs 1 -1 sc (y\(t\)) col0 show gr
$F2psEnd
restore
SHAR_EOF
fi # end of overwriting check
if test -f 'traj.eps'
then
	echo shar: will not over-write existing file "'traj.eps'"
else
cat << \SHAR_EOF > 'traj.eps'
%!PS-Adobe-2.0 EPSF-2.0
%%Title: traj.fig
%%Creator: fig2dev Version 3.1 Patchlevel 1
%%CreationDate: Mon Jan 27 10:20:47 1997
%%For: pankaj@euclid (Pankaj Kumar Agarwal,,6540,)
%%Orientation: Portrait
%%BoundingBox: 0 0 81 28
%%Pages: 0
%%BeginSetup
%%IncludeFeature: *PageSize Letter
%%EndSetup
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {} def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def

end
save
-144.0 135.0 translate
1 -1 scale

/clp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/l {lineto} bind def
/m {moveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
  bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
  4 -2 roll mul srgb} bind def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
%%EndProlog

$F2psBegin
10 setmiterlimit
 0.06000 0.06000 sc
% Polyline
%
% Begin Imported EPS File: stick.eps
%
n gs
2416 1807 tr
2.750000 -2.683871 sc
0 -155 tr
-70 -320 tr
save
/showpage {} def
% EPS file follows:
%!PS-Adobe-2.0 EPSF-2.0
%%BoundingBox: 70 320 550 475
%%Creator: Mathematica
%%CreationDate: Fri Sep 20 10:40:09 EDT 1996
%%EndComments

/Mathdict 150 dict def
Mathdict begin
/Mlmarg		1.0 72 mul def
/Mrmarg		1.0 72 mul def
/Mbmarg		1.0 72 mul def
/Mtmarg		1.0 72 mul def
/Mwidth		8.5 72 mul def
/Mheight	11 72 mul def
/Mtransform	{  } bind def
/Mnodistort	true def
/Mfixwid	true	def
/Mfixdash	false def
/Mrot		0	def
/Mpstart {
MathPictureStart
} bind def
/Mpend {
MathPictureEnd
} bind def
/Mscale {
0 1 0 1
5 -1 roll
MathScale
} bind def
/ISOLatin1Encoding dup where
{ pop pop }
{
[
/.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
} ifelse
/MFontDict 50 dict def
/MStrCat
{
exch
dup length
2 index length add
string
dup 3 1 roll
copy
length
exch dup
4 2 roll exch
putinterval
} def
/MCreateEncoding
{
1 index
255 string cvs
(-) MStrCat
1 index MStrCat
cvn exch
(Encoding) MStrCat
cvn dup where
{
exch get
}
{
pop
StandardEncoding
} ifelse
3 1 roll
dup MFontDict exch known not
{
1 index findfont
dup length dict
begin
{1 index /FID ne
{def}
{pop pop}
ifelse} forall
/Encoding 3 index
def
currentdict
end
1 index exch definefont pop
MFontDict 1 index
null put
}
if
exch pop
exch pop
} def
/ISOLatin1 { (ISOLatin1) MCreateEncoding } def
/ISO8859 { (ISOLatin1) MCreateEncoding } def
/Mcopyfont {
dup
maxlength
dict
exch
{
1 index
/FID
eq
{
pop pop
}
{
2 index
3 1 roll
put
}
ifelse
}
forall
} def
/Plain	/Courier findfont Mcopyfont definefont pop
/Bold	/Courier-Bold findfont Mcopyfont definefont pop
/Italic /Courier-Oblique findfont Mcopyfont definefont pop
/MathPictureStart {
gsave
Mtransform
Mlmarg
Mbmarg
translate
Mwidth
Mlmarg Mrmarg add
sub
/Mwidth exch def
Mheight
Mbmarg Mtmarg add
sub
/Mheight exch def
/Mtmatrix
matrix currentmatrix
def
/Mgmatrix
matrix currentmatrix
def
} bind def
/MathPictureEnd {
grestore
} bind def
/MFill {
0 0 		moveto
Mwidth 0 	lineto
Mwidth Mheight 	lineto
0 Mheight 	lineto
fill
} bind def
/MPlotRegion {
3 index
Mwidth mul
2 index
Mheight mul
translate
exch sub
Mheight mul
/Mheight
exch def
exch sub
Mwidth mul
/Mwidth
exch def
} bind def
/MathSubStart {
Momatrix
Mgmatrix Mtmatrix
Mwidth Mheight
7 -2 roll
moveto
Mtmatrix setmatrix
currentpoint
Mgmatrix setmatrix
9 -2 roll
moveto
Mtmatrix setmatrix
currentpoint
2 copy translate
/Mtmatrix matrix currentmatrix def
3 -1 roll
exch sub
/Mheight exch def
sub
/Mwidth exch def
} bind def
/MathSubEnd {
/Mheight exch def
/Mwidth exch def
/Mtmatrix exch def
dup setmatrix
/Mgmatrix exch def
/Momatrix exch def
} bind def
/Mdot {
moveto
0 0 rlineto
stroke
} bind def
/Mtetra {
moveto
lineto
lineto
lineto
fill
} bind def
/Metetra {
moveto
lineto
lineto
lineto
closepath
gsave
fill
grestore
0 setgray
stroke
} bind def
/Mistroke {
flattenpath
0 0 0
{
4 2 roll
pop pop
}
{
4 -1 roll
2 index
sub dup mul
4 -1 roll
2 index
sub dup mul
add sqrt
4 -1 roll
add
3 1 roll
}
{
stop
}
{
stop
}
pathforall
pop pop
currentpoint
stroke
moveto
currentdash
3 -1 roll
add
setdash
} bind def
/Mfstroke {
stroke
currentdash
pop 0
setdash
} bind def
/Mrotsboxa {
gsave
dup
/Mrot
exch def
Mrotcheck
Mtmatrix
dup
setmatrix
7 1 roll
4 index
4 index
translate
rotate
3 index
-1 mul
3 index
-1 mul
translate
/Mtmatrix
matrix
currentmatrix
def
grestore
Msboxa
3  -1 roll
/Mtmatrix
exch def
/Mrot
0 def
} bind def
/Msboxa {
newpath
5 -1 roll
Mvboxa
pop
Mboxout
6 -1 roll
5 -1 roll
4 -1 roll
Msboxa1
5 -3 roll
Msboxa1
Mboxrot
[
7 -2 roll
2 copy
[
3 1 roll
10 -1 roll
9 -1 roll
]
6 1 roll
5 -2 roll
]
} bind def
/Msboxa1 {
sub
2 div
dup
2 index
1 add
mul
3 -1 roll
-1 add
3 -1 roll
mul
} bind def
/Mvboxa	{
Mfixwid
{
Mvboxa1
}
{
dup
Mwidthcal
0 exch
{
add
}
forall
exch
Mvboxa1
4 index
7 -1 roll
add
4 -1 roll
pop
3 1 roll
}
ifelse
} bind def
/Mvboxa1 {
gsave
newpath
[ true
3 -1 roll
{
Mbbox
5 -1 roll
{
0
5 1 roll
}
{
7 -1 roll
exch sub
(m) stringwidth pop
.3 mul
sub
7 1 roll
6 -1 roll
4 -1 roll
Mmin
3 -1 roll
5 index
add
5 -1 roll
4 -1 roll
Mmax
4 -1 roll
}
ifelse
false
}
forall
{ stop } if
counttomark
1 add
4 roll
]
grestore
} bind def
/Mbbox {
1 dict begin
0 0 moveto
/temp (T) def
{	gsave
currentpoint newpath moveto
temp 0 3 -1 roll put temp
false charpath flattenpath currentpoint
pathbbox
grestore moveto lineto moveto} forall
pathbbox
newpath
end
} bind def
/Mmin {
2 copy
gt
{ exch } if
pop
} bind def
/Mmax {
2 copy
lt
{ exch } if
pop
} bind def
/Mrotshowa {
dup
/Mrot
exch def
Mrotcheck
Mtmatrix
dup
setmatrix
7 1 roll
4 index
4 index
translate
rotate
3 index
-1 mul
3 index
-1 mul
translate
/Mtmatrix
matrix
currentmatrix
def
Mgmatrix setmatrix
Mshowa
/Mtmatrix
exch def
/Mrot 0 def
} bind def
/Mshowa {
4 -2 roll
moveto
2 index
Mtmatrix setmatrix
Mvboxa
7 1 roll
Mboxout
6 -1 roll
5 -1 roll
4 -1 roll
Mshowa1
4 1 roll
Mshowa1
rmoveto
currentpoint
Mfixwid
{
Mshowax
}
{
Mshoway
}
ifelse
pop pop pop pop
Mgmatrix setmatrix
} bind def
/Mshowax {	
0 1
4 index length
-1 add
{
2 index
4 index
2 index
get
3 index
add
moveto
4 index
exch get
Mfixdash
{
Mfixdashp		
}
if
show
} for
} bind def
/Mfixdashp {
dup
length
1
gt
1 index
true exch
{
45
eq
and
} forall
and
{
gsave
(--)		
stringwidth pop
(-)
stringwidth pop
sub
2 div
0 rmoveto
dup
length
1 sub
{
(-)
show
}
repeat
grestore
}
if
} bind def	
/Mshoway {
3 index
Mwidthcal
5 1 roll
0 1
4 index length
-1 add
{
2 index
4 index
2 index
get
3 index
add
moveto
4 index
exch get
[
6 index
aload
length
2 add
-1 roll
{
pop
Strform
stringwidth
pop
neg 
exch
add
0 rmoveto
}
exch
kshow
cleartomark
} for
pop	
} bind def
/Mwidthcal {
[
exch
{
Mwidthcal1
}
forall
]
[
exch
dup
Maxlen
-1 add
0 1
3 -1 roll
{
[
exch
2 index
{		 
1 index	
Mget
exch
}
forall		
pop
Maxget
exch
}
for
pop
]
Mreva
} bind def
/Mreva	{
[
exch
aload
length
-1 1
{1 roll}
for
]
} bind def
/Mget	{
1 index
length
-1 add
1 index
ge
{
get
}
{
pop pop
0
}
ifelse
} bind def
/Maxlen	{
[
exch
{
length
}
forall
Maxget
} bind def
/Maxget	{
counttomark
-1 add
1 1
3 -1 roll
{
pop
Mmax
}
for
exch
pop
} bind def
/Mwidthcal1 {
[
exch
{
Strform
stringwidth
pop
}
forall
]
} bind def
/Strform {
/tem (x) def
tem 0
3 -1 roll
put
tem
} bind def
/Mshowa1 {
2 copy
add
4 1 roll
sub
mul
sub
-2 div
} bind def
/MathScale {
Mwidth
Mheight
Mlp
translate
scale
/yscale exch def
/ybias exch def
/xscale exch def
/xbias exch def
/Momatrix
xscale yscale matrix scale
xbias ybias matrix translate
matrix concatmatrix def
/Mgmatrix
matrix currentmatrix
def
} bind def
/Mlp {
3 copy
Mlpfirst
{
Mnodistort
{
Mmin
dup
} if
4 index
2 index
2 index
Mlprun
11 index
11 -1 roll
10 -4 roll
Mlp1
8 index
9 -5 roll
Mlp1
4 -1 roll
and
{ exit } if
3 -1 roll
pop pop
} loop
exch
3 1 roll
7 -3 roll
pop pop pop
} bind def
/Mlpfirst {
3 -1 roll
dup length
2 copy
-2 add
get
aload
pop pop pop
4 -2 roll
-1 add
get
aload
pop pop pop
6 -1 roll
3 -1 roll
5 -1 roll
sub
div
4 1 roll
exch sub
div
} bind def
/Mlprun {
2 copy
4 index
0 get
dup
4 1 roll
Mlprun1
3 copy
8 -2 roll
9 -1 roll
{
3 copy
Mlprun1
3 copy
11 -3 roll
/gt Mlpminmax
8 3 roll
11 -3 roll
/lt Mlpminmax
8 3 roll
} forall
pop pop pop pop
3 1 roll
pop pop
aload pop
5 -1 roll
aload pop
exch
6 -1 roll
Mlprun2
8 2 roll
4 -1 roll
Mlprun2
6 2 roll
3 -1 roll
Mlprun2
4 2 roll
exch
Mlprun2
6 2 roll
} bind def
/Mlprun1 {
aload pop
exch
6 -1 roll
5 -1 roll
mul add
4 -2 roll
mul
3 -1 roll
add
} bind def
/Mlprun2 {
2 copy
add 2 div
3 1 roll
exch sub
} bind def
/Mlpminmax {
cvx
2 index
6 index
2 index
exec
{
7 -3 roll
4 -1 roll
} if
1 index
5 index
3 -1 roll
exec
{
4 1 roll
pop
5 -1 roll
aload
pop pop
4 -1 roll
aload pop
[
8 -2 roll
pop
5 -2 roll
pop
6 -2 roll
pop
5 -1 roll
]
4 1 roll
pop
}
{
pop pop pop
} ifelse
} bind def
/Mlp1 {
5 index
3 index	sub
5 index
2 index mul
1 index
le
1 index
0 le
or
dup
not
{
1 index
3 index	div
.99999 mul
8 -1 roll
pop
7 1 roll
}
if
8 -1 roll
2 div
7 -2 roll
pop sub
5 index
6 -3 roll
pop pop
mul sub
exch
} bind def
/intop 0 def
/inrht 0 def
/inflag 0 def
/outflag 0 def
/xadrht 0 def
/xadlft 0 def
/yadtop 0 def
/yadbot 0 def
/Minner {
outflag
1
eq
{
/outflag 0 def
/intop 0 def
/inrht 0 def
} if		
5 index
gsave
Mtmatrix setmatrix
Mvboxa pop
grestore
3 -1 roll
pop
dup
intop
gt
{
/intop
exch def
}
{ pop }
ifelse
dup
inrht
gt
{
/inrht
exch def
}
{ pop }
ifelse
pop
/inflag
1 def
} bind def
/Mouter {
/xadrht 0 def
/xadlft 0 def
/yadtop 0 def
/yadbot 0 def
inflag
1 eq
{
dup
0 lt
{
dup
intop
mul
neg
/yadtop
exch def
} if
dup
0 gt
{
dup
intop
mul
/yadbot
exch def
}
if
pop
dup
0 lt
{
dup
inrht
mul
neg
/xadrht
exch def
} if
dup
0 gt
{
dup
inrht
mul
/xadlft
exch def
} if
pop
/outflag 1 def
}
{ pop pop}
ifelse
/inflag 0 def
/inrht 0 def
/intop 0 def
} bind def	
/Mboxout {
outflag
1
eq
{
4 -1
roll
xadlft
leadjust
add
sub
4 1 roll
3 -1
roll
yadbot
leadjust
add
sub
3 1
roll
exch
xadrht
leadjust
add
add
exch
yadtop
leadjust
add
add
/outflag 0 def
/xadlft 0 def
/yadbot 0 def
/xadrht 0 def
/yadtop 0 def
} if
} bind def
/leadjust {
(m) stringwidth pop
.5 mul
} bind def
/Mrotcheck {
dup
90
eq
{
yadbot
/yadbot
xadrht
def	
/xadrht
yadtop
def
/yadtop
xadlft
def
/xadlft
exch
def
}
if
dup
cos
1 index
sin
Checkaux
dup
cos
1 index
sin neg
exch
Checkaux
3 1 roll
pop pop
} bind def
/Checkaux {
4 index
exch
4 index
mul
3 1 roll
mul add
4 1 roll
} bind def
/Mboxrot {
Mrot
90 eq
{
brotaux
4 2
roll
}
if
Mrot
180 eq
{
4 2
roll
brotaux
4 2
roll
brotaux
}	
if
Mrot
270 eq
{
4 2
roll
brotaux
}
if
} bind def
/brotaux {
neg
exch
neg
} bind def
/Mabsproc {
0
matrix defaultmatrix
dtransform idtransform
dup mul exch
dup mul
add sqrt
} bind def
/Mabswid {
Mabsproc
setlinewidth	
} bind def
/Mabsdash {
exch
[
exch
{
Mabsproc
}
forall
]
exch
setdash
} bind def
/MBeginOrig { Momatrix concat} bind def
/MEndOrig { Mgmatrix setmatrix} bind def
/sampledsound where
{ pop}
{ /sampledsound {
exch
pop
exch
5 1 roll
mul
4 idiv
mul
2 idiv
exch pop
exch
/Mtempproc exch def
{ Mtempproc pop}
repeat
} bind def
} ifelse
/g { setgray} bind def
/k { setcmykcolor} bind def
/m { moveto} bind def
/p { gsave} bind def
/r { setrgbcolor} bind def
/w { setlinewidth} bind def
/C { curveto} bind def
/F { fill} bind def
/L { lineto} bind def
/P { grestore} bind def
/s { stroke} bind def
/setcmykcolor where
{ pop}
{ /setcmykcolor {
4 1
roll
[
4 1 
roll
]
{
1 index
sub
1
sub neg
dup
0
lt
{
pop
0
}
if
dup
1
gt
{
pop
1
}
if
exch
} forall
pop
setrgbcolor
} bind def
} ifelse
/Mcharproc
{
currentfile
(x)
readhexstring
pop
0 get
exch
div
} bind def
/Mshadeproc
{
dup
3 1
roll
{
dup
Mcharproc
3 1
roll
} repeat
1 eq
{
setgray
}
{
3 eq
{
setrgbcolor
}
{
setcmykcolor
} ifelse
} ifelse
} bind def
/Mrectproc
{
3 index
2 index
moveto
2 index
3 -1
roll
lineto
dup
3 1
roll
lineto
lineto
fill
} bind def
/Mcolorimage
{
7 1
roll
pop
pop
matrix
invertmatrix
concat
2 exch exp
1 sub
3 1 roll
1 1
2 index
{
1 1
4 index
{
dup
1 sub
exch
2 index
dup
1 sub
exch
7 index
9 index
Mshadeproc
Mrectproc
} for
pop
} for
pop pop pop pop
} bind def
/Mimage
{
pop
matrix
invertmatrix
concat
2 exch exp
1 sub
3 1 roll
1 1
2 index
{
1 1
4 index
{
dup
1 sub
exch
2 index
dup
1 sub
exch
7 index
Mcharproc
setgray
Mrectproc
} for
pop
} for
pop pop pop
} bind def

%%AspectRatio: .3071 
MathPictureStart
%% Graphics
/Courier findfont 10  scalefont  setfont
% Scaling calculations
0.0238095 0.30196 0.00731188 0.30196 [
[(0.5)] .17479 .00731 0 2 Msboxa
[(1)] .32577 .00731 0 2 Msboxa
[(1.5)] .47675 .00731 0 2 Msboxa
[(2)] .62773 .00731 0 2 Msboxa
[(2.5)] .77871 .00731 0 2 Msboxa
[(3)] .92969 .00731 0 2 Msboxa
[(0.2)] .01131 .0677 1 0 Msboxa
[(0.4)] .01131 .1281 1 0 Msboxa
[(0.6)] .01131 .18849 1 0 Msboxa
[(0.8)] .01131 .24888 1 0 Msboxa
[ -0.001 -0.001 0 0 ]
[ 1.001 .3081 0 0 ]
] MathScale
% Start of Graphics
1 setlinecap
1 setlinejoin
newpath
[ ] 0 setdash
0 g
p
p
.002 w
.17479 .00731 m
.17479 .01356 L
s
P
[(0.5)] .17479 .00731 0 2 Mshowa
p
.002 w
.32577 .00731 m
.32577 .01356 L
s
P
[(1)] .32577 .00731 0 2 Mshowa
p
.002 w
.47675 .00731 m
.47675 .01356 L
s
P
[(1.5)] .47675 .00731 0 2 Mshowa
p
.002 w
.62773 .00731 m
.62773 .01356 L
s
P
[(2)] .62773 .00731 0 2 Mshowa
p
.002 w
.77871 .00731 m
.77871 .01356 L
s
P
[(2.5)] .77871 .00731 0 2 Mshowa
p
.002 w
.92969 .00731 m
.92969 .01356 L
s
P
[(3)] .92969 .00731 0 2 Mshowa
p
.001 w
.05401 .00731 m
.05401 .01106 L
s
P
p
.001 w
.0842 .00731 m
.0842 .01106 L
s
P
p
.001 w
.1144 .00731 m
.1144 .01106 L
s
P
p
.001 w
.14459 .00731 m
.14459 .01106 L
s
P
p
.001 w
.20499 .00731 m
.20499 .01106 L
s
P
p
.001 w
.23518 .00731 m
.23518 .01106 L
s
P
p
.001 w
.26538 .00731 m
.26538 .01106 L
s
P
p
.001 w
.29557 .00731 m
.29557 .01106 L
s
P
p
.001 w
.35597 .00731 m
.35597 .01106 L
s
P
p
.001 w
.38616 .00731 m
.38616 .01106 L
s
P
p
.001 w
.41636 .00731 m
.41636 .01106 L
s
P
p
.001 w
.44655 .00731 m
.44655 .01106 L
s
P
p
.001 w
.50695 .00731 m
.50695 .01106 L
s
P
p
.001 w
.53714 .00731 m
.53714 .01106 L
s
P
p
.001 w
.56734 .00731 m
.56734 .01106 L
s
P
p
.001 w
.59753 .00731 m
.59753 .01106 L
s
P
p
.001 w
.65793 .00731 m
.65793 .01106 L
s
P
p
.001 w
.68812 .00731 m
.68812 .01106 L
s
P
p
.001 w
.71832 .00731 m
.71832 .01106 L
s
P
p
.001 w
.74851 .00731 m
.74851 .01106 L
s
P
p
.001 w
.80891 .00731 m
.80891 .01106 L
s
P
p
.001 w
.8391 .00731 m
.8391 .01106 L
s
P
p
.001 w
.8693 .00731 m
.8693 .01106 L
s
P
p
.001 w
.89949 .00731 m
.89949 .01106 L
s
P
p
.001 w
.95989 .00731 m
.95989 .01106 L
s
P
p
.001 w
.99008 .00731 m
.99008 .01106 L
s
P
p
.002 w
0 .00731 m
1 .00731 L
s
P
p
.002 w
.02381 .0677 m
.03006 .0677 L
s
P
[(0.2)] .01131 .0677 1 0 Mshowa
p
.002 w
.02381 .1281 m
.03006 .1281 L
s
P
[(0.4)] .01131 .1281 1 0 Mshowa
p
.002 w
.02381 .18849 m
.03006 .18849 L
s
P
[(0.6)] .01131 .18849 1 0 Mshowa
p
.002 w
.02381 .24888 m
.03006 .24888 L
s
P
[(0.8)] .01131 .24888 1 0 Mshowa
p
.001 w
.02381 .01939 m
.02756 .01939 L
s
P
p
.001 w
.02381 .03147 m
.02756 .03147 L
s
P
p
.001 w
.02381 .04355 m
.02756 .04355 L
s
P
p
.001 w
.02381 .05563 m
.02756 .05563 L
s
P
p
.001 w
.02381 .07978 m
.02756 .07978 L
s
P
p
.001 w
.02381 .09186 m
.02756 .09186 L
s
P
p
.001 w
.02381 .10394 m
.02756 .10394 L
s
P
p
.001 w
.02381 .11602 m
.02756 .11602 L
s
P
p
.001 w
.02381 .14017 m
.02756 .14017 L
s
P
p
.001 w
.02381 .15225 m
.02756 .15225 L
s
P
p
.001 w
.02381 .16433 m
.02756 .16433 L
s
P
p
.001 w
.02381 .17641 m
.02756 .17641 L
s
P
p
.001 w
.02381 .20057 m
.02756 .20057 L
s
P
p
.001 w
.02381 .21264 m
.02756 .21264 L
s
P
p
.001 w
.02381 .22472 m
.02756 .22472 L
s
P
p
.001 w
.02381 .2368 m
.02756 .2368 L
s
P
p
.001 w
.02381 .26096 m
.02756 .26096 L
s
P
p
.001 w
.02381 .27304 m
.02756 .27304 L
s
P
p
.001 w
.02381 .28511 m
.02756 .28511 L
s
P
p
.001 w
.02381 .29719 m
.02756 .29719 L
s
P
p
.002 w
.02381 0 m
.02381 .3071 L
s
P
P
0 0 m
1 0 L
1 .3071 L
0 .3071 L
closepath
clip
newpath
p
p
.004 w
.02381 .00731 m
.14817 .01215 L
.23586 .01698 L
.30357 .02181 L
.35869 .02664 L
.44517 .03626 L
.51171 .04584 L
.6106 .06485 L
.68261 .08359 L
.73828 .10197 L
.78282 .11992 L
.81918 .13737 L
.84923 .15425 L
.87424 .17048 L
.89508 .18601 L
.91245 .20076 L
.92684 .21467 L
.9387 .2277 L
.94835 .23977 L
.95609 .25086 L
.9622 .2609 L
.96688 .26986 L
.97036 .2777 L
.97283 .28439 L
.97448 .2899 L
.97547 .29421 L
.97577 .29591 L
.97598 .29731 L
.9761 .29839 L
.97614 .29882 L
.97616 .29917 L
.97618 .29944 L
.97618 .29954 L
.97619 .29963 L
.97619 .2997 L
.97619 .29973 L
.97619 .29975 L
.97619 .29977 L
.97619 .29977 L
.97619 .29978 L
.97619 .29978 L
.97619 .29978 L
.97619 .29979 L
.97619 .29979 L
s
P
P
% End of Graphics
MathPictureEnd
end
showpage
restore gr
%
% End Imported PIC File: stick.eps
%
/Symbol findfont 75.00 scalefont setfont
2963 1995 m
gs 1 -1 sc (P) col0 show gr
$F2psEnd
restore
SHAR_EOF
fi # end of overwriting check
#	End of shell archive
exit 0

