
(/VERSIONCHECK 2) 

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

(DEFUN |FINRALG-;coordinates;2VM;2| (|v| |b| $)
  (PROG (#1=#:G6443 |i| |j| |m|)
    (RETURN
     (SEQ
      (LETT |m|
            (SPADCALL (QVSIZE |v|) (QVSIZE |b|) (|spadConstant| $ 14)
                      (QREFELT $ 16))
            . #2=(|FINRALG-;coordinates;2VM;2|))
      (SEQ (LETT |j| (SPADCALL |m| (QREFELT $ 20)) . #2#)
           (LETT |i| (SPADCALL |v| (QREFELT $ 19)) . #2#)
           (LETT #1# (QVSIZE |v|) . #2#) G190 (COND ((> |i| #1#) (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) . #2#)) . #2#)
           (GO G190) G191 (EXIT NIL))
      (EXIT |m|))))) 

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

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

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

(DEFUN |FiniteRankAlgebra&| (|#1| |#2| |#3|)
  (PROG (|pv$| $ |dv$| DV$3 DV$2 DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #1=(|FiniteRankAlgebra&|))
      (LETT DV$2 (|devaluate| |#2|) . #1#)
      (LETT DV$3 (|devaluate| |#3|) . #1#)
      (LETT |dv$| (LIST '|FiniteRankAlgebra&| DV$1 DV$2 DV$3) . #1#)
      (LETT $ (GETREFV 44) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3
                (LETT |pv$|
                      (|buildPredVector| 0 0
                                         (LIST
                                          (|HasCategory| |#2|
                                                         '(|CharacteristicNonZero|))
                                          (|HasCategory| |#2|
                                                         '(|CharacteristicZero|))
                                          (|HasCategory| |#2| '(|Field|))))
                      . #1#))
      (|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|)) 
