\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}} }This is cppad-20221105 documentation. Here is a link to its
current documentation
.
Check If A Memory Allocation is Efficient for Another Use
Removed
This function has been removed because speed tests seem to indicate
it is just as fast, or faster, to free and then reallocate the memory.
Syntax # include <cppad/utility/omp_alloc.hpp> flag = omp_alloc::efficient(v_ptr, num_bytes)
Purpose
Check if memory that is currently in use is an efficient
allocation for a specified number of bytes.
v_ptr
This argument has prototype
const void* v_ptr
.
It must be a pointer to memory that is currently in use; i.e.
obtained by a previous call to omp_get_memory
and not yet returned.
num_bytes
This argument has prototype
size_t num_bytes
It specifies the number of bytes of the memory allocated by
v_ptr
that we want to use.
flag
The return value has prototype
bool flag
It is true,
a call to get_memory with
min_bytes
equal to
num_bytes
would result in a value for
cap_bytes
that is the same as when v_ptr
was returned by get_memory; i.e.,
v_ptr
is an efficient memory block for
num_bytes
bytes of information.
Thread
Either the current thread
must be the same as during
the corresponding call to omp_get_memory
,
or the current execution mode must be sequential
(not parallel
).
NDEBUG
If NDEBUG is defined,
v_ptr
is not checked (this is faster).
Otherwise, a list of in use pointers is searched to make sure
that
v_ptr
is in the list.
Input File: include/cppad/utility/omp_alloc.hpp