[Gsll-devel] inverse of cl-array

Niitsuma Hirotaka hirotaka.niitsuma at gmail.com
Tue Feb 10 10:09:40 UTC 2009


I can not find convert function
#A(...) -> #m(...)

( cl-array is conversion #m -> #a )

Thus I write the following ,but that looks slow.
--------------
(defun coerce-array-to-list (in-array)
   (map 'list
           #'identity
           (make-array (array-total-size in-array)
                             :element-type (array-element-type in-array)
                             :displaced-to in-array)))
;borrow from http://groups.google.com/group/comp.lang.lisp/browse_thread/thread/a925ca60d88d4047/cc06e579dfe840a7?lnk=gst&q=displaced+array


(defun appropriate-name (element-type ar)
 (make-marray element-type  :dimensions (array-dimensions ar)
:initial-contents  (coerce-array-to-list ar))
)
---------------

usage:
( appropriate-name 'double-float #2A((1.0d0 2.0d0) (2.0d0 5.0d0)))
->
#m((1.0d0 2.0d0) (2.0d0 5.0d0)))




More information about the gsll-devel mailing list