[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

tjhnson

1/21/2008 11:22:00 PM

How can I figure out the largest long available? I was hoping for
something like sys.maxint, but I didn't see it. Also, can someone
point me to where I can (concisely) read about size of such types
(int, float, long).
6 Answers

Gary Herron

1/21/2008 11:36:00 PM

0

tjhnson@gmail.com wrote:
> How can I figure out the largest long available? I was hoping for
> something like sys.maxint, but I didn't see it. Also, can someone
> point me to where I can (concisely) read about size of such types
> (int, float, long).
>
There is no explicit (defined) limit. The amount of available address
space forms a practical limit.

Gary Herron

Mensanator

1/22/2008 12:03:00 AM

0

On Jan 21, 5:36 pm, Gary Herron <gher...@islandtraining.com> wrote:
> tjhn...@gmail.com wrote:
> > How can I figure out the largest long available?  I was hoping for
> > something like sys.maxint, but I didn't see it.  Also, can someone
> > point me to where I can (concisely) read about size of such types
> > (int, float, long).
>
> There is no explicit (defined) limit.  The amount of available address
> space forms a practical limit.

But not the only limitation:

>>> import collatz_functions as cf
>>> for k in xrange(1,20):
a = cf.Type12MH(k,1)
print 'number of digits in generation %2d:' %
(k),cf.gmpy.numdigits(a)

number of digits in generation 1: 2
number of digits in generation 2: 9
number of digits in generation 3: 74
number of digits in generation 4: 659
number of digits in generation 5: 5926
number of digits in generation 6: 53328
number of digits in generation 7: 479940
number of digits in generation 8: 4319453
number of digits in generation 9: 38875064
number of digits in generation 10: 349875565

Traceback (most recent call last):
File "<pyshell#12>", line 2, in <module>
a = cf.Type12MH(k,1)
File "C:\Program Files\PyGTK\Python\lib\collatz_functions.py", line
745, in Type12MH
return TWO**(SIX*a - ONE) - ONE
ValueError: mpz.pow outrageous exponent

The power function can't do exponents that have 32 or more bits
even if the memory can hold the resulting number.

>
> Gary Herron

tjhnson

1/22/2008 12:51:00 AM

0

On Jan 21, 3:34 pm, Bjoern Schliessmann <usenet-
mail-0306.20.chr0n...@spamgourmet.com> wrote:
> tjhn...@gmail.com wrote:
> > How can I figure out the largest long available?
>
> Why would you? AFAIK, longs are only limited by available memory.

Indeed, as the docs pointed out. I guess I was confused by

"If pylong is greater than ULONG_MAX, an OverflowError is raised."

at http://docs.python.org/api/longOb....

Gabriel Genellina

1/22/2008 1:42:00 AM

0

En Mon, 21 Jan 2008 22:02:34 -0200, mensanator@aol.com
<mensanator@aol.com> escribió:

> On Jan 21, 5:36 pm, Gary Herron <gher...@islandtraining.com> wrote:
>> tjhn...@gmail.com wrote:

>> > How can I figure out the largest long available?  I was hoping for
>>
>> There is no explicit (defined) limit.  The amount of available address
>> space forms a practical limit.
>
> But not the only limitation:
> [...]
> Traceback (most recent call last):
> File "<pyshell#12>", line 2, in <module>
> a = cf.Type12MH(k,1)
> File "C:\Program Files\PyGTK\Python\lib\collatz_functions.py", line
> 745, in Type12MH
> return TWO**(SIX*a - ONE) - ONE
> ValueError: mpz.pow outrageous exponent
>
> The power function can't do exponents that have 32 or more bits
> even if the memory can hold the resulting number.

Isn't it a limitation of the gmpy library, not of the builtin long type?

--
Gabriel Genellina

Mensanator

1/22/2008 2:31:00 PM

0

On Jan 21, 7:42 pm, "Gabriel Genellina" <gagsl-...@yahoo.com.ar>
wrote:
> En Mon, 21 Jan 2008 22:02:34 -0200, mensana...@aol.com  
> <mensana...@aol.com> escribió:
>
>
>
>
>
> > On Jan 21, 5:36 pm, Gary Herron <gher...@islandtraining.com> wrote:
> >> tjhn...@gmail.com wrote:
> >> > How can I figure out the largest long available?  I was hoping for
>
> >> There is no explicit (defined) limit.  The amount of available address
> >> space forms a practical limit.
>
> > But not the only limitation:
> > [...]
> > Traceback (most recent call last):
> >   File "<pyshell#12>", line 2, in <module>
> >     a = cf.Type12MH(k,1)
> >   File "C:\Program Files\PyGTK\Python\lib\collatz_functions.py", line
> > 745, in Type12MH
> >     return TWO**(SIX*a - ONE) - ONE
> > ValueError: mpz.pow outrageous exponent
>
> > The power function can't do exponents that have 32 or more bits
> > even if the memory can hold the resulting number.
>
> Isn't it a limitation of the gmpy library, not of the builtin long type?

Well, gmpy for sure. But as for Python's builtin
longs, I wouldn't know as I've only got one lifetime.

Python longs

c:\python25\user>long_ago.py
1 2 0.0310001373291
2 9 0.0310001373291
3 74 0.0310001373291
4 659 0.0620000362396
5 5926 0.0620000362396
6 53328 0.219000101089
7 479940 63.5620000362
8 4319453 8983.07800007
9 <aborted after 8 hours - at this rate,
it will take 796 years to finish generation 11>

GMPY longs

c:\python25\user>long_ago.py
1 2 0.0
2 9 0.0160000324249
3 74 0.0160000324249
4 659 0.0160000324249
5 5926 0.0160000324249
6 53328 0.0160000324249
7 479940 0.0160000324249
8 4319453 0.0320000648499
9 38875064 0.15700006485
10 349875565 1.36000013351


>
> --
> Gabriel Genellina- Hide quoted text -
>
> - Show quoted text -

Bjoern Schliessmann

1/23/2008 1:13:00 PM

0

tjhnson@gmail.com wrote:

> Indeed, as the docs pointed out. I guess I was confused by
>
> "If pylong is greater than ULONG_MAX, an OverflowError is raised."
>
> at http://docs.python.org/api/longOb....

Take care -- this is about "unsigned long" data type of C, not a
Python "long" instance.

Regards,


Björn

--
BOFH excuse #75:

There isn't any problem