
(/VERSIONCHECK 2) 

(DEFUN |LEADCDET;polCase;ZNniLB;1| (|d| |nk| |lval| $)
  (PROG (|distlist| #1=#:G1827 |q| |y| #2=#:G1819 #3=#:G1828 #4=#:G1818 |j|
         |i|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ (LETT |distlist| (LIST |d|) . #5=(|LEADCDET;polCase;ZNniLB;1|))
            (SEQ (LETT |i| 1 . #5#) G190
                 (COND ((QSGREATERP |i| |nk|) #6=(GO G191)))
                 (SEQ
                  (LETT |q|
                        (QVELT
                         (SPADCALL (SPADCALL |lval| |i| (QREFELT $ 12))
                                   (QREFELT $ 14))
                         1)
                        . #5#)
                  (SEQ (LETT |j| 0 . #5#)
                       (LETT #3#
                             (PROG1 (LETT #4# (- |i| 1) . #5#)
                               (|check-subtype| (>= #4# 0)
                                                '(|NonNegativeInteger|) #4#))
                             . #5#)
                       G190 (COND ((QSGREATERP |j| #3#) #6#))
                       (SEQ
                        (LETT |y|
                              (SPADCALL |distlist|
                                        (PROG1 (LETT #2# (- |i| |j|) . #5#)
                                          (|check-subtype| (>= #2# 0)
                                                           '(|NonNegativeInteger|)
                                                           #2#))
                                        (QREFELT $ 12))
                              . #5#)
                        (SEQ G190
                             (COND
                              ((NULL
                                (COND
                                 ((SPADCALL |y| (|spadConstant| $ 15)
                                            (QREFELT $ 18))
                                  'NIL)
                                 ('T 'T)))
                               #6#))
                             (SEQ
                              (LETT |y| (SPADCALL |y| |q| (QREFELT $ 19))
                                    . #5#)
                              (EXIT
                               (LETT |q| (SPADCALL |q| |y| (QREFELT $ 20))
                                     . #5#)))
                             NIL #7=(GO G190) G191 (EXIT NIL))
                        (EXIT
                         (COND
                          ((SPADCALL |q| (|spadConstant| $ 15) (QREFELT $ 18))
                           (PROGN (LETT #1# 'NIL . #5#) (GO #1#))))))
                       (LETT |j| (QSADD1 |j|) . #5#) #7# G191 (EXIT NIL))
                  (EXIT
                   (LETT |distlist| (APPEND |distlist| (LIST |q|)) . #5#)))
                 (LETT |i| (QSADD1 |i|) . #5#) #7# G191 (EXIT NIL))
            (EXIT 'T)))
      #1# (EXIT #1#))))) 

(DEFUN |LEADCDET;checkpow| (|a| |b| $)
  (PROG (#1=#:G1838 |qt| |i|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ (LETT |i| 0 . #2=(|LEADCDET;checkpow|)) G190 NIL
            (SEQ (LETT |qt| (SPADCALL |b| |a| (QREFELT $ 24)) . #2#)
                 (COND ((QEQCAR |qt| 1) (PROGN (LETT #1# |i| . #2#) (GO #1#))))
                 (EXIT (LETT |b| (QCDR |qt|) . #2#)))
            (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191 (EXIT NIL)))
      #1# (EXIT #1#))))) 

(DEFUN |LEADCDET;distribute| (|contm| |unilist| |pl| |vl| |lvar| |lval| $)
  (PROG (|i| |d| |lcp| |nf|)
    (RETURN
     (SEQ (LETT |nf| (LENGTH |unilist|) . #1=(|LEADCDET;distribute|))
          (SEQ (LETT |i| 1 . #1#) G190
               (COND ((QSGREATERP |i| |nf|) #2=(GO G191)))
               (SEQ
                (LETT |lcp|
                      (SPADCALL (SPADCALL |unilist| |i| (QREFELT $ 27))
                                (QREFELT $ 28))
                      . #1#)
                (LETT |d|
                      (SPADCALL |lcp| (SPADCALL |vl| |i| (QREFELT $ 12))
                                (QREFELT $ 19))
                      . #1#)
                (SPADCALL |pl| |i|
                          (SPADCALL (SPADCALL |lcp| |d| (QREFELT $ 20))
                                    (SPADCALL |pl| |i| (QREFELT $ 30))
                                    (QREFELT $ 31))
                          (QREFELT $ 32))
                (LETT |d|
                      (SPADCALL (SPADCALL |vl| |i| (QREFELT $ 12)) |d|
                                (QREFELT $ 20))
                      . #1#)
                (SPADCALL |unilist| |i|
                          (SPADCALL |d| (SPADCALL |unilist| |i| (QREFELT $ 27))
                                    (QREFELT $ 33))
                          (QREFELT $ 34))
                (EXIT
                 (LETT |contm| (SPADCALL |contm| |d| (QREFELT $ 20)) . #1#)))
               (LETT |i| (QSADD1 |i|) . #1#) #3=(GO G190) G191 (EXIT NIL))
          (COND
           ((NULL (SPADCALL |contm| (|spadConstant| $ 15) (QREFELT $ 18)))
            (SEQ (LETT |i| 1 . #1#) G190 (COND ((QSGREATERP |i| |nf|) #2#))
                 (SEQ
                  (EXIT
                   (SPADCALL |pl| |i|
                             (SPADCALL |contm|
                                       (SPADCALL |pl| |i| (QREFELT $ 30))
                                       (QREFELT $ 31))
                             (QREFELT $ 32))))
                 (LETT |i| (QSADD1 |i|) . #1#) #3# G191 (EXIT NIL))))
          (EXIT (VECTOR |pl| |contm| |unilist|)))))) 

(DEFUN |LEADCDET;distFact;ZLRLLLU;4|
       (|contm| |unilist| |plead| |vl| |lvar| |lval| $)
  (PROG (|i| #1=#:G1881 #2=#:G1875 #3=#:G1880 |k| |c| |d| |h| #4=#:G1879 |aux|
         #5=#:G1878 |vlp| #6=#:G1877 |lexp| |lpol| #7=#:G1876 |fpl| |nf|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ (LETT |lpol| NIL . #8=(|LEADCDET;distFact;ZLRLLLU;4|))
            (LETT |lexp| NIL . #8#) (LETT |nf| (LENGTH |unilist|) . #8#)
            (LETT |vl| (REVERSE |vl|) . #8#)
            (SEQ (LETT |fpl| NIL . #8#) (LETT #7# (QCDR |plead|) . #8#) G190
                 (COND
                  ((OR (ATOM #7#) (PROGN (LETT |fpl| (CAR #7#) . #8#) NIL))
                   #9=(GO G191)))
                 (SEQ (LETT |lpol| (CONS (QCAR |fpl|) |lpol|) . #8#)
                      (EXIT (LETT |lexp| (CONS (QCDR |fpl|) |lexp|) . #8#)))
                 (LETT #7# (CDR #7#) . #8#) #10=(GO G190) G191 (EXIT NIL))
            (LETT |vlp|
                  (PROGN
                   (LETT #6# NIL . #8#)
                   (SEQ (LETT |i| 1 . #8#) G190
                        (COND ((QSGREATERP |i| |nf|) #9#))
                        (SEQ
                         (EXIT
                          (LETT #6# (CONS (|spadConstant| $ 15) #6#) . #8#)))
                        (LETT |i| (QSADD1 |i|) . #8#) #10# G191
                        (EXIT (NREVERSE0 #6#))))
                  . #8#)
            (LETT |aux|
                  (PROGN
                   (LETT #5# NIL . #8#)
                   (SEQ (LETT |i| 1 . #8#) G190
                        (COND ((QSGREATERP |i| |nf|) #9#))
                        (SEQ
                         (EXIT
                          (LETT #5# (CONS (|spadConstant| $ 16) #5#) . #8#)))
                        (LETT |i| (QSADD1 |i|) . #8#) #10# G191
                        (EXIT (NREVERSE0 #5#))))
                  . #8#)
            (SEQ (LETT |i| 1 . #8#) G190 (COND ((QSGREATERP |i| |nf|) #9#))
                 (SEQ
                  (LETT |c|
                        (SPADCALL |contm|
                                  (SPADCALL
                                   (SPADCALL |unilist| |i| (QREFELT $ 27))
                                   (QREFELT $ 28))
                                  (QREFELT $ 35))
                        . #8#)
                  (COND
                   ((OR (SPADCALL |c| (|spadConstant| $ 15) (QREFELT $ 18))
                        (SPADCALL |c|
                                  (SPADCALL (|spadConstant| $ 15)
                                            (QREFELT $ 36))
                                  (QREFELT $ 18)))
                    (EXIT "next i")))
                  (SEQ (LETT |k| 1 . #8#) (LETT #4# (LENGTH |lpol|) . #8#) G190
                       (COND ((QSGREATERP |k| #4#) #9#))
                       (SEQ
                        (EXIT
                         (COND
                          ((EQL (SPADCALL |lexp| |k| (QREFELT $ 38)) 0)
                           "next factor")
                          ('T
                           (SEQ
                            (LETT |h|
                                  (|LEADCDET;checkpow|
                                   (SPADCALL |vl| |k| (QREFELT $ 12)) |c| $)
                                  . #8#)
                            (EXIT
                             (COND
                              ((NULL (EQL |h| 0))
                               (SEQ
                                (COND
                                 ((< (SPADCALL |lexp| |k| (QREFELT $ 38)) |h|)
                                  (PROGN
                                   (LETT #2# (CONS 1 "failed") . #8#)
                                   (GO #2#))))
                                (SPADCALL |lexp| |k|
                                          (-
                                           (SPADCALL |lexp| |k| (QREFELT $ 38))
                                           |h|)
                                          (QREFELT $ 41))
                                (SPADCALL |aux| |i|
                                          (SPADCALL
                                           (SPADCALL |aux| |i| (QREFELT $ 30))
                                           (SPADCALL
                                            (SPADCALL |lpol| |k|
                                                      (QREFELT $ 30))
                                            |h| (QREFELT $ 42))
                                           (QREFELT $ 43))
                                          (QREFELT $ 32))
                                (LETT |d|
                                      (SPADCALL
                                       (SPADCALL |vl| |k| (QREFELT $ 12)) |h|
                                       (QREFELT $ 44))
                                      . #8#)
                                (SPADCALL |vlp| |i|
                                          (SPADCALL
                                           (SPADCALL |vlp| |i| (QREFELT $ 12))
                                           |d| (QREFELT $ 35))
                                          (QREFELT $ 45))
                                (EXIT
                                 (LETT |c| (SPADCALL |c| |d| (QREFELT $ 20))
                                       . #8#)))))))))))
                       (LETT |k| (QSADD1 |k|) . #8#) #10# G191 (EXIT NIL))
                  (EXIT
                   (COND
                    ((SPADCALL |contm| (|spadConstant| $ 15) (QREFELT $ 18))
                     (SPADCALL |vlp| |i| |c| (QREFELT $ 45))))))
                 (LETT |i| (QSADD1 |i|) . #8#) #10# G191 (EXIT NIL))
            (SEQ (LETT |k| 1 . #8#) (LETT #3# (LENGTH |lpol|) . #8#) G190
                 (COND ((QSGREATERP |k| #3#) #9#))
                 (SEQ
                  (EXIT
                   (COND
                    ((NULL (EQL (SPADCALL |lexp| |k| (QREFELT $ 38)) 0))
                     (PROGN (LETT #2# (CONS 1 "failed") . #8#) (GO #2#))))))
                 (LETT |k| (QSADD1 |k|) . #8#) #10# G191 (EXIT NIL))
            (EXIT
             (COND
              ((SPADCALL |contm| (|spadConstant| $ 15) (QREFELT $ 18))
               (CONS 0
                     (VECTOR
                      (PROGN
                       (LETT #1# NIL . #8#)
                       (SEQ (LETT |i| 1 . #8#) G190
                            (COND ((QSGREATERP |i| |nf|) #9#))
                            (SEQ
                             (EXIT
                              (LETT #1#
                                    (CONS
                                     (SPADCALL
                                      (SPADCALL |vlp| |i| (QREFELT $ 12))
                                      (SPADCALL |aux| |i| (QREFELT $ 30))
                                      (QREFELT $ 31))
                                     #1#)
                                    . #8#)))
                            (LETT |i| (QSADD1 |i|) . #8#) #10# G191
                            (EXIT (NREVERSE0 #1#))))
                      (|spadConstant| $ 15) |unilist|)))
              ('T
               (CONS 0
                     (|LEADCDET;distribute| |contm| |unilist| |aux| |vlp|
                      |lvar| |lval| $)))))))
      #2# (EXIT #2#))))) 

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

(DEFUN |LeadingCoefDetermination;| (|#1| |#2| |#3| |#4|)
  (PROG (|pv$| $ |dv$| DV$4 DV$3 DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #1=(|LeadingCoefDetermination|))
      (LETT DV$2 (|devaluate| |#2|) . #1#)
      (LETT DV$3 (|devaluate| |#3|) . #1#)
      (LETT DV$4 (|devaluate| |#4|) . #1#)
      (LETT |dv$| (LIST '|LeadingCoefDetermination| DV$1 DV$2 DV$3 DV$4) . #1#)
      (LETT $ (GETREFV 52) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
      (|haddProp| |$ConstructorCache| '|LeadingCoefDetermination|
                  (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 '|LeadingCoefDetermination| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
              (|local| |#3|) (|local| |#4|) (|Integer|) (|List| 8) (0 . |elt|)
              (|Record| (|:| |unit| $) (|:| |canonical| $) (|:| |associate| $))
              (6 . |unitNormal|) (11 . |One|) (15 . |One|) (|Boolean|) (19 . =)
              (25 . |gcd|) (31 . |quo|) (|NonNegativeInteger|)
              |LEADCDET;polCase;ZNniLB;1| (|Union| $ '"failed") (37 . |exquo|)
              (|SparseUnivariatePolynomial| 8) (|List| 25) (43 . |elt|)
              (49 . |leadingCoefficient|) (|List| 9) (54 . |elt|) (60 . *)
              (66 . |setelt|) (73 . *) (79 . |setelt|) (86 . *) (92 . -)
              (|List| 10) (97 . |elt|) (103 . |Zero|) (107 . |Zero|)
              (111 . |setelt|) (118 . ^) (124 . *) (130 . ^) (136 . |setelt|)
              (|Record| (|:| |polfac| 29) (|:| |correct| 8)
                        (|:| |corrfact| 26))
              (|Union| 46 '"failed") (|Record| (|:| |irr| 9) (|:| |pow| 10))
              (|Record| (|:| |contp| 8) (|:| |factors| (|List| 48))) (|List| 6)
              |LEADCDET;distFact;ZLRLLLU;4|)
           '#(|polCase| 143 |distFact| 150) 'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 51
                                                 '(2 11 8 0 10 12 1 8 13 0 14 0
                                                   8 0 15 0 9 0 16 2 8 17 0 0
                                                   18 2 8 0 0 0 19 2 8 0 0 0 20
                                                   2 8 23 0 0 24 2 26 25 0 10
                                                   27 1 25 8 0 28 2 29 9 0 10
                                                   30 2 9 0 8 0 31 3 29 9 0 10
                                                   9 32 2 25 0 8 0 33 3 26 25 0
                                                   10 25 34 2 8 0 0 0 35 1 8 0
                                                   0 36 2 37 10 0 10 38 0 7 0
                                                   39 0 8 0 40 3 37 10 0 10 10
                                                   41 2 9 0 0 21 42 2 9 0 0 0
                                                   43 2 8 0 0 21 44 3 11 8 0 10
                                                   8 45 3 0 17 8 21 11 22 6 0
                                                   47 8 26 49 11 50 11 51)))))
           '|lookupComplete|)) 
