Hello Samuel, Le dimanche 22 avril 2018 à 16:06 +0200, Samuel Gougeon a écrit : > Le 17/04/2018 à 18:49, Samuel Gougeon a écrit : > > Hello, > > Surprisingly, as reported in http://bugzilla.scilab.org/15534, after 30 > > years, Scilab still does > > not know how to concatenate booleans with encoded integers. > > For instance : > > --> [%f int8(-3)] > > > > Undefined operation for the given operands. > > check or define function %b_c_i for overloading. > > It is surprising, because > > For some languages like Octave, booleans are actually some numbers > > restricted to 0|1, and such > > simple concatenations are available. > > Implementing it in Scilab is trivial and does not really set any question, > > since both 0 and 1 > > are present in all Scilab integer classes. > > An implementation is proposed for Scilab 6.1 (see the bugzilla report). > > Comments are welcome. > > No comments? > > The only reason i have found to understand why this is still not implemented > would be to let the > user define its own overloads. But which alternative to casting %f=>0 %t=>1 > could we have? > The first and may be only one we could imagine would be to cast integers into > booleans, as in > [%t int8([0 -5])] => [%t %f %t] > > Why not choosing this, instead of [%t int8([0 -5])] => int8([1 0 -5])? > It's a poorer result, that can be obtained in a straightforward way as > [%t int8([0 -5])] => int8([1 0 -5])~=0
To me the whole remark is in the (still open) type conversion topic : promotion or coercion to another type. Currently in Scilab most of the operations consume doubles and output doubles ; as most of our users are not computer scientists I prefer to have promotion to double whenever possible as it is currently rather than complex type coercion rules per operations (see the current implementation in modules/ast/src/cpp/operations). For exemple, using your proposal I am not sure about user expectation on: [%f int8(-3)] [int8(0) %t] [%f 1.] // promotion to double ! Thanks, -- Clément _______________________________________________ users mailing list users@lists.scilab.org http://lists.scilab.org/mailman/listinfo/users