void ModelParametersLWPR::getParameterVectorMask(const std::set<std::string> selected_values_labels, VectorXi& selected_mask) const { selected_mask.resize(getParameterVectorAllSize()); selected_mask.fill(0); int offset = 0; int size; // Centers size = n_centers_; if (selected_values_labels.find("centers")!=selected_values_labels.end()) selected_mask.segment(offset,size).fill(1); offset += size; // Widths size = n_widths_; if (selected_values_labels.find("widths")!=selected_values_labels.end()) selected_mask.segment(offset,size).fill(2); offset += size; // Offsets size = n_offsets_; if (selected_values_labels.find("offsets")!=selected_values_labels.end()) selected_mask.segment(offset,size).fill(3); offset += size; // Slopes size = n_slopes_; if (selected_values_labels.find("slopes")!=selected_values_labels.end()) selected_mask.segment(offset,size).fill(4); offset += size; assert(offset == getParameterVectorAllSize()); }
void UnifiedModel::getParameterVectorMask(const std::set<std::string> selected_values_labels, VectorXi& selected_mask) const { selected_mask.resize(getParameterVectorAllSize()); selected_mask.fill(0); int offset = 0; int size; // Centers size = centers_.size()*centers_[0].size(); if (selected_values_labels.find("centers")!=selected_values_labels.end()) selected_mask.segment(offset,size).fill(1); offset += size; // Widths size = covars_.size()*covars_[0].cols(); if (selected_values_labels.find("widths")!=selected_values_labels.end()) selected_mask.segment(offset,size).fill(2); offset += size; // Offsets size = offsets_.size(); if (selected_values_labels.find("offsets")!=selected_values_labels.end()) selected_mask.segment(offset,size).fill(3); offset += size; // Slopes size = slopes_.size()*slopes_[0].size(); if (selected_values_labels.find("slopes")!=selected_values_labels.end()) selected_mask.segment(offset,size).fill(4); offset += size; assert(offset == getParameterVectorAllSize()); }