File: release.cpp

package info (click to toggle)
cppad 2025.00.00.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 11,552 kB
  • sloc: cpp: 112,594; sh: 5,972; ansic: 179; python: 71; sed: 12; makefile: 10
file content (27 lines) | stat: -rw-r--r-- 888 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
// SPDX-FileCopyrightText: Bradley M. Bell <bradbell@seanet.com>
// SPDX-FileContributor: 2003-22 Bradley M. Bell
// ----------------------------------------------------------------------------
# include <cppad/cppad.hpp>

// Returns a pointer to a double that has value 5.0
// and must be freed using thread_alloc::return_memory.
double *release_thread_alloc(void)
{  size_t min_bytes = sizeof(double);
   size_t cap_bytes;
   void*   v_ptr = CppAD::thread_alloc::get_memory(min_bytes, cap_bytes);
   double* d_ptr = reinterpret_cast<double*>(v_ptr);
   *d_ptr        = 5.0;
   return d_ptr;
}

// just use ADFun<double> constructor
void release_adfun_ctor(void)
{
   CppAD::vector< CppAD::AD<double> > ax(1), ay(1);
   ax[0] = 0.;
   CppAD::Independent(ax);
   ay[0] = fabs(ax[0]);
   CppAD::ADFun<double> f(ax, ay);
   return;
}