$Id: atan_reverse.omh 3682 2015-05-08 21:59:05Z bradbell $
// BEGIN SHORT COPYRIGHT
/* --------------------------------------------------------------------------
CppAD: C++ Algorithmic Differentiation: Copyright (C) 2003-15 Bradley M. Bell

CppAD is distributed under multiple licenses. This distribution is under
the terms of the
                    GNU General Public License Version 3.

A copy of this license is included in the COPYING file of this distribution.
Please visit http://www.coin-or.org/CppAD/ for information on other licenses.
-------------------------------------------------------------------------- */
// END SHORT COPYRIGHT

$begin atan_reverse$$
$spell
	atan
	atanh
	Taylor
$$

$section Inverse Tangent and Hyperbolic Tangent Reverse Mode Theory$$


We use the reverse theory
$cref%standard math function
	%ReverseTheory
	%Standard Math Functions
%$$
definition for the functions $latex H$$ and $latex G$$.
In addition, we use the forward mode notation in
$cref atan_forward$$ for
$latex \[
	B(t) = 1 \pm X(t) * X(t)
\] $$
We use $latex b$$
for the $th p$$ order Taylor coefficient
row vectors corresponding to $latex B(t)$$
and replace $latex z^{(j)}$$ by
$latex \[
	( z^{(j)} , b^{(j)} )
\] $$
in the definition for $latex G$$ and $latex H$$.
The zero order forward mode formulas for the
$cref/atan/atan_forward/$$
function are
$latex \[
\begin{array}{rcl}
	z^{(0)}  & = & F ( x^{(0)} ) \\
	b^{(0)}  & = & 1 \pm x^{(0)} x^{(0)}
\end{array}
\] $$
where $latex F(x) = \R{atan} (x)$$ for $latex +$$
and $latex F(x) = \R{atanh} (x)$$ for $latex -$$.
For orders $latex j$$ greater than zero we have
$latex \[
\begin{array}{rcl}
b^{(j)} & = &
	\pm \sum_{k=0}^j x^{(k)} x^{(j-k)}
\\
z^{(j)} & = & \frac{1}{j} \frac{1}{ b^{(0)} }
\left(
	j x^{(j)}
	- \sum_{k=1}^{j-1} k z^{(k)}  b^{(j-k)}
\right)
\end{array}
\] $$


If $latex j = 0$$, we note that
$latex F^{(1)} ( x^{(0)} ) =  1 / b^{(0)}$$ and hence
$latex \[
\begin{array}{rcl}
\D{H}{ x^{(j)} } & = &
\D{G}{ x^{(j)} }
+ \D{G}{ z^{(j)} } \D{ z^{(j)} }{ x^{(0)} }
+ \D{G}{ b^{(j)} } \D{ b^{(j)} }{ x^{(0)} }
\\
& = &
\D{G}{ x^{(j)} }
+ \D{G}{ z^{(j)} } \frac{1}{ b^{(0)} }
\pm \D{G}{ b^{(j)} } 2 x^{(0)}
\end{array}
\] $$

If $latex j > 0$$, then for $latex k = 1, \ldots , j-1$$
$latex \[
\begin{array}{rcl}
\D{H}{ b^{(0)} } & = &
\D{G}{ b^{(0)} }
+ \D{G}{ z^{(j)} } \D{ z^{(j)} }{ b^{(0)} }
\\
& = &
\D{G}{ b^{(0)} }
- \D{G}{ z^{(j)} } \frac{ z^{(j)} }{ b^{(0)} }
\\
\D{H}{ x^{(j)} } & = &
\D{G}{ x^{(j)} }
+ \D{G}{ z^{(j)} } \D{ z^{(j)} }{ x^{(j)} }
+ \D{G}{ b^{(j)} } \D{ b^{(j)} }{ x^{(j)} }
\\
& = &
\D{G}{ x^{(j)} }
+ \D{G}{ z^{(j)} } \frac{1}{ b^{(0)} }
\pm \D{G}{ b^{(j)} } 2 x^{(0)}
\\
\D{H}{ x^{(0)} } & = &
\D{G}{ x^{(0)} }
+ \D{G}{ z^{(j)} } \D{ z^{(j)} }{ x^{(0)} }
+ \D{G}{ b^{(j)} } \D{ b^{(j)} }{ x^{(0)} }
\\
& = &
\D{G}{ x^{(0)} }
\pm \D{G}{ b^{(j)} } 2 x^{(j)}
\\
\D{H}{ x^{(k)} } & = &
\D{G}{ x^{(k)} }
+ \D{G}{ z^{(j)} } \D{ z^{(j)} }{ x^{(k)} }
+ \D{G}{ b^{(j)} } \D{ b^{(j)} }{ x^{(k)} }
\\
& = &
\D{G}{ x^{(k)} }
\pm \D{G}{ b^{(j)} } 2 x^{(j-k)}
\\
\D{H}{ z^{(k)} } & = &
\D{G}{ z^{(k)} }
+ \D{G}{ z^{(j)} } \D{ z^{(j)} }{ z^{(k)} }
+ \D{G}{ b^{(j)} } \D{ b^{(j)} }{ z^{(k)} }
\\
& = &
\D{G}{ z^{(k)} }
- \D{G}{ z^{(j)} } \frac{k b^{(j-k)} }{ j b^{(0)} }
\\
\D{H}{ b^{(j-k)} } & = &
\D{G}{ b^{(j-k)} }
+ \D{G}{ z^{(j)} } \D{ z^{(j)} }{ b^{(j-k)} }
+ \D{G}{ b^{(j)} } \D{ b^{(j)} }{ b^{(j-k)} }
\\
& = &
\D{G}{ b^{(j-k)} }
- \D{G}{ z^{(j)} } \frac{k z^{(k)} }{ j b^{(0)} }
\end{array}
\] $$

$end
