Esempio n. 1
0
 def __new__(cls, set, **kwargs):
     evaluate = kwargs.pop("evaluate", global_evaluate[0])
     if evaluate:
         res = AbsoluteComplement.eval(set)
         if res is not None:
             return res
     return Set.__new__(cls, set, **kwargs)
Esempio n. 2
0
 def __new__(cls, set, **kwargs):
     evaluate = kwargs.pop("evaluate", global_evaluate[0])
     if evaluate:
         res = Closure.eval(set)
         if res is not None:
             return res
     return Set.__new__(cls, set, **kwargs)
Esempio n. 3
0
    def __new__(cls, function, zet, **kwargs):
        evaluate = kwargs.pop("evaluate", global_evaluate[0])

        if not is_Function(function):
            raise TypeError("function is not a FunctionClass, Functor or Lambda: %s" % function)
        if not isinstance(zet, Set):
            raise TypeError("zet is not a Set: %s" % zet)

        if evaluate:
            function, zet = Image.reduce(function, zet)

        if function == Id:
            return zet
        else:
            return Set.__new__(cls, function, zet, **kwargs)
Esempio n. 4
0
    def __new__(cls, variable, expr, **kwargs):
        """create AbstractSet by variable and expression

        >>> from sympy import *
        >>> from symplus.strplus import init_mprinting
        >>> init_mprinting()
        >>> x, y = symbols('x y')
        >>> AbstractSet(x, abs(x)>1)
        {x | |x| > 1}
        >>> AbstractSet((x,), abs(x)>1)
        {x | |x| > 1}
        >>> AbstractSet((x, y), abs(x-y)>1)
        {(x, y) | |x - y| > 1}
        >>> AbstractSet([x, y], abs(x-y)>1)
        {(x, y) | |x - y| > 1}
        >>> m, n = MatrixSymbol('m', 2, 2), MatrixSymbol('n', 2, 2)
        >>> AbstractSet(m, Eq(m[0,0]+m[1,1],0))
        {m | 0 == m[0, 0] + m[1, 1]}
        >>> AbstractSet((m, x), Eq(det(m),x))
        {(m, x) | x == ||m||}
        >>> AbstractSet(x, (x>1)&(x<3))
        {x | (x < 3) /\ (x > 1)}
        >>> AbstractSet(x, x>y)
        {x | x > y}
        >>> AbstractSet(1, x>y)
        Traceback (most recent call last):
            ...
        TypeError: variable is not a symbol or matrix symbol: 1
        >>> AbstractSet(x, x+y)
        Traceback (most recent call last):
            ...
        TypeError: expression is not boolean or relational: x + y
        """
        variable = repack_if_can(sympify(unpack_if_can(variable)))
        for v in pack_if_not(variable):
            if not is_Symbol(v):
                raise TypeError("variable is not a symbol or matrix symbol: %s" % v)
        if not is_Boolean(expr):
            raise TypeError("expression is not boolean or relational: %r" % expr)

        return Set.__new__(cls, variable, expr, **kwargs)
Esempio n. 5
0
 def __new__(cls, space):
     if not isinstance(space, Set):
         raise TypeError
     return Set.__new__(cls, space)
Esempio n. 6
0
    def __new__(cls, *args, **kwargs):
        evaluate = kwargs.pop("evaluate", global_evaluate[0])

        if evaluate:
            args = RegularizedUnion.reduce(args)
        return Set.__new__(cls, *args, **kwargs)
Esempio n. 7
0
 def __new__(cls, alphabet):
     if isinstance(alphabet, set):
         alphabet = FiniteSet(*alphabet)
     if not isinstance(alphabet, Set):
         raise TypeError('alphabet is not a Set: %r' % alphabet)
     return Set.__new__(cls, alphabet)
Esempio n. 8
0
 def __new__(cls, base):
     if not isinstance(base, Set): # it should be a Group
         raise TypeError('base is not a Set: %r' % base)
     return Set.__new__(cls, base)
Esempio n. 9
0
 def __new__(cls):
     return Set.__new__(cls)