Why are some float < integer comparisons four times slower than others?

前端 未结 2 1692
庸人自扰
庸人自扰 2021-01-29 18:16

When comparing floats to integers, some pairs of values take much longer to be evaluated than other values of a similar magnitude.

For example:

>>&         


        
2条回答
  •  挽巷
    挽巷 (楼主)
    2021-01-29 18:42

    Using gmpy2 with arbitrary precision floats and integers it is possible to get more uniform comparison performance:

    ~ $ ptipython
    Python 3.5.1 |Anaconda 4.0.0 (64-bit)| (default, Dec  7 2015, 11:16:01) 
    Type "copyright", "credits" or "license" for more information.
    
    IPython 4.1.2 -- An enhanced Interactive Python.
    ?         -> Introduction and overview of IPython's features.
    %quickref -> Quick reference.
    help      -> Python's own help system.
    object?   -> Details about 'object', use 'object??' for extra details.
    
    In [1]: import gmpy2
    
    In [2]: from gmpy2 import mpfr
    
    In [3]: from gmpy2 import mpz
    
    In [4]: gmpy2.get_context().precision=200
    
    In [5]: i1=562949953421000
    
    In [6]: i2=562949953422000
    
    In [7]: f=562949953420000.7
    
    In [8]: i11=mpz('562949953421000')
    
    In [9]: i12=mpz('562949953422000')
    
    In [10]: f1=mpfr('562949953420000.7')
    
    In [11]: f

提交回复
热议问题