
(/VERSIONCHECK 2) 

(DEFUN |HACKPI;pi;$;1| ($)
  (SPADCALL (SPADCALL 1 1 (QREFELT $ 16)) (QREFELT $ 17))) 

(PUT '|HACKPI;convert;$F;2| '|SPADreplace| '(XLAM (|x|) |x|)) 

(DEFUN |HACKPI;convert;$F;2| (|x| $) |x|) 

(DEFUN |HACKPI;convert;$F;3| (|x| $) (SPADCALL |x| (QREFELT $ 21))) 

(DEFUN |HACKPI;convert;$Df;4| (|x| $) (SPADCALL |x| (QREFELT $ 24))) 

(DEFUN |HACKPI;coerce;$Df;5| (|x| $)
  (/ (|HACKPI;p2sf| (SPADCALL |x| (QREFELT $ 26)) $)
     (|HACKPI;p2sf| (SPADCALL |x| (QREFELT $ 27)) $))) 

(DEFUN |HACKPI;coerce;$F;6| (|x| $)
  (SPADCALL (|HACKPI;p2f| (SPADCALL |x| (QREFELT $ 26)) $)
      (|HACKPI;p2f| (SPADCALL |x| (QREFELT $ 27)) $) (QREFELT $ 28))) 

(DEFUN |HACKPI;p2o| (|p| $)
  (SPADCALL |p| (SPADCALL (QREFELT $ 10) (QREFELT $ 30))
      (QREFELT $ 31))) 

(DEFUN |HACKPI;p2i| (|p| $)
  (SPADCALL (|HACKPI;p2p| |p| $) (QREFELT $ 34))) 

(DEFUN |HACKPI;p2p| (|p| $)
  (PROG (|ans|)
    (RETURN
      (SEQ (LETT |ans| (|spadConstant| $ 35) . #0=(|HACKPI;p2p|))
           (SEQ G190
                (COND
                  ((NULL (COND
                           ((SPADCALL |p| (|spadConstant| $ 38)
                                (QREFELT $ 40))
                            'NIL)
                           ('T 'T)))
                   (GO G191)))
                (SEQ (LETT |ans|
                           (SPADCALL |ans|
                               (SPADCALL
                                   (SPADCALL
                                    (SPADCALL |p| (QREFELT $ 41))
                                    (QREFELT $ 42))
                                   (QREFELT $ 10)
                                   (SPADCALL |p| (QREFELT $ 43))
                                   (QREFELT $ 44))
                               (QREFELT $ 45)) . #0#)
                     (EXIT (LETT |p|
                                 (SPADCALL |p| (QREFELT $ 46)) . #0#)))
                NIL (GO G190) G191 (EXIT NIL))
           (EXIT |ans|))))) 

(DEFUN |HACKPI;coerce;$Of;10| (|x| $)
  (PROG (|r|)
    (RETURN
      (SEQ (LETT |r| (SPADCALL |x| (QREFELT $ 48))
                 |HACKPI;coerce;$Of;10|)
           (EXIT (COND
                   ((QEQCAR |r| 0) (|HACKPI;p2o| (QCDR |r|) $))
                   ('T
                    (SPADCALL
                        (|HACKPI;p2o| (SPADCALL |x| (QREFELT $ 26)) $)
                        (|HACKPI;p2o| (SPADCALL |x| (QREFELT $ 27)) $)
                        (QREFELT $ 49))))))))) 

(DEFUN |HACKPI;convert;$If;11| (|x| $)
  (PROG (|r|)
    (RETURN
      (SEQ (LETT |r| (SPADCALL |x| (QREFELT $ 48))
                 |HACKPI;convert;$If;11|)
           (EXIT (COND
                   ((QEQCAR |r| 0) (|HACKPI;p2i| (QCDR |r|) $))
                   ('T
                    (SPADCALL
                        (|HACKPI;p2i| (SPADCALL |x| (QREFELT $ 26)) $)
                        (|HACKPI;p2i| (SPADCALL |x| (QREFELT $ 27)) $)
                        (QREFELT $ 51))))))))) 

(DEFUN |HACKPI;p2sf| (|p| $)
  (SPADCALL (SPADCALL (CONS #'|HACKPI;p2sf!0| $) |p| (QREFELT $ 57))
      (FLOAT PI MOST-POSITIVE-DOUBLE-FLOAT) (QREFELT $ 58))) 

(DEFUN |HACKPI;p2sf!0| (|#1| $) (SPADCALL |#1| (QREFELT $ 53))) 

(DEFUN |HACKPI;p2f| (|p| $)
  (SPADCALL (SPADCALL (CONS #'|HACKPI;p2f!0| $) |p| (QREFELT $ 63))
      (SPADCALL (QREFELT $ 64)) (QREFELT $ 65))) 

(DEFUN |HACKPI;p2f!0| (|#1| $) (SPADCALL |#1| (QREFELT $ 59))) 

(DEFUN |Pi| ()
  (PROG ()
    (RETURN
      (PROG (#0=#:G1866)
        (RETURN
          (COND
            ((LETT #0# (HGET |$ConstructorCache| '|Pi|) . #1=(|Pi|))
             (|CDRwithIncrement| (CDAR #0#)))
            ('T
             (UNWIND-PROTECT
               (PROG1 (CDDAR (HPUT |$ConstructorCache| '|Pi|
                                   (LIST (CONS NIL (CONS 1 (|Pi;|))))))
                 (LETT #0# T . #1#))
               (COND ((NOT #0#) (HREM |$ConstructorCache| '|Pi|))))))))))) 

(DEFUN |Pi;| ()
  (PROG (|dv$| $ |pv$|)
    (RETURN
      (PROGN
        (LETT |dv$| '(|Pi|) . #0=(|Pi|))
        (LETT $ (GETREFV 82) . #0#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
        (|haddProp| |$ConstructorCache| '|Pi| NIL (CONS 1 $))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6
            (|Fraction| (|SparseUnivariatePolynomial| (|Integer|))))
        (QSETREFV $ 10 (SPADCALL "%pi" (QREFELT $ 9)))
        $)))) 

(MAKEPROP '|Pi| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL (|Fraction| 15) '|Rep| (|String|)
             (|Symbol|) (0 . |coerce|) '|sympi| (5 . |One|) (9 . |One|)
             (|Integer|) (|NonNegativeInteger|)
             (|SparseUnivariatePolynomial| 13) (13 . |monomial|)
             (19 . |coerce|) |HACKPI;pi;$;1| |HACKPI;convert;$F;2|
             (|Float|) |HACKPI;coerce;$F;6| |HACKPI;convert;$F;3|
             (|DoubleFloat|) |HACKPI;coerce;$Df;5|
             |HACKPI;convert;$Df;4| (24 . |numer|) (29 . |denom|)
             (34 . /) (|OutputForm|) (40 . |coerce|)
             (45 . |outputForm|) (|InputForm|) (|Polynomial| 13)
             (51 . |convert|) (56 . |Zero|) (60 . |Zero|) (64 . |Zero|)
             (68 . |Zero|) (|Boolean|) (72 . =)
             (78 . |leadingCoefficient|) (83 . |coerce|)
             (88 . |degree|) (93 . |monomial|) (100 . +)
             (106 . |reductum|) (|Union| 15 '"failed")
             (111 . |retractIfCan|) (116 . /) |HACKPI;coerce;$Of;10|
             (122 . /) |HACKPI;convert;$If;11| (128 . |coerce|)
             (|SparseUnivariatePolynomial| 23) (|Mapping| 23 13)
             (|SparseUnivariatePolynomialFunctions2| 13 23)
             (133 . |map|) (139 . |elt|) (145 . |coerce|)
             (|SparseUnivariatePolynomial| 20) (|Mapping| 20 13)
             (|SparseUnivariatePolynomialFunctions2| 13 20)
             (150 . |map|) (156 . |pi|) (160 . |elt|) (|Fraction| 13)
             (|Union| 66 '"failed") (|Union| 13 '"failed")
             (|Factored| $) (|Union| 71 '"failed") (|List| $)
             (|Record| (|:| |coef1| $) (|:| |coef2| $)
                 (|:| |generator| $))
             (|Record| (|:| |coef1| $) (|:| |coef2| $))
             (|Union| 73 '"failed")
             (|Record| (|:| |quotient| $) (|:| |remainder| $))
             (|Record| (|:| |coef| 71) (|:| |generator| $))
             (|SparseUnivariatePolynomial| $) (|Union| $ '"failed")
             (|Record| (|:| |unit| $) (|:| |canonical| $)
                 (|:| |associate| $))
             (|PositiveInteger|) (|SingleInteger|))
          '#(~= 166 |zero?| 172 |unitNormal| 177 |unitCanonical| 182
             |unit?| 187 |subtractIfCan| 192 |squareFreePart| 198
             |squareFree| 203 |sizeLess?| 208 |sample| 214
             |retractIfCan| 218 |retract| 228 |rem| 238 |recip| 244
             |quo| 249 |principalIdeal| 255 |prime?| 260 |pi| 265
             |one?| 269 |multiEuclidean| 274 |lcm| 280 |latex| 291
             |inv| 296 |hash| 301 |gcdPolynomial| 306 |gcd| 312
             |factor| 323 |extendedEuclidean| 328 |exquo| 341
             |expressIdealMember| 347 |euclideanSize| 353 |divide| 358
             |convert| 364 |coerce| 384 |characteristic| 414
             |associates?| 418 ^ 424 |Zero| 442 |One| 446 = 450 / 456 -
             462 + 473 ** 479 * 497)
          'NIL
          (CONS (|makeByteWordVec2| 1
                    '(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
                      0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
                (CONS '#(|Field&| |EuclideanDomain&| NIL
                         |UniqueFactorizationDomain&| |GcdDomain&|
                         |DivisionRing&| |IntegralDomain&| |Algebra&|
                         |Algebra&| NIL |Module&| NIL NIL |Module&| NIL
                         NIL |Ring&| NIL NIL NIL NIL NIL
                         |AbelianGroup&| NIL NIL |AbelianMonoid&|
                         |Monoid&| NIL |SemiGroup&| |AbelianSemiGroup&|
                         NIL |SetCategory&| NIL NIL NIL NIL NIL NIL
                         |RetractableTo&| |RetractableTo&| NIL NIL NIL
                         NIL NIL |BasicType&| NIL)
                      (CONS '#((|Field|) (|EuclideanDomain|)
                               (|PrincipalIdealDomain|)
                               (|UniqueFactorizationDomain|)
                               (|GcdDomain|) (|DivisionRing|)
                               (|IntegralDomain|) (|Algebra| 66)
                               (|Algebra| $$) (|CharacteristicZero|)
                               (|Module| 66) (|EntireRing|)
                               (|CommutativeRing|) (|Module| $$)
                               (|BiModule| 66 66) (|BiModule| $$ $$)
                               (|Ring|) (|RightModule| 66)
                               (|LeftModule| 66) (|LeftModule| $$)
                               (|Rng|) (|RightModule| $$)
                               (|AbelianGroup|)
                               (|CancellationAbelianMonoid|)
                               (|SemiRing|) (|AbelianMonoid|)
                               (|Monoid|) (|SemiRng|) (|SemiGroup|)
                               (|AbelianSemiGroup|) (|RealConstant|)
                               (|SetCategory|) (|ConvertibleTo| 32)
                               (|ConvertibleTo| 5) (|CoercibleTo| 20)
                               (|CoercibleTo| 23) (|ConvertibleTo| 20)
                               (|ConvertibleTo| 23)
                               (|RetractableTo| 66)
                               (|RetractableTo| 13)
                               (|canonicalsClosed|)
                               (|canonicalUnitNormal|)
                               (|noZeroDivisors|) (|CommutativeStar|)
                               (|unitsKnown|) (|BasicType|)
                               (|CoercibleTo| 29))
                            (|makeByteWordVec2| 81
                                '(1 8 0 7 9 0 0 0 11 0 6 0 12 2 15 0 13
                                  14 16 1 5 0 15 17 1 6 15 0 26 1 6 15
                                  0 27 2 20 0 0 0 28 1 8 29 0 30 2 15
                                  29 0 29 31 1 33 32 0 34 0 33 0 35 0 0
                                  0 36 0 6 0 37 0 15 0 38 2 15 39 0 0
                                  40 1 15 13 0 41 1 33 0 13 42 1 15 14
                                  0 43 3 33 0 0 8 14 44 2 33 0 0 0 45 1
                                  15 0 0 46 1 6 47 0 48 2 29 0 0 0 49 2
                                  32 0 0 0 51 1 23 0 13 53 2 56 54 55
                                  15 57 2 54 23 0 23 58 1 20 0 13 59 2
                                  62 60 61 15 63 0 20 0 64 2 60 20 0 20
                                  65 2 0 39 0 0 1 1 0 39 0 1 1 0 79 0 1
                                  1 0 0 0 1 1 0 39 0 1 2 0 78 0 0 1 1 0
                                  0 0 1 1 0 69 0 1 2 0 39 0 0 1 0 0 0 1
                                  1 0 67 0 1 1 0 68 0 1 1 0 66 0 1 1 0
                                  13 0 1 2 0 0 0 0 1 1 0 78 0 1 2 0 0 0
                                  0 1 1 0 76 71 1 1 0 39 0 1 0 0 0 18 1
                                  0 39 0 1 2 0 70 71 0 1 1 0 0 71 1 2 0
                                  0 0 0 1 1 0 7 0 1 1 0 0 0 1 1 0 81 0
                                  1 2 0 77 77 77 1 1 0 0 71 1 2 0 0 0 0
                                  1 1 0 69 0 1 2 0 72 0 0 1 3 0 74 0 0
                                  0 1 2 0 78 0 0 1 2 0 70 71 0 1 1 0 14
                                  0 1 2 0 75 0 0 1 1 0 32 0 52 1 0 5 0
                                  19 1 0 23 0 25 1 0 20 0 22 1 0 20 0
                                  21 1 0 23 0 24 1 0 0 66 1 1 0 0 13 1
                                  1 0 0 0 1 1 0 29 0 50 0 0 14 1 2 0 39
                                  0 0 1 2 0 0 0 13 1 2 0 0 0 14 1 2 0 0
                                  0 80 1 0 0 0 36 0 0 0 11 2 0 39 0 0 1
                                  2 0 0 0 0 1 2 0 0 0 0 1 1 0 0 0 1 2 0
                                  0 0 0 1 2 0 0 0 13 1 2 0 0 0 14 1 2 0
                                  0 0 80 1 2 0 0 66 0 1 2 0 0 0 66 1 2
                                  0 0 0 0 1 2 0 0 13 0 1 2 0 0 14 0 1 2
                                  0 0 80 0 1)))))
          '|lookupComplete|)) 

(MAKEPROP '|Pi| 'NILADIC T) 
