<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">Hello Denis,</div>
<div class="moz-cite-prefix"><br>
</div>
<div class="moz-cite-prefix">Le 07/05/2020 à 14:58, CRETE Denis a
écrit :<br>
</div>
<blockquote type="cite"
cite="mid:EC9DE3078260CA48826D0B33052BA9D63CC70D93@CNREXCMBX04P.core-res.rootcore.local">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
<style type="text/css" id="owaParaStyle"></style>
<div style="direction: ltr;font-family: Tahoma;color:
#000000;font-size: 10pt;">
<div>Hello,</div>
<div><br>
</div>
<div>I redefined a few functions in Scilab 6.1.0 to extend them
to arrays with 3 dimensions (formerly called hypermatrix).
Overloading works with "clean", "multiply", "left division"
and "element by element division" (after defining functions
%s_clean, %s_m_s, %s_l_s and %s_d_s).</div>
<div>
<div><br>
</div>
<div>I tried to overload function "inv" with the following
code:</div>
</div>
<div><br>
function y=%s_inv(x),<br>
if ndims(x)>2 then<br>
for k=1:size(x,3),<br>
y(:,:,k)=inv(x(:,:,k));<br>
end;<br>
else <br>
y=inv(x);<br>
end;<br>
endfunction</div>
<div><br>
</div>
<div>expecting that each layer of y is the reciprocal of
corresponding layer of x. Instead,
<br>
</div>
<div>inv(ones(1,1,2).*.rand(2,2)) returns the reciprocal of x
layer 1 in y layer 1 AND x LAYER n IN y LAYER n, WHEN n>1.
I use "layer" to designate the matrix obtain for a fixed value
the index along the 3rd dimension.</div>
<div><br>
</div>
<div>Code to reproduce the problem:</div>
<div><br>
</div>
<div>n=4; m=3;<br>
</div>
<div>M=ones(1,1,n).*.rand(m,m);</div>
<div>inv(M)</div>
<div><br>
</div>
<div>Attempts to circumvent this problem by using M^(-1) instead
of inv(M) run into the same problem (after redefining function
%s_p). Is this a bug or did I miss something ?</div>
</div>
</blockquote>
<p><br>
</p>
<p>It's a bug. inv() should display an error message inviting to
define %s_inv(), or use %s_inv().<br>
By the way, the hook to the overload existed in Scilab 5.5.2.
Hence, this issue is a regression.<br>
Could you please report it?<br>
Thanks<br>
</p>
<p>Samuel<br>
</p>
<br>
</body>
</html>