Post Reply 
(49/50) Pellian Equations
12-27-2023, 06:30 AM
Post: #2
RE: (49/50) Pellian Equations
Here a SYS version for 49G/50g, only deals with the +1 case.

49G (1.19-6) takes

124 s

to process 1026061 correctly.

Code:
pell 

Size: 257.

CkSum: # A5BAh

::
  CK1&Dispatch
  # FF
  ::
    DUP
    ID x003
    DUP
    FPTR2 ^ZABS
    ZINT 4
    EQUAL
    IT
    ::
      ZINT 4
      FPTR2 ^ZQUOText
      3PICK
      FPTR2 ^ZSQ_
      2DUPSWAP
      ZINT 3
      FPTR2 ^QMul
      FPTR2 ^QSub
      ZINT 2
      FPTR2 ^ZQUOText
      5ROLL
      FPTR2 ^QMul
      SWAP3PICK
      FPTR2 ^QSub
      ZINT 2
      FPTR2 ^ZQUOText
      4ROLL
      FPTR2 ^QMul
      ROT
    ;
    FPTR2 ^ZIsNeg?
    IT
    ::
      OVER
      FPTR2 ^QMul
      DUP
      FPTR2 ^QAdd
      SWAP
      FPTR2 ^ZSQ_
      DUP
      FPTR2 ^QAdd
      ZINT 1
      FPTR2 ^QAdd
      SWAP
    ;
    2DUP
    BEGIN
    DUP
    7PICK
    FPTR2 ^ZMod
    ZINT 0
    EQUALNOT
    WHILE
    ID x004
    REPEAT
    6ROLL
    FPTR2 ^ZQUOText
    TWO{}N
    4UNROLL3DROP
  ;
;

x003 

Size: 456.

CkSum: # 4883h

::
  FPTR2 ^MZSQFF
  #2/
  ZINT 1
  DUPROT
  ZERO_DO
  ROT
  COERCE
  BINT2
  #/
  5PICK
  SWAP
  FPTR2 ^PPow#
  4ROLL
  FPTR2 ^QMul
  3UNROLL
  4ROLLSWAP
  FPTR2 ^PPow#
  FPTR2 ^QMul
  LOOP
  DUP
  ZINT 5
  EQUALcase
  ::
    ZINT 1
    ZINT 1
    ZINT -4
  ;
  DUP
  TRUE
  SWAPDUP
  ::
    DUP
    ZINT 2
    Z<
    ?SEMI
    ZINT 2
    OVER
    FPTR2 ^Z>ZH
    FPTR2 ^ZBits
    SWAPDROP
    #2/
    #1+
    FPTR2 ^PPow#
    BEGIN
    DUP
    3PICKOVER
    FPTR2 ^ZQUOText
    FPTR2 ^QAdd
    ZINT 2
    FPTR2 ^ZQUOText
    2DUP
    Z>
    WHILE
    SWAPDROP
    REPEAT
    DROPSWAPDROP
  ;
  DUPUNROT
  FPTR2 ^ZSQ_
  FPTR2 ^QSub
  ZINT 1
  3PICK
  ZINT 1
  OVER
  ZINT 0
  ZINT 1
  '
  NULLLAM
  BINT8
  NDUPN
  DOBIND
  BEGIN
  7GETLAM
  FPTR2 ^DupZIsOne?
  NOT
  SWAP
  ZINT 4
  EQUALNOT
  AND
  WHILE
  ::
    5GETLAM
    8GETLAM
    FPTR2 ^QAdd
    7GETLAM
    FPTR2 ^ZQUOText
    DUP
    7GETLAM
    FPTR2 ^QMul
    5GETLAM
    FPTR2 ^QSub
    5GETLAM
    SWAPDUP
    5PUTLAM
    FPTR2 ^QSub
    OVER
    FPTR2 ^QMul
    6GETLAM
    FPTR2 ^QAdd
    7GETLAM
    6PUTLAM
    7PUTLAM
    3GETLAM
    2DUPSWAP
    FPTR2 ^QMul
    4GETLAM
    FPTR2 ^QAdd
    3PUTLAM
    4PUTLAM
    1GETLAM
    DUPUNROT
    FPTR2 ^QMul
    2GETLAM
    FPTR2 ^QAdd
    1PUTLAM
    2PUTLAM
    NOT
  ;
  REPEAT
  3GETLAM
  1GETLAM
  7GETLAM
  ABND
  4ROLL
  NOT?SEMI
  FPTR2 ^RNEGext
;

x004 

Size: 69.5

CkSum: # CC0Dh

::
  OVER
  5PICK
  FPTR2 ^QMul
  OVER
  5PICK
  FPTR2 ^QMul
  7PICK
  FPTR2 ^QMul
  FPTR2 ^QAdd
  SWAP
  5PICK
  FPTR2 ^QMul
  ROT
  4PICK
  FPTR2 ^QMul
  FPTR2 ^QAdd
;
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
(49/50) Pellian Equations - John Keith - 12-26-2023, 08:38 PM
RE: (49/50) Pellian Equations - Gerald H - 12-27-2023 06:30 AM



User(s) browsing this thread: 1 Guest(s)