/*! Frees all information in recording. Frees the operation sequence store in this recording (the operation sequence is empty after this operation). The buffers used to store the current recording are returned to the system (so as to conserve on memory). */ void free(void) { num_rec_var_ = 0; rec_op_.free(); rec_vecad_ind_.free(); rec_op_arg_.free(); rec_par_.free(); rec_text_.free(); }
/*! Frees all information in recording. Frees the operation sequence store in this recording (the operation sequence is empty after this operation). The buffers used to store the current recording are returned to the system (so as to conserve on memory). */ void free(void) { num_var_rec_ = 0; num_load_op_rec_ = 0; op_rec_.free(); vecad_ind_rec_.free(); op_arg_rec_.free(); par_rec_.free(); text_rec_.free(); }
/*! Change number of sets, set end, and initialize all sets as empty If \c n_set_in is zero, any memory currently allocated for this object is freed. Otherwise, new memory may be allocated for the sets (if needed). \param n_set_in is the number of sets in this vector of sets. \param end_in is the maximum element plus one (the minimum element is 0). */ void resize(size_t n_set_in, size_t end_in) { n_set_ = n_set_in; end_ = end_in; if( n_set_ == 0 ) { data_.free(); return; } // now start a new vector with empty sets Pack zero(0); data_.erase(); n_pack_ = ( 1 + (end_ - 1) / n_bit_ ); size_t i = n_set_ * n_pack_; if( i > 0 ) { data_.extend(i); while(i--) data_[i] = zero; } // values that signify past end of list next_index_ = n_set_; next_element_ = end_; }