Coverage for sympy/sets/conditionset.py : 37%
        
        
    Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
| 
 from __future__ import print_function, division 
 from sympy import S from sympy.core.basic import Basic from sympy.core.function import Lambda from sympy.core.logic import fuzzy_bool from sympy.logic.boolalg import And from sympy.sets.sets import (Set, Interval, Intersection, EmptySet, Union, FiniteSet) from sympy.utilities.iterables import sift 
 
 class ConditionSet(Set): """ Set of elements which satisfies a given condition. 
 {x | condition(x) is True for x in S} 
 Examples ======== 
 >>> from sympy import Symbol, S, ConditionSet, Lambda, pi, Eq, sin, Interval >>> x = Symbol('x') >>> sin_sols = ConditionSet(x, Eq(sin(x), 0), Interval(0, 2*pi)) >>> 2*pi in sin_sols True >>> pi/2 in sin_sols False >>> 3*pi in sin_sols False >>> 5 in ConditionSet(x, x**2 > 4, S.Reals) True """ def __new__(cls, sym, condition, base_set): return base_set sifted = sift(base_set, lambda _: fuzzy_bool(condition.subs(sym, _))) if sifted[None]: return Union(FiniteSet(*sifted[True]), Basic.__new__(cls, sym, condition, FiniteSet(*sifted[None]))) else: return FiniteSet(*sifted[True]) 
 
 def _intersect(self, other): if not isinstance(other, ConditionSet): return ConditionSet(self.sym, self.condition, Intersection(self.base_set, other)) 
 def contains(self, other):  |