The goal of this project is to provide a link between the Octave programming language and Common-Lisp.
In signal and image processing tasks, octave/matlab is often use due to the presence of the toolboxes. Lots of users have developped their own codes. The goal of this project is to allow octave/matlab users to gently migrate to common-lisp without a complete rewritting of their code. With this package, you can :
The proposed package is running under cmucl. I need some little work to get a portable version.
Some exemple codes:
;; send a scalar (set/octave "a" 1) ;; receive the contents of any variable (get/octave "a") ;; arrays (of single-floats or double-floats) (set/octave "b" #(1.0 2.0 3.0)) ;; receive an array with double-float elements (get/octave "b" :element-type 'double-float) ;; send a complex number (set/octave "c" #c(1 2)) ;; funcall an octave function (funcall/octave "conv" #(1.0 2.0 3.0 2.0 1.0) #(-1.0 1.0)) ;; execute an octave function. (equivalent of a funcall with :nargout 0) (exec/octave "plot" #(1.0 2.0 3.0 2.0 -10.0)) ;; funcall an octave with multiple output arguments (multiple-value-list (funcall/octave "cart2pol" 1 1 :nargout 2))
This project can be downloaded here :
You can browse our CVS repository or download the current development tree via anonymous cvs, as described here