
(/VERSIONCHECK 2) 

(DEFUN |RADFF;discriminant;F;1| ($)
  (SEQ (COND
         ((SPADCALL (QREFELT $ 20) (QREFELT $ 40))
          (|RADFF;startUp| 'NIL $)))
       (EXIT (SPADCALL (QREFELT $ 24) (QREFELT $ 41))))) 

(DEFUN |RADFF;radcand| ($)
  (SEQ (COND
         ((SPADCALL (QREFELT $ 20) (QREFELT $ 40))
          (|RADFF;startUp| 'NIL $)))
       (EXIT (SPADCALL (QREFELT $ 28) (QREFELT $ 43))))) 

(DEFUN |RADFF;integralBasis;V;3| ($)
  (SEQ (COND
         ((SPADCALL (QREFELT $ 20) (QREFELT $ 40))
          (|RADFF;startUp| 'NIL $)))
       (EXIT (|RADFF;diag| (QREFELT $ 33) $)))) 

(DEFUN |RADFF;integralBasisAtInfinity;V;4| ($)
  (SEQ (COND
         ((SPADCALL (QREFELT $ 20) (QREFELT $ 40))
          (|RADFF;startUp| 'NIL $)))
       (EXIT (|RADFF;diag| (QREFELT $ 35) $)))) 

(DEFUN |RADFF;basisvec| ($)
  (SEQ (COND
         ((SPADCALL (QREFELT $ 20) (QREFELT $ 40))
          (|RADFF;startUp| 'NIL $)))
       (EXIT (QREFELT $ 33)))) 

(DEFUN |RADFF;integralMatrix;M;6| ($)
  (SPADCALL (|RADFF;basisvec| $) (QREFELT $ 48))) 

(DEFUN |RADFF;integralMatrixAtInfinity;M;7| ($)
  (SEQ (COND
         ((SPADCALL (QREFELT $ 20) (QREFELT $ 40))
          (|RADFF;startUp| 'NIL $)))
       (EXIT (SPADCALL (QREFELT $ 35) (QREFELT $ 48))))) 

(DEFUN |RADFF;inverseIntegralMatrix;M;8| ($)
  (SEQ (COND
         ((SPADCALL (QREFELT $ 20) (QREFELT $ 40))
          (|RADFF;startUp| 'NIL $)))
       (EXIT (SPADCALL (QREFELT $ 34) (QREFELT $ 48))))) 

(DEFUN |RADFF;inverseIntegralMatrixAtInfinity;M;9| ($)
  (SEQ (COND
         ((SPADCALL (QREFELT $ 20) (QREFELT $ 40))
          (|RADFF;startUp| 'NIL $)))
       (EXIT (SPADCALL (QREFELT $ 36) (QREFELT $ 48))))) 

(DEFUN |RADFF;definingPolynomial;UPUP;10| ($) (QREFELT $ 30)) 

(DEFUN |RADFF;ramified?;FB;11| (|point| $)
  (SPADCALL (SPADCALL (|RADFF;radcand| $) |point| (QREFELT $ 54))
      (QREFELT $ 55))) 

(DEFUN |RADFF;branchPointAtInfinity?;B;12| ($)
  (QEQCAR (SPADCALL (SPADCALL (|RADFF;radcand| $) (QREFELT $ 57))
              (QREFELT $ 10) (QREFELT $ 59))
          1)) 

(DEFUN |RADFF;elliptic;U;13| ($)
  (SEQ (COND
         ((EQL (QREFELT $ 10) 2)
          (COND
            ((EQL (SPADCALL (|RADFF;radcand| $) (QREFELT $ 57)) 3)
             (EXIT (CONS 0 (|RADFF;radcand| $)))))))
       (EXIT (CONS 1 "failed")))) 

(DEFUN |RADFF;hyperelliptic;U;14| ($)
  (SEQ (COND
         ((EQL (QREFELT $ 10) 2)
          (COND
            ((ODDP (SPADCALL (|RADFF;radcand| $) (QREFELT $ 57)))
             (EXIT (CONS 0 (|RADFF;radcand| $)))))))
       (EXIT (CONS 1 "failed")))) 

(DEFUN |RADFF;diag| (|v| $)
  (PROG (#0=#:G1879 |i| #1=#:G1880)
    (RETURN
      (SEQ (PRIMVEC2ARR
               (PROGN
                 (LETT #0# (GETREFV (QSADD1 #2=(QREFELT $ 29)))
                       . #3=(|RADFF;diag|))
                 (SEQ (LETT |i| 0 . #3#) (LETT #1# #2# . #3#) G190
                      (COND ((QSGREATERP |i| #1#) (GO G191)))
                      (SEQ (EXIT (SETELT #0# |i|
                                         (SPADCALL
                                          (SPADCALL
                                           (SPADCALL |v|
                                            (+ |i| (QREFELT $ 39))
                                            (QREFELT $ 64))
                                           |i| (QREFELT $ 14))
                                          (QREFELT $ 65)))))
                      (LETT |i| (QSADD1 |i|) . #3#) (GO G190) G191
                      (EXIT NIL))
                 #0#)))))) 

(DEFUN |RADFF;integralRepresents;VUP$;16| (|v| |d| $)
  (PROG (|ib| #0=#:G1884 #1=#:G1885 |i| #2=#:G1886)
    (RETURN
      (SEQ (LETT |ib| (|RADFF;basisvec| $)
                 . #3=(|RADFF;integralRepresents;VUP$;16|))
           (EXIT (SPADCALL
                     (PRIMVEC2ARR
                         (PROGN
                           (LETT #0#
                                 (GETREFV (QSADD1
                                           (- #4=(QVSIZE |ib|)
                                            #5=(QREFELT $ 39)))) . #3#)
                           (SEQ (LETT #1# 0 . #3#) (LETT |i| #5# . #3#)
                                (LETT #2# #4# . #3#) G190
                                (COND ((> |i| #2#) (GO G191)))
                                (SEQ (EXIT
                                      (SETELT #0# #1#
                                       (SPADCALL
                                        (SPADCALL |ib| |i|
                                         (QREFELT $ 64))
                                        (SPADCALL
                                         (SPADCALL |v| |i|
                                          (QREFELT $ 67))
                                         |d| (QREFELT $ 68))
                                        (QREFELT $ 69)))))
                                (LETT |i|
                                      (PROG1 (+ |i| 1)
                                        (LETT #1# (QSADD1 #1#) . #3#)) . #3#)
                                (GO G190) G191 (EXIT NIL))
                           #0#))
                     (QREFELT $ 70))))))) 

(DEFUN |RADFF;integralCoordinates;$R;17| (|f| $)
  (PROG (|v| |ib| #0=#:G1892 #1=#:G1893 |i| #2=#:G1894)
    (RETURN
      (SEQ (LETT |v| (SPADCALL |f| (QREFELT $ 72))
                 . #3=(|RADFF;integralCoordinates;$R;17|))
           (LETT |ib| (|RADFF;basisvec| $) . #3#)
           (EXIT (SPADCALL
                     (PRIMVEC2ARR
                         (PROGN
                           (LETT #0#
                                 (GETREFV (QSADD1
                                           (- #4=(QVSIZE |ib|)
                                            #5=(QREFELT $ 39)))) . #3#)
                           (SEQ (LETT #1# 0 . #3#) (LETT |i| #5# . #3#)
                                (LETT #2# #4# . #3#) G190
                                (COND ((> |i| #2#) (GO G191)))
                                (SEQ (EXIT
                                      (SETELT #0# #1#
                                       (SPADCALL
                                        (SPADCALL |v| |i|
                                         (QREFELT $ 64))
                                        (SPADCALL |ib| |i|
                                         (QREFELT $ 64))
                                        (QREFELT $ 73)))))
                                (LETT |i|
                                      (PROG1 (+ |i| 1)
                                        (LETT #1# (QSADD1 #1#) . #3#)) . #3#)
                                (GO G190) G191 (EXIT NIL))
                           #0#))
                     (QREFELT $ 76))))))) 

(DEFUN |RADFF;integralDerivationMatrix;MR;18| (|d| $)
  (PROG (|dlogp| |v| #0=#:G1902 #1=#:G1903 |i| #2=#:G1904 |cd|)
    (RETURN
      (SEQ (LETT |dlogp|
                 (SPADCALL (SPADCALL (QREFELT $ 9) |d| (QREFELT $ 79))
                     (SPADCALL (QREFELT $ 10) (QREFELT $ 9)
                         (QREFELT $ 80))
                     (QREFELT $ 73))
                 . #3=(|RADFF;integralDerivationMatrix;MR;18|))
           (LETT |v| (|RADFF;basisvec| $) . #3#)
           (LETT |cd|
                 (SPADCALL
                     (PRIMVEC2ARR
                         (PROGN
                           (LETT #0#
                                 (GETREFV (QSADD1
                                           (- #4=(QVSIZE |v|)
                                            #5=(QREFELT $ 39)))) . #3#)
                           (SEQ (LETT #1# 0 . #3#) (LETT |i| #5# . #3#)
                                (LETT #2# #4# . #3#) G190
                                (COND ((> |i| #2#) (GO G191)))
                                (SEQ (EXIT
                                      (SETELT #0# #1#
                                       (SPADCALL
                                        (SPADCALL
                                         (- |i| (QREFELT $ 39)) |dlogp|
                                         (QREFELT $ 81))
                                        (SPADCALL
                                         (SPADCALL
                                          (SPADCALL |v| |i|
                                           (QREFELT $ 64))
                                          |d| (QREFELT $ 79))
                                         (SPADCALL |v| |i|
                                          (QREFELT $ 64))
                                         (QREFELT $ 73))
                                        (QREFELT $ 82)))))
                                (LETT |i|
                                      (PROG1 (+ |i| 1)
                                        (LETT #1# (QSADD1 #1#) . #3#)) . #3#)
                                (GO G190) G191 (EXIT NIL))
                           #0#))
                     (QREFELT $ 76)) . #3#)
           (EXIT (CONS (SPADCALL (QCAR |cd|) (QREFELT $ 84))
                       (QCDR |cd|))))))) 

(DEFUN |RADFF;iBasis| (|p| |d| $)
  (PROG (|pl| #0=#:G1905 |d1| #1=#:G1912 |i| |j| #2=#:G1908 #3=#:G1906
              #4=#:G1907)
    (RETURN
      (SEQ (LETT |pl|
                 (|RADFF;fullVector| (SPADCALL |p| (QREFELT $ 88)) |d|
                     $)
                 . #5=(|RADFF;iBasis|))
           (LETT |d1|
                 (PROG1 (LETT #0# (- |d| 1) . #5#)
                   (|check-subtype| (>= #0# 0) '(|NonNegativeInteger|)
                       #0#)) . #5#)
           (EXIT (PRIMVEC2ARR
                     (PROGN
                       (LETT #1# (GETREFV (QSADD1 |d1|)) . #5#)
                       (SEQ (LETT |i| 0 . #5#) G190
                            (COND
                              ((QSGREATERP |i| |d1|) #6=(GO G191)))
                            (SEQ (EXIT (SETELT #1# |i|
                                        (PROGN
                                          (LETT #4# NIL . #5#)
                                          (SEQ (LETT |j| 0 . #5#) G190
                                           (COND
                                             ((QSGREATERP |j| |d1|)
                                              #6#))
                                           (SEQ
                                            (EXIT
                                             (PROGN
                                               (LETT #2#
                                                (SPADCALL
                                                 (ELT |pl| |j|)
                                                 (QUOTIENT2 (* |i| |j|)
                                                  |d|)
                                                 (QREFELT $ 89)) . #5#)
                                               (COND
                                                 (#4#
                                                  (LETT #3#
                                                   (SPADCALL #3# #2#
                                                    (QREFELT $ 90)) . #5#))
                                                 ('T
                                                  (PROGN
                                                    (LETT #3#
                                                     #2# . #5#)
                                                    (LETT #4# 'T . #5#)))))))
                                           (LETT |j|
                                            (QSADD1 |j|) . #5#)
                                           #7=(GO G190) G191
                                           (EXIT NIL))
                                          (COND
                                            (#4# #3#)
                                            ('T (|spadConstant| $ 91)))))))
                            (LETT |i| (QSADD1 |i|) . #5#) #7# G191
                            (EXIT NIL))
                       #1#))))))) 

(DEFUN |RADFF;fullVector| (|p| |m| $)
  (PROG (|ans| |l| |i| #0=#:G1928 |u|)
    (RETURN
      (SEQ (LETT |ans|
                 (SPADCALL |m| (|spadConstant| $ 25) (QREFELT $ 93))
                 . #1=(|RADFF;fullVector|))
           (SETELT |ans| 0 (SPADCALL |p| (QREFELT $ 99)))
           (LETT |l| (SPADCALL |p| (QREFELT $ 102)) . #1#)
           (SEQ (LETT |i| 1 . #1#)
                (LETT #0# (SPADCALL |ans| (QREFELT $ 103)) . #1#) G190
                (COND ((QSGREATERP |i| #0#) (GO G191)))
                (SEQ (EXIT (SETELT |ans| |i|
                                   (SEQ
                                    (LETT |u|
                                     (SPADCALL
                                      (CONS #'|RADFF;fullVector!0|
                                       (VECTOR $ |i|))
                                      |l| (QREFELT $ 107)) . #1#)
                                    (EXIT
                                     (COND
                                       ((QEQCAR |u| 1)
                                        (|spadConstant| $ 91))
                                       ('T (QCAR (QCDR |u|)))))))))
                (LETT |i| (QSADD1 |i|) . #1#) (GO G190) G191
                (EXIT NIL))
           (EXIT |ans|))))) 

(DEFUN |RADFF;fullVector!0| (|#1| $$)
  (SPADCALL (QCDR |#1|) (QREFELT $$ 1) (QREFELT (QREFELT $$ 0) 104))) 

(DEFUN |RADFF;inftyBasis| (|p| |m| $)
  (PROG (|x| |rt| |a| |v| |w| |i| #0=#:G1936 |b|)
    (RETURN
      (SEQ (LETT |rt|
                 (SPADCALL
                     (SPADCALL |p|
                         (LETT |x|
                               (SPADCALL
                                   (SPADCALL
                                    (SPADCALL (|spadConstant| $ 108) 1
                                     (QREFELT $ 109))
                                    (QREFELT $ 110))
                                   (QREFELT $ 111))
                               . #1=(|RADFF;inftyBasis|))
                         (QREFELT $ 113))
                     |m| (QREFELT $ 116)) . #1#)
           (COND
             ((NULL (EQL |m| (QVELT |rt| 0)))
              (EXIT (|error| "Curve not irreducible after change of variable 0 -> infinity"))))
           (LETT |a|
                 (SPADCALL (QVELT |rt| 1) |x| (QREFELT $ 113)) . #1#)
           (LETT |b| (|spadConstant| $ 12) . #1#)
           (LETT |v| (|RADFF;iBasis| (QVELT |rt| 2) |m| $) . #1#)
           (LETT |w|
                 (SPADCALL |m| (|spadConstant| $ 21) (QREFELT $ 32)) . #1#)
           (SEQ (LETT |i| (QREFELT $ 39) . #1#)
                (LETT #0# (QVSIZE |v|) . #1#) G190
                (COND ((> |i| #0#) (GO G191)))
                (SEQ (SPADCALL |w| |i|
                         (SPADCALL |b|
                             (SPADCALL
                                 (SPADCALL
                                     (SPADCALL |v| |i| (QREFELT $ 67))
                                     (QREFELT $ 110))
                                 |x| (QREFELT $ 113))
                             (QREFELT $ 73))
                         (QREFELT $ 117))
                     (EXIT (LETT |b|
                                 (SPADCALL |b| |a| (QREFELT $ 69)) . #1#)))
                (LETT |i| (+ |i| 1) . #1#) (GO G190) G191 (EXIT NIL))
           (EXIT |w|))))) 

(DEFUN |RADFF;charPintbas| (|p| |c| |v| |w| $)
  (PROG (|q| |ib| |k| #0=#:G1947 |j| #1=#:G1946 |i| #2=#:G1945 |a|)
    (RETURN
      (SEQ (COND
             ((NULL (EQL (SPADCALL |p| (QREFELT $ 118)) (QREFELT $ 10)))
              (|error| "charPintbas: should not happen"))
             ('T
              (SEQ (LETT |q|
                         (SPADCALL (CONS #'|RADFF;charPintbas!0| $) |p|
                             (QREFELT $ 123))
                         . #3=(|RADFF;charPintbas|))
                   (LETT |ib|
                         (SPADCALL
                             (|compiledLookupCheck| '|integralBasis|
                                 (LIST (LIST '|Record|
                                        (LIST '|:| '|basis|
                                         (LIST '|Matrix|
                                          (|devaluate| (ELT $ 7))))
                                        (LIST '|:| '|basisDen|
                                         (|devaluate| (ELT $ 7)))
                                        (LIST '|:| '|basisInv|
                                         (LIST '|Matrix|
                                          (|devaluate| (ELT $ 7))))))
                                 (|FunctionFieldIntegralBasis|
                                     (ELT $ 7)
                                     (|SparseUnivariatePolynomial|
                                      (ELT $ 7))
                                     (|SimpleAlgebraicExtension|
                                      (ELT $ 7)
                                      (|SparseUnivariatePolynomial|
                                       (ELT $ 7))
                                      |q|)))) . #3#)
                   (COND
                     ((NULL (SPADCALL (QVELT |ib| 0) (QREFELT $ 125)))
                      (EXIT (|error| "charPintbas: integral basis not diagonal"))))
                   (LETT |a| (|spadConstant| $ 12) . #3#)
                   (SEQ (LETT |k| (QREFELT $ 39) . #3#)
                        (LETT #0# (QVSIZE |v|) . #3#)
                        (LETT |j|
                              (SPADCALL (QVELT |ib| 0) (QREFELT $ 128)) . #3#)
                        (LETT #1#
                              (SPADCALL (QVELT |ib| 0) (QREFELT $ 129)) . #3#)
                        (LETT |i|
                              (SPADCALL (QVELT |ib| 0) (QREFELT $ 126)) . #3#)
                        (LETT #2#
                              (SPADCALL (QVELT |ib| 0) (QREFELT $ 127)) . #3#)
                        G190
                        (COND
                          ((OR (> |i| #2#) (> |j| #1#) (> |k| #0#))
                           (GO G191)))
                        (SEQ (SPADCALL |v| |k|
                                 (SPADCALL
                                     (SPADCALL
                                      (SPADCALL (QVELT |ib| 0) |i| |j|
                                       (QREFELT $ 130))
                                      (QVELT |ib| 1) (QREFELT $ 68))
                                     |a| (QREFELT $ 69))
                                 (QREFELT $ 117))
                             (SPADCALL |w| |k|
                                 (SPADCALL
                                     (SPADCALL (QVELT |ib| 2) |i| |j|
                                      (QREFELT $ 130))
                                     (SPADCALL |a| (QREFELT $ 111))
                                     (QREFELT $ 131))
                                 (QREFELT $ 117))
                             (EXIT (LETT |a|
                                    (SPADCALL |a| |c| (QREFELT $ 69)) . #3#)))
                        (LETT |i|
                              (PROG1 (+ |i| 1)
                                (LETT |j|
                                      (PROG1 (+ |j| 1)
                                        (LETT |k| (+ |k| 1) . #3#)) . #3#)) . #3#)
                        (GO G190) G191 (EXIT NIL))
                   (EXIT (SPADCALL (QREFELT $ 133)))))))))) 

(DEFUN |RADFF;charPintbas!0| (|#1| $) (SPADCALL |#1| (QREFELT $ 119))) 

(DEFUN |RADFF;charPStartUp| ($)
  (PROG (|x| |invmod| |r|)
    (RETURN
      (SEQ (LETT |r| (SPADCALL (QREFELT $ 30) (QREFELT $ 135))
                 . #0=(|RADFF;charPStartUp|))
           (|RADFF;charPintbas| (QCDR |r|) (QCAR |r|) (QREFELT $ 33)
               (QREFELT $ 34) $)
           (LETT |x|
                 (SPADCALL
                     (SPADCALL
                         (SPADCALL (|spadConstant| $ 108) 1
                             (QREFELT $ 109))
                         (QREFELT $ 110))
                     (QREFELT $ 111)) . #0#)
           (LETT |invmod|
                 (SPADCALL
                     (SPADCALL (|spadConstant| $ 12) (QREFELT $ 10)
                         (QREFELT $ 14))
                     (SPADCALL
                         (SPADCALL (QREFELT $ 9) |x| (QREFELT $ 113))
                         (QREFELT $ 15))
                     (QREFELT $ 16)) . #0#)
           (LETT |r| (SPADCALL |invmod| (QREFELT $ 135)) . #0#)
           (EXIT (|RADFF;charPintbas| (QCDR |r|)
                     (SPADCALL (QCAR |r|) |x| (QREFELT $ 113))
                     (QREFELT $ 35) (QREFELT $ 36) $)))))) 

(DEFUN |RADFF;startUp| (|b| $)
  (PROG (|p| |i| #0=#:G1967 #1=#:G1964 #2=#:G1962 #3=#:G1963 |dsc|)
    (RETURN
      (SEQ (SPADCALL (QREFELT $ 20) |b| (QREFELT $ 136))
           (COND
             ((OR (ZEROP (LETT |p| (SPADCALL (QREFELT $ 137))
                               . #4=(|RADFF;startUp|)))
                  (< (QREFELT $ 10) |p|))
              (|RADFF;char0StartUp| $))
             ('T (|RADFF;charPStartUp| $)))
           (LETT |dsc|
                 (SPADCALL
                     (SPADCALL
                         (* (EXPT -1
                                  (QUOTIENT2
                                      (* (QREFELT $ 10) (QREFELT $ 29))
                                      2))
                            (EXPT (QREFELT $ 10) (QREFELT $ 10)))
                         (SPADCALL (QREFELT $ 9) (QREFELT $ 29)
                             (QREFELT $ 138))
                         (QREFELT $ 81))
                     (PROGN
                       (LETT #3# NIL . #4#)
                       (SEQ (LETT |i| (QREFELT $ 39) . #4#)
                            (LETT #0# (QVSIZE (QREFELT $ 33)) . #4#)
                            G190 (COND ((> |i| #0#) (GO G191)))
                            (SEQ (EXIT (PROGN
                                         (LETT #1#
                                          (SPADCALL
                                           (SPADCALL (QREFELT $ 33) |i|
                                            (QREFELT $ 64))
                                           2 (QREFELT $ 139)) . #4#)
                                         (COND
                                           (#3#
                                            (LETT #2#
                                             (SPADCALL #2# #1#
                                              (QREFELT $ 69)) . #4#))
                                           ('T
                                            (PROGN
                                              (LETT #2# #1# . #4#)
                                              (LETT #3# 'T . #4#)))))))
                            (LETT |i| (+ |i| 1) . #4#) (GO G190) G191
                            (EXIT NIL))
                       (COND (#3# #2#) ('T (|spadConstant| $ 12))))
                     (QREFELT $ 69)) . #4#)
           (SPADCALL (QREFELT $ 24)
               (SPADCALL
                   (SPADCALL (SPADCALL |dsc| (QREFELT $ 140))
                       (QREFELT $ 141))
                   (SPADCALL |dsc| (QREFELT $ 142)) (QREFELT $ 68))
               (QREFELT $ 143))
           (EXIT (SPADCALL (QREFELT $ 133))))))) 

(DEFUN |RADFF;char0StartUp| ($)
  (PROG (|rp| |ib| |infb| |i| #0=#:G1974 |invden| |a|)
    (RETURN
      (SEQ (LETT |rp|
                 (SPADCALL (QREFELT $ 9) (QREFELT $ 10)
                     (QREFELT $ 116))
                 . #1=(|RADFF;char0StartUp|))
           (COND
             ((NULL (EQL (QVELT |rp| 0) (QREFELT $ 10)))
              (EXIT (|error| "RadicalFunctionField: curve is not irreducible"))))
           (SPADCALL (QREFELT $ 28) (QVELT |rp| 2) (QREFELT $ 144))
           (LETT |ib|
                 (|RADFF;iBasis|
                     (SPADCALL (QREFELT $ 28) (QREFELT $ 43))
                     (QREFELT $ 10) $) . #1#)
           (LETT |infb|
                 (|RADFF;inftyBasis| (QREFELT $ 9) (QREFELT $ 10) $) . #1#)
           (LETT |invden| (|spadConstant| $ 12) . #1#)
           (SEQ (LETT |i| (QREFELT $ 39) . #1#)
                (LETT #0# (QVSIZE |ib|) . #1#) G190
                (COND ((> |i| #0#) (GO G191)))
                (SEQ (SPADCALL (QREFELT $ 34) |i|
                         (LETT |a|
                               (SPADCALL
                                   (SPADCALL |ib| |i| (QREFELT $ 67))
                                   |invden| (QREFELT $ 131)) . #1#)
                         (QREFELT $ 117))
                     (SPADCALL (QREFELT $ 33) |i|
                         (SPADCALL |a| (QREFELT $ 111))
                         (QREFELT $ 117))
                     (LETT |invden|
                           (SPADCALL |invden| (QVELT |rp| 1)
                               (QREFELT $ 73)) . #1#)
                     (SPADCALL (QREFELT $ 35) |i|
                         (LETT |a|
                               (SPADCALL |infb| |i| (QREFELT $ 64)) . #1#)
                         (QREFELT $ 117))
                     (EXIT (SPADCALL (QREFELT $ 36) |i|
                               (SPADCALL |a| (QREFELT $ 111))
                               (QREFELT $ 117))))
                (LETT |i| (+ |i| 1) . #1#) (GO G190) G191 (EXIT NIL))
           (EXIT (SPADCALL (QREFELT $ 133))))))) 

(DEFUN |RADFF;ramified?;UPB;26| (|p| $)
  (PROG (|r|)
    (RETURN
      (SEQ (LETT |r| (SPADCALL |p| (QREFELT $ 146))
                 |RADFF;ramified?;UPB;26|)
           (EXIT (COND
                   ((QEQCAR |r| 0)
                    (SPADCALL (QCDR |r|) (QREFELT $ 147)))
                   ('T
                    (QEQCAR (SPADCALL (|RADFF;radcand| $) |p|
                                (QREFELT $ 148))
                            0)))))))) 

(DEFUN |RADFF;singular?;UPB;27| (|p| $)
  (PROG (|r|)
    (RETURN
      (SEQ (LETT |r| (SPADCALL |p| (QREFELT $ 146))
                 |RADFF;singular?;UPB;27|)
           (EXIT (COND
                   ((QEQCAR |r| 0)
                    (SPADCALL (QCDR |r|) (QREFELT $ 147)))
                   ('T
                    (QEQCAR (SPADCALL (|RADFF;radcand| $)
                                (SPADCALL |p| 2 (QREFELT $ 151))
                                (QREFELT $ 148))
                            0)))))))) 

(DEFUN |RADFF;branchPoint?;UPB;28| (|p| $)
  (PROG (|r| |q|)
    (RETURN
      (SEQ (LETT |r| (SPADCALL |p| (QREFELT $ 146))
                 . #0=(|RADFF;branchPoint?;UPB;28|))
           (EXIT (COND
                   ((QEQCAR |r| 0)
                    (SPADCALL (QCDR |r|) (QREFELT $ 153)))
                   (#1='T
                    (SEQ (LETT |q|
                               (SPADCALL (|RADFF;radcand| $) |p|
                                   (QREFELT $ 148)) . #0#)
                         (EXIT (COND
                                 ((QEQCAR |q| 0)
                                  (QEQCAR (SPADCALL (QCDR |q|) |p|
                                           (QREFELT $ 148))
                                          1))
                                 (#1# 'NIL))))))))))) 

(DEFUN |RADFF;singular?;FB;29| (|point| $)
  (PROG (#0=#:G2004)
    (RETURN
      (COND
        ((SPADCALL
             (SPADCALL (|RADFF;radcand| $) |point| (QREFELT $ 54))
             (QREFELT $ 55))
         (SPADCALL
             (SPADCALL
                 (PROG2 (LETT #0#
                              (SPADCALL (|RADFF;radcand| $)
                                  (SPADCALL
                                      (SPADCALL (|spadConstant| $ 108)
                                       1 (QREFELT $ 109))
                                      (SPADCALL |point|
                                       (QREFELT $ 155))
                                      (QREFELT $ 156))
                                  (QREFELT $ 148))
                              |RADFF;singular?;FB;29|)
                        (QCDR #0#)
                   (|check-union| (QEQCAR #0# 0) (QREFELT $ 7) #0#))
                 |point| (QREFELT $ 54))
             (QREFELT $ 55)))
        ('T 'NIL))))) 

(DEFUN |RADFF;branchPoint?;FB;30| (|point| $)
  (PROG (#0=#:G2009)
    (RETURN
      (COND
        ((SPADCALL
             (SPADCALL (|RADFF;radcand| $) |point| (QREFELT $ 54))
             (QREFELT $ 55))
         (COND
           ((SPADCALL
                (SPADCALL
                    (PROG2 (LETT #0#
                                 (SPADCALL (|RADFF;radcand| $)
                                     (SPADCALL
                                      (SPADCALL (|spadConstant| $ 108)
                                       1 (QREFELT $ 109))
                                      (SPADCALL |point|
                                       (QREFELT $ 155))
                                      (QREFELT $ 156))
                                     (QREFELT $ 148))
                                 |RADFF;branchPoint?;FB;30|)
                           (QCDR #0#)
                      (|check-union| (QEQCAR #0# 0) (QREFELT $ 7) #0#))
                    |point| (QREFELT $ 54))
                (QREFELT $ 55))
            'NIL)
           ('T 'T)))
        ('T 'NIL))))) 

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

(DEFUN |RadicalFunctionField;| (|#1| |#2| |#3| |#4| |#5|)
  (PROG (DV$1 DV$2 DV$3 DV$4 DV$5 |dv$| $ #0=#:G2053 #1=#:G2052
              #2=#:G2051 |pv$| #3=#:G1827)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|) . #4=(|RadicalFunctionField|))
        (LETT DV$2 (|devaluate| |#2|) . #4#)
        (LETT DV$3 (|devaluate| |#3|) . #4#)
        (LETT DV$4 (|devaluate| |#4|) . #4#)
        (LETT DV$5 (|devaluate| |#5|) . #4#)
        (LETT |dv$|
              (LIST '|RadicalFunctionField| DV$1 DV$2 DV$3 DV$4 DV$5) . #4#)
        (LETT $ (GETREFV 192) . #4#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3
            (LETT |pv$|
                  (|buildPredVector| 0 0
                      (LIST (|HasCategory| (|Fraction| |#2|)
                                '(|CharacteristicNonZero|))
                            (|HasCategory| (|Fraction| |#2|)
                                '(|CharacteristicZero|))
                            (|HasCategory| (|Fraction| |#2|)
                                '(|FiniteFieldCategory|))
                            (LETT #0#
                                  (|HasCategory| (|Fraction| |#2|)
                                      '(|Field|)) . #4#)
                            (OR #0#
                                (|HasCategory| (|Fraction| |#2|)
                                    '(|FiniteFieldCategory|)))
                            (|HasCategory| (|Fraction| |#2|)
                                '(|Finite|))
                            (|HasCategory| (|Fraction| |#2|)
                                '(|LinearlyExplicitRingOver|
                                     (|Integer|)))
                            (|HasCategory| (|Fraction| |#2|)
                                '(|RetractableTo|
                                     (|Fraction| (|Integer|))))
                            (|HasCategory| (|Fraction| |#2|)
                                '(|RetractableTo| (|Integer|)))
                            (|HasCategory| |#1| '(|Field|))
                            (|HasCategory| |#1| '(|Finite|))
                            (OR (|HasCategory| (|Fraction| |#2|)
                                    '(|RetractableTo|
                                      (|Fraction| (|Integer|))))
                                #0#)
                            (LETT #1#
                                  (AND (|HasCategory| (|Fraction| |#2|)
                                        '(|PartialDifferentialRing|
                                          (|Symbol|)))
                                       (|HasCategory| (|Fraction| |#2|)
                                        '(|Field|))) . #4#)
                            (OR #1#
                                (AND (|HasCategory| (|Fraction| |#2|)
                                      '(|PartialDifferentialRing|
                                        (|Symbol|)))
                                     (|HasCategory| (|Fraction| |#2|)
                                      '(|FiniteFieldCategory|))))
                            (LETT #2#
                                  (AND (|HasCategory| (|Fraction| |#2|)
                                        '(|DifferentialRing|))
                                       (|HasCategory| (|Fraction| |#2|)
                                        '(|Field|))) . #4#)
                            (OR #2#
                                (|HasCategory| (|Fraction| |#2|)
                                    '(|FiniteFieldCategory|))))) . #4#))
        (|haddProp| |$ConstructorCache| '|RadicalFunctionField|
            (LIST DV$1 DV$2 DV$3 DV$4 DV$5) (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        (QSETREFV $ 7 |#2|)
        (QSETREFV $ 8 |#3|)
        (QSETREFV $ 9 |#4|)
        (QSETREFV $ 10 |#5|)
        (QSETREFV $ 20 (SPADCALL 'T (QREFELT $ 19)))
        (QSETREFV $ 24 (SPADCALL (|spadConstant| $ 21) (QREFELT $ 23)))
        (QSETREFV $ 28 (SPADCALL (|spadConstant| $ 25) (QREFELT $ 27)))
        (QSETREFV $ 29
            (PROG1 (LETT #3# (- |#5| 1) . #4#)
              (|check-subtype| (>= #3# 0) '(|NonNegativeInteger|) #3#)))
        (QSETREFV $ 30
            (SPADCALL
                (SPADCALL (|spadConstant| $ 12) |#5| (QREFELT $ 14))
                (SPADCALL |#4| (QREFELT $ 15)) (QREFELT $ 16)))
        (QSETREFV $ 33
            (SPADCALL |#5| (|spadConstant| $ 21) (QREFELT $ 32)))
        (QSETREFV $ 34
            (SPADCALL |#5| (|spadConstant| $ 21) (QREFELT $ 32)))
        (QSETREFV $ 35
            (SPADCALL |#5| (|spadConstant| $ 21) (QREFELT $ 32)))
        (QSETREFV $ 36
            (SPADCALL |#5| (|spadConstant| $ 21) (QREFELT $ 32)))
        (QSETREFV $ 39 (SPADCALL (QREFELT $ 33) (QREFELT $ 38)))
        $)))) 

(MAKEPROP '|RadicalFunctionField| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL
             (|SimpleAlgebraicExtension| 11 8
                 (NRTEVAL (SPADCALL
                              (SPADCALL (|spadConstant| $ 12)
                                  (QREFELT $ 10) (QREFELT $ 14))
                              (SPADCALL (QREFELT $ 9) (QREFELT $ 15))
                              (QREFELT $ 16))))
             (|local| |#1|) (|local| |#2|) (|local| |#3|)
             (|local| |#4|) (|local| |#5|) (|Fraction| 7) (0 . |One|)
             (|NonNegativeInteger|) (4 . |monomial|) (10 . |coerce|)
             (15 . -) (|Boolean|) (|Reference| 17) (21 . |ref|)
             '|brandNew?| (26 . |Zero|) (|Reference| 11) (30 . |ref|)
             '|discPoly| (35 . |Zero|) (|Reference| 7) (39 . |ref|)
             '|newrad| '|n1| '|modulus| (|Vector| 11) (44 . |new|)
             '|ibasis| '|invibasis| '|infbasis| '|invinfbasis|
             (|Integer|) (50 . |minIndex|) '|mini| (55 . |deref|)
             (60 . |elt|) |RADFF;discriminant;F;1| (65 . |elt|)
             (|Vector| $) |RADFF;integralBasis;V;3|
             |RADFF;integralBasisAtInfinity;V;4| (|Matrix| 11)
             (70 . |diagonalMatrix|) |RADFF;integralMatrix;M;6|
             |RADFF;integralMatrixAtInfinity;M;7|
             |RADFF;inverseIntegralMatrix;M;8|
             |RADFF;inverseIntegralMatrixAtInfinity;M;9|
             |RADFF;definingPolynomial;UPUP;10| (75 . |elt|)
             (81 . |zero?|) |RADFF;ramified?;FB;11| (86 . |degree|)
             (|Union| $ '"failed") (91 . |exquo|)
             |RADFF;branchPointAtInfinity?;B;12| (|Union| 7 '"failed")
             |RADFF;elliptic;U;13| |RADFF;hyperelliptic;U;14|
             (97 . |qelt|) (103 . |reduce|) (|Vector| 7) (108 . |qelt|)
             (114 . /) (120 . *) (126 . |represents|)
             |RADFF;integralRepresents;VUP$;16| (131 . |coordinates|)
             (136 . /) (|Record| (|:| |num| 66) (|:| |den| 7))
             (|InnerCommonDenominator| 7 11 66 31)
             (142 . |splitDenominator|)
             |RADFF;integralCoordinates;$R;17| (|Mapping| 7 7)
             (147 . |differentiate|) (153 . *) (159 . *) (165 . +)
             (|Matrix| 7) (171 . |diagonalMatrix|)
             (|Record| (|:| |num| 83) (|:| |den| 7))
             |RADFF;integralDerivationMatrix;MR;18| (|Factored| $)
             (176 . |squareFree|) (181 . **) (187 . *) (193 . |One|)
             (|PrimitiveArray| 7) (197 . |new|) (203 . |Zero|)
             (207 . |Zero|) (211 . |Zero|) (|Factored| 7)
             (215 . |Zero|) (219 . |unit|)
             (|Record| (|:| |factor| 7) (|:| |exponent| 37))
             (|List| 100) (224 . |factors|) (229 . |maxIndex|)
             (234 . =) (|Union| 100 '"failed") (|Mapping| 17 100)
             (240 . |find|) (246 . |One|) (250 . |monomial|)
             (256 . |coerce|) (261 . |inv|) (|Fraction| $)
             (266 . |elt|)
             (|Record| (|:| |exponent| 13) (|:| |coef| 11)
                 (|:| |radicand| 7))
             (|ChangeOfVariable| 6 7 8) (272 . |rootPoly|)
             (278 . |qsetelt!|) (285 . |degree|) (290 . |retract|)
             (|SparseUnivariatePolynomial| 7) (|Mapping| 7 11)
             (|UnivariatePolynomialCategoryFunctions2| 11 8 7 120)
             (295 . |map|) (301 . |basis|) (305 . |diagonal?|)
             (310 . |minRowIndex|) (315 . |maxRowIndex|)
             (320 . |minColIndex|) (325 . |maxColIndex|) (330 . |qelt|)
             (337 . *) (|Void|) (343 . |void|)
             (|Record| (|:| |coef| 11) (|:| |poly| 8))
             (347 . |mkIntegral|) (352 . |setelt|)
             (358 . |characteristic|) (362 . **) (368 . **)
             (374 . |numer|) (379 . |primitivePart|) (384 . |denom|)
             (389 . |setelt|) (395 . |setelt|) (|Union| 6 '"failed")
             (401 . |retractIfCan|) |RADFF;singular?;FB;29|
             (406 . |exquo|) |RADFF;ramified?;UPB;26|
             (|PositiveInteger|) (412 . **) |RADFF;singular?;UPB;27|
             |RADFF;branchPoint?;FB;30| |RADFF;branchPoint?;UPB;28|
             (418 . |coerce|) (423 . -) (|List| 158) (|Symbol|)
             (|List| 13) (|Fraction| 37)
             (|Record| (|:| |unit| $) (|:| |canonical| $)
                 (|:| |associate| $))
             (|List| $) (|SparseUnivariatePolynomial| $)
             (|Record| (|:| |coef| 162) (|:| |generator| $))
             (|Union| 162 '"failed")
             (|Record| (|:| |quotient| $) (|:| |remainder| $))
             (|Record| (|:| |coef1| $) (|:| |coef2| $))
             (|Union| 167 '"failed")
             (|Record| (|:| |coef1| $) (|:| |coef2| $)
                 (|:| |generator| $))
             (|Mapping| 11 11) (|Fraction| 8) (|Union| 13 '"failed")
             (|OnePointCompletion| 150) (|Union| 44 '"failed")
             (|Matrix| $) (|Table| 150 13)
             (|Record| (|:| |factor| 37) (|:| |exponent| 37))
             (|List| 177)
             (|Union| '"prime" '"polynomial" '"normal" '"cyclic")
             (|Matrix| 37)
             (|Record| (|:| |mat| 180) (|:| |vec| (|Vector| 37)))
             (|Union| 160 '"failed") (|Union| 37 '"failed")
             (|List| (|Polynomial| 6)) (|List| (|List| 6))
             (|Record| (|:| |num| $) (|:| |den| 7) (|:| |derivden| 7)
                 (|:| |gd| 7))
             (|Record| (|:| |mat| 47) (|:| |vec| 31))
             (|Union| 11 '"failed") (|SingleInteger|) (|String|)
             (|OutputForm|))
          '#(|singular?| 429 |represents| 439 |reduce| 444 |ramified?|
             449 |inverseIntegralMatrixAtInfinity| 459
             |inverseIntegralMatrix| 463 |integralRepresents| 467
             |integralMatrixAtInfinity| 473 |integralMatrix| 477
             |integralDerivationMatrix| 481 |integralCoordinates| 486
             |integralBasisAtInfinity| 491 |integralBasis| 495
             |hyperelliptic| 499 |elliptic| 503 |discriminant| 507
             |definingPolynomial| 511 |coordinates| 515
             |branchPointAtInfinity?| 520 |branchPoint?| 524 |basis|
             534 |Zero| 538)
          'NIL
          (CONS (|makeByteWordVec2| 16
                    '(0 0 3 3 5 5 5 4 0 5 0 5 4 0 0 4 4 4 0 0 0 1 2 4 4
                      4 16 14 7 0 0 0 4 0 0 0 0 0 4 4 0 0 0 0 0 0 0 0 6
                      3 0 0 0 0 0 0 0 0 4 4 4 8 9))
                (CONS '#(|FunctionFieldCategory&| |MonogenicAlgebra&|
                         |FiniteFieldCategory&|
                         |FieldOfPrimeCharacteristic&| |Field&|
                         |EuclideanDomain&| NIL
                         |UniqueFactorizationDomain&| |FramedAlgebra&|
                         |GcdDomain&| |FiniteRankAlgebra&|
                         |IntegralDomain&| |DivisionRing&| |Algebra&|
                         |FullyLinearlyExplicitRingOver&| |Algebra&|
                         |Algebra&| |DifferentialExtension&| NIL NIL
                         |Module&| NIL NIL |Module&| NIL |Module&|
                         |DifferentialRing&| |PartialDifferentialRing&|
                         NIL NIL |Ring&| NIL NIL NIL NIL NIL NIL NIL
                         NIL NIL |AbelianGroup&| NIL NIL
                         |AbelianMonoid&| |Monoid&| NIL |SemiGroup&|
                         |AbelianSemiGroup&| |Finite&| NIL
                         |FullyRetractableTo&| |SetCategory&|
                         |RetractableTo&| NIL NIL NIL |BasicType&| NIL
                         NIL NIL NIL |RetractableTo&| |RetractableTo&|)
                      (CONS '#((|FunctionFieldCategory| 6 7 8)
                               (|MonogenicAlgebra| (|Fraction| 7) 8)
                               (|FiniteFieldCategory|)
                               (|FieldOfPrimeCharacteristic|) (|Field|)
                               (|EuclideanDomain|)
                               (|PrincipalIdealDomain|)
                               (|UniqueFactorizationDomain|)
                               (|FramedAlgebra| (|Fraction| 7) 8)
                               (|GcdDomain|)
                               (|FiniteRankAlgebra| (|Fraction| 7) 8)
                               (|IntegralDomain|) (|DivisionRing|)
                               (|Algebra| (|Fraction| 7))
                               (|FullyLinearlyExplicitRingOver|
                                   (|Fraction| 7))
                               (|Algebra| $$) (|Algebra| 160)
                               (|DifferentialExtension| (|Fraction| 7))
                               (|LinearlyExplicitRingOver|
                                   (|Fraction| 7))
                               (|CommutativeRing|)
                               (|Module| (|Fraction| 7))
                               (|CharacteristicNonZero|)
                               (|CharacteristicZero|) (|Module| $$)
                               (|EntireRing|) (|Module| 160)
                               (|DifferentialRing|)
                               (|PartialDifferentialRing| 158)
                               (|LinearlyExplicitRingOver| 37)
                               (|BiModule| $$ $$) (|Ring|)
                               (|BiModule| (|Fraction| 7)
                                   (|Fraction| 7))
                               (|BiModule| 160 160) (|RightModule| $$)
                               (|Rng|) (|RightModule| (|Fraction| 7))
                               (|LeftModule| (|Fraction| 7))
                               (|LeftModule| $$) (|LeftModule| 160)
                               (|RightModule| 160) (|AbelianGroup|)
                               (|CancellationAbelianMonoid|)
                               (|SemiRing|) (|AbelianMonoid|)
                               (|Monoid|) (|SemiRng|) (|SemiGroup|)
                               (|AbelianSemiGroup|) (|Finite|)
                               (|StepThrough|)
                               (|FullyRetractableTo| (|Fraction| 7))
                               (|SetCategory|)
                               (|RetractableTo| (|Fraction| 7))
                               (|ConvertibleTo| 8) (|CommutativeStar|)
                               (|unitsKnown|) (|BasicType|)
                               (|CoercibleTo| 191) (|noZeroDivisors|)
                               (|canonicalUnitNormal|)
                               (|canonicalsClosed|)
                               (|RetractableTo| 160)
                               (|RetractableTo| 37))
                            (|makeByteWordVec2| 156
                                '(0 11 0 12 2 8 0 11 13 14 1 8 0 11 15
                                  2 8 0 0 0 16 1 18 0 17 19 0 11 0 21 1
                                  22 0 11 23 0 7 0 25 1 26 0 7 27 2 31
                                  0 13 11 32 1 31 37 0 38 1 18 17 0 40
                                  1 22 11 0 41 1 26 7 0 43 1 47 0 31 48
                                  2 7 6 0 6 54 1 6 17 0 55 1 7 13 0 57
                                  2 13 58 0 0 59 2 31 11 0 37 64 1 0 0
                                  8 65 2 66 7 0 37 67 2 11 0 7 7 68 2
                                  11 0 0 0 69 1 0 0 31 70 1 0 31 0 72 2
                                  11 0 0 0 73 1 75 74 31 76 2 11 0 0 78
                                  79 2 11 0 13 0 80 2 11 0 37 0 81 2 11
                                  0 0 0 82 1 83 0 66 84 1 7 87 0 88 2 7
                                  0 0 13 89 2 7 0 0 0 90 0 7 0 91 2 92
                                  0 13 7 93 0 0 0 94 0 6 0 95 0 8 0 96
                                  0 97 0 98 1 97 7 0 99 1 97 101 0 102
                                  1 92 37 0 103 2 37 17 0 0 104 2 101
                                  105 106 0 107 0 6 0 108 2 7 0 6 13
                                  109 1 11 0 7 110 1 11 0 0 111 2 7 112
                                  112 112 113 2 115 114 11 13 116 3 31
                                  11 0 37 11 117 1 8 13 0 118 1 11 7 0
                                  119 2 122 120 121 8 123 0 0 44 124 1
                                  83 17 0 125 1 83 37 0 126 1 83 37 0
                                  127 1 83 37 0 128 1 83 37 0 129 3 83
                                  7 0 37 37 130 2 11 0 7 0 131 0 132 0
                                  133 1 115 134 8 135 2 18 17 0 17 136
                                  0 6 13 137 2 11 0 0 13 138 2 11 0 0
                                  37 139 1 11 7 0 140 1 7 0 0 141 1 11
                                  7 0 142 2 22 11 0 11 143 2 26 7 0 7
                                  144 1 7 145 0 146 2 7 58 0 0 148 2 7
                                  0 0 150 151 1 7 0 6 155 2 7 0 0 0 156
                                  1 0 17 6 147 1 0 17 7 152 1 0 0 31 70
                                  1 0 0 8 65 1 0 17 6 56 1 0 17 7 149 0
                                  0 47 52 0 0 47 51 2 0 0 66 7 71 0 0
                                  47 50 0 0 47 49 1 0 85 78 86 1 0 74 0
                                  77 0 0 44 46 0 0 44 45 0 0 61 63 0 0
                                  61 62 0 0 11 42 0 0 8 53 1 0 31 0 72
                                  0 0 17 60 1 0 17 6 153 1 0 17 7 154 0
                                  0 44 124 0 0 0 94)))))
          '|lookupIncomplete|)) 
