Liam,
I'm sorry, I now see a difference between the original gref* and your modified
version of it. I guess I forgot to reload the Lisp image last time, so both
timings had been obtained using the new gref*. There is still consing, but it's
already reduced by a factor of three. Can be reduced
Here is something similar to what I suggested, although still very unfinished.
It's probably not the proper way to write a macro, but I guess other people on
the list will know how to do it correctly. Efficient linearization can be added
in the same manner; also, the macro should be modified
Sebastian,
Can you temporarily define this and find the timing/consing for your
test case:
(defmethod gref* ((object vector-double-float) linearized-index)
(cffi:mem-aref
(foreign-pointer object)
:double
linearized-index))
(I think you don't use any matrices but if you do, define an