
(/VERSIONCHECK 2) 

(DEFUN |STR;qelt| (|m| |i| |j| $)
  (PROG (#1=#:G1800)
    (RETURN
     (QAREF1
      (QAREF1
       (PROG2
           (LETT #1# |m| |STR;qelt|)
           (QCDR #1#)
         (|check-union| (QEQCAR #1# 0)
                        (|PrimitiveArray| (|PrimitiveArray| (|DoubleFloat|)))
                        #1#))
       |i|)
      |j|)))) 

(DEFUN |STR;stransform;L$;2| (|m| $)
  (PROG (|j| |i| |arr|)
    (RETURN
     (SEQ
      (COND
       ((EQUAL (QREFELT $ 6) (|SCartesian| 2))
        (SEQ
         (LETT |arr| (MAKEARR1 3 (MAKE-ARRAY 0)) . #1=(|STR;stransform;L$;2|))
         (SEQ (LETT |i| 0 . #1#) G190 (COND ((QSGREATERP |i| 2) (GO G191)))
              (SEQ (QSETAREF1 |arr| |i| (MAKEARR1 3 0.0))
                   (EXIT
                    (SEQ (LETT |j| 0 . #1#) G190
                         (COND ((QSGREATERP |j| 2) (GO G191)))
                         (SEQ
                          (EXIT
                           (QSETAREF1 (QAREF1 |arr| |i|) |j|
                                      (SPADCALL
                                       (SPADCALL |m| (+ |i| 1) (QREFELT $ 11))
                                       (+ |j| 1) (QREFELT $ 13)))))
                         (LETT |j| (QSADD1 |j|) . #1#) (GO G190) G191
                         (EXIT NIL))))
              (LETT |i| (QSADD1 |i|) . #1#) (GO G190) G191 (EXIT NIL))
         (EXIT (CONS 0 |arr|))))
       ((EQUAL (QREFELT $ 6) (|SCartesian| 3))
        (SEQ (LETT |arr| (MAKEARR1 4 (MAKE-ARRAY 0)) . #1#)
             (SEQ (LETT |i| 0 . #1#) G190 (COND ((QSGREATERP |i| 3) (GO G191)))
                  (SEQ (QSETAREF1 |arr| |i| (MAKEARR1 4 0.0))
                       (EXIT
                        (SEQ (LETT |j| 0 . #1#) G190
                             (COND ((QSGREATERP |j| 3) (GO G191)))
                             (SEQ
                              (EXIT
                               (QSETAREF1 (QAREF1 |arr| |i|) |j|
                                          (SPADCALL
                                           (SPADCALL |m| (+ |i| 1)
                                                     (QREFELT $ 11))
                                           (+ |j| 1) (QREFELT $ 13)))))
                             (LETT |j| (QSADD1 |j|) . #1#) (GO G190) G191
                             (EXIT NIL))))
                  (LETT |i| (QSADD1 |i|) . #1#) (GO G190) G191 (EXIT NIL))
             (EXIT (CONS 0 |arr|))))
       ('T
        (SEQ (|error| "invalid point type in transform constructor")
             (EXIT (SPADCALL (QREFELT $ 14)))))))))) 

(PUT '|STR;stransform;M$;3| '|SPADreplace| '(XLAM (|gen|) (CONS 1 |gen|))) 

(DEFUN |STR;stransform;M$;3| (|gen| $) (CONS 1 |gen|)) 

(DEFUN |STR;stransform;M$;4| (|cpx| $)
  (PROG (|pp|)
    (RETURN
     (SEQ
      (LETT |pp| (CONS #'|STR;stransform;M$;4!0| (VECTOR |cpx| $))
            |STR;stransform;M$;4|)
      (EXIT (CONS 1 |pp|)))))) 

(DEFUN |STR;stransform;M$;4!0| (|x| $$)
  (PROG ($ |cpx|)
    (LETT $ (QREFELT $$ 1) . #1=(|STR;stransform;M$;4|))
    (LETT |cpx| (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN
      (SPADCALL (SPADCALL (SPADCALL |x| (QREFELT $ 20)) |cpx|)
                (QREFELT $ 21)))))) 

(DEFUN |STR;stransform;L$;5| (|m| $) (CONS 2 (SPADCALL |m| (QREFELT $ 25)))) 

(DEFUN |STR;stranslate;6Df$;6|
       (|offsetx| |offsety| |offsetz| |scalex| |scaley| |scalez| $)
  (PROG (#1=#:G1865 |pp| |trConf| CA |m|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (COND
         ((EQUAL (QREFELT $ 6) (|SCartesian| 2))
          (PROGN
           (LETT #1#
                 (SPADCALL
                  (LIST (LIST |scalex| 0.0 |offsetx|)
                        (LIST 0.0 |scaley| |offsety|) (LIST 0.0 0.0 1.0))
                  (QREFELT $ 15))
                 . #2=(|STR;stranslate;6Df$;6|))
           (GO #1#))))
        (COND
         ((EQUAL (QREFELT $ 6) (|SCartesian| 3))
          (PROGN
           (LETT #1#
                 (SPADCALL
                  (LIST (LIST |scalex| 0.0 0.0 |offsetx|)
                        (LIST 0.0 |scaley| 0.0 |offsety|)
                        (LIST 0.0 0.0 |scalez| |offsetz|)
                        (LIST 0.0 0.0 0.0 1.0))
                  (QREFELT $ 15))
                 . #2#)
           (GO #1#))))
        (COND
         ((EQUAL (QREFELT $ 6) (|SConformal| 2))
          (SEQ
           (LETT |m|
                 (SPADCALL
                  (LIST (LIST 0.0 1.0 0.0 0.0) (LIST 1.0 0.0 0.0 0.0)
                        (LIST 0.0 0.0 1.0 0.0) (LIST 0.0 0.0 0.0 1.0))
                  (QREFELT $ 30))
                 . #2#)
           (LETT CA
                 (|CliffordAlgebra| 4 (|DoubleFloat|)
                                    (SPADCALL |m| (QREFELT $ 32)))
                 . #2#)
           (LETT |trConf|
                 (SPADCALL
                  (LIST 1.0 0.0 0.0 0.0 0.0 0.0
                        (MUL-DF |offsetx|
                                (SPADCALL (SPADCALL 5 -1 10 (QREFELT $ 35))
                                          (QREFELT $ 36)))
                        0.0 0.0 0.0
                        (MUL-DF |offsety|
                                (SPADCALL (SPADCALL 5 -1 10 (QREFELT $ 35))
                                          (QREFELT $ 36)))
                        0.0 0.0 0.0 0.0 0.0)
                  (|compiledLookupCheck| '|multivector|
                                         (LIST '$
                                               (LIST '|List|
                                                     (LIST '|DoubleFloat|)))
                                         CA))
                 . #2#)
           (EXIT (PROGN (LETT #1# (CONS 2 |trConf|) . #2#) (GO #1#))))))
        (COND
         ((EQUAL (QREFELT $ 6) (|SArgand|))
          (SEQ
           (LETT |pp|
                 (CONS #'|STR;stranslate;6Df$;6!0|
                       (VECTOR |offsety| |offsetx| $))
                 . #2#)
           (EXIT (PROGN (LETT #1# (CONS 1 |pp|) . #2#) (GO #1#))))))
        (EXIT (SPADCALL (QREFELT $ 14)))))
      #1# (EXIT #1#))))) 

(DEFUN |STR;stranslate;6Df$;6!0| (|x| $$)
  (PROG ($ |offsetx| |offsety|)
    (LETT $ (QREFELT $$ 2) . #1=(|STR;stranslate;6Df$;6|))
    (LETT |offsetx| (QREFELT $$ 1) . #1#)
    (LETT |offsety| (QREFELT $$ 0) . #1#)
    (RETURN
     (PROGN
      (SPADCALL
       (SPADCALL (SPADCALL |x| (QREFELT $ 20))
                 (SPADCALL |offsetx| |offsety| (QREFELT $ 37)) (QREFELT $ 38))
       (QREFELT $ 21)))))) 

(PUT '|STR;identity;$;7| '|SPADreplace| '(XLAM NIL (CONS 3 "iden"))) 

(DEFUN |STR;identity;$;7| ($) (CONS 3 "iden")) 

(DEFUN |STR;applyTransPt2| (|tr| |inpt| $)
  (PROG (|b| #1=#:G1800 |a| |vin| #2=#:G1873)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (COND
         ((QEQCAR |tr| 3)
          (PROGN (LETT #2# |inpt| . #3=(|STR;applyTransPt2|)) (GO #2#))))
        (COND
         ((QEQCAR |tr| 1)
          (SEQ
           (|sayBrightly|
            "can't transform Euclidean point using general function")
           (EXIT (PROGN (LETT #2# |inpt| . #3#) (GO #2#))))))
        (LETT |vin| (SPADCALL |inpt| (QREFELT $ 41)) . #3#)
        (LETT |a|
              (ADD-DF
               (ADD-DF
                (MUL-DF
                 (QAREF1
                  (QAREF1
                   (PROG2
                       (LETT #1# |tr| . #3#)
                       (QCDR #1#)
                     (|check-union| (QEQCAR #1# 0)
                                    (|PrimitiveArray|
                                     (|PrimitiveArray| (|DoubleFloat|)))
                                    #1#))
                   0)
                  0)
                 (SPADCALL |vin| 1 (QREFELT $ 13)))
                (MUL-DF
                 (QAREF1
                  (QAREF1
                   (PROG2
                       (LETT #1# |tr| . #3#)
                       (QCDR #1#)
                     (|check-union| (QEQCAR #1# 0)
                                    (|PrimitiveArray|
                                     (|PrimitiveArray| (|DoubleFloat|)))
                                    #1#))
                   0)
                  1)
                 (SPADCALL |vin| 2 (QREFELT $ 13))))
               (MUL-DF
                (QAREF1
                 (QAREF1
                  (PROG2
                      (LETT #1# |tr| . #3#)
                      (QCDR #1#)
                    (|check-union| (QEQCAR #1# 0)
                                   (|PrimitiveArray|
                                    (|PrimitiveArray| (|DoubleFloat|)))
                                   #1#))
                  0)
                 2)
                (SPADCALL |vin| 3 (QREFELT $ 13))))
              . #3#)
        (LETT |b|
              (ADD-DF
               (ADD-DF
                (MUL-DF
                 (QAREF1
                  (QAREF1
                   (PROG2
                       (LETT #1# |tr| . #3#)
                       (QCDR #1#)
                     (|check-union| (QEQCAR #1# 0)
                                    (|PrimitiveArray|
                                     (|PrimitiveArray| (|DoubleFloat|)))
                                    #1#))
                   1)
                  0)
                 (SPADCALL |vin| 1 (QREFELT $ 13)))
                (MUL-DF
                 (QAREF1
                  (QAREF1
                   (PROG2
                       (LETT #1# |tr| . #3#)
                       (QCDR #1#)
                     (|check-union| (QEQCAR #1# 0)
                                    (|PrimitiveArray|
                                     (|PrimitiveArray| (|DoubleFloat|)))
                                    #1#))
                   1)
                  1)
                 (SPADCALL |vin| 2 (QREFELT $ 13))))
               (MUL-DF
                (QAREF1
                 (QAREF1
                  (PROG2
                      (LETT #1# |tr| . #3#)
                      (QCDR #1#)
                    (|check-union| (QEQCAR #1# 0)
                                   (|PrimitiveArray|
                                    (|PrimitiveArray| (|DoubleFloat|)))
                                   #1#))
                  1)
                 2)
                (SPADCALL |vin| 3 (QREFELT $ 13))))
              . #3#)
        (EXIT (SPADCALL |a| |b| (QREFELT $ 45)))))
      #2# (EXIT #2#))))) 

(DEFUN |STR;applyTransPt3| (|tr| |inpt| $)
  (PROG (|c| #1=#:G1800 |b| |a| |vin| #2=#:G1880)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (COND
         ((QEQCAR |tr| 3)
          (PROGN (LETT #2# |inpt| . #3=(|STR;applyTransPt3|)) (GO #2#))))
        (COND
         ((QEQCAR |tr| 1)
          (SEQ
           (|sayBrightly|
            "can't transform Euclidean point using general function")
           (EXIT (PROGN (LETT #2# |inpt| . #3#) (GO #2#))))))
        (LETT |vin| (SPADCALL |inpt| (QREFELT $ 47)) . #3#)
        (LETT |a|
              (ADD-DF
               (ADD-DF
                (ADD-DF
                 (MUL-DF
                  (QAREF1
                   (QAREF1
                    (PROG2
                        (LETT #1# |tr| . #3#)
                        (QCDR #1#)
                      (|check-union| (QEQCAR #1# 0)
                                     (|PrimitiveArray|
                                      (|PrimitiveArray| (|DoubleFloat|)))
                                     #1#))
                    0)
                   0)
                  (SPADCALL |vin| 1 (QREFELT $ 13)))
                 (MUL-DF
                  (QAREF1
                   (QAREF1
                    (PROG2
                        (LETT #1# |tr| . #3#)
                        (QCDR #1#)
                      (|check-union| (QEQCAR #1# 0)
                                     (|PrimitiveArray|
                                      (|PrimitiveArray| (|DoubleFloat|)))
                                     #1#))
                    0)
                   1)
                  (SPADCALL |vin| 2 (QREFELT $ 13))))
                (MUL-DF
                 (QAREF1
                  (QAREF1
                   (PROG2
                       (LETT #1# |tr| . #3#)
                       (QCDR #1#)
                     (|check-union| (QEQCAR #1# 0)
                                    (|PrimitiveArray|
                                     (|PrimitiveArray| (|DoubleFloat|)))
                                    #1#))
                   0)
                  2)
                 (SPADCALL |vin| 3 (QREFELT $ 13))))
               (MUL-DF
                (QAREF1
                 (QAREF1
                  (PROG2
                      (LETT #1# |tr| . #3#)
                      (QCDR #1#)
                    (|check-union| (QEQCAR #1# 0)
                                   (|PrimitiveArray|
                                    (|PrimitiveArray| (|DoubleFloat|)))
                                   #1#))
                  0)
                 3)
                (SPADCALL |vin| 4 (QREFELT $ 13))))
              . #3#)
        (LETT |b|
              (ADD-DF
               (ADD-DF
                (ADD-DF
                 (MUL-DF
                  (QAREF1
                   (QAREF1
                    (PROG2
                        (LETT #1# |tr| . #3#)
                        (QCDR #1#)
                      (|check-union| (QEQCAR #1# 0)
                                     (|PrimitiveArray|
                                      (|PrimitiveArray| (|DoubleFloat|)))
                                     #1#))
                    1)
                   0)
                  (SPADCALL |vin| 1 (QREFELT $ 13)))
                 (MUL-DF
                  (QAREF1
                   (QAREF1
                    (PROG2
                        (LETT #1# |tr| . #3#)
                        (QCDR #1#)
                      (|check-union| (QEQCAR #1# 0)
                                     (|PrimitiveArray|
                                      (|PrimitiveArray| (|DoubleFloat|)))
                                     #1#))
                    1)
                   1)
                  (SPADCALL |vin| 2 (QREFELT $ 13))))
                (MUL-DF
                 (QAREF1
                  (QAREF1
                   (PROG2
                       (LETT #1# |tr| . #3#)
                       (QCDR #1#)
                     (|check-union| (QEQCAR #1# 0)
                                    (|PrimitiveArray|
                                     (|PrimitiveArray| (|DoubleFloat|)))
                                    #1#))
                   1)
                  2)
                 (SPADCALL |vin| 3 (QREFELT $ 13))))
               (MUL-DF
                (QAREF1
                 (QAREF1
                  (PROG2
                      (LETT #1# |tr| . #3#)
                      (QCDR #1#)
                    (|check-union| (QEQCAR #1# 0)
                                   (|PrimitiveArray|
                                    (|PrimitiveArray| (|DoubleFloat|)))
                                   #1#))
                  1)
                 3)
                (SPADCALL |vin| 4 (QREFELT $ 13))))
              . #3#)
        (LETT |c|
              (ADD-DF
               (ADD-DF
                (ADD-DF
                 (MUL-DF
                  (QAREF1
                   (QAREF1
                    (PROG2
                        (LETT #1# |tr| . #3#)
                        (QCDR #1#)
                      (|check-union| (QEQCAR #1# 0)
                                     (|PrimitiveArray|
                                      (|PrimitiveArray| (|DoubleFloat|)))
                                     #1#))
                    2)
                   0)
                  (SPADCALL |vin| 1 (QREFELT $ 13)))
                 (MUL-DF
                  (QAREF1
                   (QAREF1
                    (PROG2
                        (LETT #1# |tr| . #3#)
                        (QCDR #1#)
                      (|check-union| (QEQCAR #1# 0)
                                     (|PrimitiveArray|
                                      (|PrimitiveArray| (|DoubleFloat|)))
                                     #1#))
                    2)
                   1)
                  (SPADCALL |vin| 2 (QREFELT $ 13))))
                (MUL-DF
                 (QAREF1
                  (QAREF1
                   (PROG2
                       (LETT #1# |tr| . #3#)
                       (QCDR #1#)
                     (|check-union| (QEQCAR #1# 0)
                                    (|PrimitiveArray|
                                     (|PrimitiveArray| (|DoubleFloat|)))
                                    #1#))
                   2)
                  2)
                 (SPADCALL |vin| 3 (QREFELT $ 13))))
               (MUL-DF
                (QAREF1
                 (QAREF1
                  (PROG2
                      (LETT #1# |tr| . #3#)
                      (QCDR #1#)
                    (|check-union| (QEQCAR #1# 0)
                                   (|PrimitiveArray|
                                    (|PrimitiveArray| (|DoubleFloat|)))
                                   #1#))
                  2)
                 3)
                (SPADCALL |vin| 4 (QREFELT $ 13))))
              . #3#)
        (EXIT (SPADCALL |a| |b| |c| (QREFELT $ 48)))))
      #2# (EXIT #2#))))) 

(DEFUN |STR;applyTransCx| (|tr| |inpt| $)
  (PROG (|res| |f| #1=#:G1801 #2=#:G1883)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (COND
         ((QEQCAR |tr| 3)
          (PROGN (LETT #2# |inpt| . #3=(|STR;applyTransCx|)) (GO #2#))))
        (COND
         ((QEQCAR |tr| 0)
          (SEQ (|sayBrightly| "can't transform complex using matrix")
               (|sayBrightly|
                (SPADCALL (LIST "applyTrans(" (|mathObject2String| |tr|) ")")
                          (QREFELT $ 51)))
               (EXIT (PROGN (LETT #2# |inpt| . #3#) (GO #2#))))))
        (LETT |f|
              (PROG2
                  (LETT #1# |tr| . #3#)
                  (QCDR #1#)
                (|check-union| (QEQCAR #1# 1)
                               (|Mapping| (QREFELT $ 6) (QREFELT $ 6)) #1#))
              . #3#)
        (LETT |res| (SPADCALL |inpt| |f|) . #3#) (EXIT |res|)))
      #2# (EXIT #2#))))) 

(DEFUN |STR;applyTransConf2| (|tr| |inpt| $)
  (PROG (|res| |conjugation| |trConf| #1=#:G1802 |ptConf| CA |m| #2=#:G1887)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (COND
         ((QEQCAR |tr| 3)
          (PROGN (LETT #2# |inpt| . #3=(|STR;applyTransConf2|)) (GO #2#))))
        (COND
         ((NULL (QEQCAR |tr| 2))
          (SEQ (|sayBrightly| "this transform not compatible with conformal")
               (|sayBrightly|
                (SPADCALL (LIST "applyTrans(" (|mathObject2String| |tr|) ")")
                          (QREFELT $ 51)))
               (EXIT (PROGN (LETT #2# |inpt| . #3#) (GO #2#))))))
        (LETT |m|
              (SPADCALL
               (LIST (LIST 0.0 1.0 0.0 0.0) (LIST 1.0 0.0 0.0 0.0)
                     (LIST 0.0 0.0 1.0 0.0) (LIST 0.0 0.0 0.0 1.0))
               (QREFELT $ 30))
              . #3#)
        (LETT CA
              (|CliffordAlgebra| 4 (|DoubleFloat|)
                                 (SPADCALL |m| (QREFELT $ 32)))
              . #3#)
        (LETT |ptConf| |inpt| . #3#)
        (LETT |trConf|
              (PROG2
                  (LETT #1# |tr| . #3#)
                  (QCDR #1#)
                (|check-union| (QEQCAR #1# 2)
                               (|PrimitiveArray| (|DoubleFloat|)) #1#))
              . #3#)
        (LETT |conjugation|
              (SPADCALL
               (SPADCALL |trConf| |ptConf|
                         (|compiledLookupCheck| '* (LIST '$ '$ '$) CA))
               (SPADCALL |trConf|
                         (|compiledLookupCheck| '|reverse| (LIST '$ '$) CA))
               (|compiledLookupCheck| '* (LIST '$ '$ '$) CA))
              . #3#)
        (LETT |res| |conjugation| . #3#)
        (EXIT (SPADCALL |res| (QREFELT $ 53)))))
      #2# (EXIT #2#))))) 

(DEFUN |STR;xform;$2PT;12| (|tr| |inpt| $)
  (SEQ
   (COND
    ((EQUAL (QREFELT $ 6) (|SCartesian| 2))
     (|STR;applyTransPt2| |tr| |inpt| $))
    ((EQUAL (QREFELT $ 6) (|SCartesian| 3))
     (|STR;applyTransPt3| |tr| |inpt| $))
    ((EQUAL (QREFELT $ 6) (|SArgand|)) (|STR;applyTransCx| |tr| |inpt| $))
    ((EQUAL (QREFELT $ 6) (|SConformal| 2))
     (|STR;applyTransConf2| |tr| |inpt| $))
    ('T
     (SEQ (|error| "invalid point type in transform")
          (EXIT (SPADCALL 0.0 0.0 (QREFELT $ 45)))))))) 

(DEFUN |STR;compound2| (|tr| |inpt| $)
  (PROG (#1=#:G1898 #2=#:G1800 |j| |i| |arr|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ (LETT |arr| (MAKEARR1 3 (MAKE-ARRAY 0)) . #3=(|STR;compound2|))
            (SEQ (LETT |i| 0 . #3#) G190 (COND ((QSGREATERP |i| 2) (GO G191)))
                 (SEQ (QSETAREF1 |arr| |i| (MAKEARR1 3 0.0))
                      (EXIT
                       (SEQ (LETT |j| 0 . #3#) G190
                            (COND ((QSGREATERP |j| 2) (GO G191)))
                            (SEQ
                             (EXIT
                              (QSETAREF1 (QAREF1 |arr| |i|) |j|
                                         (ADD-DF
                                          (ADD-DF
                                           (MUL-DF
                                            (QAREF1
                                             (QAREF1
                                              (PROG2
                                                  (LETT #2# |tr| . #3#)
                                                  (QCDR #2#)
                                                (|check-union| (QEQCAR #2# 0)
                                                               (|PrimitiveArray|
                                                                (|PrimitiveArray|
                                                                 (|DoubleFloat|)))
                                                               #2#))
                                              0)
                                             |j|)
                                            (QAREF1
                                             (QAREF1
                                              (PROG2
                                                  (LETT #2# |inpt| . #3#)
                                                  (QCDR #2#)
                                                (|check-union| (QEQCAR #2# 0)
                                                               (|PrimitiveArray|
                                                                (|PrimitiveArray|
                                                                 (|DoubleFloat|)))
                                                               #2#))
                                              |i|)
                                             0))
                                           (MUL-DF
                                            (QAREF1
                                             (QAREF1
                                              (PROG2
                                                  (LETT #2# |tr| . #3#)
                                                  (QCDR #2#)
                                                (|check-union| (QEQCAR #2# 0)
                                                               (|PrimitiveArray|
                                                                (|PrimitiveArray|
                                                                 (|DoubleFloat|)))
                                                               #2#))
                                              1)
                                             |j|)
                                            (QAREF1
                                             (QAREF1
                                              (PROG2
                                                  (LETT #2# |inpt| . #3#)
                                                  (QCDR #2#)
                                                (|check-union| (QEQCAR #2# 0)
                                                               (|PrimitiveArray|
                                                                (|PrimitiveArray|
                                                                 (|DoubleFloat|)))
                                                               #2#))
                                              |i|)
                                             1)))
                                          (MUL-DF
                                           (QAREF1
                                            (QAREF1
                                             (PROG2
                                                 (LETT #2# |tr| . #3#)
                                                 (QCDR #2#)
                                               (|check-union| (QEQCAR #2# 0)
                                                              (|PrimitiveArray|
                                                               (|PrimitiveArray|
                                                                (|DoubleFloat|)))
                                                              #2#))
                                             2)
                                            |j|)
                                           (QAREF1
                                            (QAREF1
                                             (PROG2
                                                 (LETT #2# |inpt| . #3#)
                                                 (QCDR #2#)
                                               (|check-union| (QEQCAR #2# 0)
                                                              (|PrimitiveArray|
                                                               (|PrimitiveArray|
                                                                (|DoubleFloat|)))
                                                              #2#))
                                             |i|)
                                            2))))))
                            (LETT |j| (QSADD1 |j|) . #3#) (GO G190) G191
                            (EXIT NIL))))
                 (LETT |i| (QSADD1 |i|) . #3#) (GO G190) G191 (EXIT NIL))
            (EXIT (PROGN (LETT #1# (CONS 0 |arr|) . #3#) (GO #1#)))))
      #1# (EXIT #1#))))) 

(DEFUN |STR;compound3| (|tr| |inpt| $)
  (PROG (#1=#:G1907 #2=#:G1800 |j| |i| |arr|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ (LETT |arr| (MAKEARR1 4 (MAKE-ARRAY 0)) . #3=(|STR;compound3|))
            (SEQ (LETT |i| 0 . #3#) G190 (COND ((QSGREATERP |i| 3) (GO G191)))
                 (SEQ (QSETAREF1 |arr| |i| (MAKEARR1 4 0.0))
                      (EXIT
                       (SEQ (LETT |j| 0 . #3#) G190
                            (COND ((QSGREATERP |j| 3) (GO G191)))
                            (SEQ
                             (EXIT
                              (QSETAREF1 (QAREF1 |arr| |i|) |j|
                                         (ADD-DF
                                          (ADD-DF
                                           (ADD-DF
                                            (MUL-DF
                                             (QAREF1
                                              (QAREF1
                                               (PROG2
                                                   (LETT #2# |tr| . #3#)
                                                   (QCDR #2#)
                                                 (|check-union| (QEQCAR #2# 0)
                                                                (|PrimitiveArray|
                                                                 (|PrimitiveArray|
                                                                  (|DoubleFloat|)))
                                                                #2#))
                                               0)
                                              |j|)
                                             (QAREF1
                                              (QAREF1
                                               (PROG2
                                                   (LETT #2# |inpt| . #3#)
                                                   (QCDR #2#)
                                                 (|check-union| (QEQCAR #2# 0)
                                                                (|PrimitiveArray|
                                                                 (|PrimitiveArray|
                                                                  (|DoubleFloat|)))
                                                                #2#))
                                               |i|)
                                              0))
                                            (MUL-DF
                                             (QAREF1
                                              (QAREF1
                                               (PROG2
                                                   (LETT #2# |tr| . #3#)
                                                   (QCDR #2#)
                                                 (|check-union| (QEQCAR #2# 0)
                                                                (|PrimitiveArray|
                                                                 (|PrimitiveArray|
                                                                  (|DoubleFloat|)))
                                                                #2#))
                                               1)
                                              |j|)
                                             (QAREF1
                                              (QAREF1
                                               (PROG2
                                                   (LETT #2# |inpt| . #3#)
                                                   (QCDR #2#)
                                                 (|check-union| (QEQCAR #2# 0)
                                                                (|PrimitiveArray|
                                                                 (|PrimitiveArray|
                                                                  (|DoubleFloat|)))
                                                                #2#))
                                               |i|)
                                              1)))
                                           (MUL-DF
                                            (QAREF1
                                             (QAREF1
                                              (PROG2
                                                  (LETT #2# |tr| . #3#)
                                                  (QCDR #2#)
                                                (|check-union| (QEQCAR #2# 0)
                                                               (|PrimitiveArray|
                                                                (|PrimitiveArray|
                                                                 (|DoubleFloat|)))
                                                               #2#))
                                              2)
                                             |j|)
                                            (QAREF1
                                             (QAREF1
                                              (PROG2
                                                  (LETT #2# |inpt| . #3#)
                                                  (QCDR #2#)
                                                (|check-union| (QEQCAR #2# 0)
                                                               (|PrimitiveArray|
                                                                (|PrimitiveArray|
                                                                 (|DoubleFloat|)))
                                                               #2#))
                                              |i|)
                                             2)))
                                          (MUL-DF
                                           (QAREF1
                                            (QAREF1
                                             (PROG2
                                                 (LETT #2# |tr| . #3#)
                                                 (QCDR #2#)
                                               (|check-union| (QEQCAR #2# 0)
                                                              (|PrimitiveArray|
                                                               (|PrimitiveArray|
                                                                (|DoubleFloat|)))
                                                              #2#))
                                             3)
                                            |j|)
                                           (QAREF1
                                            (QAREF1
                                             (PROG2
                                                 (LETT #2# |inpt| . #3#)
                                                 (QCDR #2#)
                                               (|check-union| (QEQCAR #2# 0)
                                                              (|PrimitiveArray|
                                                               (|PrimitiveArray|
                                                                (|DoubleFloat|)))
                                                              #2#))
                                             |i|)
                                            3))))))
                            (LETT |j| (QSADD1 |j|) . #3#) (GO G190) G191
                            (EXIT NIL))))
                 (LETT |i| (QSADD1 |i|) . #3#) (GO G190) G191 (EXIT NIL))
            (EXIT (PROGN (LETT #1# (CONS 0 |arr|) . #3#) (GO #1#)))))
      #1# (EXIT #1#))))) 

(DEFUN |STR;compoundConf2| (|tr| |inpt| $)
  (PROG (#1=#:G1909 |resConf| |inptConf| #2=#:G1802 |trConf| CA |m|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (LETT |m|
              (SPADCALL
               (LIST (LIST 0.0 1.0 0.0 0.0) (LIST 1.0 0.0 0.0 0.0)
                     (LIST 0.0 0.0 1.0 0.0) (LIST 0.0 0.0 0.0 1.0))
               (QREFELT $ 30))
              . #3=(|STR;compoundConf2|))
        (LETT CA
              (|CliffordAlgebra| 4 (|DoubleFloat|)
                                 (SPADCALL |m| (QREFELT $ 32)))
              . #3#)
        (LETT |trConf|
              (PROG2
                  (LETT #2# |tr| . #3#)
                  (QCDR #2#)
                (|check-union| (QEQCAR #2# 2)
                               (|PrimitiveArray| (|DoubleFloat|)) #2#))
              . #3#)
        (LETT |inptConf|
              (PROG2
                  (LETT #2# |inpt| . #3#)
                  (QCDR #2#)
                (|check-union| (QEQCAR #2# 2)
                               (|PrimitiveArray| (|DoubleFloat|)) #2#))
              . #3#)
        (LETT |resConf|
              (SPADCALL |trConf| |inptConf|
                        (|compiledLookupCheck| '* (LIST '$ '$ '$) CA))
              . #3#)
        (EXIT (PROGN (LETT #1# (CONS 2 |resConf|) . #3#) (GO #1#)))))
      #1# (EXIT #1#))))) 

(DEFUN |STR;compound;3$;16| (|tr| |inpt| $)
  (PROG (#1=#:G1919 |fn| |in2| |in1|)
    (RETURN
     (SEQ
      (EXIT
       (SEQ
        (COND
         ((QEQCAR |tr| 3)
          (PROGN (LETT #1# |inpt| . #2=(|STR;compound;3$;16|)) (GO #1#))))
        (COND ((QEQCAR |inpt| 3) (PROGN (LETT #1# |tr| . #2#) (GO #1#))))
        (COND
         ((QEQCAR |tr| 0)
          (COND
           ((QEQCAR |inpt| 0)
            (SEQ
             (COND
              ((EQUAL (QREFELT $ 6) (|SCartesian| 2))
               (PROGN
                (LETT #1# (|STR;compound2| |tr| |inpt| $) . #2#)
                (GO #1#))))
             (EXIT
              (COND
               ((EQUAL (QREFELT $ 6) (|SCartesian| 3))
                (PROGN
                 (LETT #1# (|STR;compound3| |tr| |inpt| $) . #2#)
                 (GO #1#))))))))))
        (COND
         ((QEQCAR |tr| 1)
          (COND
           ((QEQCAR |inpt| 1)
            (SEQ (LETT |in1| (CDR |tr|) . #2#) (LETT |in2| (CDR |inpt|) . #2#)
                 (LETT |fn| (SPADCALL |in1| |in2| (QREFELT $ 56)) . #2#)
                 (EXIT (PROGN (LETT #1# (CONS 1 |fn|) . #2#) (GO #1#))))))))
        (COND
         ((QEQCAR |tr| 2)
          (COND
           ((QEQCAR |inpt| 2)
            (PROGN
             (LETT #1# (|STR;compoundConf2| |tr| |inpt| $) . #2#)
             (GO #1#))))))
        (EXIT (SPADCALL (QREFELT $ 14)))))
      #1# (EXIT #1#))))) 

(DEFUN |STR;coerce;$Of;17| (|pt| $)
  (PROG (|s|)
    (RETURN
     (SEQ (LETT |s| "err" . #1=(|STR;coerce;$Of;17|))
          (COND
           ((EQUAL (QREFELT $ 6) (|SCartesian| 2))
            (LETT |s| "2Dtransform" . #1#)))
          (COND
           ((EQUAL (QREFELT $ 6) (|SCartesian| 3))
            (LETT |s| "3Dtransform" . #1#)))
          (COND
           ((EQUAL (QREFELT $ 6) (|SArgand|))
            (LETT |s| "complex transform" . #1#)))
          (COND
           ((EQUAL (QREFELT $ 6) (|SConformal| 2))
            (LETT |s| "2D Conformal" . #1#)))
          (EXIT (SPADCALL |s| (QREFELT $ 59))))))) 

(DEFUN |STransform| (#1=#:G1922)
  (PROG ()
    (RETURN
     (PROG (#2=#:G1923)
       (RETURN
        (COND
         ((LETT #2#
                (|lassocShiftWithFunction| (LIST (|devaluate| #1#))
                                           (HGET |$ConstructorCache|
                                                 '|STransform|)
                                           '|domainEqualList|)
                . #3=(|STransform|))
          (|CDRwithIncrement| #2#))
         ('T
          (UNWIND-PROTECT (PROG1 (|STransform;| #1#) (LETT #2# T . #3#))
            (COND ((NOT #2#) (HREM |$ConstructorCache| '|STransform|))))))))))) 

(DEFUN |STransform;| (|#1|)
  (PROG (|pv$| $ |dv$| DV$1)
    (RETURN
     (PROGN
      (LETT DV$1 (|devaluate| |#1|) . #1=(|STransform|))
      (LETT |dv$| (LIST '|STransform| DV$1) . #1#)
      (LETT $ (GETREFV 61) . #1#)
      (QSETREFV $ 0 |dv$|)
      (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#))
      (|haddProp| |$ConstructorCache| '|STransform| (LIST DV$1) (CONS 1 $))
      (|stuffDomainSlots| $)
      (QSETREFV $ 6 |#1|)
      (SETF |pv$| (QREFELT $ 3))
      (QSETREFV $ 7
                (|Union|
                 (|:| |mtx|
                      (|PrimitiveArray| (|PrimitiveArray| (|DoubleFloat|))))
                 (|:| |general| (|Mapping| |#1| |#1|))
                 (|:| |multiv| (|PrimitiveArray| (|DoubleFloat|)))
                 (|:| |iden| "iden")))
      $)))) 

(MAKEPROP '|STransform| '|infovec|
          (LIST
           '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) '|Rep| (|List| 12)
              (|Integer|) (|List| 8) (0 . |elt|) (|DoubleFloat|) (6 . |elt|)
              |STR;identity;$;7| |STR;stransform;L$;2| (|Mapping| 6 6)
              |STR;stransform;M$;3| (|Complex| 12) (|SArgand|) (12 . |coerce|)
              (17 . |coerce|) (|Mapping| 18 18) |STR;stransform;M$;4|
              (|PrimitiveArray| 12) (22 . |construct|) |STR;stransform;L$;5|
              (27 . |Zero|) (31 . |One|) (|Matrix| 12) (35 . |matrix|)
              (|SquareMatrix| '4 12) (40 . |squareMatrix|) (|PositiveInteger|)
              (|Float|) (45 . |float|) (52 . |coerce|) (57 . |complex|)
              (63 . +) |STR;stranslate;6Df$;6| (|SCartesian| '2)
              (69 . |extendedCoords|) (|Fraction| 9) (74 . |Zero|) (78 . |One|)
              (82 . |spnt|) (|SCartesian| '3) (88 . |extendedCoords|)
              (93 . |spnt|) (|List| $) (|String|) (100 . |concat|)
              (|SConformal| '2) (105 . |normalisePoint|) |STR;xform;$2PT;12|
              (|MappingPackage3| 6 6 6) (110 . *) |STR;compound;3$;16|
              (|OutputForm|) (116 . |coerce|) |STR;coerce;$Of;17|)
           '#(|xform| 121 |stranslate| 127 |stransform| 137 |identity| 157
              |compound| 161 |coerce| 167)
           'NIL
           (CONS (|makeByteWordVec2| 1 'NIL)
                 (CONS '#()
                       (CONS '#()
                             (|makeByteWordVec2| 60
                                                 '(2 10 8 0 9 11 2 8 12 0 9 13
                                                   1 19 18 0 20 1 19 0 18 21 1
                                                   24 0 8 25 0 12 0 27 0 12 0
                                                   28 1 29 0 10 30 1 31 0 29 32
                                                   3 34 0 9 9 33 35 1 34 12 0
                                                   36 2 18 0 12 12 37 2 18 0 0
                                                   0 38 1 40 8 0 41 0 42 0 43 0
                                                   42 0 44 2 40 0 12 12 45 1 46
                                                   8 0 47 3 46 0 12 12 12 48 1
                                                   50 0 49 51 1 52 0 0 53 2 55
                                                   16 16 16 56 1 50 58 0 59 2 0
                                                   6 0 6 54 6 0 0 12 12 12 12
                                                   12 12 39 1 0 0 16 17 1 0 0
                                                   10 15 1 0 0 8 26 1 0 0 22 23
                                                   0 0 0 14 2 0 0 0 0 57 1 0 58
                                                   0 60)))))
           '|lookupComplete|)) 
