;;-*-Lisp-*- (in-package goal) ;; definition of type matrix (deftype matrix (structure) ((vector vector 4 :inline :offset 0) (quad uint128 4 :offset 0) (data float 16 :offset 0) ) :method-count-assert 10 :size-assert #x40 :flag-assert #xa00000040 (:methods (transform-vectors! (_type_ (inline-array vector) (inline-array vector) int) none 9) ) ) ;; definition for method 3 of type matrix ;; INFO: this function exists in multiple non-identical object files (defmethod inspect matrix ((obj matrix)) (format #t "[~8x] ~A~%" obj 'matrix) (format #t "~Tdata[16] @ #x~X~%" (-> obj vector)) (format #t "~Tvector[4] @ #x~X~%" (-> obj vector)) (format #t "~Tquad[4] @ #x~X~%" (-> obj vector)) obj ) ;; definition of type matrix3 (deftype matrix3 (structure) ((data float 12 :offset-assert 0) (vector vector 3 :inline :offset 0) (quad uint128 3 :offset 0) ) :method-count-assert 9 :size-assert #x30 :flag-assert #x900000030 ) ;; definition for method 3 of type matrix3 ;; INFO: this function exists in multiple non-identical object files (defmethod inspect matrix3 ((obj matrix3)) (format #t "[~8x] ~A~%" obj 'matrix3) (format #t "~Tdata[12] @ #x~X~%" (-> obj data)) (format #t "~Tvector[3] @ #x~X~%" (-> obj data)) (format #t "~Tquad[3] @ #x~X~%" (-> obj data)) obj ) ;; definition of type matrix4h (deftype matrix4h (structure) ((data int16 16 :offset-assert 0) (vector4h vector4h 4 :inline :offset 0) (long int64 4 :offset 0) ) :method-count-assert 9 :size-assert #x20 :flag-assert #x900000020 ) ;; definition for method 3 of type matrix4h (defmethod inspect matrix4h ((obj matrix4h)) (format #t "[~8x] ~A~%" obj 'matrix4h) (format #t "~Tdata[16] @ #x~X~%" (-> obj data)) (format #t "~Tvector4h[4] @ #x~X~%" (-> obj data)) (format #t "~Tlong[4] @ #x~X~%" (-> obj data)) obj ) ;; definition for function matrix-copy! ;; Used lq/sq (defun matrix-copy! ((arg0 matrix) (arg1 matrix)) (let ((v1-0 (-> arg1 vector 0 quad)) (a2-0 (-> arg1 vector 1 quad)) (a3-0 (-> arg1 vector 2 quad)) (a1-1 (-> arg1 vector 3 quad)) ) (set! (-> arg0 vector 0 quad) v1-0) (set! (-> arg0 vector 1 quad) a2-0) (set! (-> arg0 vector 2 quad) a3-0) (set! (-> arg0 vector 3 quad) a1-1) ) arg0 )