
(/VERSIONCHECK 2) 

(DEFUN |INTHERTR;HermiteIntegrate;FMR;1| (|f| |derivation| $)
  (PROG (|rec| |hi| |qr|)
    (RETURN
      (SEQ (LETT |rec| (SPADCALL |f| |derivation| (QREFELT $ 12))
                 . #0=(|INTHERTR;HermiteIntegrate;FMR;1|))
           (LETT |hi|
                 (|INTHERTR;normalHermiteIntegrate| (QVELT |rec| 1)
                     |derivation| $) . #0#)
           (LETT |qr|
                 (SPADCALL (QVELT |hi| 1) (QVELT |hi| 2)
                     (QREFELT $ 14)) . #0#)
           (EXIT (VECTOR (QVELT |hi| 0)
                         (SPADCALL (QCDR |qr|) (QVELT |hi| 2)
                             (QREFELT $ 15))
                         (QVELT |rec| 2)
                         (SPADCALL (QCAR |qr|) (QVELT |rec| 0)
                             (QREFELT $ 16)))))))) 

(DEFUN |INTHERTR;normalHermiteIntegrate| (|f| |derivation| $)
  (PROG (|q| |g0| |qhat| |qbar| |g| |qbarhat| |qtil| #0=#:G1839 |bc|
             |qr| #1=#:G1831 |a| |p| |mult|)
    (RETURN
      (SEQ (LETT |a| (SPADCALL |f| (QREFELT $ 19))
                 . #2=(|INTHERTR;normalHermiteIntegrate|))
           (LETT |q| (SPADCALL |f| (QREFELT $ 20)) . #2#)
           (LETT |p| (|spadConstant| $ 21) . #2#)
           (LETT |mult| (|spadConstant| $ 22) . #2#)
           (LETT |qhat|
                 (PROG2 (LETT #1#
                              (SPADCALL |q|
                                  (LETT |g0|
                                        (LETT |g|
                                         (SPADCALL |q|
                                          (SPADCALL |q| (QREFELT $ 23))
                                          (QREFELT $ 24)) . #2#) . #2#)
                                  (QREFELT $ 26)) . #2#)
                        (QCDR #1#)
                   (|check-union| (QEQCAR #1# 0) (QREFELT $ 7) #1#)) . #2#)
           (SEQ G190
                (COND
                  ((NULL (< 0
                            (SPADCALL (LETT |qbar| |g| . #2#)
                                (QREFELT $ 30))))
                   (GO G191)))
                (SEQ (LETT |qbarhat|
                           (PROG2 (LETT #1#
                                        (SPADCALL |qbar|
                                         (LETT |g|
                                          (SPADCALL |qbar|
                                           (SPADCALL |qbar|
                                            (QREFELT $ 23))
                                           (QREFELT $ 24)) . #2#)
                                         (QREFELT $ 26)) . #2#)
                                  (QCDR #1#)
                             (|check-union| (QEQCAR #1# 0)
                                 (QREFELT $ 7) #1#)) . #2#)
                     (LETT |qtil|
                           (SPADCALL
                               (PROG2 (LETT #1#
                                       (SPADCALL
                                        (SPADCALL |qhat|
                                         (SPADCALL |qbar| |derivation|)
                                         (QREFELT $ 31))
                                        |qbar| (QREFELT $ 26)) . #2#)
                                      (QCDR #1#)
                                 (|check-union| (QEQCAR #1# 0)
                                     (QREFELT $ 7) #1#))
                               (QREFELT $ 32)) . #2#)
                     (LETT |bc|
                           (PROG2 (LETT #0#
                                        (SPADCALL |qtil| |qbarhat| |a|
                                         (QREFELT $ 35)) . #2#)
                                  (QCDR #0#)
                             (|check-union| (QEQCAR #0# 0)
                                 (|Record| (|:| |coef1| (QREFELT $ 7))
                                     (|:| |coef2| (QREFELT $ 7)))
                                 #0#)) . #2#)
                     (LETT |qr|
                           (SPADCALL (QCAR |bc|) |qbarhat|
                               (QREFELT $ 14)) . #2#)
                     (LETT |a|
                           (SPADCALL
                               (SPADCALL (QCDR |bc|)
                                   (SPADCALL |qtil| (QCAR |qr|)
                                    (QREFELT $ 31))
                                   (QREFELT $ 16))
                               (SPADCALL
                                   (SPADCALL (QCDR |qr|) |derivation|)
                                   (PROG2
                                    (LETT #1#
                                     (SPADCALL |qhat| |qbarhat|
                                      (QREFELT $ 26)) . #2#)
                                    (QCDR #1#)
                                     (|check-union| (QEQCAR #1# 0)
                                      (QREFELT $ 7) #1#))
                                   (QREFELT $ 31))
                               (QREFELT $ 36)) . #2#)
                     (LETT |p|
                           (SPADCALL |p|
                               (SPADCALL |mult| (QCDR |qr|)
                                   (QREFELT $ 31))
                               (QREFELT $ 16)) . #2#)
                     (EXIT (LETT |mult|
                                 (SPADCALL |mult| |qbarhat|
                                     (QREFELT $ 31)) . #2#)))
                NIL (GO G190) G191 (EXIT NIL))
           (EXIT (VECTOR (SPADCALL |p| |g0| (QREFELT $ 15)) |a| |qhat|)))))) 

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

(DEFUN |TranscendentalHermiteIntegration;| (|#1| |#2|)
  (PROG (DV$1 DV$2 |dv$| $ |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|)
              . #0=(|TranscendentalHermiteIntegration|))
        (LETT DV$2 (|devaluate| |#2|) . #0#)
        (LETT |dv$|
              (LIST '|TranscendentalHermiteIntegration| DV$1 DV$2) . #0#)
        (LETT $ (GETREFV 37) . #0#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
        (|haddProp| |$ConstructorCache|
            '|TranscendentalHermiteIntegration| (LIST DV$1 DV$2)
            (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        (QSETREFV $ 7 |#2|)
        $)))) 

(MAKEPROP '|TranscendentalHermiteIntegration| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
             (|Record| (|:| |poly| 7) (|:| |normal| 9)
                 (|:| |special| 9))
             (|Fraction| 7) (|Mapping| 7 7)
             (|MonomialExtensionTools| 6 7) (0 . |decompose|)
             (|Record| (|:| |quotient| $) (|:| |remainder| $))
             (6 . |divide|) (12 . /) (18 . +)
             (|Record| (|:| |answer| 9) (|:| |logpart| 9)
                 (|:| |specpart| 9) (|:| |polypart| 7))
             |INTHERTR;HermiteIntegrate;FMR;1| (24 . |numer|)
             (29 . |denom|) (34 . |Zero|) (38 . |One|)
             (42 . |differentiate|) (47 . |gcd|) (|Union| $ '"failed")
             (53 . |exquo|) (59 . |Zero|) (63 . |Zero|)
             (|NonNegativeInteger|) (67 . |degree|) (72 . *) (78 . -)
             (|Record| (|:| |coef1| $) (|:| |coef2| $))
             (|Union| 33 '"failed") (83 . |extendedEuclidean|)
             (90 . -))
          '#(|HermiteIntegrate| 96) 'NIL
          (CONS (|makeByteWordVec2| 1 'NIL)
                (CONS '#()
                      (CONS '#()
                            (|makeByteWordVec2| 36
                                '(2 11 8 9 10 12 2 7 13 0 0 14 2 9 0 7
                                  7 15 2 7 0 0 0 16 1 9 7 0 19 1 9 7 0
                                  20 0 7 0 21 0 7 0 22 1 7 0 0 23 2 7 0
                                  0 0 24 2 7 25 0 0 26 0 6 0 27 0 9 0
                                  28 1 7 29 0 30 2 7 0 0 0 31 1 7 0 0
                                  32 3 7 34 0 0 0 35 2 7 0 0 0 36 2 0
                                  17 9 10 18)))))
          '|lookupComplete|)) 
