$\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
i = Integer(x)

Purpose
Converts from an AD type to the corresponding integer value.

i
The result i has prototype       int i 
x

Real Types
If the argument x has either of the following prototypes:       const float                  &x      const double                 &x  the fractional part is dropped to form the integer value. For example, if x is 1.5, i is 1. In general, if $x \geq 0$, i is the greatest integer less than or equal x . If $x \leq 0$, i is the smallest integer greater than or equal x .

Complex Types
If the argument x has either of the following prototypes:       const std::complex<float>    &x      const std::complex<double>   &x  The result i is given by       i = Integer(x.real()) 
If the argument x has either of the following prototypes:       const AD<Base>               &x      const VecAD<Base>::reference &x  Base must support the Integer function and the conversion has the same meaning as for Base .
The result of this operation is not an AD of Base object. Thus it will not be recorded as part of an AD of Base operation sequence .