[Scilab-Dev] Re: [Scilab-loc] Double value and single value in gui.pot
Vincent COUVERT
vincent.couvert at inria.fr
Wed May 28 08:31:59 CEST 2008
Hi,
We must not take mexlib.c into account for the standardization of Scilab
messages. The mexlib module is just an interface to use Matlab MEX-files
from Scilab and the data types defined in mexlib.c do not exactly match
Scilab data types.
sci_matrix is the standard data type when you use Scilab (e.g. when you
enter a=1, a is a sci_matrix in C code) and has nothing to do with
MATRIX_OF_INTEGER_DATATYPE which is the data type used when you enter
a=int8(1) for example.
So MATRIX_OF_DOUBLE_DATATYPE is not so bad even if the fact that this
data type can be real or complex...
Vincent
Yung-Jang Lee a écrit :
> Wait ,
>
> You have defined MATRIX_OF_DOUBLE_DATATYPE and
> MATRIX_OF_COMPLEX_DATATYPE in stackTypeVariable.h which are used for
> calling F77 code,
>
> ----------------------------------------------------------------
> #define MATRIX_OF_DOUBLE_DATATYPE "d"
> #define MATRIX_OF_COMPLEX_DATATYPE "z"
> #define MATRIX_OF_INTEGER_DATATYPE "i"
> #define MATRIX_OF_RATIONAL_DATATYPE "r"
> ----------------------------------------------------------------
>
> and then define sci_matrix , sci_poly .. in stack-c.h which are used
> for scilab internal,
>
> ----------------------------------------------------------
> typedef enum {
> sci_matrix = 1 ,
> sci_poly = 2 ,
> sci_boolean = 4 ,
> ..
> --------------------------------------------------------
>
> And then I find statement in function overloadtype which is called by
> getrhsvar, here all numeric type (double,integer,rational and
> complex) are maped to sci_matrix
> -------------------------------------------------
> case 'd' : case 'i' : case 'r' : case 'z' : /* numeric */
> ityp=sci_matrix;
> -------------------------------------------------------------
>
>
> Finally, in mexlib.c you use DOUBLEMATRIX to represent sci_matrix.
>
> ----------------------------------------------------
> #define DOUBLEMATRIX sci_matrix
> ------------------------------------------------------
>
> So DOUBLEMATRIX becomes union of {DOUBLE MATRIX,COMPLEX MATRIX,
> INTEGER MATRIX...}
> .
>
> I think DOUBLEMATRIX defined in mexlib.c cause confusion and the
> second row in table of 'data type nameing' in ScilabWiki page,
>
> http://wiki.scilab.org/Localization_in_English_-_Standard_messages
>
> should be changed to
>
> constant : sci_matrix : -->a generic numeric type or
> union of MATRIX_OF_DOUBLE_DATATYPE,
> MATRIX_OF_COMPLEX_DATATYPE,
> MATRIX_OF_INTEGER_DATATYPE
> MATRIX_OF_RATIONAL_DATATYPE
>
> , sci_matrix is not just MATRIX_OF_DOUBLE_DATATYPE.
>
>
> I think change MATRIX_OF_DOUBLE_DATATYPE to MATRIX_OF_REAL_OR_COMPLEX
>
> _DATATYPE will cause trouble, because MATRIX_OF_DOUBLE_DATATYPE is
> used heavily in calling F77 code.
>
>
> sci_matrix may has a generic name 'MATRIX_OF_NUMERIC_DATATYPE' and
> let MATRIX_OF_DOUBLE_DATATYPE to a represent (double precision ) real
> matrix just like its role in F77 code.
>
> YungLee
>
>
>
> 2008/5/27 Sylvestre Ledru <sylvestre.ledru at inria.fr
> <mailto:sylvestre.ledru at inria.fr>>:
>
> Hmmm, after a quick look with Vincent C. (who is also on this mailing
> list), we realize that, yes, 'MATRIX_OF_DOUBLE_DATATYPE' is badly
> choose name in the source. It is causing confusion in the code.
> We are going to rename it to something like
> MATRIX_OF_REAL_OR_COMPLEX_DATATYPE
> Any comments on this?
>
> > To avoid mistake, use 'a real' if it really need a real, 'real
> > matrix' if we need a real matrix or 'real or complex matrix' if we
> > need a generic data.
> Yep, we are reading all messages (you can imagine how sexy it is) and
> changing thme.
>
> Sylvestre
>
> PS: I c/c the dev mailing list since it is border-line.
>
> Le mardi 27 mai 2008 à 20:08 +0800, Yung-Jang Lee a écrit :
> > If we ever trace the code, (for example GUI\sci_gateway\c
> > \sci_delmenu.c)
> >
> >
> ------------------------------------------------------------------------------------------------------
> > // Unset a Menu a Scilab Graphic Window
> > if (VarType(1) != sci_matrix)
> > {
> > Scierror(999, _("%s: Wrong type for first input argument:
> > Double value expected.\n"),fname);
> > return FALSE;
> > }
> > GetRhsVar(1, MATRIX_OF_DOUBLE_DATATYPE, &nbRow, &nbCol,
> > &stkAdr);
> >
> ------------------------------------------------------------------------------------------------------
> > 'Double value' always maps to 'MATRIX_OF_DOUBLE_DATATYPE' which
> means
> > 'real or complex matrix' in Scilab. (Memory representation of
> > variables or
> > http://wiki.scilab.org/Localization_in_English_-_Standard_messages
> > ).
> >
> > But if we follow the gui context then 'Double value' seems to
> mean 'a
> > real' (I don't expect to read any complex value in GUI
> applications).
> >
> > The use of 'Double value' causes trouble in interpretation of the
> > meaning, especially if coupled with the use of 'Single value' which
> > means 1x1 matrix.
> >
> > To avoid mistake, use 'a real' if it really need a real, 'real
> > matrix' if we need a real matrix or 'real or complex matrix' if we
> > need a generic data.
> >
> >
> > YungLee
> >
> > 2008/5/27 Shiqi Yu <shiqi.yu at gmail.com <mailto:shiqi.yu at gmail.com>>:
> > I think they are all means a double float point real
> > scalar(1x1 matrix), but we can't replace them with 'real or
> > complex matrix'.
> > First, if we use 'matrix', users will input a MxN (M,N>1)
> > matrix.
> > Second, I think they must be real and can't be complex.
> >
> >
> > 2008/5/27 Yung-Jang Lee <yjlee123 at gmail.com
> <mailto:yjlee123 at gmail.com>>:
> >
> >
> > Hi all,
> >
> > In gui.pot , I found following different messages
> >
> > 'A double value expected',
> > 'A double expected',
> > 'Scalar value expected',
> > 'A value expected',
> > 'Single value expected'
> >
> > and they all means 'A real or complex'.
> >
> > I module gui, 'double value' means 'real or complex
> > matrix', 'single value' means '1x1 matrix' and 'A..'
> > also means '1x1 matrix' . Follow this way, we
> have
> >
> > 'A double vaule' == 'Single value' == 'A value'.
> >
> > I think this induce unnecessary mistake. It is
> better
> > to replace 'double value' to 'real or complex
> matrix'
> > or just 'matrix' in gui module.
> >
> > YungLee
> >
> >
> >
> >
> > --
> > Shiqi Yu
> > Shenzhen Institute of Advanced Technology,
> > Chinese Academy of Sciences.
> > Homepage: http://yushiqi.cn
> >
>
>
--
==============================================
Vincent COUVERT
Centre de Recherche INRIA Paris-Rocquencourt
Domaine de Voluceau - B.P. 105
78153 Le Chesnay Cedex
==============================================
Equipe Projet SCILAB
Bâtiment 1B - Bureau 013
Email : vincent.couvert at inria.fr
Tél : +33 (0)1 39 63 54 46
Fax : +33 (0)1 39 63 55 94
==============================================
More information about the dev
mailing list