Prev Next omp_efficient

@(@\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}} }@)@
Check If A Memory Allocation is Efficient for Another Use

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.

# include <cppad/utility/omp_alloc.hpp>
flag = omp_alloc::efficient(v_ptrnum_bytes)

Check if memory that is currently in use is an efficient allocation for a specified number of bytes.

This argument has prototype
     const void* 
. 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.

This argument has prototype
It specifies the number of bytes of the memory allocated by v_ptr that we want to use.

The return value has prototype
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.

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 ).

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: cppad/utility/omp_alloc.hpp