1 # ifndef CPPAD_CORE_CAPACITY_ORDER_HPP
2 # define CPPAD_CORE_CAPACITY_ORDER_HPP
155 template <
typename Base>
160 if( (c == cap_order_taylor_) & (r == num_direction_taylor_) )
166 num_order_taylor_ = 0;
167 cap_order_taylor_ = 0;
168 num_direction_taylor_ = r;
174 size_t new_len = ( (c-1)*r + 1 ) * num_var_tape_;
178 size_t p = std::min(num_order_taylor_, c);
182 size_t C = cap_order_taylor_;
185 size_t R = num_direction_taylor_;
189 for(i = 0; i < num_var_tape_; i++)
191 size_t old_index = ((C-1) * R + 1) * i + 0;
192 size_t new_index = ((c-1) * r + 1) * i + 0;
193 new_taylor[ new_index ] = taylor_[ old_index ];
195 for(k = 1; k < p; k++)
196 {
for(ell = 0; ell < R; ell++)
197 { old_index = ((C-1) * R + 1) * i + (k-1) * R + ell + 1;
198 new_index = ((c-1) * r + 1) * i + (k-1) * r + ell + 1;
199 new_taylor[ new_index ] = taylor_[ old_index ];
206 taylor_.
swap(new_taylor);
207 cap_order_taylor_ = c;
208 num_order_taylor_ = p;
209 num_direction_taylor_ = r;
240 template <
typename Base>
243 if( (c == 0) | (c == 1) )
245 capacity_order(c, r);
248 r = num_direction_taylor_;
251 capacity_order(c, r);
void capacity_order(size_t c)
set number of orders currently allocated (user API)
void swap(pod_vector &other)
Swap all properties of this vector with another.
#define CPPAD_ASSERT_UNKNOWN(exp)
Check that exp is true, if not terminate execution.