[Scilab-users] {EXT} strange behaviof of function isreal

Stéphane Mottelet stephane.mottelet at utc.fr
Wed Nov 13 12:32:12 CET 2019


Le 13/11/2019 à 11:58, Samuel Gougeon a écrit :
> Dear all,
>
> Le 13/11/2019 à 11:16, Stéphane Mottelet a écrit :
>> Le 13/11/2019 à 11:09, Dang Ngoc Chan, Christophe a écrit :
>>
>>> Hello,
>>>
>>>> De : De la part de Jean-Philippe Grivet
>>>> Envoyé : mercredi 13 novembre 2019 10:50
>>>>
>>>> --> z = [1,2,3*%i]
>>>>    z  =
>>>>      1.   2.   3.i
>>>> --> isreal(z(1))
>>>>    ans  =
>>>>     F
>>>> What did I miss ? Rhank you for your help.
>>> https://antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/help.scilab.org/docs/6.0.2/en_US/brackets.html 
>>>
>>>
>>> "In some limits, brackets may be applied on a set of data having 
>>> different but compatible types. In this case, some data are 
>>> converted into the dominating type available in the set. The main 
>>> conversion rules are the following:
>>> [...]
>>> 3. The result becomes complex-encoded as soon as a complex-encoded 
>>> component -- value, polynomial, or rational -- is met in the list 
>>> (even with a null imaginary part)"
>>
>> This non-intuitive behavior will be fixed as soon as the patch
>>
>> https://codereview.scilab.org/#/c/21090/
>>
>> will be merged !
>
>
> I hope no. I would strongy disagree with it.
>
> The proper syntax for this test is *isreal(z(1), 0)*. Without its 
> second argument, isreal(z(1)) tests the encoding, not the realness. 
> This is already documented.  Still improving the isreal() 
> documentation page is planned for Scilab 6.1.0.
>
> To me, the only issue with the current isreal() implementation is that 
> when it is used with its second argument, it should work element-wise.
> Presently, it is not the case. Thus, isreal(z,0) would answer [%T %T 
> %F], while presently it returns the single %F as and([%T %T %F]). This 
> is the only point.
>
> Stéphane's proposal would make isreal(1+0*%i) returning %T,
>
No. Please take time to read the details of the commit. In the patch 
decomplexification occurs only *at extraction time*. Of course, the 
modified help page (still to be pushed) should be part of the commit to 
take into account the new behavior.

I am sorry to say that, but Scilab should not provide basic functions 
with the same name as Matlab ones but different behavior for the same 
input,  and impose a different API

> while isreal([1+0*%i, 0]) would still return %F.
> To me, this would be a far too  specific case, would be still more 
> puzzling than the current behavior, and in addition would break 
> isreal()'s consistency. Much worse than today, today's issue rather 
> being a documentation one, and isreal() and-wise behavior.
>
> In the way improving isreal() in a not back-compatible way, the only 
> consistent
>
This would be even worse, see my rematk above
>
> way that i see is to make isreal(z,tol) working element-wise. Then, we 
> would have
> --> isreal([1+0*%i, 0, %i], 0)  // => [%T %T %F]
>
> This has been somewhat discussed in thebug 14552 
> <https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/bugzilla.scilab.org/show_bug.cgi?id=14452> 
> report. The way to somewhat bypass this discussion through the 
> duplicate reported bug 14197 
> <https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/bugzilla.scilab.org/show_bug.cgi?id=16197> 
> does not cancel the first.
>
> Best regards
> Samuel
>
> PS: Thank you Stéphane for having re-posted the initial hijacking 
> question in this new thread.
>
>
> _______________________________________________
> users mailing list
> users at lists.scilab.org
> https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users

-- 
Stéphane Mottelet
Ingénieur de recherche
EA 4297 Transformations Intégrées de la Matière Renouvelable
Département Génie des Procédés Industriels
Sorbonne Universités - Université de Technologie de Compiègne
CS 60319, 60203 Compiègne cedex
Tel : +33(0)344234688
http://www.utc.fr/~mottelet

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20191113/168d6e1a/attachment.htm>


More information about the users mailing list