<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Hello Pierre,<br>
<br>
That's right. The changes about the library generation was
emphasized on the forum on 2015 summer (please see <a
href="http://mailinglists.scilab.org/lib-unavailable-on-YaSp-tp4032576p4032578.html">here</a>
for instance).<br>
By the way, even before these changes, the example shown in the
lib page is awful. The only proper way to build a library is using
genlib(). This example is clearly outdated.<br>
<br>
<blockquote type="cite">I would like to avoid using 'genlib' as it
does not recursively goes through subdirectories</blockquote>
<br>
So, it is time to try using tbx_make() with proper flags.<br>
<br>
<blockquote type="cite">--> a = mlist(['myType']);<br>
<br>
--> function %myType_e(varargin)<br>
> error('My error msg')<br>
> endfunction<br>
<br>
--> a(1)<br>
at line 2 of function %myType_e <br>
<br>
Function not defined for given argument type(s),<br>
check arguments or define function %l_e for overloading.<br>
</blockquote>
<br>
This is because the prototype of a extraction overload for
A(i1,i2,..,iN) is<br>
function R = %typeOfA_e(i1,i2,...,iN,A)<br>
The last input argument is the object from which you want to
extract some component.<br>
If you specify varargin, varargin is a list(), and so you get the
given error message.<br>
<br>
<br>
<br>
Le 16/02/2017 à 18:37, Pierre Vuillemin a écrit :<br>
</div>
<blockquote
cite="mid:4da87406-ca3a-f371-2e3b-d71e0d7d5e96@pierre-vuillemin.fr"
type="cite">
<blockquote> - I'm not sure that this is specific to Scilab 6, but
I've noticed a large difference in performance for solving
linear systems A*x = b in comparison to Octave and Matlab. For
instance,<br>
<blockquote><font size="-1">n = 100;</font><br>
<font size="-1">N = 1000;</font><br>
<font size="-1">T = 0;</font><br>
<font size="-1">for i = 1:n</font><br>
<font size="-1"> A = rand(N,N);</font><br>
<font size="-1"> b = rand(N,1);</font><br>
<font size="-1"> tic();</font><br>
<font size="-1"> x = A\b;</font><br>
<font size="-1"> T = T + toc();</font><br>
<font size="-1">end</font><br>
<font size="-1">disp(T/n)</font><br>
</blockquote>
<br>
is (significantly) slower with Scilab (binaries for linux
64bits) than with Octave. Is it due to the way the underlying
lapack library is compiled?<br>
</blockquote>
</blockquote>
<br>
Did you benchmark and compare Scilab 5.5.2 an Scilab 6.0.0
performance for this example?<br>
<br>
<blockquote
cite="mid:4da87406-ca3a-f371-2e3b-d71e0d7d5e96@pierre-vuillemin.fr"
type="cite">
<blockquote> <br>
<br>
- In Scilab 5, given a variable 'x', the expression <br>
<br>
<blockquote><font size="-1">x = clear('x') </font><br>
</blockquote>
<br>
was allowed and would clean the variable 'x'. Used together with
'resume' in a function, that allowed to clean variables from the
above environment. While it might not be a very safe coding
practice, is there a way to reproduce this behaviour in Scilab 6
? <br>
</blockquote>
</blockquote>
<br>
Actually, it was formerly possible to delete a variable by assigning
a null variable to it.<br>
And primitives without output arguments -- like clear -- returned
such an object of type==0.<br>
But the definition and the management of objects of type==0 have
actually changed. In my opinion, the new management is not yet
mature. <a href="https://codereview.scilab.org/#/c/19105/">I am
updating the type() help page</a>, and i think that discussions
are not over about this question :)<br>
<br>
AFAIK, in Scilab 6, a null object can only be an undefined component
of a list:<br>
L = list("abc", , %z);<br>
type(L(2))<br>
x = L(2) // should do the same than x = clear("x") (that actually
looks like a hack :/)<br>
<br>
<br>
Regards<br>
Samuel<br>
<br>
PS : one single topic per thread is always better for mailing lists
archives<br>
<br>
</body>
</html>