mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 21:51:50 +00:00 
			
		
		
		
	log2() is faster than log() (#95214)
This commit is contained in:
		
							parent
							
								
									0047447294
								
							
						
					
					
						commit
						eb9c8a8bea
					
				
					 1 changed files with 3 additions and 3 deletions
				
			
		|  | @ -50,7 +50,7 @@ | |||
| from math import log as _log, exp as _exp, pi as _pi, e as _e, ceil as _ceil | ||||
| from math import sqrt as _sqrt, acos as _acos, cos as _cos, sin as _sin | ||||
| from math import tau as TWOPI, floor as _floor, isfinite as _isfinite | ||||
| from math import lgamma as _lgamma, fabs as _fabs | ||||
| from math import lgamma as _lgamma, fabs as _fabs, log2 as _log2 | ||||
| from os import urandom as _urandom | ||||
| from _collections_abc import Sequence as _Sequence | ||||
| from operator import index as _index | ||||
|  | @ -764,11 +764,11 @@ def binomialvariate(self, n=1, p=0.5): | |||
|             # BG: Geometric method by Devroye with running time of O(np). | ||||
|             # https://dl.acm.org/doi/pdf/10.1145/42372.42381 | ||||
|             x = y = 0 | ||||
|             c = _log(1.0 - p) | ||||
|             c = _log2(1.0 - p) | ||||
|             if not c: | ||||
|                 return x | ||||
|             while True: | ||||
|                 y += _floor(_log(random()) / c) + 1 | ||||
|                 y += _floor(_log2(random()) / c) + 1 | ||||
|                 if y > n: | ||||
|                     return x | ||||
|                 x += 1 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Raymond Hettinger
						Raymond Hettinger