This implements various linear algebra and other math operations. Much of this code is originally from Jeff Siskind's QobiScheme.
- (define-structure line-segment p q)
- (p l)
- (q l)
- (collinear? l1 l2)
- (point-on-line-segment? r l)
- (intersection-point l1 l2)
- (cross? l1 l2)
- (intersect? l1 l2)
- (line-tangent l)
- (normal-2d l)
- (line-segment-length l)
- (read-line-segments-from-file pathname)
- (write-line-segments-to-file line-segments pathname)
- (x v)
- (y v)
- (z v)
- (dot u v)
- (cross-2d u v)
- (cross u v)
- (v+ u v)
- (v- u v)
- (k*v k v)
- (v*k v k)
- (k+v k v)
- (v+k v k)
- (v/k v k)
- (v* u v)
- (v/ u v)
- (v= u v)
- (rotate-90 u)
- (rotate-180 u)
- (rotate-270 u)
- (perpendicular? u v)
- (parallel? u v)
- (magnitude-squared v)
- (magnitude v)
- (unit v)
- (distance-squared u v)
- (distance u v)
- (clockwise-angle? u v w)
- (clockwise-or-same-angle? u v w)
- (append-vector vec1 vec2)
- (matrix? v)
- (list->matrix l)
- (make-matrix m n . &rest)
- (make-3-by-3-matrix a11 a12 a13 a21 a22 a23 a31 a32 a33)
- (matrix-copy m)
- (matrix-rows a)
- (matrix-columns a)
- (matrix-ref a i j)
- (matrix-set! a i j x)
- (matrix-row-ref a i)
- (matrix-column-ref a j)
- (matrix-row-set! a i v)
- (vector->row-matrix v)
- (vector->column-matrix v)
- (m+ a b)
- (m- a b)
- (m+k m k)
- (k+m k m)
- (m*v a v)
- (transpose-matrix a)
- (outer-product f u v)
- (self-outer-product f v)
- (m* a b)
- (m*. a b)
- (m/. a b)
- (v*m v a)
- (k*m k m)
- (m*k m k)
- (m/k m k)
- (v*m*v v m)
- (determinant a)
- (invert-matrix a)
- (simplex a m1 m2 m3)
- (jacobi a)
- (eigenvalues a)
- (eigenvectors a)
- (vector->diagonal-matrix v)
- (identity-matrix n)
- (clip-eigenvalues a v)
- (eigenvector-angle1 m)
- (eigenvector-angle2 m)
- (left-pseudo-inverse m)
- (right-pseudo-inverse m)
- (ref-1d m a)
- (ref-2d m a b)
- (ref-3d m a b c)
- (ref-4d m a b c d)
- (ref-5d m a b c d e)
- (map-n-vector-2d f m n)
- (map-n-vector-3d f m n p)
- (map-n-vector-4d f m n p q)
- (map-n-vector-5d f m n p q r)
- (matrix-sum f n i)
- (matrix-sum-2d f m n i)
- (shape-matrix v c)
- (unshape-matrix m)
- (crop m x y w h)
- (matrix-ref-nd m . is)
- (matrix-3d-ref a s i j)
- (matrix-set-nd! m v . is)
- (matrix-3d-set! a v s i j)
- (map-matrix-nd f m n)
- (for-each-matrix-nd f m n)
- (map-matrix f m)
- (for-each-matrix f m)
- (map-matrix-3d f m)
- (for-each-matrix-3d f m)
- (map-n-matrix f i j)
- (for-each-n-matrix f i j)
- (map-indexed-matrix f m)
- (for-each-indexed-matrix f m)
- (map-indexed-matrix-3d f p)
- (for-each-indexed-matrix-3d f p)
- (define-structure sparse-matrix row column blank)
- (define-structure sparse-matrix-row element i up down)
- (define-structure sparse-matrix-column element j left right)
- (define-structure sparse-matrix-element value i up down j left right)
- (create-sparse-matrix blank)
- (sparse-matrix-ref sparse-matrix i j)
- (every-n-2d p v w)
- (every-n-3d p v w x)
- (every-n-4d p v w x y)
- (every-n-5d p v w x y z)
- (product-2d f m n)
- (sum-2d f m n)
- (sum-3d f m n p)
- (sum-4d f m n p q)
- (sum-pairs f m)
- (vector-sum f n i)
- (vector-sum-2d f m n i)
- (sum-f f l)
- (sum-vector v)
- (sum-vector-f f v)
- (list-mean p)
- (list-covariance l)
- (list-variance s)
- (list-skewness l)
- (list-kurtosis l)
- (list-correlation l1 l2)
- (vector-mean v)
- (vector-variance v)
- (vector-skewness v)
- (vector-kurtosis v)
- (vector-correlation v1 v2)
- (coefficient-of-bimodality v)
- (vectors-mean values)
- (vectors-variance mu values)
- (mahalanobis-distance val mu isigma)
- (frequencies l)
- linear-algebra:epsilon*
- pi
- half-pi
- two-pi
- minus-pi
- two-pi/360
- three-sixty/two-pi
- (sqr x)
- (quadratic1 a b c)
- (quadratic2 a b c)
Copyright 2010-2012 Purdue University. All rights reserved.
Contact Andrei Barbu, [email protected].
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see http://www.gnu.org/licenses.