def generate_search_param()

in scheme_adapters/polyfit_adapter/polyfit_adapter.py [0:0]


    def generate_search_param(self):
        num = self.total_runtime / self.workload_info[0]["runtime"]
        self.num_runs = max(5, min(self.num_runs, num))

        key_dim = self.find_key_dim(self.num_runs)
        key_index = 0
        for key, value in self.ranges.items():
            if isinstance(value, list):
                range_diff = self.convert(value[1]) - self.convert(value[0])
                num_runs = key_dim[key_index]
                key_index += 1
                num_runs = min(num_runs, range_diff + 1)
                num_regions = max(1, int(num_runs / 5))
                region_size = int(range_diff / num_regions)
                self.search_param[key] = [self.convert(value[0])]
                num_left = num_runs - (num_regions + 1)
                num_samples = int(num_left / num_regions)
                remainder = num_left % num_regions
                for i in range(num_regions):
                    self.search_param[key].append((i + 1) * region_size)
                    numbers = num_samples + (1 if i < remainder else 0)
                    random_list = random.sample(range((i * region_size) + 1, (i + 1) * region_size), numbers)
                    self.search_param[key] += random_list
            else:
                self.search_param[key] = [value]