Changeset 7373:5d9964f18f97


Ignore:
Timestamp:
11/19/07 14:31:44 (6 years ago)
Author:
mabshoff@…
Branch:
default
Tags:
2.8.13.alpha1
Message:

patch by Nick Alexander: fix a bug in multipolynomial ideals and makes generic ideals more robust (see #805)

Location:
sage
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • sage/rings/ideal.py

    r6646 r7373  
    187187 
    188188    def __nonzero__(self): 
    189         return self.gens() != [self.ring()(0)] 
     189        r"""Return True if this ideal is not (0). 
     190 
     191        TESTS: 
     192 
     193            sage: I = ZZ.ideal(5) 
     194            sage: bool(I) 
     195            True 
     196 
     197            sage: I = ZZ['x'].ideal(0) 
     198            sage: bool(I) 
     199            False 
     200 
     201            sage: I = ZZ['x'].ideal(ZZ['x'].gen()^2) 
     202            sage: bool(I) 
     203            True 
     204 
     205            sage: I = QQ['x', 'y'].ideal(0) 
     206            sage: bool(I) 
     207            False 
     208        """ 
     209        for g in self.gens(): 
     210            if not g.is_zero(): 
     211                return True 
     212        return False 
    190213 
    191214    def base_ring(self): 
     
    260283         
    261284    def is_trivial(self): 
     285        r"""Return True if this ideal is (0) or (1). 
     286 
     287        TESTS: 
     288 
     289            sage: I = ZZ.ideal(5) 
     290            sage: I.is_trivial() 
     291            False 
     292 
     293            sage: I = ZZ['x'].ideal(-1) 
     294            sage: I.is_trivial() 
     295            True 
     296 
     297            sage: I = ZZ['x'].ideal(ZZ['x'].gen()^2) 
     298            sage: I.is_trivial() 
     299            False 
     300 
     301            sage: I = QQ['x', 'y'].ideal(-5) 
     302            sage: I.is_trivial() 
     303            True 
     304 
     305            sage: I = CC['x'].ideal(0) 
     306            sage: I.is_trivial() 
     307            True 
     308        """ 
    262309        if self.is_zero(): 
    263310            return True 
    264         elif self.is_principal(): 
    265             return self.gen().is_unit() 
     311        # If self is principal, can give a complete answer 
     312        if self.is_principal(): 
     313            return self.gens()[0].is_unit() 
     314        # If self is not principal, can only give an affirmative answer 
     315        for g in self.gens(): 
     316            if g.is_unit(): 
     317                return True 
    266318        raise NotImplementedError 
    267319 
  • sage/rings/polynomial/multi_polynomial_libsingular.pyx

    r7367 r7373  
    663663 
    664664        """ 
     665        coerce = kwds.get('coerce', True) 
    665666        if len(gens) == 1: 
    666667            gens = gens[0] 
  • sage/structure/element.pyx

    r7355 r7373  
    11401140    def __nonzero__(self): 
    11411141        return True 
    1142     def nonzero(self): 
    1143         return True 
    1144     def is_zero(self): 
    1145         return False 
    11461142 
    11471143def is_AdditiveGroupElement(x): 
Note: See TracChangeset for help on using the changeset viewer.