$\newcommand{\W}[1]{ \; #1 \; } \newcommand{\R}[1]{ {\rm #1} } \newcommand{\B}[1]{ {\bf #1} } \newcommand{\D}[2]{ \frac{\partial #1}{\partial #2} } \newcommand{\DD}[3]{ \frac{\partial^2 #1}{\partial #2 \partial #3} } \newcommand{\Dpow}[2]{ \frac{\partial^{#1}}{\partial {#2}^{#1}} } \newcommand{\dpow}[2]{ \frac{ {\rm d}^{#1}}{{\rm d}\, {#2}^{#1}} }$

Syntax
z = x Op y

Purpose
Performs arithmetic operations where either x or y has type AD<Base> or VecAD<Base>::reference .

Op
The operator Op is one of the following
 Op Meaning + z is x plus y - z is x minus y * z is x times y / z is x divided by y

Base
The type Base is determined by the operand that has type AD<Base> or VecAD<Base>::reference .

x
The operand x has the following prototype       const Type &x  where Type is VecAD<Base>::reference , AD<Base> , Base , or double.

y
The operand y has the following prototype       const Type &y  where Type is VecAD<Base>::reference , AD<Base> , Base , or double.

z
The result z has the following prototype       Type z  where Type is AD<Base> .

Operation Sequence
This is an atomic AD of Base operation and hence it is part of the current AD of Base operation sequence .

Example
The following files contain examples and tests of these functions. Each test returns true if it succeeds and false otherwise.
If $f$ and $g$ are Base functions
$$\D{[ f(x) + g(x) ]}{x} = \D{f(x)}{x} + \D{g(x)}{x}$$
$$\D{[ f(x) - g(x) ]}{x} = \D{f(x)}{x} - \D{g(x)}{x}$$
$$\D{[ f(x) * g(x) ]}{x} = g(x) * \D{f(x)}{x} + f(x) * \D{g(x)}{x}$$
$$\D{[ f(x) / g(x) ]}{x} = [1/g(x)] * \D{f(x)}{x} - [f(x)/g(x)^2] * \D{g(x)}{x}$$