\(\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}} }\)
NumericType¶
Definition of a Numeric Type¶
Type Requirements¶
A NumericType is any type
that satisfies the requirements below.
The following is a list of some numeric types:
int
, float
, double
,
AD<double>
, AD< AD<double> >
.
The routine CheckNumericType can be used to check
that a type satisfies these conditions.
Default Constructor¶
The syntax
NumericType x ;
creates a NumericType object with an unspecified value.
Constructor From Integer¶
If i is an int
,
the syntax
NumericType x ( i );
creates a NumericType object with a value
equal to i where i can be const
.
Copy Constructor¶
If x is a NumericType object the syntax
NumericType y ( x );
creates a NumericType object y
with the same value as x
where x can be const
.
Assignment¶
If x and y are NumericType objects, the syntax
x = y
sets the value of x equal to the value of y
where y can be const
.
The expression corresponding to this operation is unspecified; i.e.,
it could be void
and hence
x = y = z
may not be legal.
Operators¶
Suppose x , y and z
NumericType objects where
x and y may be const
.
In the result type column,
NumericType can be replaced by any type that can
be used just like a NumericType object.
Operation |
Description |
Result Type |
|
unary plus |
NumericType |
|
unary minus |
NumericType |
x + y |
binary addition |
NumericType |
x |
binary subtraction |
NumericType |
x * y |
binary multiplication |
NumericType |
x / y |
binary division |
NumericType |
z += y |
compound assignment addition |
unspecified |
z |
compound assignment subtraction |
unspecified |
z \* = y |
compound assignment multiplication |
unspecified |
z /= y |
compound assignment division |
unspecified |
Example¶
The file numeric_type.cpp contains an example and test of using numeric types. (It is easy to modify to test additional numeric types.)