
(/VERSIONCHECK 2) 

(DEFUN |FACTFUNC;nthRoot;FNniR;1| (|ff| |n| $)
  (PROG (|lf| #0=#:G1841 |t| #1=#:G1842 #2=#:G1830 #3=#:G1832 |d|
              |term| #4=#:G1843 #5=#:G1834 |qr| |coeff| |radi|
              #6=#:G1836)
    (RETURN
      (SEQ (LETT |coeff| (|spadConstant| $ 7)
                 . #7=(|FACTFUNC;nthRoot;FNniR;1|))
           (LETT |radi|
                 (COND
                   ((SPADCALL (SPADCALL |ff| (QREFELT $ 9))
                        (|spadConstant| $ 7) (QREFELT $ 11))
                    NIL)
                   ('T (LIST (SPADCALL |ff| (QREFELT $ 9))))) . #7#)
           (LETT |lf| (SPADCALL |ff| (QREFELT $ 14)) . #7#)
           (LETT |d|
                 (COND
                   ((NULL |radi|)
                    (PROG1 (LETT #3#
                                 (SPADCALL
                                     (CONS |n|
                                      (PROGN
                                        (LETT #0# NIL . #7#)
                                        (SEQ (LETT |t| NIL . #7#)
                                         (LETT #1# |lf| . #7#) G190
                                         (COND
                                           ((OR (ATOM #1#)
                                             (PROGN
                                               (LETT |t|
                                                (CAR #1#) . #7#)
                                               NIL))
                                            #8=(GO G191)))
                                         (SEQ
                                          (EXIT
                                           (LETT #0#
                                            (CONS
                                             (PROG1
                                              (LETT #2#
                                               (QCDR |t|) . #7#)
                                               (|check-subtype|
                                                (>= #2# 0)
                                                '(|NonNegativeInteger|)
                                                #2#))
                                             #0#) . #7#)))
                                         (LETT #1# (CDR #1#) . #7#)
                                         #9=(GO G190) G191
                                         (EXIT (NREVERSE0 #0#)))))
                                     (QREFELT $ 17)) . #7#)
                      (|check-subtype| (>= #3# 0)
                          '(|NonNegativeInteger|) #3#)))
                   ('T 1)) . #7#)
           (LETT |n| (QUOTIENT2 |n| |d|) . #7#)
           (SEQ (LETT |term| NIL . #7#) (LETT #4# |lf| . #7#) G190
                (COND
                  ((OR (ATOM #4#)
                       (PROGN (LETT |term| (CAR #4#) . #7#) NIL))
                   #8#))
                (SEQ (EXIT (SEQ (LETT |qr|
                                      (DIVIDE2
                                       (QUOTIENT2
                                        (PROG1
                                         (LETT #5# (QCDR |term|) . #7#)
                                          (|check-subtype| (>= #5# 0)
                                           '(|NonNegativeInteger|) #5#))
                                        |d|)
                                       |n|) . #7#)
                                (LETT |coeff|
                                      (SPADCALL |coeff|
                                       (SPADCALL (QCAR |term|)
                                        (QCAR |qr|) (QREFELT $ 19))
                                       (QREFELT $ 20)) . #7#)
                                (EXIT (COND
                                        ((NULL (ZEROP (QCDR |qr|)))
                                         (PROGN
                                           (LETT #6#
                                            (LETT |radi|
                                             (SPADCALL |radi|
                                              (SPADCALL (QCAR |term|)
                                               (QCDR |qr|)
                                               (QREFELT $ 19))
                                              (QREFELT $ 22)) . #7#) . #7#)
                                           (GO #6#)))))))
                     #6# (EXIT #6#))
                (LETT #4# (CDR #4#) . #7#) #9# G191 (EXIT NIL))
           (EXIT (VECTOR |n| |coeff| |radi|)))))) 

(DEFUN |FACTFUNC;log;FL;2| (|ff| $)
  (PROG (|ans| #0=#:G1852 |term| #1=#:G1853 #2=#:G1846)
    (RETURN
      (SEQ (LETT |ans| (SPADCALL |ff| (QREFELT $ 9))
                 . #3=(|FACTFUNC;log;FL;2|))
           (EXIT (CONS (CONS 1 (SPADCALL |ff| (QREFELT $ 9)))
                       (PROGN
                         (LETT #0# NIL . #3#)
                         (SEQ (LETT |term| NIL . #3#)
                              (LETT #1#
                                    (SPADCALL |ff| (QREFELT $ 14)) . #3#)
                              G190
                              (COND
                                ((OR (ATOM #1#)
                                     (PROGN
                                       (LETT |term| (CAR #1#) . #3#)
                                       NIL))
                                 (GO G191)))
                              (SEQ (EXIT
                                    (LETT #0#
                                     (CONS
                                      (CONS
                                       (PROG1
                                        (LETT #2# (QCDR |term|) . #3#)
                                         (|check-subtype| (>= #2# 0)
                                          '(|NonNegativeInteger|) #2#))
                                       (QCAR |term|))
                                      #0#) . #3#)))
                              (LETT #1# (CDR #1#) . #3#) (GO G190) G191
                              (EXIT (NREVERSE0 #0#)))))))))) 

(DEFUN |FactoredFunctions| (#0=#:G1854)
  (PROG ()
    (RETURN
      (PROG (#1=#:G1855)
        (RETURN
          (COND
            ((LETT #1#
                   (|lassocShiftWithFunction| (LIST (|devaluate| #0#))
                       (HGET |$ConstructorCache| '|FactoredFunctions|)
                       '|domainEqualList|)
                   . #2=(|FactoredFunctions|))
             (|CDRwithIncrement| #1#))
            ('T
             (UNWIND-PROTECT
               (PROG1 (|FactoredFunctions;| #0#) (LETT #1# T . #2#))
               (COND
                 ((NOT #1#)
                  (HREM |$ConstructorCache| '|FactoredFunctions|))))))))))) 

(DEFUN |FactoredFunctions;| (|#1|)
  (PROG (DV$1 |dv$| $ |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|) . #0=(|FactoredFunctions|))
        (LETT |dv$| (LIST '|FactoredFunctions| DV$1) . #0#)
        (LETT $ (GETREFV 29) . #0#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
        (|haddProp| |$ConstructorCache| '|FactoredFunctions|
            (LIST DV$1) (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        $)))) 

(MAKEPROP '|FactoredFunctions| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (0 . |One|)
             (|Factored| 6) (4 . |unit|) (|Boolean|) (9 . =)
             (|Record| (|:| |factor| 6) (|:| |exponent| 16))
             (|List| 12) (15 . |factors|) (|List| $) (|Integer|)
             (20 . |gcd|) (|NonNegativeInteger|) (25 . **) (31 . *)
             (|List| 6) (37 . |concat!|)
             (|Record| (|:| |exponent| 18) (|:| |coef| 6)
                 (|:| |radicand| 21))
             |FACTFUNC;nthRoot;FNniR;1| (43 . |One|)
             (|Record| (|:| |coef| 18) (|:| |logand| 6)) (|List| 26)
             |FACTFUNC;log;FL;2|)
          '#(|nthRoot| 47 |log| 53) 'NIL
          (CONS (|makeByteWordVec2| 1 'NIL)
                (CONS '#()
                      (CONS '#()
                            (|makeByteWordVec2| 28
                                '(0 6 0 7 1 8 6 0 9 2 6 10 0 0 11 1 8
                                  13 0 14 1 16 0 15 17 2 6 0 0 18 19 2
                                  6 0 0 0 20 2 21 0 0 6 22 0 8 0 25 2 0
                                  23 8 18 24 1 0 27 8 28)))))
          '|lookupComplete|)) 
