From: Richard James Panturis Giuly
Subject: Problem with matlisp:map-matrix!
Date: 
Message-ID: <3976FBB4.E932558@spam.com>
I'm having trouble using the map-matrix function of matlisp. I
keep getting the error "Attempt to store the wrong type of a
value in an array."

This works fine:
(setq m (matlisp:make-real-matrix  3 3))

So does this:
(matlisp:map-matrix! #'+ m)

But this does not: 
(matlisp:map-matrix! #'(lambda (dummy) 1) m)
Error: Attempt to store the wrong type of a value in an array.
  [condition type: SIMPLE-ERROR]

(using Franz ACL on Linux)

any help is appreciated


-- 
	ricky
	······@surfsouth.com
From: Tunc Simsek
Subject: Re: Problem with matlisp:map-matrix!
Date: 
Message-ID: <39772B83.47005544@robotics.eecs.berkeley.edu>
I'm cc'ing my reply to matlisp-users so that this gets archived.

ps. You may try sending matlisp specific messages to matlisp-users
or reporting bugs from the matlisp homepage:

	·············@users.sourceforge.net
	http://matlisp.sourceforge.net

I found another bug recently with map-matrix and reported that
to the bug list, I'm surprised you didn't get that error:

1. in some platforms (at least on my solaris, with CMU), map-matrix
  expects a compiled function (an interpreted function is not
specialized
	correctly)
2. in your case, map-matrix is (SETF (AREF ...) (FUNCALL ..)) where the
array is double-float, so the error is coming from there.  As a
temporary
fix, you can edit the file src/map.lisp and replace:

	(AREF STORE K) with (MATRIX-REF MAT K)

or 

	replace (FUNCALL ..) with (COERCE (FUNCALL ..)
'real-matrix-element-type)

1 or the other, but both is not needed since MATRIX-REF will coerce as
needed.

Good luck,
Tunc


Richard James Panturis Giuly wrote:
> 
> I'm having trouble using the map-matrix function of matlisp. I
> keep getting the error "Attempt to store the wrong type of a
> value in an array."
> 
> This works fine:
> (setq m (matlisp:make-real-matrix  3 3))
> 
> So does this:
> (matlisp:map-matrix! #'+ m)
> 
> But this does not:
> (matlisp:map-matrix! #'(lambda (dummy) 1) m)
> Error: Attempt to store the wrong type of a value in an array.
>   [condition type: SIMPLE-ERROR]
> 
> (using Franz ACL on Linux)
> 
> any help is appreciated
> 
> --
>         ricky
>         ······@surfsouth.com