
(/VERSIONCHECK 2) 

(DEFUN |TANEXP;m1toN| (|n| $) (COND ((ODDP |n|) -1) ('T 1))) 

(DEFUN |TANEXP;tanAn;RPiSup;2| (|a| |n| $)
  (PROG (|q|)
    (RETURN
      (SPADCALL
          (SPADCALL |a|
              (SPADCALL
                  (LETT |q| (|TANEXP;tanPIa| |n| $)
                        |TANEXP;tanAn;RPiSup;2|)
                  (QREFELT $ 10))
              (QREFELT $ 11))
          (SPADCALL |q| (QREFELT $ 12)) (QREFELT $ 13))))) 

(DEFUN |TANEXP;tanNa;RIR;3| (|a| |n| $)
  (PROG (#0=#:G1825 |t|)
    (RETURN
      (COND
        ((ZEROP |n|) (|spadConstant| $ 16))
        ((MINUSP |n|)
         (SPADCALL (SPADCALL |a| (- |n|) (QREFELT $ 18))
             (QREFELT $ 19)))
        ('T
         (SPADCALL
             (SPADCALL
                 (SPADCALL
                     (LETT |t|
                           (|TANEXP;tanPIa|
                               (PROG1 (LETT #0# |n|
                                       . #1=(|TANEXP;tanNa;RIR;3|))
                                 (|check-subtype| (> #0# 0)
                                     '(|PositiveInteger|) #0#))
                               $) . #1#)
                     (QREFELT $ 12))
                 |a| (QREFELT $ 20))
             (SPADCALL (SPADCALL |t| (QREFELT $ 10)) |a|
                 (QREFELT $ 20))
             (QREFELT $ 21))))))) 

(DEFUN |TANEXP;tanSum;LR;4| (|l| $)
  (PROG (|v| |m| #0=#:G1837 #1=#:G1831 #2=#:G1829 #3=#:G1830 |i|
             #4=#:G1838 #5=#:G1834 #6=#:G1832 #7=#:G1833)
    (RETURN
      (SEQ (LETT |m|
                 (SPADCALL
                     (LETT |v| (SPADCALL |l| (QREFELT $ 25))
                           . #8=(|TANEXP;tanSum;LR;4|))
                     (QREFELT $ 26)) . #8#)
           (EXIT (SPADCALL
                     (PROGN
                       (LETT #3# NIL . #8#)
                       (SEQ (LETT |i| 1 . #8#)
                            (LETT #0# (QUOTIENT2 (QVSIZE |v|) 2) . #8#)
                            G190
                            (COND ((QSGREATERP |i| #0#) #9=(GO G191)))
                            (SEQ (EXIT (PROGN
                                         (LETT #1#
                                          (SPADCALL
                                           (|TANEXP;m1toN| (+ |i| 1) $)
                                           (SPADCALL |v|
                                            (+
                                             (-
                                              (SPADCALL 2 |i|
                                               (QREFELT $ 28))
                                              1)
                                             |m|)
                                            (QREFELT $ 29))
                                           (QREFELT $ 30)) . #8#)
                                         (COND
                                           (#3#
                                            (LETT #2#
                                             (SPADCALL #2# #1#
                                              (QREFELT $ 31)) . #8#))
                                           ('T
                                            (PROGN
                                              (LETT #2# #1# . #8#)
                                              (LETT #3# 'T . #8#)))))))
                            (LETT |i| (QSADD1 |i|) . #8#) #10=(GO G190)
                            G191 (EXIT NIL))
                       (COND (#3# #2#) (#11='T (|spadConstant| $ 16))))
                     (PROGN
                       (LETT #7# NIL . #8#)
                       (SEQ (LETT |i| 0 . #8#)
                            (LETT #4#
                                  (QUOTIENT2 (- (QVSIZE |v|) 1) 2) . #8#)
                            G190 (COND ((QSGREATERP |i| #4#) #9#))
                            (SEQ (EXIT (PROGN
                                         (LETT #5#
                                          (SPADCALL
                                           (|TANEXP;m1toN| |i| $)
                                           (SPADCALL |v|
                                            (+
                                             (SPADCALL 2 |i|
                                              (QREFELT $ 28))
                                             |m|)
                                            (QREFELT $ 29))
                                           (QREFELT $ 30)) . #8#)
                                         (COND
                                           (#7#
                                            (LETT #6#
                                             (SPADCALL #6# #5#
                                              (QREFELT $ 31)) . #8#))
                                           ('T
                                            (PROGN
                                              (LETT #6# #5# . #8#)
                                              (LETT #7# 'T . #8#)))))))
                            (LETT |i| (QSADD1 |i|) . #8#) #10# G191
                            (EXIT NIL))
                       (COND (#7# #6#) (#11# (|spadConstant| $ 16))))
                     (QREFELT $ 21))))))) 

(DEFUN |TANEXP;tanPIa| (|n| $)
  (PROG (|v| |m| #0=#:G1847 #1=#:G1841 #2=#:G1839 #3=#:G1840 |i|
             #4=#:G1848 #5=#:G1844 #6=#:G1842 #7=#:G1843)
    (RETURN
      (SEQ (LETT |m|
                 (SPADCALL
                     (LETT |v|
                           (SPADCALL
                               (SPADCALL (|spadConstant| $ 7) 1
                                   (QREFELT $ 34))
                               |n| (QREFELT $ 37))
                           . #8=(|TANEXP;tanPIa|))
                     (QREFELT $ 38)) . #8#)
           (EXIT (SPADCALL
                     (PROGN
                       (LETT #3# NIL . #8#)
                       (SEQ (LETT |i| 1 . #8#)
                            (LETT #0# (QUOTIENT2 (QVSIZE |v|) 2) . #8#)
                            G190
                            (COND ((QSGREATERP |i| #0#) #9=(GO G191)))
                            (SEQ (EXIT (PROGN
                                         (LETT #1#
                                          (SPADCALL
                                           (|TANEXP;m1toN| (+ |i| 1) $)
                                           (SPADCALL |v|
                                            (+
                                             (-
                                              (SPADCALL 2 |i|
                                               (QREFELT $ 28))
                                              1)
                                             |m|)
                                            (QREFELT $ 39))
                                           (QREFELT $ 40)) . #8#)
                                         (COND
                                           (#3#
                                            (LETT #2#
                                             (SPADCALL #2# #1#
                                              (QREFELT $ 41)) . #8#))
                                           ('T
                                            (PROGN
                                              (LETT #2# #1# . #8#)
                                              (LETT #3# 'T . #8#)))))))
                            (LETT |i| (QSADD1 |i|) . #8#) #10=(GO G190)
                            G191 (EXIT NIL))
                       (COND (#3# #2#) (#11='T (|spadConstant| $ 42))))
                     (PROGN
                       (LETT #7# NIL . #8#)
                       (SEQ (LETT |i| 0 . #8#)
                            (LETT #4#
                                  (QUOTIENT2 (- (QVSIZE |v|) 1) 2) . #8#)
                            G190 (COND ((QSGREATERP |i| #4#) #9#))
                            (SEQ (EXIT (PROGN
                                         (LETT #5#
                                          (SPADCALL
                                           (|TANEXP;m1toN| |i| $)
                                           (SPADCALL |v|
                                            (+
                                             (SPADCALL 2 |i|
                                              (QREFELT $ 28))
                                             |m|)
                                            (QREFELT $ 39))
                                           (QREFELT $ 40)) . #8#)
                                         (COND
                                           (#7#
                                            (LETT #6#
                                             (SPADCALL #6# #5#
                                              (QREFELT $ 41)) . #8#))
                                           ('T
                                            (PROGN
                                              (LETT #6# #5# . #8#)
                                              (LETT #7# 'T . #8#)))))))
                            (LETT |i| (QSADD1 |i|) . #8#) #10# G191
                            (EXIT NIL))
                       (COND (#7# #6#) (#11# (|spadConstant| $ 42))))
                     (QREFELT $ 43))))))) 

(DEFUN |TangentExpansions| (#0=#:G1849)
  (PROG ()
    (RETURN
      (PROG (#1=#:G1850)
        (RETURN
          (COND
            ((LETT #1#
                   (|lassocShiftWithFunction| (LIST (|devaluate| #0#))
                       (HGET |$ConstructorCache| '|TangentExpansions|)
                       '|domainEqualList|)
                   . #2=(|TangentExpansions|))
             (|CDRwithIncrement| #1#))
            ('T
             (UNWIND-PROTECT
               (PROG1 (|TangentExpansions;| #0#) (LETT #1# T . #2#))
               (COND
                 ((NOT #1#)
                  (HREM |$ConstructorCache| '|TangentExpansions|))))))))))) 

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

(MAKEPROP '|TangentExpansions| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (0 . |One|)
             (|SparseUnivariatePolynomial| 6) (|Fraction| 8)
             (4 . |denom|) (9 . *) (15 . |numer|) (20 . -)
             (|PositiveInteger|) |TANEXP;tanAn;RPiSup;2| (26 . |Zero|)
             (|Integer|) |TANEXP;tanNa;RIR;3| (30 . -) (35 . |elt|)
             (41 . /) (|Vector| 6) (|List| 6) (|SymmetricFunctions| 6)
             (47 . |symFunc|) (52 . |minIndex|) (|NonNegativeInteger|)
             (57 . *) (63 . |elt|) (69 . *) (75 . +)
             |TANEXP;tanSum;LR;4| (81 . |One|) (85 . |monomial|)
             (|Vector| 8) (|SymmetricFunctions| 8) (91 . |symFunc|)
             (97 . |minIndex|) (102 . |elt|) (108 . *) (114 . +)
             (120 . |Zero|) (124 . /))
          '#(|tanSum| 130 |tanNa| 135 |tanAn| 141) 'NIL
          (CONS (|makeByteWordVec2| 1 'NIL)
                (CONS '#()
                      (CONS '#()
                            (|makeByteWordVec2| 43
                                '(0 6 0 7 1 9 8 0 10 2 8 0 6 0 11 1 9 8
                                  0 12 2 8 0 0 0 13 0 6 0 16 1 6 0 0 19
                                  2 8 6 0 6 20 2 6 0 0 0 21 1 24 22 23
                                  25 1 22 17 0 26 2 27 0 14 0 28 2 22 6
                                  0 17 29 2 6 0 17 0 30 2 6 0 0 0 31 0
                                  9 0 33 2 8 0 6 27 34 2 36 35 8 14 37
                                  1 35 17 0 38 2 35 8 0 17 39 2 8 0 17
                                  0 40 2 8 0 0 0 41 0 8 0 42 2 9 0 8 8
                                  43 1 0 6 23 32 2 0 6 6 17 18 2 0 8 6
                                  14 15)))))
          '|lookupComplete|)) 
