
(/VERSIONCHECK 2) 

(DEFUN |FRAMALG-;convert;SV;1| (|x| $) (SPADCALL |x| (QREFELT $ 10))) 

(DEFUN |FRAMALG-;convert;VS;2| (|v| $) (SPADCALL |v| (QREFELT $ 12))) 

(DEFUN |FRAMALG-;traceMatrix;M;3| ($)
  (SPADCALL (SPADCALL (QREFELT $ 15)) (QREFELT $ 17))) 

(DEFUN |FRAMALG-;discriminant;R;4| ($)
  (SPADCALL (SPADCALL (QREFELT $ 15)) (QREFELT $ 19))) 

(DEFUN |FRAMALG-;regularRepresentation;SM;5| (|x| $)
  (SPADCALL |x| (SPADCALL (QREFELT $ 15)) (QREFELT $ 21))) 

(DEFUN |FRAMALG-;coordinates;VM;6| (|x| $)
  (SPADCALL |x| (SPADCALL (QREFELT $ 15)) (QREFELT $ 23))) 

(DEFUN |FRAMALG-;represents;VS;7| (|x| $)
  (SPADCALL |x| (SPADCALL (QREFELT $ 15)) (QREFELT $ 25))) 

(DEFUN |FRAMALG-;coordinates;VM;8| (|v| $)
  (PROG (|m| |j| |i| #0=#:G1828)
    (RETURN
      (SEQ (LETT |m|
                 (SPADCALL (QVSIZE |v|) (SPADCALL (QREFELT $ 28))
                     (|spadConstant| $ 29) (QREFELT $ 31))
                 . #1=(|FRAMALG-;coordinates;VM;8|))
           (SEQ (LETT |j| (SPADCALL |m| (QREFELT $ 35)) . #1#)
                (LETT |i| (SPADCALL |v| (QREFELT $ 34)) . #1#)
                (LETT #0# (QVSIZE |v|) . #1#) G190
                (COND ((> |i| #0#) (GO G191)))
                (SEQ (EXIT (SPADCALL |m| |j|
                               (SPADCALL
                                   (SPADCALL |v| |i| (QREFELT $ 36))
                                   (QREFELT $ 10))
                               (QREFELT $ 37))))
                (LETT |i|
                      (PROG1 (+ |i| 1) (LETT |j| (+ |j| 1) . #1#)) . #1#)
                (GO G190) G191 (EXIT NIL))
           (EXIT |m|))))) 

(DEFUN |FRAMALG-;regularRepresentation;SM;9| (|x| $)
  (PROG (|n| |m| |b| |j| |i| #0=#:G1832)
    (RETURN
      (SEQ (LETT |m|
                 (SPADCALL
                     (LETT |n| (SPADCALL (QREFELT $ 28))
                           . #1=(|FRAMALG-;regularRepresentation;SM;9|))
                     |n| (|spadConstant| $ 29) (QREFELT $ 31)) . #1#)
           (LETT |b| (SPADCALL (QREFELT $ 15)) . #1#)
           (SEQ (LETT |j| (SPADCALL |m| (QREFELT $ 35)) . #1#)
                (LETT |i| (SPADCALL |b| (QREFELT $ 34)) . #1#)
                (LETT #0# (QVSIZE |b|) . #1#) G190
                (COND ((> |i| #0#) (GO G191)))
                (SEQ (EXIT (SPADCALL |m| |j|
                               (SPADCALL
                                   (SPADCALL |x|
                                    (SPADCALL |b| |i| (QREFELT $ 36))
                                    (QREFELT $ 38))
                                   (QREFELT $ 10))
                               (QREFELT $ 37))))
                (LETT |i|
                      (PROG1 (+ |i| 1) (LETT |j| (+ |j| 1) . #1#)) . #1#)
                (GO G190) G191 (EXIT NIL))
           (EXIT |m|))))) 

(DEFUN |FRAMALG-;characteristicPolynomial;SUP;10| (|x| $)
  (PROG (|mat00| |mat0| |mat1|)
    (RETURN
      (SEQ (LETT |mat00| (SPADCALL |x| (QREFELT $ 39))
                 . #0=(|FRAMALG-;characteristicPolynomial;SUP;10|))
           (LETT |mat0|
                 (SPADCALL
                     (CONS #'|FRAMALG-;characteristicPolynomial;SUP;10!0|
                           $)
                     |mat00| (QREFELT $ 44)) . #0#)
           (LETT |mat1|
                 (SPADCALL (SPADCALL (QREFELT $ 28))
                     (SPADCALL (|spadConstant| $ 46) 1 (QREFELT $ 47))
                     (QREFELT $ 48)) . #0#)
           (EXIT (SPADCALL (SPADCALL |mat1| |mat0| (QREFELT $ 49))
                     (QREFELT $ 50))))))) 

(DEFUN |FRAMALG-;characteristicPolynomial;SUP;10!0| (|#1| $)
  (SPADCALL |#1| (QREFELT $ 40))) 

(DEFUN |FRAMALG-;minimalPolynomial;SUP;11| (|x| $)
  (PROG (|n| |m| #0=#:G1843 |y| |v| |i| #1=#:G1844 #2=#:G1840
             #3=#:G1838 #4=#:G1839)
    (RETURN
      (SEQ (LETT |y| (|spadConstant| $ 45)
                 . #5=(|FRAMALG-;minimalPolynomial;SUP;11|))
           (LETT |n| (SPADCALL (QREFELT $ 28)) . #5#)
           (LETT |m| (SPADCALL |n| (+ |n| 1) (QREFELT $ 52)) . #5#)
           (SEQ (LETT |i| 1 . #5#) (LETT #0# (+ |n| 1) . #5#) G190
                (COND ((QSGREATERP |i| #0#) #6=(GO G191)))
                (SEQ (SPADCALL |m| |i| (SPADCALL |y| (QREFELT $ 10))
                         (QREFELT $ 53))
                     (EXIT (LETT |y|
                                 (SPADCALL |y| |x| (QREFELT $ 38)) . #5#)))
                (LETT |i| (QSADD1 |i|) . #5#) #7=(GO G190) G191
                (EXIT NIL))
           (LETT |v| (|SPADfirst| (SPADCALL |m| (QREFELT $ 55))) . #5#)
           (EXIT (PROGN
                   (LETT #4# NIL . #5#)
                   (SEQ (LETT |i| 0 . #5#)
                        (LETT #1# (- (QVSIZE |v|) 1) . #5#) G190
                        (COND ((QSGREATERP |i| #1#) #6#))
                        (SEQ (EXIT (PROGN
                                     (LETT #2#
                                      (SPADCALL
                                       (SPADCALL |v| (+ |i| 1)
                                        (QREFELT $ 56))
                                       |i| (QREFELT $ 47)) . #5#)
                                     (COND
                                       (#4#
                                        (LETT #3#
                                         (SPADCALL #3# #2#
                                          (QREFELT $ 57)) . #5#))
                                       ('T
                                        (PROGN
                                          (LETT #3# #2# . #5#)
                                          (LETT #4# 'T . #5#)))))))
                        (LETT |i| (QSADD1 |i|) . #5#) #7# G191
                        (EXIT NIL))
                   (COND (#4# #3#) ('T (|spadConstant| $ 58))))))))) 

(DEFUN |FramedAlgebra&| (|#1| |#2| |#3|)
  (PROG (DV$1 DV$2 DV$3 |dv$| $ |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|) . #0=(|FramedAlgebra&|))
        (LETT DV$2 (|devaluate| |#2|) . #0#)
        (LETT DV$3 (|devaluate| |#3|) . #0#)
        (LETT |dv$| (LIST '|FramedAlgebra&| DV$1 DV$2 DV$3) . #0#)
        (LETT $ (GETREFV 60) . #0#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        (QSETREFV $ 7 |#2|)
        (QSETREFV $ 8 |#3|)
        (COND
          ((|HasCategory| |#2| '(|Field|))
           (QSETREFV $ 59
               (CONS (|dispatchFunction|
                         |FRAMALG-;minimalPolynomial;SUP;11|)
                     $))))
        $)))) 

(MAKEPROP '|FramedAlgebra&| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
             (|local| |#3|) (|Vector| 7) (0 . |coordinates|)
             |FRAMALG-;convert;SV;1| (5 . |represents|)
             |FRAMALG-;convert;VS;2| (|Vector| $) (10 . |basis|)
             (|Matrix| 7) (14 . |traceMatrix|)
             |FRAMALG-;traceMatrix;M;3| (19 . |discriminant|)
             |FRAMALG-;discriminant;R;4| (24 . |regularRepresentation|)
             |FRAMALG-;regularRepresentation;SM;9| (30 . |coordinates|)
             |FRAMALG-;coordinates;VM;8| (36 . |represents|)
             |FRAMALG-;represents;VS;7| (|PositiveInteger|)
             (42 . |rank|) (46 . |Zero|) (|NonNegativeInteger|)
             (50 . |new|) (|Integer|) (|Vector| 6) (57 . |minIndex|)
             (62 . |minRowIndex|) (67 . |qelt|) (73 . |setRow!|)
             (80 . *) (86 . |regularRepresentation|) (91 . |coerce|)
             (|Matrix| 8) (|Mapping| 8 7)
             (|MatrixCategoryFunctions2| 7 9 9 16 8 (|Vector| 8)
                 (|Vector| 8) 41)
             (96 . |map|) (102 . |One|) (106 . |One|)
             (110 . |monomial|) (116 . |scalarMatrix|) (122 . -)
             (128 . |determinant|)
             |FRAMALG-;characteristicPolynomial;SUP;10| (133 . |zero|)
             (139 . |setColumn!|) (|List| 9) (146 . |nullSpace|)
             (151 . |elt|) (157 . +) (163 . |Zero|)
             (167 . |minimalPolynomial|))
          '#(|traceMatrix| 172 |represents| 176 |regularRepresentation|
             181 |minimalPolynomial| 186 |discriminant| 191
             |coordinates| 195 |convert| 200 |characteristicPolynomial|
             210)
          'NIL
          (CONS (|makeByteWordVec2| 1 'NIL)
                (CONS '#()
                      (CONS '#()
                            (|makeByteWordVec2| 59
                                '(1 6 9 0 10 1 6 0 9 12 0 6 14 15 1 6
                                  16 14 17 1 6 7 14 19 2 6 16 0 14 21 2
                                  6 16 14 14 23 2 6 0 9 14 25 0 6 27 28
                                  0 7 0 29 3 16 0 30 30 7 31 1 33 32 0
                                  34 1 16 32 0 35 2 33 6 0 32 36 3 16 0
                                  0 32 9 37 2 6 0 0 0 38 1 6 16 0 39 1
                                  8 0 7 40 2 43 41 42 16 44 0 6 0 45 0
                                  7 0 46 2 8 0 7 30 47 2 41 0 30 8 48 2
                                  41 0 0 0 49 1 41 8 0 50 2 16 0 30 30
                                  52 3 16 0 0 32 9 53 1 16 54 0 55 2 9
                                  7 0 32 56 2 8 0 0 0 57 0 8 0 58 1 0 8
                                  0 59 0 0 16 18 1 0 0 9 26 1 0 16 0 22
                                  1 0 8 0 59 0 0 7 20 1 0 16 14 24 1 0
                                  0 9 13 1 0 9 0 11 1 0 8 0 51)))))
          '|lookupComplete|)) 
