The C++ new and delete operators are thread safe,
but this means that a thread may have to wait for a lock on these operations.
Once memory is obtained for a thread, the thread_alloc memory
allocator keeps that memory available
for the thread so that
it can be re-used without waiting for a lock.
All the CppAD memory allocations use this utility.
function should be used to return memory
to the system (once it is no longer required by a thread).
The routines in sections below are defined by cppad/thread_alloc.hpp.
This file is included by
cppad/cppad.hpp, but it can also be included separately with out
the rest of the CppAD.