Ticket #3653: trac3653-complex-random_element.patch

File trac3653-complex-random_element.patch, 1.6 kB (added by cwitty, 5 months ago)
  • a/sage/rings/complex_field.py

    old new  
    286286        return (AlgebraicClosureFunctor(), self._real_field()) 
    287287 
    288288 
     289    def random_element(self, component_max=1): 
     290        r""" 
     291        Returns a uniformly distributed random number inside a square 
     292        centered on the origin (by default, the square [-1,1]x[-1,1]). 
     293 
     294        EXAMPLES: 
     295            sage: [CC.random_element() for _ in range(5)] 
     296            [-0.306077326077253 - 0.0759291930543202*I, -0.838081254900233 - 0.207006276657392*I, -0.757827933063776 - 0.530834220505783*I, 0.918013195263849 - 0.805114150788948*I, 0.116924427170636 + 0.203592757069680*I] 
     297            sage: CC6 = ComplexField(6) 
     298            sage: [CC6.random_element(2^-20) for _ in range(5)] 
     299            [-5.7e-7 + 5.4e-7*I, 8.6e-7 + 9.2e-7*I, -5.7e-7 + 6.9e-7*I, -1.2e-7 - 6.9e-7*I, 2.7e-7 + 8.3e-7*I] 
     300            sage: [CC6.random_element(pi^20) for _ in range(5)] 
     301            [-5.0e9*I, 2.8e9 - 5.1e9*I, 2.7e8 + 6.3e9*I, 2.7e8 - 6.4e9*I, 6.7e8 + 1.7e9*I] 
     302        """ 
     303        size = self._real_field()(component_max) 
     304        re = self._real_field().random_element(-size, size) 
     305        im = self._real_field().random_element(-size, size) 
     306        return self(re, im) 
     307 
    289308    def pi(self): 
    290309        return self(self._real_field().pi()) 
    291310