%!TEX root = ../thesis.tex
%*******************************************************************************
%****************************** Chapter 3: c-proj *********************************
%*******************************************************************************

\chapter{Para--$c$--projective compactification of $M$} \label{chap:c-proj}
In \cite{CG} the concept of $c$--projective compactification was
defined. It is based on almost $c$--projective geometry \cite{c_proj},
an analogue of projective geometry defined for almost complex
manifolds, i.e., even--dimensional manifolds $M$ carrying a smooth endomorphism $J$ of $TM$ which satisfies $J^2=-Id$. In $c$--projective geometry, the equivalence class of torsion--free connections is replaced by an equivalence class of connections which are adapted to the almost complex structure $J$ in a natural way. In this chapter we discuss a notion of compactification which is modified to the {\it{``para''}} case, i.e. where the endomorphism $J$ squares to $Id$ rather than $-Id$. We show that the natural almost para--complex structure $J$ on any manifold $M$ arising in the projective to Einstein correspondence admits a type of compactification which we call \textit{para}--$c$--projective. The content of this chapter is based on material appearing in \cite{DGW}. It was undertaken in collaboration with Maciej Dunajski and Rod Gover.

\section{Background and definitions}
The purpose of this section is to introduce the definitions which are required to state the main results of \cite{CG}.

\subsection{Almost (para--)complex geometry}

\begin{defi}
The Nijenhuis tensor of an endomorphism $J$ of $TM$ is defined by
\be \label{eq:Nijenhuis_def}
\mathcal{N}(\xi_1,\xi_2):=[\xi_1,\xi_2] - [J\xi_1,J\xi_2] + J([J\xi_1,\xi_2] + [\xi_1,J\xi_2]),
\ee
where $\xi_1,\xi_2$ are vector fields on $M$ and $[\cdot\,,\cdot]$ denotes the Lie bracket of vector fields. This is equivalent to
\be \label{eq:Nijenhuis_index_def}
\mathcal{N}^a_{bc}=J^d_{\ [b}\p_{|d|}J^a_{\ c]}-J^d_{\ [b}\p_{c]}J^a_{\ d}.
\ee
\end{defi}

Let $M$ be a complex manifold of (complex) dimension $n$, in the sense of having complex coordinates and complex transition functions. Then multiplication of the coordinates by $i$ defines an endomorphism $J$ of $TM$ which squares to $-Id$, so complex manifolds are a subset of almost complex manifolds. In this case, $J$ has eigenvalues $\pm i$, and the corresponding splitting of $TM$ into eigen--bundles is Frobenius integrable. The Newlander--Nirenberg theorem describes complex manifolds in terms of the Nijenhuis tensor (\ref{eq:Nijenhuis_def}) of $J$.

\begin{theo}[\cite{NewNir}]
An almost complex manifold $(M,J)$ is a complex manifold if and only if the Nijenhuis tensor of $J$ vanishes. In this case, we call the almost complex structure $J$ integrable.
\end{theo}

As discussed in Chapter \ref{chap:intro2}, an endomorphism $J$ which squares to $Id$ defines an analogous splitting of the tangent bundle into sub--bundles with eigenvalues $\pm 1$, and this splitting is also Frobenius integrable if and only if the Nijenhuis tensor of $J$ vanishes. We thus call an almost para--complex structure $J$ with vanishing Nijenhuis tensor a para--complex structure, and say that in this case $J$ is integrable. In all the definitions below, the word \textit{almost} can be removed if the (para--)complex structure $J$ is integrable.

\begin{defi}
A (para--)Hermitian metric on an almost (para--)complex manifold $(M,J)$ is a metric $g$ satisfying
\[
g(J\cdot\,,J\cdot) = \pm g(\cdot\,,\cdot),
\]
where the minus sign corresponds to the ``para'' case. The triple $(M,J,g)$ then defines an almost (para--)Hermitian manifold.
\end{defi}

Note that every (para--)Hermitian manifold has a naturally defined two--form $\Omega(\cdot\,,\cdot)=g(\cdot\,,J\cdot)$ which is (para--)Hermitian in the sense that
\[
\Omega(J\cdot\,,J\cdot) = \pm \Omega(\cdot\,,\cdot),
\]
and can alternatively be specified as $(M,J,\Omega)$ or $(M,g,\Omega)$. An almost (para--)K\"ahler manifold $(M,J,g)$ is a (para--)Hermitian manifold whose associated two--form is closed, meaning $M$ carries compatible complex, pseudo--Riemannian and symplectic structures. The manifolds $M$ arising in the projective to Einstein correspondence are almost para--K\"ahler, and para--K\"ahler when the underlying projective structure is flat \cite{DM}.

\subsection{Almost (para--)CR structures and contact distributions}

\begin{defi}
An almost (para--)CR structure $(\mathcal{Z},\mathbb{H} ,J)$ on a manifold $\mathcal{Z}$ is a sub--bundle $\mathbb{H} \subset T\mathcal{Z}$ of the tangent bundle together with a fibre--preserving endomorphism $J:\mathbb{H} \rightarrow \mathbb{H} $ which satisfies $J^2=Id$ or $J^2=-Id$ depending on whether or not we are talking about the ``para'' case.
\end{defi}

We will be interested in the case where $ \mathbb{H} $ is a hyperplane distribution on $\mathcal{Z}$; then $(\mathcal{Z}, \mathbb{H} ,J)$ is called an almost (para--)CR structure of \textit{hypersurface type}. An almost (para--)complex structure $(M,J)$ of dimension $2n$ defines an almost (para--)CR structure of hypersurface type on any hypersurface $\mathcal{Z}\subset M$ given by the restriction of $J$ to the hyperplane distribution $ \mathbb{H} :=T\mathcal{Z}\cap J(T\mathcal{Z})$ on $\mathcal{Z}$. Note that this distribution must have dimension $2n-2$. An almost (para--)CR structure is a (para--)CR structure if and only if the splitting of $ \mathbb{H} $ into eigen--bundles induced by $J$ is Frobenius integrable.

We can define the notion of non--degeneracy for an almost (para--)CR structure as follows. The Lie bracket of vector fields induces an antisymmetric $\R$--bilinear operator $\Gamma( \mathbb{H} )\times\Gamma( \mathbb{H} )\rightarrow\Gamma(T\mathcal{Z}/ \mathbb{H} )$ which in fact is also bilinear over smooth functions on $\mathcal{Z}$. This means it is induced by a bundle map $\mathcal{L}: \mathbb{H} \times \mathbb{H} \rightarrow T\mathcal{Z}/ \mathbb{H} $ which is called the \textit{Levi bracket}. Since it takes values in a line bundle it can be thought of as an antisymmetric bilinear form called the \textit{Levi form}. Degeneracy (or not) of the almost (para--)CR structure is defined as degeneracy (or not) of the Levi form. Note that the Levi form also defines a \textit{symmetric} bilinear form $h_\mathbb{H}(\cdot\,,\cdot)=\mathcal{L}(\cdot\,,J\cdot)$ as long as $\mathcal{L}$ is (para--)Hermitian with respect to $J$, and that this symmetric bilinear form is non--degenerate if and only if $\mathcal{L}$ is.

\begin{defi}
A contact structure on a manifold $\mathcal{Z}$ of dimension $2n-1$ is a hyperplane distribution $ \mathbb{H} \subset T\mathcal{Z}$ specified as the kernel of a one--form $\beta$ on $\mathcal{Z}$ which satisfies the complete non--integrability condition
\be \label{eq:non_integrability}
\beta\wedge \underbrace{(d\beta \wedge \dots\wedge d\beta)}_{n-1\ \mathrm{times}} \neq 0.
\ee
\end{defi}

The complete non--integrability condition can be thought of as the opposite of Frobenius integrability of the hyperplane distribution, see for example \cite{arnold}.

\subsection{Connections and (para--)$c$--projective equivalence} \label{sec:c-proj_geom}

\begin{defi}
A connection on an almost (para--)complex manifold $(M,J)$ is called complex if it preserves $J$.
\end{defi}

Note that, in contrast to a metric connection, it is not always possible to define a complex connection which is torsion--free. In fact, this is possible if and only if the Nijenhuis tensor (\ref{eq:Nijenhuis_def}) of $J$ vanishes. However, one can always define a complex connection whose torsion is equal to the Nijenhuis tensor of $J$ up to a constant multiplicative factor \cite{c_proj}. Such connections are called \textit{minimal}.

\begin{defi}
Two affine connections $\nabla$ and $\ol{\nabla}$ on an almost (para--)complex manifold $(M,J)$ are called (para--)$c$--projectively equivalent if there is a one--form $\Upsilon_a$ on $M$ such that their components $\Gamma^a_{bc}$ and $\ol{\Gamma}^a_{bc}$ are related by
\be \label{eq:c-proj_change}
\ol{\Gamma}^a_{bc} - \Gamma^a_{bc} = \delta_{b}^{a}\Upsilon_{c}+\delta_{c}^{a}\Upsilon_{b} \pm (\Upsilon_d J^d_{\ b} J^a_{\ c} + \Upsilon_d J^d_{\ c} J^a_{\ b}),
\ee
where the plus corresponds to the case $J^2=Id$ and the minus corresponds to the case $J^2=-Id$.
\end{defi}

Note that the para--$c$--projective change of connection differs from the $c$--projective case in the signs of some of the terms, to account for the fact that $J$ squares to the $Id$ rather than $-Id$. It is easy to show that if $\nabla$ is complex then so is $\ol{\nabla}$, and the index symmetry of the right hand side of (\ref{eq:c-proj_change}) means that if $\nabla$ is minimal then so is $\ol{\nabla}$. An almost (para--)$c$--projective structure on a manifold $M$ comprises an almost (para--)complex structure $J$ and a (para--)$c$--projective equivalence class $[\nabla]$ of complex minimal connections.

We note here for later use that $c$--projective geometry in $2n$ dimensions can be expressed as a Cartan geometry. The model Lie group quotient is $G/S$, where
\[
G=\{g\in SL(2n+2,\R)\,:\,g\mathbb{J}=\mathbb{J}g\},
\]
and $\mathbb{J}$ is an endomorphism of $\R^{2n+2}$ which squares to $-Id$. This can be identified with $SL(n+1,\mathbb{C})$. The subgroup $S$ is the stabiliser subgroup of a complex line in $\mathbb{C}^{n+1}$, or equivalently a real plane in $\R^{2n+2}$. Since a complex line in $\mathbb{C}^{n+1}$ projects to a point in $\CP^n$, $\CP^n$ can be realised as $G/S$. More details can be found in \cite{c_proj}. Although the para--$c$--projective case has non been studied in detail, we expect the construction to be analogous, with $\mathbb{J}$ instead squaring to the identity on $\R^{2n+2}$.

\subsection{Para--$c$--projective compactification}

We now specialise to the ``para'' case, where $J^2=Id$. Note that all the corresponding results for $J^2=-Id$ can be found in \cite{CG}.

\begin{defi}
\label{defi_1}  Let $(M,J)$ be an almost para--complex manifold, and let $\nabla$ be a complex minimal connection. The structure $(M,J)$ admits a para--$c$--projective compactification to a manifold with boundary $\ol{M}=M\cup\p M$
if there exists a function $T:\ol{M}\rightarrow \R$ such that the zero locus $\mathcal{Z}(T)$ is the boundary
$\p M\subset \ol{M}$, the differential $dT$ does not vanish on $\p M$, and the connection $\ol{\nabla}$, related to $\nabla$ by (\ref{eq:c-proj_change}) with $\Upsilon = dT/(2T)$, extends to $\ol{M}$.
\end{defi}

It follows easily from this definition that the endomorphism $J$ on $M$ naturally extends to all of $\ol{M}$ by parallel transport with respect to $\ol{\nabla}$. It thus defines an almost para--CR structure on the hyperplane distribution $ \mathbb{H} $ defined by $ \mathbb{H} _m:=T_m\p M \cap J(T_m \p M)$ for all $m\in\p M$. It can be shown that this almost para--CR structure is non--degenerate if and only if for any local defining function $T$ the one--form $\beta=dT\circ J$, whose restriction to $\p M$ has kernel $ \mathbb{H} $, satisfies the complete non--integrability condition (\ref{eq:non_integrability}) making $ \mathbb{H} $ a contact distribution on $\p M$.

To see this, first note that $\beta(\xi)=0\ \forall\ \xi\in\Gamma( \mathbb{H} )$ implies $d\beta(\cdot\,,\cdot)=-\beta([\cdot\,,\cdot])$, so the restriction of $d\beta$ to $ \mathbb{H} \times \mathbb{H} $ represents the Levi form $\mathcal{L}$. This means that the almost para--CR structure on $\p M$ is non--degenerate if and only if the restriction of $d\beta(\xi,\cdot)$ to $ \mathbb{H} $ is non--zero for all non--zero $\xi\in\Gamma( \mathbb{H} )$. But this is equivalent to the non--integrability condition (\ref{eq:non_integrability}).

%Note also the distinction between the integrability (or not) of the ($2n-2$)--dimensional distribution $ H $ and the integrability (or not) of the two ($n-1$)--dimensional distributions given by the eigenvalue decomposition of $ H $ under the action of $J$.

Another result of lemma 5 of \cite{CG} is that $d\beta$ is Hermitian on $\p M$ if and only if the Nijenhuis tensor (\ref{eq:Nijenhuis_def}) of $J$ takes so--called \textit{asymptotically tangential values}. This is equivalent to the following statement in index notation:
\be
\label{Nijenhuis_condition}
\Big({\mathcal{N}^{a}}_{bc}\nabla_a T\Big)\Big|_{T=0}=0.  \ee
Note in particular that Hermiticity of $d\beta$ on $\p M$ implies Hermiticity of $d\beta$ on $ \mathbb{H} $, and hence the existence of a non--degenerate metric $h_\mathbb{H}(\cdot\,,\cdot)=d\beta(\cdot\,,J\cdot)|_ \mathbb{H} $ on $ \mathbb{H} $. Both of these facts also apply in the ``para'' case.

Although $c$--projective compactification is defined for any almost complex manifold, the definition can be applied to pseudo--Riemannian metrics $g$ which are Hermitian with respect to the almost complex structure so long as there exists a connection which preserves both $g$ and $J$ and has minimal torsion. Such Hermitian metrics are said to be \textit{admissible}.  Note that such a connection, if it exists, is uniquely defined, since the conditions that it be complex and minimal determine its torsion. It is thus given by the Levi--Civita connection of $g$ plus a constant multiple of the Nijenhuis tensor (\ref{eq:Nijenhuis_def}) of $J$.

The first main result of \cite{CG} is  Theorem 8 in this reference, which gives a local form for an admissible Hermitian metric which is sufficient for the corresponding $c$--projective structure to be $c$--projectively compact. The theorem is stated below, adapted to the para--$c$--projective case. The proof can be obtained by a trivial adaptation of the arguments in
\cite{CG}, and so further details may be obtained from that source.
\begin{theo}[\cite{CG}] \label{CGthm}
Let $\ol{M}$ be a smooth manifold with boundary $\p M$ and interior $M$. Let $J$ be an almost para--complex structure on $\ol{M}$, such that $\p M$ is non--degenerate and the Nijenhuis tensor $\mathcal{N}$ of $J$ has asymptotically tangential values. Let $g$ be an admissible pseudo--Riemannian Hermitian metric on $M$. For a local defining function $T$ for the boundary defined on an open
subset ${\mathcal U}\subset \ol{M}$, put $\beta=dT\circ J$ and, given a non--zero real
constant $C$, define a Hermitian tensor field $h_{T,C}$ on
${\mathcal U}\cap M$ by
\[
h_{T,C}:=Tg+\frac{C}{T}(dT^2-\beta^2).
\]
Suppose that for each $x\in\p M$ there is an open neighbourhood
${\mathcal{U}}$ of $x$ in $\ol{M}$, a local defining function $T$ defined on
${\mathcal{U}}$, and a non--zero constant $C$ such that
\begin{itemize}
\item $h_{T,C}$ admits a smooth extension to all of $\mathcal{U}$
\item for all vector fields $\xi_1,\xi_2$ on $\mathcal{U}$ with $dT(\xi_2)=\beta(\xi_2)=0$, the function $h_{T,C}(\xi_1,J\xi_2)$ approaches $Cd\beta(\xi_1,\xi_2)$ at the boundary.
\end{itemize}
Then $g$ is $c$--projectively compact.
\end{theo}
Note that the statement in  Theorem \ref{CGthm} does not depend on the choice of $T$. Different choices of $T$ result in rescalings of the one--form $\beta$ on the boundary by a nowhere vanishing function.

\section{Compactifying the Dunajski--Mettler Class}

In order to construct the para--$c$--projective compactification of the manifolds $M$ arising in the projective to Einstein correspondence, we will need to understand them from a tractor perspective. This is the goal of the following subsection.

\subsection{Tractor construction of $M$}\label{sec:trac_construction_g}

In Section \ref{sec:trac_construction} it was shown that the projectivised cotractor bundle of $N$ is stratified by the canonical density $\tau=V\hook W$, where $V$ is the pull back of the canonical tractor along $\pi_\cT:\cT^*\rightarrow N$ and $W$ is the tautological section of $\pi_\cT^*(\cT^*)$. It is easily verified that the zero locus $\mathcal{Z}(\tau)$ of $\tau$ is a smoothly embedded hypersurface in $\mathcal{M}:=\PP(\cT^*)$. %  and from (\ref{eq:T*N_is_M}) it follows at once that this may be identified with the total space of the fibrewise projectivisation $\mathbb{P}(T^*N)$ (which is well known to have an almost para--CR structure). \mynote{Is there a way to justify this "well known" fact?}
In the following theorem, we show that $\mathcal{M}\backslash\mathcal{Z}(\tau)$ can be identified with $M$.

\begin{theo}\cite{DGW}\label{metric}
There is a metric $g$ and two--form $\Omega$ on $\mathcal{M}\setminus \mathcal{Z}(\tau)$ determined by the canonical pairing of the horizontal and vertical subspaces of $T(\cT^*)$. The pair $(g,\Omega)$ agrees with (\ref{eq:coord_form}).
\end{theo}
\noindent {\bf Proof.}
 Considering first the total space $\cT^*$ and then its tangent
 bundle, note that there is an exact sequence
  \begin{equation}\label{TM}
0\to \pi_\cT^* \cT^*\to T(\cT^*)\to \pi_\cT^*TN\to 0,
  \end{equation}
  where we have identified $\pi_\cT^* \cT^*$ as the vertical sub-bundle of $T(\cT^*)$.
The tractor connection on the vector bundle $\cT^*\to N$ is equivalent to a splitting of this sequence, identifying $\pi_\cT^*TN$ with a distinguished  sub--bundle of horizontal subspaces in
$ T(\cT^*)$ so that we have
\begin{equation}\label{HV}
T(\cT^*)=  \pi_\cT^*TN\oplus \pi_\cT^* \cT^* .
\end{equation}

%From the usual Euler sequence of projective space (or see (\ref{useful}) in the last Section) it follows that
We move now to the total space of $\cM:=\mathbb{P}( {\cT^*})$, and we note that again the tractor (equivalently, Cartan) connection determines a splitting of the tangent bundle $T(\mathbb{P} {\cT^*})$ in which the second term of the display (\ref{HV}) is replaced by a quotient of $\pi_\cT^* \cT^*(0,1)$ \cite{CGH-duke}. Indeed, if we work at a point $m\in \mathbb{P}(\cT^*)$, observe that $\pi_\cT^*\cT^*(0,1)$ has a filtration
\begin{equation}\label{quotient}
0\longrightarrow \cE (0,0)_m\xrightarrow{W_m}  \pi_\cM^* \cT^*(0,1)|_m \longrightarrow  \pi_\cM^* \cT^*(0,1)|_m/\langle W_m \rangle \longrightarrow 0
\end{equation}
where, as usual, $W$ is the canonical section.
But away from $\mathcal{Z}(\tau )$, we have that  $W$ canonically splits
the appropriately re-weighted pull back of  the sequence (\ref{eq:T*sequence})
$$
0\longrightarrow \pi_\cM^* T^*N(1,1)   \longrightarrow \pi_\cM^* \cT^*(0,1) \xrightarrow{V/\tau} \cE(0,0) \longrightarrow 0 .
$$
This identifies the quotient in (\ref{quotient}), and thus we have canonically
$$
T(\mathbb{P}(\cT^*)\setminus \mathcal{Z}(\tau))=  \pi_\cM^*TN\oplus \pi_\cM^*T^*N(1,1).
$$
It follows that on  $M:=\mathcal{M}\backslash\mathcal{Z}(\tau)$
there is canonically a metric $\boldsymbol{g}$ and symplectic form $\boldsymbol{\Omega}$ taking values in $\cE(1,1)$, given by
\begin{eqnarray*}
\boldsymbol{g}(w_1,w_2)&=& \frac{1}{2}\Bigl(
\Pi_H(w_1)\hook \Pi_V(w_2)+\Pi_H(w_2)\hook\Pi_V(w_1)\Bigl) \quad \mbox{and} \\
\boldsymbol{\Omega}(w_1,w_2)&=& \frac{1}{2}\Bigl(\Pi_H(w_1)\hook \Pi_V(w_2)-\Pi_H(w_2)\hook\Pi_V(w_1)\Bigl)
\end{eqnarray*}
where
\[
\Pi_H: TM\rightarrow \pi_\cM^*TN \quad \mbox{and} \quad \Pi_V: TM\rightarrow \pi_\cM^* T^*N(1,1)
\]
are the projections.
Then we obtain the metric and symplectic form by
\be
\label{almost_there}
g:=\frac{1}{\tau}\boldsymbol{g} \qquad \mbox{and} \qquad \Omega:=\frac{1}{\tau}\boldsymbol{\Omega} .
\ee
What remains to be done, is to show that (\ref{almost_there}) agrees
with the form obtained in \cite{DM} once a trivialisation of
$\cT^*\rightarrow N$ has been chosen.

Let $x\in N$ and let ${\mathcal U}\subset N$ be an open
neighbourhood of $x$ with
local coordinates $(x^1, \dots, x^n)$ such that
$T_xN=\mbox{span}(\p/\p x^1, \dots, \p/\p x^n)$. The connection
(\ref{eq:tractor_connection}) gives a splitting of $T(\cT^*)$ into the horizontal and
vertical sub-bundles
\[
T(\cT^*)=\mathcal{H}(\cT^*)\oplus \mathcal{V}(\cT^*),
\]
as in (\ref{HV}).
To obtain the explicit form of this splitting, let $\sigma_\alpha,\ \alpha=0, 1, \dots, n$ be components of a local section of $\cT^*$ in the trivialisation over ${\mathcal{U}}$.
Then
\[
\nabla^{\cT} \sigma_\beta=d \sigma_\beta-\gamma_{\beta}^{\alpha} \sigma_\alpha,
\]
where $\gamma_{\alpha}^\beta= \gamma_{i\alpha}^\beta dx^i$, and the components
of the co-tractor connection
$\gamma_{i\alpha}^\beta$  are given in terms of the connection
$\nabla$ on $N$, and its Schouten tensor, and
can be read--off from (\ref{eq:tractor_connection}):
\[
\gamma_{i0}^0=0, \quad \gamma_{i0}^j=\delta_i^j,\quad
\gamma_{ij}^k=\Gamma_{ij}^k, \quad \gamma_{ij}^0=-\Rho_{ij}.
\]
In terms of these components we can write
\begin{align*}
\mathcal{H}(\cT^*)&=\mbox{span}
\Big( \frac{\p}{\p x^i}+ {\gamma_{i\alpha}^\beta} \sigma_\beta
\frac{\p}{\p \sigma_{\alpha}}, i=1, \dots, n \Big), \\
 \mathcal{V}(\cT^*)&=\mbox{span}\Big(\frac{\p}{\p \sigma_{\alpha}}, \alpha=0, 1,
\dots, n\Big).
\end{align*}
Setting $\zeta_i=\sigma_i/\sigma_0$, where $\tau=\sigma_0\neq 0$ %\footnote{Rod @ Maciej: I have added $\sigma_0=\tau$. You agree, right!?}
on the complement of
$\mathcal{Z}(\tau)$,
  we can compute the push forwards
of these subspaces to $\mathbb{P}(\cT^*)\setminus {\mathcal{Z}(\tau)}$:
\[
\kappa_* \mathcal{H}(\cT^*)=\mbox{span}\Big(h_i\equiv
\frac{\p}{\p x^i}-
(\Rho_{ij}+\zeta_i\zeta_j  -\Gamma_{ij}^k\zeta_k)\frac{\p}{\partial \zeta_j}
\Big), \quad \kappa_* \mathcal{V}(\cT^*)=\mbox{span}\Big(v^i\equiv\frac{\p}{\p \zeta_i}
\Big).
\]
The non--zero components of the  metric (\ref{almost_there}) are given by
\[
g(v^i, h_j)={\delta^i}_j.
\]
This is identical to the form appearing in \cite{DM}.
\koniec

\begin{rmk}
Note that the shift (\ref{eq:zeta_change}) in the fibre coordinates $\zeta_{i}$ corresponding to a change of projective connection can be motivated from the change (\ref{eq:chi_mu_change}) in the splitting of $\cT^*$ and the definitions of $\sigma_i$ and $\zeta_i$.
\end{rmk}

\begin{rmk} We can also understand $\mathbb{P}(\cT^*)\setminus \mathcal{Z}(\tau)$ as an affine bundle modelled on $T^* N$. Given a connection in the projective class and hence a decomposition (\ref{eq:T*splitting}), there is a smooth fibre bundle isomorphism
  \begin{equation}\label{key-id}
\kappa_A : T^* N\to \mathbb{P}(\cT^*)\setminus \mathcal{Z}(\tau).
    \end{equation}
%First, given  $\nabla$, we can represent an element $U\in
%  \cT^*_p$ ($x\in N$) by the pair $(\tau , \mu) \in \cE (1)_p\oplus
%  T_p^*N(1)$,  or, if we choose coordinates on $N$, by collection
%\be
%\label{tractor_U}
%U=(\tau, \mu_i), \quad i=1, \dots, n .
%\ee
%  Then, dropping the choice $\nabla \in [\nabla]$, $U\in
%  \cT^*_p$ is an equivalence class of such pairs by the equivalence
%  relation (\ref{ttrans}) that covers the
%  equivalence relation between elements of $[\nabla]$.
%
 % Thus, given $\nabla$, and  from the naturality of all maps, it
 % follows that the total space of $T^*N$ can be identified with $\mathbb{P}(\cT^*)\setminus \mathcal{Z}(\tau)$
 % by (for each $x\in N$)
given by
\begin{equation} \label{eq:T*N_is_M}
T_x^*N\ni \zeta_i  \mapsto [(1,\zeta_i)]=[(\tau,\tau \zeta_i)]\in
\mathbb{P}(\cT_x^*)\setminus \mathcal{Z}(\tau) .
\end{equation}
\end{rmk}

%\begin{rmk}
%A feature of this construction is that in each dimension $n$ (of $N$) either the hypersurface $\mathcal{Z}(\tau)$ (if $n$ odd) is not orientable, or $\mathcal{M}$ (if $n$ even) is not orientable.
%\end{rmk}

\subsection{The compactification theorem}

As noted in Chapter \ref{chap:intro2}, in the model case where $N=\RP^n$ and $[\nabla]$ is projectively flat, the manifold $M=SL(n+1, \R)/GL(n, \R)$ can be identified with the projectivisation of $\R^{n+1}\times \R_{n+1}\setminus {\mathcal Z}$, where ${\mathcal Z}$ denotes the set of incident pairs (point, hyperplane). The compactification procedure described in the Theorem \ref{our_thm} below will, for the model, attach these incident pairs back to $M$, and more generally (in case of a curved projective structure $(N,[\nabla])$) will attach the zero locus of $\tau$ back into $\mathbb{P}(\cT^*)$. The boundary $\p M \cong \mathcal{Z}(\tau)$ from definition \ref{defi_1} will play the role of a submanifold
separating two open sets in $\mathbb{P}(\cT^*)$ which have $\tau>0$ and $\tau<0$ respectively. The method of the proof will be to show that near
the boundary ${\mathcal{Z}}(\tau)=0$ of $\ol{M}$ the metric
(\ref{eq:coord_form}) can be put in the local normal form of Theorem
\ref{CGthm}.

%Before we state the theorem, we note that the Libermann connection $\nabla^{L}$ \cite{Lieb} associated to $(M,g,\Omega)$ is given by
%\be
%\label{lib}
%{\nabla^L}_a X_b={\nabla^{\bf g}}_a X_b-{G^c}_{ab} X_c,\quad \mbox{where}\quad
%{{G^c}_{ab}}=-{{\Omega}^{cd}}{\nabla^{\bf g}}_d {\Omega_{ab}}
%\ee
%and $\nabla^{\bf g}$ is the Levi--Civita connection of $g$.

%\mynote{Where do we use this? And is $G^c_{ab}$ Nijenhuis?}

%This connection is metric, has minimal torsion, and preserves the almost para--complex structure $J$. It thus belongs to a para--$c$--projective equivalence class which we will show to be compactifiable in the sense of definition \ref{defi_1}.

\begin{theo}
\label{our_thm}
The Einstein almost para--K\"ahler structure $(M, g, \Omega)$ given by
(\ref{eq:coord_form}) admits a para--$c$--projective compactification
$\ol{M}$. The
$(2n-1)$--dimensional boundary $\p M\cong \mathcal{Z}(\tau)$ of $\ol{M}$ carries a contact structure together with a conformal structure
and an almost para--CR structure
defined on the contact distribution.
\end{theo}
%\mynote{Here we stated that $\p M\cong \mathbb{P}(T^* N)$ but unless I can justify why this carries a para--CR structure it might be better to leave this out or put $\p M\cong \mathcal{Z}(\tau)$.}
\noindent
{\bf Proof.}
In the proof below we shall explicitly construct the boundary $\p M$ together with the contact structure and the associated conformal structure on the contact distribution. We shall
first deal with the model case (\ref{eq:intro_model_g}), and then explain how the addition of non--vanishing projective curvature modifies the compactification.

Now consider an open set  ${\mathcal U}\subset M$ given
by  $\zeta_ix^i>0$, and define the function $T$ on ${\mathcal U}$ by
\be
\label{formula_for_T}
T=\frac{1}{\zeta_i x^i}.
\ee
We shall attach a boundary  $\p \mathcal{U}$ to the open set $\mathcal{U}$
such that $T$ extends to a function $\ol{T}$ on $\mathcal{U}\cup \p \mathcal{U}$, and
$\ol{T}$ is  the defining function for this boundary.
We then investigate the geometry on $M$ in the limit $T\rightarrow 0$.
It is clear from above that
the zero locus of $\ol{T}$ will be contained in the zero locus $\mathcal{Z}(\tau)$ of $\tau$, and
therefore belongs to the boundary of $\ol{M}$. We will
use $\ol{T}$ as a defining function for $\ol{M}$ in an open set $\ol{\mathcal{U}}\subset\ol{M}$.
The strategy of the proof is to extend $T$ to a coordinate system on
$\mathcal{U}$, such that near the boundary the metric $g$ takes a form
as in Theorem \ref{CGthm}.

First define $\beta\in \Lambda^1(\ol{M})$ $\ov{M}$
by
\be
\label{def_theta}
\xi\hook \beta=J(\xi)\hook d T, \quad\mbox{or equivalently}\quad
\beta_a=\Omega_{ac}g^{bc}\,({{^{\bf g}\nabla}}_b T), \quad a, b, c=1, \dots, 2n
\ee
where $J$ is the para--complex structure of $(g,  \Omega)$ and $\xi$ is a vector field on $M$. Using (\ref{eq:intro_model_g}) this  gives
\[
\beta=2T(1-T)\zeta_id x^i-dT.
\]
We need $n$  open sets $\mathcal{U}_1, \dots, \mathcal{U}_n$ such that $\zeta_k\neq 0$ on $\mathcal{U}_k$
to cover the zero locus of $T$. Here we chose $k=n$, and use
a coordinate system given by
\[
(T, Z_1, \dots, Z_{n-1}, X^1, \dots,
 X^{n-1}, Y),
\]
where $T$ is
given by (\ref{formula_for_T}) and
\[
Z_A=\frac {\zeta_A}{\zeta_n}, \quad X^A=x^A, \quad Y=x^{n}, \quad\mbox{where}\quad
A=1, \dots, n-1.
\]
We compute
\[
\beta=2(1-T)\frac{dY+Z_AdX^A}{K}-dT, \quad
\zeta_n=\frac{1}{KT}, \quad \mbox{where}\quad K\equiv Y+Z_AX^A,
\]
and substitute
\[
\zeta_i dx^i=\frac{1}{KT}(dY+Z_AdX^A)
\]
into (\ref{eq:coord_form}). This gives
\be
\label{CG_Form}
g=\frac{\beta^2-dT^2}{4T^2}+\frac{1}{T}h_T,
\ee
where
\[
h_T=\frac{1}{4(1-T)}(\beta^2-dT^2)+\frac{1}{K}\Big(dZ_A\odot dX^A-\frac{1}{2(1-T)}X^A dZ_A\odot(\beta+dT)\Big)
\]
is regular at the boundary $T=0$. This is in agreement with the
asymptotic form in Theorem \ref{CGthm} (see \cite{CG} for further details).

%Note that (\ref{def_theta}) defines the one form $\beta$ on the boundary $T=0$  only up to a overall multiple of a positive function.
The restriction of $h_T$ to $\p M$ gives a metric on the distribution ${ \mathbb{H} }=\mbox{Ker} (\beta|_{T=0})$
\begin{gather}
\beta|_{T=0}=2\frac{dY+Z_A dX^A}{Y+Z_AX^A}, \nonumber \\
h_T|_{T=0}=\frac{1}{4}{(\beta|_{T=0})}^2+\frac{1}{2(Y+Z_AX^A)}(2dZ_A\odot dX^A-X^AdZ_A\odot(\beta|_{T=0})). \label{h000}
\end{gather}
 Note that $T$ is only defined up to multiplication by a positive function. Changing the defining function in this way results in a conformal rescaling of $\beta|_{T=0}$, thus the metric on the contact distribution is also defined up to an overall conformal scale. We shall choose the scale so that
the contact form is given  by $\beta_0\equiv K\beta|_{T=0}$ on $T(\p M)$,
with the metric on ${ \mathbb{H} }$ given by
%\footnote{The singular denominator $K^{-1}$ may be avoided by adopting the Pfaff %coordinates
%\[
%y=\ln{(Y+Z_iX^i)}, \quad z_i=Z_i, \quad x_i=-\frac{X^i}{Y+Z_iX^i},
%\]
%which yields
%\[
%\beta_0=2(dy+x^idz_i), \quad h_{ H }=-(dx^i+x^idy)\odot dz_i.
%\]
%}
\be
\label{on_distri}
h_{ \mathbb{H} }=dZ_A\odot dX^A.
\ee

We now move on to deal with the
curved case where the metric on $M$ is given by
(\ref{eq:coord_form}).
%g=\left(d\zeta_a-\left(\Gamma_{ab}^c \zeta_c- \zeta_a\zeta_b- \Rho_{ab}\right)\d %x^b\right)\odot \d x^a%
The coordinate system $(T, Z_A, X^A, Y)$ is as above, and
the one--form $\beta$ in (\ref{def_theta}) is given by
\[
\beta=2T(1-T)\zeta_idx^i-dT+2T^2(\Rho_{ij}-\Gamma_{ij}^k\zeta_k)x^idx^j,
\]
or in the $(T, Z_A, X^A, Y)$ coordinates,
\[
\begin{split}
\beta=\ 2&(1-T)\frac{Z_AdX^A+dY}{K} - dT \\
+& 2T^2\Bigg[\bigg(\Rho_{AB}-\frac{\Gamma^C_{AB}Z_C+\Gamma^n_{AB}}{TK}\bigg)X^AdX^B
+\bigg(\Rho_{nB}-\frac{\Gamma^C_{nB}Z_C+\Gamma^n_{nB}}{TK}\bigg)YdX^B \\
+& \bigg(\Rho_{An}-\frac{\Gamma^C_{An}Z_C+\Gamma^n_{An}}{TK}\bigg)X^AdY
+\bigg(\Rho_{nn}-\frac{\Gamma^C_{nn}Z_C+\Gamma^n_{nn}}{TK}\bigg)YdY\Bigg].
\end{split}
\]
%We find that $g$ in these coordinates is given by
%%\begin{split}
%g=
%\end{split}
%\]

Guided by the formula (\ref{CG_Form}) we define
\[
h_T=Tg-\frac{1}{4T}(\beta^2-dT^2),
\]
which we find to be
\begin{equation*}
\begin{split}
h_T=&
\frac{1}{4(1-T)}(\beta^2-dT^2)+\frac{1}{K}\Big(dZ_A\odot dX^A-\frac{1}{2(1-T)}
X^A dZ_A\odot (\beta+dT)\Big)\\
&-\frac{1}{K}\Big(
(\Gamma_{AB}^CZ_C+\Gamma_{AB}^n)dX^A\odot dX^B+
(\Gamma_{nn}^CZ_C+\Gamma_{nn}^n)dY\odot dY \\
&\qquad\quad + 2(\Gamma_{An}^CZ_C+\Gamma_{An}^n)dX^A\odot dY\Big)\\
&+T(\Rho_{AB}dX^A\odot dX^B+2\Rho_{An}dX^A\odot dY+\Rho_{nn}dY\odot dY).
\end{split}
\end{equation*}
This is  smooth as $T\rightarrow 0$.

Restricting $h_T$ to $T=0$ yields a metric which differs from
(\ref{h000}) by the curved contribution given by the components of the  connection, but not the Schouten tensor. Substituting $dY=K\beta|_{T=0}/2-Z_AdX^A$, disregarding the terms involving $\beta|_{T=0}$ in $h_T$, and conformally rescaling by
$K$ yields the metric
\begin{eqnarray}
\label{met_th}
h_{ \mathbb{H} }&=&(dZ_A-\Xi_{AB}dX^B)\odot dX^A,\quad
\mbox{where}\\
\Xi_{AB}&=&\Gamma_{AB}^CZ_C+\Gamma_{AB}^n+
(\Gamma_{nn}^CZ_C+\Gamma_{nn}^n)Z_AZ_B-
2(\Gamma_{An}^CZ_C+\Gamma_{An}^n)Z_B\nonumber
\end{eqnarray}
defined on the contact distribution ${ \mathbb{H} }=\mbox{Ker}(\beta_0)$,
where $\beta_0=2(dY+Z_AdX^A)$.

We now invoke Theorem \ref{CGthm},  verifying
by explicit computation that the remaining two conditions are satisfied. The first of these conditions is that the metric $h_{T}$ is compatible with the Levi--form of the almost para--CR structure on the boundary. %, i.e.
%\be
%\label{boundary_compatibility}
%h_\mathbb{H}(X, Y)=Cd\beta_0(JX, Y), \quad\mbox{for}\quad X\in \mathbb{H} .
%\ee
%\mynote{I think this is slightly different but I guess equivalent to the form given in the theorem. Might need a comment?}
%\mynote{Okay I'm not sure if $C$ should be negative, i.e. if the statement in the theorem is the better one because $d\beta$ is like $-\mathcal{L}$ but the statement in the theorem is the same as in \cite{CG} i.e. in the case $J^2=-Id$. Would be good to check this.}
%\mynote{In fact in the theorem we are not talking about $h$ and $d\beta$ restricted to $ \mathbb{H} $, we are talking about $h$ and $d\beta$ on $\p M$, so maybe what I showed here is not the full condition?}
The second is that the Nijenhuis tensor takes asymptotically tangential values, i.e. that (\ref{Nijenhuis_condition}) is satisfied.

Both of these can be checked by computing the almost para--complex structure $J$ in the $(T, Z_A, X^A, Y)$ coordinates. We find
\be
\begin{split}
\label{J_T=0}
\mathcal{J}:=J|_{T=0}=\ &-\frac{\p}{\p X^A}\otimes dX^A +\frac{\p}{\p Y}\otimes dY + \frac{\p}{\p Z_A} \otimes dZ_A + \frac{\p}{\p T}\otimes dT \\
&-\frac{Z_B}{K}\frac{\p}{\p T}\otimes dX^B - \frac{1}{K}\frac{\p}{\p T}\otimes dY \\
&-\big(\Gamma^D_{AB}Z_D+\Gamma^n_{AB}\big)\frac{\p}{\p Z_A} \otimes dX^B + \big(\Gamma^D_{nB}Z_D+\Gamma^n_{nB}\big)Z_C\frac{\p}{\p Z_C} \otimes dX^B \\
&-\big(\Gamma^D_{An}Z_D+\Gamma^n_{An}\big)\frac{\p}{\p Z_A} \otimes dY
+\big(\Gamma^D_{nn}Z_D+\Gamma^n_{nn}\big)Z_C\frac{\p}{\p Z_C} \otimes dY.
\end{split}
\ee
Restricting to vectors in $ \mathbb{H} $ amounts to substituting $dY=\beta_0/2-Z_AdX^A$ and disregarding the terms involving $\beta_0$ as above, so that
\[
\begin{split}
J|_{ \mathbb{H} }= &-\frac{\p}{\p X^A}\otimes dX^A +Z_A\frac{\p}{\p Y}\otimes dX^A + \frac{\p}{\p Z_A} \otimes dZ_A + \frac{\p}{\p T}\otimes dT \\
&-\frac{2Z_B}{K}\frac{\p}{\p T}\otimes dX^B -\Xi_{AB}\frac{\p}{\p Z_A}\otimes dX^B
\end{split}
\]
and the boundary compatibility condition is satisfied.

For the Nijenhuis condition, note that we need only consider components of $\mathcal{N}$ with $a=T$ to verify (\ref{Nijenhuis_condition}). Let us use the notation $J^{(T)}$ for the one--form comprising the $\p/\p T$ components of $J$. We find this to be
\[
\begin{split}
J^{(T)}=&\bigg(-\frac{Z_B}{K} + \frac{T[2Z_B + (\Gamma^D_{AB}Z_D+\Gamma^n_{AB})X^A + (\Gamma^D_{nB}Z_D+\Gamma^n_{nB})Y]}{K} \\
&\quad - T^2[\Rho_{AB}X^A+\Rho_{nB}Y]\bigg)dX^B \\
&+\bigg(-\frac{1}{K} + \frac{T[2 + (\Gamma^D_{An}Z_D+\Gamma^n_{An})X^A + (\Gamma^D_{nn}Z_D+\Gamma^n_{nn})Y]}{K} \\
&\qquad - T^2[\Rho_{An}X^A+\Rho_{nn}Y]\bigg)dY.
\end{split}
\]
Note that this agrees with (\ref{J_T=0}) when $T=0$. Using the formula (\ref{eq:Nijenhuis_index_def}), we now calculate
\[
{\mathcal{N}^{a}}_{bc}{^{\bf g}}\nabla_a T|_{T=0}=\Big(\mathcal{J}^d_{\ [b}\p_{|d|}J^{(T)}_{\ \ c]}-\mathcal{J}^d_{\ [b}\p_{c]}J^{(T)}_{\ \ d}\Big)\Big|_{T=0}
\]
to verify (\ref{Nijenhuis_condition}).

%The only non--vanising components of the torsion of the Libermann connection (\ref{lib}) on
%the boundary $\p M$ are tangential to $\p M$,
% i. e.
%\[
%\Big({G^{a}}_{bc}{\nabla^{\bf g}}_a T\Big)|_{T=0}=0.
%\]
%The statement now follows as for the Liberman connection  (\ref{lib}) the Nijenhuis tensor is a constant multiple of $G_{ab}^c$.
\koniec

\begin{rmk}
In the case if $n=2$ let us use coordinates $(x, y, z)=(X^1,Y,Z_1)$ on $\p M$,  then (\ref{met_th}) yields
\[
h_{ \mathbb{H} }=dz\odot dx-[\Gamma_{11}^2+(\Gamma_{11}^1-2\Gamma_{12}^2)z+(\Gamma_{22}^2-2\Gamma_{12}^2)z^2+
\Gamma_{22}^1z^3]dx\odot dx,
\]
which is transparently invariant under the projective changes (\ref{eq:proj_change}) of $\nabla$.
In the  two-dimensional case the
projective
structures $(N, [\nabla])$ are equivalent to second order ordinary differential equations (\ref{odealice}) whose integral curves $C$ are the unparametrised geodesics of $\nabla$. The curves $C$ are integral submanifolds
of a  differential
ideal ${\mathcal I}=<\beta_0, \beta_1>$, where
\[
\beta_0=dy+zdx, \quad \beta_1=dz-\Big(\Gamma_{11}^2+(\Gamma_{11}^1-2\Gamma_{12}^2)z+(\Gamma_{22}^2-2\Gamma_{12}^1)z^2+
\Gamma_{22}^1z^3\Big)dx
\]
are one--forms on a three--dimensional manifold $\mathcal{Z}=\PP(T^*N)$ with local coordinates $(x, y, z)$. If $f:C\rightarrow \mathcal{Z}$ is an immersion, then $f^*(\beta_0)=0, f^*(\beta_1)=0$ is equivalent
to (\ref{odealice}) as long as $\beta_2\equiv dx$ does not vanish. In terms of these three one--forms
the contact structure, and the metric on the contact distribution are given by
$
\beta_0,  h_{ \mathbb{H} }=\beta_1\odot\beta_2.
$
\end{rmk}

\section{An alternative approach to Theorem \ref{our_thm}}

It would be possible to show that the structures $(M,g,\Omega)$ arising in the projective to Einstein correspondence are para--$c$--projectively compact using a purely tractor--based approach, without relying on Theorem \ref{CGthm} and the local form (\ref{eq:coord_form}). The basis for this alternative method is the \textit{curved orbit decompositions} appearing in \cite{CGH-duke}, which arise from \textit{holonomy reductions} of Cartan geometries.

Recall first that a connection $\theta$ on a principal $S$--bundle $\pi:\mathcal{G}\rightarrow M$ defines a unique horizontal lift of any smooth curve on $M$, and the we can define the \textit{holonomy group} of $\theta$ based at $u\in \mathcal{G}$ as
\begin{align*}
\mathrm{Hol}_u(\theta)=\{s\in S\ |&\ u\mbox{ can be joined to }us\mbox{ by the}\\
&\mbox{ horizontal lift of a loop in }M\mbox{ based at }\pi(u)\}.
\end{align*}
Then $\mathrm{Hol}_u(\theta)$ is a subgroup of $S$, and if $M$ is connected then holonomy groups at different basepoints are related by conjugation in $S$. We can thus forget about the basepoint $u$ by defining $\mathrm{Hol}(\theta)$ as a conjugacy class of subgroups of $S$. Any subgroup ${H}$ such that $\mathrm{Hol}(\theta)\subset
{H}\subset S$ defines a reduced bundle $\mathcal{G}\times_S G/{H}$ with structure group $H$ on which $\theta$ induces a connection. %In particular, if some associated vector bundle to $P$ carries some addition structure which is parallel with respect to the associated connection, then the symmetry group of this structure is an example of a possible subgroup $\tilde{H}$.

Although the Cartan connection is not a principal bundle connection in the usual sense, one can still define a notion of holonomy for Cartan connections, and it turns out \cite{CGH-duke} that a parallel section of an associated tractor bundle defines a Cartan holonomy reduction by a subgroup $H\subset S$. The subgroup $H$ decomposes the homogeneous model $G/S$ into $H$--orbits, and it turns out that there is a corresponding decomposition of $\mathcal{G}/S$ in the curved case, with \textit{reduced Cartan geometries} arising on the orbits. This is the origin of the name \textit{curved orbit decomposition}. In the $c$--projective case, the model is decomposed into a pair of open orbits separated by a closed submanifold. The open orbits carry almost K\"ahler metrics and the closed orbit carries an almost CR structure.

By our construction above it follows that $\mathcal{M}$ has a canonical para--$c$--projective geometry. In the following section, we realise the model in terms of an orbit decomposition of a Lie group quotient, which we expect to be the homogeneous model for a para--$c$--projective Cartan bundle. We conjecture that a full description of the corresponding Cartan connection would lead to a proof of Theorem \ref{our_thm} using the general Cartan holonomy theory in \cite{CGH-duke}.

\subsection{The model case}

Recall from Section \ref{sec:intro_model} that the flat projective structure on $N=\RP^n$ gives rise to
the neutral signature para--K\"ahler Einstein metric (\ref{eq:intro_model_g}) on the manifold
\begin{align*}
M=&\{([P],[L])\in\RP^n\times\RP_n\ |\ P\cdot L\neq 0\} \\
=& \mathcal{M}\backslash\mathcal{Z}(\tau),
\end{align*}
where $\mathcal{M}$ was the projectivised cotractor bundle $\PP(\cT^*)$ of $\RP^n$ and $\mathcal{Z}$ was the zero locus of the density $\tau$, or equivalently the set of incident pairs in $\RP^n\times\RP_n$.

Here we shall instead take $N$ to be the sphere $S^n$ with its standard flat projective structure where the geodesics are great circles, so that $N$ is orientable in all dimensions and the cotractor bundle is trivial. Note that $S^n$ is a double cover of $\RP^n$ which consists of the set of \textit{oriented} lines in $\R^{n+1}$. We obtain it by taking an analogous quotient of $\R^{n+1}$ where points are considered equivalent only up to multiplication by a \textit{positive} number. We call this ray projectivisation and denote it $\PP_+(\R^{n+1})$.

Replacing $\RP^n$ with $S^n$ allows us to write the cotractor bundle of $N$ as $\cT^*=S^n\times\R_3$, and if we also projectivise the fibres by ray projectivisation, we obtain a larger manifold
\[
\widetilde{\mathcal{M}}=\PP_+(\cT^*)=S^n\times S_n,
\]
where $S_n$ is the dual to $S^n$ in the same sense that $\RP_n$ is dual to $\RP^n$. Then $\widetilde{\mathcal{M}}$ contains two copies of $M$ which are separated by the hypersurface $\mathcal{Z}(\tau)$. We now express this decomposition of $\widetilde{\mathcal{M}}$ as an orbit decomposition.

Consider first two vector spaces $\mathbb{V},\mathbb{W}$ each isomorphic to $\mathbb{R}^{n+1}$, and view each as a representation space for an $SL(n+1,\mathbb{R})$ action. Define $G:= SL(\mathbb{V})\times SL(\mathbb{W})$ with its action on $\mathbb{V}\times \mathbb{W}$. We can write
\[
\mathbb{P}_+(\mathbb{V}) \times \mathbb{P}_+(\mathbb{W})=G/S=\big( SL(\mathbb{V})/P_V \big)\times \big( SL(\mathbb{W})/P_W \big)
\]
where $P_V$ (respectively\ $P_W$) is the parabolic subgroup in $SL(\mathbb{V})$
that stabilises a point $[V]$ in $\mathbb{P}_+(\mathbb{V})$ (respectively\ $[W] \in \mathbb{P}_+(\mathbb{W})$), and $S$ is the group product $P_V\times P_W$ which itself is a
parabolic subgroup of the semisimple group $G$.
Since the action of $SL(\mathbb{V})$ descends to a transitive action on the ray projectivisation $\mathbb{P}_+(\mathbb{V})$ and similarly $SL(\mathbb{W})$ acts
transitively on $\mathbb{P}_+(\mathbb{W})$, we have that $G:= SL(\mathbb{V})\times SL(\mathbb{W})$ acts transitively on the manifold $\mathbb{P}_+(\mathbb{V}) \times \mathbb{P}_+(\mathbb{W})$.

Note that we may consider $\mathbb{V}$ and $\mathbb{W}$ as the $\pm 1$ eigenspaces of the single vector space $\mathbb{V}\oplus \mathbb{W}$ equipped with an endomorphism
$\mathbb{J}$ such that $\mathbb{J}^2=1$. Then the quotient $G/S$ is exactly analogous to the model for $c$--projective geometry discussed in Section \ref{sec:c-proj_geom}. We can therefore expect $G/S$ to be the model for para--$c$--projective geometry.

Now introduce an additional structure which breaks the $G$
symmetry.
Namely we fix an isomorphism
$$
I:\mathbb{W}\to \mathbb{V}^*
$$
where $\mathbb{V}^*$ denotes the dual space to $\mathbb{V}$. The subgroup $H\cong SL(n+1,\mathbb{R})$ of $G$
that fixes this may be identified with $SL(\mathbb{V})$ which acts on a pair
$(V,W)\in \mathbb{V}\times \mathbb{V}^*$ by the defining representation and on the first
factor and by the dual representation on the second factor. Note in particular that this action preserves $W(V)$.

Given this structure we may now (suppress $I$ and) write
$$
\widetilde{\mathcal{M}}= \mathbb{P}_+(\mathbb{V}) \times \mathbb{P}_+(\mathbb{V}^*).
$$
The ${H}$ action on $\widetilde{\mathcal{M}}$ has two open orbits and a closed orbit. The last
is the incidence space
$$
\mathcal{Z}=\{ ([V],[W])\in \mathcal{M} \mid W(V)=0 \}
$$
which sits as smooth orientable separating hypersurface in $\widetilde{\mathcal{M}}$. Then there are the open orbits
$$
M_+=\{ ([V],[W])\in \mathcal{M} \mid W(V)>0 \} \quad \mbox{and} \quad
M_-=\{ ([V],[W])\in \mathcal{M} \mid W(V)<0 \}.
$$
We may think of $\mathcal{Z}$ as the `boundary' (at infinity) for the open orbits $M_\pm$, each of which is a copy of our para--K\"ahler Einstein manifold $M$.

We therefore have an orbit decomposition of the homogeneous space $G/S$, where the additional structure $I$ has induced a reduction of the holonomy group by ${H}$. Based on the results of \cite{CGH-duke} for the analogous $c$--projective case, we expect the closed orbit $\mathcal{Z}$ to carry a para--CR structure and the open orbits $M_\pm$ to carry para--K\"ahler metrics which are induced by the dual pairing between $\mathbb{V}$ and $\mathbb{V}^*$ just as we saw in Section \ref{sec:trac_construction_g}.

%We now describe the geometries on the orbits. The claim is that there are Einstein metrics in $M_\pm$, while $\mathcal{Z}$ is well known as the model for so-called contact Langrangian (or sometimes called para--CR) geometry, this is a real analogue of hypersurface type CR geometry.

%First observe that $N_V:=\mathbb{P}_+(V)$ is the flat model of projective geometry. So in particular we have
%$$
%0\to \ce_V(-1)\stackrel{X}{\to}\cT_V\to TN_V(-1)\to 0
%$$
%where $\cT_V$ is the projective tractor bundle on $N_V$ and $X$ is the tautological section of $\cT(1)$, which coincides with the canonical tractor. Similarly there a sequence on $N^W:= \mathbb{P}_+(V^*)$
%\begin{equation}\label{useful}
%0\to \ce^W(-1)\stackrel{U}{\to}\cT^W \to TN^W(-1)\to 0 .
%\end{equation}

%There is a natural tractor bundle $\mathcal{T}:=\cT_V\oplus \cT^W $ on $M$.  Where $X$ and $U$ are not incident this induces a metric on $M$ as follows. Observe that, at a point $([X],[U])$ where $X\hook U \neq 0$, the  tractor field  $U$ splits the first sequence by $\nu\in \Gamma (\ce(-1,0))$ defined by
%$$
%\nu:=U/\tau
%$$
%with $\tau:=X\hook U$ (and where we have used an obvious weight notation). This follows as $X\hook \nu=1$. Similarly
%$$
%x:=X/\tau \in \Gamma (\ce(0,-1))
%$$
%splits the second short exact sequence because $x \hook U=1$. Thus we obtain a neutral signature metric on $TN_V\oplus TN^W$ by these two steps: First, using  these splittings yields a bundle monomorphism
%$$
%TN_V(-1,0)\oplus TN^W(0,-1) \to \cT_V\oplus \cT^W .
%$$ Second, this gives a symmetric form $\boldsymbol{g}$ and symplectic form $\boldsymbol{\Omega}$ on $TN_V(-1,0)\oplus TN^W(0,-1)$ by then using the canonical metric and symplectic form on $\cT_V\oplus \cT^W $ given by the duality of $\cT_V$ and $ \cT^W$. Thus $\boldsymbol{g}\in \Gamma (S^2T^*M(1,1))$ and $\boldsymbol{\Omega}\in \Gamma (\Lambda^2T^*M(1,1))$. Then set
%$$ g:=\frac{1}{\tau}\boldsymbol{g} \qquad \mbox{and} \qquad  \Omega:=\frac{1}{\tau}\boldsymbol{\Omega}.
%$$
%The metric $g$ is easily seen to have neutral signature.  It is Einstein because the tractor metric on $\mathcal{T}$ is parallel for the tractor connection (see \cite{CGH-duke} for the analogous c-projective case). The tractor connection arises from the usual parallel transport on the vector space $V\oplus V^*$ viewed as an affine manifold.


All of the main contributions of this thesis are presented in this chapter. Specifically, a variation of eviction policies, other than what have been proposed in~\cite{park90}, and alternative data structures, that can be used as the container for the numerical database, are discussed.

\section{Priority}
\subsection{Improved WST Priority}
\label{sssec:improved_wst}
The weighted search tree priority representation, discussed in \Cref{sec:wst_priority}, has some drawbacks that probably were irrelevant at the time when \cite{park90} was published. The problem is that keeping the hit counter in only 24 bits (even more, the hit counter multiplied by the base priority) would result in an integer overflow sooner or later.

For example, imagine the case when the base priority is the maximum possible~-- 255. Binary representation is \nsnum{000000FF}{16}. After 65793 hits, the priority will have its maximum value~-- \nsnum{FFFFFFFF}{16}. If another hit counter adjustment is made an overflow occurs, producing the value \nsnum{000000FE}{16}. Therefore, the maximum priority becomes very low, and even the base priority has been changed.
There are at least two possible solutions:
\begin{description}
\item[Use larger counter]-- store the WST priority in a 64-bit integer. An overflow of a 56-bit counter is unlikely, not to say impossible~-- even with the maximum base priority, an overflow will occur only after the 282578800148737th insertion. It would take days to make so many adjustments, even if the processor performs only these adjustments and nothing else (which is at least impractical). Nevertheless, a certain disadvantage is that the memory overhead per each node is increased by 4 bytes.
\item[Perform a saturated addition] when adjusting the hit counter (\Cref{alg:wst_priority2}). The \emph{saturated addition} is the addition that yields the expected result if no overflow occurs during the operation and the maximum number for the given operand size otherwise. The drawback of this method is the slightly increased computation time.
\end{description}

The difference between these two methods is the common trade-off between time and space. Since the total count of items that can be stored in a database with the limited memory available is the crucial characteristic of a database, the preference is given to the \emph{saturated addition} method.
%\newfloat{algorithm}{tbp}{lop}
\begin{algorithm}[t]
\caption{$WST$ priority update with saturation}\label{alg:wst_priority2}
\begin{algorithmic}[1]
  \Procedure{UpdateSaturated}{$priority$}\Comment{4 bytes long unsigned integer}
    \State $base\_priority\gets priority \mathrel{\&} \nsnum{FF}{16}$
    \State $new\_priority\gets base\_priority$
    \Comment{8 bytes long unsigned integer}
    \State $new\_priority \gets new\_priority \times \nsnum{100}{16}$
    \State\Comment{Maximum possible result is \nsnum{FFFFFFFF00}{16}}
    \If{$new\_priority < \nsnum{FFFFFFFF}{16}$}
    \Comment {Maximum value for 4 bytes}
      \State $priority \gets new\_priority + base\_priority$
    \Else
      \State $priority \gets \nsnum{FFFFFF00}{16} + base\_priority$
    \EndIf
    \State \textbf{return} $priority$
  \EndProcedure
\end{algorithmic}
\end{algorithm}
%%%%%%%%%%%%Simple priority?

\subsection{Priority Aging}
\label{sssec:priority_aging}
The WST priority has one more drawback~-- it is suitable only for static input distributions~-- distributions, which mean remains constant during the execution. However, if the mean is known beforehand it is possible to construct a static optimal BST\cite[p.~442]{knuth3}, that will be more efficient than any dynamic lookup data structure.

A numerical database with the WST priority performs poorly on the time-varying distribution~-- a distribution which mean changes over time~-- while this type of distributions is more common in the real world applications. The problem arises from the fact that the priority does not reflect when an item was accessed for the last time.

The worst-case scenario is the following: an item is added to a database, then it is accessed frequently hence its priority rises to the maximum, and then is not used over a long time. During the runtime, several items like this can appear. Even though at some point they are not accessed anymore they are still the most valuable items from the perspective of the database hence they will be kept much longer than other items. This pollutes the database with elements that are stored but not used.

There are several ways to cope with the problem. First of all, it is possible to use an entirely \emph{different eviction policy}, the one that is not based on the item priority. Some of these policies are described in \Cref{sec:aep}.

Another solution is to adjust a priority not only when the corresponding node is accessed but also when it is visited (during the lookup of another item). For example, when searching in a binary search tree, the priority of the node $N$ that is being searched is increased while priorities of the nodes, lying on the path between the root of the tree and $N$, are degraded.

This mechanism may not be effective with the AVL tree because in the AVL tree the order of the nodes does not correlate with node priorities. However, it seems very promising in application to the splay tree~-- by applying this mechanism, the nodes near the root can stay there if only they are constantly accessed.

\section{Alternative Eviction Policies}
\label{sec:aep}
The canonical weighted search tree always chooses the node with the minimum priority for the deletion. However, it is only one of many possible eviction policy. Some other policies are presented in this section. From general ones, like LRU, to those exploiting the lookup data structure internals to find the least valuable item.

\subsection{LRU Policy}
\label{sssec:lru}
The Least-Recently-Used policy tracks every access to the items and sorts them by the access order. Then it evicts the item that was not accessed for the longest time. The common implementation is based on a doubly-linked list. When an item is accessed its corresponding node in the LRU list is moved into the head of the list. Then the least-recently-used node is the one in the tail of the list. When a new item is added, it is inserted in the head of the LRU list.

\subsection{LFU Policy}
\label{sssec:lfu}
The Least-Recently-Used item policy fulfills the same purposes as the LRU policy. But when it decides which item should be evicted, the access frequency is also taken in account in addition to the last access time (LRU uses the latter property only).

\subsection{Splay Policy}
\label{sssec:spolicy}
A splay tree tends to keep the most frequently accessed items near its root. By relying on this property, it is possible to eliminate a separate data structure that manages item priorities. When an eviction is performed, one of the bottom nodes is chosen for eviction. Even though this strategy may not choose the optimal node every time, it is expected to perform effectively on average. Moreover, this approach has the lowest memory overhead per node among all tested data structures.

\section{Alternative Sequential Containers}

\subsection{Hash Table}
One of the data structures that can be used in place of the weighted search tree is the hash table. Hash tables have faster than balanced BSTs lookup time under most workloads. What is more, a node in a hash table has lower memory overhead than a binary tree~-- with open hashing (based on a doubly linked list) every node stores only 2 pointers compared to 3 in a binary tree node and using closed hashing implies that no pointers are stored at all.

However closed hashing can not be used because when the hash table is almost full, a lot of unsuccessful probes occur before a suitable index is found. Usually, this problem is solved by rehashing~-- if the count of probes exceeds the certain limit, the hash table is expanded. However, it is impossible in the numerical database since the amount of available memory is preset and cannot be exceeded.

On the other hand, limited memory is rather an advantage for the open hashing. If the total amount of memory available is known beforehand, then a hash table with open hashing can be preallocated to its maximum size and be never rehashed after. This, in turn, allows a concurrent version of a hash table to be simplified as the concurrent rehashing is one of the hardest problems to cope with.

\subsection{Splay Tree}
Another data structure that looks promising is the splay tree.
As it was mentioned in \Cref{sssec:splay}, usually splay trees tend to be slower than AVL. However, in application to the numerical database, it is possible to exploit the fact that the least valuable nodes are usually gathered in leaves of the tree. Therefore it is is possible to eliminate a binary heap from a numerical database and to use the splay policy, as described in \Cref{sssec:spolicy}. What is more, it is possible to implement a concurrent numerical database using the concurrent splay tree\cite{cb_tree}.

\section{Alternative Concurrent Containers}
\label{sec:concurrent_containers}
\subsection{Coarse-grained Lock Adapter}
The \numdbname library provides a universal adapter, that wraps a sequential container and adapts it to the concurrent environment by using the coarse-grained locking approach (\Cref{sec:cgl}). It has the same interface, as a usual numerical database container. All methods follow the same structure:
\begin{enumerate}
\item the mutex is locked
\item the call is forwarded to the underlying container
\item the mutex is released
\end{enumerate}

\subsection{Binning Adapter}
The binning adapter class realises the binning concept (described in \Cref{sec:pre_bin}). It is similar to the coarse-grained lock adapter, however, it encapsulates several instances of a container, each with own mutex.

The number of bins is passed in the class constructor. The mapping is defined as  $\func{hash}{K}\bmod bin\_count$. Every bin is represented by a sequential container, e.g. the weighted search tree. In order to preserve the memory limit, all available memory is equally divided between all bins.

\subsection{CNDC}
\label{sec:cndc}
For the purposes of the \numdbname library, the original concurrent container, called \emph{Concurrent Numerical Database Container}~-- \cndcname, has been developed. It defines 3 thread-safe operations~-- \findop, \insertop, and \func{removeMin}{}. Thread-safeness is achieved through the fine-grained locking approach. \cndcname is based on concurrent versions of the hash table and the binary heap. Sequential benchmarks (\Cref{sec:secanalysis}) proved that the combination of a hash table and a binary heap outperforms numerical databases, that are based on the LRU and LFU eviction policies.

Fine-grained locking hash table implementation is much simpler compared to a similar concurrent BST. A lock is assigned to every hash table bucket (or every $k$ buckets) and every operation inside the bucket locks the corresponding mutex. Since an operation in one bucket never interferes with any other bucket, only one lock is needed per operation, while other threads can operate on other buckets at the same time. Therefore, the overhead added by locking is smaller, than in a concurrent BST, where up to $\log{\func{height}{T}}$ mutexes has to be locked on every operation.

There are several known binary heaps with a fine-grained locking (\cite{concurrent_heap1}, \cite{champ} and more). The \cndcname is based on the \libname{champ} binary heap, developed by Tamir, Morrison, and Rinetzky \cite{champ}. Unlike the majority of concurrent binary heaps, \libname{champ} allows priorities to be updated after the insertion.

In the following section, two types of locks are distinguished~-- the \emph{bucket} mutex (the one, that protects a single bucket in a hash table) and the \emph{heap} mutex (the one, that protects a single item in a binary heap. Every hash table node has a link to the corresponding heap node and vice versa. \cndcname operations are defined as follows:

\begin{block-description}
\item[\findop] consists of the following steps. At first, calling thread locks the corresponding bucket mutex. The requested item is searched in the bucket.

If the item is found, its priority is updated.
Before updating the priority the corresponding heap mutex must be locked.
After locking the heap mutex the link to the heap node is checked again. If it has changed, the heap lock is released and the operation is repeated. Double check is required, because another thread can change the link even in case it does not hold the bucket mutex.

However, the heap mutex is required to be locked prior to the link update. Therefore, when a thread holds a heap mutex it is guaranteed, that no other thread can change the link between the heap node and the hash table node.

When the node is locked, the priority is updated and the \func{bubbleDown}{} operation (as defined in \cite{champ}) is performed. \func{bubbleDown}{} internally releases the heap and bucket locks.

\item[\insertop] has a structure, similar to \findop.
The corresponding bucket mutex is locked.
New item is inserted into the hash table. After that, the item is inserted in the binary heap (at the last index). Before the insertion is performed, the heap lock of the last index is locked.

The bucket mutex is released. It is possible to do this so early, because the \emph{heap} lock will be held till the end of the operation. While it is locked, no other thread can execute any operation on the same node.

Finally, \func{bubbleUp}{}\cite{champ} is performed. It propagates the node down until the heap invariant is restored.

\blockitem[\func{removeMin}{}] evicts the item with the lowest priority. This operation is decomposed into three independent parts.

\begin{enumerate}
\item The item is evicted from the heap.
\item The hash table node is marked as \emph{deleted}. Otherwise, another thread can access the item and start the priority update routine. Since the node does not exist in the heap anymore, the thread will enter into an infinite loop. Marking solves the problem as follows~-- the marked node can still be accessed by other threads, however, they will skip the priority update stage for the node.
\item The item is removed from the hash table.
\end{enumerate}

\end{block-description}
%Search operation can be improved by using some technique, that would allow to release the bucket lock earlier, prior to \func{BubbleDown}{}. Such technique has not been developed yet.


\documentclass[twoside]{MATH77}
\usepackage[\graphtype]{mfpic}
\usepackage{multicol}
\usepackage[fleqn,reqno,centertags]{amsmath}
\begin{document}
\opengraphsfile{pl02-04}
\begmath 2.4 Bessel Functions $J_0$, $J_1$, $Y_0$ and $Y_1$

\silentfootnote{$^\copyright$1997 Calif. Inst. of Technology, \thisyear \ Math \`a la Carte, Inc.}

\subsection{Purpose}

These subprograms compute values of the cylindrical Bessel functions
of the first kind, $J_0$ and $J_{1}$, and of the cylindrical Bessel
functions of the second kind, $Y_0$ and $Y_{1}$.  These functions are
discussed in \cite{ams55} and \cite{Hart:1968:CA:bes}.

\subsection{Usage}

\subsubsection{Program Prototype, Single Precision}
\begin{description}
\item[REAL]  \ {\bf X,SBESJ0,SBESJ1,SBESY0,SBESY1,W}
\end{description}
Assign a value to X and use one of the following function references.

\begin{tabular}{ll}
To compute $J_0:$ & \fbox{\bf W = SBESJ0(X)}\rule[-15pt]{0pt}{8pt}\\

To compute $J_1:$ & \fbox{\bf W = SBESJ1(X)}\rule[-15pt]{0pt}{8pt}\\

To compute $Y_0$ for $x > 0:$ & \fbox{\bf W = SBESY0(X)}\rule[-15pt]{0pt}{8pt}\\

To compute $Y_1$ for $x > 0:$ & \fbox{\bf W = SBESY1(X)}
\end{tabular}

\subsubsection{Argument Definitions}
\begin{description}
\item[X]  \ [in] Argument of function. Require X $>0$ for the Y
functions.
\end{description}
\subsubsection{Modifications for Double Precision}
For double precision usage, change the REAL type statement to DOUBLE
PRECISION, and change the function names to DBESJ0, DBESJ1, DBESY0, and DBESY1,
respectively.

\subsection{Examples and Remarks}

The listing of DRSBESJ0 and ODSBESJ0 gives an example of using these
subprograms to evaluate the Wronskian identity
\begin{equation}
z(x) = (x\pi /2)[J_1(x)Y_0(x)-J_0(x)Y_1(x)] - 1 = 0\notag
\end{equation}

\subsection{Functional Description}

The functions $J_n$ and $Y_n$ are a pair of linearly
independent solutions for the differential equation
\begin{equation}
x^2\frac{d^2w}{dx^2}+x\frac{dw}{dx}+\left( x^2-n^2\right) w=0\notag
\end{equation}
The functions $J_0$ and $J_1$ are defined for all real $x$. The function $J_0
$ is even, and $J_1$ is odd. As $x\rightarrow \infty $, $J_0(x)$ and $J_1(x)$
oscillate an infinite number of times about zero with an amplitude that
diminishes asymptotically to $[2/(\pi x)]^{\frac 12}$, $i.e.$, approximately
$0.80x^{-\frac 12}$. The distance between successive zeros approaches $\pi $
as $|x|\rightarrow \infty .$

The functions $Y_0$ and $Y_1$ have real values for positive real $x$,
approach $-\infty $ as $x\rightarrow 0^{+}$ and have complex values for
negative real $x$. For large positive $x$ the Y functions have oscillatory
behavior similar to the J functions, $i.e.$, with amplitude approaching $0.80
x^{-\frac 12}$ and zero spacing approaching $\pi $. As $x\rightarrow 0^{+}$%
, $Y_0(x)\rightarrow (2/\pi )\ln (x)$ and $Y_1(x)\rightarrow -(2/\pi x).$

\vspace{10pt}

\hspace{5pt}\mbox{\input pl02-04 }

The Y subprograms treat $x\leq 0$ as an error condition. If the complex values
of $Y_0$ and $Y_1$ for negative $x$ are desired they may be computed from
the formulae
\begin{equation}
\begin{array}{ll}
\begin{array}{rcl}
Y_0(x) & = & Y_0(-x)+2iJ_0(-x)
\rule[-10pt]{0pt}{8pt} \\ Y_1(x) & = & -Y_1(-x)-2iJ_1(-x),
\end{array}
\quad x<0
\end{array}\notag
\end{equation}
where $i$ denotes the imaginary unit. See Equation 9.1.36 in \cite{ams55}.

The computer approximations for these functions were developed by L. W.
Fullerton, \cite{Fullerton:1973:FNLIB} and \cite{Fullerton:1977:PSF},
using functional forms involving sine, cosine, square root, logarithm, and
Chebyshev polynomial approximations.  These subprograms select the
polynomial degrees to adapt to machine accuracy of up to 30 decimal
places.

The single precision subprograms for $J_n(x)$ and $Y_n(x)$ were tested on a
Univac~1100 by comparison with the corresponding double precision
subprograms over various argument ranges. The relative precision of Univac
single precision arithmetic is $\rho = 2^{-27} \approx 0.745\times 10^{-8}$.

The results show that the relative error can be very large near the zeros
of any of these functions with the exception that relative accuracy can be,
and is, maintained for $J_1$ near its zero at $x = 0$. The absolute error
is large for $Y_0$ and $Y_1$ near the singularity at $x = 0.$

Test results may be summarized as follows.

\begin{tabular}{lllc}
 &\multicolumn{1}{c}{\bf Argument} & \multicolumn{1}{c}{\bf Maximum} &
\multicolumn {1}{c}{\bf (Abs. or}\\
\multicolumn{1}{c}{\bf Function}  &\multicolumn{1}{c}{\bf Interval} &
\multicolumn{1}{c}{\bf Error} & \multicolumn{1}{c}{\bf Rel.)}\\
SBESJ0 & [$-$5.6, 5.6] & \hspace{10pt} $6.5\rho $ & (Abs.)\\
 & [1.0, 1.0E6] & \hspace{10pt} $2.1\rho x^{\frac{1}{2}}$ & (Abs.)\\
SBESJ1 & [$-$7.2, 7.2] & \hspace{10pt} $3.8\rho $ & (Abs.)\\
 & [1.0, 1.0E6] & \hspace{10pt} $1.1\rho x^{\frac{1}{2}}$ & (Abs.)\\
SBESY0 & [0.00, 0.32] & \hspace{10pt} $7.6\rho $ & (Rel.)\\
 & [0.32, 1.12] & \hspace{10pt} $6.0\rho $ & (Abs.)\\
 & [1.12, 4.00] & \hspace{10pt} $1.9\rho $ & (Abs.)\\
 & [1.0, 1.0E6] & \hspace{10pt} $2.1\rho x^{\frac{1}{2}}$ & (Abs.)\\
SBESY1 & [0.0, 1.1] & \hspace{10pt} $6.6\rho $ & (Rel.)\\
 & [1.1, 5.5] & \hspace{10pt} $3.0\rho $ & (Abs.)\\
 & [1.0, 1.0E6] & \hspace{10pt} $1.3\rho x^{\frac{1}{2}}$ & (Abs.)
\end{tabular}

For the functions $J_n(x)$ and $Y_n(x)$ the absolute error is approximated
by $2|x|^{\frac{1}{2}}\rho $ for large $|x|$ while the amplitude of the
function values decreases like $0.8|x|^{-\frac{1}{2}}$. Thus no accuracy at
all can be expected when $2|x|^{\frac{1}{2}}\rho > 0.8|x|^{-\frac{1}{2}}$, $i.e.$%
, when $|x| > 0.4\rho ^{-1}$. The subprograms assume less than one decimal
digit of accuracy could be produced when $x > 0.04\rho ^{-1}$, and issue an
error message.

As a test of the double precision subprograms and an additional test of
the single precision
subprograms the test function, $z(x)$, defined above in Section C, was
evaluated in double precision and in single precision at selected points
ranging from $10^0$ to $10^7$. The machine arithmetic accuracies were $%
\rho_1 = 2^{-27} \approx 0.745\times 10^{-8}$ for single precision
and $\rho _2 = 2^{-60} \approx 1.15\times 10^{- 18}$ for double precision.
The magnitude of $z(x)$ computed in single precision was bounded
by $8\rho _1$ for $10^0 \leq x \leq 10^4$ and had the value
$22\rho _1$ for $x = 10^5$ and $x = 10^6$. The magnitude of $z(x)$ computed
in double precision was bounded by $9\rho _2$ for $10^0 \leq x \leq 10^7.$

This accuracy is much greater than the individual subprograms, SBESJ0, etc.,
deliver for large arguments. Thus the very accurate values of $z(x)$ must be
due to a functional relation existing between the algorithms implemented in
the different cylindrical Bessel function subprograms.

\bibliography{math77}
\bibliographystyle{math77}

\subsection{Error Procedures and Restrictions}

These subprograms return a zero result and issue an error message if

\begin{tabbing}
\hspace{.3in}\=(a)\quad \=$x \leq 0 \text{ for } Y_0\text{ or }Y_1,$\\
or\\
\>(b)\>$|x| > 0.04\rho ^{-1}\text{ for }J_0,\ J_1,\ Y_0\text{ or }Y_1.$
\end{tabbing}

The subprograms use R1MACH(4) or D1MACH(4) for $\rho $.  The
system-supplied sine and cosine subprograms may also have a cutoff
value close to $\rho ^{-1}$. If it is less than $0.04\rho ^{-1}$ then
there will be values of $x$ that will pass through the tests and
trigger an error message from the sine or cosine subprogram.

\subsection{Supporting Information}

The source language is ANSI Fortran~77.

\begin{tabular}{@{\bf}l@{\hspace{5pt}}l}
\bf Entry & \hspace{.35in} {\bf Required Files}\vspace{2pt} \\
DBESJ0 & \parbox[t]{2.7in}{\hyphenpenalty10000 \raggedright
AMACH, DBESJ0, DBMP0, DCSEVL, DERM1, DERV1, DINITS, ERFIN, ERMSG,
IERM1, IERV1\rule[-5pt]{0pt}{8pt}}\\
DBESJ1 & \parbox[t]{2.7in}{\hyphenpenalty10000 \raggedright
AMACH, DBESJ1, DBMP1, DCSEVL, DERM1, DERV1, DINITS, ERFIN, ERMSG,
IERM1, IERV1\rule[-5pt]{0pt}{8pt}}\\
DBESY0 & \parbox[t]{2.7in}{\hyphenpenalty10000 \raggedright
AMACH, DBESJ0, DBESY0, DBMP0, DCSEVL, DERM1, DERV1, DINITS, ERFIN, ERMSG,
IERM1, IERV1\rule[-5pt]{0pt}{8pt}}\\
DBESY1 & \parbox[t]{2.7in}{\hyphenpenalty10000 \raggedright
AMACH, DBESJ1, DBESY1, DBMP1, DCSEVL, DERM1, DERV1, DINITS, ERFIN,
ERMSG, IERM1, IERV1\rule[-5pt]{0pt}{8pt}}\\
% \end{tabular}
% \begin{tabular}{@{\bf}l@{\hspace{5pt}}l}
% \bf Entry & \hspace{.35in} {\bf Required Files}\vspace{2pt} \\
SBESJ0 & \parbox[t]{2.7in}{\hyphenpenalty10000 \raggedright
AMACH, ERFIN, ERMSG, IERM1, IERV1, SBESJ0, SBMP0, SCSEVL, SERM1,
SERV1, SINITS\rule[-5pt]{0pt}{8pt}}\\
SBESJ1 & \parbox[t]{2.7in}{\hyphenpenalty10000 \raggedright
AMACH, ERFIN, ERMSG, IERM1, IERV1, SBESJ1, SBMP1, SCSEVL, SERM1,
SERV1, SINITS\rule[-5pt]{0pt}{8pt}}\\
SBESY0 & \parbox[t]{2.7in}{\hyphenpenalty10000 \raggedright
AMACH, ERFIN, ERMSG, IERM1, IERV1, SBESJ0, SBESY0, SBMP0, SCSEVL,
SERM1, SERV1, SINITS\rule[-5pt]{0pt}{8pt}}\\
SBESY1 & \parbox[t]{2.7in}{\hyphenpenalty10000 \raggedright
AMACH, ERFIN, ERMSG, IERM1, IERV1, SBESJ1, SBESY1, SBMP1, SCSEVL,
SERM1, SERV1, SINITS\rule[-5pt]{0pt}{8pt}}\\
\end{tabular}

Subprograms SBESJ0, SBESJ1, SBESY0 and SBESY1 designed and developed by L.
W. Fullerton, Los Alamos, 1977. Adapted to Fortran~77 and the MATH77
library by C. L. Lawson and S. Chiu, JPL, 1984.

\begcodenp
\enlargethispage*{6pt}
\lstset{language=[77]Fortran,showstringspaces=false}
\lstset{xleftmargin=.8in}
\centerline{\bf \large DRSBESJ0}\vspace{-3pt}
\lstinputlisting{\codeloc{sbesj0}}
\vspace{4pt}\centerline{\bf \large ODSBESJ0}\vspace{3pt}
\lstset{language={}}
\lstinputlisting{\outputloc{sbesj0}}
\closegraphsfile
\end{document}


\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{graphicx}
\usepackage{multicol}
\usepackage{amsmath}
\usepackage{hyperref}
\usepackage{amsthm}
\usepackage{geometry}
\geometry{a4paper}
\usepackage{fancyhdr}
\usepackage{xcolor}
\usepackage{amssymb}
\usepackage{multicol}
\begin{document}
\author{\textbf{Elshimaa Ahmed}}
\title{\textbf{Math 501 \\
\large Lecture 1\\}}
\date {\today}
\maketitle
\noindent
\theoremstyle{definition}
\newtheorem{definition}{Definition}[section]
\section{Preposition}
\paragraph{}
  a preposition is a claim or a declerative statement which has a truth value , can be proven to be either $True$ or $False$
\paragraph{For Example: }
\begin{itemize}
    \item "Shimaa studies discrete mathimatics" is considered as $Preposition$
    \item "How was your day?" is considered as $ not-Preposition$
    \item $x$ + 1 = 2 is considered as $non$ $declerative$ $statement$ because it is truth value depends on a variable so cannot be proven to be $True$ or $False$ without knowing the value of that variable
\end{itemize}
\section{Logical Operators}
     \begin{definition}[\textbf{Negation}]
       let $p$ a preposition the negation of $p$ , denoted by $\neg$$p$ .The truth value of the negation of $p$ $\neg$ $p$ is the opposite value of $p$
       , expressed in English as "It's not the case that. p"
     \end{definition}
    \textbf{For Example:}
    \begin{itemize}
      \item the negation of "I have more than 5 friends" will become "I have at most 5 friends"
    \end{itemize}

    \begin{definition}[\textbf{Conjunction}]
      let $p$ and $q$ be prepositions , the conjunction of $p$ and $q$ denoted by $p$ $\wedge$ $q$ is a preposition "$p$ and $q$" that become true only if both $p$ and $q$ are both $True$
    \end{definition}

    \begin{definition}[\textbf{Disjunction}]
      let $p$ and $q$ be prepositions .The Disjunction of $p$ and $q$ denoted by $p$ $\vee$ $q$ is a preposition "$p$ or $q$" which is $False$ only if both of $p$ and $q$ are $False$

    \end{definition}
    \begin{definition}[\textbf{Exclusive Disjunction}]
      let $p$ and $q$ be prepositions .The esclusive or denoted by $p$ $\oplus$ $q$ is a preposition that is $True$ if exactly one of $p$ or $q$ are $True$ , and $False$ otherwise
    \end{definition}
\section{Conditional Statements}
\begin{definition}
  let $p$ and $q$ be prepositions . The Conditional Statements $p$ $\rightarrow$ $q$ , "if $p$ then $q$" is false whenever p is $False$ or q is $True$
\end{definition}
The meaning of $p$ $\rightarrow$ $q$ assert that $q$ is true whenever $p$ holds but not vise versa ,when $p$ is $False$ it does not matter what the value of $q$ for implication to be $True$ ,$p$ is called (hypothesis or antecedent or premise ) while $q$ is called conclusion or consequence .
\newline
\newline
\textbf{English Phrases to express conditional statements:}
\begin{multicols}{2}
\begin{itemize}
  \item "if $p$, then $q$"
  \item "$p$ implies $q$"
  \item "$p$ is sufficient of $q$"
  \item "$p$ only if $q$"
  \item "$q$ is necessary for $p$"
  \item "$q$ unless $\neg$ $p$"  \textbf{important}
  \item "$p$ only if $q$"
  \item "$q$ whenever $p$ "
\end{itemize}

\end{multicols}
$\newline$
\textbf{Converse, Contrapositive, and Inverse:}
for conditional statement $p$ $\rightarrow$ $q$
\begin{itemize}
  \item $q$ $\rightarrow$ $p$ called the converse .
  \item $\neg q$ $\rightarrow$ $\neg p$ called the Contrapositive and has the same truth value as the original statement
  \item $\neg p$ $\rightarrow$ $\neg q$ called the inverse
\end{itemize}
\begin{definition}
  Let $p$ and $q$ be prepositions , the biconditional statement $p$ $\leftrightarrow$ $q$ is a preposition "$p$ if and only if $q$" which is $True$ when $p$ and $q$ have the same truth values and $False$ otherwise
\end{definition}
\section{Precedence of Logical Operators}
\begin{tabular}{|c|c|c|}
 \hline
 Logical Operator & Precedence \\
 \hline
 $\neg$ & 1\\
 \hline
 $\wedge$ & 2\\
 $\vee$ & 3\\
 \hline
 $\rightarrow$ & 4\\
 $\leftrightarrow $& 5\\
 \hline
\end{tabular}
\section{Logical Equavilance}
two preposition $p$, $q$ are said to be equavilant if $p\leftrightarrow q$ is a $tautology$
\begin{itemize}
  \item $p\rightarrow q \equiv \neg p \vee q$
  \item $p\leftrightarrow q \equiv (p\rightarrow q)\wedge (q\rightarrow p)$
  \item $p \wedge T_{0} \equiv p$ , $p \vee F_{0} \equiv p$ (identity law)
  \item $p \wedge F_{0} \equiv F_{0}$ , $p \vee T_{0} \equiv T_{0}$ (domination law)
  \item $p \wedge p\equiv p$ , $p \vee p \equiv p$ (idempotent (okay to apply many times))
  \item $\neg (p \wedge q) \equiv \neg p \vee \neg q$ , $\neg (p \vee q) \equiv \neg p \wedge \neg q$ (De morgans law)
  \item $ p \wedge (p \vee q) \equiv p$ , $p \vee (p \wedge q)\equiv p$ (apsorption law)
\end{itemize}
\end{document}