By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
458,135 Members | 1,280 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 458,135 IT Pros & Developers. It's quick & easy.

Max Long

P: n/a
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).
Jan 21 '08 #1
Share this Question
Share on Google+
6 Replies


P: n/a
tj*****@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

Jan 21 '08 #2

P: n/a
On Jan 21, 5:36*pm, Gary Herron <gher...@islandtraining.comwrote:
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
Jan 22 '08 #3

P: n/a
On Jan 21, 3:34 pm, Bjoern Schliessmann <usenet-
mail-0306.20.chr0n...@spamgourmet.comwrote:
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/longObjects.html.

Jan 22 '08 #4

P: n/a
En Mon, 21 Jan 2008 22:02:34 -0200, me********@aol.com
<me********@aol.comescribió:
On Jan 21, 5:36*pm, Gary Herron <gher...@islandtraining.comwrote:
>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

Jan 22 '08 #5

P: n/a
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.comescribió:


On Jan 21, 5:36*pm, Gary Herron <gher...@islandtraining.comwrote:
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 -
Jan 22 '08 #6

P: n/a
tj*****@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/longObjects.html.
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

Jan 23 '08 #7

This discussion thread is closed

Replies have been disabled for this discussion.