
(/VERSIONCHECK 2) 

(DEFUN |MPCPF;factor;PPRF;1| (|p| $)
  (PROG (|c| #0=#:G1821 |vars| |g| |flist| #1=#:G1840 |u| #2=#:G1841
             |ffact| |fcont| |ff| #3=#:G1842 #4=#:G1836 #5=#:G1834
             #6=#:G1835)
    (RETURN
      (SEQ (COND
             ((SPADCALL |p| (QREFELT $ 11))
              (SPADCALL |p| 1 (QREFELT $ 16)))
             ('T
              (SEQ (LETT |c| (SPADCALL |p| (QREFELT $ 18))
                         . #7=(|MPCPF;factor;PPRF;1|))
                   (LETT |p|
                         (PROG2 (LETT #0#
                                      (SPADCALL |p| |c| (QREFELT $ 20)) . #7#)
                                (QCDR #0#)
                           (|check-union| (QEQCAR #0# 0) (QREFELT $ 9)
                               #0#)) . #7#)
                   (LETT |vars| (SPADCALL |p| (QREFELT $ 22)) . #7#)
                   (LETT |g|
                         (SPADCALL (SPADCALL |p| |vars| (QREFELT $ 24))
                             (QREFELT $ 25)) . #7#)
                   (LETT |flist| (SPADCALL |g| (QREFELT $ 28)) . #7#)
                   (LETT |ffact|
                         (PROGN
                           (LETT #1# NIL . #7#)
                           (SEQ (LETT |u| NIL . #7#)
                                (LETT #2#
                                      (SPADCALL |flist| (QREFELT $ 31)) . #7#)
                                G190
                                (COND
                                  ((OR (ATOM #2#)
                                    (PROGN
                                      (LETT |u| (CAR #2#) . #7#)
                                      NIL))
                                   #8=(GO G191)))
                                (SEQ (EXIT
                                      (LETT #1#
                                       (CONS
                                        (CONS
                                         (SPADCALL
                                          (SPADCALL (QCAR |u|)
                                           (QREFELT $ 32))
                                          |vars| (QREFELT $ 33))
                                         (QCDR |u|))
                                        #1#) . #7#)))
                                (LETT #2# (CDR #2#) . #7#) #9=(GO G190)
                                G191 (EXIT (NREVERSE0 #1#)))) . #7#)
                   (LETT |fcont|
                         (SPADCALL (SPADCALL |flist| (QREFELT $ 34))
                             (QREFELT $ 32)) . #7#)
                   (EXIT (SPADCALL
                             (SPADCALL
                                 (SPADCALL |c| |fcont| (QREFELT $ 35))
                                 1 (QREFELT $ 16))
                             (PROGN
                               (LETT #6# NIL . #7#)
                               (SEQ (LETT |ff| NIL . #7#)
                                    (LETT #3# |ffact| . #7#) G190
                                    (COND
                                      ((OR (ATOM #3#)
                                        (PROGN
                                          (LETT |ff| (CAR #3#) . #7#)
                                          NIL))
                                       #8#))
                                    (SEQ
                                     (EXIT
                                      (PROGN
                                        (LETT #4#
                                         (SPADCALL (QCAR |ff|)
                                          (QCDR |ff|) (QREFELT $ 36)) . #7#)
                                        (COND
                                          (#6#
                                           (LETT #5#
                                            (SPADCALL #5# #4#
                                             (QREFELT $ 37)) . #7#))
                                          ('T
                                           (PROGN
                                             (LETT #5# #4# . #7#)
                                             (LETT #6# 'T . #7#)))))))
                                    (LETT #3# (CDR #3#) . #7#) #9# G191
                                    (EXIT NIL))
                               (COND
                                 (#6# #5#)
                                 ('T (|spadConstant| $ 38))))
                             (QREFELT $ 37)))))))))) 

(DEFUN |MPolyCatPolyFactorizer| (&REST #0=#:G1843)
  (PROG ()
    (RETURN
      (PROG (#1=#:G1844)
        (RETURN
          (COND
            ((LETT #1#
                   (|lassocShiftWithFunction| (|devaluateList| #0#)
                       (HGET |$ConstructorCache|
                             '|MPolyCatPolyFactorizer|)
                       '|domainEqualList|)
                   . #2=(|MPolyCatPolyFactorizer|))
             (|CDRwithIncrement| #1#))
            ('T
             (UNWIND-PROTECT
               (PROG1 (APPLY (|function| |MPolyCatPolyFactorizer;|)
                             #0#)
                 (LETT #1# T . #2#))
               (COND
                 ((NOT #1#)
                  (HREM |$ConstructorCache| '|MPolyCatPolyFactorizer|))))))))))) 

(DEFUN |MPolyCatPolyFactorizer;| (|#1| |#2| |#3| |#4|)
  (PROG (DV$1 DV$2 DV$3 DV$4 |dv$| $ |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|) . #0=(|MPolyCatPolyFactorizer|))
        (LETT DV$2 (|devaluate| |#2|) . #0#)
        (LETT DV$3 (|devaluate| |#3|) . #0#)
        (LETT DV$4 (|devaluate| |#4|) . #0#)
        (LETT |dv$|
              (LIST '|MPolyCatPolyFactorizer| DV$1 DV$2 DV$3 DV$4) . #0#)
        (LETT $ (GETREFV 40) . #0#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
        (|haddProp| |$ConstructorCache| '|MPolyCatPolyFactorizer|
            (LIST DV$1 DV$2 DV$3 DV$4) (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        (QSETREFV $ 7 |#2|)
        (QSETREFV $ 8 |#3|)
        (QSETREFV $ 9 |#4|)
        $)))) 

(MAKEPROP '|MPolyCatPolyFactorizer| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
             (|local| |#3|) (|local| |#4|) (|Boolean|) (0 . |ground?|)
             (5 . |One|) (9 . |One|) (|Integer|) (|Factored| 9)
             (13 . |nilFactor|) (|Polynomial| 8) (19 . |content|)
             (|Union| $ '"failed") (24 . |exquo|) (|List| 7)
             (30 . |variables|) (|PushVariables| 8 6 7 9)
             (35 . |pushdown|) (41 . |retract|) (|Factored| 17)
             (|GeneralizedMultivariateFactorize| (|Symbol|)
                 (|IndexedExponents| (|Symbol|)) 8 8 17)
             (46 . |factor|)
             (|Record| (|:| |factor| 17) (|:| |exponent| 14))
             (|List| 29) (51 . |factors|) (56 . |coerce|)
             (61 . |pushup|) (67 . |unit|) (72 . *)
             (78 . |primeFactor|) (84 . *) (90 . |One|)
             |MPCPF;factor;PPRF;1|)
          '#(|factor| 94) 'NIL
          (CONS (|makeByteWordVec2| 1 'NIL)
                (CONS '#()
                      (CONS '#()
                            (|makeByteWordVec2| 39
                                '(1 9 10 0 11 0 8 0 12 0 9 0 13 2 15 0
                                  9 14 16 1 9 17 0 18 2 9 19 0 17 20 1
                                  9 21 0 22 2 23 9 9 21 24 1 9 17 0 25
                                  1 27 26 17 28 1 26 30 0 31 1 9 0 17
                                  32 2 23 9 9 21 33 1 26 17 0 34 2 9 0
                                  17 0 35 2 15 0 9 14 36 2 15 0 0 0 37
                                  0 15 0 38 1 0 15 9 39)))))
          '|lookupComplete|)) 
