HP Forums

Full Version: 33s Evaluates Some Large Powers 50g Refuses
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
On 33s

-1^999999999999

is evaluated correctly while 50 g returns

"Integer too large"

error.
Try adding a decimal point (or comma, depending on your radix separator) to the -1. This tells the HP-50g you want a numerical answer instead of a symbolic answer which uses the CAS engine.

For example:
-1.^999999999999
Returns -1.
Thank you, Steve, that solves it for smaller numbers.

I came upon this when writing

https://www.hpmuseum.org/forum/thread-18683.html

The programme is compact:

Code:
1.    LBL B
2.    STO N
3.    CLx
4.    N+(-1)^N+2*(-1)^IDIV(N:2)
5.    RTN

K: LN = 40        CK = 25E5

Trying this on the 50g I was disappointed at the error report for larger powers of 1 & -1, ie greater than 999999999999. The programme below works for larger numbers, nevertheless it's a disappointment the 50g gives up at some point in powers of the unit.

Code:
Size: 96.

CkSum: # 7D33h

::
  CK1&Dispatch
  # FF
  ::
    FPTR2 ^DupZIsEven?
    ITE
    ZINT 1
    ZINT -1
    OVER
    ZINT 2
    FPTR2 ^ZQUOText
    FPTR2 ^DupZIsEven?
    SWAPDROP
    ITE
    ZINT 1
    ZINT -1
    DUP
    FPTR2 ^RADDext
    FPTR2 ^RADDext
    FPTR2 ^RADDext
  ;
;
Though it doesn't address the issue of integer powers, we can get the result for any number < 2^63 using binary numbers with #3 XOR. this works on any RPL calculator but requires entering the number with a leading #. The 3 can be replaced with any other integer to return values for similar sequences since Nim addition is just XOR.

Going even farther afield, we can make lists of A004444 and similar sequences very rapidly using ListExt commands on the 50g by taking advantage of the structure of the sequence (groups of 4 consecutive numbers reversed). Given a number n on the stack, the following program returns 4n terms of the sequence. If the 4's in the program are replaced with 2's, the program will return 2n terms of A004442.

Code:

\<< 0 SWAP 4 * 1 - LSEQR @ List of numbers 0 to 4n-1
    4 LSDIV              @ Break up into sublists of 4                 
    :: REV LMAP          @ Reverse each sublist
    LXIL                 @ Flatten list
\>>

With the number 250 on the stack, the program returns the first 1000 terms in 1.5 seconds on my 50g.
Also the HP35S gives the correct answer.
Reference URL's