diff --git a/antik/linear-algebra.lisp b/antik/linear-algebra.lisp
new file mode 100644
index 0000000000000000000000000000000000000000..2eb08c53ec99d885489796d9309f3e489a8deef2
--- /dev/null
+++ b/antik/linear-algebra.lisp
@@ -0,0 +1,45 @@
+;; Define generic operators for GSL functions
+;; Liam Healy 2011-01-01 09:51:47EST linear-algebra.lisp
+;; Time-stamp: <2011-01-01 10:58:18EST linear-algebra.lisp>
+;; $Id: $
+
+(in-package :antik)
+
+(defmethod *i ((a grid:foreign-array) (b grid:foreign-array))
+  (gsl:matrix-product a b))
+
+(defmethod *i ((a grid:foreign-array) (b number))
+  (gsl:scale b a))
+
+(defmethod *i ((a number) (b grid:foreign-array))
+  (gsl:scale a b))
+
+(defmethod /i ((a grid:foreign-array) (b number))
+  (gsl:scale (cl:/ b) a))
+
+(defmethod +i ((a grid:foreign-array) (b grid:foreign-array))
+  (gsl:elt+ a b))
+
+(defmethod +i ((a grid:foreign-array) (b number))
+  (gsl:elt+ a b))
+
+(defmethod +i ((a number) (b grid:foreign-array))
+  (gsl:elt+ b a))
+
+(defmethod -i ((a grid:foreign-array) (b grid:foreign-array))
+  (gsl:elt- a b))
+
+(defmethod -i ((a grid:foreign-array) (b number))
+  (gsl:elt+ a (cl:- b)))
+
+(defmethod -i ((a number) (b grid:foreign-array))
+  (gsl:elt+ (- b) a))
+
+(defmethod expt ((a grid:matrix) (b integer))
+  (cond ((= 1 b) a)
+	((plusp b)		   ; use addition-chain exponentiation
+	 (* a (expt a (1- b))))
+	((minusp b)
+	 (expt (gsl:invert-matrix a) (- b)))
+	;; zero exponent; need to figure out non-square matrix
+	(t (grid:identity-matrix (grid:dim0 a)))))
diff --git a/gsll.asd b/gsll.asd
index 8eaf9bf0b486933f708b0847eb36ba8ba7435318..d2496314d200256fce69c379db1f8718a21f1092 100644
--- a/gsll.asd
+++ b/gsll.asd
@@ -1,8 +1,8 @@
 ;; Definition of GSLL system 
 ;; Liam Healy
-;; Time-stamp: <2010-08-13 11:36:52EDT gsll.asd>
+;; Time-stamp: <2011-01-01 10:57:50EST gsll.asd>
 ;;
-;; Copyright 2006, 2007, 2008, 2009, 2010 Liam M. Healy
+;; Copyright 2006, 2007, 2008, 2009, 2010, 2011 Liam M. Healy
 ;; Distributed under the terms of the GNU General Public License
 ;;
 ;; This program is free software: you can redistribute it and/or modify
@@ -30,7 +30,7 @@
   :version "0"
   :author "Liam M. Healy"
   :licence "GPL v3"
-  :depends-on (foreign-array grid cffi cffi-grovel trivial-garbage #+fsbv fsbv)
+  :depends-on (antik cffi-grovel trivial-garbage #+fsbv fsbv)
   :components
   ((:module init
 	    :components
@@ -266,4 +266,8 @@
 	    :components
 	    ((cffi-grovel:grovel-file "mksa")
 	     (cffi-grovel:grovel-file "cgsm")
-	     (:file export)))))
+	     (:file export)))
+   (:module antik
+	    :depends-on (init linear-algebra)
+	    :components
+	    ((:file "linear-algebra")))))