;; ;; Vectors ;; (define $dot-product (lambda [%v1 %v2] (with-symbols {i} (. v1~i v2_i)))) (define $V.* dot-product) (define $cross-product/fn (lambda [$fn %a %b] [|(- (fn a_2 b_3) (fn a_3 b_2)) (- (fn a_3 b_1) (fn a_1 b_3)) (- (fn a_1 b_2) (fn a_2 b_1))|])) (define $cross-product (lambda [%a %b] (cross-product/fn * a b))) (define $div (lambda [%A %xs] (trace (∇ A xs)))) (define $rot (lambda [%A %xs] (cross-product/fn ∂/∂ A xs)))