
(/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 (#1=#:G726 |i| #2=#:G725)
    (RETURN
     (SEQ
      (PROGN
       (LETT #2# (GETREFV (QSADD1 #3=(QREFELT $ 29))) . #4=(|RADFF;diag|))
       (SEQ (LETT |i| 0 . #4#) (LETT #1# #3# . #4#) G190
            (COND ((QSGREATERP |i| #1#) (GO G191)))
            (SEQ
             (EXIT
              (SETELT #2# |i|
                      (SPADCALL
                       (SPADCALL
                        (SPADCALL |v| (+ |i| (QREFELT $ 39)) (QREFELT $ 64))
                        |i| (QREFELT $ 14))
                       (QREFELT $ 65)))))
            (LETT |i| (QSADD1 |i|) . #4#) (GO G190) G191 (EXIT NIL))
       #2#))))) 

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

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

(DEFUN |RADFF;integralDerivationMatrix;MR;18| (|d| $)
  (PROG (|cd| #1=#:G750 |i| #2=#:G749 #3=#:G748 |v| |dlogp|)
    (RETURN
     (SEQ
      (LETT |dlogp|
            (SPADCALL (SPADCALL (QREFELT $ 9) |d| (QREFELT $ 79))
                      (SPADCALL (QREFELT $ 10) (QREFELT $ 9) (QREFELT $ 80))
                      (QREFELT $ 73))
            . #4=(|RADFF;integralDerivationMatrix;MR;18|))
      (LETT |v| (|RADFF;basisvec| $) . #4#)
      (LETT |cd|
            (SPADCALL
             (PROGN
              (LETT #3#
                    (GETREFV (QSADD1 (- #5=(QVSIZE |v|) #6=(QREFELT $ 39))))
                    . #4#)
              (SEQ (LETT #2# 0 . #4#) (LETT |i| #6# . #4#) (LETT #1# #5# . #4#)
                   G190 (COND ((> |i| #1#) (GO G191)))
                   (SEQ
                    (EXIT
                     (SETELT #3# #2#
                             (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 #2# (QSADD1 #2#) . #4#))
                         . #4#)
                   (GO G190) G191 (EXIT NIL))
              #3#)
             (QREFELT $ 76))
            . #4#)
      (EXIT (CONS (SPADCALL (QCAR |cd|) (QREFELT $ 84)) (QCDR |cd|))))))) 

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

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

(DEFUN |RADFF;fullVector!0| (|s| $$)
  (PROG (|i| $)
    (LETT |i| (QREFELT $$ 1) . #1=(|RADFF;fullVector|))
    (LETT $ (QREFELT $$ 0) . #1#)
    (RETURN (PROGN (SPADCALL (QCDR |s|) |i| (QREFELT $ 104)))))) 

(DEFUN |RADFF;inftyBasis| (|p| |m| $)
  (PROG (|b| #1=#:G781 |i| |w| |v| |a| |rt| |x|)
    (RETURN
     (SEQ
      (LETT |rt|
            (SPADCALL
             (SPADCALL |p|
                       (LETT |x|
                             (SPADCALL
                              (SPADCALL
                               (SPADCALL (|spadConstant| $ 108) 1
                                         (QREFELT $ 109))
                               (QREFELT $ 110))
                              (QREFELT $ 111))
                             . #2=(|RADFF;inftyBasis|))
                       (QREFELT $ 113))
             |m| (QREFELT $ 116))
            . #2#)
      (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)) . #2#)
      (LETT |b| (|spadConstant| $ 12) . #2#)
      (LETT |v| (|RADFF;iBasis| (QVELT |rt| 2) |m| $) . #2#)
      (LETT |w| (SPADCALL |m| (|spadConstant| $ 21) (QREFELT $ 32)) . #2#)
      (SEQ (LETT |i| (QREFELT $ 39) . #2#) (LETT #1# (QVSIZE |v|) . #2#) G190
           (COND ((> |i| #1#) (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)) . #2#)))
           (LETT |i| (+ |i| 1) . #2#) (GO G190) G191 (EXIT NIL))
      (EXIT |w|))))) 

(DEFUN |RADFF;charPintbas| (|p| |c| |v| |w| $)
  (PROG (|a| #1=#:G790 |i| #2=#:G791 |j| #3=#:G792 |k| |ib| |q|)
    (RETURN
     (SEQ
      (COND
       ((NULL (EQL (SPADCALL |p| (QREFELT $ 118)) (QREFELT $ 10)))
        (|error| "charPintbas: should not happen"))
       ('T
        (SEQ
         (LETT |q| (SPADCALL (ELT $ 119) |p| (QREFELT $ 123))
               . #4=(|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|))))
               . #4#)
         (COND
          ((NULL (SPADCALL (QVELT |ib| 0) (QREFELT $ 125)))
           (EXIT (|error| "charPintbas: integral basis not diagonal"))))
         (LETT |a| (|spadConstant| $ 12) . #4#)
         (SEQ (LETT |k| (QREFELT $ 39) . #4#) (LETT #3# (QVSIZE |v|) . #4#)
              (LETT |j| (SPADCALL (QVELT |ib| 0) (QREFELT $ 128)) . #4#)
              (LETT #2# (SPADCALL (QVELT |ib| 0) (QREFELT $ 129)) . #4#)
              (LETT |i| (SPADCALL (QVELT |ib| 0) (QREFELT $ 126)) . #4#)
              (LETT #1# (SPADCALL (QVELT |ib| 0) (QREFELT $ 127)) . #4#) G190
              (COND ((OR (> |i| #1#) (> |j| #2#) (> |k| #3#)) (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)) . #4#)))
              (LETT |i|
                    (PROG1 (+ |i| 1)
                      (LETT |j| (PROG1 (+ |j| 1) (LETT |k| (+ |k| 1) . #4#))
                            . #4#))
                    . #4#)
              (GO G190) G191 (EXIT NIL))
         (EXIT (SPADCALL (QREFELT $ 133)))))))))) 

(DEFUN |RADFF;charPStartUp| ($)
  (PROG (|r| |invmod| |x|)
    (RETURN
     (SEQ
      (LETT |r| (SPADCALL (QREFELT $ 30) (QREFELT $ 135))
            . #1=(|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))
            . #1#)
      (LETT |invmod|
            (SPADCALL
             (SPADCALL (|spadConstant| $ 12) (QREFELT $ 10) (QREFELT $ 14))
             (SPADCALL (SPADCALL (QREFELT $ 9) |x| (QREFELT $ 113))
                       (QREFELT $ 15))
             (QREFELT $ 16))
            . #1#)
      (LETT |r| (SPADCALL |invmod| (QREFELT $ 135)) . #1#)
      (EXIT
       (|RADFF;charPintbas| (QCDR |r|)
        (SPADCALL (QCAR |r|) |x| (QREFELT $ 113)) (QREFELT $ 35) (QREFELT $ 36)
        $)))))) 

(DEFUN |RADFF;startUp| (|b| $)
  (PROG (|dsc| #1=#:G808 #2=#:G807 #3=#:G809 #4=#:G812 |i| |p|)
    (RETURN
     (SEQ (SPADCALL (QREFELT $ 20) |b| (QREFELT $ 136))
          (COND
           ((OR
             (ZEROP
              (LETT |p| (SPADCALL (QREFELT $ 137)) . #5=(|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 #1# NIL . #5#)
                  (SEQ (LETT |i| (QREFELT $ 39) . #5#)
                       (LETT #4# (QVSIZE (QREFELT $ 33)) . #5#) G190
                       (COND ((> |i| #4#) (GO G191)))
                       (SEQ
                        (EXIT
                         (PROGN
                          (LETT #3#
                                (SPADCALL
                                 (SPADCALL (QREFELT $ 33) |i| (QREFELT $ 64)) 2
                                 (QREFELT $ 139))
                                . #5#)
                          (COND
                           (#1#
                            (LETT #2# (SPADCALL #2# #3# (QREFELT $ 69)) . #5#))
                           ('T
                            (PROGN
                             (LETT #2# #3# . #5#)
                             (LETT #1# 'T . #5#)))))))
                       (LETT |i| (+ |i| 1) . #5#) (GO G190) G191 (EXIT NIL))
                  (COND (#1# #2#) ('T (|spadConstant| $ 12))))
                 (QREFELT $ 69))
                . #5#)
          (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 (|a| |invden| #1=#:G819 |i| |infb| |ib| |rp|)
    (RETURN
     (SEQ
      (LETT |rp| (SPADCALL (QREFELT $ 9) (QREFELT $ 10) (QREFELT $ 116))
            . #2=(|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) $)
            . #2#)
      (LETT |infb| (|RADFF;inftyBasis| (QREFELT $ 9) (QREFELT $ 10) $) . #2#)
      (LETT |invden| (|spadConstant| $ 12) . #2#)
      (SEQ (LETT |i| (QREFELT $ 39) . #2#) (LETT #1# (QVSIZE |ib|) . #2#) G190
           (COND ((> |i| #1#) (GO G191)))
           (SEQ
            (SPADCALL (QREFELT $ 34) |i|
                      (LETT |a|
                            (SPADCALL (SPADCALL |ib| |i| (QREFELT $ 67))
                                      |invden| (QREFELT $ 131))
                            . #2#)
                      (QREFELT $ 117))
            (SPADCALL (QREFELT $ 33) |i| (SPADCALL |a| (QREFELT $ 111))
                      (QREFELT $ 117))
            (LETT |invden| (SPADCALL |invden| (QVELT |rp| 1) (QREFELT $ 73))
                  . #2#)
            (SPADCALL (QREFELT $ 35) |i|
                      (LETT |a| (SPADCALL |infb| |i| (QREFELT $ 64)) . #2#)
                      (QREFELT $ 117))
            (EXIT
             (SPADCALL (QREFELT $ 36) |i| (SPADCALL |a| (QREFELT $ 111))
                       (QREFELT $ 117))))
           (LETT |i| (+ |i| 1) . #2#) (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 (|q| |r|)
    (RETURN
     (SEQ
      (LETT |r| (SPADCALL |p| (QREFELT $ 146))
            . #1=(|RADFF;branchPoint?;UPB;28|))
      (EXIT
       (COND ((QEQCAR |r| 0) (SPADCALL (QCDR |r|) (QREFELT $ 153)))
             (#2='T
              (SEQ
               (LETT |q| (SPADCALL (|RADFF;radcand| $) |p| (QREFELT $ 148))
                     . #1#)
               (EXIT
                (COND
                 ((QEQCAR |q| 0)
                  (QEQCAR (SPADCALL (QCDR |q|) |p| (QREFELT $ 148)) 1))
                 (#2# 'NIL))))))))))) 

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

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

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

(DEFUN |RadicalFunctionField;| (|#1| |#2| |#3| |#4| |#5|)
  (PROG (#1=#:G673 |pv$| #2=#:G896 #3=#:G897 #4=#:G898 $ |dv$| DV$5 DV$4 DV$3
         DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #5=(|RadicalFunctionField|))
      (LETT DV$2 (|devaluate| |#2|) . #5#)
      (LETT DV$3 (|devaluate| |#3|) . #5#)
      (LETT DV$4 (|devaluate| |#4|) . #5#)
      (LETT DV$5 (|devaluate| |#5|) . #5#)
      (LETT |dv$| (LIST '|RadicalFunctionField| DV$1 DV$2 DV$3 DV$4 DV$5)
            . #5#)
      (LETT $ (GETREFV 192) . #5#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3
                (LETT |pv$|
                      (|buildPredVector| 0 0
                                         (LIST
                                          (|HasCategory| (|Fraction| |#2|)
                                                         '(|CharacteristicNonZero|))
                                          (|HasCategory| (|Fraction| |#2|)
                                                         '(|CharacteristicZero|))
                                          (|HasCategory| (|Fraction| |#2|)
                                                         '(|FiniteFieldCategory|))
                                          (LETT #4#
                                                (|HasCategory|
                                                 (|Fraction| |#2|) '(|Field|))
                                                . #5#)
                                          (OR #4#
                                              (|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|))))
                                           #4#)
                                          (LETT #3#
                                                (AND
                                                 (|HasCategory|
                                                  (|Fraction| |#2|)
                                                  '(|PartialDifferentialRing|
                                                    (|Symbol|)))
                                                 (|HasCategory|
                                                  (|Fraction| |#2|)
                                                  '(|Field|)))
                                                . #5#)
                                          (OR #3#
                                              (AND
                                               (|HasCategory| (|Fraction| |#2|)
                                                              '(|PartialDifferentialRing|
                                                                (|Symbol|)))
                                               (|HasCategory| (|Fraction| |#2|)
                                                              '(|FiniteFieldCategory|))))
                                          (LETT #2#
                                                (AND
                                                 (|HasCategory|
                                                  (|Fraction| |#2|)
                                                  '(|DifferentialRing|))
                                                 (|HasCategory|
                                                  (|Fraction| |#2|)
                                                  '(|Field|)))
                                                . #5#)
                                          (OR #2#
                                              (|HasCategory| (|Fraction| |#2|)
                                                             '(|FiniteFieldCategory|)))))
                      . #5#))
      (|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 #1# (- |#5| 1) . #5#)
                  (|check-subtype| (>= #1# 0) '(|NonNegativeInteger|) #1#)))
      (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 '#1="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) (|OnePointCompletion| 150)
              (|Union| 13 '"failed")
              (|Record| (|:| |factor| 37) (|:| |exponent| 37)) (|List| 174)
              (|Union| 44 '"failed") (|Matrix| $) (|Table| 150 13)
              (|Union| '"prime" '"polynomial" '"normal" '"cyclic")
              (|Record| (|:| |mat| 181) (|:| |vec| (|Vector| 37)))
              (|Matrix| 37) (|Union| 160 '#1#) (|Union| 37 '#1#)
              (|List| (|Polynomial| 6)) (|List| (|List| 6))
              (|Record| (|:| |num| $) (|:| |den| 7) (|:| |derivden| 7)
                        (|:| |gd| 7))
              (|Record| (|:| |mat| 47) (|:| |vec| 31)) (|Union| 11 '#1#)
              (|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|)) 
