
(/VERSIONCHECK 2) 

(DEFUN |FSRED;newReduc;V;1| ($)
  (PROG (|k| #0=#:G1823)
    (RETURN
      (SEQ (SEQ (LETT |k| NIL . #1=(|FSRED;newReduc;V;1|))
                (LETT #0#
                      (SPADCALL (QREFELT $ 14) (QREFELT $ 16)) . #1#)
                G190
                (COND
                  ((OR (ATOM #0#)
                       (PROGN (LETT |k| (CAR #0#) . #1#) NIL))
                   (GO G191)))
                (SEQ (EXIT (SPADCALL |k| (QREFELT $ 14) (QREFELT $ 19))))
                (LETT #0# (CDR #0#) . #1#) (GO G190) G191 (EXIT NIL))
           (EXIT (SPADCALL (QREFELT $ 21))))))) 

(DEFUN |FSRED;bringDown;FKSup;2| (|f| |k| $)
  (PROG (|ff| |m| |bc|)
    (RETURN
      (SEQ (LETT |ff| (SPADCALL |f| |k| (QREFELT $ 25))
                 . #0=(|FSRED;bringDown;FKSup;2|))
           (LETT |bc|
                 (SPADCALL
                     (SPADCALL (ELT $ 27)
                         (SPADCALL |ff| (QREFELT $ 30)) (QREFELT $ 34))
                     (LETT |m|
                           (SPADCALL (ELT $ 27)
                               (SPADCALL |k| (QREFELT $ 36))
                               (QREFELT $ 34)) . #0#)
                     (|spadConstant| $ 37) (QREFELT $ 40)) . #0#)
           (EXIT (COND
                   ((QEQCAR |bc| 1) (|error| "denominator is 0"))
                   ('T
                    (SPADCALL
                        (SPADCALL
                            (SPADCALL (ELT $ 27)
                                (SPADCALL |ff| (QREFELT $ 41))
                                (QREFELT $ 34))
                            (QCAR (QCDR |bc|)) (QREFELT $ 42))
                        |m| (QREFELT $ 43))))))))) 

(DEFUN |FSRED;bringDown;FF;3| (|f| $)
  (PROG (|lk| #0=#:G1837 |k| #1=#:G1838)
    (RETURN
      (SEQ (SPADCALL
               (SPADCALL |f|
                   (LETT |lk| (SPADCALL |f| (QREFELT $ 46))
                         . #2=(|FSRED;bringDown;FF;3|))
                   (PROGN
                     (LETT #0# NIL . #2#)
                     (SEQ (LETT |k| NIL . #2#) (LETT #1# |lk| . #2#)
                          G190
                          (COND
                            ((OR (ATOM #1#)
                                 (PROGN
                                   (LETT |k| (CAR #1#) . #2#)
                                   NIL))
                             (GO G191)))
                          (SEQ (EXIT (LETT #0#
                                      (CONS (|FSRED;K2Z| |k| $) #0#) . #2#)))
                          (LETT #1# (CDR #1#) . #2#) (GO G190) G191
                          (EXIT (NREVERSE0 #0#))))
                   (QREFELT $ 48))
               (QREFELT $ 49)))))) 

(DEFUN |FSRED;K2Z| (|k| $)
  (PROG (|u|)
    (RETURN
      (SEQ (COND
             ((SPADCALL (SPADCALL |k| (QREFELT $ 51)) (QREFELT $ 11)
                  (QREFELT $ 53))
              (|error| "Cannot reduce constant field"))
             ('T
              (SEQ (LETT |u|
                         (SPADCALL |k| (QREFELT $ 14) (QREFELT $ 54))
                         |FSRED;K2Z|)
                   (EXIT (COND
                           ((QEQCAR |u| 1)
                            (SPADCALL
                                (SPADCALL (QREFELT $ 14) |k| (|random|)
                                    (QREFELT $ 56))
                                (QREFELT $ 57)))
                           ('T (SPADCALL (QCDR |u|) (QREFELT $ 57)))))))))))) 

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

(DEFUN |FunctionSpaceReduce;| (|#1| |#2|)
  (PROG (DV$1 DV$2 |dv$| $ |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|) . #0=(|FunctionSpaceReduce|))
        (LETT DV$2 (|devaluate| |#2|) . #0#)
        (LETT |dv$| (LIST '|FunctionSpaceReduce| DV$1 DV$2) . #0#)
        (LETT $ (GETREFV 58) . #0#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
        (|haddProp| |$ConstructorCache| '|FunctionSpaceReduce|
            (LIST DV$1 DV$2) (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        (QSETREFV $ 7 |#2|)
        (QSETREFV $ 11 (SPADCALL "%alg" (QREFELT $ 10)))
        (QSETREFV $ 14 (SPADCALL (QREFELT $ 13)))
        $)))) 

(MAKEPROP '|FunctionSpaceReduce| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
             (|String|) (|Symbol|) (0 . |coerce|) 'ALGOP
             (|AssociationList| 18 55) (5 . |table|) '|redmap|
             (|List| 18) (9 . |keys|) (|Union| 55 '"failed")
             (|Kernel| 7) (14 . |remove!|) (|Void|) (20 . |void|)
             |FSRED;newReduc;V;1| (|Fraction| 35) (|Kernel| $)
             (24 . |univariate|) (|Fraction| 55) |FSRED;bringDown;FF;3|
             (|SparseUnivariatePolynomial| 7) (|Fraction| 28)
             (30 . |denom|) (|SparseUnivariatePolynomial| 26)
             (|Mapping| 26 7)
             (|SparseUnivariatePolynomialFunctions2| 7 26) (35 . |map|)
             (|SparseUnivariatePolynomial| $) (41 . |minPoly|)
             (46 . |One|) (|Record| (|:| |coef1| $) (|:| |coef2| $))
             (|Union| 38 '"failed") (50 . |extendedEuclidean|)
             (57 . |numer|) (62 . *) (68 . |rem|)
             |FSRED;bringDown;FKSup;2| (|List| 24) (74 . |kernels|)
             (|List| $) (79 . |eval|) (86 . |retract|)
             (|BasicOperator|) (91 . |operator|) (|Boolean|)
             (96 . |has?|) (102 . |search|) (|Integer|)
             (108 . |setelt|) (115 . |coerce|))
          '#(|newReduc| 120 |bringDown| 124) 'NIL
          (CONS (|makeByteWordVec2| 1 'NIL)
                (CONS '#()
                      (CONS '#()
                            (|makeByteWordVec2| 57
                                '(1 9 0 8 10 0 12 0 13 1 12 15 0 16 2
                                  12 17 18 0 19 0 20 0 21 2 7 23 0 24
                                  25 1 29 28 0 30 2 33 31 32 28 34 1 7
                                  35 24 36 0 31 0 37 3 31 39 0 0 0 40 1
                                  29 28 0 41 2 31 0 0 0 42 2 31 0 0 0
                                  43 1 7 45 0 46 3 7 0 0 45 47 48 1 7
                                  26 0 49 1 18 50 0 51 2 50 52 0 9 53 2
                                  12 17 18 0 54 3 12 55 0 18 55 56 1 7
                                  0 55 57 0 0 20 22 1 0 26 7 27 2 0 31
                                  7 18 44)))))
          '|lookupComplete|)) 
