
(/VERSIONCHECK 2) 

(DEFUN |VECREC1;empty;2I$;1| (|npoly| |np| $)
  (PROG (|state| #1=#:G1810 |i| |polyvec| #2=#:G1804)
    (RETURN
     (SEQ
      (LETT |polyvec|
            (MAKEARR1
             (PROG1 (LETT #2# |npoly| . #3=(|VECREC1;empty;2I$;1|))
               (|check-subtype| (>= #2# 0) '(|NonNegativeInteger|) #2#))
             (GETREFV32 0 0))
            . #3#)
      (SEQ (LETT |i| 0 . #3#) (LETT #1# (- |npoly| 1) . #3#) G190
           (COND ((QSGREATERP |i| #1#) (GO G191)))
           (SEQ (EXIT (QSETAREF1 |polyvec| |i| (GETREFV32 5 0))))
           (LETT |i| (QSADD1 |i|) . #3#) (GO G190) G191 (EXIT NIL))
      (LETT |state|
            (VECTOR |np| (GETREFV32 5 0) 0 0 |npoly| 5 |polyvec| (MAKE-ARRAY 0)
                    (MAKE-ARRAY 0))
            . #3#)
      (SETELT32 (QVELT |state| 1) 0 1) (EXIT |state|))))) 

(DEFUN |VECREC1;add_slots;L$V;2| (|ndl| |statearg| $)
  (PROG (|j| |li| #1=#:G1820 #2=#:G1829 |i| |nvec| |npoly| |n1| |n0| |m|
         |polyvec| |state|)
    (RETURN
     (SEQ (LETT |state| |statearg| . #3=(|VECREC1;add_slots;L$V;2|))
          (LETT |polyvec| (QVELT |state| 6) . #3#)
          (LETT |m| (QVELT |state| 5) . #3#)
          (LETT |n0| (QVSIZE |polyvec|) . #3#) (LETT |n1| (LENGTH |ndl|) . #3#)
          (LETT |npoly| (+ |n0| |n1|) . #3#)
          (LETT |nvec| (MAKEARR1 |npoly| (GETREFV32 0 0)) . #3#)
          (LETT |li| (|SPADfirst| |ndl|) . #3#) (LETT |j| 0 . #3#)
          (SEQ (LETT |i| 0 . #3#) (LETT #2# (- |npoly| 1) . #3#) G190
               (COND ((QSGREATERP |i| #2#) (GO G191)))
               (SEQ
                (EXIT
                 (COND
                  ((EQL |i| |li|)
                   (SEQ
                    (QSETAREF1 |nvec| |i|
                               (GETREFV32
                                (PROG1 (LETT #1# |m| . #3#)
                                  (|check-subtype| (>= #1# 0)
                                                   '(|NonNegativeInteger|)
                                                   #1#))
                                0))
                    (LETT |ndl| (CDR |ndl|) . #3#)
                    (EXIT
                     (LETT |li|
                           (COND ((NULL |ndl|) |npoly|)
                                 ('T (|SPADfirst| |ndl|)))
                           . #3#))))
                  ('T
                   (SEQ (QSETAREF1 |nvec| |i| (QAREF1 |polyvec| |j|))
                        (EXIT (LETT |j| (+ |j| 1) . #3#)))))))
               (LETT |i| (QSADD1 |i|) . #3#) (GO G190) G191 (EXIT NIL))
          (COND
           ((NULL (SPADCALL (QVELT |state| 7) (QREFELT $ 11)))
            (SEQ (QSETVELT |state| 7 (MAKEARR1 |npoly| (GETREFV32 0 0)))
                 (EXIT
                  (QSETVELT |state| 8 (MAKEARR1 |npoly| (GETREFV32 0 0)))))))
          (QSETVELT |state| 6 |polyvec|) (EXIT (QSETVELT |state| 4 |npoly|)))))) 

(DEFUN |VECREC1;double_poly_space| (|statearg| $)
  (PROG (|op| |np| #1=#:G1830 #2=#:G1836 |i| |n| |m| |polyvec| |state|)
    (RETURN
     (SEQ (LETT |state| |statearg| . #3=(|VECREC1;double_poly_space|))
          (LETT |polyvec| (QVELT |state| 6) . #3#)
          (LETT |m| (QVELT |state| 5) . #3#)
          (LETT |n| (SPADCALL 2 |m| (QREFELT $ 16)) . #3#)
          (SEQ (LETT |i| 0 . #3#) (LETT #2# (- (QVELT |state| 4) 1) . #3#) G190
               (COND ((QSGREATERP |i| #2#) (GO G191)))
               (SEQ
                (LETT |np|
                      (GETREFV32
                       (PROG1 (LETT #1# |n| . #3#)
                         (|check-subtype| (>= #1# 0) '(|NonNegativeInteger|)
                                          #1#))
                       0)
                      . #3#)
                (LETT |op| (QAREF1 |polyvec| |i|) . #3#)
                (SPADCALL |np| |op| |m| (QREFELT $ 19))
                (EXIT (QSETAREF1 |polyvec| |i| |np|)))
               (LETT |i| (QSADD1 |i|) . #3#) (GO G190) G191 (EXIT NIL))
          (EXIT (QSETVELT |state| 5 |n|)))))) 

(DEFUN |VECREC1;chinese_update;UvI$V;4| (|vec| |pt| |statearg| $)
  (PROG (|mtvec| |nmt| #1=#:G1842 |cor| |pol| #2=#:G1848 |i| |nn| |polyvec|
         |mtcor| |mtval| |p| |npt1| |npt| |state|)
    (RETURN
     (SEQ (LETT |state| |statearg| . #3=(|VECREC1;chinese_update;UvI$V;4|))
          (LETT |mtvec| (QVELT |state| 1) . #3#)
          (LETT |npt| (QVELT |state| 3) . #3#) (LETT |npt1| (+ |npt| 1) . #3#)
          (LETT |p| (QVELT |state| 0) . #3#)
          (LETT |mtval| (SPADCALL |mtvec| |npt| |pt| |p| (QREFELT $ 20)) . #3#)
          (EXIT
           (COND ((EQL |mtval| 0) (|error| "Duplicate point in update"))
                 ('T
                  (SEQ
                   (LETT |mtcor| (SPADCALL |mtval| |p| (QREFELT $ 21)) . #3#)
                   (QSETVELT |state| 3 |npt1|)
                   (COND
                    ((< (QVELT |state| 5) |npt1|)
                     (|VECREC1;double_poly_space| |statearg| $)))
                   (LETT |polyvec| (QVELT |state| 6) . #3#)
                   (LETT |nn| (- |npt| 1) . #3#)
                   (SEQ (LETT |i| 0 . #3#)
                        (LETT #2# (- (QVELT |state| 4) 1) . #3#) G190
                        (COND ((QSGREATERP |i| #2#) (GO G191)))
                        (SEQ (LETT |pol| (QAREF1 |polyvec| |i|) . #3#)
                             (LETT |cor|
                                   (- (ELT32 |vec| |i|)
                                      (SPADCALL |pol| |nn| |pt| |p|
                                                (QREFELT $ 20)))
                                   . #3#)
                             (LETT |cor|
                                   (COND ((< |cor| 0) (+ |cor| |p|))
                                         ('T |cor|))
                                   . #3#)
                             (LETT |cor|
                                   (SPADCALL (* |cor| |mtcor|) |p|
                                             (QREFELT $ 22))
                                   . #3#)
                             (EXIT
                              (SPADCALL |pol| |mtvec| 0 |npt| |cor| |p|
                                        (QREFELT $ 23))))
                        (LETT |i| (QSADD1 |i|) . #3#) (GO G190) G191
                        (EXIT NIL))
                   (COND
                    ((< (QV32LEN |mtvec|) (+ |npt1| 1))
                     (SEQ
                      (LETT |nmt|
                            (GETREFV32
                             (SPADCALL 2
                                       (PROG1 (LETT #1# |npt1| . #3#)
                                         (|check-subtype| (>= #1# 0)
                                                          '(|NonNegativeInteger|)
                                                          #1#))
                                       (QREFELT $ 25))
                             0)
                            . #3#)
                      (SPADCALL |nmt| |mtvec| |npt1| (QREFELT $ 19))
                      (EXIT (LETT |mtvec| |nmt| . #3#)))))
                   (SPADCALL |mtvec| (+ |npt1| 1) (- |p| |pt|) |p|
                             (QREFELT $ 26))
                   (EXIT (QSETVELT |state| 1 |mtvec|)))))))))) 

(DEFUN |VECREC1;rational_reconstruction;2Uv2IU;5| (|x| |y| |i| |p| $)
  (PROG (|c| |ds1| |s1| |ds0| |s0| |tmp| |tmpp| |dr1| |r1| |dr0| |r0| |ds0a|
         #1=#:G1855 |c0| |c1| |delta| |j|)
    (RETURN
     (SEQ
      (LETT |j| (SPADCALL |y| (QREFELT $ 28))
            . #2=(|VECREC1;rational_reconstruction;2Uv2IU;5|))
      (LETT |r0| (GETREFV32 (+ |j| 1) 0) . #2#)
      (SPADCALL |r0| |y| (+ |j| 1) (QREFELT $ 19)) (LETT |dr0| |j| . #2#)
      (LETT |s0| (GETREFV32 (+ |j| 1) 0) . #2#) (LETT |ds0| 0 . #2#)
      (LETT |r1| (GETREFV32 (+ |j| 1) 0) . #2#)
      (LETT |dr1| (SPADCALL |x| (QREFELT $ 28)) . #2#)
      (SPADCALL |r1| |x| (+ |dr1| 1) (QREFELT $ 19))
      (LETT |s1| (GETREFV32 (+ |j| 1) 0) . #2#) (SETELT32 |s1| 0 1)
      (LETT |ds1| 0 . #2#)
      (SEQ G190 (COND ((NULL (< |i| |dr1|)) #3=(GO G191)))
           (SEQ
            (SEQ G190 (COND ((NULL (COND ((< |dr0| |dr1|) 'NIL) ('T 'T))) #3#))
                 (SEQ (LETT |delta| (- |dr0| |dr1|) . #2#)
                      (LETT |c1| (- |p| (ELT32 |r0| |dr0|)) . #2#)
                      (LETT |c0| (ELT32 |r1| |dr1|) . #2#)
                      (SETELT32 |r0| |dr0| 0) (LETT |dr0| (- |dr0| 1) . #2#)
                      (SPADCALL |r0| |c0| |r1| |c1| |dr0| |delta| |p|
                                (QREFELT $ 29))
                      (SEQ
                       (EXIT
                        (SEQ G190
                             (COND ((NULL (EQL (ELT32 |r0| |dr0|) 0)) #3#))
                             (SEQ (LETT |dr0| (- |dr0| 1) . #2#)
                                  (EXIT
                                   (COND
                                    ((< |dr0| 0)
                                     (PROGN
                                      (LETT #1# |$NoValue| . #2#)
                                      (GO #1#))))))
                             NIL #4=(GO G190) G191 (EXIT NIL)))
                       #1# (EXIT #1#))
                      (LETT |ds0a| (+ |ds1| |delta|) . #2#)
                      (LETT |ds0a| (COND ((< |ds0a| |ds0|) |ds0|) ('T |ds0a|))
                            . #2#)
                      (SPADCALL |s0| |c0| |s1| |c1| |ds0a| |delta| |p|
                                (QREFELT $ 29))
                      (EXIT
                       (LETT |ds0|
                             (COND ((< |ds0a| |ds0|) |ds0|)
                                   ((< |ds0| |ds0a|) |ds0a|)
                                   ('T
                                    (SEQ
                                     (SEQ G190
                                          (COND
                                           ((NULL (EQL (ELT32 |s0| |ds0a|) 0))
                                            #3#))
                                          (SEQ
                                           (EXIT
                                            (LETT |ds0a| (- |ds0a| 1) . #2#)))
                                          NIL #4# G191 (EXIT NIL))
                                     (EXIT |ds0a|))))
                             . #2#)))
                 NIL #4# G191 (EXIT NIL))
            (LETT |tmpp| |r0| . #2#) (LETT |tmp| |dr0| . #2#)
            (LETT |r0| |r1| . #2#) (LETT |dr0| |dr1| . #2#)
            (LETT |r1| |tmpp| . #2#) (LETT |dr1| |tmp| . #2#)
            (LETT |tmpp| |s0| . #2#) (LETT |tmp| |ds0| . #2#)
            (LETT |s0| |s1| . #2#) (LETT |ds0| |ds1| . #2#)
            (LETT |s1| |tmpp| . #2#) (EXIT (LETT |ds1| |tmp| . #2#)))
           NIL #4# G191 (EXIT NIL))
      (EXIT
       (COND
        ((OR (< (- (- |j| |i|) 2) |ds1|)
             (NULL
              (EQL
               (SPADCALL (SPADCALL |s1| |y| |p| (QREFELT $ 30)) (QREFELT $ 28))
               0)))
         (CONS 1 "failed"))
        ('T
         (SEQ (LETT |c| (ELT32 |s1| |ds1|) . #2#)
              (LETT |c| (SPADCALL |c| |p| (QREFELT $ 21)) . #2#)
              (SPADCALL |r1| |dr1| |c| |p| (QREFELT $ 31))
              (SPADCALL |s1| |ds1| |c| |p| (QREFELT $ 31))
              (EXIT (CONS 0 (CONS |r1| |s1|))))))))))) 

(DEFUN |VECREC1;rational_reconstruction;$U;6| (|statearg| $)
  (PROG (#1=#:G1894 |ppr| |pp| |r1| |j| |dens| |nums| #2=#:G1879 #3=#:G1878 |n|
         |ok| |bound| |m| |j0| |p| |polyvec| |modulus| |state|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |state| |statearg| . #4=(|VECREC1;rational_reconstruction;$U;6|))
        (LETT |modulus| (QVELT |state| 1) . #4#)
        (LETT |polyvec| (QVELT |state| 6) . #4#)
        (LETT |p| (QVELT |state| 0) . #4#) (LETT |j0| (QVELT |state| 2) . #4#)
        (LETT |m| (QVELT |state| 3) . #4#)
        (EXIT
         (COND
          ((< 3 |m|)
           (SEQ (LETT |bound| (QUOTIENT2 |m| 2) . #4#) (LETT |ok| 'T . #4#)
                (LETT |pp|
                      (SPADCALL (QAREF1 |polyvec| |j0|) |modulus| |bound| |p|
                                (QREFELT $ 34))
                      . #4#)
                (EXIT
                 (COND ((QEQCAR |pp| 1) (CONS 1 "failed"))
                       (#5='T
                        (SEQ (LETT |n| (QVELT |state| 4) . #4#)
                             (COND
                              ((SPADCALL (QVELT |state| 7) (QREFELT $ 11))
                               (SEQ
                                (QSETVELT |state| 7
                                          (MAKEARR1
                                           (PROG1 (LETT #3# |n| . #4#)
                                             (|check-subtype| (>= #3# 0)
                                                              '(|NonNegativeInteger|)
                                                              #3#))
                                           (GETREFV32 0 0)))
                                (EXIT
                                 (QSETVELT |state| 8
                                           (MAKEARR1
                                            (PROG1 (LETT #2# |n| . #4#)
                                              (|check-subtype| (>= #2# 0)
                                                               '(|NonNegativeInteger|)
                                                               #2#))
                                            (GETREFV32 0 0)))))))
                             (LETT |nums| (QVELT |state| 7) . #4#)
                             (LETT |dens| (QVELT |state| 8) . #4#)
                             (LETT |ppr| (QCDR |pp|) . #4#)
                             (QSETAREF1 |nums| |j0| (QCAR |ppr|))
                             (QSETAREF1 |dens| |j0| (QCDR |ppr|))
                             (LETT |j| |j0| . #4#)
                             (EXIT
                              (SEQ G190 NIL
                                   (SEQ (LETT |j| (+ |j| 1) . #4#)
                                        (COND
                                         ((NULL (< |j| |n|))
                                          (LETT |j| (- |j| |n|) . #4#)))
                                        (EXIT
                                         (COND
                                          ((EQL |j| |j0|)
                                           (PROGN
                                            (LETT #1#
                                                  (CONS 0 (CONS |nums| |dens|))
                                                  . #4#)
                                            (GO #1#)))
                                          ('T
                                           (SEQ
                                            (LETT |r1| (QAREF1 |polyvec| |j|)
                                                  . #4#)
                                            (LETT |pp|
                                                  (SPADCALL |r1| |modulus|
                                                            |bound| |p|
                                                            (QREFELT $ 34))
                                                  . #4#)
                                            (EXIT
                                             (COND
                                              ((QEQCAR |pp| 1)
                                               (SEQ (QSETVELT |state| 2 |j|)
                                                    (EXIT
                                                     (PROGN
                                                      (LETT #1#
                                                            (CONS 1 "failed")
                                                            . #4#)
                                                      (GO #1#)))))
                                              ('T
                                               (SEQ
                                                (LETT |ppr| (QCDR |pp|) . #4#)
                                                (QSETAREF1 |nums| |j|
                                                           (QCAR |ppr|))
                                                (EXIT
                                                 (QSETAREF1 |dens| |j|
                                                            (QCDR
                                                             |ppr|))))))))))))
                                   NIL (GO G190) G191 (EXIT NIL)))))))))
          (#5# (PROGN (LETT #1# (CONS 1 "failed") . #4#) (GO #1#)))))))
      #1# (EXIT #1#))))) 

(DEFUN |VECREC1;repack_polys;IVSevPaR;7|
       (|var_cnt| |poly_offsets| |exps| |coeffs| $)
  (PROG (|i| |oei| |nei| |oei0| |i1| |nm| |cij| #1=#:G1917 |j| |k| |ci| |opi|
         |pi| #2=#:G1916 |npo| |pi_cnt| |ncoeffs| |nexps| |nnvars| |m|
         #3=#:G1915 #4=#:G1914 |n|)
    (RETURN
     (SEQ (LETT |m| 0 . #5=(|VECREC1;repack_polys;IVSevPaR;7|))
          (LETT |n| (QVSIZE |coeffs|) . #5#)
          (SEQ (LETT |i| 0 . #5#) (LETT #4# (- |n| 1) . #5#) G190
               (COND ((QSGREATERP |i| #4#) #6=(GO G191)))
               (SEQ (LETT |ci| (QAREF1 |coeffs| |i|) . #5#)
                    (LETT |k| (QV32LEN |ci|) . #5#)
                    (EXIT
                     (SEQ (LETT |j| 0 . #5#) (LETT #3# (- |k| 1) . #5#) G190
                          (COND ((QSGREATERP |j| #3#) #6#))
                          (SEQ
                           (EXIT
                            (COND
                             ((NULL (EQL (ELT32 |ci| |j|) 0))
                              (LETT |m| (+ |m| 1) . #5#)))))
                          (LETT |j| (QSADD1 |j|) . #5#) #7=(GO G190) G191
                          (EXIT NIL))))
               (LETT |i| (QSADD1 |i|) . #5#) #7# G191 (EXIT NIL))
          (LETT |nnvars| (+ |var_cnt| 1) . #5#)
          (LETT |nexps| (SPADCALL (* |m| |nnvars|) 0 (QREFELT $ 39)) . #5#)
          (LETT |ncoeffs| (GETREFV32 |m| 0) . #5#)
          (LETT |pi_cnt| (QVSIZE |poly_offsets|) . #5#)
          (LETT |npo| (MAKEARR1 |pi_cnt| 0) . #5#) (LETT |pi| 1 . #5#)
          (LETT |opi| (SPADCALL |poly_offsets| |pi| (QREFELT $ 41)) . #5#)
          (LETT |nm| 0 . #5#) (LETT |oei| 0 . #5#) (LETT |nei| 0 . #5#)
          (SEQ (LETT |i| 0 . #5#) (LETT #2# (- |n| 1) . #5#) G190
               (COND ((QSGREATERP |i| #2#) #6#))
               (SEQ
                (SEQ G190 (COND ((NULL (EQL |opi| |i|)) #6#))
                     (SEQ (SPADCALL |npo| |pi| |nm| (QREFELT $ 42))
                          (LETT |pi| (+ |pi| 1) . #5#)
                          (EXIT
                           (LETT |opi|
                                 (COND ((< |pi_cnt| |pi|) -1)
                                       ('T
                                        (LETT |opi|
                                              (SPADCALL |poly_offsets| |pi|
                                                        (QREFELT $ 41))
                                              . #5#)))
                                 . #5#)))
                     NIL #7# G191 (EXIT NIL))
                (LETT |ci| (QAREF1 |coeffs| |i|) . #5#)
                (LETT |k| (QV32LEN |ci|) . #5#)
                (SEQ (LETT |j| 0 . #5#) (LETT #1# (- |k| 1) . #5#) G190
                     (COND ((QSGREATERP |j| #1#) #6#))
                     (SEQ (LETT |cij| (ELT32 |ci| |j|) . #5#)
                          (EXIT
                           (COND
                            ((NULL (EQL |cij| 0))
                             (SEQ (SETELT32 |ncoeffs| |nm| |cij|)
                                  (LETT |nm| (QSPLUS |nm| 1) . #5#)
                                  (LETT |oei0| |oei| . #5#)
                                  (SEQ (LETT |i1| 1 . #5#) G190
                                       (COND ((QSGREATERP |i1| |var_cnt|) #6#))
                                       (SEQ
                                        (SPADCALL |nexps| |nei|
                                                  (SPADCALL |exps| |oei0|
                                                            (QREFELT $ 43))
                                                  (QREFELT $ 44))
                                        (LETT |nei| (QSPLUS |nei| 1) . #5#)
                                        (EXIT
                                         (LETT |oei0| (QSPLUS |oei0| 1)
                                               . #5#)))
                                       (LETT |i1| (QSADD1 |i1|) . #5#) #7# G191
                                       (EXIT NIL))
                                  (SPADCALL |nexps| |nei| |j| (QREFELT $ 44))
                                  (EXIT
                                   (LETT |nei| (QSPLUS |nei| 1) . #5#)))))))
                     (LETT |j| (QSADD1 |j|) . #5#) #7# G191 (EXIT NIL))
                (EXIT (LETT |oei| (QSPLUS |oei| |var_cnt|) . #5#)))
               (LETT |i| (QSADD1 |i|) . #5#) #7# G191 (EXIT NIL))
          (SEQ (LETT |i| |pi| . #5#) G190 (COND ((> |i| |pi_cnt|) #6#))
               (SEQ (EXIT (SPADCALL |npo| |i| |nm| (QREFELT $ 42))))
               (LETT |i| (+ |i| 1) . #5#) #7# G191 (EXIT NIL))
          (EXIT (VECTOR |nnvars| |npo| |nexps| |ncoeffs|)))))) 

(DEFUN |VECREC1;remove_denoms;V2PaIPa;8| (|block_offsets| |nums| |dens| |p| $)
  (PROG (|dt| |tmpp2| |tmpp1| |dtmp| |dresi| |resi| |i| |dcf| |cfactor| |j|
         |dcden| |cden| |hi| |li| |ib| |res| |np| |nb|)
    (RETURN
     (SEQ
      (LETT |nb| (QVSIZE |block_offsets|)
            . #1=(|VECREC1;remove_denoms;V2PaIPa;8|))
      (LETT |np| (QVSIZE |nums|) . #1#)
      (LETT |res| (MAKEARR1 |np| (GETREFV32 0 0)) . #1#)
      (SEQ (LETT |ib| 1 . #1#) G190
           (COND ((QSGREATERP |ib| |nb|) #2=(GO G191)))
           (SEQ
            (LETT |li| (SPADCALL |block_offsets| |ib| (QREFELT $ 41)) . #1#)
            (LETT |hi|
                  (COND ((EQL |ib| |nb|) |np|)
                        ('T
                         (SPADCALL |block_offsets| (+ |ib| 1) (QREFELT $ 41))))
                  . #1#)
            (LETT |hi| (- |hi| 1) . #1#)
            (LETT |cden| (SPADCALL |dens| |li| |hi| |p| (QREFELT $ 47)) . #1#)
            (LETT |dcden| (SPADCALL |cden| (QREFELT $ 28)) . #1#)
            (LETT |tmpp1| (GETREFV32 (+ |dcden| 1) 0) . #1#)
            (LETT |tmpp2| (GETREFV32 (+ |dcden| 1) 0) . #1#)
            (SEQ (LETT |i| |li| . #1#) G190 (COND ((> |i| |hi|) #2#))
                 (SEQ (SPADCALL |tmpp1| |cden| (+ |dcden| 1) (QREFELT $ 19))
                      (SEQ (LETT |j| 0 . #1#) G190
                           (COND ((QSGREATERP |j| |dcden|) #2#))
                           (SEQ (EXIT (SETELT32 |tmpp2| |j| 0)))
                           (LETT |j| (QSADD1 |j|) . #1#) #3=(GO G190) G191
                           (EXIT NIL))
                      (SPADCALL |tmpp1| (QAREF1 |dens| |i|) |tmpp2| |p|
                                (QREFELT $ 48))
                      (LETT |dt| (SPADCALL |tmpp2| (QREFELT $ 28)) . #1#)
                      (EXIT
                       (QSETAREF1 |res| |i|
                                  (COND
                                   ((< 0 |dt|)
                                    (SPADCALL |tmpp2| (QAREF1 |nums| |i|) |p|
                                              (QREFELT $ 49)))
                                   ('T (QAREF1 |nums| |i|))))))
                 (LETT |i| (+ |i| 1) . #1#) #3# G191 (EXIT NIL))
            (LETT |cfactor| (SPADCALL |res| |li| |hi| |p| (QREFELT $ 50))
                  . #1#)
            (LETT |dcf| (SPADCALL |cfactor| (QREFELT $ 28)) . #1#)
            (LETT |dtmp| |dcden| . #1#)
            (EXIT
             (COND
              ((NULL (< |dcf| 1))
               (SEQ (LETT |i| |li| . #1#) G190 (COND ((> |i| |hi|) #2#))
                    (SEQ (LETT |resi| (QAREF1 |res| |i|) . #1#)
                         (LETT |dresi| (SPADCALL |resi| (QREFELT $ 28)) . #1#)
                         (COND
                          ((< |dtmp| |dresi|)
                           (SEQ (LETT |dtmp| |dresi| . #1#)
                                (LETT |tmpp1| (GETREFV32 (+ |dtmp| 1) 0) . #1#)
                                (EXIT
                                 (LETT |tmpp2| (GETREFV32 (+ |dcden| 1) 0)
                                       . #1#)))))
                         (SPADCALL |tmpp1| |resi| (+ |dresi| 1) (QREFELT $ 19))
                         (SPADCALL |tmpp1| |cfactor| |tmpp2| |p|
                                   (QREFELT $ 48))
                         (LETT |dt| (SPADCALL |tmpp2| (QREFELT $ 28)) . #1#)
                         (QSETAREF1 |res| |i| (GETREFV32 (+ |dt| 1) 0))
                         (EXIT
                          (SPADCALL (QAREF1 |res| |i|) |tmpp2| (+ |dt| 1)
                                    (QREFELT $ 19))))
                    (LETT |i| (+ |i| 1) . #1#) #3# G191 (EXIT NIL))))))
           (LETT |ib| (QSADD1 |ib|) . #1#) #3# G191 (EXIT NIL))
      (EXIT |res|))))) 

(DEFUN |VECREC1;reconstruct;I2VSev2PaIR;9|
       (|var_cnt| |block_offsets| |poly_offsets| |exps| |nums| |dens| |p| $)
  (PROG (|ppa|)
    (RETURN
     (SEQ
      (LETT |ppa| (SPADCALL |block_offsets| |nums| |dens| |p| (QREFELT $ 51))
            |VECREC1;reconstruct;I2VSev2PaIR;9|)
      (EXIT (SPADCALL |var_cnt| |poly_offsets| |exps| |ppa| (QREFELT $ 46))))))) 

(DEFUN |VECREC1;reconstruct;$I2VSevU;10|
       (|statearg| |var_cnt| |block_offsets| |poly_offsets| |exps| $)
  (PROG (|ppr| |state| #1=#:G1945 |pp|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |pp| (SPADCALL |statearg| (QREFELT $ 37))
              . #2=(|VECREC1;reconstruct;$I2VSevU;10|))
        (EXIT
         (COND
          ((QEQCAR |pp| 1) (PROGN (LETT #1# (CONS 1 "failed") . #2#) (GO #1#)))
          ('T
           (SEQ (LETT |state| |statearg| . #2#) (LETT |ppr| (QCDR |pp|) . #2#)
                (EXIT
                 (CONS 0
                       (SPADCALL |var_cnt| |block_offsets| |poly_offsets|
                                 |exps| (QCAR |ppr|) (QCDR |ppr|)
                                 (QVELT |state| 0) (QREFELT $ 52))))))))))
      #1# (EXIT #1#))))) 

(DEFUN |VectorModularReconstructor| #1=()
  (PROG #1#
    (RETURN
     (PROG (#2=#:G1947)
       (RETURN
        (COND
         ((LETT #2# (HGET |$ConstructorCache| '|VectorModularReconstructor|)
                . #3=(|VectorModularReconstructor|))
          (|CDRwithIncrement| (CDAR #2#)))
         ('T
          (UNWIND-PROTECT
              (PROG1
                  (CDDAR
                   (HPUT |$ConstructorCache| '|VectorModularReconstructor|
                         (LIST
                          (CONS NIL
                                (CONS 1 (|VectorModularReconstructor;|))))))
                (LETT #2# T . #3#))
            (COND
             ((NOT #2#)
              (HREM |$ConstructorCache| '|VectorModularReconstructor|))))))))))) 

(DEFUN |VectorModularReconstructor;| ()
  (PROG (|dv$| $ |pv$|)
    (RETURN
     (PROGN
      (LETT |dv$| '(|VectorModularReconstructor|)
            . #1=(|VectorModularReconstructor|))
      (LETT $ (GETREFV 55) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
      (|haddProp| |$ConstructorCache| '|VectorModularReconstructor| NIL
                  (CONS 1 $))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6
                (|Record| (|:| |prime| (|Integer|)) (|:| |lpol| (|U32Vector|))
                          (|:| |curj| (|Integer|)) (|:| |npoints| (|Integer|))
                          (|:| |npolys| (|Integer|)) (|:| |palloc| (|Integer|))
                          (|:| |polys| (|PrimitiveArray| (|U32Vector|)))
                          (|:| |numers| (|PrimitiveArray| (|U32Vector|)))
                          (|:| |denoms| (|PrimitiveArray| (|U32Vector|)))))
      $)))) 

(MAKEPROP '|VectorModularReconstructor| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL '|Rep| (|Integer|) |VECREC1;empty;2I$;1|
              (|Boolean|) (|PrimitiveArray| 17) (0 . |empty?|) (|Void|)
              (|List| 7) |VECREC1;add_slots;L$V;2| (|PositiveInteger|) (5 . *)
              (|U32Vector|) (|U32VectorPolynomialOperations|)
              (11 . |copy_first|) (18 . |eval_at|) (26 . |invmod|)
              (32 . |positiveRemainder|) (38 . |vector_add_mul|)
              (|NonNegativeInteger|) (48 . *) (54 . |mul_by_binomial|)
              |VECREC1;chinese_update;UvI$V;4| (62 . |degree|)
              (67 . |vector_combination|) (78 . |gcd|) (85 . |mul_by_scalar|)
              (|Record| (|:| |numer| 17) (|:| |denom| 17))
              (|Union| 32 '"failed") |VECREC1;rational_reconstruction;2Uv2IU;5|
              (|Record| (|:| |numers| 10) (|:| |denoms| 10))
              (|Union| 35 '"failed") |VECREC1;rational_reconstruction;$U;6|
              (|SortedExponentVector|) (93 . |new|) (|Vector| 7) (99 . |elt|)
              (105 . |setelt|) (112 . |elt|) (118 . |setelt|)
              (|Record| (|:| |nvars| 7) (|:| |offsetdata| 40)
                        (|:| |expdata| 38) (|:| |coeffdata| 17))
              |VECREC1;repack_polys;IVSevPaR;7| (125 . |lcm|) (133 . |divide!|)
              (141 . |mul|) (148 . |gcd|) |VECREC1;remove_denoms;V2PaIPa;8|
              |VECREC1;reconstruct;I2VSev2PaIR;9| (|Union| 45 '"failed")
              |VECREC1;reconstruct;$I2VSevU;10|)
           '#(|repack_polys| 156 |remove_denoms| 164 |reconstruct| 172
              |rational_reconstruction| 192 |empty| 205 |chinese_update| 211
              |add_slots| 218)
           'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 54
                                                 '(1 10 9 0 11 2 7 0 15 0 16 3
                                                   18 12 17 17 7 19 4 18 7 17 7
                                                   7 7 20 2 7 0 0 0 21 2 7 0 0
                                                   0 22 6 18 12 17 17 7 7 7 7
                                                   23 2 24 0 15 0 25 4 18 12 17
                                                   7 7 7 26 1 18 7 17 28 7 18
                                                   12 17 7 17 7 7 7 7 29 3 18
                                                   17 17 17 7 30 4 18 12 17 7 7
                                                   7 31 2 38 0 24 7 39 2 40 7 0
                                                   7 41 3 40 7 0 7 7 42 2 38 7
                                                   0 7 43 3 38 7 0 7 7 44 4 18
                                                   17 10 7 7 7 47 4 18 12 17 17
                                                   17 7 48 3 18 17 17 17 7 49 4
                                                   18 17 10 7 7 7 50 4 0 45 7
                                                   40 38 10 46 4 0 10 40 10 10
                                                   7 51 5 0 53 0 7 40 40 38 54
                                                   7 0 45 7 40 40 38 10 10 7 52
                                                   1 0 36 0 37 4 0 33 17 17 7 7
                                                   34 2 0 0 7 7 8 3 0 12 17 7 0
                                                   27 2 0 12 13 0 14)))))
           '|lookupComplete|)) 

(MAKEPROP '|VectorModularReconstructor| 'NILADIC T) 
