Stan Math Library  2.20.0
reverse mode automatic differentiation
recover_memory_nested.hpp
Go to the documentation of this file.
1 #ifndef STAN_MATH_REV_CORE_RECOVER_MEMORY_NESTED_HPP
2 #define STAN_MATH_REV_CORE_RECOVER_MEMORY_NESTED_HPP
3 
7 #include <stdexcept>
8 
9 namespace stan {
10 namespace math {
11 
20 static inline void recover_memory_nested() {
21  if (empty_nested())
22  throw std::logic_error(
23  "empty_nested() must be false"
24  " before calling recover_memory_nested()");
25 
27  ChainableStack::instance_->nested_var_stack_sizes_.back());
29 
31  ChainableStack::instance_->nested_var_nochain_stack_sizes_.back());
33 
34  for (size_t i
35  = ChainableStack::instance_->nested_var_alloc_stack_starts_.back();
38  }
40  ChainableStack::instance_->nested_var_alloc_stack_starts_.back());
42 
44 }
45 
46 } // namespace math
47 } // namespace stan
48 #endif
static bool empty_nested()
Return true if there is no nested autodiff being executed.
static STAN_THREADS_DEF AutodiffStackStorage * instance_
void recover_nested()
recover memory back to the last start_nested call.
static void recover_memory_nested()
Recover only the memory used for the top nested call.

     [ Stan Home Page ] © 2011–2018, Stan Development Team.