예제 #1
0
 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)
예제 #2
0
    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)
예제 #3
0
    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)
예제 #4
0
 def __new__(cls):
     return Set.__new__(cls)