
(SDEFUN |OC-;characteristic;Nni;1| (($ |NonNegativeInteger|))
        (SPADCALL (QREFELT $ 9))) 

(PUT '|OC-;rank;Pi;2| '|SPADreplace| '(XLAM NIL 8)) 

(SDEFUN |OC-;rank;Pi;2| (($ |PositiveInteger|)) 8) 

(SDEFUN |OC-;coordinates;SV;3| ((|x| S) ($ |Vector| R))
        (SPADCALL
         (LIST (SPADCALL |x| (QREFELT $ 13)) (SPADCALL |x| (QREFELT $ 14))
               (SPADCALL |x| (QREFELT $ 15)) (SPADCALL |x| (QREFELT $ 16))
               (SPADCALL |x| (QREFELT $ 17)) (SPADCALL |x| (QREFELT $ 18))
               (SPADCALL |x| (QREFELT $ 19)) (SPADCALL |x| (QREFELT $ 20)))
         (QREFELT $ 23))) 

(SDEFUN |OC-;represents;VS;4| ((|v| |Vector| R) ($ S))
        (SPADCALL (SPADCALL |v| 1 (QREFELT $ 27))
                  (SPADCALL |v| 2 (QREFELT $ 27))
                  (SPADCALL |v| 3 (QREFELT $ 27))
                  (SPADCALL |v| 4 (QREFELT $ 27))
                  (SPADCALL |v| 5 (QREFELT $ 27))
                  (SPADCALL |v| 6 (QREFELT $ 27))
                  (SPADCALL |v| 7 (QREFELT $ 27))
                  (SPADCALL |v| 8 (QREFELT $ 27)) (QREFELT $ 28))) 

(SDEFUN |OC-;basis;V;5| (($ |Vector| S))
        (SPROG ((|i| NIL) (|vv| (|Vector| R)) (|res| (|Vector| S)))
               (SEQ
                (LETT |res| (SPADCALL 8 (QREFELT $ 31)) . #1=(|OC-;basis;V;5|))
                (LETT |vv| (SPADCALL 8 (QREFELT $ 32)) . #1#)
                (SEQ (LETT |i| 1 . #1#) G190
                     (COND ((|greater_SI| |i| 8) (GO G191)))
                     (SEQ
                      (SPADCALL |vv| |i| (|spadConstant| $ 25) (QREFELT $ 33))
                      (SPADCALL |res| |i| (SPADCALL |vv| (QREFELT $ 34))
                                (QREFELT $ 35))
                      (EXIT
                       (SPADCALL |vv| |i| (|spadConstant| $ 37)
                                 (QREFELT $ 33))))
                     (LETT |i| (|inc_SI| |i|) . #1#) (GO G190) G191 (EXIT NIL))
                (EXIT |res|)))) 

(SDEFUN |OC-;conjugate;2S;6| ((|x| S) ($ S))
        (SPADCALL (SPADCALL |x| (QREFELT $ 13))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 40))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 40))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 40))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 40))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 40))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 40))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 20)) (QREFELT $ 40))
                  (QREFELT $ 28))) 

(SDEFUN |OC-;map;M2S;7| ((|fn| |Mapping| R R) (|x| S) ($ S))
        (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT $ 13)) |fn|)
                  (SPADCALL (SPADCALL |x| (QREFELT $ 14)) |fn|)
                  (SPADCALL (SPADCALL |x| (QREFELT $ 15)) |fn|)
                  (SPADCALL (SPADCALL |x| (QREFELT $ 16)) |fn|)
                  (SPADCALL (SPADCALL |x| (QREFELT $ 17)) |fn|)
                  (SPADCALL (SPADCALL |x| (QREFELT $ 18)) |fn|)
                  (SPADCALL (SPADCALL |x| (QREFELT $ 19)) |fn|)
                  (SPADCALL (SPADCALL |x| (QREFELT $ 20)) |fn|) (QREFELT $ 28))) 

(SDEFUN |OC-;norm;SR;8| ((|x| S) ($ R))
        (SPADCALL
         (SPADCALL
          (SPADCALL
           (SPADCALL
            (SPADCALL
             (SPADCALL
              (SPADCALL
               (SPADCALL (SPADCALL |x| (QREFELT $ 13))
                         (SPADCALL |x| (QREFELT $ 13)) (QREFELT $ 44))
               (SPADCALL (SPADCALL |x| (QREFELT $ 14))
                         (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 44))
               (QREFELT $ 45))
              (SPADCALL (SPADCALL |x| (QREFELT $ 15))
                        (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 44))
              (QREFELT $ 45))
             (SPADCALL (SPADCALL |x| (QREFELT $ 16))
                       (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 44))
             (QREFELT $ 45))
            (SPADCALL (SPADCALL |x| (QREFELT $ 17))
                      (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 44))
            (QREFELT $ 45))
           (SPADCALL (SPADCALL |x| (QREFELT $ 18))
                     (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 44))
           (QREFELT $ 45))
          (SPADCALL (SPADCALL |x| (QREFELT $ 19)) (SPADCALL |x| (QREFELT $ 19))
                    (QREFELT $ 44))
          (QREFELT $ 45))
         (SPADCALL (SPADCALL |x| (QREFELT $ 20)) (SPADCALL |x| (QREFELT $ 20))
                   (QREFELT $ 44))
         (QREFELT $ 45))) 

(SDEFUN |OC-;=;2SB;9| ((|x| S) (|y| S) ($ |Boolean|))
        (COND
         ((SPADCALL (SPADCALL |x| (QREFELT $ 13)) (SPADCALL |y| (QREFELT $ 13))
                    (QREFELT $ 48))
          (COND
           ((SPADCALL (SPADCALL |x| (QREFELT $ 14))
                      (SPADCALL |y| (QREFELT $ 14)) (QREFELT $ 48))
            (COND
             ((SPADCALL (SPADCALL |x| (QREFELT $ 15))
                        (SPADCALL |y| (QREFELT $ 15)) (QREFELT $ 48))
              (COND
               ((SPADCALL (SPADCALL |x| (QREFELT $ 16))
                          (SPADCALL |y| (QREFELT $ 16)) (QREFELT $ 48))
                (COND
                 ((SPADCALL (SPADCALL |x| (QREFELT $ 17))
                            (SPADCALL |y| (QREFELT $ 17)) (QREFELT $ 48))
                  (COND
                   ((SPADCALL (SPADCALL |x| (QREFELT $ 18))
                              (SPADCALL |y| (QREFELT $ 18)) (QREFELT $ 48))
                    (COND
                     ((SPADCALL (SPADCALL |x| (QREFELT $ 19))
                                (SPADCALL |y| (QREFELT $ 19)) (QREFELT $ 48))
                      (SPADCALL (SPADCALL |x| (QREFELT $ 20))
                                (SPADCALL |y| (QREFELT $ 20)) (QREFELT $ 48)))
                     (#1='T NIL)))
                   (#1# NIL)))
                 (#1# NIL)))
               (#1# NIL)))
             (#1# NIL)))
           (#1# NIL)))
         (#1# NIL))) 

(SDEFUN |OC-;+;3S;10| ((|x| S) (|y| S) ($ S))
        (SPADCALL
         (SPADCALL (SPADCALL |x| (QREFELT $ 13)) (SPADCALL |y| (QREFELT $ 13))
                   (QREFELT $ 45))
         (SPADCALL (SPADCALL |x| (QREFELT $ 14)) (SPADCALL |y| (QREFELT $ 14))
                   (QREFELT $ 45))
         (SPADCALL (SPADCALL |x| (QREFELT $ 15)) (SPADCALL |y| (QREFELT $ 15))
                   (QREFELT $ 45))
         (SPADCALL (SPADCALL |x| (QREFELT $ 16)) (SPADCALL |y| (QREFELT $ 16))
                   (QREFELT $ 45))
         (SPADCALL (SPADCALL |x| (QREFELT $ 17)) (SPADCALL |y| (QREFELT $ 17))
                   (QREFELT $ 45))
         (SPADCALL (SPADCALL |x| (QREFELT $ 18)) (SPADCALL |y| (QREFELT $ 18))
                   (QREFELT $ 45))
         (SPADCALL (SPADCALL |x| (QREFELT $ 19)) (SPADCALL |y| (QREFELT $ 19))
                   (QREFELT $ 45))
         (SPADCALL (SPADCALL |x| (QREFELT $ 20)) (SPADCALL |y| (QREFELT $ 20))
                   (QREFELT $ 45))
         (QREFELT $ 28))) 

(SDEFUN |OC-;-;2S;11| ((|x| S) ($ S))
        (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT $ 13)) (QREFELT $ 40))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 40))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 40))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 40))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 40))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 40))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 40))
                  (SPADCALL (SPADCALL |x| (QREFELT $ 20)) (QREFELT $ 40))
                  (QREFELT $ 28))) 

(SDEFUN |OC-;*;R2S;12| ((|r| R) (|x| S) ($ S))
        (SPADCALL (SPADCALL |r| (SPADCALL |x| (QREFELT $ 13)) (QREFELT $ 44))
                  (SPADCALL |r| (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 44))
                  (SPADCALL |r| (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 44))
                  (SPADCALL |r| (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 44))
                  (SPADCALL |r| (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 44))
                  (SPADCALL |r| (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 44))
                  (SPADCALL |r| (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 44))
                  (SPADCALL |r| (SPADCALL |x| (QREFELT $ 20)) (QREFELT $ 44))
                  (QREFELT $ 28))) 

(SDEFUN |OC-;*;I2S;13| ((|n| |Integer|) (|x| S) ($ S))
        (SPADCALL (SPADCALL |n| (SPADCALL |x| (QREFELT $ 13)) (QREFELT $ 53))
                  (SPADCALL |n| (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 53))
                  (SPADCALL |n| (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 53))
                  (SPADCALL |n| (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 53))
                  (SPADCALL |n| (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 53))
                  (SPADCALL |n| (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 53))
                  (SPADCALL |n| (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 53))
                  (SPADCALL |n| (SPADCALL |x| (QREFELT $ 20)) (QREFELT $ 53))
                  (QREFELT $ 28))) 

(SDEFUN |OC-;coerce;RS;14| ((|r| R) ($ S))
        (SPADCALL |r| (|spadConstant| $ 37) (|spadConstant| $ 37)
                  (|spadConstant| $ 37) (|spadConstant| $ 37)
                  (|spadConstant| $ 37) (|spadConstant| $ 37)
                  (|spadConstant| $ 37) (QREFELT $ 28))) 

(SDEFUN |OC-;coerce;IS;15| ((|n| |Integer|) ($ S))
        (SPADCALL (SPADCALL |n| (QREFELT $ 56)) (|spadConstant| $ 37)
                  (|spadConstant| $ 37) (|spadConstant| $ 37)
                  (|spadConstant| $ 37) (|spadConstant| $ 37)
                  (|spadConstant| $ 37) (|spadConstant| $ 37) (QREFELT $ 28))) 

(SDEFUN |OC-;zero?;SB;16| ((|x| S) ($ |Boolean|))
        (COND
         ((SPADCALL (SPADCALL |x| (QREFELT $ 13)) (QREFELT $ 58))
          (COND
           ((SPADCALL (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 58))
            (COND
             ((SPADCALL (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 58))
              (COND
               ((SPADCALL (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 58))
                (COND
                 ((SPADCALL (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 58))
                  (COND
                   ((SPADCALL (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 58))
                    (COND
                     ((SPADCALL (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 58))
                      (SPADCALL (SPADCALL |x| (QREFELT $ 20)) (QREFELT $ 58)))
                     (#1='T NIL)))
                   (#1# NIL)))
                 (#1# NIL)))
               (#1# NIL)))
             (#1# NIL)))
           (#1# NIL)))
         (#1# NIL))) 

(SDEFUN |OC-;retract;SR;17| ((|x| S) ($ R))
        (SEQ
         (COND
          ((SPADCALL (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 58))
           (COND
            ((SPADCALL (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 58))
             (COND
              ((SPADCALL (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 58))
               (COND
                ((SPADCALL (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 58))
                 (COND
                  ((SPADCALL (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 58))
                   (COND
                    ((SPADCALL (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 58))
                     (COND
                      ((NULL
                        (SPADCALL (SPADCALL |x| (QREFELT $ 20))
                                  (QREFELT $ 58)))
                       (EXIT (|error| #1="Cannot retract octonion.")))))
                    (#2='T (EXIT (|error| #1#)))))
                  (#2# (EXIT (|error| #1#)))))
                (#2# (EXIT (|error| #1#)))))
              (#2# (EXIT (|error| #1#)))))
            (#2# (EXIT (|error| #1#)))))
          (#2# (EXIT (|error| #1#))))
         (EXIT (SPADCALL |x| (QREFELT $ 13))))) 

(SDEFUN |OC-;retractIfCan;SU;18| ((|x| S) ($ |Union| R "failed"))
        (SEQ
         (COND
          ((SPADCALL (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 58))
           (COND
            ((SPADCALL (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 58))
             (COND
              ((SPADCALL (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 58))
               (COND
                ((SPADCALL (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 58))
                 (COND
                  ((SPADCALL (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 58))
                   (COND
                    ((SPADCALL (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 58))
                     (COND
                      ((NULL
                        (SPADCALL (SPADCALL |x| (QREFELT $ 20))
                                  (QREFELT $ 58)))
                       (EXIT (CONS 1 #1="failed")))))
                    (#2='T (EXIT (CONS 1 #1#)))))
                  (#2# (EXIT (CONS 1 #1#)))))
                (#2# (EXIT (CONS 1 #1#)))))
              (#2# (EXIT (CONS 1 #1#)))))
            (#2# (EXIT (CONS 1 #1#)))))
          (#2# (EXIT (CONS 1 #1#))))
         (EXIT (CONS 0 (SPADCALL |x| (QREFELT $ 13)))))) 

(SDEFUN |OC-;coerce;SOf;19| ((|x| S) ($ |OutputForm|))
        (SPROG ((|part| (|OutputForm|)) (|z| (|OutputForm|)) (|y| (S)))
               (SEQ
                (COND
                 ((SPADCALL |x| (QREFELT $ 63))
                  (SPADCALL (|spadConstant| $ 37) (QREFELT $ 65)))
                 ((NULL
                   (SPADCALL (SPADCALL |x| (QREFELT $ 13)) (QREFELT $ 58)))
                  (SEQ
                   (LETT |y|
                         (SPADCALL (|spadConstant| $ 37)
                                   (SPADCALL |x| (QREFELT $ 14))
                                   (SPADCALL |x| (QREFELT $ 15))
                                   (SPADCALL |x| (QREFELT $ 16))
                                   (SPADCALL |x| (QREFELT $ 17))
                                   (SPADCALL |x| (QREFELT $ 18))
                                   (SPADCALL |x| (QREFELT $ 19))
                                   (SPADCALL |x| (QREFELT $ 20))
                                   (QREFELT $ 28))
                         . #1=(|OC-;coerce;SOf;19|))
                   (EXIT
                    (COND
                     ((SPADCALL |y| (QREFELT $ 63))
                      (SPADCALL (SPADCALL |x| (QREFELT $ 13)) (QREFELT $ 65)))
                     (#2='T
                      (SPADCALL
                       (SPADCALL (SPADCALL |x| (QREFELT $ 13)) (QREFELT $ 65))
                       (SPADCALL |y| (QREFELT $ 66)) (QREFELT $ 67)))))))
                 ((NULL
                   (SPADCALL (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 58)))
                  (SEQ
                   (LETT |y|
                         (SPADCALL (|spadConstant| $ 37) (|spadConstant| $ 37)
                                   (SPADCALL |x| (QREFELT $ 15))
                                   (SPADCALL |x| (QREFELT $ 16))
                                   (SPADCALL |x| (QREFELT $ 17))
                                   (SPADCALL |x| (QREFELT $ 18))
                                   (SPADCALL |x| (QREFELT $ 19))
                                   (SPADCALL |x| (QREFELT $ 20))
                                   (QREFELT $ 28))
                         . #1#)
                   (LETT |z|
                         (SEQ
                          (LETT |part| (SPADCALL '|i| (QREFELT $ 69)) . #1#)
                          (EXIT
                           (COND
                            ((SPADCALL (SPADCALL |x| (QREFELT $ 14))
                                       (|spadConstant| $ 25) (QREFELT $ 48))
                             |part|)
                            (#2#
                             (SPADCALL
                              (SPADCALL (SPADCALL |x| (QREFELT $ 14))
                                        (QREFELT $ 65))
                              |part| (QREFELT $ 70))))))
                         . #1#)
                   (EXIT
                    (COND ((SPADCALL |y| (QREFELT $ 63)) |z|)
                          (#2#
                           (SPADCALL |z| (SPADCALL |y| (QREFELT $ 66))
                                     (QREFELT $ 67)))))))
                 ((NULL
                   (SPADCALL (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 58)))
                  (SEQ
                   (LETT |y|
                         (SPADCALL (|spadConstant| $ 37) (|spadConstant| $ 37)
                                   (|spadConstant| $ 37)
                                   (SPADCALL |x| (QREFELT $ 16))
                                   (SPADCALL |x| (QREFELT $ 17))
                                   (SPADCALL |x| (QREFELT $ 18))
                                   (SPADCALL |x| (QREFELT $ 19))
                                   (SPADCALL |x| (QREFELT $ 20))
                                   (QREFELT $ 28))
                         . #1#)
                   (LETT |z|
                         (SEQ
                          (LETT |part| (SPADCALL '|j| (QREFELT $ 69)) . #1#)
                          (EXIT
                           (COND
                            ((SPADCALL (SPADCALL |x| (QREFELT $ 15))
                                       (|spadConstant| $ 25) (QREFELT $ 48))
                             |part|)
                            (#2#
                             (SPADCALL
                              (SPADCALL (SPADCALL |x| (QREFELT $ 15))
                                        (QREFELT $ 65))
                              |part| (QREFELT $ 70))))))
                         . #1#)
                   (EXIT
                    (COND ((SPADCALL |y| (QREFELT $ 63)) |z|)
                          (#2#
                           (SPADCALL |z| (SPADCALL |y| (QREFELT $ 66))
                                     (QREFELT $ 67)))))))
                 ((NULL
                   (SPADCALL (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 58)))
                  (SEQ
                   (LETT |y|
                         (SPADCALL (|spadConstant| $ 37) (|spadConstant| $ 37)
                                   (|spadConstant| $ 37) (|spadConstant| $ 37)
                                   (SPADCALL |x| (QREFELT $ 17))
                                   (SPADCALL |x| (QREFELT $ 18))
                                   (SPADCALL |x| (QREFELT $ 19))
                                   (SPADCALL |x| (QREFELT $ 20))
                                   (QREFELT $ 28))
                         . #1#)
                   (LETT |z|
                         (SEQ
                          (LETT |part| (SPADCALL '|k| (QREFELT $ 69)) . #1#)
                          (EXIT
                           (COND
                            ((SPADCALL (SPADCALL |x| (QREFELT $ 16))
                                       (|spadConstant| $ 25) (QREFELT $ 48))
                             |part|)
                            (#2#
                             (SPADCALL
                              (SPADCALL (SPADCALL |x| (QREFELT $ 16))
                                        (QREFELT $ 65))
                              |part| (QREFELT $ 70))))))
                         . #1#)
                   (EXIT
                    (COND ((SPADCALL |y| (QREFELT $ 63)) |z|)
                          (#2#
                           (SPADCALL |z| (SPADCALL |y| (QREFELT $ 66))
                                     (QREFELT $ 67)))))))
                 ((NULL
                   (SPADCALL (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 58)))
                  (SEQ
                   (LETT |y|
                         (SPADCALL (|spadConstant| $ 37) (|spadConstant| $ 37)
                                   (|spadConstant| $ 37) (|spadConstant| $ 37)
                                   (|spadConstant| $ 37)
                                   (SPADCALL |x| (QREFELT $ 18))
                                   (SPADCALL |x| (QREFELT $ 19))
                                   (SPADCALL |x| (QREFELT $ 20))
                                   (QREFELT $ 28))
                         . #1#)
                   (LETT |z|
                         (SEQ (LETT |part| (SPADCALL 'E (QREFELT $ 69)) . #1#)
                              (EXIT
                               (COND
                                ((SPADCALL (SPADCALL |x| (QREFELT $ 17))
                                           (|spadConstant| $ 25)
                                           (QREFELT $ 48))
                                 |part|)
                                (#2#
                                 (SPADCALL
                                  (SPADCALL (SPADCALL |x| (QREFELT $ 17))
                                            (QREFELT $ 65))
                                  |part| (QREFELT $ 70))))))
                         . #1#)
                   (EXIT
                    (COND ((SPADCALL |y| (QREFELT $ 63)) |z|)
                          (#2#
                           (SPADCALL |z| (SPADCALL |y| (QREFELT $ 66))
                                     (QREFELT $ 67)))))))
                 ((NULL
                   (SPADCALL (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 58)))
                  (SEQ
                   (LETT |y|
                         (SPADCALL (|spadConstant| $ 37) (|spadConstant| $ 37)
                                   (|spadConstant| $ 37) (|spadConstant| $ 37)
                                   (|spadConstant| $ 37) (|spadConstant| $ 37)
                                   (SPADCALL |x| (QREFELT $ 19))
                                   (SPADCALL |x| (QREFELT $ 20))
                                   (QREFELT $ 28))
                         . #1#)
                   (LETT |z|
                         (SEQ (LETT |part| (SPADCALL 'I (QREFELT $ 69)) . #1#)
                              (EXIT
                               (COND
                                ((SPADCALL (SPADCALL |x| (QREFELT $ 18))
                                           (|spadConstant| $ 25)
                                           (QREFELT $ 48))
                                 |part|)
                                (#2#
                                 (SPADCALL
                                  (SPADCALL (SPADCALL |x| (QREFELT $ 18))
                                            (QREFELT $ 65))
                                  |part| (QREFELT $ 70))))))
                         . #1#)
                   (EXIT
                    (COND ((SPADCALL |y| (QREFELT $ 63)) |z|)
                          (#2#
                           (SPADCALL |z| (SPADCALL |y| (QREFELT $ 66))
                                     (QREFELT $ 67)))))))
                 ((NULL
                   (SPADCALL (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 58)))
                  (SEQ
                   (LETT |y|
                         (SPADCALL (|spadConstant| $ 37) (|spadConstant| $ 37)
                                   (|spadConstant| $ 37) (|spadConstant| $ 37)
                                   (|spadConstant| $ 37) (|spadConstant| $ 37)
                                   (|spadConstant| $ 37)
                                   (SPADCALL |x| (QREFELT $ 20))
                                   (QREFELT $ 28))
                         . #1#)
                   (LETT |z|
                         (SEQ (LETT |part| (SPADCALL 'J (QREFELT $ 69)) . #1#)
                              (EXIT
                               (COND
                                ((SPADCALL (SPADCALL |x| (QREFELT $ 19))
                                           (|spadConstant| $ 25)
                                           (QREFELT $ 48))
                                 |part|)
                                (#2#
                                 (SPADCALL
                                  (SPADCALL (SPADCALL |x| (QREFELT $ 19))
                                            (QREFELT $ 65))
                                  |part| (QREFELT $ 70))))))
                         . #1#)
                   (EXIT
                    (COND ((SPADCALL |y| (QREFELT $ 63)) |z|)
                          (#2#
                           (SPADCALL |z| (SPADCALL |y| (QREFELT $ 66))
                                     (QREFELT $ 67)))))))
                 ('T
                  (SEQ (LETT |part| (SPADCALL 'K (QREFELT $ 69)) . #1#)
                       (EXIT
                        (COND
                         ((SPADCALL (SPADCALL |x| (QREFELT $ 20))
                                    (|spadConstant| $ 25) (QREFELT $ 48))
                          |part|)
                         (#2#
                          (SPADCALL
                           (SPADCALL (SPADCALL |x| (QREFELT $ 20))
                                     (QREFELT $ 65))
                           |part| (QREFELT $ 70))))))))))) 

(SDEFUN |OC-;inv;2S;20| ((|x| S) ($ S))
        (COND
         ((SPADCALL (SPADCALL |x| (QREFELT $ 72)) (|spadConstant| $ 37)
                    (QREFELT $ 48))
          (|error| "This octonion is not invertible."))
         ('T
          (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT $ 72)) (QREFELT $ 73))
                    (SPADCALL |x| (QREFELT $ 74)) (QREFELT $ 75))))) 

(SDEFUN |OC-;convert;SIf;21| ((|x| S) ($ |InputForm|))
        (SPROG ((|l| (|List| (|InputForm|))))
               (SEQ
                (LETT |l|
                      (LIST (SPADCALL '|octon| (QREFELT $ 78))
                            (SPADCALL (SPADCALL |x| (QREFELT $ 13))
                                      (QREFELT $ 79))
                            (SPADCALL (SPADCALL |x| (QREFELT $ 14))
                                      (QREFELT $ 79))
                            (SPADCALL (SPADCALL |x| (QREFELT $ 15))
                                      (QREFELT $ 79))
                            (SPADCALL (SPADCALL |x| (QREFELT $ 16))
                                      (QREFELT $ 79))
                            (SPADCALL (SPADCALL |x| (QREFELT $ 17))
                                      (QREFELT $ 79))
                            (SPADCALL (SPADCALL |x| (QREFELT $ 18))
                                      (QREFELT $ 79))
                            (SPADCALL (SPADCALL |x| (QREFELT $ 19))
                                      (QREFELT $ 79))
                            (SPADCALL (SPADCALL |x| (QREFELT $ 20))
                                      (QREFELT $ 79)))
                      |OC-;convert;SIf;21|)
                (EXIT (SPADCALL |l| (QREFELT $ 81)))))) 

(SDEFUN |OC-;<;2SB;22| ((|x| S) (|y| S) ($ |Boolean|))
        (COND
         ((SPADCALL (SPADCALL |x| (QREFELT $ 13)) (SPADCALL |y| (QREFELT $ 13))
                    (QREFELT $ 48))
          (COND
           ((SPADCALL (SPADCALL |x| (QREFELT $ 14))
                      (SPADCALL |y| (QREFELT $ 14)) (QREFELT $ 48))
            (COND
             ((SPADCALL (SPADCALL |x| (QREFELT $ 15))
                        (SPADCALL |y| (QREFELT $ 15)) (QREFELT $ 48))
              (COND
               ((SPADCALL (SPADCALL |x| (QREFELT $ 16))
                          (SPADCALL |y| (QREFELT $ 16)) (QREFELT $ 48))
                (COND
                 ((SPADCALL (SPADCALL |x| (QREFELT $ 17))
                            (SPADCALL |y| (QREFELT $ 17)) (QREFELT $ 48))
                  (COND
                   ((SPADCALL (SPADCALL |x| (QREFELT $ 18))
                              (SPADCALL |y| (QREFELT $ 18)) (QREFELT $ 48))
                    (COND
                     ((SPADCALL (SPADCALL |x| (QREFELT $ 19))
                                (SPADCALL |y| (QREFELT $ 19)) (QREFELT $ 48))
                      (SPADCALL (SPADCALL |x| (QREFELT $ 20))
                                (SPADCALL |y| (QREFELT $ 20)) (QREFELT $ 83)))
                     (#1='T
                      (SPADCALL (SPADCALL |x| (QREFELT $ 19))
                                (SPADCALL |y| (QREFELT $ 19))
                                (QREFELT $ 83)))))
                   (#1#
                    (SPADCALL (SPADCALL |x| (QREFELT $ 18))
                              (SPADCALL |y| (QREFELT $ 18)) (QREFELT $ 83)))))
                 (#1#
                  (SPADCALL (SPADCALL |x| (QREFELT $ 17))
                            (SPADCALL |y| (QREFELT $ 17)) (QREFELT $ 83)))))
               (#1#
                (SPADCALL (SPADCALL |x| (QREFELT $ 16))
                          (SPADCALL |y| (QREFELT $ 16)) (QREFELT $ 83)))))
             (#1#
              (SPADCALL (SPADCALL |x| (QREFELT $ 15))
                        (SPADCALL |y| (QREFELT $ 15)) (QREFELT $ 83)))))
           (#1#
            (SPADCALL (SPADCALL |x| (QREFELT $ 14))
                      (SPADCALL |y| (QREFELT $ 14)) (QREFELT $ 83)))))
         (#1#
          (SPADCALL (SPADCALL |x| (QREFELT $ 13)) (SPADCALL |y| (QREFELT $ 13))
                    (QREFELT $ 83))))) 

(SDEFUN |OC-;abs;SR;23| ((|x| S) ($ R))
        (SPADCALL (SPADCALL |x| (QREFELT $ 72)) (QREFELT $ 85))) 

(SDEFUN |OC-;rational?;SB;24| ((|x| S) ($ |Boolean|))
        (COND
         ((SPADCALL (SPADCALL |x| (QREFELT $ 14)) (QREFELT $ 58))
          (COND
           ((SPADCALL (SPADCALL |x| (QREFELT $ 15)) (QREFELT $ 58))
            (COND
             ((SPADCALL (SPADCALL |x| (QREFELT $ 16)) (QREFELT $ 58))
              (COND
               ((SPADCALL (SPADCALL |x| (QREFELT $ 17)) (QREFELT $ 58))
                (COND
                 ((SPADCALL (SPADCALL |x| (QREFELT $ 18)) (QREFELT $ 58))
                  (COND
                   ((SPADCALL (SPADCALL |x| (QREFELT $ 19)) (QREFELT $ 58))
                    (SPADCALL (SPADCALL |x| (QREFELT $ 20)) (QREFELT $ 58)))
                   (#1='T NIL)))
                 (#1# NIL)))
               (#1# NIL)))
             (#1# NIL)))
           (#1# NIL)))
         (#1# NIL))) 

(SDEFUN |OC-;rational;SF;25| ((|x| S) ($ |Fraction| (|Integer|)))
        (COND
         ((SPADCALL |x| (QREFELT $ 88))
          (SPADCALL (SPADCALL |x| (QREFELT $ 13)) (QREFELT $ 90)))
         ('T (|error| "Not a rational number")))) 

(SDEFUN |OC-;rationalIfCan;SU;26|
        ((|x| S) ($ |Union| (|Fraction| (|Integer|)) "failed"))
        (COND
         ((SPADCALL |x| (QREFELT $ 88))
          (CONS 0 (SPADCALL (SPADCALL |x| (QREFELT $ 13)) (QREFELT $ 90))))
         ('T (CONS 1 "failed")))) 

(DECLAIM (NOTINLINE |OctonionCategory&;|)) 

(DEFUN |OctonionCategory&| (|#1| |#2|)
  (SPROG ((|pv$| NIL) ($ NIL) (|dv$| NIL) (DV$2 NIL) (DV$1 NIL))
         (PROGN
          (LETT DV$1 (|devaluate| |#1|) . #1=(|OctonionCategory&|))
          (LETT DV$2 (|devaluate| |#2|) . #1#)
          (LETT |dv$| (LIST '|OctonionCategory&| DV$1 DV$2) . #1#)
          (LETT $ (GETREFV 96) . #1#)
          (QSETREFV $ 0 |dv$|)
          (QSETREFV $ 3
                    (LETT |pv$|
                          (|buildPredVector| 0 0
                                             (LIST
                                              (|HasCategory| |#2| '(|Field|))
                                              (|HasCategory| |#2|
                                                             '(|IntegerNumberSystem|))
                                              (|HasCategory| |#2|
                                                             '(|RealNumberSystem|))
                                              (|HasCategory| |#2|
                                                             '(|CharacteristicNonZero|))
                                              (|HasCategory| |#2|
                                                             '(|CharacteristicZero|))
                                              (|HasCategory| |#2|
                                                             '(|ConvertibleTo|
                                                               (|InputForm|)))
                                              (|HasCategory| |#2|
                                                             '(|OrderedSet|))))
                          . #1#))
          (|stuffDomainSlots| $)
          (QSETREFV $ 6 |#1|)
          (QSETREFV $ 7 |#2|)
          (SETF |pv$| (QREFELT $ 3))
          (COND
           ((|testBitVector| |pv$| 1)
            (QSETREFV $ 76 (CONS (|dispatchFunction| |OC-;inv;2S;20|) $))))
          (COND
           ((|testBitVector| |pv$| 6)
            (QSETREFV $ 82
                      (CONS (|dispatchFunction| |OC-;convert;SIf;21|) $))))
          (COND
           ((|testBitVector| |pv$| 7)
            (QSETREFV $ 84 (CONS (|dispatchFunction| |OC-;<;2SB;22|) $))))
          (COND
           ((|testBitVector| |pv$| 3)
            (QSETREFV $ 86 (CONS (|dispatchFunction| |OC-;abs;SR;23|) $))))
          (COND
           ((|testBitVector| |pv$| 2)
            (PROGN
             (QSETREFV $ 87
                       (CONS (|dispatchFunction| |OC-;rational?;SB;24|) $))
             (QSETREFV $ 91 (CONS (|dispatchFunction| |OC-;rational;SF;25|) $))
             (QSETREFV $ 93
                       (CONS (|dispatchFunction| |OC-;rationalIfCan;SU;26|)
                             $)))))
          $))) 

(MAKEPROP '|OctonionCategory&| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|local| |#2|)
              (|NonNegativeInteger|) (0 . |characteristic|)
              |OC-;characteristic;Nni;1| (|PositiveInteger|) |OC-;rank;Pi;2|
              (4 . |real|) (9 . |imagi|) (14 . |imagj|) (19 . |imagk|)
              (24 . |imagE|) (29 . |imagI|) (34 . |imagJ|) (39 . |imagK|)
              (|List| 7) (|Vector| 7) (44 . |vector|) |OC-;coordinates;SV;3|
              (49 . |One|) (|Integer|) (53 . |elt|) (59 . |octon|)
              |OC-;represents;VS;4| (|Vector| 6) (71 . |zero|) (76 . |zero|)
              (81 . |setelt!|) (88 . |represents|) (93 . |setelt!|)
              (100 . |Zero|) (104 . |Zero|) (|Vector| $) |OC-;basis;V;5|
              (108 . -) |OC-;conjugate;2S;6| (|Mapping| 7 7) |OC-;map;M2S;7|
              (113 . *) (119 . +) |OC-;norm;SR;8| (|Boolean|) (125 . =)
              |OC-;=;2SB;9| |OC-;+;3S;10| |OC-;-;2S;11| |OC-;*;R2S;12|
              (131 . *) |OC-;*;I2S;13| |OC-;coerce;RS;14| (137 . |coerce|)
              |OC-;coerce;IS;15| (142 . |zero?|) |OC-;zero?;SB;16|
              |OC-;retract;SR;17| (|Union| 7 '"failed")
              |OC-;retractIfCan;SU;18| (147 . |zero?|) (|OutputForm|)
              (152 . |coerce|) (157 . |coerce|) (162 . +) (|Symbol|)
              (168 . |coerce|) (173 . *) |OC-;coerce;SOf;19| (179 . |norm|)
              (184 . |inv|) (189 . |conjugate|) (194 . *) (200 . |inv|)
              (|InputForm|) (205 . |convert|) (210 . |convert|) (|List| $)
              (215 . |convert|) (220 . |convert|) (225 . <) (231 . <)
              (237 . |sqrt|) (242 . |abs|) (247 . |rational?|)
              (252 . |rational?|) (|Fraction| 26) (257 . |rational|)
              (262 . |rational|) (|Union| 89 '"failed") (267 . |rationalIfCan|)
              (|Union| 26 '"failed") (|Matrix| 7))
           '#(|zero?| 272 |retractIfCan| 277 |retract| 282 |represents| 287
              |rationalIfCan| 292 |rational?| 297 |rational| 302 |rank| 307
              |norm| 311 |map| 316 |inv| 322 |coordinates| 327 |convert| 332
              |conjugate| 337 |coerce| 342 |characteristic| 357 |basis| 361
              |abs| 365 = 370 < 376 - 382 + 387 * 393)
           'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 93
                                                 '(0 7 8 9 1 6 7 0 13 1 6 7 0
                                                   14 1 6 7 0 15 1 6 7 0 16 1 6
                                                   7 0 17 1 6 7 0 18 1 6 7 0 19
                                                   1 6 7 0 20 1 22 0 21 23 0 7
                                                   0 25 2 22 7 0 26 27 8 6 0 7
                                                   7 7 7 7 7 7 7 28 1 30 0 8 31
                                                   1 22 0 8 32 3 22 7 0 26 7 33
                                                   1 6 0 22 34 3 30 6 0 26 6 35
                                                   0 6 0 36 0 7 0 37 1 7 0 0 40
                                                   2 7 0 0 0 44 2 7 0 0 0 45 2
                                                   7 47 0 0 48 2 7 0 26 0 53 1
                                                   7 0 26 56 1 7 47 0 58 1 6 47
                                                   0 63 1 7 64 0 65 1 6 64 0 66
                                                   2 64 0 0 0 67 1 68 64 0 69 2
                                                   64 0 0 0 70 1 6 7 0 72 1 7 0
                                                   0 73 1 6 0 0 74 2 6 0 7 0 75
                                                   1 0 0 0 76 1 77 0 68 78 1 7
                                                   77 0 79 1 77 0 80 81 1 0 77
                                                   0 82 2 7 47 0 0 83 2 0 47 0
                                                   0 84 1 7 0 0 85 1 0 7 0 86 1
                                                   0 47 0 87 1 6 47 0 88 1 7 89
                                                   0 90 1 0 89 0 91 1 0 92 0 93
                                                   1 0 47 0 59 1 0 61 0 62 1 0
                                                   7 0 60 1 0 0 22 29 1 0 92 0
                                                   93 1 0 47 0 87 1 0 89 0 91 0
                                                   0 11 12 1 0 7 0 46 2 0 0 42
                                                   0 43 1 0 0 0 76 1 0 22 0 24
                                                   1 0 77 0 82 1 0 0 0 41 1 0 0
                                                   26 57 1 0 0 7 55 1 0 64 0 71
                                                   0 0 8 10 0 0 38 39 1 0 7 0
                                                   86 2 0 47 0 0 49 2 0 47 0 0
                                                   84 1 0 0 0 51 2 0 0 0 0 50 2
                                                   0 0 7 0 52 2 0 0 26 0
                                                   54)))))
           '|lookupComplete|)) 
