def __new__(cls, n, m, set): n, m, set = _sympify(n), _sympify(m), _sympify(set) cls._check_dim(n) cls._check_dim(m) if not isinstance(set, Set): raise TypeError("{} should be an instance of Set.".format(set)) return Set.__new__(cls, n, m, set)
def __new__(cls, sets): new_sets = [] # sets is Union of ProductSets if not sets.is_ProductSet: for k in sets.args: new_sets.append(k) # sets is ProductSets else: new_sets.append(sets) # Normalize input theta for k, v in enumerate(new_sets): new_sets[k] = ProductSet(v.args[0], normalize_theta_set(v.args[1])) sets = Union(*new_sets) return Set.__new__(cls, sets)
def _has(self, pattern): """Helper for .has()""" x = self.variable if self.variable == pattern: return self.base_set._has(pattern) if x.is_Slice and pattern.is_Slice and x.base == pattern.base: if pattern in x: return False if x in pattern: start, stop = x.indices _start, _stop = pattern.indices if _start < start: if self._has(pattern[_start : start]): return True if stop < _stop: if self._has(pattern[stop : _stop]): return True return False return Set._has(self, pattern)
def __new__(cls, sets): if sets == S.Reals * S.Reals: return S.Complexes if all(_a.is_FiniteSet for _a in sets.args) and (len(sets.args) == 2): # ** ProductSet of FiniteSets in the Complex Plane. ** # For Cases like ComplexRegion({2, 4}*{3}), It # would return {2 + 3*I, 4 + 3*I} # FIXME: This should probably be handled with something like: # return ImageSet(Lambda((x, y), x+I*y), sets).rewrite(FiniteSet) complex_num = [] for x in sets.args[0]: for y in sets.args[1]: complex_num.append(x + S.ImaginaryUnit * y) return FiniteSet(*complex_num) else: return Set.__new__(cls, sets)
def __new__(cls): return Set.__new__(cls)