\(\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}} }\)
CheckSimpleVector¶
View page sourceCheck Simple Vector Concept¶
Syntax¶
include <cppad/utility/check_simple_vector.hpp>
CheckSimpleVector
< Scalar , Vector >()CheckSimpleVector
< Scalar , Vector >( x , y )Purpose¶
Preforms compile and run time checks that the type specified by Vector satisfies all the requirements for a SimpleVector class with elements of type Scalar . If a requirement is not satisfied, a an error message makes it clear what condition is not satisfied.
Vector¶
is the vector type we are checking.
Scalar¶
is the type corresponding to the elements of an Vector .
x, y¶
If the arguments x and y are present, they have prototype
const
Scalar & xconst
Scalar & yIn addition, the check
x == x
will return the boolean value true
, and
x == y
will return false
.
Restrictions¶
If the arguments x and y are not present,
the following extra assumption is made by CheckSimpleVector
:
If x is a Scalar object
assigns values to the objects x and y .
In addition,
x == x would return the boolean value true
and
x == y would return false
.
Include¶
The file cppad/utility/check_simple_vector.hpp
is included by cppad/cppad.hpp
but it can also be included separately with out the rest
if the CppAD include files.
Parallel Mode¶
This routine must be called before entering parallel mode because it has static variables that must be initialized. If it’s first call is not in parallel mode, and NDEBUG is not defined, you will get an assertion. Running in the debugger and going to the stack frame where CheckSimpleVector is called may help you determine what the value of Scalar and Vector need to be initialized.
Example¶
The file check_simple_vector.cpp contains an example and test of this function where S is the same as T . The comments in this example suggest a way to change the example so S is not the same as T .