473,836 Members | 1,358 Online

# Max Long

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
6 16807
tj*****@gmail.c om 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
On Jan 21, 5:36*pm, Gary Herron <gher...@island training.comwro te:
tjhn...@gmail.c om 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_functio ns as cf
for k in xrange(1,20):
a = cf.Type12MH(k,1 )
print 'number of digits in generation %2d:' %
(k),cf.gmpy.num digits(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#1 2>", line 2, in <module>
a = cf.Type12MH(k,1 )
File "C:\Program Files\PyGTK\Pyt hon\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
On Jan 21, 3:34 pm, Bjoern Schliessmann <usenet-
mail-0306.20.chr0n.. .@spamgourmet.c omwrote:
tjhn...@gmail.c om 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
En Mon, 21 Jan 2008 22:02:34 -0200, me********@aol. com
<me********@aol .comescribió:
On Jan 21, 5:36*pm, Gary Herron <gher...@island training.comwro te:
>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#1 2>", line 2, in <module>
a = cf.Type12MH(k,1 )
File "C:\Program Files\PyGTK\Pyt hon\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
On Jan 21, 7:42*pm, "Gabriel Genellina" <gagsl-...@yahoo.com.a r>
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...@island training.comwro te:
tjhn...@gmail.c om 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#1 2>", line 2, in <module>
* * a = cf.Type12MH(k,1 )
* File "C:\Program Files\PyGTK\Pyt hon\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\use r>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\use r>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
tj*****@gmail.c om 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 thread has been closed and replies have been disabled. Please start a new discussion.