
(/VERSIONCHECK 2) 

(DEFUN |FINRALG-;discriminant;VR;1| (|v| $)
  (SPADCALL (SPADCALL |v| (QREFELT $ 11)) (QREFELT $ 12))) 

(DEFUN |FINRALG-;coordinates;2VM;2| (|v| |b| $)
  (PROG (|m| |j| |i| #0=#:G1822)
    (RETURN
      (SEQ (LETT |m|
                 (SPADCALL (QVSIZE |v|) (QVSIZE |b|)
                     (|spadConstant| $ 14) (QREFELT $ 16))
                 . #1=(|FINRALG-;coordinates;2VM;2|))
           (SEQ (LETT |j| (SPADCALL |m| (QREFELT $ 20)) . #1#)
                (LETT |i| (SPADCALL |v| (QREFELT $ 19)) . #1#)
                (LETT #0# (QVSIZE |v|) . #1#) G190
                (COND ((> |i| #0#) (GO G191)))
                (SEQ (EXIT (SPADCALL |m| |j|
                               (SPADCALL
                                   (SPADCALL |v| |i| (QREFELT $ 21))
                                   |b| (QREFELT $ 23))
                               (QREFELT $ 24))))
                (LETT |i|
                      (PROG1 (+ |i| 1) (LETT |j| (+ |j| 1) . #1#)) . #1#)
                (GO G190) G191 (EXIT NIL))
           (EXIT |m|))))) 

(DEFUN |FINRALG-;represents;VVS;3| (|v| |b| $)
  (PROG (|m| |i| #0=#:G1828 #1=#:G1825 #2=#:G1823 #3=#:G1824)
    (RETURN
      (SEQ (LETT |m| (- (SPADCALL |v| (QREFELT $ 26)) 1)
                 . #4=(|FINRALG-;represents;VVS;3|))
           (EXIT (PROGN
                   (LETT #3# NIL . #4#)
                   (SEQ (LETT |i| 1 . #4#)
                        (LETT #0# (SPADCALL (QREFELT $ 29)) . #4#) G190
                        (COND ((QSGREATERP |i| #0#) (GO G191)))
                        (SEQ (EXIT (PROGN
                                     (LETT #1#
                                      (SPADCALL
                                       (SPADCALL |v| (+ |i| |m|)
                                        (QREFELT $ 30))
                                       (SPADCALL |b| (+ |i| |m|)
                                        (QREFELT $ 31))
                                       (QREFELT $ 32)) . #4#)
                                     (COND
                                       (#3#
                                        (LETT #2#
                                         (SPADCALL #2# #1#
                                          (QREFELT $ 33)) . #4#))
                                       ('T
                                        (PROGN
                                          (LETT #2# #1# . #4#)
                                          (LETT #3# 'T . #4#)))))))
                        (LETT |i| (QSADD1 |i|) . #4#) (GO G190) G191
                        (EXIT NIL))
                   (COND (#3# #2#) ('T (|spadConstant| $ 34))))))))) 

(DEFUN |FINRALG-;traceMatrix;VM;4| (|v| $)
  (PROG (#0=#:G1832 |i| #1=#:G1833 #2=#:G1834 |j| #3=#:G1835)
    (RETURN
      (SEQ (SPADCALL
               (PROGN
                 (LETT #0# NIL . #4=(|FINRALG-;traceMatrix;VM;4|))
                 (SEQ (LETT |i| (SPADCALL |v| (QREFELT $ 19)) . #4#)
                      (LETT #1# (QVSIZE |v|) . #4#) G190
                      (COND ((> |i| #1#) #5=(GO G191)))
                      (SEQ (EXIT (LETT #0#
                                       (CONS
                                        (PROGN
                                          (LETT #2# NIL . #4#)
                                          (SEQ
                                           (LETT |j|
                                            (SPADCALL |v|
                                             (QREFELT $ 19)) . #4#)
                                           (LETT #3#
                                            (QVSIZE |v|) . #4#)
                                           G190
                                           (COND ((> |j| #3#) #5#))
                                           (SEQ
                                            (EXIT
                                             (LETT #2#
                                              (CONS
                                               (SPADCALL
                                                (SPADCALL
                                                 (SPADCALL |v| |i|
                                                  (QREFELT $ 31))
                                                 (SPADCALL |v| |j|
                                                  (QREFELT $ 31))
                                                 (QREFELT $ 36))
                                                (QREFELT $ 37))
                                               #2#) . #4#)))
                                           (LETT |j| (+ |j| 1) . #4#)
                                           #6=(GO G190) G191
                                           (EXIT (NREVERSE0 #2#))))
                                        #0#) . #4#)))
                      (LETT |i| (+ |i| 1) . #4#) #6# G191
                      (EXIT (NREVERSE0 #0#))))
               (QREFELT $ 39)))))) 

(DEFUN |FINRALG-;regularRepresentation;SVM;5| (|x| |b| $)
  (PROG (|m| #0=#:G1839 |i| #1=#:G1840)
    (RETURN
      (SEQ (LETT |m| (- (SPADCALL |b| (QREFELT $ 19)) 1)
                 . #2=(|FINRALG-;regularRepresentation;SVM;5|))
           (EXIT (SPADCALL
                     (PROGN
                       (LETT #0# NIL . #2#)
                       (SEQ (LETT |i| 1 . #2#)
                            (LETT #1# (SPADCALL (QREFELT $ 29)) . #2#)
                            G190
                            (COND ((QSGREATERP |i| #1#) (GO G191)))
                            (SEQ (EXIT (LETT #0#
                                        (CONS
                                         (SPADCALL
                                          (SPADCALL
                                           (SPADCALL |x|
                                            (SPADCALL |b| (+ |i| |m|)
                                             (QREFELT $ 31))
                                            (QREFELT $ 36))
                                           |b| (QREFELT $ 23))
                                          (QREFELT $ 42))
                                         #0#) . #2#)))
                            (LETT |i| (QSADD1 |i|) . #2#) (GO G190)
                            G191 (EXIT (NREVERSE0 #0#))))
                     (QREFELT $ 39))))))) 

(DEFUN |FiniteRankAlgebra&| (|#1| |#2| |#3|)
  (PROG (DV$1 DV$2 DV$3 |dv$| $ |pv$|)
    (RETURN
      (PROGN
        (LETT DV$1 (|devaluate| |#1|) . #0=(|FiniteRankAlgebra&|))
        (LETT DV$2 (|devaluate| |#2|) . #0#)
        (LETT DV$3 (|devaluate| |#3|) . #0#)
        (LETT |dv$| (LIST '|FiniteRankAlgebra&| DV$1 DV$2 DV$3) . #0#)
        (LETT $ (GETREFV 44) . #0#)
        (QSETREFV $ 0 |dv$|)
        (QSETREFV $ 3
            (LETT |pv$|
                  (|buildPredVector| 0 0
                      (LIST (|HasCategory| |#2|
                                '(|CharacteristicNonZero|))
                            (|HasCategory| |#2|
                                '(|CharacteristicZero|))
                            (|HasCategory| |#2| '(|Field|)))) . #0#))
        (|stuffDomainSlots| $)
        (QSETREFV $ 6 |#1|)
        (QSETREFV $ 7 |#2|)
        (QSETREFV $ 8 |#3|)
        $)))) 

(MAKEPROP '|FiniteRankAlgebra&| '|infovec|
    (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
             (|local| |#3|) (|Matrix| 7) (|Vector| $)
             (0 . |traceMatrix|) (5 . |determinant|)
             |FINRALG-;discriminant;VR;1| (10 . |Zero|)
             (|NonNegativeInteger|) (14 . |new|) (|Integer|)
             (|Vector| 6) (21 . |minIndex|) (26 . |minRowIndex|)
             (31 . |qelt|) (|Vector| 7) (37 . |coordinates|)
             (43 . |setRow!|) |FINRALG-;coordinates;2VM;2|
             (50 . |minIndex|) (55 . |One|) (|PositiveInteger|)
             (59 . |rank|) (63 . |elt|) (69 . |elt|) (75 . *) (81 . +)
             (87 . |Zero|) |FINRALG-;represents;VVS;3| (91 . *)
             (97 . |trace|) (|List| 41) (102 . |matrix|)
             |FINRALG-;traceMatrix;VM;4| (|List| 7) (107 . |parts|)
             |FINRALG-;regularRepresentation;SVM;5|)
          '#(|traceMatrix| 112 |represents| 117 |regularRepresentation|
             123 |discriminant| 129 |coordinates| 134)
          'NIL
          (CONS (|makeByteWordVec2| 1 'NIL)
                (CONS '#()
                      (CONS '#()
                            (|makeByteWordVec2| 43
                                '(1 6 9 10 11 1 9 7 0 12 0 7 0 14 3 9 0
                                  15 15 7 16 1 18 17 0 19 1 9 17 0 20 2
                                  18 6 0 17 21 2 6 22 0 10 23 3 9 0 0
                                  17 22 24 1 22 17 0 26 0 6 0 27 0 6 28
                                  29 2 22 7 0 17 30 2 18 6 0 17 31 2 6
                                  0 7 0 32 2 6 0 0 0 33 0 6 0 34 2 6 0
                                  0 0 36 1 6 7 0 37 1 9 0 38 39 1 22 41
                                  0 42 1 0 9 10 40 2 0 0 22 10 35 2 0 9
                                  0 10 43 1 0 7 10 13 2 0 9 10 10 25)))))
          '|lookupComplete|)) 
