def __init__( self, minimum=None, exclusiveMinimum: bool = False, maximum=None, exclusiveMaximum: bool = False, discrete: bool = False, distribution="uniform", pgo: PGO_input_type = None, default: Optional[Any] = None, ) -> None: super(SearchSpaceNumber, self).__init__(default=default) self.minimum = minimum self.exclusiveMinimum = exclusiveMinimum self.maximum = maximum self.exclusiveMaximum = exclusiveMaximum self.distribution = distribution self.discrete = discrete if pgo is None or isinstance(pgo, FrequencyDistribution): self.pgo = pgo else: if discrete: self.pgo = FrequencyDistribution.asIntegerValues( pgo, inclusive_min=self.getInclusiveMin(), inclusive_max=self.getInclusiveMax(), ) else: self.pgo = FrequencyDistribution.asFloatValues( pgo, inclusive_min=self.getInclusiveMin(), inclusive_max=self.getInclusiveMax(), )
def __init__(self, vals: Iterable[Any], pgo: PGO_input_type = None): super(SearchSpaceEnum, self).__init__() self.vals = sorted(vals, key=str) if pgo is None or isinstance(pgo, FrequencyDistribution): self.pgo = pgo else: self.pgo = FrequencyDistribution.asEnumValues(pgo, self.vals)