
(/VERSIONCHECK 2) 

(DEFUN |CLIF;characteristic;Nni;1| ($) (SPADCALL (QREFELT $ 24))) 

(DEFUN |CLIF;dimension| ($) (SPADCALL (QREFELT $ 21) (QREFELT $ 27))) 

(DEFUN |CLIF;=;2$B;3| (|x| |y| $)
  (PROG (#1=#:G1844 #2=#:G1845 |i|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (SEQ (LETT |i| 0 . #3=(|CLIF;=;2$B;3|))
             (LETT #2# (- (QREFELT $ 21) 1) . #3#) G190
             (COND ((QSGREATERP |i| #2#) (GO G191)))
             (SEQ
              (EXIT
               (COND
                ((SPADCALL (QAREF1 |x| |i|) (QAREF1 |y| |i|) (QREFELT $ 28))
                 (PROGN (LETT #1# 'NIL . #3#) (GO #1#))))))
             (LETT |i| (QSADD1 |i|) . #3#) (GO G190) G191 (EXIT NIL))
        (EXIT 'T)))
      #1# (EXIT #1#))))) 

(DEFUN |CLIF;+;3$;4| (|x| |y| $)
  (PROG (#1=#:G1849 |i| |z|)
    (RETURN
     (SEQ
      (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #2=(|CLIF;+;3$;4|))
      (SEQ (LETT |i| 0 . #2#) (LETT #1# (- (QREFELT $ 21) 1) . #2#) G190
           (COND ((QSGREATERP |i| #1#) (GO G191)))
           (SEQ
            (EXIT
             (QSETAREF1 |z| |i|
                        (SPADCALL (QAREF1 |x| |i|) (QAREF1 |y| |i|)
                                  (QREFELT $ 31)))))
           (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191 (EXIT NIL))
      (EXIT |z|))))) 

(DEFUN |CLIF;-;3$;5| (|x| |y| $)
  (PROG (#1=#:G1853 |i| |z|)
    (RETURN
     (SEQ
      (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #2=(|CLIF;-;3$;5|))
      (SEQ (LETT |i| 0 . #2#) (LETT #1# (- (QREFELT $ 21) 1) . #2#) G190
           (COND ((QSGREATERP |i| #1#) (GO G191)))
           (SEQ
            (EXIT
             (QSETAREF1 |z| |i|
                        (SPADCALL (QAREF1 |x| |i|) (QAREF1 |y| |i|)
                                  (QREFELT $ 33)))))
           (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191 (EXIT NIL))
      (EXIT |z|))))) 

(DEFUN |CLIF;-;2$;6| (|x| $)
  (PROG (#1=#:G1857 |i| |z|)
    (RETURN
     (SEQ
      (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #2=(|CLIF;-;2$;6|))
      (SEQ (LETT |i| 0 . #2#) (LETT #1# (- (QREFELT $ 21) 1) . #2#) G190
           (COND ((QSGREATERP |i| #1#) (GO G191)))
           (SEQ
            (EXIT
             (QSETAREF1 |z| |i| (SPADCALL (QAREF1 |x| |i|) (QREFELT $ 35)))))
           (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191 (EXIT NIL))
      (EXIT |z|))))) 

(DEFUN |CLIF;*;I2$;7| (|m| |x| $)
  (PROG (#1=#:G1861 |i| |z|)
    (RETURN
     (SEQ
      (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #2=(|CLIF;*;I2$;7|))
      (SEQ (LETT |i| 0 . #2#) (LETT #1# (- (QREFELT $ 21) 1) . #2#) G190
           (COND ((QSGREATERP |i| #1#) (GO G191)))
           (SEQ
            (EXIT
             (QSETAREF1 |z| |i|
                        (SPADCALL |m| (QAREF1 |x| |i|) (QREFELT $ 38)))))
           (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191 (EXIT NIL))
      (EXIT |z|))))) 

(DEFUN |CLIF;*;K2$;8| (|c| |x| $)
  (PROG (#1=#:G1865 |i| |z|)
    (RETURN
     (SEQ
      (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #2=(|CLIF;*;K2$;8|))
      (SEQ (LETT |i| 0 . #2#) (LETT #1# (- (QREFELT $ 21) 1) . #2#) G190
           (COND ((QSGREATERP |i| #1#) (GO G191)))
           (SEQ
            (EXIT
             (QSETAREF1 |z| |i|
                        (SPADCALL |c| (QAREF1 |x| |i|) (QREFELT $ 40)))))
           (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191 (EXIT NIL))
      (EXIT |z|))))) 

(DEFUN |CLIF;Zero;$;9| ($) (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))) 

(DEFUN |CLIF;One;$;10| ($)
  (PROG (|z|)
    (RETURN
     (SEQ
      (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            |CLIF;One;$;10|)
      (QSETAREF1 |z| 0 (|spadConstant| $ 46)) (EXIT |z|))))) 

(DEFUN |CLIF;coerce;I$;11| (|m| $)
  (PROG (|z|)
    (RETURN
     (SEQ
      (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            |CLIF;coerce;I$;11|)
      (QSETAREF1 |z| 0 (SPADCALL |m| (QREFELT $ 48))) (EXIT |z|))))) 

(DEFUN |CLIF;coerce;K$;12| (|c| $)
  (PROG (|z|)
    (RETURN
     (SEQ
      (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            |CLIF;coerce;K$;12|)
      (QSETAREF1 |z| 0 |c|) (EXIT |z|))))) 

(DEFUN |CLIF;toStringTerm| (|c| |b| $)
  (PROG (|mult| #1=#:G1881 |i|)
    (RETURN
     (SEQ (LETT |mult| (|mathObject2String| |c|) . #2=(|CLIF;toStringTerm|))
          (EXIT
           (COND ((EQL |b| 0) |mult|)
                 ((SPADCALL |c| (|spadConstant| $ 30) (QREFELT $ 51)) "0")
                 ('T
                  (SEQ
                   (COND
                    ((SPADCALL |c| (|spadConstant| $ 46) (QREFELT $ 51))
                     (LETT |mult| "e" . #2#)))
                   (COND
                    ((SPADCALL |c|
                               (SPADCALL (|spadConstant| $ 46) (QREFELT $ 35))
                               (QREFELT $ 51))
                     (LETT |mult| "-e" . #2#)))
                   (COND
                    ((SPADCALL |c| (|spadConstant| $ 46) (QREFELT $ 28))
                     (COND
                      ((SPADCALL |c|
                                 (SPADCALL (|spadConstant| $ 46)
                                           (QREFELT $ 35))
                                 (QREFELT $ 28))
                       (LETT |mult| (STRCONC |mult| "e") . #2#)))))
                   (SEQ (LETT |i| 0 . #2#) (LETT #1# (- (QREFELT $ 6) 1) . #2#)
                        G190 (COND ((QSGREATERP |i| #1#) (GO G191)))
                        (SEQ
                         (EXIT
                          (COND
                           ((SPADCALL |b| |i| (QREFELT $ 52))
                            (LETT |mult|
                                  (STRCONC |mult| (STRINGIMAGE (+ |i| 1)))
                                  . #2#)))))
                        (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191
                        (EXIT NIL))
                   (EXIT |mult|))))))))) 

(DEFUN |CLIF;toString| (|m| $)
  (PROG (|res| |neg| |s| #1=#:G1893 |im|)
    (RETURN
     (SEQ (LETT |res| "" . #2=(|CLIF;toString|))
          (SEQ (LETT |im| 0 . #2#) (LETT #1# (- (QREFELT $ 21) 1) . #2#) G190
               (COND ((QSGREATERP |im| #1#) (GO G191)))
               (SEQ
                (EXIT
                 (COND
                  ((SPADCALL (QAREF1 |m| |im|) (|spadConstant| $ 30)
                             (QREFELT $ 28))
                   (SEQ
                    (LETT |s| (|mathObject2String| (QAREF1 |m| |im|)) . #2#)
                    (LETT |neg| 'NIL . #2#)
                    (COND
                     ((SPADCALL (QCSIZE |s|) 0 (QREFELT $ 53))
                      (LETT |neg|
                            (SPADCALL (SPADCALL |s| 1 (QREFELT $ 59))
                                      (SPADCALL "-" (QREFELT $ 60))
                                      (QREFELT $ 61))
                            . #2#)))
                    (COND
                     ((SPADCALL |res| "" (QREFELT $ 62))
                      (COND
                       ((NULL |neg|)
                        (LETT |res|
                              (SPADCALL
                               (LIST |res| "+"
                                     (|CLIF;toStringTerm| (QAREF1 |m| |im|)
                                      (SPADCALL |im| (QREFELT $ 64)) $))
                               (QREFELT $ 66))
                              . #2#)))))
                    (EXIT
                     (COND
                      ((OR (EQUAL |res| "") |neg|)
                       (LETT |res|
                             (STRCONC |res|
                                      (|CLIF;toStringTerm| (QAREF1 |m| |im|)
                                       (SPADCALL |im| (QREFELT $ 64)) $))
                             . #2#)))))))))
               (LETT |im| (QSADD1 |im|) . #2#) (GO G190) G191 (EXIT NIL))
          (COND ((EQUAL |res| "") (LETT |res| "0" . #2#))) (EXIT |res|))))) 

(DEFUN |CLIF;e;Pi$;15| (|b| $)
  (PROG (|z| |iz| #1=#:G1895)
    (RETURN
     (SEQ
      (COND
       ((SPADCALL |b| (QREFELT $ 6) (QREFELT $ 53))
        (|error| "No such basis element"))
       ('T
        (SEQ
         (LETT |iz|
               (EXPT 2
                     (PROG1 (LETT #1# (- |b| 1) . #2=(|CLIF;e;Pi$;15|))
                       (|check-subtype| (>= #1# 0) '(|NonNegativeInteger|)
                                        #1#)))
               . #2#)
         (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30)) . #2#)
         (QSETAREF1 |z| |iz| (|spadConstant| $ 46)) (EXIT |z|)))))))) 

(DEFUN |CLIF;ee;L$;16| (|l| $)
  (PROG (|lst| #1=#:G1908 |i| #2=#:G1907)
    (RETURN
     (SEQ
      (LETT |lst|
            (PROGN
             (LETT #2# NIL . #3=(|CLIF;ee;L$;16|))
             (SEQ (LETT |i| NIL . #3#) (LETT #1# |l| . #3#) G190
                  (COND
                   ((OR (ATOM #1#) (PROGN (LETT |i| (CAR #1#) . #3#) NIL))
                    (GO G191)))
                  (SEQ
                   (EXIT
                    (LETT #2# (CONS (SPADCALL |i| (QREFELT $ 67)) #2#) . #3#)))
                  (LETT #1# (CDR #1#) . #3#) (GO G190) G191
                  (EXIT (NREVERSE #2#))))
            . #3#)
      (EXIT
       (SPADCALL (ELT $ 68) |lst| (|spadConstant| $ 47) (QREFELT $ 71))))))) 

(DEFUN |CLIF;multivector;L$;17| (|scalar| $)
  (PROG (#1=#:G1920 |i| |z|)
    (RETURN
     (SEQ
      (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #2=(|CLIF;multivector;L$;17|))
      (SEQ (LETT |i| 0 . #2#) (LETT #1# (- (QREFELT $ 21) 1) . #2#) G190
           (COND ((QSGREATERP |i| #1#) (GO G191)))
           (SEQ
            (EXIT
             (QSETAREF1 |z| |i| (SPADCALL |scalar| (+ |i| 1) (QREFELT $ 75)))))
           (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191 (EXIT NIL))
      (EXIT |z|))))) 

(DEFUN |CLIF;eFromBinaryMap;Nni$;18| (|b| $)
  (PROG (|z|)
    (RETURN
     (SEQ
      (COND ((>= |b| (QREFELT $ 21)) (|error| "Too big"))
            ('T
             (SEQ
              (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
                    |CLIF;eFromBinaryMap;Nni$;18|)
              (QSETAREF1 |z| |b| (|spadConstant| $ 46)) (EXIT |z|)))))))) 

(DEFUN |CLIF;ePseudoscalar;$;19| ($)
  (PROG (|i| #1=#:G1923 |p|)
    (RETURN
     (SEQ
      (LETT |p| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #2=(|CLIF;ePseudoscalar;$;19|))
      (LETT |i|
            (PROG1 (LETT #1# (- (QREFELT $ 21) 1) . #2#)
              (|check-subtype| (>= #1# 0) '(|NonNegativeInteger|) #1#))
            . #2#)
      (QSETAREF1 |p| |i| (|spadConstant| $ 46)) (EXIT |p|))))) 

(DEFUN |CLIF;toTable;MM;20| (|fn| $)
  (PROG (#1=#:G1938 |j| #2=#:G1937 #3=#:G1936 |k| #4=#:G1935 |l| #5=#:G1934 |i|
         #6=#:G1933)
    (RETURN
     (SEQ
      (LETT |l|
            (PROGN
             (LETT #6# NIL . #7=(|CLIF;toTable;MM;20|))
             (SEQ (LETT |i| 0 . #7#) (LETT #5# (- (QREFELT $ 21) 1) . #7#) G190
                  (COND ((QSGREATERP |i| #5#) (GO G191)))
                  (SEQ
                   (EXIT
                    (LETT #6# (CONS (SPADCALL |i| (QREFELT $ 77)) #6#) . #7#)))
                  (LETT |i| (QSADD1 |i|) . #7#) (GO G190) G191
                  (EXIT (NREVERSE #6#))))
            . #7#)
      (EXIT
       (SPADCALL
        (PROGN
         (LETT #4# NIL . #7#)
         (SEQ (LETT |k| NIL . #7#) (LETT #3# |l| . #7#) G190
              (COND
               ((OR (ATOM #3#) (PROGN (LETT |k| (CAR #3#) . #7#) NIL))
                (GO G191)))
              (SEQ
               (EXIT
                (LETT #4#
                      (CONS
                       (PROGN
                        (LETT #2# NIL . #7#)
                        (SEQ (LETT |j| NIL . #7#) (LETT #1# |l| . #7#) G190
                             (COND
                              ((OR (ATOM #1#)
                                   (PROGN (LETT |j| (CAR #1#) . #7#) NIL))
                               (GO G191)))
                             (SEQ
                              (EXIT
                               (LETT #2# (CONS (SPADCALL |k| |j| |fn|) #2#)
                                     . #7#)))
                             (LETT #1# (CDR #1#) . #7#) (GO G190) G191
                             (EXIT (NREVERSE #2#))))
                       #4#)
                      . #7#)))
              (LETT #3# (CDR #3#) . #7#) (GO G190) G191 (EXIT (NREVERSE #4#))))
        (QREFELT $ 81))))))) 

(DEFUN |CLIF;toTable;MM;21| (|fn| $)
  (PROG (#1=#:G1950 |k| #2=#:G1949 #3=#:G1948 |j| #4=#:G1947 |l| #5=#:G1946 |i|
         #6=#:G1945)
    (RETURN
     (SEQ
      (LETT |l|
            (PROGN
             (LETT #6# NIL . #7=(|CLIF;toTable;MM;21|))
             (SEQ (LETT |i| 0 . #7#) (LETT #5# (- (QREFELT $ 21) 1) . #7#) G190
                  (COND ((QSGREATERP |i| #5#) (GO G191)))
                  (SEQ
                   (EXIT
                    (LETT #6# (CONS (SPADCALL |i| (QREFELT $ 77)) #6#) . #7#)))
                  (LETT |i| (QSADD1 |i|) . #7#) (GO G190) G191
                  (EXIT (NREVERSE #6#))))
            . #7#)
      (EXIT
       (SPADCALL
        (LIST
         (PROGN
          (LETT #4# NIL . #7#)
          (SEQ (LETT |j| NIL . #7#) (LETT #3# |l| . #7#) G190
               (COND
                ((OR (ATOM #3#) (PROGN (LETT |j| (CAR #3#) . #7#) NIL))
                 (GO G191)))
               (SEQ (EXIT (LETT #4# (CONS |j| #4#) . #7#)))
               (LETT #3# (CDR #3#) . #7#) (GO G190) G191
               (EXIT (NREVERSE #4#))))
         (PROGN
          (LETT #2# NIL . #7#)
          (SEQ (LETT |k| NIL . #7#) (LETT #1# |l| . #7#) G190
               (COND
                ((OR (ATOM #1#) (PROGN (LETT |k| (CAR #1#) . #7#) NIL))
                 (GO G191)))
               (SEQ (EXIT (LETT #2# (CONS (SPADCALL |k| |fn|) #2#) . #7#)))
               (LETT #1# (CDR #1#) . #7#) (GO G190) G191
               (EXIT (NREVERSE #2#)))))
        (QREFELT $ 81))))))) 

(DEFUN |CLIF;gradeTerm| (|b| $)
  (PROG (|grade| #1=#:G1955 |i|)
    (RETURN
     (SEQ (LETT |grade| 0 . #2=(|CLIF;gradeTerm|))
          (SEQ (LETT |i| 0 . #2#) (LETT #1# (- (QREFELT $ 6) 1) . #2#) G190
               (COND ((QSGREATERP |i| #1#) (GO G191)))
               (SEQ
                (EXIT
                 (COND
                  ((SPADCALL |b| |i| (QREFELT $ 52))
                   (LETT |grade| (+ |grade| 1) . #2#)))))
               (LETT |i| (QSADD1 |i|) . #2#) (GO G190) G191 (EXIT NIL))
          (EXIT |grade|))))) 

(DEFUN |CLIF;grade;$Nni;23| (|x| $)
  (PROG (|gr| #1=#:G1960 |ix|)
    (RETURN
     (SEQ (LETT |gr| 0 . #2=(|CLIF;grade;$Nni;23|))
          (SEQ (LETT |ix| 0 . #2#) (LETT #1# (- (QREFELT $ 21) 1) . #2#) G190
               (COND ((QSGREATERP |ix| #1#) (GO G191)))
               (SEQ
                (EXIT
                 (COND
                  ((SPADCALL (QAREF1 |x| |ix|) (|spadConstant| $ 30)
                             (QREFELT $ 28))
                   (LETT |gr|
                         (MAX |gr|
                              (|CLIF;gradeTerm| (SPADCALL |ix| (QREFELT $ 64))
                               $))
                         . #2#)))))
               (LETT |ix| (QSADD1 |ix|) . #2#) (GO G190) G191 (EXIT NIL))
          (EXIT |gr|))))) 

(DEFUN |CLIF;gradeInvolutionTerm| (|mult| |type1| $)
  (PROG (|resul| |sign| |g|)
    (RETURN
     (SEQ
      (LETT |resul| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #1=(|CLIF;gradeInvolutionTerm|))
      (QSETAREF1 |resul| |type1| |mult|)
      (LETT |g| (|CLIF;gradeTerm| |type1| $) . #1#)
      (LETT |sign| (COND ((ODDP |g|) -1) ('T 1)) . #1#)
      (LETT |resul| (SPADCALL |sign| |resul| (QREFELT $ 39)) . #1#)
      (EXIT |resul|))))) 

(DEFUN |CLIF;gradeInvolution;2$;25| (|x| $)
  (PROG (|z| #1=#:G1968 |ix|)
    (RETURN
     (SEQ
      (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #2=(|CLIF;gradeInvolution;2$;25|))
      (SEQ (LETT |ix| 0 . #2#) (LETT #1# (- (QREFELT $ 21) 1) . #2#) G190
           (COND ((QSGREATERP |ix| #1#) (GO G191)))
           (SEQ
            (EXIT
             (COND
              ((SPADCALL (QAREF1 |x| |ix|) (|spadConstant| $ 30)
                         (QREFELT $ 28))
               (LETT |z|
                     (SPADCALL |z|
                               (|CLIF;gradeInvolutionTerm| (QAREF1 |x| |ix|)
                                (SPADCALL |ix| (QREFELT $ 64)) $)
                               (QREFELT $ 32))
                     . #2#)))))
           (LETT |ix| (QSADD1 |ix|) . #2#) (GO G190) G191 (EXIT NIL))
      (EXIT |z|))))) 

(DEFUN |CLIF;reverseTerm| (|mult| |type1| $)
  (PROG (|resul| |sign| |g|)
    (RETURN
     (SEQ
      (LETT |resul| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #1=(|CLIF;reverseTerm|))
      (QSETAREF1 |resul| |type1| |mult|)
      (LETT |g| (SPADCALL (|CLIF;gradeTerm| |type1| $) (QREFELT $ 64)) . #1#)
      (LETT |sign| (COND ((QSODDP (QSLEFTSHIFT |g| -1)) -1) ('T 1)) . #1#)
      (LETT |resul| (SPADCALL |sign| |resul| (QREFELT $ 39)) . #1#)
      (EXIT |resul|))))) 

(DEFUN |CLIF;reverse;2$;27| (|x| $)
  (PROG (|z| #1=#:G1976 |ix|)
    (RETURN
     (SEQ
      (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #2=(|CLIF;reverse;2$;27|))
      (SEQ (LETT |ix| 0 . #2#) (LETT #1# (- (QREFELT $ 21) 1) . #2#) G190
           (COND ((QSGREATERP |ix| #1#) (GO G191)))
           (SEQ
            (EXIT
             (COND
              ((SPADCALL (QAREF1 |x| |ix|) (|spadConstant| $ 30)
                         (QREFELT $ 28))
               (LETT |z|
                     (SPADCALL |z|
                               (|CLIF;reverseTerm| (QAREF1 |x| |ix|)
                                (SPADCALL |ix| (QREFELT $ 64)) $)
                               (QREFELT $ 32))
                     . #2#)))))
           (LETT |ix| (QSADD1 |ix|) . #2#) (GO G190) G191 (EXIT NIL))
      (EXIT |z|))))) 

(DEFUN |CLIF;conjTerm| (|mult| |type1| $)
  (PROG (|resul| |sign| |g|)
    (RETURN
     (SEQ
      (LETT |resul| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #1=(|CLIF;conjTerm|))
      (QSETAREF1 |resul| |type1| |mult|)
      (LETT |g| (SPADCALL (|CLIF;gradeTerm| |type1| $) (QREFELT $ 64)) . #1#)
      (LETT |sign| (COND ((QSODDP (QSLEFTSHIFT (QSPLUS |g| 1) -1)) -1) ('T 1))
            . #1#)
      (LETT |resul| (SPADCALL |sign| |resul| (QREFELT $ 39)) . #1#)
      (EXIT |resul|))))) 

(DEFUN |CLIF;conj;2$;29| (|x| $)
  (PROG (|z| #1=#:G1984 |ix|)
    (RETURN
     (SEQ
      (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #2=(|CLIF;conj;2$;29|))
      (SEQ (LETT |ix| 0 . #2#) (LETT #1# (- (QREFELT $ 21) 1) . #2#) G190
           (COND ((QSGREATERP |ix| #1#) (GO G191)))
           (SEQ
            (EXIT
             (COND
              ((SPADCALL (QAREF1 |x| |ix|) (|spadConstant| $ 30)
                         (QREFELT $ 28))
               (LETT |z|
                     (SPADCALL |z|
                               (|CLIF;conjTerm| (QAREF1 |x| |ix|)
                                (SPADCALL |ix| (QREFELT $ 64)) $)
                               (QREFELT $ 32))
                     . #2#)))))
           (LETT |ix| (QSADD1 |ix|) . #2#) (GO G190) G191 (EXIT NIL))
      (EXIT |z|))))) 

(DEFUN |CLIF;setMode;S2B;30| (|s| |val| $)
  (PROG (#1=#:G1988)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (COND
         ((EQUAL |s| "orthogonal")
          (SEQ (SETELT $ 17 |val|)
               (EXIT
                (PROGN (LETT #1# 'T . #2=(|CLIF;setMode;S2B;30|)) (GO #1#))))))
        (COND
         ((EQUAL |s| "debug")
          (SEQ (SETELT $ 18 |val|)
               (EXIT (PROGN (LETT #1# 'T . #2#) (GO #1#))))))
        (EXIT 'NIL)))
      #1# (EXIT #1#))))) 

(DEFUN |CLIF;baseVect| (|b| $)
  (PROG (#1=#:G1992 #2=#:G1993 |i|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (SEQ (LETT |i| 0 . #3=(|CLIF;baseVect|))
             (LETT #2# (- (QREFELT $ 6) 1) . #3#) G190
             (COND ((QSGREATERP |i| #2#) (GO G191)))
             (SEQ
              (EXIT
               (COND
                ((SPADCALL |b| |i| (QREFELT $ 52))
                 (PROGN (LETT #1# (+ |i| 1) . #3#) (GO #1#))))))
             (LETT |i| (QSADD1 |i|) . #3#) (GO G190) G191 (EXIT NIL))
        (EXIT 0)))
      #1# (EXIT #1#))))) 

(DEFUN |CLIF;bilinear| (|b1| |b2| $)
  (PROG (#1=#:G1995 |bv2| |bv1|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ (LETT |bv1| (|CLIF;baseVect| |b1| $) . #2=(|CLIF;bilinear|))
            (LETT |bv2| (|CLIF;baseVect| |b2| $) . #2#)
            (COND
             ((EQL |bv1| 0)
              (PROGN (LETT #1# (|spadConstant| $ 30) . #2#) (GO #1#))))
            (COND
             ((EQL |bv2| 0)
              (PROGN (LETT #1# (|spadConstant| $ 30) . #2#) (GO #1#))))
            (EXIT (SPADCALL (QREFELT $ 8) |bv1| |bv2| (QREFELT $ 92)))))
      #1# (EXIT #1#))))) 

(DEFUN |CLIF;leftMostBase| (|b| $)
  (PROG (|mask| #1=#:G2000 #2=#:G2001 |i|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ (LETT |mask| 1 . #3=(|CLIF;leftMostBase|))
            (SEQ (LETT |i| 0 . #3#) (LETT #2# (- (QREFELT $ 6) 1) . #3#) G190
                 (COND ((QSGREATERP |i| #2#) (GO G191)))
                 (SEQ
                  (COND
                   ((SPADCALL (LOGAND |mask| |b|) 0 (QREFELT $ 93))
                    (PROGN (LETT #1# |mask| . #3#) (GO #1#))))
                  (EXIT (LETT |mask| (QSLEFTSHIFT |mask| 1) . #3#)))
                 (LETT |i| (QSADD1 |i|) . #3#) (GO G190) G191 (EXIT NIL))
            (EXIT 0)))
      #1# (EXIT #1#))))) 

(DEFUN |CLIF;rightMostBase| (|b| $)
  (PROG (|mask| #1=#:G2006 #2=#:G2007 |i|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |mask|
              (QSLEFTSHIFT 1 (SPADCALL (- (QREFELT $ 6) 1) (QREFELT $ 64)))
              . #3=(|CLIF;rightMostBase|))
        (SEQ (LETT |i| 0 . #3#) (LETT #2# (- (QREFELT $ 6) 1) . #3#) G190
             (COND ((QSGREATERP |i| #2#) (GO G191)))
             (SEQ
              (COND
               ((SPADCALL (LOGAND |mask| |b|) 0 (QREFELT $ 93))
                (PROGN (LETT #1# |mask| . #3#) (GO #1#))))
              (EXIT (LETT |mask| (QSLEFTSHIFT |mask| -1) . #3#)))
             (LETT |i| (QSADD1 |i|) . #3#) (GO G190) G191 (EXIT NIL))
        (EXIT 0)))
      #1# (EXIT #1#))))) 

(DEFUN |CLIF;exteriorProdTerm| (|op1mult| |op1type| |op2mult| |op2type| $)
  (PROG (|c| |k| #1=#:G2017 |j| #2=#:G2016 #3=#:G2015 |i| |bz| |resul|)
    (RETURN
     (SEQ
      (LETT |resul| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #4=(|CLIF;exteriorProdTerm|))
      (EXIT
       (COND ((SPADCALL (LOGAND |op1type| |op2type|) 0 (QREFELT $ 93)) |resul|)
             ('T
              (SEQ
               (LETT |c| (SPADCALL |op1mult| |op2mult| (QREFELT $ 40)) . #4#)
               (LETT |bz| (LOGIOR |op1type| |op2type|) . #4#)
               (SEQ (LETT |i| 0 . #4#) (LETT #3# (- (QREFELT $ 6) 1) . #4#)
                    G190 (COND ((QSGREATERP |i| #3#) (GO G191)))
                    (SEQ
                     (EXIT
                      (COND
                       ((SPADCALL |op1type| |i| (QREFELT $ 52))
                        (SEQ (LETT |k| 0 . #4#)
                             (SEQ (LETT |j| (+ |i| 1) . #4#)
                                  (LETT #2# (- (QREFELT $ 6) 1) . #4#) G190
                                  (COND ((> |j| #2#) (GO G191)))
                                  (SEQ
                                   (EXIT
                                    (COND
                                     ((SPADCALL |op1type| |j| (QREFELT $ 52))
                                      (LETT |k| (+ |k| 1) . #4#)))))
                                  (LETT |j| (+ |j| 1) . #4#) (GO G190) G191
                                  (EXIT NIL))
                             (SEQ (LETT |j| 0 . #4#) (LETT #1# (- |i| 1) . #4#)
                                  G190 (COND ((QSGREATERP |j| #1#) (GO G191)))
                                  (SEQ
                                   (EXIT
                                    (COND
                                     ((SPADCALL |bz| |j| (QREFELT $ 52))
                                      (LETT |k| (+ |k| 1) . #4#)))))
                                  (LETT |j| (QSADD1 |j|) . #4#) (GO G190) G191
                                  (EXIT NIL))
                             (EXIT
                              (COND
                               ((ODDP |k|)
                                (LETT |c| (SPADCALL |c| (QREFELT $ 35))
                                      . #4#)))))))))
                    (LETT |i| (QSADD1 |i|) . #4#) (GO G190) G191 (EXIT NIL))
               (QSETAREF1 |resul| |bz|
                          (SPADCALL (QAREF1 |resul| |bz|) |c| (QREFELT $ 31)))
               (EXIT |resul|))))))))) 

(DEFUN |CLIF;regressiveProdTerm| (|op1mult| |op1type| |op2mult| |op2type| $)
  (PROG (|res| |op2| |op1|)
    (RETURN
     (SEQ
      (LETT |op1| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #1=(|CLIF;regressiveProdTerm|))
      (QSETAREF1 |op1| |op1type| (|spadConstant| $ 46))
      (LETT |op2| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30)) . #1#)
      (QSETAREF1 |op2| |op2type| (|spadConstant| $ 46))
      (LETT |res|
            (SPADCALL
             (SPADCALL
              (SPADCALL |op2| (SPADCALL (QREFELT $ 78)) (QREFELT $ 94))
              (SPADCALL |op1| (SPADCALL (QREFELT $ 78)) (QREFELT $ 94))
              (QREFELT $ 68))
             (SPADCALL (QREFELT $ 78)) (QREFELT $ 94))
            . #1#)
      (LETT |res|
            (SPADCALL (SPADCALL |op1mult| |op2mult| (QREFELT $ 40)) |res|
                      (QREFELT $ 41))
            . #1#)
      (EXIT |res|))))) 

(DEFUN |CLIF;/\\;3$;37| (|x| |y| $)
  (PROG (|z| #1=#:G2027 |iy| #2=#:G2026 |ix|)
    (RETURN
     (SEQ
      (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #3=(|CLIF;/\\;3$;37|))
      (SEQ (LETT |ix| 0 . #3#) (LETT #2# (- (QREFELT $ 21) 1) . #3#) G190
           (COND ((QSGREATERP |ix| #2#) (GO G191)))
           (SEQ
            (EXIT
             (COND
              ((SPADCALL (QAREF1 |x| |ix|) (|spadConstant| $ 30)
                         (QREFELT $ 28))
               (SEQ (LETT |iy| 0 . #3#) (LETT #1# (- (QREFELT $ 21) 1) . #3#)
                    G190 (COND ((QSGREATERP |iy| #1#) (GO G191)))
                    (SEQ
                     (EXIT
                      (COND
                       ((SPADCALL (QAREF1 |y| |iy|) (|spadConstant| $ 30)
                                  (QREFELT $ 28))
                        (LETT |z|
                              (SPADCALL |z|
                                        (|CLIF;exteriorProdTerm|
                                         (QAREF1 |x| |ix|)
                                         (SPADCALL |ix| (QREFELT $ 64))
                                         (QAREF1 |y| |iy|)
                                         (SPADCALL |iy| (QREFELT $ 64)) $)
                                        (QREFELT $ 32))
                              . #3#)))))
                    (LETT |iy| (QSADD1 |iy|) . #3#) (GO G190) G191
                    (EXIT NIL))))))
           (LETT |ix| (QSADD1 |ix|) . #3#) (GO G190) G191 (EXIT NIL))
      (EXIT |z|))))) 

(DEFUN |CLIF;\\/;3$;38| (|x| |y| $)
  (PROG (|z| #1=#:G2035 |iy| #2=#:G2034 |ix|)
    (RETURN
     (SEQ
      (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #3=(|CLIF;\\/;3$;38|))
      (SEQ (LETT |ix| 0 . #3#) (LETT #2# (- (QREFELT $ 21) 1) . #3#) G190
           (COND ((QSGREATERP |ix| #2#) (GO G191)))
           (SEQ
            (EXIT
             (COND
              ((SPADCALL (QAREF1 |x| |ix|) (|spadConstant| $ 30)
                         (QREFELT $ 28))
               (SEQ (LETT |iy| 0 . #3#) (LETT #1# (- (QREFELT $ 21) 1) . #3#)
                    G190 (COND ((QSGREATERP |iy| #1#) (GO G191)))
                    (SEQ
                     (EXIT
                      (COND
                       ((SPADCALL (QAREF1 |y| |iy|) (|spadConstant| $ 30)
                                  (QREFELT $ 28))
                        (LETT |z|
                              (SPADCALL |z|
                                        (|CLIF;regressiveProdTerm|
                                         (QAREF1 |x| |ix|)
                                         (SPADCALL |ix| (QREFELT $ 64))
                                         (QAREF1 |y| |iy|)
                                         (SPADCALL |iy| (QREFELT $ 64)) $)
                                        (QREFELT $ 32))
                              . #3#)))))
                    (LETT |iy| (QSADD1 |iy|) . #3#) (GO G190) G191
                    (EXIT NIL))))))
           (LETT |ix| (QSADD1 |ix|) . #3#) (GO G190) G191 (EXIT NIL))
      (EXIT |z|))))) 

(DEFUN |CLIF;lcProdTerm| (|op1mult| |op1type| |op2mult| |op2type| $)
  (PROG (|resul| |inner2| |vType| |uType| #1=#:G2041 |inner4| |left| |grade2|
         |grade1|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |resul| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
              . #2=(|CLIF;lcProdTerm|))
        (LETT |grade1| (|CLIF;gradeTerm| |op1type| $) . #2#)
        (LETT |grade2| (|CLIF;gradeTerm| |op2type| $) . #2#)
        (COND
         ((EQL |grade1| 0)
          (SEQ
           (QSETAREF1 |resul| |op2type|
                      (SPADCALL (QAREF1 |resul| |op2type|)
                                (SPADCALL |op1mult| |op2mult| (QREFELT $ 40))
                                (QREFELT $ 31)))
           (EXIT (PROGN (LETT #1# |resul| . #2#) (GO #1#))))))
        (EXIT
         (COND ((EQL |grade2| 0) |resul|)
               ('T
                (SEQ
                 (COND
                  ((EQL |grade1| 1)
                   (COND
                    ((EQL |grade2| 1)
                     (SEQ
                      (QSETAREF1 |resul| 0
                                 (SPADCALL (QAREF1 |resul| 0)
                                           (SPADCALL
                                            (SPADCALL |op1mult| |op2mult|
                                                      (QREFELT $ 40))
                                            (|CLIF;bilinear| |op1type|
                                             |op2type| $)
                                            (QREFELT $ 40))
                                           (QREFELT $ 31)))
                      (EXIT (PROGN (LETT #1# |resul| . #2#) (GO #1#))))))))
                 (COND
                  ((EQL |grade1| 1)
                   (SEQ (LETT |uType| (|CLIF;leftMostBase| |op2type| $) . #2#)
                        (LETT |vType| (LOGXOR |op2type| |uType|) . #2#)
                        (LETT |inner2|
                              (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
                              . #2#)
                        (QSETAREF1 |inner2| |vType| (|spadConstant| $ 46))
                        (LETT |left|
                              (SPADCALL
                               (|CLIF;lcProdTerm| |op1mult| |op1type| |op2mult|
                                |uType| $)
                               |inner2| (QREFELT $ 68))
                              . #2#)
                        (LETT |inner4|
                              (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
                              . #2#)
                        (QSETAREF1 |inner4| |uType| (|spadConstant| $ 46))
                        (LETT |resul|
                              (SPADCALL
                               (SPADCALL |resul| |left| (QREFELT $ 32))
                               (SPADCALL |inner4|
                                         (|CLIF;lcProdTerm|
                                          (SPADCALL |op1mult| (QREFELT $ 35))
                                          |op1type| |op2mult| |vType| $)
                                         (QREFELT $ 68))
                               (QREFELT $ 32))
                              . #2#)
                        (EXIT (PROGN (LETT #1# |resul| . #2#) (GO #1#))))))
                 (LETT |uType| (|CLIF;leftMostBase| |op1type| $) . #2#)
                 (LETT |vType| (LOGXOR |op1type| |uType|) . #2#)
                 (LETT |inner2| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
                       . #2#)
                 (QSETAREF1 |inner2| |uType| (|spadConstant| $ 46))
                 (LETT |resul|
                       (SPADCALL |resul|
                                 (SPADCALL |inner2|
                                           (|CLIF;lcProdTerm| |op1mult| |vType|
                                            |op2mult| |op2type| $)
                                           (QREFELT $ 96))
                                 (QREFELT $ 32))
                       . #2#)
                 (EXIT |resul|)))))))
      #1# (EXIT #1#))))) 

(DEFUN |CLIF;rcProdTerm| (|op1mult| |op1type| |op2mult| |op2type| $)
  (PROG (|s4| |s3| |s2| |s1| |resul| |inner2| |vType| |uType| #1=#:G2049
         |inner4| |right| |grade2| |grade1|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |resul| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
              . #2=(|CLIF;rcProdTerm|))
        (LETT |grade1| (|CLIF;gradeTerm| |op1type| $) . #2#)
        (LETT |grade2| (|CLIF;gradeTerm| |op2type| $) . #2#)
        (COND
         ((EQL |grade2| 0)
          (SEQ
           (QSETAREF1 |resul| |op1type|
                      (SPADCALL (QAREF1 |resul| |op1type|)
                                (SPADCALL |op1mult| |op2mult| (QREFELT $ 40))
                                (QREFELT $ 31)))
           (EXIT (PROGN (LETT #1# |resul| . #2#) (GO #1#))))))
        (EXIT
         (COND ((EQL |grade1| 0) |resul|)
               ('T
                (SEQ
                 (COND
                  ((EQL |grade1| 1)
                   (COND
                    ((EQL |grade2| 1)
                     (SEQ
                      (QSETAREF1 |resul| 0
                                 (SPADCALL (QAREF1 |resul| 0)
                                           (SPADCALL
                                            (SPADCALL |op1mult| |op2mult|
                                                      (QREFELT $ 40))
                                            (|CLIF;bilinear| |op1type|
                                             |op2type| $)
                                            (QREFELT $ 40))
                                           (QREFELT $ 31)))
                      (EXIT (PROGN (LETT #1# |resul| . #2#) (GO #1#))))))))
                 (COND
                  ((EQL |grade2| 1)
                   (SEQ (LETT |uType| (|CLIF;rightMostBase| |op1type| $) . #2#)
                        (LETT |vType| (LOGXOR |op1type| |uType|) . #2#)
                        (LETT |inner2|
                              (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
                              . #2#)
                        (QSETAREF1 |inner2| |vType| (|spadConstant| $ 46))
                        (LETT |right|
                              (SPADCALL |inner2|
                                        (|CLIF;rcProdTerm| |op1mult| |uType|
                                         |op2mult| |op2type| $)
                                        (QREFELT $ 68))
                              . #2#)
                        (LETT |inner4|
                              (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
                              . #2#)
                        (QSETAREF1 |inner4| |uType| (|spadConstant| $ 46))
                        (LETT |resul|
                              (SPADCALL
                               (SPADCALL |resul|
                                         (SPADCALL
                                          (|CLIF;rcProdTerm| |op1mult| |vType|
                                           (SPADCALL |op2mult| (QREFELT $ 35))
                                           |op2type| $)
                                          |inner4| (QREFELT $ 68))
                                         (QREFELT $ 32))
                               |right| (QREFELT $ 32))
                              . #2#)
                        (COND
                         ((QREFELT $ 18)
                          (SEQ
                           (LETT |s1|
                                 (SPADCALL
                                  (LIST
                                   (|CLIF;toStringTerm| |op1mult| |op1type| $)
                                   "L"
                                   (|CLIF;toStringTerm| |op2mult| |op2type| $))
                                  (QREFELT $ 66))
                                 . #2#)
                           (LETT |s2|
                                 (SPADCALL
                                  (LIST "= "
                                        (|CLIF;toStringTerm| |op1mult| |vType|
                                         $)
                                        "L"
                                        (|CLIF;toStringTerm|
                                         (SPADCALL |op2mult| (QREFELT $ 35))
                                         |op2type| $))
                                  (QREFELT $ 66))
                                 . #2#)
                           (LETT |s3|
                                 (SPADCALL
                                  (LIST "/\\" (|CLIF;toString| |inner4| $) "+"
                                        (|CLIF;toString| |right| $))
                                  (QREFELT $ 66))
                                 . #2#)
                           (LETT |s4| (STRCONC "=" (|CLIF;toString| |resul| $))
                                 . #2#)
                           (EXIT
                            (|sayTeX|
                             (SPADCALL
                              (LIST "rcProdTerm: " |s1| |s2| |s3| |s4|)
                              (QREFELT $ 66)))))))
                        (EXIT (PROGN (LETT #1# |resul| . #2#) (GO #1#))))))
                 (LETT |uType| (|CLIF;rightMostBase| |op2type| $) . #2#)
                 (LETT |vType| (LOGXOR |op2type| |uType|) . #2#)
                 (LETT |inner2| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
                       . #2#)
                 (QSETAREF1 |inner2| |uType| (|spadConstant| $ 46))
                 (LETT |resul|
                       (SPADCALL |resul|
                                 (SPADCALL
                                  (|CLIF;rcProdTerm| |op1mult| |op1type|
                                   |op2mult| |vType| $)
                                  |inner2| (QREFELT $ 97))
                                 (QREFELT $ 32))
                       . #2#)
                 (COND
                  ((QREFELT $ 18)
                   (SEQ
                    (LETT |s1|
                          (SPADCALL
                           (LIST (|CLIF;toStringTerm| |op1mult| |op1type| $)
                                 "L"
                                 (|CLIF;toStringTerm| |op2mult| |op2type| $))
                           (QREFELT $ 66))
                          . #2#)
                    (LETT |s2|
                          (SPADCALL
                           (LIST "= ("
                                 (|CLIF;toStringTerm| |op1mult| |op1type| $)
                                 "L" (|CLIF;toStringTerm| |op2mult| |vType| $))
                           (QREFELT $ 66))
                          . #2#)
                    (LETT |s3| (STRCONC ") L" (|CLIF;toString| |inner2| $))
                          . #2#)
                    (LETT |s4| (STRCONC "=" (|CLIF;toString| |resul| $)) . #2#)
                    (EXIT
                     (|sayTeX|
                      (SPADCALL (LIST "rcProdTerm: " |s1| |s2| |s3| |s4|)
                                (QREFELT $ 66)))))))
                 (EXIT |resul|)))))))
      #1# (EXIT #1#))))) 

(DEFUN |CLIF;lc;3$;41| (|x| |y| $)
  (PROG (|z| #1=#:G2057 |iy| #2=#:G2056 |ix|)
    (RETURN
     (SEQ
      (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #3=(|CLIF;lc;3$;41|))
      (SEQ (LETT |ix| 0 . #3#) (LETT #2# (- (QREFELT $ 21) 1) . #3#) G190
           (COND ((QSGREATERP |ix| #2#) (GO G191)))
           (SEQ
            (EXIT
             (COND
              ((SPADCALL (QAREF1 |x| |ix|) (|spadConstant| $ 30)
                         (QREFELT $ 28))
               (SEQ (LETT |iy| 0 . #3#) (LETT #1# (- (QREFELT $ 21) 1) . #3#)
                    G190 (COND ((QSGREATERP |iy| #1#) (GO G191)))
                    (SEQ
                     (EXIT
                      (COND
                       ((SPADCALL (QAREF1 |y| |iy|) (|spadConstant| $ 30)
                                  (QREFELT $ 28))
                        (LETT |z|
                              (SPADCALL |z|
                                        (|CLIF;lcProdTerm| (QAREF1 |x| |ix|)
                                         (SPADCALL |ix| (QREFELT $ 64))
                                         (QAREF1 |y| |iy|)
                                         (SPADCALL |iy| (QREFELT $ 64)) $)
                                        (QREFELT $ 32))
                              . #3#)))))
                    (LETT |iy| (QSADD1 |iy|) . #3#) (GO G190) G191
                    (EXIT NIL))))))
           (LETT |ix| (QSADD1 |ix|) . #3#) (GO G190) G191 (EXIT NIL))
      (EXIT |z|))))) 

(DEFUN |CLIF;rc;3$;42| (|x| |y| $)
  (PROG (|z| #1=#:G2065 |iy| #2=#:G2064 |ix|)
    (RETURN
     (SEQ
      (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #3=(|CLIF;rc;3$;42|))
      (SEQ (LETT |ix| 0 . #3#) (LETT #2# (- (QREFELT $ 21) 1) . #3#) G190
           (COND ((QSGREATERP |ix| #2#) (GO G191)))
           (SEQ
            (EXIT
             (COND
              ((SPADCALL (QAREF1 |x| |ix|) (|spadConstant| $ 30)
                         (QREFELT $ 28))
               (SEQ (LETT |iy| 0 . #3#) (LETT #1# (- (QREFELT $ 21) 1) . #3#)
                    G190 (COND ((QSGREATERP |iy| #1#) (GO G191)))
                    (SEQ
                     (EXIT
                      (COND
                       ((SPADCALL (QAREF1 |y| |iy|) (|spadConstant| $ 30)
                                  (QREFELT $ 28))
                        (LETT |z|
                              (SPADCALL |z|
                                        (|CLIF;rcProdTerm| (QAREF1 |x| |ix|)
                                         (SPADCALL |ix| (QREFELT $ 64))
                                         (QAREF1 |y| |iy|)
                                         (SPADCALL |iy| (QREFELT $ 64)) $)
                                        (QREFELT $ 32))
                              . #3#)))))
                    (LETT |iy| (QSADD1 |iy|) . #3#) (GO G190) G191
                    (EXIT NIL))))))
           (LETT |ix| (QSADD1 |ix|) . #3#) (GO G190) G191 (EXIT NIL))
      (EXIT |z|))))) 

(DEFUN |CLIF;cliffordProdTerm| (|op1mult| |op1type| |op2mult| |op2type| $)
  (PROG (|resul| |s4| |s3| |s2| |s1| |factor2| |factor1| |vt| |ut| |uType|
         |xType| #1=#:G2073 |xt| |vType| |grade2| |grade1|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |resul| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
              . #2=(|CLIF;cliffordProdTerm|))
        (LETT |grade1| (|CLIF;gradeTerm| |op1type| $) . #2#)
        (LETT |grade2| (|CLIF;gradeTerm| |op2type| $) . #2#)
        (COND
         ((EQL |grade1| 0)
          (SEQ
           (QSETAREF1 |resul| |op2type|
                      (SPADCALL (QAREF1 |resul| |op2type|)
                                (SPADCALL |op1mult| |op2mult| (QREFELT $ 40))
                                (QREFELT $ 31)))
           (EXIT (PROGN (LETT #1# |resul| . #2#) (GO #1#))))))
        (COND
         ((EQL |grade2| 0)
          (SEQ
           (QSETAREF1 |resul| |op1type|
                      (SPADCALL (QAREF1 |resul| |op1type|)
                                (SPADCALL |op1mult| |op2mult| (QREFELT $ 40))
                                (QREFELT $ 31)))
           (EXIT (PROGN (LETT #1# |resul| . #2#) (GO #1#))))))
        (COND
         ((EQL |grade1| 1)
          (COND
           ((EQL |grade2| 1)
            (SEQ
             (QSETAREF1 |resul| 0
                        (SPADCALL (QAREF1 |resul| 0)
                                  (SPADCALL
                                   (SPADCALL |op1mult| |op2mult|
                                             (QREFELT $ 40))
                                   (|CLIF;bilinear| |op1type| |op2type| $)
                                   (QREFELT $ 40))
                                  (QREFELT $ 31)))
             (LETT |resul|
                   (SPADCALL |resul|
                             (|CLIF;exteriorProdTerm| |op1mult| |op1type|
                              |op2mult| |op2type| $)
                             (QREFELT $ 32))
                   . #2#)
             (EXIT (PROGN (LETT #1# |resul| . #2#) (GO #1#))))))))
        (COND
         ((EQL |grade1| 1)
          (SEQ (LETT |uType| (|CLIF;leftMostBase| |op2type| $) . #2#)
               (LETT |vType| (LOGXOR |op2type| |uType|) . #2#)
               (LETT |xt| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
                     . #2#)
               (QSETAREF1 |xt| |op1type| (|spadConstant| $ 46))
               (LETT |ut| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
                     . #2#)
               (QSETAREF1 |ut| |uType| (|spadConstant| $ 46))
               (LETT |vt| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
                     . #2#)
               (QSETAREF1 |vt| |vType| (|spadConstant| $ 46))
               (LETT |resul|
                     (SPADCALL
                      (SPADCALL
                       (SPADCALL |xt|
                                 (|CLIF;exteriorProdTerm| (|spadConstant| $ 46)
                                  |uType| (|spadConstant| $ 46) |vType| $)
                                 (QREFELT $ 68))
                       (SPADCALL
                        (|CLIF;lcProdTerm| (|spadConstant| $ 46) |op1type|
                         (|spadConstant| $ 46) |uType| $)
                        |vt| (QREFELT $ 68))
                       (QREFELT $ 32))
                      (SPADCALL
                       (|CLIF;gradeInvolutionTerm| (|spadConstant| $ 46)
                        |uType| $)
                       (|CLIF;lcProdTerm| (|spadConstant| $ 46) |op1type|
                        (|spadConstant| $ 46) |vType| $)
                       (QREFELT $ 68))
                      (QREFELT $ 32))
                     . #2#)
               (LETT |resul|
                     (SPADCALL (SPADCALL |op1mult| |op2mult| (QREFELT $ 40))
                               |resul| (QREFELT $ 41))
                     . #2#)
               (EXIT (PROGN (LETT #1# |resul| . #2#) (GO #1#))))))
        (COND
         ((EQL |grade2| 1)
          (SEQ (LETT |uType| (|CLIF;rightMostBase| |op1type| $) . #2#)
               (LETT |vType| (LOGXOR |op1type| |uType|) . #2#)
               (LETT |xt| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
                     . #2#)
               (QSETAREF1 |xt| |op2type| (|spadConstant| $ 46))
               (LETT |ut| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
                     . #2#)
               (QSETAREF1 |ut| |uType| (|spadConstant| $ 46))
               (LETT |vt| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
                     . #2#)
               (QSETAREF1 |vt| |vType| (|spadConstant| $ 46))
               (LETT |resul|
                     (SPADCALL
                      (SPADCALL
                       (SPADCALL
                        (|CLIF;exteriorProdTerm| (|spadConstant| $ 46) |vType|
                         (|spadConstant| $ 46) |uType| $)
                        |xt| (QREFELT $ 68))
                       (SPADCALL |vt|
                                 (|CLIF;rcProdTerm| (|spadConstant| $ 46)
                                  |uType| (|spadConstant| $ 46) |op2type| $)
                                 (QREFELT $ 68))
                       (QREFELT $ 32))
                      (SPADCALL
                       (|CLIF;rcProdTerm| (|spadConstant| $ 46) |vType|
                        (|spadConstant| $ 46) |op2type| $)
                       (|CLIF;gradeInvolutionTerm| (|spadConstant| $ 46)
                        |uType| $)
                       (QREFELT $ 68))
                      (QREFELT $ 32))
                     . #2#)
               (LETT |resul|
                     (SPADCALL (SPADCALL |op1mult| |op2mult| (QREFELT $ 40))
                               |resul| (QREFELT $ 41))
                     . #2#)
               (EXIT (PROGN (LETT #1# |resul| . #2#) (GO #1#))))))
        (LETT |xType| (|CLIF;rightMostBase| |op1type| $) . #2#)
        (LETT |uType| (LOGXOR |op1type| |xType|) . #2#)
        (LETT |ut| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30)) . #2#)
        (QSETAREF1 |ut| |uType| (|spadConstant| $ 46))
        (LETT |vt| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30)) . #2#)
        (QSETAREF1 |vt| |op2type| (|spadConstant| $ 46))
        (LETT |factor1|
              (SPADCALL
               (|CLIF;lcProdTerm| (|spadConstant| $ 46) |xType|
                (|spadConstant| $ 46) |op2type| $)
               (|CLIF;exteriorProdTerm| (|spadConstant| $ 46) |xType|
                (|spadConstant| $ 46) |op2type| $)
               (QREFELT $ 32))
              . #2#)
        (LETT |factor2|
              (|CLIF;rcProdTerm| (|spadConstant| $ 46) |uType|
               (|spadConstant| $ 46) |xType| $)
              . #2#)
        (LETT |resul|
              (SPADCALL (SPADCALL |ut| |factor1| (QREFELT $ 94))
                        (SPADCALL |factor2| |vt| (QREFELT $ 94))
                        (QREFELT $ 34))
              . #2#)
        (COND
         ((QREFELT $ 18)
          (SEQ
           (LETT |s1|
                 (SPADCALL
                  (LIST (|CLIF;toStringTerm| |op1mult| |op1type| $) "*"
                        (|CLIF;toStringTerm| |op2mult| |op2type| $))
                  (QREFELT $ 66))
                 . #2#)
           (LETT |s2|
                 (SPADCALL
                  (LIST "=" (|CLIF;toString| |ut| $) "*"
                        (|CLIF;toString| |factor1| $))
                  (QREFELT $ 66))
                 . #2#)
           (LETT |s3|
                 (SPADCALL
                  (LIST "-" (|CLIF;toString| |factor2| $) "*"
                        (|CLIF;toString| |vt| $))
                  (QREFELT $ 66))
                 . #2#)
           (LETT |s4|
                 (SPADCALL (LIST "=" (|CLIF;toString| |resul| $))
                           (QREFELT $ 66))
                 . #2#)
           (EXIT
            (|sayTeX|
             (SPADCALL (LIST "cliffordProdTerm: " |s1| |s2| |s3| |s4|)
                       (QREFELT $ 66)))))))
        (LETT |resul|
              (SPADCALL (SPADCALL |op1mult| |op2mult| (QREFELT $ 40)) |resul|
                        (QREFELT $ 41))
              . #2#)
        (EXIT |resul|)))
      #1# (EXIT #1#))))) 

(DEFUN |CLIF;cliffordDiagonalTerm| (|op1mult| |op1type| |op2mult| |op2type| $)
  (PROG (|result| |bz| |c| |k| #1=#:G2084 |j| #2=#:G2083 #3=#:G2082 |i|)
    (RETURN
     (SEQ
      (LETT |c| (SPADCALL |op1mult| |op2mult| (QREFELT $ 40))
            . #4=(|CLIF;cliffordDiagonalTerm|))
      (LETT |bz| |op2type| . #4#)
      (SEQ (LETT |i| 0 . #4#) (LETT #3# (- (QREFELT $ 6) 1) . #4#) G190
           (COND ((QSGREATERP |i| #3#) (GO G191)))
           (SEQ
            (EXIT
             (COND
              ((SPADCALL |op1type| |i| (QREFELT $ 52))
               (SEQ (LETT |k| 0 . #4#)
                    (SEQ (LETT |j| (+ |i| 1) . #4#)
                         (LETT #2# (- (QREFELT $ 6) 1) . #4#) G190
                         (COND ((> |j| #2#) (GO G191)))
                         (SEQ
                          (EXIT
                           (COND
                            ((SPADCALL |op1type| |j| (QREFELT $ 52))
                             (LETT |k| (+ |k| 1) . #4#)))))
                         (LETT |j| (+ |j| 1) . #4#) (GO G190) G191 (EXIT NIL))
                    (SEQ (LETT |j| 0 . #4#) (LETT #1# (- |i| 1) . #4#) G190
                         (COND ((QSGREATERP |j| #1#) (GO G191)))
                         (SEQ
                          (EXIT
                           (COND
                            ((SPADCALL |bz| |j| (QREFELT $ 52))
                             (LETT |k| (+ |k| 1) . #4#)))))
                         (LETT |j| (QSADD1 |j|) . #4#) (GO G190) G191
                         (EXIT NIL))
                    (COND
                     ((ODDP |k|)
                      (LETT |c| (SPADCALL |c| (QREFELT $ 35)) . #4#)))
                    (EXIT
                     (COND
                      ((SPADCALL |bz| |i| (QREFELT $ 52))
                       (SEQ
                        (LETT |c|
                              (SPADCALL |c|
                                        (SPADCALL (QREFELT $ 14) (+ |i| 1)
                                                  (QREFELT $ 98))
                                        (QREFELT $ 40))
                              . #4#)
                        (EXIT
                         (LETT |bz|
                               (QSDIFFERENCE |bz|
                                             (SPADCALL 2 |i| (QREFELT $ 99)))
                               . #4#))))
                      ('T
                       (LETT |bz| (QSPLUS |bz| (SPADCALL 2 |i| (QREFELT $ 99)))
                             . #4#)))))))))
           (LETT |i| (QSADD1 |i|) . #4#) (GO G190) G191 (EXIT NIL))
      (LETT |result| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30)) . #4#)
      (QSETAREF1 |result| |bz| |c|) (EXIT |result|))))) 

(DEFUN |CLIF;*;3$;45| (|x| |y| $)
  (PROG (|z| #1=#:G2098 |iy| #2=#:G2097 |ix| #3=#:G2096 #4=#:G2095)
    (RETURN
     (SEQ
      (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30))
            . #5=(|CLIF;*;3$;45|))
      (COND
       ((QREFELT $ 17)
        (SEQ (LETT |ix| 0 . #5#) (LETT #4# (- (QREFELT $ 21) 1) . #5#) G190
             (COND ((QSGREATERP |ix| #4#) (GO G191)))
             (SEQ
              (EXIT
               (COND
                ((SPADCALL (QAREF1 |x| |ix|) (|spadConstant| $ 30)
                           (QREFELT $ 28))
                 (SEQ (LETT |iy| 0 . #5#) (LETT #3# (- (QREFELT $ 21) 1) . #5#)
                      G190 (COND ((QSGREATERP |iy| #3#) (GO G191)))
                      (SEQ
                       (EXIT
                        (COND
                         ((SPADCALL (QAREF1 |y| |iy|) (|spadConstant| $ 30)
                                    (QREFELT $ 28))
                          (LETT |z|
                                (SPADCALL |z|
                                          (|CLIF;cliffordDiagonalTerm|
                                           (QAREF1 |x| |ix|)
                                           (SPADCALL |ix| (QREFELT $ 64))
                                           (QAREF1 |y| |iy|)
                                           (SPADCALL |iy| (QREFELT $ 64)) $)
                                          (QREFELT $ 32))
                                . #5#)))))
                      (LETT |iy| (QSADD1 |iy|) . #5#) (GO G190) G191
                      (EXIT NIL))))))
             (LETT |ix| (QSADD1 |ix|) . #5#) (GO G190) G191 (EXIT NIL))))
      (COND
       ((NULL (QREFELT $ 17))
        (SEQ (LETT |ix| 0 . #5#) (LETT #2# (- (QREFELT $ 21) 1) . #5#) G190
             (COND ((QSGREATERP |ix| #2#) (GO G191)))
             (SEQ
              (EXIT
               (COND
                ((SPADCALL (QAREF1 |x| |ix|) (|spadConstant| $ 30)
                           (QREFELT $ 28))
                 (SEQ (LETT |iy| 0 . #5#) (LETT #1# (- (QREFELT $ 21) 1) . #5#)
                      G190 (COND ((QSGREATERP |iy| #1#) (GO G191)))
                      (SEQ
                       (EXIT
                        (COND
                         ((SPADCALL (QAREF1 |y| |iy|) (|spadConstant| $ 30)
                                    (QREFELT $ 28))
                          (LETT |z|
                                (SPADCALL |z|
                                          (|CLIF;cliffordProdTerm|
                                           (QAREF1 |x| |ix|)
                                           (SPADCALL |ix| (QREFELT $ 64))
                                           (QAREF1 |y| |iy|)
                                           (SPADCALL |iy| (QREFELT $ 64)) $)
                                          (QREFELT $ 32))
                                . #5#)))))
                      (LETT |iy| (QSADD1 |iy|) . #5#) (GO G190) G191
                      (EXIT NIL))))))
             (LETT |ix| (QSADD1 |ix|) . #5#) (GO G190) G191 (EXIT NIL))))
      (EXIT |z|))))) 

(DEFUN |CLIF;~;2$;46| (|x| $)
  (SPADCALL |x| (SPADCALL (QREFELT $ 78)) (QREFELT $ 94))) 

(DEFUN |CLIF;canonMonom| (|c| |lb| $)
  (PROG (|bz| #1=#:G2109 |bn| #2=#:G2108 #3=#:G2117 |b| |wasordered|
         |exchanges| |t| #4=#:G2116 |i| #5=#:G2101 #6=#:G2115)
    (RETURN
     (SEQ
      (SEQ
       (EXIT
        (SEQ (LETT |b| NIL . #7=(|CLIF;canonMonom|)) (LETT #6# |lb| . #7#) G190
             (COND
              ((OR (ATOM #6#) (PROGN (LETT |b| (CAR #6#) . #7#) NIL))
               (GO G191)))
             (SEQ
              (EXIT
               (COND
                ((SPADCALL |b| (QREFELT $ 6) (QREFELT $ 101))
                 (PROGN
                  (LETT #5# (|error| "No such basis element") . #7#)
                  (GO #5#))))))
             (LETT #6# (CDR #6#) . #7#) (GO G190) G191 (EXIT NIL)))
       #5# (EXIT #5#))
      (LETT |wasordered| 'NIL . #7#) (LETT |exchanges| 0 . #7#)
      (SEQ G190 (COND ((NULL (COND (|wasordered| 'NIL) ('T 'T))) (GO G191)))
           (SEQ (LETT |wasordered| 'T . #7#)
                (EXIT
                 (SEQ (LETT |i| 1 . #7#) (LETT #4# (- (LENGTH |lb|) 1) . #7#)
                      G190 (COND ((QSGREATERP |i| #4#) (GO G191)))
                      (SEQ
                       (EXIT
                        (COND
                         ((SPADCALL (SPADCALL |lb| |i| (QREFELT $ 102))
                                    (SPADCALL |lb| (+ |i| 1) (QREFELT $ 102))
                                    (QREFELT $ 101))
                          (SEQ
                           (LETT |t| (SPADCALL |lb| |i| (QREFELT $ 102)) . #7#)
                           (SPADCALL |lb| |i|
                                     (SPADCALL |lb| (+ |i| 1) (QREFELT $ 102))
                                     (QREFELT $ 103))
                           (SPADCALL |lb| (+ |i| 1) |t| (QREFELT $ 103))
                           (LETT |exchanges| (+ |exchanges| 1) . #7#)
                           (EXIT (LETT |wasordered| 'NIL . #7#)))))))
                      (LETT |i| (QSADD1 |i|) . #7#) (GO G190) G191
                      (EXIT NIL))))
           NIL (GO G190) G191 (EXIT NIL))
      (COND
       ((ODDP |exchanges|) (LETT |c| (SPADCALL |c| (QREFELT $ 35)) . #7#)))
      (LETT |bz| 0 . #7#)
      (SEQ (LETT |b| NIL . #7#) (LETT #3# |lb| . #7#) G190
           (COND
            ((OR (ATOM #3#) (PROGN (LETT |b| (CAR #3#) . #7#) NIL)) (GO G191)))
           (SEQ
            (LETT |bn|
                  (PROG1 (LETT #2# (- |b| 1) . #7#)
                    (|check-subtype| (>= #2# 0) '(|NonNegativeInteger|) #2#))
                  . #7#)
            (EXIT
             (COND
              ((SPADCALL |bz| |bn| (QREFELT $ 52))
               (SEQ
                (LETT |c|
                      (SPADCALL |c|
                                (SPADCALL (QREFELT $ 14) |bn| (QREFELT $ 98))
                                (QREFELT $ 40))
                      . #7#)
                (EXIT
                 (LETT |bz|
                       (PROG1 (LETT #1# (- |bz| (EXPT 2 |bn|)) . #7#)
                         (|check-subtype| (>= #1# 0) '(|NonNegativeInteger|)
                                          #1#))
                       . #7#))))
              ('T (LETT |bz| (+ |bz| (EXPT 2 |bn|)) . #7#)))))
           (LETT #3# (CDR #3#) . #7#) (GO G190) G191 (EXIT NIL))
      (EXIT (CONS |c| |bz|)))))) 

(DEFUN |CLIF;monomial;KL$;48| (|c| |lb| $)
  (PROG (|z| |r|)
    (RETURN
     (SEQ
      (LETT |r| (|CLIF;canonMonom| |c| |lb| $) . #1=(|CLIF;monomial;KL$;48|))
      (LETT |z| (MAKEARR1 (QREFELT $ 21) (|spadConstant| $ 30)) . #1#)
      (QSETAREF1 |z| (QCDR |r|) (QCAR |r|)) (EXIT |z|))))) 

(DEFUN |CLIF;coefficient;$LK;49| (|z| |lb| $)
  (PROG (|r|)
    (RETURN
     (SEQ
      (LETT |r| (|CLIF;canonMonom| (|spadConstant| $ 46) |lb| $)
            |CLIF;coefficient;$LK;49|)
      (EXIT
       (COND
        ((SPADCALL (QCAR |r|) (|spadConstant| $ 30) (QREFELT $ 51))
         (|error| "Cannot take coef of 0"))
        ('T (SPADCALL (QAREF1 |z| (QCDR |r|)) (QCAR |r|) (QREFELT $ 105))))))))) 

(DEFUN |CLIF;coerceMonom| (|c| |b| $)
  (PROG (|be| |ml| #1=#:G2134 |i| #2=#:G2133)
    (RETURN
     (SEQ
      (COND ((EQL |b| 0) (SPADCALL |c| (QREFELT $ 108)))
            (#3='T
             (SEQ
              (LETT |ml|
                    (PROGN
                     (LETT #2# NIL . #4=(|CLIF;coerceMonom|))
                     (SEQ (LETT |i| 1 . #4#) (LETT #1# (QREFELT $ 6) . #4#)
                          G190 (COND ((QSGREATERP |i| #1#) (GO G191)))
                          (SEQ
                           (EXIT
                            (COND
                             ((SPADCALL |b| (- |i| 1) (QREFELT $ 52))
                              (LETT #2#
                                    (CONS
                                     (SPADCALL "e"
                                               (SPADCALL |i| (QREFELT $ 109))
                                               (QREFELT $ 110))
                                     #2#)
                                    . #4#)))))
                          (LETT |i| (QSADD1 |i|) . #4#) (GO G190) G191
                          (EXIT (NREVERSE #2#))))
                    . #4#)
              (LETT |be| (SPADCALL (ELT $ 111) |ml| (QREFELT $ 114)) . #4#)
              (EXIT
               (COND ((SPADCALL |c| (|spadConstant| $ 46) (QREFELT $ 51)) |be|)
                     (#3#
                      (SPADCALL (SPADCALL |c| (QREFELT $ 108)) |be|
                                (QREFELT $ 111)))))))))))) 

(DEFUN |CLIF;coerce;$Of;51| (|x| $)
  (PROG (|tl| #1=#:G2141 |i| #2=#:G2140)
    (RETURN
     (SEQ
      (LETT |tl|
            (PROGN
             (LETT #2# NIL . #3=(|CLIF;coerce;$Of;51|))
             (SEQ (LETT |i| 0 . #3#) (LETT #1# (- (QREFELT $ 21) 1) . #3#) G190
                  (COND ((QSGREATERP |i| #1#) (GO G191)))
                  (SEQ
                   (EXIT
                    (COND
                     ((SPADCALL (QAREF1 |x| |i|) (|spadConstant| $ 30)
                                (QREFELT $ 28))
                      (LETT #2#
                            (CONS (|CLIF;coerceMonom| (QAREF1 |x| |i|) |i| $)
                                  #2#)
                            . #3#)))))
                  (LETT |i| (QSADD1 |i|) . #3#) (GO G190) G191
                  (EXIT (NREVERSE #2#))))
            . #3#)
      (EXIT
       (COND ((NULL |tl|) "0")
             ('T (SPADCALL (ELT $ 115) |tl| (QREFELT $ 114))))))))) 

(DEFUN |CLIF;localPowerSets| (|j| $)
  (PROG (|Sn| #1=#:G2147 |x| |Sm| #2=#:G2142 |l|)
    (RETURN
     (SEQ
      (LETT |l| (SPADCALL NIL (QREFELT $ 118)) . #3=(|CLIF;localPowerSets|))
      (EXIT
       (COND ((EQL |j| 0) |l|)
             ('T
              (SEQ
               (LETT |Sm|
                     (|CLIF;localPowerSets|
                      (PROG1 (LETT #2# (- |j| 1) . #3#)
                        (|check-subtype| (>= #2# 0) '(|NonNegativeInteger|)
                                         #2#))
                      $)
                     . #3#)
               (LETT |Sn| NIL . #3#)
               (SEQ (LETT |x| NIL . #3#) (LETT #1# |Sm| . #3#) G190
                    (COND
                     ((OR (ATOM #1#) (PROGN (LETT |x| (CAR #1#) . #3#) NIL))
                      (GO G191)))
                    (SEQ (EXIT (LETT |Sn| (CONS (CONS |j| |x|) |Sn|) . #3#)))
                    (LETT #1# (CDR #1#) . #3#) (GO G190) G191 (EXIT NIL))
               (EXIT (APPEND |Sn| |Sm|)))))))))) 

(DEFUN |CLIF;powerSets| (|j| $)
  (SPADCALL (ELT $ 119) (|CLIF;localPowerSets| |j| $) (QREFELT $ 121))) 

(DEFUN |CLIF;recip;$U;54| (|x| $)
  (PROG (|ansC| |ansP| |cj| #1=#:G2171 |pj| |ans| |lhsEqs| |lhsEqi| #2=#:G2170
         |rhsEqs| #3=#:G2169 |pi| |one|)
    (RETURN
     (SEQ (LETT |one| (|spadConstant| $ 47) . #4=(|CLIF;recip;$U;54|))
          (LETT |rhsEqs| NIL . #4#) (LETT |lhsEqs| NIL . #4#)
          (SEQ (LETT |pi| NIL . #4#) (LETT #3# (QREFELT $ 122) . #4#) G190
               (COND
                ((OR (ATOM #3#) (PROGN (LETT |pi| (CAR #3#) . #4#) NIL))
                 (GO G191)))
               (SEQ
                (LETT |rhsEqs|
                      (CONS (SPADCALL |one| |pi| (QREFELT $ 106)) |rhsEqs|)
                      . #4#)
                (LETT |lhsEqi| NIL . #4#)
                (SEQ (LETT |pj| NIL . #4#) (LETT #2# (QREFELT $ 122) . #4#)
                     G190
                     (COND
                      ((OR (ATOM #2#) (PROGN (LETT |pj| (CAR #2#) . #4#) NIL))
                       (GO G191)))
                     (SEQ
                      (EXIT
                       (LETT |lhsEqi|
                             (CONS
                              (SPADCALL
                               (SPADCALL |x|
                                         (SPADCALL (|spadConstant| $ 46) |pj|
                                                   (QREFELT $ 104))
                                         (QREFELT $ 94))
                               |pi| (QREFELT $ 106))
                              |lhsEqi|)
                             . #4#)))
                     (LETT #2# (CDR #2#) . #4#) (GO G190) G191 (EXIT NIL))
                (EXIT
                 (LETT |lhsEqs| (CONS (REVERSE |lhsEqi|) |lhsEqs|) . #4#)))
               (LETT #3# (CDR #3#) . #4#) (GO G190) G191 (EXIT NIL))
          (LETT |ans|
                (SPADCALL (SPADCALL |lhsEqs| (QREFELT $ 125))
                          (SPADCALL |rhsEqs| (QREFELT $ 126)) (QREFELT $ 129))
                . #4#)
          (EXIT
           (COND ((QEQCAR |ans| 1) (CONS 1 "failed"))
                 ('T
                  (SEQ
                   (LETT |ansP| (SPADCALL (QCDR |ans|) (QREFELT $ 130)) . #4#)
                   (LETT |ansC| (|spadConstant| $ 42) . #4#)
                   (SEQ (LETT |pj| NIL . #4#) (LETT #1# (QREFELT $ 122) . #4#)
                        G190
                        (COND
                         ((OR (ATOM #1#)
                              (PROGN (LETT |pj| (CAR #1#) . #4#) NIL))
                          (GO G191)))
                        (SEQ (LETT |cj| (|SPADfirst| |ansP|) . #4#)
                             (LETT |ansP| (CDR |ansP|) . #4#)
                             (EXIT
                              (LETT |ansC|
                                    (SPADCALL |ansC|
                                              (SPADCALL |cj|
                                                        (SPADCALL
                                                         (|spadConstant| $ 46)
                                                         |pj| (QREFELT $ 104))
                                                        (QREFELT $ 41))
                                              (QREFELT $ 32))
                                    . #4#)))
                        (LETT #1# (CDR #1#) . #4#) (GO G190) G191 (EXIT NIL))
                   (EXIT (CONS 0 |ansC|)))))))))) 

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

(DEFUN |CliffordAlgebra;| (|#1| |#2| |#3|)
  (PROG (|pv$| $ |dv$| DV$3 DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #1=(|CliffordAlgebra|))
      (LETT DV$2 (|devaluate| |#2|) . #1#)
      (LETT DV$3 (|devaluate| |#3|) . #1#)
      (LETT |dv$| (LIST '|CliffordAlgebra| DV$1 DV$2 DV$3) . #1#)
      (LETT $ (GETREFV 133) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
      (|haddProp| |$ConstructorCache| '|CliffordAlgebra| (LIST DV$1 DV$2 DV$3)
                  (CONS 1 $))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (QSETREFV $ 7 |#2|)
      (QSETREFV $ 8 |#3|)
      (SETF |pv$| (QREFELT $ 3))
      (QSETREFV $ 14 (SPADCALL (SPADCALL |#3| (QREFELT $ 11)) (QREFELT $ 13)))
      (QSETREFV $ 17 (SPADCALL |#3| (QREFELT $ 16)))
      (QSETREFV $ 18 'NIL)
      (QSETREFV $ 21 (SPADCALL 2 |#1| (QREFELT $ 20)))
      (QSETREFV $ 22 (|PrimitiveArray| |#2|))
      (QSETREFV $ 122 (|CLIF;powerSets| |#1| $))
      $)))) 

(MAKEPROP '|CliffordAlgebra| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
              (|local| |#3|) (|DirectProduct| 6 7) (|SquareMatrix| 6 7)
              (0 . |diagonal|) (|Vector| 7) (5 . |coerce|) '|Qeelist|
              (|Boolean|) (10 . |diagonal?|) '|orthogonal| '|debug|
              (|PositiveInteger|) (15 . ^) '|dim| '|Rep| (|NonNegativeInteger|)
              (21 . |characteristic|) |CLIF;characteristic;Nni;1|
              (|CardinalNumber|) (25 . |coerce|) (30 . ~=) |CLIF;=;2$B;3|
              (36 . |Zero|) (40 . +) |CLIF;+;3$;4| (46 . -) |CLIF;-;3$;5|
              (52 . -) |CLIF;-;2$;6| (|Integer|) (57 . *) |CLIF;*;I2$;7|
              (63 . *) |CLIF;*;K2$;8|
              (CONS IDENTITY (FUNCALL (|dispatchFunction| |CLIF;Zero;$;9|) $))
              (69 . |Zero|) (73 . |Zero|) (77 . |Zero|) (81 . |One|)
              (CONS IDENTITY (FUNCALL (|dispatchFunction| |CLIF;One;$;10|) $))
              (85 . |coerce|) |CLIF;coerce;I$;11| |CLIF;coerce;K$;12| (90 . =)
              (96 . |bit?|) (102 . >) (108 . |One|) (112 . |One|) (116 . |One|)
              (|Character|) (|String|) (120 . |elt|) (126 . |char|) (131 . =)
              (137 . ~=) (|SingleInteger|) (143 . |coerce|) (|List| $)
              (148 . |concat|) |CLIF;e;Pi$;15| |CLIF;/\\;3$;37|
              (|Mapping| $$ $$ $$) (|List| $$) (153 . |reduce|) (|List| 19)
              |CLIF;ee;L$;16| (|List| 7) (160 . |elt|) |CLIF;multivector;L$;17|
              |CLIF;eFromBinaryMap;Nni$;18| |CLIF;ePseudoscalar;$;19|
              (|List| 70) (|Matrix| $$) (166 . |matrix|) (|Matrix| $)
              (|Mapping| $ $ $) |CLIF;toTable;MM;20| (|Mapping| $ $)
              |CLIF;toTable;MM;21| |CLIF;grade;$Nni;23|
              |CLIF;gradeInvolution;2$;25| |CLIF;reverse;2$;27|
              |CLIF;conj;2$;29| |CLIF;setMode;S2B;30| (171 . |elt|) (178 . ~=)
              |CLIF;*;3$;45| |CLIF;\\/;3$;38| |CLIF;lc;3$;41| |CLIF;rc;3$;42|
              (184 . |elt|) (190 . ^) |CLIF;~;2$;46| (196 . >) (202 . |elt|)
              (208 . |setelt|) |CLIF;monomial;KL$;48| (215 . /)
              |CLIF;coefficient;$LK;49| (|OutputForm|) (221 . |coerce|)
              (226 . |coerce|) (231 . |sub|) (237 . *) (|Mapping| 107 107 107)
              (|List| 107) (243 . |reduce|) (249 . +) |CLIF;coerce;$Of;51|
              (|List| 72) (255 . |list|) (260 . |reverse|) (|Mapping| 72 72)
              (265 . |map|) '|Pn| (|List| 74) (|Matrix| 7) (271 . |matrix|)
              (276 . |vector|) (|Union| 12 '"failed")
              (|LinearSystemMatrixPackage| 7 12 12 124)
              (281 . |particularSolution|) (287 . |parts|)
              (|Union| $ '"failed") |CLIF;recip;$U;54|)
           '#(~= 292 ~ 298 |zero?| 303 |toTable| 308 |subtractIfCan| 318
              |setMode| 324 |sample| 330 |reverse| 334 |recip| 339 |rc| 344
              |one?| 350 |multivector| 355 |monomial| 360 |lc| 366 |latex| 372
              |hash| 377 |gradeInvolution| 382 |grade| 387 |ee| 392
              |ePseudoscalar| 397 |eFromBinaryMap| 401 |e| 406 |conj| 411
              |coerce| 416 |coefficient| 431 |characteristic| 437 ^ 441 |\\/|
              453 |Zero| 459 |One| 463 = 467 |/\\| 473 - 479 + 490 * 496)
           'NIL
           (CONS
            (|makeByteWordVec2| 1 '(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0))
            (CONS
             '#(|Algebra&| |Module&| NIL |Ring&| NIL NIL NIL NIL
                |AbelianGroup&| NIL NIL |AbelianMonoid&| |Monoid&| NIL
                |SemiGroup&| |AbelianSemiGroup&| |SetCategory&| NIL
                |BasicType&| NIL)
             (CONS
              '#((|Algebra| 7) (|Module| 7) (|BiModule| 7 7) (|Ring|)
                 (|RightModule| 7) (|LeftModule| 7) (|Rng|) (|LeftModule| $$)
                 (|AbelianGroup|) (|CancellationAbelianMonoid|) (|SemiRing|)
                 (|AbelianMonoid|) (|Monoid|) (|SemiRng|) (|SemiGroup|)
                 (|AbelianSemiGroup|) (|SetCategory|) (|unitsKnown|)
                 (|BasicType|) (|CoercibleTo| 107))
              (|makeByteWordVec2| 132
                                  '(1 10 9 0 11 1 9 12 0 13 1 10 15 0 16 2 19 0
                                    0 19 20 0 7 23 24 1 26 0 23 27 2 7 15 0 0
                                    28 0 7 0 30 2 7 0 0 0 31 2 7 0 0 0 33 1 7 0
                                    0 35 2 7 0 37 0 38 2 7 0 0 0 40 0 10 0 43 0
                                    9 0 44 0 26 0 45 0 7 0 46 1 7 0 37 48 2 7
                                    15 0 0 51 2 37 15 0 0 52 2 23 15 0 0 53 0
                                    10 0 54 0 9 0 55 0 26 0 56 2 58 57 0 37 59
                                    1 57 0 58 60 2 57 15 0 0 61 2 58 15 0 0 62
                                    1 63 0 37 64 1 58 0 65 66 3 70 2 69 0 2 71
                                    2 74 7 0 37 75 1 80 0 79 81 3 10 7 0 37 37
                                    92 2 63 15 0 0 93 2 12 7 0 37 98 2 63 0 0
                                    23 99 2 19 15 0 0 101 2 72 19 0 37 102 3 72
                                    19 0 37 19 103 2 7 0 0 0 105 1 7 107 0 108
                                    1 23 107 0 109 2 107 0 0 0 110 2 107 0 0 0
                                    111 2 113 107 112 0 114 2 107 0 0 0 115 1
                                    117 0 72 118 1 72 0 0 119 2 117 0 120 0 121
                                    1 124 0 123 125 1 12 0 74 126 2 128 127 124
                                    12 129 1 12 74 0 130 2 0 15 0 0 1 1 0 0 0
                                    100 1 0 15 0 1 1 0 82 83 84 1 0 82 85 86 2
                                    0 131 0 0 1 2 0 15 58 15 91 0 0 0 1 1 0 0 0
                                    89 1 0 131 0 132 2 0 0 0 0 97 1 0 15 0 1 1
                                    0 0 74 76 2 0 0 7 72 104 2 0 0 0 0 96 1 0
                                    58 0 1 1 0 63 0 1 1 0 0 0 88 1 0 23 0 87 1
                                    0 0 72 73 0 0 0 78 1 0 0 23 77 1 0 0 19 67
                                    1 0 0 0 90 1 0 0 7 50 1 0 0 37 49 1 0 107 0
                                    116 2 0 7 0 72 106 0 0 23 25 2 0 0 0 23 1 2
                                    0 0 0 19 1 2 0 0 0 0 95 0 0 0 42 0 0 0 47 2
                                    0 15 0 0 29 2 0 0 0 0 68 1 0 0 0 36 2 0 0 0
                                    0 34 2 0 0 0 0 32 2 0 0 0 7 1 2 0 0 7 0 41
                                    2 0 0 0 0 94 2 0 0 37 0 39 2 0 0 23 0 1 2 0
                                    0 19 0 1)))))
           '|lookupComplete|)) 
