* Bug 16683 fixed [m2sci] fix & improvements 51/21751/9
Samuel GOUGEON [Mon, 3 May 2021 03:48:41 +0000 (05:48 +0200)]
 http://bugzilla.scilab.org/16683

1) Extend the set of supported (Scilab) internal data types, without which
   some bugs can't be fixed, and improving or extending supported conversions
   won't be possible:
   a) Missing vtype=Function added, with property Macro|Builtin|?
   b) Missing vtype=Polynomial added, with property Real|Complex|?
   c) Missing properties (in addition to Unknown) added, for existing vtypes:
      Int: : "int8", "int16", "int32", "int64", "uint8", "uint16", "uint32", "uint64"
      Handle: "Figure", "Axes".
      String: String, Char (to distinguish "string" from 'char' (Matlab>2018).
          Octave has only char). This is required before implementing the
  parsing of "strings" in concurrence to to 'chars'.
      Boolean:
         - The default property is now Boolean instead of Real (was misleading).
         - New property value: Sparse. (Currently, Sparse boolean are not supported).
  d) Void: Removed. this vtype defined in m2sci() was used nowhere in the whole m2sci.
           BTW, not sure that there is a single way in Matlab/Octave to get a void element.
  e) Type(), m2sci() and m2scideclare() upgraded accordingly, to manage
     all new vtypes and properties.

2) Funcall(): the LHS argin is now optional (default = list(), to which it had often be set.
   For some known function names frequently used in sci_funs conversion functions,
   it is automatically initialized accordingly.

3) Operation(): the out argout is now optional, with default = list().

4) Conversions TO FIX:
  a) `a=1, b=2` was converted into `a = 1b = 2`, yielding a syntax error.
  b) `['abc';'def']` : the result's property is now Char instead of Unknown.
  c) The concatenation result now reflects concatenation precedence rules to set its
     vtype and property. There were formerly set to the type of the last operand.
  d) Function handles `@fun` were converted into a char 'fun'
     instead of into a function-handle object.
     ishandle(@sin) was converted into type("sin")==9 instead of type(sin)==9: Fixed.
  e) `full(Boolean)` was returning `full(bool2s(Boolean))`, instead of the same.
     `full(BooleanSparse)` conversion was yielding an error in convert2double:
    Sparse boolean were never supported.
     `full(String)` was returning `mtlb_full(String)` instead of the same.
  f) `mtlb_full()` is removed. It was useless.
  g) `sparse([true false])` conversion was yielding a `convert2double` error,
                            instead of `sparse([%t,%f])`.
  h) `isa('logical')` was ignoring sparse booleans.
     `isa('function_handle')` was ignoring builtins.
  i) `isvector(Hypermat)` conversion was wrong (making isvector(rand(1,2,3)) returning %T).
  j) `isreal` conversion was wrongly using eps=0: isreal(complex(1,0))
      returns false with Matlab/Octave.
  k) `[1 2]==1` result was having property=Real, instead of Boolean.
  m) `Cste(["abc" "de" ; "fg" "hij"])` was initializing dims=list(2,10) instead of list(2,5).
  n) `rem(a,b)` conversion was using a formula instead of `modulo(a,b)`.

5) Conversions IMPROVED:
  a) 2*3*4*5 and 2*3/4 was converted into ((2*3)*4)*5 and (2*3)/4,
     instead of staying unchanged.
  b) `a = true || false` was converted into `a = %t;if ~%t then a = %f;end`,
     instead of staying the same.
  c) `a = true && false` was converted into `a = %f;if %t then a = %f;end;`,
     instead of staying the same.
  d) `a = 1; b = 2` was converted into `a = 1;b = 2`  without space separating instructions.
  e) `for..,end;` was terminated with a parasitic ";" sticking to `end` (instruction2code).

6) Conversions COMPLETED:
  a) isa(x, 'integer') and isa(x, 'float') were not converted.
  b) isreal() was not implemented for Sparse, Boolean Sparse, Handle, Struct,
     Cell, and Function types.

7) MISC TO FIX:
  a) In case of missing sci_function, the whole database of existing
     Matlab functions (and related toolboxes) was loaded through
     mtlbtoolfun() each time that such a case is met.
    This was slow (1.12s x n).
    Now the database is loaded only once, at the first need, and then
    stored as global for direct access. New timing: (0.3ms x n).
  b)  Codes for ||, and && operators were missing in sciparam()

8) Documentation
  a) m2scideclare() can be very helpful to check the vtype/property/size of a variable,
     for instance in tests. This was deserving to be documented.
  b) The table of vtypes is now in the Type() page, instead of the m2scideclare one.
     In addition, the list of supported properties is now given in
     the same table, for each vtype.
  c) Operation(): the fields of the result were not explicitly named.

9) Conversions ADDED: deal(), gca(), gcf(), iscolumn(), isrow(), ismatrix()

10) Code style improved.

Change-Id: Ic1b24442780a2c94e500bd6b2d31b587dab0f9e5

201 files changed:
scilab/CHANGES.md
scilab/modules/functions/macros/cat_code.sci
scilab/modules/functions/macros/expression2code.sci
scilab/modules/functions/macros/instruction2code.sci
scilab/modules/m2sci/Mtbxfun_db.txt [new file with mode: 0644]
scilab/modules/m2sci/help/en_US/internals/Funcall.xml
scilab/modules/m2sci/help/en_US/internals/Operation.xml
scilab/modules/m2sci/help/en_US/internals/Type.xml
scilab/modules/m2sci/help/en_US/m2scideclare.xml
scilab/modules/m2sci/help/en_US/mfile2sci.xml
scilab/modules/m2sci/help/fr_FR/internals/Funcall.xml
scilab/modules/m2sci/help/fr_FR/internals/Operation.xml
scilab/modules/m2sci/help/fr_FR/internals/Type.xml
scilab/modules/m2sci/help/fr_FR/m2scideclare.xml
scilab/modules/m2sci/help/fr_FR/mfile2sci.xml
scilab/modules/m2sci/macros/kernel/%cste_e.sci
scilab/modules/m2sci/macros/kernel/%funcall_6.sci
scilab/modules/m2sci/macros/kernel/%funcall_e.sci
scilab/modules/m2sci/macros/kernel/%infer_e.sci [new file with mode: 0644]
scilab/modules/m2sci/macros/kernel/%infer_i_variable.sci [new file with mode: 0644]
scilab/modules/m2sci/macros/kernel/%operation_e.sci
scilab/modules/m2sci/macros/kernel/%variable_6.sci
scilab/modules/m2sci/macros/kernel/%variable_e.sci
scilab/modules/m2sci/macros/kernel/Cste.sci
scilab/modules/m2sci/macros/kernel/Funcall.sci
scilab/modules/m2sci/macros/kernel/Operation.sci
scilab/modules/m2sci/macros/kernel/Type.sci
scilab/modules/m2sci/macros/kernel/Variable.sci
scilab/modules/m2sci/macros/kernel/convert2double.sci
scilab/modules/m2sci/macros/kernel/expression2sci.sci
scilab/modules/m2sci/macros/kernel/funcall2sci.sci
scilab/modules/m2sci/macros/kernel/getPropName.sci [new file with mode: 0644]
scilab/modules/m2sci/macros/kernel/getTypeName.sci [moved from scilab/modules/m2sci/macros/kernel/%type_i_cste.sci with 62% similarity]
scilab/modules/m2sci/macros/kernel/getvar2sci.sci
scilab/modules/m2sci/macros/kernel/instruction2sci.sci
scilab/modules/m2sci/macros/kernel/is_a_scalar.sci
scilab/modules/m2sci/macros/kernel/is_complex.sci
scilab/modules/m2sci/macros/kernel/is_real.sci
scilab/modules/m2sci/macros/kernel/is_sparse.sci [new file with mode: 0644]
scilab/modules/m2sci/macros/kernel/isinstring.sci
scilab/modules/m2sci/macros/kernel/m2sci.sci
scilab/modules/m2sci/macros/kernel/m2sci_info.sci
scilab/modules/m2sci/macros/kernel/m2sci_syntax.sci
scilab/modules/m2sci/macros/kernel/m2scideclare.sci [new file with mode: 0644]
scilab/modules/m2sci/macros/kernel/mtlbtoolfun.sci [deleted file]
scilab/modules/m2sci/macros/kernel/mtlbtree2sci.sci
scilab/modules/m2sci/macros/kernel/no_equiv.sci
scilab/modules/m2sci/macros/kernel/operation2sci.sci
scilab/modules/m2sci/macros/kernel/sci_m2scideclare.sci [deleted file]
scilab/modules/m2sci/macros/kernel/sciparam.sci
scilab/modules/m2sci/macros/mfile2sci.sci
scilab/modules/m2sci/macros/percent/%52sci.sci
scilab/modules/m2sci/macros/percent/%a2sci.sci
scilab/modules/m2sci/macros/percent/%cc2sci.sci
scilab/modules/m2sci/macros/percent/%g2sci.sci
scilab/modules/m2sci/macros/percent/%h2sci.sci
scilab/modules/m2sci/macros/percent/%imp2sci.sci
scilab/modules/m2sci/macros/percent/%log2sci.sci
scilab/modules/m2sci/macros/percent/%m2sci.sci
scilab/modules/m2sci/macros/percent/%r2sci.sci
scilab/modules/m2sci/macros/percent/%rc2sci.sci
scilab/modules/m2sci/macros/percent/%s2sci.sci
scilab/modules/m2sci/macros/sci_files/sci_PROTO0.g
scilab/modules/m2sci/macros/sci_files/sci_PROTO1.g
scilab/modules/m2sci/macros/sci_files/sci_PROTO10.g
scilab/modules/m2sci/macros/sci_files/sci_PROTO11.g
scilab/modules/m2sci/macros/sci_files/sci_PROTO12.g
scilab/modules/m2sci/macros/sci_files/sci_PROTO13.g
scilab/modules/m2sci/macros/sci_files/sci_PROTO14.g
scilab/modules/m2sci/macros/sci_files/sci_PROTO15.g
scilab/modules/m2sci/macros/sci_files/sci_PROTO2.g
scilab/modules/m2sci/macros/sci_files/sci_PROTO3.g
scilab/modules/m2sci/macros/sci_files/sci_PROTO4.g
scilab/modules/m2sci/macros/sci_files/sci_PROTO6.g
scilab/modules/m2sci/macros/sci_files/sci_PROTO7.g
scilab/modules/m2sci/macros/sci_files/sci_PROTO8.g
scilab/modules/m2sci/macros/sci_files/sci_PROTO9.g
scilab/modules/m2sci/macros/sci_files/sci_all.sci
scilab/modules/m2sci/macros/sci_files/sci_any.sci
scilab/modules/m2sci/macros/sci_files/sci_beep.sci
scilab/modules/m2sci/macros/sci_files/sci_blanks.sci
scilab/modules/m2sci/macros/sci_files/sci_cd.sci
scilab/modules/m2sci/macros/sci_files/sci_char.sci
scilab/modules/m2sci/macros/sci_files/sci_cos.sci
scilab/modules/m2sci/macros/sci_files/sci_date.sci
scilab/modules/m2sci/macros/sci_files/sci_deal.sci [new file with mode: 0644]
scilab/modules/m2sci/macros/sci_files/sci_dec2bin.sci
scilab/modules/m2sci/macros/sci_files/sci_dec2hex.sci
scilab/modules/m2sci/macros/sci_files/sci_diag.sci
scilab/modules/m2sci/macros/sci_files/sci_dir.sci
scilab/modules/m2sci/macros/sci_files/sci_docopt.sci
scilab/modules/m2sci/macros/sci_files/sci_dos.sci
scilab/modules/m2sci/macros/sci_files/sci_ferror.sci
scilab/modules/m2sci/macros/sci_files/sci_fgets.sci
scilab/modules/m2sci/macros/sci_files/sci_fileparts.sci
scilab/modules/m2sci/macros/sci_files/sci_filesep.sci
scilab/modules/m2sci/macros/sci_files/sci_fopen.sci
scilab/modules/m2sci/macros/sci_files/sci_full.sci
scilab/modules/m2sci/macros/sci_files/sci_fullfile.sci
scilab/modules/m2sci/macros/sci_files/sci_gca.sci [new file with mode: 0644]
scilab/modules/m2sci/macros/sci_files/sci_gcf.sci [new file with mode: 0644]
scilab/modules/m2sci/macros/sci_files/sci_getenv.sci
scilab/modules/m2sci/macros/sci_files/sci_graymon.sci
scilab/modules/m2sci/macros/sci_files/sci_grid.sci
scilab/modules/m2sci/macros/sci_files/sci_input.sci
scilab/modules/m2sci/macros/sci_files/sci_int16.sci
scilab/modules/m2sci/macros/sci_files/sci_int32.sci
scilab/modules/m2sci/macros/sci_files/sci_int64.sci
scilab/modules/m2sci/macros/sci_files/sci_int8.sci
scilab/modules/m2sci/macros/sci_files/sci_isa.sci
scilab/modules/m2sci/macros/sci_files/sci_iscell.sci
scilab/modules/m2sci/macros/sci_files/sci_ischar.sci
scilab/modules/m2sci/macros/sci_files/sci_iscolumn.sci [new file with mode: 0644]
scilab/modules/m2sci/macros/sci_files/sci_isdir.sci
scilab/modules/m2sci/macros/sci_files/sci_isempty.sci
scilab/modules/m2sci/macros/sci_files/sci_isequal.sci
scilab/modules/m2sci/macros/sci_files/sci_isfield.sci
scilab/modules/m2sci/macros/sci_files/sci_isfinite.sci
scilab/modules/m2sci/macros/sci_files/sci_isglobal.sci
scilab/modules/m2sci/macros/sci_files/sci_ishandle.sci
scilab/modules/m2sci/macros/sci_files/sci_ishold.sci
scilab/modules/m2sci/macros/sci_files/sci_isinf.sci
scilab/modules/m2sci/macros/sci_files/sci_isinteger.sci
scilab/modules/m2sci/macros/sci_files/sci_isletter.sci
scilab/modules/m2sci/macros/sci_files/sci_islogical.sci
scilab/modules/m2sci/macros/sci_files/sci_ismac.sci
scilab/modules/m2sci/macros/sci_files/sci_ismatrix.sci [new file with mode: 0644]
scilab/modules/m2sci/macros/sci_files/sci_isnan.sci
scilab/modules/m2sci/macros/sci_files/sci_isnumeric.sci
scilab/modules/m2sci/macros/sci_files/sci_ispc.sci
scilab/modules/m2sci/macros/sci_files/sci_isreal.sci
scilab/modules/m2sci/macros/sci_files/sci_isrow.sci [new file with mode: 0644]
scilab/modules/m2sci/macros/sci_files/sci_isscalar.sci
scilab/modules/m2sci/macros/sci_files/sci_isspace.sci
scilab/modules/m2sci/macros/sci_files/sci_issparse.sci
scilab/modules/m2sci/macros/sci_files/sci_isstr.sci
scilab/modules/m2sci/macros/sci_files/sci_isstruct.sci
scilab/modules/m2sci/macros/sci_files/sci_isunix.sci
scilab/modules/m2sci/macros/sci_files/sci_isvector.sci
scilab/modules/m2sci/macros/sci_files/sci_logical.sci
scilab/modules/m2sci/macros/sci_files/sci_makecell.sci
scilab/modules/m2sci/macros/sci_files/sci_mkdir.sci
scilab/modules/m2sci/macros/sci_files/sci_rem.sci
scilab/modules/m2sci/macros/sci_files/sci_repmat.sci
scilab/modules/m2sci/macros/sci_files/sci_setstr.sci
scilab/modules/m2sci/macros/sci_files/sci_sparse.sci
scilab/modules/m2sci/macros/sci_files/sci_strcmp.sci
scilab/modules/m2sci/macros/sci_files/sci_strcmpi.sci
scilab/modules/m2sci/macros/sci_files/sci_strrep.sci
scilab/modules/m2sci/macros/sci_files/sci_uigetdir.sci
scilab/modules/m2sci/macros/sci_files/sci_uint16.sci
scilab/modules/m2sci/macros/sci_files/sci_uint32.sci
scilab/modules/m2sci/macros/sci_files/sci_uint64.sci
scilab/modules/m2sci/macros/sci_files/sci_uint8.sci
scilab/modules/m2sci/macros/sci_files/sci_unix.sci
scilab/modules/m2sci/tests/nonreg_tests/bug_1636.dia.ref
scilab/modules/m2sci/tests/nonreg_tests/bug_16683.tst [new file with mode: 0644]
scilab/modules/m2sci/tests/nonreg_tests/bug_2656.dia.ref
scilab/modules/m2sci/tests/nonreg_tests/compat_functions/bug_1725.dia.ref
scilab/modules/m2sci/tests/unit_tests/conversion/ARITHMETIC.tst [new file with mode: 0644]
scilab/modules/m2sci/tests/unit_tests/conversion/ARITHMETIC_special_syntax.tst [new file with mode: 0644]
scilab/modules/m2sci/tests/unit_tests/conversion/CLEAR.dia.ref [deleted file]
scilab/modules/m2sci/tests/unit_tests/conversion/CLEAR.tst
scilab/modules/m2sci/tests/unit_tests/conversion/COMMENTS_syntax.dia.ref
scilab/modules/m2sci/tests/unit_tests/conversion/CONCATENATIONS.tst [new file with mode: 0644]
scilab/modules/m2sci/tests/unit_tests/conversion/DEAL.tst [new file with mode: 0644]
scilab/modules/m2sci/tests/unit_tests/conversion/END_index_syntax.dia.ref
scilab/modules/m2sci/tests/unit_tests/conversion/END_index_syntax.tst
scilab/modules/m2sci/tests/unit_tests/conversion/FULL.dia.ref [deleted file]
scilab/modules/m2sci/tests/unit_tests/conversion/FULL.tst
scilab/modules/m2sci/tests/unit_tests/conversion/GCA.tst [new file with mode: 0644]
scilab/modules/m2sci/tests/unit_tests/conversion/GCF.tst [new file with mode: 0644]
scilab/modules/m2sci/tests/unit_tests/conversion/GRAYMON.dia.ref [deleted file]
scilab/modules/m2sci/tests/unit_tests/conversion/GRAYMON.tst
scilab/modules/m2sci/tests/unit_tests/conversion/INT#_booleans.tst [new file with mode: 0644]
scilab/modules/m2sci/tests/unit_tests/conversion/ISA.dia.ref [deleted file]
scilab/modules/m2sci/tests/unit_tests/conversion/ISA.tst
scilab/modules/m2sci/tests/unit_tests/conversion/ISCOLUMN.tst [new file with mode: 0644]
scilab/modules/m2sci/tests/unit_tests/conversion/ISHANDLE.dia.ref [deleted file]
scilab/modules/m2sci/tests/unit_tests/conversion/ISHANDLE.tst
scilab/modules/m2sci/tests/unit_tests/conversion/ISMAC.dia.ref [deleted file]
scilab/modules/m2sci/tests/unit_tests/conversion/ISMAC.tst
scilab/modules/m2sci/tests/unit_tests/conversion/ISMATRIX.tst [new file with mode: 0644]
scilab/modules/m2sci/tests/unit_tests/conversion/ISREAL.dia.ref [deleted file]
scilab/modules/m2sci/tests/unit_tests/conversion/ISREAL.tst
scilab/modules/m2sci/tests/unit_tests/conversion/ISROW.tst [new file with mode: 0644]
scilab/modules/m2sci/tests/unit_tests/conversion/ISSPARSE.dia.ref
scilab/modules/m2sci/tests/unit_tests/conversion/ISSPARSE.tst
scilab/modules/m2sci/tests/unit_tests/conversion/ISVECTOR.dia.ref
scilab/modules/m2sci/tests/unit_tests/conversion/ISVECTOR.tst
scilab/modules/m2sci/tests/unit_tests/conversion/OPERATORS.dia.ref [deleted file]
scilab/modules/m2sci/tests/unit_tests/conversion/OPERATORS.tst [deleted file]
scilab/modules/m2sci/tests/unit_tests/conversion/syntax.dia.ref [deleted file]
scilab/modules/m2sci/tests/unit_tests/conversion/syntax.tst [deleted file]
scilab/modules/m2sci/tests/unit_tests/execution/ISREALx.dia.ref [moved from scilab/modules/m2sci/tests/unit_tests/execution/ISREAL.dia.ref with 97% similarity]
scilab/modules/m2sci/tests/unit_tests/execution/ISREALx.tst [moved from scilab/modules/m2sci/tests/unit_tests/execution/ISREAL.tst with 95% similarity]
scilab/modules/m2sci/tests/unit_tests/mfilesnoexec/CLEAR.m [deleted file]
scilab/modules/m2sci/tests/unit_tests/mfilesnoexec/GRAYMON.m [deleted file]
scilab/modules/m2sci/tests/unit_tests/mfilesnoexec/ISA.m [deleted file]
scilab/modules/m2sci/tests/unit_tests/mfilesnoexec/ISHANDLE.m [deleted file]
scilab/modules/m2sci/tests/unit_tests/mfilesnoexec/syntax.m [deleted file]

index c20922b..e63959b 100644 (file)
@@ -467,6 +467,7 @@ Bug Fixes
 * [#16665](https://bugzilla.scilab.org/16665): `help echo` could not redirect to `help mode` when preferred, for new users coming from Octave.
 * [#16677](https://bugzilla.scilab.org/16677): In offline mode, `atomsInstall` was flashing many times the console.
 * [#16679](https://bugzilla.scilab.org/16679): `get_function_path("acosh")` yielded an error (regression from Scilab 6.0.0).
+* [#16683](https://bugzilla.scilab.org/16683): The `m2sci` code converter needed a set of fix and improvements.
 
 
 ### Bugs fixed in 6.1.0:
index eee6249..1a9ad6b 100644 (file)
@@ -1,7 +1,7 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) INRIA - Vincent COUVERT
-//
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2020 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
@@ -10,7 +10,7 @@
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function t=cat_code(a,b)
+function t = cat_code(a,b)
 
     // Catenate two parts of code (called by tree2code)
     // Input:
@@ -20,12 +20,15 @@ function t=cat_code(a,b)
     // - t: catenation of a and b
 
     if a==[] then
-        t=b
+        t = b
     elseif b==[] then
-        t=a
+        t = a
     elseif stripblanks(b)=="" then // b=="" then add a new line
-        t=[a;""];
+        t = [a ; ""];
     else
-        t=[a(1:$-1);a($)+b(1);b(2:$)]
+        if a($) <> "" & part(a($),$-1:$)<>"; " & grep(b(1), "|^\s*//|","r")==[]
+            a($) = a($) + ", "  // Separating instructions on the same line
+        end                     //  without endsymbol
+        t = [a(1:$-1) ; a($)+b(1) ; b(2:$)]
     end
 endfunction
index e634565..60a491b 100644 (file)
@@ -1,7 +1,7 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) INRIA - Vincent COUVERT
-//
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2020 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
@@ -11,7 +11,7 @@
 // along with this program.
 
 
-function C=expression2code(e)
+function C = expression2code(e)
     // Translate an expression tree to macro code (called by tree2code)
     // Input:
     // - e: expression 'tree'
@@ -20,32 +20,26 @@ function C=expression2code(e)
     // V.C.
 
     // Change format for constants
-    fmtsav=format();
+    fmtsav = format();
     format(16);
 
-    // Tables of symbols arranged by priority in computations
-    sumops=["+","-","&","|"] //1
-    prodops=["*","/",".*","./","\",".\","^",".^"] //2
-    othops=["==",">=","<=","~=",">","<","~",".''",".''",":"] //3
-
-    C=""
+    C = ""
     select typeof(e)
         // ---------
         // OPERATION
         // ---------
     case "operation" then
-        operator=e.operator
+        operator = e.operator
         bracket = ["[", "]"];
         // if Cell Exp {}
         if or(operator == ["ccc", "crc"]) then
             operator = part(operator, 2:$);
             bracket = ["{", "}"];
         end
-
-        operands=[]
-        nb_op=size(e.operands)
+        operands = []
+        nb_op = size(e.operands)
         if and(operator<>["cc","cceol"]) then
-            for i=1:nb_op
+            for i = 1:nb_op
                 if e.operands(i)==list("EOL") then
                     continue
                 end
@@ -53,66 +47,66 @@ function C=expression2code(e)
                 if expression == "eye()" then
                     expression = ":";
                 end
-                operands=[operands;expression]
+                operands = [operands;expression]
             end
         end
 
         // Row concatenation
         if operator=="rc" then
-            for i=1:nb_op
+            for i = 1:nb_op
                 if typeof(e.operands(i))=="operation" then
                     if e.operands(i).operator=="rc" then
-                        operands(i)=part(operands(i),2:length(operands(i))-1)
+                        operands(i) = part(operands(i),2:length(operands(i))-1)
                     elseif or(e.operands(i).operator==["cceol"]) then
-                        operands(1)=part(operands(1),2:length(operands(1)))
-                        operands($)=part(operands($),1:length(operands($))-1)
+                        operands(1) = part(operands(1),2:length(operands(1)))
+                        operands($) = part(operands($),1:length(operands($))-1)
                     end
                 end
             end
-            C=bracket(1)+strcat(operands,",")+bracket(2);
+            C = bracket(1) + strcat(operands,",") + bracket(2);
             // Multi-line column concatenation
         elseif operator=="cceol" then
-            for i=1:nb_op
-                opi=expression2code(e.operands(i))
+            for i = 1:nb_op
+                opi = expression2code(e.operands(i))
                 if typeof(e.operands(i))=="operation" then
                     if e.operands(i).operator=="rc" then
-                        opi=part(opi,2:length(opi)-1)
+                        opi = part(opi,2:length(opi)-1)
                     elseif or(e.operands(i).operator==["cc","cceol"]) then
-                        opi(1)=part(opi(1),2:length(opi(1)))
-                        opi($)=part(opi($),1:length(opi($))-1)
+                        opi(1) = part(opi(1),2:length(opi(1)))
+                        opi($) = part(opi($),1:length(opi($))-1)
                     end
                 end
 
                 if i==1 then
-                    C=bracket(1)
+                    C = bracket(1)
                     if size(opi,"*")>1 then
                         C = [C+opi(1);opi(2:$)]
                     else
                         C = C+opi
                     end
-                    C($)=C($)+";"
-                    C=[C;""]
+                    C($) = C($)+";"
+                    C = [C;""]
                 else
                     if size(opi,"*")>1 then
                         C = [C(1:$-1);C($)+opi(1);opi(2:$)]
                     else
                         C = [C(1:$-1);C($)+opi]
                     end
-                    C($)=C($)+bracket(2)
+                    C($) = C($)+bracket(2)
                 end
             end
             // Column concatenation
         elseif operator=="cc" then
-            C=bracket(1)
-            for i=1:nb_op
-                opi=expression2code(e.operands(i))
+            C = bracket(1)
+            for i = 1:nb_op
+                opi = expression2code(e.operands(i))
                 // Delete [ and ] if there are...
                 if typeof(e.operands(i))=="operation" then
                     if e.operands(i).operator=="rc" then
-                        opi=part(opi,2:length(opi)-1)
+                        opi = part(opi,2:length(opi)-1)
                     elseif or(e.operands(i).operator==["cc","cceol"]) then
-                        opi(1)=part(opi(1),2:length(opi(1)))
-                        opi($)=part(opi($),1:length(opi($))-1)
+                        opi(1) = part(opi(1),2:length(opi(1)))
+                        opi($) = part(opi($),1:length(opi($))-1)
                     end
                 end
                 if i==1 then
@@ -123,7 +117,7 @@ function C=expression2code(e)
                     else
                         C = C+opi
                     end
-                    C($)=C($)+";"
+                    C($) = C($)+";"
                 else
                     if size(opi,"*")>1 then
                         C = [C(1:$-1);C($)+opi(1);opi(2:$)]
@@ -134,79 +128,79 @@ function C=expression2code(e)
                     end
                 end
             end
-            C($)=C($)+bracket(2)
+            C($) = C($)+bracket(2)
             // Extraction
         elseif operator=="ext" then
             if size(e.operands)==1 then
-                C=e.operands(1).name
+                C = e.operands(1).name
                 return
             end
             if type(e.operands(2))==15 then // Recursive extraction
-                C=operands(1)+operands(2)
+                C = operands(1)+operands(2)
             else
                 // Deal with :
-                for k=2:size(operands,"*")
+                for k = 2:size(operands,"*")
                     if operands(k)==""":""" then
-                        operands(k)=":"
+                        operands(k) = ":"
                     elseif operands(k)=="""$""" then
-                        operands(k)="$"
+                        operands(k) = "$"
                     elseif operands(k)=="""*""" then // Only used for M2SCI
-                        operands(k)="*"
+                        operands(k) = "*"
                     end
                 end
                 val = part(operands(2),1)=="""" & part(operands(2),length(operands(2)))==""""
                 if val then // struct field
-                    C=operands(1)+"."+evstr(operands(2))
+                    C = operands(1)+"."+evstr(operands(2))
                     if size(operands,"*")>=3 then
-                        C=C+"("
+                        C = C+"("
                     end
-                    for k=3:size(operands,"*")
-                        C=C+","+operands(k)
+                    for k = 3:size(operands,"*")
+                        C = C+","+operands(k)
                     end
                     if size(operands,"*")>=3 then
-                        C=C+")"
+                        C = C+")"
                     end
                 else
-                    C=operands(1)+"("+operands(2)
-                    for k=3:size(operands,"*")
-                        C=C+","+operands(k)
+                    C = operands(1)+"("+operands(2)
+                    for k = 3:size(operands,"*")
+                        C = C+","+operands(k)
                     end
-                    C=C+")"
+                    C = C+")"
                 end
             end
             // Insertion
         elseif operator=="ins" then
             if type(e.operands(2))==15 then // Recursive insertion
-                C=operands(1)+operands(2)
+                C = operands(1)+operands(2)
             else
                 // Deal with :
-                for k=2:size(operands,"*")
+                for k = 2:size(operands,"*")
                     if operands(k)==""":""" then
-                        operands(k)=":"
+                        operands(k) = ":"
                     elseif operands(k)=="""$""" then
-                        operands(k)="$"
+                        operands(k) = "$"
                     elseif operands(k)=="""*""" then // Only used in M2SCI
-                        operands(k)="*"
+                        operands(k) = "*"
                     end
                 end
                 val = part(operands(2),1)=="""" & part(operands(2),length(operands(2)))==""""
                 if val then // struct field
-                    C=operands(1)+"."+evstr(operands(2))
+                    C = operands(1)+"."+evstr(operands(2))
                     if size(operands,"*")>=3 then
-                        C=C+"("
+                        C = C+"("
                     end
-                    for k=3:size(operands,"*")
-                        C=C+","+operands(k)
+                    for k = 3:size(operands,"*")
+                        C = C+","+operands(k)
                     end
                     if size(operands,"*")>=3 then
-                        C=C+")"
+                        C = C+")"
                     end
                 else
-                    C=operands(1)+"("+operands(2)
-                    for k=3:size(operands,"*")
-                        C=C+","+operands(k)
+                    C = operands(1)+"("+operands(2)
+                    for k = 3:size(operands,"*")
+                        C = C+","+operands(k)
                     end
-                    C=C+")"
+                    C = C+")"
                 end
             end
             // Unary Operators
@@ -214,103 +208,92 @@ function C=expression2code(e)
             if or(operator==["''",".''"]) then
                 if typeof(e.operands(1))=="operation" then
                     if and(e.operands(1).operator<>["rc","cc","-","+"]) then
-                        operands="("+operands+")"
+                        operands = "("+operands+")"
                     end
                 end
-                C=operands+operator
+                C = operands+operator
             elseif or(operator==["+","-"]) then
                 if typeof(e.operands(1))=="operation" then
                     if or(e.operands(1).operator==["-","+"]) then
-                        operands="("+operands+")"
+                        operands = "("+operands+")"
                     end
                 end
-                C=operator+operands
+                C = operator+operands
             else
-                C=operator+operands
+                C = operator+operands
             end
             // Other operators
         else
             // Parenthesize
-            if or(operator==["+","-"]) then
-                for i=1:nb_op
-                    if typeof(e.operands(i))=="operation" then
-                        if or(e.operands(i).operator==othops) then
-                            operands=[operands(1:i-1) "("+operands(i)+")" operands(i+1:$)]
-                        end
-                    end
-                end
-                for i=2:nb_op
-                    if typeof(e.operands(i))=="operation" then
-                        if or(e.operands(i).operator==sumops) then
-                            operands=[operands(1:i-1) "("+operands(i)+")" operands(i+1:$)]
-                        end
-                    end
+            if typeof(e.operands(1))=="operation"
+                opL = e.operands(1).operator
+                if prio(opL) < prio(operator)
+                    operands(1) = "("+operands(1)+")"
                 end
             end
-            if or(operator==[prodops,othops]) & (operator<>":") then
-                if typeof(e.operands(1))=="operation" then
-                    if or(e.operands(1).operator==[sumops,prodops,othops]) then
-                        operands(1)="("+operands(1)+")"
-                    end
-                end
-                if typeof(e.operands(2))=="operation" then
-                    if or(e.operands(2).operator==[sumops,prodops,othops]) then
-                        operands(2)="("+operands(2)+")"
-                    end
+            if typeof(e.operands(2))=="operation"
+                opR = e.operands(2).operator
+                if prio(opR) < prio(operator)
+                    operands(2) = "("+operands(2)+")"
                 end
             end
-            if part(operator,1)=="." & part(operator,length(operator))=="." | or(operator==["&","|"]) then
-                C=strcat(operands," "+operator+" ")
-            elseif part(operator,1)=="." then
-                C=strcat(operands," "+operator)
-            elseif part(operator,length(operator))=="." then
-                C=strcat(operands,operator+" ")
+
+            // Spacing the operator wrt operands
+            if part(operator,[1 $])==".." | or(operator==["&","|","&&","||"]) then
+                C = strcat(operands," "+operator+" ")
             else
-                C=strcat(operands,operator)
+                C = operands(1)
+                for i = 1:nb_op-1
+                    if and(length(operands(i:i+1)) > 8)
+                        C = C + " " + operator + " " + operands(i+1)
+                    else
+                        C = C + operator + operands(i+1)
+                    end
+                end
             end
         end
         // --------
         // CONSTANT
         // --------
     case "cste" then
-        C=sci2exp(e.value)
+        C = sci2exp(e.value)
         if C==""":""" then
-            //C=":"
+            //C = ":"
         elseif C=="""$""" then
-            C="$"
+            C = "$"
         elseif C=="""*""" then // Only used in M2SCI
-            C="""*"""
-            //  C="*"
+            C = """*"""
+            //  C = "*"
         end
         // --------
         // VARIABLE
         // --------
     case "variable" then
-        C=e.name
+        C = e.name
         // ----------------
         // CHARACTER STRING
         // ----------------
     case "string" then
-        C=e
+        C = e
         // -------
         // FUNCALL
         // -------
     case "funcall" then
         if size(e.rhs)==0 then
-            I=I; // I is defined in instruction2code
-            C=e.name
-            [l,mac]=where()
+            I = I; // I is defined in instruction2code
+            C = e.name
+            [l,mac] = where()
             if size(grep(mac,"expression2code"),"*")>1 then
-                C=C+"()"
+                C = C+"()"
             elseif typeof(I)=="equal" & ( (typeof(I.lhs(1))=="variable" & I.lhs(1).name<>"ans") | typeof(I.lhs(1))=="operation") then
-                C=C+"()"
+                C = C+"()"
             end
         else
             rhscode = rhs2code(e.rhs);
             if size(rhscode,"*")==1 then
-                C=[e.name+"("+rhscode+")"]
+                C = [e.name+"("+rhscode+")"]
             else
-                C=[e.name+"("+rhscode(1);rhscode(2:($-1));rhscode($)+")"]
+                C = [e.name+"("+rhscode(1);rhscode(2:($-1));rhscode($)+")"]
             end
         end
         // ----
@@ -318,11 +301,11 @@ function C=expression2code(e)
         // ----
     case "list"
         // Recursive extraction
-        C=""
-        for k=1:size(e)
-            ind=expression2code(e(k))
+        C = ""
+        for k = 1:size(e)
+            ind = expression2code(e(k))
             if type(e(k))==15 then // Recursive extraction in recursive extraction
-                ind=strsubst(ind,")(",",")
+                ind = strsubst(ind,")(",",")
                 if part(ind, 1)=="(" then
                     ind = part(ind, 2:length(ind))
                 end
@@ -331,35 +314,35 @@ function C=expression2code(e)
                 end
             end
             if ind==""":""" then
-                ind=":"
+                ind = ":"
             elseif ind=="""$""" then
-                ind="$"
+                ind = "$"
             elseif ind=="""*""" then // Only used in M2SCI
-                ind="*"
+                ind = "*"
             end
             val = part(ind,1)=="""" & part(ind,length(ind))==""""
             if val then
-                C=C+"."+evstr(ind)
+                C = C+"."+evstr(ind)
             else
-                C=C+"("+ind+")"
+                C = C+"("+ind+")"
             end
         end
-        C=strsubst(C,")(",",")
+        C = strsubst(C,")(",",")
         // -----
         // EQUAL (can occur fir disp(a=1) for example)
         // -----
     case "equal"
-        C=instruction2code(e)
+        C = instruction2code(e)
         // ------
         // INLINE
         // ------
     case "inline"
-        C=["function " + e.prototype;"  " + e.definition;"endfunction"];
+        C = ["function " + e.prototype;"  " + e.definition;"endfunction"];
         // -------
         // COMMENT (inside a matrix declaration for example)
         // -------
     case "comment"
-        C=instruction2code(e)
+        C = instruction2code(e)
     else
         error(msprintf(gettext("%s: This feature has not been implemented: %s.\n"),"expression2code",typeof(e)));
     end
@@ -371,5 +354,19 @@ function C=expression2code(e)
         format("e",fmtsav(2));
     end
 endfunction
-
+// ----------------------------------------------------------------------------
+function p = prio(op)  // priority of operators
+    order = [",'',.'',~,"
+             ",^,.^,"
+             ",*,.*,.*.,/,./,\,.\,"
+             ",+,-,"
+             ",:,"
+             ",<,<=,==,~=,>=,>,"
+             ",&,|,"
+             ];
+    p = grep(order, ","+op+",")
+    if p<>[] then
+        p = size(order,1)-p+1
+    end
+endfunction
 
index 169a21c..861c62d 100644 (file)
@@ -11,7 +11,7 @@
 // along with this program.
 
 
-function  C=instruction2code(I, bprettyprintformat)
+function  C = instruction2code(I, bprettyprintformat)
     // Translate an instruction tlist to Scilab code (called by tree2code)
     // Input:
     // - I: instruction 'tree'
@@ -20,18 +20,18 @@ function  C=instruction2code(I, bprettyprintformat)
     // - C: Scilab code corresponding to I
 
     // Default value
-    rhs=argn(2)
+    rhs = argn(2)
     if rhs==1 then
-        bprettyprintformat=%F
+        bprettyprintformat = %F
     end
 
-    C=[]
+    C = []
 
     // -----------
     // Empty lines
     // -----------
     if I==list("EOL") then
-        C=""
+        C = ""
         return
     end
 
@@ -41,25 +41,24 @@ function  C=instruction2code(I, bprettyprintformat)
     if typeof(I)=="trycatch" then
 
         //TRYCATCH
-        C="try "
+        C = "try "
         [C,indent_space] = format_txt(C,I.trystat(1),bprettyprintformat); // Add EOL after while if needed and returns indent_space
-        for k=1:size(I.trystat)
-            C=cat_code(C,indent_space+instruction2code(I.trystat(k)))
+        for k = 1:size(I.trystat)
+            C = cat_code(C,indent_space+instruction2code(I.trystat(k)))
             if k<size(I.trystat) then // Add EOL between statements if needed
                 C = format_txt(C,I.trystat(k),bprettyprintformat,I.trystat(k+1));
             end
         end
         C = format_txt(C,I.trystat($),bprettyprintformat); // Add EOL after last statement if needed
-        C=cat_code(C,"catch ")
-        for k=1:size(I.catchstat)
-            C=cat_code(C,indent_space+instruction2code(I.catchstat(k)))
+        C = cat_code(C,"catch ")
+        for k = 1:size(I.catchstat)
+            C = cat_code(C,indent_space+instruction2code(I.catchstat(k)))
             if k<size(I.catchstat) then // Add EOL between statements if needed
                 C = format_txt(C,I.catchstat(k),bprettyprintformat,I.catchstat(k+1));
             end
         end
         C = format_txt(C,I.catchstat($),bprettyprintformat); // Add EOL after last statement if needed
-        C=cat_code(C,"end")
-        C($)=C($)+";"
+        C = cat_code(C,"end")
         return
     end
 
@@ -69,10 +68,10 @@ function  C=instruction2code(I, bprettyprintformat)
     if typeof(I)=="ifthenelse" then
 
         // IF
-        C="if "+expression2code(I.expression)+" then"
+        C = "if "+expression2code(I.expression)+" then"
         [C,indent_space] = format_txt(C,I.then(1),bprettyprintformat); // Add EOL after then if needed and returns indent_space
-        for k=1:size(I.then)
-            C=cat_code(C,indent_space+instruction2code(I.then(k)))
+        for k = 1:size(I.then)
+            C = cat_code(C,indent_space+instruction2code(I.then(k)))
             if k<size(I.then) then // Add EOL between then statements if needed
                 C = format_txt(C,I.then(k),bprettyprintformat,I.then(k+1));
             end
@@ -81,11 +80,11 @@ function  C=instruction2code(I, bprettyprintformat)
 
         // ELSEIF
         if size(I.elseifs)<>0 then
-            for k=1:size(I.elseifs)
-                C=cat_code(C,"elseif "+expression2code(I.elseifs(k).expression)+" then")
+            for k = 1:size(I.elseifs)
+                C = cat_code(C,"elseif "+expression2code(I.elseifs(k).expression)+" then")
                 [C,indent_space] = format_txt(C,I.elseifs(k).then(1),bprettyprintformat); // Add EOL after then if needed and returns indent_space
-                for l=1:size(I.elseifs(k).then)
-                    C=cat_code(C,indent_space+instruction2code(I.elseifs(k).then(l)))
+                for l = 1:size(I.elseifs(k).then)
+                    C = cat_code(C,indent_space+instruction2code(I.elseifs(k).then(l)))
                     if l<size(I.elseifs(k).then) then // Add EOL between then statements
                         C = format_txt(C,I.elseifs(k).then(l),bprettyprintformat,I.elseifs(k).then(l+1));
                     end
@@ -96,18 +95,17 @@ function  C=instruction2code(I, bprettyprintformat)
 
         // ELSE
         if size(I.else)<>0 then
-            C=cat_code(C,"else")
+            C = cat_code(C,"else")
         [C,indent_space] = format_txt(C,I.else(1),bprettyprintformat); // Add EOL after else if needed and returns indent_space
-            for k=1:size(I.else)
-            C=cat_code(C,indent_space+instruction2code(I.else(k)))
+            for k = 1:size(I.else)
+            C = cat_code(C,indent_space+instruction2code(I.else(k)))
                 if k<size(I.else) then // Add EOL between else statements if needed
                 C = format_txt(C,I.else(k),bprettyprintformat,I.else(k+1));
                 end
             end
         C = format_txt(C,I.else($),bprettyprintformat); // Add EOL after last else statement if needed
         end
-        C=cat_code(C,"end")
-        C($)=C($)+";"
+        C = cat_code(C,"end")
         return
     end
 
@@ -117,28 +115,28 @@ function  C=instruction2code(I, bprettyprintformat)
     if typeof(I)=="selectcase" then
 
         // SELECT
-        C="select "+expression2code(I.expression(1))
+        C = "select "+expression2code(I.expression(1))
 
         if size(I.expression)==1 // Not EOL and not comment after the expression
             if bprettyprintformat then
                 C = cat_code(C,"") // Add EOL after expression
             end
         else
-            for i=2:size(I.expression)
-                C=cat_code(C," "+ instruction2code(I.expression(i)))
+            for i = 2:size(I.expression)
+                C = cat_code(C," "+ instruction2code(I.expression(i)))
             end
         end
 
         // CASES
         if size(I.cases)<>0 then
-            for k=1:size(I.cases)
-                C=cat_code(C,"  case "+expression2code(I.cases(k).expression)+" then")
+            for k = 1:size(I.cases)
+                C = cat_code(C,"  case "+expression2code(I.cases(k).expression)+" then")
                 [C,indent_space] = format_txt(C,I.cases(k).then(1),bprettyprintformat); // Add EOL after then if needed and returns indent_space
                 if indent_space=="  " then // indent_space is modified because indentation differs from others control instructions
-                    indent_space="    "
+                    indent_space = "    "
                 end
-                for l=1:size(I.cases(k).then)
-                    C=cat_code(C,indent_space+instruction2code(I.cases(k).then(l)))
+                for l = 1:size(I.cases(k).then)
+                    C = cat_code(C,indent_space+instruction2code(I.cases(k).then(l)))
                     if l<size(I.cases(k).then) then // Add EOL between then statements if needed
                         C = format_txt(C,I.cases(k).then(l),bprettyprintformat,I.cases(k).then(l+1));
                     end
@@ -148,21 +146,20 @@ function  C=instruction2code(I, bprettyprintformat)
         end
         // ELSE
         if size(I.else)<>0 then
-            C=cat_code(C,"  else")
+            C = cat_code(C,"  else")
         [C,indent_space] = format_txt(C,I.else(1),bprettyprintformat); // Add EOL after else if needed and returns indent_space
             if indent_space=="  " then // indent_space is modified because indentation differs from others control instructions
-                indent_space="    "
+                indent_space = "    "
             end
-            for k=1:size(I.else)
-            C=cat_code(C,indent_space+instruction2code(I.else(k)))
+            for k = 1:size(I.else)
+            C = cat_code(C,indent_space+instruction2code(I.else(k)))
                 if k<size(I.else) then // Add EOL between else statements if needed
                 C = format_txt(C,I.else(k),bprettyprintformat,I.else(k+1));
                 end
             end
         C = format_txt(C,I.else($),bprettyprintformat); // Add EOL after last else statement if needed
         end
-        C=cat_code(C,"end")
-        C($)=C($)+";"
+        C = cat_code(C,"end")
         return
     end
 
@@ -171,17 +168,16 @@ function  C=instruction2code(I, bprettyprintformat)
     // --------------------------------------
     if typeof(I)=="while" then
 
-        C="while "+expression2code(I.expression)
+        C = "while "+expression2code(I.expression)
         [C,indent_space] = format_txt(C,I.statements(1),bprettyprintformat); // Add EOL after while if needed and returns indent_space
-        for k=1:size(I.statements)
-            C=cat_code(C,indent_space+instruction2code(I.statements(k)))
+        for k = 1:size(I.statements)
+            C = cat_code(C,indent_space+instruction2code(I.statements(k)))
             if k<size(I.statements) then // Add EOL between statements if needed
                 C = format_txt(C,I.statements(k),bprettyprintformat,I.statements(k+1));
             end
         end
         C = format_txt(C,I.statements($),bprettyprintformat); // Add EOL after last statement if needed
-        C=cat_code(C,"end")
-        C($)=C($)+";"
+        C = cat_code(C,"end")
         return
 
     end
@@ -191,17 +187,16 @@ function  C=instruction2code(I, bprettyprintformat)
     // ------------------------------------
     if typeof(I)=="for" then
 
-        C="for "+instruction2code(I.expression)
+        C = "for "+instruction2code(I.expression)
         [C,indent_space] = format_txt(C,I.statements(1),bprettyprintformat); // Add EOL after while if needed and returns indent_space
-        for k=1:size(I.statements)
-            C=cat_code(C,indent_space+instruction2code(I.statements(k)))
+        for k = 1:size(I.statements)
+            C = cat_code(C,indent_space+instruction2code(I.statements(k)))
             if k<size(I.statements) then // Add EOL between statements if needed
                 C = format_txt(C,I.statements(k),bprettyprintformat,I.statements(k+1));
             end
         end
         C = format_txt(C,I.statements($),bprettyprintformat); // Add EOL after last statement if needed
-        C=cat_code(C,"end")
-        C($)=C($)+";"
+        C = cat_code(C,"end")
         return
     end
 
@@ -213,10 +208,9 @@ function  C=instruction2code(I, bprettyprintformat)
         // Comments
         if typeof(I.expression)=="funcall" then
             if I.expression.name=="%comment" then
-                I.expression.rhs(1).value=strsubst(I.expression.rhs(1).value,"""""","""")
-                I.expression.rhs(1).value=strsubst(I.expression.rhs(1).value,"''''","''")
-                C="//"+I.expression.rhs(1).value
-                //C($)=C($)+";"
+                I.expression.rhs(1).value = strsubst(I.expression.rhs(1).value,"""""","""")
+                I.expression.rhs(1).value = strsubst(I.expression.rhs(1).value,"''''","''")
+                C = "// "+I.expression.rhs(1).value
                 return
             end
         end
@@ -225,31 +219,32 @@ function  C=instruction2code(I, bprettyprintformat)
         if size(I.lhs)==1 then
             if typeof(I.lhs(1))=="variable" then
                 if I.lhs(1).name=="ans" then // expression
-                    C=rhs2code(I.expression)
+                    C = rhs2code(I.expression)
                 else
-                    RHS=rhs2code(I.expression)
+                    RHS = rhs2code(I.expression)
                     if size(RHS,"*")==1 then
-                        C=I.lhs(1).name+" = "+rhs2code(I.expression)
+                        C = I.lhs(1).name+" = "+rhs2code(I.expression)
                     else // Multi-line definition
-                        C=[I.lhs(1).name+" = "+RHS(1);"     "+RHS(2:$)]
+                        C = [I.lhs(1).name+" = "+RHS(1);"     "+RHS(2:$)]
                     end
                 end
             else // Insertion...
-                C=expression2code(I.lhs(1))+" = "+rhs2code(I.expression)
+                C = expression2code(I.lhs(1))+" = "+rhs2code(I.expression)
             end
         else
-            lhsnames=[]
-            for lhsind=1:size(I.lhs)
-                lhsnames=[lhsnames,expression2code(I.lhs(lhsind))]
+            lhsnames = []
+            for lhsind = 1:size(I.lhs)
+                lhsnames = [lhsnames,expression2code(I.lhs(lhsind))]
             end
             if lhsnames<>[] & strcat(lhsnames,",")<>"" then
-                C="["+strcat(lhsnames,",")+"] = "+rhs2code(I.expression)
+                C = "["+strcat(lhsnames,",")+"] = "+rhs2code(I.expression)
             else
-                C=rhs2code(I.expression)
+                C = rhs2code(I.expression)
             end
         end
-        C($)=C($)+I.endsymbol
-        //C($)=C($)+";";
+        if I.endsymbol <> ""
+            C($) = C($) + I.endsymbol + " "
+        end
         return
     end
 
@@ -257,7 +252,7 @@ function  C=instruction2code(I, bprettyprintformat)
     // Generate code corresponding to a comment
     // --------------------------------------
     if typeof(I)=="comment" then
-        C="//"+I.text
+        C = "//"+I.text
         //C = cat_code(C,"//"+I.text)
         return
     end
@@ -268,7 +263,7 @@ function  C=instruction2code(I, bprettyprintformat)
     if typeof(I)=="sup_equal" then
         while typeof(I.sup_instr(1))=="equal" | I.sup_instr(1)==list("EOL")
             if I.sup_instr(1)==list("EOL") then //Instruction is an EOL
-                I.sup_instr(1)=null()
+                I.sup_instr(1) = null()
             elseif typeof(I.sup_instr(1))=="equal" then //Instruction is acomment
                 if typeof(I.sup_instr(1).expression)=="funcall" then
                     break
@@ -277,25 +272,25 @@ function  C=instruction2code(I, bprettyprintformat)
         end
         //Optimize the code if all sup_intr are equal tlists and expression of this equal tlists are temporaries variables (not a function)
         if size(I.sup_instr)==I.nb_opr+1 then
-            for i=size(I.sup_instr):-1:2
-                optim_instr=%f
+            for i = size(I.sup_instr):-1:2
+                optim_instr = %f
                 if typeof(I.sup_instr(i))=="equal" then
                     if typeof(I.sup_instr(i).expression)=="variable" then
-                        j=0
+                        j = 0
                         while ~optim_instr & j<=size(I.sup_instr(1).lhs)
-                            j=j+1
-                            optim_instr=I.sup_instr(i).expression.name==I.sup_instr(1).lhs(j).name
+                            j = j+1
+                            optim_instr = I.sup_instr(i).expression.name==I.sup_instr(1).lhs(j).name
                         end
                     end
                 end
                 if optim_instr then
-                    I.sup_instr(1).lhs(j)=I.sup_instr(i).lhs(1)
-                    I.sup_instr(i)=null()
+                    I.sup_instr(1).lhs(j) = I.sup_instr(i).lhs(1)
+                    I.sup_instr(i) = null()
                 end
             end
         end
-        for i=1:size(I.sup_instr)
-            C($+1)=instruction2code(I.sup_instr(i))
+        for i = 1:size(I.sup_instr)
+            C($+1) = instruction2code(I.sup_instr(i))
         end
         return
     end
@@ -317,7 +312,6 @@ function  C=instruction2code(I, bprettyprintformat)
         disp("instruction2code: bug in macr2tree() !");
         pause
     end
-    C=expression2code(I);
-    C($)=C($)+";"
+    C = expression2code(I);
+    C($) = C($)+";"
 endfunction
-
diff --git a/scilab/modules/m2sci/Mtbxfun_db.txt b/scilab/modules/m2sci/Mtbxfun_db.txt
new file mode 100644 (file)
index 0000000..f34b103
--- /dev/null
@@ -0,0 +1,3626 @@
+CreateCellAttrib,toolbox/slcontrol/slctrlguis/
+FreqVectorCheck,toolbox/control/ctrlguis/
+SignalConstrMask,toolbox/sloptim/sloptim/
+TimeVectorCheck,toolbox/control/ctrlguis/
+abcbalance,toolbox/control/ctrlutil/
+abccheck,toolbox/ident/idutils/
+aboutcst,toolbox/control/ctrlguis/
+aboutidenttbx,toolbox/ident/ident/
+aboutsignaltbx,toolbox/signal/signal/
+absdata,toolbox/simulink/simdemos/automotive/
+ac2poly,toolbox/signal/signal/
+ac2rc,toolbox/signal/signal/
+accdemo,toolbox/robust/
+accdm2,toolbox/robust/
+acceva,toolbox/robust/
+acceva2,toolbox/robust/
+accplt,toolbox/robust/
+accroot,toolbox/robust/
+acker,toolbox/control/control/
+acquire_print_portal,toolbox/stateflow/stateflow/private/
+acquire_target,toolbox/stateflow/stateflow/private/
+actdemo,toolbox/robust/
+actual_machine_referred_by,toolbox/stateflow/stateflow/private/
+adams,toolbox/simulink/simulink/
+adapthisteq,toolbox/images/images/
+adaptmesh,toolbox/pde/
+add_block,toolbox/simulink/simulink/
+add_engine_event_listener,toolbox/simulink/simulink/
+add_exec_event_listener,toolbox/simulink/simulink/
+add_line,toolbox/simulink/simulink/
+add_param,toolbox/simulink/simulink/
+addbisa,toolbox/stats/private/
+addcomponents,toolbox/signal/sigtools/private/
+addcsmenu,toolbox/signal/sigtools/
+adddynprop,toolbox/signal/sigtools/
+addedvarplot,toolbox/stats/
+addfreqcsmenu,toolbox/signal/sigtools/
+addinvg,toolbox/stats/private/
+addlogi,toolbox/stats/private/
+addmenu,toolbox/signal/sigtools/
+addnaka,toolbox/stats/private/
+addnk,toolbox/ident/idutils/
+addoptask,toolbox/shared/slcontrollib/
+addoutputspec,toolbox/shared/slcontrollib/
+addplugins,toolbox/signal/sigtools/
+addprops,toolbox/signal/sigtools/
+addrice,toolbox/stats/private/
+addss,toolbox/robust/
+addterms,toolbox/simulink/simulink/
+addtimecsmenu,toolbox/signal/sigtools/
+addtls,toolbox/stats/private/
+addtoolbarbtn,toolbox/signal/sigtools/
+addunitsmenu,toolbox/signal/sigtools/
+adesc,toolbox/signal/signal/private/
+aebalance,toolbox/control/ctrlutil/
+aero_atc_callback,toolbox/simulink/simdemos/aerospace/
+aero_atcgui,toolbox/simulink/simdemos/aerospace/
+aero_atcscript,toolbox/simulink/simdemos/aerospace/
+aero_dap3dofdata,toolbox/simulink/simdemos/aerospace/
+aero_extkalman,toolbox/simulink/simdemos/aerospace/
+aero_guid_dat,toolbox/simulink/simdemos/aerospace/
+aero_guid_plot,toolbox/simulink/simdemos/aerospace/
+aero_guidancedemoscript,toolbox/simulink/simdemos/aerospace/
+aero_init_atc,toolbox/simulink/simdemos/aerospace/
+aero_lin_aero,toolbox/simulink/simdemos/aerospace/
+aero_phaseplane,toolbox/simulink/simdemos/aerospace/
+aero_pointer_tracker,toolbox/simulink/simdemos/aerospace/
+aero_preload_atc,toolbox/simulink/simdemos/aerospace/
+aero_raddat,toolbox/simulink/simdemos/aerospace/
+aero_radplot,toolbox/simulink/simdemos/aerospace/
+aliastypeddg,toolbox/simulink/simulink/
+allpass,toolbox/signal/signal/private/
+analysistags,toolbox/signal/sigtools/private/
+andrewsplot,toolbox/stats/
+animinit,toolbox/simulink/simdemos/simgeneral/
+anova1,toolbox/stats/
+anova2,toolbox/stats/
+anovan,toolbox/stats/
+aoctool,toolbox/stats/
+append,toolbox/control/control/
+applyabsolute,toolbox/images/images/private/
+applycform,toolbox/images/images/
+applycformsequence,toolbox/images/images/private/
+applyclut,toolbox/images/images/private/
+applyfilt,toolbox/signal/sptoolgui/private/
+applyiccsequence,toolbox/images/images/private/
+applylut,toolbox/images/images/
+applymattrc_fwd,toolbox/images/images/private/
+applymattrc_inv,toolbox/images/images/private/
+appstr,toolbox/signal/sptoolgui/private/
+aprecon,toolbox/optim/
+aptknt,toolbox/splines/
+ar,toolbox/ident/ident/
+arburg,toolbox/signal/signal/
+arcov,toolbox/signal/signal/
+are,toolbox/control/ctrlobsolete/
+arecheckin,toolbox/control/control/private/
+arecheckout,toolbox/control/control/private/
+arefact2x,toolbox/control/control/private/
+arescale,toolbox/control/control/private/
+aresolv,toolbox/robust/
+armax,toolbox/ident/ident/
+armcov,toolbox/signal/signal/
+arparest,toolbox/signal/signal/private/
+arspectra,toolbox/signal/signal/private/
+arx,toolbox/ident/ident/
+arx2th,toolbox/ident/idobsolete/
+arx_f,toolbox/ident/ident/
+arxdecod,toolbox/ident/idutils/
+arxstruc,toolbox/ident/ident/
+aryule,toolbox/signal/signal/
+assema,toolbox/pde/
+assemb,toolbox/pde/
+assempde,toolbox/pde/
+assignline,toolbox/signal/sptoolgui/private/
+asys2ss,toolbox/robust/
+atamult,toolbox/optim/private/
+attachConfigSet,toolbox/simulink/simulink/
+augact,toolbox/robust/
+augd,toolbox/robust/
+augknt,toolbox/splines/
+augment,toolbox/robust/
+augss,toolbox/robust/
+augstate,toolbox/control/control/
+augtf,toolbox/robust/
+autobuild,toolbox/stateflow/stateflow/private/
+autobuild_driver,toolbox/stateflow/stateflow/private/
+autobuild_kernel,toolbox/stateflow/stateflow/private/
+autoline,toolbox/simulink/simulink/
+autopilotdemo,toolbox/simulink/simdemos/aerospace/
+auxvar,toolbox/ident/idobsolete/
+aveknt,toolbox/splines/
+axes2pix,toolbox/images/images/private/
+baldemo,toolbox/robust/
+balmr,toolbox/robust/
+balreal,toolbox/control/control/
+balsq,toolbox/robust/
+bandem,toolbox/optim/
+bandpass,toolbox/signal/signal/private/
+bandstop,toolbox/signal/signal/private/
+barplotm,toolbox/simulink/blocks/
+barthannwin,toolbox/signal/signal/
+bartlett,toolbox/signal/signal/
+barttest,toolbox/stats/
+bbdesign,toolbox/stats/
+bdclose,toolbox/simulink/simulink/
+bdroot,toolbox/simulink/simulink/
+bdschur,toolbox/control/ctrlutil/
+ben2adat,toolbox/simulink/simdemos/
+ben2bdat,toolbox/simulink/simdemos/
+ben2cdat,toolbox/simulink/simdemos/
+ben3adat,toolbox/simulink/simdemos/
+ben3bdat,toolbox/simulink/simdemos/
+besselap,toolbox/signal/signal/
+besself,toolbox/signal/signal/
+bestblk,toolbox/images/images/
+bestfixexp,toolbox/simulink/fixedandfloat/
+betacdf,toolbox/stats/
+betafit,toolbox/stats/
+betainv,toolbox/stats/
+betalik1,toolbox/stats/
+betalike,toolbox/stats/
+betapdf,toolbox/stats/
+betarnd,toolbox/stats/
+betastat,toolbox/stats/
+bhrdemo,toolbox/robust/
+bilexp,toolbox/robust/
+bilin,toolbox/robust/
+bilinear,toolbox/signal/signal/
+binocdf,toolbox/stats/
+binofit,toolbox/stats/
+binoinv,toolbox/stats/
+binopdf,toolbox/stats/
+binornd,toolbox/stats/
+binostat,toolbox/stats/
+bintprog,toolbox/optim/
+biplot,toolbox/stats/
+biqpbox,toolbox/optim/private/
+bitrevorder,toolbox/signal/signal/
+bj,toolbox/ident/ident/
+bkbrk,toolbox/splines/
+blackman,toolbox/signal/signal/
+blackmanharris,toolbox/signal/signal/
+blkbuild,toolbox/control/ctrlobsolete/
+blkout2sfunout,toolbox/stateflow/stateflow/private/
+blkproc,toolbox/images/images/
+blkrsch,toolbox/robust/
+blkxchk,toolbox/simulink/simulink/private/
+block2chart,toolbox/stateflow/stateflow/private/
+block2link,toolbox/simulink/components/private/
+blockGetDialogSchema,toolbox/shared/dastudio/
+blockconnect,toolbox/slcontrol/slctrlutil/
+blowfish,toolbox/stateflow/stateflow/private/
+bode,toolbox/control/control/
+bodeaux,toolbox/ident/idutils/
+bodeplot,toolbox/ident/idobsolete/
+bohmanwin,toolbox/signal/signal/
+boolean,toolbox/simulink/simulink/
+bootstrp,toolbox/stats/
+boxcar,toolbox/signal/signal/
+boxplot,toolbox/stats/
+boxutil,toolbox/stats/
+branch,toolbox/robust/
+brk2knt,toolbox/splines/
+brownfg,toolbox/optim/
+brownfgh,toolbox/optim/
+brownvv,toolbox/optim/
+bscost,toolbox/signal/signal/
+bsplidem,toolbox/splines/
+bspligui,toolbox/splines/
+bspline,toolbox/splines/
+bstschml,toolbox/robust/
+bstschmr,toolbox/robust/
+buffer,toolbox/signal/signal/
+build_model_reference_target,toolbox/simulink/simulink/private/
+build_sl_hierarchy,toolbox/simulink/simcoverage/private/
+build_standalone_rtw_target,toolbox/simulink/simulink/private/
+build_target,toolbox/simulink/simulink/private/
+busAssignmentddg,toolbox/simulink/blocks/
+busCreatorddg,toolbox/simulink/blocks/
+busCreatorddg_cb,toolbox/simulink/simulink/
+busSelectorddg,toolbox/simulink/blocks/
+buscreator,toolbox/simulink/simulink/
+busddg,toolbox/simulink/simulink/
+busdemoscript,toolbox/simulink/simdemos/simfeatures/
+buseditor,toolbox/simulink/simulink/
+buselementddg,toolbox/simulink/simulink/
+busselect,toolbox/simulink/simulink/
+buttap,toolbox/signal/signal/
+butter,toolbox/signal/signal/
+buttord,toolbox/signal/signal/
+bwarea,toolbox/images/images/
+bwareaopen,toolbox/images/images/
+bwboundaries,toolbox/images/images/
+bwdist,toolbox/images/images/
+bweuler,toolbox/images/images/
+bwfill,toolbox/images/images/
+bwhitmiss,toolbox/images/images/
+bwlabel,toolbox/images/images/
+bwlabeln,toolbox/images/images/
+bwmorph,toolbox/images/images/
+bwpack,toolbox/images/images/
+bwperim,toolbox/images/images/
+bwselect,toolbox/images/images/
+bwtraceboundary,toolbox/images/images/
+bwulterode,toolbox/images/images/
+bwunpack,toolbox/images/images/
+c2d,toolbox/simulink/simulink/private/
+c2d,toolbox/control/control/
+c2dm,toolbox/control/ctrlobsolete/
+c2dt,toolbox/control/ctrlobsolete/
+c_indent,toolbox/rtw/rtw/
+c_type_from_sf_type,toolbox/stateflow/coder/private/
+callback_function_management,toolbox/rtw/rtw/
+callperl,toolbox/simulink/simulink/
+candexch,toolbox/stats/
+candgen,toolbox/stats/
+canform,toolbox/ident/idobsolete/
+canon,toolbox/control/control/
+canoncorr,toolbox/stats/
+canstart,toolbox/ident/idobsolete/
+capable,toolbox/stats/
+capacitor,toolbox/control/ctrldemos/private/
+capaplot,toolbox/stats/
+cardb,toolbox/pde/
+cardg,toolbox/pde/
+care,toolbox/control/control/
+caseread,toolbox/stats/
+casewrite,toolbox/stats/
+cast,toolbox/images/images/private/
+cccopyfcn,toolbox/rtw/rtw/
+ccdesign,toolbox/stats/
+cceps,toolbox/signal/signal/
+ccopenfcn,toolbox/rtw/rtw/
+cdf,toolbox/stats/
+cdfcalc,toolbox/stats/
+cdfplot,toolbox/stats/
+cedit,toolbox/local/
+cell2sos,toolbox/signal/signal/
+cellengunits,toolbox/signal/sigtools/
+centerfig,toolbox/shared/controllib/
+centerfigonfig,toolbox/signal/sigtools/private/
+cfgDlgCBRedirect,toolbox/simulink/simulink/private/
+cfirpm,toolbox/signal/signal/
+cftoolchecknames,toolbox/images/images/private/
+cgloci,toolbox/robust/
+cgloci2,toolbox/robust/
+changeBoundDualFeasible,toolbox/optim/private/
+changeBoundLP,toolbox/optim/private/
+changeSimPrmTab,toolbox/simulink/simulink/
+change_de_port_index,toolbox/stateflow/stateflow/private/
+change_icon_to,toolbox/stateflow/stateflow/private/
+changeclass,toolbox/images/images/private/
+changedisplay,toolbox/signal/sigtools/
+chanupd,toolbox/ident/idguis/
+chaos2das,toolbox/shared/dastudio/
+chart2block,toolbox/stateflow/stateflow/private/
+chart2name,toolbox/stateflow/stateflow/private/
+chart_real_transitions,toolbox/stateflow/stateflow/private/
+chart_recovery_man,toolbox/stateflow/stateflow/private/
+chartddg,toolbox/stateflow/stateflow/private/
+chartdlg,toolbox/stateflow/stateflow/private/
+chbpnt,toolbox/splines/
+chckxywp,toolbox/splines/
+cheb1ap,toolbox/signal/signal/
+cheb1ord,toolbox/signal/signal/
+cheb2ap,toolbox/signal/signal/
+cheb2ord,toolbox/signal/signal/
+chebdem,toolbox/splines/
+chebloop,toolbox/splines/
+chebwin,toolbox/signal/signal/
+cheby1,toolbox/signal/signal/
+cheby2,toolbox/signal/signal/
+checkSimPrm,toolbox/simulink/simulink/private/
+check_bang_in_dir,toolbox/stateflow/stateflow/private/
+check_fan_params,toolbox/images/images/private/
+check_for_long_model_name,toolbox/stateflow/stateflow/private/
+check_if_file_is_in_sync,toolbox/stateflow/stateflow/private/
+check_mdl_precedence,toolbox/simulink/simulink/
+check_order,toolbox/signal/signal/private/
+checkbounds,toolbox/shared/optimlib/
+checkconn,toolbox/images/images/private/
+checkerboard,toolbox/images/images/
+checkinput,toolbox/images/images/private/
+checkinputsigdim,toolbox/signal/sigtools/
+checkmap,toolbox/images/images/private/
+checknargin,toolbox/images/images/private/
+checkstrs,toolbox/images/images/private/
+chi2cdf,toolbox/stats/
+chi2conf,toolbox/signal/signal/private/
+chi2inv,toolbox/stats/
+chi2pdf,toolbox/stats/
+chi2rnd,toolbox/stats/
+chi2stat,toolbox/stats/
+chirp,toolbox/signal/signal/
+chk_license,toolbox/simulink/simdemos/automotive/
+chkmdinteg,toolbox/ident/idutils/
+chkrules,toolbox/simulink/components/private/
+chop,toolbox/control/ctrlobsolete/
+circleb1,toolbox/pde/
+circleb2,toolbox/pde/
+circlef,toolbox/pde/
+circleg,toolbox/pde/
+circlepick,toolbox/pde/
+circustent,toolbox/optim/
+cirsb,toolbox/pde/
+cirsg,toolbox/pde/
+classdemo,toolbox/stats/
+classify,toolbox/stats/
+clean_code_gen_dir,toolbox/stateflow/coder/private/
+clean_error_msg,toolbox/stateflow/stateflow/private/
+clean_target,toolbox/stateflow/stateflow/private/
+cleanerrormsg,toolbox/signal/sigtools/
+clipdivide,toolbox/images/images/private/
+cloop,toolbox/control/ctrlobsolete/
+close_models,toolbox/simulink/simulink/private/
+close_system,toolbox/simulink/simulink/
+closemachines,toolbox/stateflow/stateflow/private/
+cluster,toolbox/stats/
+clusterdata,toolbox/stats/
+clusterdemo,toolbox/stats/
+clutchplot,toolbox/simulink/simdemos/automotive/
+clutchplot_if,toolbox/simulink/simdemos/automotive/
+clxbode,toolbox/robust/
+cmd_window_buffering,toolbox/rtw/rtw/
+cmdscale,toolbox/stats/
+cmdscaledemo,toolbox/stats/
+cmgamdef,toolbox/images/images/
+cmgamma,toolbox/images/images/
+cminfo,toolbox/local/
+cmopts,toolbox/local/
+cmpermute,toolbox/images/images/
+cmunique,toolbox/images/images/
+code_borland_make_file,toolbox/stateflow/coder/private/
+code_chart_debug_initialization,toolbox/stateflow/coder/private/
+code_chart_header_file,toolbox/stateflow/coder/private/
+code_chart_header_file__rtw,toolbox/stateflow/coder/private/
+code_chart_header_file_custom,toolbox/stateflow/coder/private/
+code_chart_header_file_sfun,toolbox/stateflow/coder/private/
+code_chart_source_file,toolbox/stateflow/coder/private/
+code_chart_source_file_custom,toolbox/stateflow/coder/private/
+code_chart_source_file_rtw,toolbox/stateflow/coder/private/
+code_chart_source_file_sfun,toolbox/stateflow/coder/private/
+code_data_initialization,toolbox/stateflow/coder/private/
+code_debug_macros,toolbox/stateflow/coder/private/
+code_interface_and_support_files,toolbox/stateflow/coder/private/
+code_lcc_make_file,toolbox/stateflow/coder/private/
+code_machine_debug_initialization,toolbox/stateflow/coder/private/
+code_machine_def_file,toolbox/stateflow/coder/private/
+code_machine_header_file,toolbox/stateflow/coder/private/
+code_machine_header_file_custom,toolbox/stateflow/coder/private/
+code_machine_header_file_rtw,toolbox/stateflow/coder/private/
+code_machine_header_file_sfun,toolbox/stateflow/coder/private/
+code_machine_objlist_file,toolbox/stateflow/coder/private/
+code_machine_registry_file,toolbox/stateflow/coder/private/
+code_machine_source_file,toolbox/stateflow/coder/private/
+code_machine_source_file_custom,toolbox/stateflow/coder/private/
+code_machine_source_file_rtw,toolbox/stateflow/coder/private/
+code_machine_source_file_sfun,toolbox/stateflow/coder/private/
+code_msvc50_dswfile,toolbox/stateflow/coder/private/
+code_msvc50_makefile,toolbox/stateflow/coder/private/
+code_msvc_make_file,toolbox/stateflow/coder/private/
+code_sfun_glue_code,toolbox/stateflow/coder/private/
+code_unix_make_file,toolbox/stateflow/coder/private/
+code_watcom_make_file,toolbox/stateflow/coder/private/
+coder_error_count_man,toolbox/stateflow/stateflow/private/
+coder_options,toolbox/stateflow/coder/private/
+coder_opts_ddg,toolbox/stateflow/stateflow/private/
+coder_opts_ddg_preapply_cb,toolbox/stateflow/stateflow/private/
+cohere,toolbox/signal/signal/
+col2im,toolbox/images/images/
+colfilt,toolbox/images/images/
+collatetranslations,toolbox/simulink/simulink/
+collect_custom_code_symbols,toolbox/stateflow/stateflow/private/
+color,toolbox/optim/
+color2background,toolbox/signal/sigtools/
+combnk,toolbox/stats/
+comclient,toolbox/local/
+compare_components,toolbox/simulink/simulink/private/
+compare_configuration_sets,toolbox/simulink/simulink/private/
+compat13,toolbox/simulink/simulink/private/
+compdir,toolbox/shared/optimlib/
+compilerman,toolbox/stateflow/stateflow/private/
+completefreqresp,toolbox/signal/signal/
+compreal,toolbox/control/ctrlutil/
+compute_chart_information,toolbox/stateflow/coder/private/
+compute_compiler_info,toolbox/stateflow/coder/private/
+compute_event_enum_values,toolbox/stateflow/coder/private/
+compute_inc_codegen_info,toolbox/stateflow/coder/private/
+compute_machine_info,toolbox/stateflow/coder/private/
+compute_rtw_multi_instance_info,toolbox/stateflow/coder/private/
+compute_sfun_io_port_info,toolbox/stateflow/coder/private/
+compute_state_enums,toolbox/stateflow/coder/private/
+compute_target_info,toolbox/stateflow/coder/private/
+compute_value_from_rtwoptions,toolbox/rtw/rtw/
+computeperiodogram,toolbox/signal/signal/private/
+computepsd,toolbox/signal/signal/
+configDlgAction,toolbox/simulink/simulink/private/
+configDlgCallback,toolbox/simulink/simulink/private/
+configHelp,toolbox/simulink/simulink/private/
+configSetPref,toolbox/simulink/simulink/private/
+config_dlg_configure_param,toolbox/simulink/simulink/
+configblk,toolbox/simulink/simulink/
+configset_delete,toolbox/simulink/simulink/private/
+configure_model_reference_target_status,toolbox/simulink/simulink/private/
+confun,toolbox/optim/
+confuneq,toolbox/optim/
+confungrad,toolbox/optim/
+conn2array,toolbox/images/images/private/
+conndef,toolbox/images/images/
+connect,toolbox/control/control/
+connectline,toolbox/control/ctrlutil/
+construct_coder_error,toolbox/stateflow/coder/private/
+construct_context_for_machine,toolbox/stateflow/coder/private/
+construct_error,toolbox/stateflow/stateflow/private/
+construct_module,toolbox/stateflow/coder/private/
+construct_tt_error,toolbox/stateflow/stateflow/private/
+construct_warning,toolbox/stateflow/stateflow/private/
+convert2db,toolbox/signal/sigtools/
+convert2deg,toolbox/signal/sigtools/
+convert2engstrs,toolbox/signal/sigtools/
+convert2sq,toolbox/signal/sigtools/
+convert2vector,toolbox/signal/sigtools/
+convertSampleTimeInfo,toolbox/simulink/simulink/private/
+convertfrequnits,toolbox/signal/sigtools/
+convertmagunits,toolbox/signal/sigtools/
+convhullx,toolbox/images/images/private/
+convmtx,toolbox/signal/signal/
+convmtx2,toolbox/images/images/
+cophenet,toolbox/stats/
+copulademo,toolbox/stats/
+copy_object_properties,toolbox/simulink/simulink/
+copy_target_props,toolbox/stateflow/stateflow/private/
+cordexch,toolbox/stats/
+corelucy,toolbox/images/images/private/
+corr,toolbox/stats/
+corr2,toolbox/images/images/
+corrmtx,toolbox/signal/signal/
+cosint,toolbox/symbolic/
+count_fixpt_blks,toolbox/simulink/fixedandfloat/
+covar,toolbox/control/control/
+covf,toolbox/ident/idobsolete/
+covf2,toolbox/ident/idobsolete/
+covlamb,toolbox/ident/idutils/
+cp2tform,toolbox/images/images/
+cpcorr,toolbox/images/images/
+cppredict,toolbox/images/images/private/
+cpsave,toolbox/images/images/private/
+cpsd,toolbox/signal/signal/
+cpselect,toolbox/images/images/
+cpselecthelp,toolbox/images/images/private/
+cpstruct2pairs,toolbox/images/images/
+cr,toolbox/simulink/simulink/private/
+cra,toolbox/ident/ident/
+crackb,toolbox/pde/
+crackg,toolbox/pde/
+createDASimulink,toolbox/shared/dastudio/
+create_directory_path,toolbox/stateflow/stateflow/private/
+create_file_name_info,toolbox/stateflow/coder/private/
+create_nag,toolbox/simulink/simulink/private/
+create_truth_table,toolbox/stateflow/stateflow/private/
+createfigcopy,toolbox/signal/sigtools/private/
+createsignalzoom,toolbox/signal/sigtools/
+createtdtlisteners,toolbox/simulink/simulink/
+cremez,toolbox/signal/signal/
+crmz,toolbox/signal/signal/private/
+crosstab,toolbox/stats/
+crtanim1,toolbox/simulink/simdemos/simgeneral/
+crtanim2,toolbox/simulink/simdemos/simgeneral/
+cs,toolbox/ident/iddemos/
+cs1,toolbox/ident/iddemos/
+cs2,toolbox/ident/iddemos/
+csape,toolbox/splines/
+csapi,toolbox/splines/
+csapidem,toolbox/splines/
+csaps,toolbox/splines/
+csapsdem,toolbox/splines/
+cschur,toolbox/robust/
+cscvn,toolbox/splines/
+csd,toolbox/signal/signal/
+csfunc,toolbox/simulink/blocks/
+csgchk,toolbox/pde/
+csgdel,toolbox/pde/
+cshelpcontextmenu,toolbox/signal/sigtools/
+cshelpengine,toolbox/signal/sigtools/
+cshelpgeneral_cb,toolbox/signal/sigtools/
+cspecchk,toolbox/images/images/private/
+cstdefs,toolbox/control/ctrlguis/
+cstupdate,toolbox/control/ctrlguis/
+ctrb,toolbox/control/control/
+ctrbf,toolbox/control/control/
+ctrlguihelp,toolbox/control/ctrlguis/
+ctrlpref,toolbox/control/control/
+ctx_add_note,toolbox/stateflow/stateflow/private/
+ctx_toggle_smart,toolbox/stateflow/stateflow/private/
+ctxmenuman,toolbox/stateflow/stateflow/private/
+cubic,toolbox/optim/
+cubici1,toolbox/optim/
+cubici2,toolbox/optim/
+cubici3,toolbox/optim/
+currentchart,toolbox/stateflow/stateflow/private/
+custcodehelp,toolbox/rtw/rtw/
+customdist1demo,toolbox/stats/
+customdist2demo,toolbox/stats/
+cv_append_autoscale_data,toolbox/simulink/simcoverage/private/
+cv_dialog_options,toolbox/simulink/simcoverage/private/
+cv_init_dialog_test,toolbox/simulink/simcoverage/private/
+cv_is_model_autoscale,toolbox/simulink/simcoverage/private/
+cv_metric_names,toolbox/simulink/simcoverage/private/
+cv_model_enabled,toolbox/simulink/simcoverage/private/
+cv_sf_chart_data,toolbox/simulink/simcoverage/private/
+cv_term_dialog_test,toolbox/simulink/simcoverage/private/
+cvinit,toolbox/simulink/simcoverage/private/
+cvmodel,toolbox/simulink/simcoverage/private/
+cvsf,toolbox/simulink/simcoverage/private/
+cycle_error_help,toolbox/stateflow/stateflow/private/
+czt,toolbox/signal/signal/
+cztdemo,toolbox/signal/sigdemos/
+d2c,toolbox/control/control/
+d2ci,toolbox/simulink/simulink/private/
+d2cm,toolbox/control/ctrlobsolete/
+d2d,toolbox/control/control/
+d2d,toolbox/simulink/simulink/private/
+da_mxarray_get_schema,toolbox/shared/dastudio/
+daabout,toolbox/shared/dastudio/
+dactdemo,toolbox/robust/
+daexplr,toolbox/shared/dastudio/
+damp,toolbox/control/control/
+damp,toolbox/ident/idutils/private/
+dare,toolbox/control/control/
+daresolv,toolbox/robust/
+das2chaos,toolbox/shared/dastudio/
+das_dv_hyperlink,toolbox/shared/dastudio/
+das_get_data_type,toolbox/shared/dastudio/
+das_get_enum_values,toolbox/shared/dastudio/
+das_undo_gateway,toolbox/shared/dastudio/
+das_undo_stack,toolbox/shared/dastudio/
+dataStoreMemddg,toolbox/simulink/blocks/
+dataStoreRWddg,toolbox/simulink/blocks/
+dataStoreRWddg_cb,toolbox/simulink/simulink/
+dataddg,toolbox/simulink/simulink/
+dataddg,toolbox/stateflow/stateflow/private/
+dataddg_cb,toolbox/simulink/simulink/
+dataddg_mxarray,toolbox/shared/dastudio/
+dataddg_port_callback,toolbox/stateflow/stateflow/private/
+dataddg_preapply_callback,toolbox/stateflow/stateflow/private/
+dataddg_preclose_callback,toolbox/stateflow/stateflow/private/
+datadlg,toolbox/stateflow/stateflow/private/
+datatip,toolbox/control/ctrlobsolete/
+datawrap,toolbox/signal/signal/
+datdemo,toolbox/optim/
+daugment,toolbox/stats/
+db,toolbox/signal/signal/
+dbalreal,toolbox/control/ctrlobsolete/
+dbm,toolbox/signal/signal/private/
+dbode,toolbox/control/ctrlobsolete/
+dcdemo,toolbox/control/ctrldemos/
+dcgain,toolbox/control/control/
+dcgloci,toolbox/robust/
+dcgloci2,toolbox/robust/
+dclxbode,toolbox/robust/
+dcovar,toolbox/control/ctrlobsolete/
+dcovary,toolbox/stats/
+dct,toolbox/images/images/private/
+dct,toolbox/signal/signal/
+dct2,toolbox/images/images/
+dctdemo,toolbox/images/imdemos/
+dctmtx,toolbox/images/images/
+dctmtx2,toolbox/images/images/
+dctold,toolbox/signal/signal/private/
+ddamp,toolbox/control/ctrlobsolete/
+ddcgain,toolbox/control/ctrlobsolete/
+ddg_get_parent_name,toolbox/stateflow/stateflow/private/
+ddist,toolbox/images/images/private/
+deblankall,toolbox/simulink/simulink/private/
+debugdlg,toolbox/stateflow/stateflow/private/
+decimate,toolbox/signal/signal/
+deconvblind,toolbox/images/images/
+deconvlucy,toolbox/images/images/
+deconvreg,toolbox/images/images/
+deconvwnr,toolbox/images/images/
+decorrstretch,toolbox/images/images/
+decrypt_machine,toolbox/stateflow/stateflow/private/
+decsg,toolbox/pde/
+dee4plt,toolbox/simulink/dee/
+dee4plti,toolbox/simulink/dee/
+deechgnm,toolbox/simulink/dee/
+deedemi4,toolbox/simulink/dee/
+deeflag,toolbox/simulink/dee/
+deehelp,toolbox/simulink/dee/
+deelin,toolbox/simulink/dee/
+deerestr,toolbox/simulink/dee/
+deeupdat,toolbox/simulink/dee/
+default_target_methods,toolbox/stateflow/stateflow/private/
+defaultlutblklist,toolbox/simulink/blocks/private/
+definev,toolbox/optim/private/
+defnum,toolbox/ident/idutils/
+defnum2,toolbox/ident/idutils/
+defnum3,toolbox/ident/idutils/
+delayest,toolbox/ident/ident/
+delayfr,toolbox/control/ctrlutil/
+delete_block,toolbox/simulink/simulink/
+delete_line,toolbox/simulink/simulink/
+delete_param,toolbox/simulink/simulink/
+deletehgfig,toolbox/simulink/simulink/
+democlean,toolbox/control/ctrldemos/private/
+demod,toolbox/signal/signal/
+dendrogram,toolbox/stats/
+dep,toolbox/optim/private/
+des2ss,toolbox/robust/
+despace,toolbox/stateflow/stateflow/private/
+destim,toolbox/control/ctrlobsolete/
+detachConfigSet,toolbox/simulink/simulink/
+deterministicsignalpower,toolbox/signal/sigdemos/
+dexresp,toolbox/control/ctrlobsolete/
+dfaddbuttons,toolbox/stats/private/
+dfaddparamfit,toolbox/stats/private/
+dfaddsmoothfit,toolbox/stats/private/
+dfadjustlayout,toolbox/stats/private/
+dfadjustmenu,toolbox/stats/private/
+dfadjusttoolbar,toolbox/stats/private/
+dfasksavesession,toolbox/stats/private/
+dfaxlimctrl,toolbox/stats/private/
+dfbinwidthpreview,toolbox/stats/private/
+dfboundwarn,toolbox/stats/private/
+dfcanplotdata,toolbox/stats/private/
+dfcbkclear,toolbox/stats/private/
+dfcheckselections,toolbox/stats/private/
+dfcopyexrule,toolbox/stats/private/
+dfcreatecopy,toolbox/stats/private/
+dfcreatedataset,toolbox/stats/private/
+dfcreateexclusionrule,toolbox/stats/private/
+dfcreateplot,toolbox/stats/private/
+dfcustomdist,toolbox/stats/private/
+dfdeleteexrule,toolbox/stats/private/
+dfdelgraphexclude,toolbox/stats/private/
+dfdocontext,toolbox/stats/private/
+dfdupfigure,toolbox/stats/private/
+dfevaluate,toolbox/stats/private/
+dfevaluateplot,toolbox/stats/private/
+dfexport2workspace,toolbox/stats/private/
+dffig2m,toolbox/stats/private/
+dfgetbinwidthdefaults,toolbox/stats/private/
+dfgetdistributions,toolbox/stats/private/
+dfgetexclusionrule,toolbox/stats/private/
+dfgetfitname,toolbox/stats/private/
+dfgetset,toolbox/stats/
+dfgetupdateinfo,toolbox/stats/private/
+dfgetuserdists,toolbox/stats/private/
+dfgraphexclude,toolbox/stats/private/
+dfhelpviewer,toolbox/stats/private/
+dfhistbins,toolbox/stats/private/
+dfildemo,toolbox/optim/
+dfilt2qfilt,toolbox/signal/sigtools/
+dfiltdemo,toolbox/signal/sigdemos/
+dfiltfftfirdemo,toolbox/signal/sigdemos/
+dfiltfilteringdemo,toolbox/signal/sigdemos/
+dfiltloadobj,toolbox/signal/sigtools/
+dfittool,toolbox/stats/
+dfpreview,toolbox/stats/private/
+dfreqrc,toolbox/robust/
+dfrqint,toolbox/control/ctrlobsolete/
+dfrqint2,toolbox/control/ctrlobsolete/
+dfsectionpreview,toolbox/stats/private/
+dfsession,toolbox/stats/private/
+dfsetbinwidthrules,toolbox/stats/private/
+dfsetconflev,toolbox/stats/private/
+dfsetdistributions,toolbox/stats/private/
+dfsetfunction,toolbox/stats/private/
+dfsetplottype,toolbox/stats/private/
+dfswitchyard,toolbox/stats/
+dftips,toolbox/stats/private/
+dftmtx,toolbox/signal/signal/
+dftoggleaxlimctrl,toolbox/stats/private/
+dftogglegrid,toolbox/stats/private/
+dftogglelegend,toolbox/stats/private/
+dftoggletoolbar,toolbox/stats/private/
+dftoolgetudd,toolbox/stats/private/
+dftoolinittemplate,toolbox/stats/private/
+dfupdateallplots,toolbox/stats/private/
+dfupdatebinwidthpreview,toolbox/stats/private/
+dfupdatelegend,toolbox/stats/private/
+dfupdateppdists,toolbox/stats/private/
+dfupdatexlim,toolbox/stats/private/
+dfupdateylim,toolbox/stats/private/
+dfviewdata,toolbox/stats/private/
+dfviewdatapreview,toolbox/stats/private/
+dfviewexcludepreview,toolbox/stats/private/
+dfviewpreview,toolbox/stats/private/
+dgammainc,toolbox/stats/private/
+dgram,toolbox/control/ctrlobsolete/
+dh2lqg,toolbox/robust/
+dhinf,toolbox/robust/
+dhinfopt,toolbox/robust/
+diagmx,toolbox/robust/
+diagnose,toolbox/shared/optimlib/
+dicom_add_attr,toolbox/images/images/private/
+dicom_add_item,toolbox/images/images/private/
+dicom_close_msg,toolbox/images/images/private/
+dicom_compress_pixel_cells,toolbox/images/images/private/
+dicom_convert_meta_to_attr,toolbox/images/images/private/
+dicom_copy_IOD,toolbox/images/images/private/
+dicom_create_IOD,toolbox/images/images/private/
+dicom_create_attr,toolbox/images/images/private/
+dicom_create_file_struct,toolbox/images/images/private/
+dicom_create_guid,toolbox/images/images/private/
+dicom_create_meta_struct,toolbox/images/images/private/
+dicom_decode_jpg8,toolbox/images/images/private/
+dicom_decode_pixel_cells,toolbox/images/images/private/
+dicom_decode_rle,toolbox/images/images/private/
+dicom_dict_lookup,toolbox/images/images/private/
+dicom_encode_attrs,toolbox/images/images/private/
+dicom_encode_jpeg_lossless,toolbox/images/images/private/
+dicom_encode_jpeg_lossy,toolbox/images/images/private/
+dicom_encode_pixel_cells,toolbox/images/images/private/
+dicom_encode_pn,toolbox/images/images/private/
+dicom_encode_rle,toolbox/images/images/private/
+dicom_generate_uid,toolbox/images/images/private/
+dicom_get_msg,toolbox/images/images/private/
+dicom_get_next_tag,toolbox/images/images/private/
+dicom_get_tags,toolbox/images/images/private/
+dicom_has_fmeta,toolbox/images/images/private/
+dicom_has_overlay_bits,toolbox/images/images/private/
+dicom_iods,toolbox/images/images/private/
+dicom_load_dictionary,toolbox/images/images/private/
+dicom_modules,toolbox/images/images/private/
+dicom_name_lookup,toolbox/images/images/private/
+dicom_open_msg,toolbox/images/images/private/
+dicom_prep_FileMetadata,toolbox/images/images/private/
+dicom_prep_FrameOfReference,toolbox/images/images/private/
+dicom_prep_GeneralImage,toolbox/images/images/private/
+dicom_prep_GeneralSeries,toolbox/images/images/private/
+dicom_prep_GeneralStudy,toolbox/images/images/private/
+dicom_prep_ImagePixel,toolbox/images/images/private/
+dicom_prep_SCImageEquipment,toolbox/images/images/private/
+dicom_prep_SOPCommon,toolbox/images/images/private/
+dicom_prep_metadata,toolbox/images/images/private/
+dicom_read_attr,toolbox/images/images/private/
+dicom_read_attr_by_pos,toolbox/images/images/private/
+dicom_read_attr_length,toolbox/images/images/private/
+dicom_read_attr_metadata,toolbox/images/images/private/
+dicom_read_attr_tag,toolbox/images/images/private/
+dicom_read_attr_vr,toolbox/images/images/private/
+dicom_read_encapsulated,toolbox/images/images/private/
+dicom_read_fmeta,toolbox/images/images/private/
+dicom_read_image,toolbox/images/images/private/
+dicom_read_mmeta,toolbox/images/images/private/
+dicom_read_native,toolbox/images/images/private/
+dicom_set_image_encoding,toolbox/images/images/private/
+dicom_set_imfinfo_values,toolbox/images/images/private/
+dicom_set_mmeta_encoding,toolbox/images/images/private/
+dicom_supported_txfr_syntax,toolbox/images/images/private/
+dicom_tag_lookup,toolbox/images/images/private/
+dicom_uid_decode,toolbox/images/images/private/
+dicom_warn,toolbox/images/images/private/
+dicom_write_stream,toolbox/images/images/private/
+dicom_xform_image,toolbox/images/images/private/
+dicomdict,toolbox/images/images/
+dicominfo,toolbox/images/images/
+dicomread,toolbox/images/images/
+dicomuid,toolbox/images/images/
+dicomwrite,toolbox/images/images/
+difeqdem,toolbox/splines/
+difeqite,toolbox/splines/
+difeqset,toolbox/splines/
+diffeqed,toolbox/simulink/dee/
+differentiator,toolbox/signal/signal/private/
+digitrevorder,toolbox/signal/signal/
+digits,toolbox/symbolic/
+dilate,toolbox/images/images/
+dimpulse,toolbox/control/ctrlobsolete/
+dinitial,toolbox/control/ctrlobsolete/
+dintdemo,toolbox/robust/
+dinteva,toolbox/robust/
+dintplt,toolbox/robust/
+dirac,toolbox/symbolic/
+diric,toolbox/signal/signal/
+disableimplicitsignalresolution,toolbox/simulink/simulink/
+diskdemo,toolbox/control/ctrldemos/
+diskdemo_aux,toolbox/control/ctrldemos/
+dispblocksmissed,toolbox/slcontrol/slctrlutil/
+display1,toolbox/optim/private/
+distchck,toolbox/stats/
+disttool,toolbox/stats/
+dither,toolbox/images/images/
+ditherc,toolbox/images/images/private/
+dividenowarn,toolbox/signal/signal/private/
+dkalman,toolbox/control/control/
+dlg_apply_bitops_to_all_charts,toolbox/stateflow/stateflow/private/
+dlg_apply_ui_checkbox,toolbox/stateflow/stateflow/private/
+dlg_call,toolbox/stateflow/stateflow/private/
+dlg_common_uis,toolbox/stateflow/stateflow/private/
+dlg_constants,toolbox/stateflow/stateflow/private/
+dlg_data,toolbox/stateflow/stateflow/private/
+dlg_edit_field,toolbox/stateflow/stateflow/private/
+dlg_enable_ui,toolbox/stateflow/stateflow/private/
+dlg_end_construction,toolbox/stateflow/stateflow/private/
+dlg_figure,toolbox/stateflow/stateflow/private/
+dlg_get_string,toolbox/stateflow/stateflow/private/
+dlg_goto_debugger,toolbox/stateflow/stateflow/private/
+dlg_goto_dest,toolbox/stateflow/stateflow/private/
+dlg_goto_document,toolbox/stateflow/stateflow/private/
+dlg_goto_object,toolbox/stateflow/stateflow/private/
+dlg_goto_parent,toolbox/stateflow/stateflow/private/
+dlg_goto_source,toolbox/stateflow/stateflow/private/
+dlg_is_iced,toolbox/stateflow/stateflow/private/
+dlg_mouse,toolbox/stateflow/stateflow/private/
+dlg_open,toolbox/stateflow/stateflow/private/
+dlg_origin,toolbox/stateflow/stateflow/private/
+dlg_refresh,toolbox/stateflow/stateflow/private/
+dlg_resize,toolbox/stateflow/stateflow/private/
+dlg_revert,toolbox/stateflow/stateflow/private/
+dlg_revert_property,toolbox/stateflow/stateflow/private/
+dlg_set,toolbox/stateflow/stateflow/private/
+dlg_set_string,toolbox/stateflow/stateflow/private/
+dlg_sort_uicontrols,toolbox/stateflow/stateflow/private/
+dlg_str_width,toolbox/stateflow/stateflow/private/
+dlg_sub_dialog,toolbox/stateflow/stateflow/private/
+dlg_trans_table,toolbox/stateflow/stateflow/private/
+dlg_update_parent_ui,toolbox/stateflow/stateflow/private/
+dlg_update_srcdst_ui,toolbox/stateflow/stateflow/private/
+dlg_update_subsystem_ui,toolbox/stateflow/stateflow/private/
+dlinmod,toolbox/simulink/simulink/
+dlinmodv5,toolbox/simulink/simulink/
+dlqe,toolbox/control/ctrlobsolete/
+dlqew,toolbox/control/ctrlobsolete/
+dlqr,toolbox/control/control/
+dlqrc,toolbox/robust/
+dlqry,toolbox/control/ctrlobsolete/
+dlsim,toolbox/control/ctrlobsolete/
+dlyap,toolbox/control/control/
+dlyapchol,toolbox/control/control/
+dmodred,toolbox/control/ctrlobsolete/
+dmulresp,toolbox/control/ctrlobsolete/
+dnichols,toolbox/control/ctrlobsolete/
+dnyquist,toolbox/control/ctrlobsolete/
+dobal,toolbox/robust/
+docblock,toolbox/simulink/blocks/
+docopt,toolbox/local/
+dogleg,toolbox/optim/private/
+dow_package_registry,toolbox/simulink/simulink/
+downsample,toolbox/signal/signal/
+dparseit,toolbox/simulink/dee/
+dpss,toolbox/signal/signal/
+dpssclear,toolbox/signal/signal/
+dpssdir,toolbox/signal/signal/
+dpssload,toolbox/signal/signal/
+dpsssave,toolbox/signal/signal/
+drawacc,toolbox/robust/
+drawpznumbers,toolbox/signal/signal/
+dreg,toolbox/control/ctrlobsolete/
+dric,toolbox/control/ctrlobsolete/
+driccond,toolbox/robust/
+drmodel,toolbox/control/control/
+drqpbox,toolbox/optim/private/
+drss,toolbox/control/control/
+drt_rtw_info_hook,toolbox/rtw/rtw/
+drum1,toolbox/pde/
+drum2,toolbox/pde/
+dsfunc,toolbox/simulink/blocks/
+dsigma,toolbox/control/ctrlobsolete/
+dskwheel,toolbox/control/ctrldemos/private/
+dsolve,toolbox/symbolic/
+dsort,toolbox/control/control/
+dspblksstatusbar,toolbox/signal/sigtools/
+dspblkstructures,toolbox/signal/sigtools/
+dspplugin,toolbox/signal/sigtools/
+dss,toolbox/control/control/
+dst,toolbox/pde/
+dstep,toolbox/control/ctrlobsolete/
+dtf2ss,toolbox/simulink/simulink/
+dtimscale,toolbox/ident/idutils/private/
+dtimvec,toolbox/control/ctrlobsolete/
+dtmfdemo,toolbox/signal/sigdemos/
+dtrend,toolbox/ident/idobsolete/
+dualsimplex,toolbox/optim/private/
+dummyvar,toolbox/stats/
+dump_exported_fcn_prototypes,toolbox/stateflow/coder/private/
+dump_module,toolbox/stateflow/coder/private/
+dynamicdlg,toolbox/shared/dastudio/
+ecdf,toolbox/stats/
+ecdfhist,toolbox/stats/
+ecg,toolbox/signal/sigdemos/
+edge,toolbox/images/images/
+edgedemo,toolbox/images/imdemos/
+edgelist2mask,toolbox/images/images/private/
+edgetaper,toolbox/images/images/
+elimone,toolbox/optim/
+ellip,toolbox/signal/signal/
+ellipap,toolbox/signal/signal/
+ellipord,toolbox/signal/signal/
+eml_blocks_in,toolbox/stateflow/stateflow/private/
+eml_chart_man,toolbox/stateflow/stateflow/private/
+eml_fcns_in,toolbox/stateflow/stateflow/private/
+eml_function_man,toolbox/stateflow/stateflow/private/
+eml_man,toolbox/stateflow/stateflow/private/
+eml_script_man,toolbox/stateflow/stateflow/private/
+eml_template_man,toolbox/stateflow/stateflow/private/
+emlnew,toolbox/stateflow/stateflow/
+emptyfixptsimrange,toolbox/simulink/fixedandfloat/
+enabdynprop,toolbox/signal/sigtools/
+encode_color,toolbox/images/images/private/
+encrypt_machine,toolbox/stateflow/stateflow/private/
+engunits,toolbox/signal/sigtools/
+eqtflength,toolbox/signal/signal/
+equation,toolbox/control/ctrldemos/private/
+erode,toolbox/images/images/
+esort,toolbox/control/control/
+esplit,toolbox/control/ctrlutil/
+estim,toolbox/control/control/
+etfe,toolbox/ident/ident/
+eucdist2,toolbox/images/images/private/
+eucdistn,toolbox/images/images/private/
+euler,toolbox/simulink/simulink/
+eulrotdisplay,toolbox/simulink/simdemos/simgeneral/
+evaluate_handle,toolbox/stateflow/stateflow/private/
+evaluate_handle_in_base_ws,toolbox/stateflow/stateflow/private/
+evaluatefs,toolbox/signal/sigtools/
+evaluatevars,toolbox/signal/sigtools/
+evcdf,toolbox/stats/
+eventddg,toolbox/stateflow/stateflow/private/
+eventddg_port_callback,toolbox/stateflow/stateflow/private/
+eventddg_preapply_callback,toolbox/stateflow/stateflow/private/
+eventddg_preclose_callback,toolbox/stateflow/stateflow/private/
+eventdlg,toolbox/stateflow/stateflow/private/
+evfit,toolbox/stats/
+evinv,toolbox/stats/
+evlike,toolbox/stats/
+evnegloglike,toolbox/stats/
+evpdf,toolbox/stats/
+evrnd,toolbox/stats/
+evstat,toolbox/stats/
+ewmaplot,toolbox/stats/
+execute_in_java_thread,toolbox/stateflow/stateflow/private/
+expand_double_byte_string,toolbox/stateflow/stateflow/private/
+expcdf,toolbox/stats/
+expfit,toolbox/stats/
+expinv,toolbox/stats/
+explike,toolbox/stats/
+explore_system,toolbox/simulink/simulink/
+explr_config_colormap,toolbox/stateflow/stateflow/private/
+explr_obj_del,toolbox/stateflow/stateflow/private/
+explr_position,toolbox/stateflow/stateflow/private/
+export2wsdlg,toolbox/stats/private/
+export_chart_functions,toolbox/stateflow/coder/private/
+exportccsplugin,toolbox/signal/sigtools/
+exportcoeffgen,toolbox/signal/sigtools/
+exported_fcn_checksum,toolbox/stateflow/stateflow/private/
+exported_fcns_in_machine,toolbox/stateflow/stateflow/private/
+exportlti,toolbox/control/ctrlguis/
+exppdf,toolbox/stats/
+exprnd,toolbox/stats/
+expstat,toolbox/stats/
+exresp,toolbox/control/ctrlobsolete/
+extendlocus,toolbox/control/ctrlguis/
+external_temp_limit,toolbox/simulink/simdemos/automotive/
+external_temp_limit1,toolbox/simulink/simdemos/automotive/
+extmode_transports,toolbox/simulink/simulink/
+extmodecallback,toolbox/simulink/simulink/private/
+extract_norw,toolbox/signal/signal/private/
+extract_relevant_dirs,toolbox/stateflow/stateflow/private/
+f14_digdemo,toolbox/simulink/simdemos/aerospace/
+f14_show,toolbox/simulink/simdemos/aerospace/
+f14dat,toolbox/simulink/simdemos/aerospace/
+f14dat_digital,toolbox/simulink/simdemos/aerospace/
+f14def,toolbox/simulink/simdemos/aerospace/
+factoran,toolbox/stats/
+factorandemo,toolbox/stats/
+factorymenu,toolbox/signal/sigtools/
+faddmenu,toolbox/signal/sigtools/
+fan2para,toolbox/images/images/
+fan2para_int,toolbox/images/images/private/
+fanbeam,toolbox/images/images/
+fastreshape,toolbox/signal/signal/
+fbode,toolbox/control/ctrlobsolete/
+fbox4,toolbox/optim/
+fcdf,toolbox/stats/
+fcfileread,toolbox/signal/sigtools/
+fdaddcontextmenu,toolbox/signal/sigtools/
+fdaprivate,toolbox/signal/sigtools/
+fdatool,toolbox/signal/sigtools/
+fdatool_cfi,toolbox/signal/sigtools/private/
+fdatool_design,toolbox/signal/sigtools/private/
+fdatool_fvtool,toolbox/signal/sigtools/private/
+fdatool_help,toolbox/signal/sigtools/
+fdatool_import,toolbox/signal/sigtools/private/
+fdatool_mfilttool,toolbox/signal/sigtools/private/
+fdatool_pzeditor,toolbox/signal/sigtools/private/
+fdatool_qfiltpanel,toolbox/signal/sigtools/private/
+fdatool_sidebar,toolbox/signal/sigtools/private/
+fdatool_xformtool,toolbox/signal/sigtools/private/
+fdbutter,toolbox/signal/sptoolgui/
+fdcheby1,toolbox/signal/sptoolgui/
+fdcheby2,toolbox/signal/sptoolgui/
+fdellip,toolbox/signal/sptoolgui/
+fdfirls,toolbox/signal/sptoolgui/
+fdhelpstr,toolbox/signal/sptoolgui/private/
+fdkaiser,toolbox/signal/sptoolgui/
+fdmodp,toolbox/signal/sptoolgui/private/
+fdobjhelp,toolbox/signal/sptoolgui/private/
+fdplugin,toolbox/signal/sigtools/
+fdpzedit,toolbox/signal/sptoolgui/
+fdremez,toolbox/signal/sptoolgui/
+fdrmmenu,toolbox/signal/sigtools/
+fdrmtoolbarbtn,toolbox/signal/sigtools/
+fduiputfile,toolbox/signal/sigtools/
+fdutil,toolbox/signal/sptoolgui/
+feasibl,toolbox/optim/private/
+feedback,toolbox/control/control/
+feedbk,toolbox/robust/
+fevaldlg,toolbox/simulink/dee/
+ff2n,toolbox/stats/
+ffplot,toolbox/ident/ident/
+fftfilt,toolbox/signal/signal/
+fgoalattain,toolbox/optim/
+fiactha,toolbox/ident/idguis/
+fiacthad,toolbox/ident/idguis/
+fiactham,toolbox/ident/idguis/
+figpos,toolbox/simulink/simulink/private/
+file2str,toolbox/stateflow/stateflow/private/
+filt,toolbox/control/control/
+filtcon,toolbox/optim/
+filtdem,toolbox/signal/sigdemos/
+filtdem2,toolbox/signal/sigdemos/
+filtdemo,toolbox/signal/sigdemos/
+filtdes,toolbox/signal/sptoolgui/
+filter_deleted_ids,toolbox/stateflow/stateflow/private/
+filterguitar,toolbox/signal/sigdemos/
+filterguitardemo,toolbox/signal/sigdemos/
+filternorm,toolbox/signal/signal/
+filtfilt,toolbox/signal/signal/
+filtfun,toolbox/optim/
+filtfun2,toolbox/optim/
+filtic,toolbox/signal/signal/
+filtm,toolbox/simulink/blocks/
+filtobj,toolbox/optim/
+filtview,toolbox/signal/sptoolgui/
+find_by_type,toolbox/stateflow/stateflow/private/
+find_dv,toolbox/shared/dastudio/
+find_mdlrefs,toolbox/simulink/simulink/
+find_model_reference_candidates,toolbox/simulink/simulink/private/
+find_system,toolbox/simulink/simulink/
+find_target_files,toolbox/stateflow/stateflow/private/
+findallwinclasses,toolbox/signal/sigtools/
+findblib,toolbox/simulink/simulink/
+findbounds,toolbox/images/images/
+findbussrc,toolbox/simulink/simulink/private/
+findcstr,toolbox/signal/sptoolgui/private/
+findfilters,toolbox/signal/sigtools/
+findif,toolbox/simulink/simulink/private/
+findmax,toolbox/optim/
+findmax2,toolbox/optim/
+findnk,toolbox/ident/idutils/
+findnonabstractsubclasses,toolbox/signal/sigtools/
+findop,toolbox/slcontrol/slcontrol/
+findp,toolbox/optim/private/
+findplugins,toolbox/signal/sigtools/private/
+findslobj,toolbox/simulink/simulink/
+findtau,toolbox/ident/idutils/
+findzero,toolbox/ident/idutils/
+finishdlg,toolbox/local/
+finishsav,toolbox/local/
+finitedifferences,toolbox/shared/optimlib/
+finv,toolbox/stats/
+fipert_qr,toolbox/ident/idutils/private/
+fir1,toolbox/signal/signal/
+fir2,toolbox/signal/signal/
+firchk,toolbox/signal/signal/private/
+fircls,toolbox/signal/signal/
+fircls1,toolbox/signal/signal/
+firdemo,toolbox/images/imdemos/
+fire_show,toolbox/stateflow/sfdemos/
+firgauss,toolbox/signal/signal/
+firls,toolbox/signal/signal/
+firpm,toolbox/signal/signal/
+firpmfrf,toolbox/signal/signal/private/
+firpmord,toolbox/signal/signal/
+firrcos,toolbox/signal/signal/
+fitd,toolbox/robust/
+fitdecorrtrans,toolbox/images/images/private/
+fitfun2,toolbox/optim/
+fitfun2outputfcn,toolbox/optim/
+fitgain,toolbox/robust/
+fix_corrupted_grouped_bits,toolbox/stateflow/stateflow/private/
+fix_corrupted_sf_blocks,toolbox/stateflow/stateflow/private/
+fix_corrupted_subgroups,toolbox/stateflow/stateflow/private/
+fix_outport_initial_values,toolbox/stateflow/stateflow/private/
+fixdt,toolbox/simulink/fixedandfloat/
+fixedfont,toolbox/signal/sptoolgui/private/
+fixmult,toolbox/robust/
+fixpar,toolbox/ident/idobsolete/
+fixpoint,toolbox/simulink/fixedandfloat/
+fixpt,toolbox/simulink/fixedandfloat/
+fixptPrivate,toolbox/simulink/fixedandfloat/
+fixpt_blks_in_mdl,toolbox/simulink/simulink/private/
+fixpt_clear_tag,toolbox/simulink/fixedandfloat/
+fixpt_evenspace_cleanup,toolbox/simulink/fixedandfloat/
+fixpt_extractbits_mask,toolbox/simulink/fixedandfloat/
+fixpt_extractbits_mask_script,toolbox/simulink/fixedandfloat/
+fixpt_fir_mask_data,toolbox/simulink/fixedandfloat/
+fixpt_gain_mask_data,toolbox/simulink/fixedandfloat/
+fixpt_interp1,toolbox/simulink/fixedandfloat/
+fixpt_look1_func_approx,toolbox/simulink/fixedandfloat/
+fixpt_look1_func_plot,toolbox/simulink/fixedandfloat/
+fixpt_look1_mask_data,toolbox/simulink/fixedandfloat/
+fixpt_look2_mask_data,toolbox/simulink/fixedandfloat/
+fixpt_mask_disp_prep,toolbox/simulink/fixedandfloat/
+fixpt_mpswitch_mask_data,toolbox/simulink/fixedandfloat/
+fixpt_mul_mask_data,toolbox/simulink/fixedandfloat/
+fixpt_mul_mask_data_str,toolbox/simulink/fixedandfloat/
+fixpt_set_all,toolbox/simulink/fixedandfloat/
+fixptbestexp,toolbox/simulink/fixedandfloat/
+fixptbestprec,toolbox/simulink/fixedandfloat/
+fixptdeftype,toolbox/simulink/fixedandfloat/
+fixptdialog,toolbox/simulink/fixedandfloat/
+fixptlibname,toolbox/simulink/fixedandfloat/
+fixptmaskinit,toolbox/simulink/fixedandfloat/
+fixptopt,toolbox/simulink/fixedandfloat/
+fixradix,toolbox/simulink/fixedandfloat/obsolete/
+fixscale,toolbox/simulink/fixedandfloat/obsolete/
+fixslope,toolbox/simulink/fixedandfloat/obsolete/
+fixup_uiedit,toolbox/signal/sigtools/
+flattopwin,toolbox/signal/signal/
+fleq3,toolbox/optim/
+fliptform,toolbox/images/images/
+float,toolbox/simulink/fixedandfloat/
+fmincon,toolbox/optim/
+fminimax,toolbox/optim/
+fminunc,toolbox/optim/
+fminusub,toolbox/optim/private/
+fn2fm,toolbox/splines/
+fnbrk,toolbox/splines/
+fnchg,toolbox/splines/
+fncmb,toolbox/splines/
+fnd_objprop,toolbox/stateflow/stateflow/private/
+fnd_runsearch,toolbox/stateflow/stateflow/private/
+fnder,toolbox/splines/
+fndir,toolbox/splines/
+fnint,toolbox/splines/
+fnjmp,toolbox/splines/
+fnmin,toolbox/splines/
+fnplt,toolbox/splines/
+fnrfn,toolbox/splines/
+fntlr,toolbox/splines/
+fnval,toolbox/splines/
+fnzeros,toolbox/splines/
+foccheck,toolbox/ident/idutils/
+focus_explorer_on_model_configuration,toolbox/simulink/simulink/private/
+foptions,toolbox/simulink/simulink/
+foreach,toolbox/simulink/simulink/private/
+fpbhelp,toolbox/simulink/fixedandfloat/
+fpdf,toolbox/stats/
+fqf2ido,toolbox/ident/idobsolete/
+fquad,toolbox/optim/private/
+fracfact,toolbox/stats/
+frame,toolbox/stateflow/stateflow/private/
+frameedit,toolbox/simulink/simulink/
+framelab,toolbox/signal/sptoolgui/private/
+framewlabel,toolbox/signal/sigtools/
+franke,toolbox/splines/
+frefine,toolbox/signal/signal/private/
+freqchk,toolbox/signal/signal/private/
+freqfocus,toolbox/ident/idutils/private/
+freqint,toolbox/control/ctrlobsolete/
+freqint2,toolbox/control/ctrlobsolete/
+freqkern,toolbox/ident/idutils/
+freqpick,toolbox/ident/idutils/private/
+freqplotter,toolbox/signal/sigtools/
+freqrc,toolbox/robust/
+freqresp,toolbox/control/control/
+freqs,toolbox/signal/signal/
+freqz,toolbox/signal/signal/
+freqz2,toolbox/images/images/
+freqz_freqvec,toolbox/signal/signal/
+freqzparse,toolbox/signal/signal/
+freqzplot,toolbox/signal/signal/
+friedman,toolbox/stats/
+frmcell,toolbox/stateflow/stateflow/private/
+frnd,toolbox/stats/
+fromddg,toolbox/simulink/blocks/
+fsamp2,toolbox/images/images/
+fsdialog,toolbox/signal/sigtools/
+fseminf,toolbox/optim/
+fsolve,toolbox/optim/
+fspecial,toolbox/images/images/
+fstab,toolbox/ident/idutils/
+fstat,toolbox/stats/
+fsub_estim,toolbox/ident/idutils/
+fsurfht,toolbox/stats/
+ftrans2,toolbox/images/images/
+fullfact,toolbox/stats/
+fullviewlink,toolbox/signal/sigtools/private/
+function_prototype_utils,toolbox/stateflow/stateflow/private/
+functiontostring,toolbox/optim/
+funtool,toolbox/symbolic/
+fvhelpstr,toolbox/signal/sptoolgui/private/
+fvinit,toolbox/signal/sptoolgui/private/
+fvmotion,toolbox/signal/sptoolgui/private/
+fvresize,toolbox/signal/sptoolgui/private/
+fvtool,toolbox/signal/sigtools/
+fvtooldemo,toolbox/signal/sigdemos/
+fvtoolwaddnreplace,toolbox/signal/sigtools/
+fvzoom,toolbox/signal/sptoolgui/private/
+fwind1,toolbox/images/images/
+fwind2,toolbox/images/images/
+fxpdemo_approx_sin,toolbox/simulink/fixedandfloat/fxpdemos/
+fxptdlg,toolbox/simulink/fixedandfloat/
+fxptplt,toolbox/simulink/fixedandfloat/
+fzmult,toolbox/optim/
+gamcdf,toolbox/stats/
+gamfit,toolbox/stats/
+gaminv,toolbox/stats/
+gamlike,toolbox/stats/
+gampdf,toolbox/stats/
+gamrnd,toolbox/stats/
+gamstat,toolbox/stats/
+gangstr,toolbox/optim/
+gauspuls,toolbox/signal/signal/
+gausswin,toolbox/signal/signal/
+gcare,toolbox/control/control/
+gcb,toolbox/simulink/simulink/
+gcbh,toolbox/simulink/simulink/
+gcr,toolbox/control/ctrlguis/
+gcs,toolbox/simulink/simulink/
+gdare,toolbox/control/control/
+gear,toolbox/simulink/simulink/
+gencoswin,toolbox/signal/signal/private/
+generate_code_for_charts_and_machine,toolbox/stateflow/coder/private/
+generate_results,toolbox/simulink/simcoverage/private/
+generatemsgid,toolbox/signal/sigtools/
+genericddg,toolbox/simulink/simulink/
+genmcode,toolbox/signal/sigtools/
+genmcodeutils,toolbox/signal/sigtools/
+genplotdata,toolbox/signal/signal/
+gensig,toolbox/control/control/
+geocdf,toolbox/stats/
+geoinv,toolbox/stats/
+geomean,toolbox/stats/
+geopdf,toolbox/stats/
+geornd,toolbox/stats/
+geostat,toolbox/stats/
+getActiveCode,toolbox/simulink/simulink/
+getActiveConfigSet,toolbox/simulink/simulink/
+getConfigSet,toolbox/simulink/simulink/
+getConfigSets,toolbox/simulink/simulink/
+getDAWorkspace,toolbox/shared/dastudio/
+getHardwareConfigs,toolbox/simulink/simulink/
+getMappingOldMaskToCurrent,toolbox/simulink/simulink/private/
+getSoftwareEnvironments,toolbox/simulink/simulink/
+getWorkspaceWrapper,toolbox/shared/dastudio/
+get_autoinheritance_info,toolbox/stateflow/stateflow/private/
+get_boiler_plate_comment,toolbox/stateflow/coder/private/
+get_boolean_rtw_option,toolbox/stateflow/coder/private/
+get_charts_of,toolbox/stateflow/stateflow/private/
+get_checksum_from_dll,toolbox/stateflow/stateflow/private/
+get_clipboard_machine,toolbox/stateflow/stateflow/private/
+get_datestring,toolbox/stateflow/stateflow/private/
+get_eml_script,toolbox/simulink/simulink/
+get_ert_multi_instance_errcode,toolbox/stateflow/coder/private/
+get_filepath_from_user,toolbox/stateflow/stateflow/private/
+get_fxpprop_from_name,toolbox/simulink/blocks/private/
+get_image_title,toolbox/images/images/private/
+get_instances_in_machine,toolbox/stateflow/stateflow/private/
+get_link_chart_file_numbers,toolbox/stateflow/stateflow/private/
+get_link_machine_list,toolbox/stateflow/stateflow/private/
+get_mdl_dir,toolbox/simulink/simulink/private/
+get_model_reference_info,toolbox/stateflow/coder/private/
+get_ordered_model_references,toolbox/simulink/simulink/private/
+get_param,toolbox/simulink/simulink/
+get_params_str_for_chart,toolbox/stateflow/stateflow/private/
+get_relevant_machine,toolbox/stateflow/coder/private/
+get_sf_block_port_info,toolbox/stateflow/stateflow/private/
+get_stateflow_path_to_parent,toolbox/stateflow/stateflow/private/
+get_test_point_properties,toolbox/stateflow/stateflow/private/
+get_tmf_for_target,toolbox/rtw/rtw/
+get_valid_property_values,toolbox/stateflow/stateflow/private/
+get_value_of_fields,toolbox/rtw/rtw/
+get_wksp_data_for_chart,toolbox/stateflow/stateflow/private/
+get_wksp_data_names_for_chart,toolbox/stateflow/stateflow/private/
+get_word_sizes,toolbox/stateflow/coder/private/
+getargth,toolbox/ident/idobsolete/
+getarxms,toolbox/ident/idutils/
+getblocklinearizeio,toolbox/slcontrol/slctrlguis/private/
+getblocklinio,toolbox/slcontrol/slctrlutil/
+getclassindex,toolbox/stats/private/
+getcolorfromindex,toolbox/signal/sigtools/
+getconstructorfromstructure,toolbox/signal/sigtools/
+getcurpt,toolbox/images/images/private/
+getcurv2,toolbox/splines/
+getcurve,toolbox/splines/
+getdatatypespecs,toolbox/simulink/fixedandfloat/
+getdiscdata,toolbox/simulink/components/
+getdsdb,toolbox/stats/private/
+getfdasessionhandle,toolbox/signal/sigtools/
+getff,toolbox/ident/idobsolete/
+getfitdb,toolbox/stats/private/
+getfreqlbl,toolbox/signal/sigtools/
+getfrequnitstrs,toolbox/signal/sigtools/
+getfullname,toolbox/simulink/simulink/
+getgloballog,toolbox/simulink/fixedandfloat/
+gethgstackorder,toolbox/signal/sigtools/
+getimage,toolbox/images/images/
+getinternaldiscfunction,toolbox/simulink/components/private/
+getinterpfrequencies,toolbox/signal/signal/private/
+getlevel,toolbox/simulink/simulink/private/
+getline,toolbox/images/images/
+getlinio,toolbox/slcontrol/slcontrol/
+getlinplant,toolbox/slcontrol/slcontrol/
+getmagunitstrs,toolbox/signal/sigtools/
+getmfth,toolbox/ident/idobsolete/
+getncap,toolbox/ident/idobsolete/
+getolmodel,toolbox/slcontrol/slctrlutil/
+getoutlierdb,toolbox/stats/private/
+getpts,toolbox/images/images/
+getrect,toolbox/images/images/
+getsigpref,toolbox/signal/sptoolgui/
+getsro,toolbox/sloptim/sloptim/
+getsys,toolbox/simulink/dee/
+gett,toolbox/ident/idobsolete/
+gettargdatamap,toolbox/rtw/rtw/
+gettargetcharshortintlong,toolbox/simulink/fixedandfloat/
+getvalidproject,toolbox/shared/slcontrollib/
+getwinobject,toolbox/signal/sigtools/
+getxo,toolbox/simulink/blocks/
+getxu,toolbox/slcontrol/slcontrol/
+getzeros,toolbox/control/ctrlutil/
+getzp,toolbox/ident/idobsolete/
+givens,toolbox/control/ctrlobsolete/
+gline,toolbox/stats/
+glmdemo,toolbox/stats/
+glmfit,toolbox/stats/
+glmval,toolbox/stats/
+glyphplot,toolbox/stats/
+gmonopuls,toolbox/signal/signal/
+gname,toolbox/stats/
+gnnans,toolbox/ident/idutils/private/
+gnnans_f,toolbox/ident/idutils/private/
+gnnew,toolbox/ident/idutils/
+gnnew_f,toolbox/ident/idutils/
+gnnew_fp,toolbox/ident/idutils/
+goalcon,toolbox/optim/
+goaldemo,toolbox/optim/
+goalfun,toolbox/optim/
+goertzel,toolbox/signal/signal/
+goto_target,toolbox/stateflow/stateflow/private/
+gotoddg,toolbox/simulink/blocks/
+gotoddg_cb,toolbox/simulink/simulink/
+gparetodemo,toolbox/stats/
+gpdhelp,toolbox/stateflow/stateflow/private/
+gpicon,toolbox/stateflow/stateflow/private/
+gplotmatrix,toolbox/stats/
+gpnegloglike,toolbox/stats/
+gpnegloglike2,toolbox/stats/
+gpzoom,toolbox/stateflow/stateflow/private/
+graderr,toolbox/simulink/simulink/private/
+graderr,toolbox/shared/optimlib/
+graft,toolbox/robust/
+gram,toolbox/control/ctrlobsolete/
+grandfather,toolbox/stateflow/stateflow/private/
+grandfather_precedence,toolbox/stateflow/stateflow/private/
+gray2ind,toolbox/images/images/
+grayslice,toolbox/images/images/
+graythresh,toolbox/images/images/
+grayto16,toolbox/images/images/private/
+grayto8,toolbox/images/images/private/
+gridline,toolbox/control/ctrldemos/private/
+gridopts,toolbox/control/ctrlguis/
+gridunc,toolbox/sloptim/sloptim/
+ground,toolbox/control/ctrldemos/private/
+groupbox,toolbox/simulink/simulink/private/
+groupbox,toolbox/stateflow/stateflow/private/
+grp2idx,toolbox/stats/
+grpdelay,toolbox/signal/signal/
+grpstats,toolbox/stats/
+gscatter,toolbox/stats/
+gui_sizes,toolbox/signal/sigtools/private/
+h2data,toolbox/robust/
+h2des1,toolbox/robust/
+h2lqg,toolbox/robust/
+hamming,toolbox/signal/signal/
+hann,toolbox/signal/signal/
+hanning,toolbox/signal/signal/
+harmmean,toolbox/stats/
+hasmask,toolbox/simulink/simulink/
+hasmaskdlg,toolbox/simulink/simulink/
+hasmaskicon,toolbox/simulink/simulink/
+hdsCatArray,toolbox/shared/hds/
+hdsGetSize,toolbox/shared/hds/
+hdsGetSlice,toolbox/shared/hds/
+hdsNewArray,toolbox/shared/hds/
+hdsReplicateArray,toolbox/shared/hds/
+hdsReshapeArray,toolbox/shared/hds/
+hdsSetSlice,toolbox/shared/hds/
+heatex,toolbox/control/ctrldemos/
+heatex_clbk,toolbox/control/ctrldemos/
+heatex_getdata,toolbox/control/ctrldemos/
+heatex_sls,toolbox/control/ctrldemos/
+heaviside,toolbox/symbolic/
+helplinf,toolbox/robust/
+hessabc,toolbox/control/ctrlutil/
+hgrc,toolbox/local/
+hidecrit,toolbox/simulink/components/
+hiercheck,toolbox/stateflow/stateflow/private/
+highpass,toolbox/signal/signal/private/
+hilbert,toolbox/signal/signal/
+hilbfilt,toolbox/signal/signal/private/
+hilite_system,toolbox/simulink/simulink/
+hilitediscblock,toolbox/simulink/components/
+hinf,toolbox/robust/
+hinfdata,toolbox/robust/
+hinfdemo,toolbox/robust/
+hinfdes1,toolbox/robust/
+hinfkgjd,toolbox/robust/
+hinflim,toolbox/robust/
+hinfopt,toolbox/robust/
+hist3,toolbox/stats/
+histeq,toolbox/images/images/
+histfit,toolbox/stats/
+histodem,toolbox/splines/
+hkl1,toolbox/robust/
+hkl2,toolbox/robust/
+hkl3,toolbox/robust/
+hkl4,toolbox/robust/
+hksv,toolbox/robust/
+hmatdemo,toolbox/robust/
+hmfbx4,toolbox/optim/
+hmfleq1,toolbox/optim/
+hmmdecode,toolbox/stats/
+hmmestimate,toolbox/stats/
+hmmgenerate,toolbox/stats/
+hmmtrain,toolbox/stats/
+hmmviterbi,toolbox/stats/
+hmult,toolbox/optim/private/
+hostid,toolbox/local/
+hougen,toolbox/stats/
+hoverfig,toolbox/shared/controllib/
+hplant,toolbox/robust/
+hprecon,toolbox/optim/
+hqr10,toolbox/robust/
+htdes1,toolbox/robust/
+hygecdf,toolbox/stats/
+hygeinv,toolbox/stats/
+hygepdf,toolbox/stats/
+hygernd,toolbox/stats/
+hygestat,toolbox/stats/
+hyperbolic,toolbox/pde/
+hypergeom,toolbox/symbolic/
+icceps,toolbox/signal/signal/
+iccread,toolbox/images/images/
+icdf,toolbox/stats/
+iconedit,toolbox/simulink/simulink/
+idarxstr,toolbox/ident/idguis/
+idbuildw,toolbox/ident/idguis/
+idbwtext,toolbox/ident/idguis/
+idchi2,toolbox/ident/idutils/
+idchnona,toolbox/ident/idutils/
+idcmdld,toolbox/ident/idguis/
+idconfcp,toolbox/ident/idguis/
+idct,toolbox/signal/signal/
+idct,toolbox/images/images/private/
+idct2,toolbox/images/images/
+idctold,toolbox/signal/signal/private/
+iddatfig,toolbox/ident/idguis/
+iddef,toolbox/ident/idutils/
+iddeft,toolbox/ident/idutils/
+iddefw,toolbox/ident/idutils/
+iddemo,toolbox/ident/iddemos/
+iddemo1,toolbox/ident/iddemos/
+iddemo2,toolbox/ident/iddemos/
+iddemo3,toolbox/ident/iddemos/
+iddemo4,toolbox/ident/iddemos/
+iddemo5,toolbox/ident/iddemos/
+iddemo6,toolbox/ident/iddemos/
+iddemo7,toolbox/ident/iddemos/
+iddemo8,toolbox/ident/iddemos/
+iddemo9,toolbox/ident/iddemos/
+iddemofr,toolbox/ident/iddemos/
+iddemopr,toolbox/ident/iddemos/
+iddemosl,toolbox/ident/iddemos/
+iddfthru,toolbox/ident/idutils/
+iddfthru,toolbox/ident/ident/
+iddmtab,toolbox/ident/idguis/
+ident,toolbox/ident/idguis/
+identsinkwrite,toolbox/ident/idutils/
+identsinkwrite,toolbox/ident/ident/
+idextmat,toolbox/ident/idutils/
+idfilt,toolbox/ident/ident/
+idfrd2iddata,toolbox/ident/idutils/
+idgenfig,toolbox/ident/idguis/
+idgtws,toolbox/ident/idguis/
+idgwarn,toolbox/ident/idguis/
+idhelp,toolbox/ident/ident/
+idinput,toolbox/ident/ident/
+idinseva,toolbox/ident/idguis/
+idlayout,toolbox/ident/idguis/
+idlaytab,toolbox/ident/idguis/
+idltifr,toolbox/ident/idutils/
+idmdlmask,toolbox/ident/idutils/
+idmhit,toolbox/ident/idguis/
+idmodred,toolbox/ident/ident/
+idmsize,toolbox/ident/idutils/
+idmspop,toolbox/ident/idguis/
+idmwwb,toolbox/ident/idguis/
+idnamchk,toolbox/ident/idutils/
+idnamede,toolbox/ident/idutils/
+idnextw,toolbox/ident/idguis/
+idnonzer,toolbox/ident/idguis/
+ido2th,toolbox/ident/idobsolete/
+idoptcmp,toolbox/ident/idguis/
+idopttog,toolbox/ident/idguis/
+idparest,toolbox/ident/idguis/
+idplot,toolbox/ident/idobsolete/
+idprocest,toolbox/ident/idguis/
+idprops,toolbox/ident/ident/
+idresamp,toolbox/ident/idobsolete/
+idresamp,toolbox/ident/ident/
+idsample,toolbox/ident/idutils/
+idsim,toolbox/ident/ident/
+idsim,toolbox/ident/idobsolete/
+idsimsd,toolbox/ident/idobsolete/
+idsimsd,toolbox/ident/ident/
+idst,toolbox/pde/
+idstrip,toolbox/ident/idguis/
+idtscale,toolbox/ident/idutils/
+iduiarx,toolbox/ident/idguis/
+iduiaxes,toolbox/ident/idguis/
+iduiaxis,toolbox/ident/idguis/
+iduibn,toolbox/ident/idguis/
+iduicalc,toolbox/ident/idguis/
+iduiclpw,toolbox/ident/idguis/
+iduiconf,toolbox/ident/idguis/
+iduicra,toolbox/ident/idguis/
+iduidemo,toolbox/ident/idguis/
+iduidrop,toolbox/ident/idguis/
+iduiedit,toolbox/ident/idguis/
+iduiexp,toolbox/ident/idguis/
+iduifile,toolbox/ident/idguis/
+iduifilt,toolbox/ident/idguis/
+iduifoc,toolbox/ident/idguis/
+iduigco,toolbox/ident/idguis/
+iduigetd,toolbox/ident/idguis/
+iduigetp,toolbox/ident/idguis/
+iduihelp,toolbox/ident/idguis/
+iduiinfo,toolbox/ident/idguis/
+iduiinsd,toolbox/ident/idguis/
+iduiinsm,toolbox/ident/idguis/
+iduiio,toolbox/ident/idguis/
+iduiiono,toolbox/ident/idguis/
+iduiiter,toolbox/ident/idguis/
+iduikeyp,toolbox/ident/idguis/
+iduilay,toolbox/ident/idguis/
+iduilay1,toolbox/ident/idguis/
+iduilay2,toolbox/ident/idguis/
+iduimbcb,toolbox/ident/idguis/
+iduimod,toolbox/ident/idguis/
+iduims,toolbox/ident/idguis/
+iduinpar,toolbox/ident/idguis/
+iduiopt,toolbox/ident/idguis/
+iduipoin,toolbox/ident/idguis/
+iduipop,toolbox/ident/idguis/
+iduipw,toolbox/ident/idguis/
+iduiqs,toolbox/ident/idguis/
+iduisel,toolbox/ident/idguis/
+iduisess,toolbox/ident/idguis/
+iduispa,toolbox/ident/idguis/
+iduiss,toolbox/ident/idguis/
+iduistat,toolbox/ident/idguis/
+iduital,toolbox/ident/idguis/
+iduitrf,toolbox/ident/idguis/
+iduivis,toolbox/ident/idguis/
+iduiwast,toolbox/ident/idguis/
+iduiwok,toolbox/ident/idguis/
+idummy,toolbox/stats/private/
+idunlink,toolbox/ident/idguis/
+idvmenus,toolbox/ident/idguis/
+idwb,toolbox/ident/idutils/
+ifanbeam,toolbox/images/images/
+iirchk,toolbox/signal/signal/private/
+im2bw,toolbox/images/images/
+im2col,toolbox/images/images/
+im2double,toolbox/images/images/
+im2java2d,toolbox/images/images/
+im2mis,toolbox/stats/private/
+im2mis,toolbox/images/images/
+im2uint16,toolbox/images/images/
+im2uint8,toolbox/images/images/
+imabsdiff,toolbox/images/images/
+imadd,toolbox/images/images/
+imadjdemo,toolbox/images/imdemos/
+imadjust,toolbox/images/images/
+imapprox,toolbox/images/images/
+imargin,toolbox/control/control/
+imbothat,toolbox/images/images/
+imclearborder,toolbox/images/images/
+imclose,toolbox/images/images/
+imcomplement,toolbox/images/images/
+imcontour,toolbox/images/images/
+imcrop,toolbox/images/images/
+imdilate,toolbox/images/images/
+imdivide,toolbox/images/images/
+imerode,toolbox/images/images/
+imextendedmax,toolbox/images/images/
+imextendedmin,toolbox/images/images/
+imfeature,toolbox/images/images/
+imfill,toolbox/images/images/
+imfilter,toolbox/images/images/
+imhist,toolbox/images/images/
+imhistc,toolbox/images/images/private/
+imhmax,toolbox/images/images/
+imhmin,toolbox/images/images/
+imimposemin,toolbox/images/images/
+imlincomb,toolbox/images/images/
+immovie,toolbox/images/images/
+immultiply,toolbox/images/images/
+imnoise,toolbox/images/images/
+imopen,toolbox/images/images/
+imp2ss,toolbox/robust/
+impinvar,toolbox/signal/signal/
+impixel,toolbox/images/images/
+importfcn,toolbox/control/ctrlguis/
+importfilt,toolbox/signal/sptoolgui/private/
+importsig,toolbox/signal/sptoolgui/private/
+importspec,toolbox/signal/sptoolgui/private/
+improfile,toolbox/images/images/
+impulse,toolbox/control/control/
+impz,toolbox/signal/signal/
+impzlength,toolbox/signal/signal/
+imreconstruct,toolbox/images/images/
+imregionalmax,toolbox/images/images/
+imregionalmin,toolbox/images/images/
+imresize,toolbox/images/images/
+imrotate,toolbox/images/images/
+imshow,toolbox/images/images/
+imslice,toolbox/images/images/
+imsubtract,toolbox/images/images/
+imtophat,toolbox/images/images/
+imtransform,toolbox/images/images/
+imuigeom,toolbox/images/imdemos/private/
+imview,toolbox/images/images/
+imviewhelp,toolbox/images/images/private/
+imzoom,toolbox/images/images/
+inbounds,toolbox/signal/sptoolgui/private/
+inconsistent,toolbox/stats/
+increment_name,toolbox/stateflow/stateflow/private/
+ind2gray,toolbox/images/images/
+indmatch,toolbox/ident/idutils/
+inductor,toolbox/control/ctrldemos/private/
+infline,toolbox/control/ctrlguis/
+info2mask,toolbox/signal/sigtools/
+infomatman,toolbox/stateflow/stateflow/private/
+inherit,toolbox/ident/idutils/
+init_html_renderer,toolbox/stateflow/stateflow/private/
+initial,toolbox/control/control/
+initialUpper,toolbox/simulink/simulink/private/
+initialize_data_information,toolbox/stateflow/coder/private/
+initmesh,toolbox/pde/
+initopspec,toolbox/shared/slcontrollib/
+initprefs,toolbox/local/
+initsim,toolbox/stateflow/sfdemos/
+initsysresp,toolbox/control/ctrlguis/
+inpd2nk,toolbox/ident/idutils/
+insert_dsp_includes,toolbox/stateflow/coder/private/
+insertfdtbxhelp,toolbox/signal/sigtools/private/
+interc,toolbox/robust/
+interp,toolbox/signal/signal/
+interspace,toolbox/signal/sigtools/
+intfilt,toolbox/signal/signal/
+intline,toolbox/images/images/private/
+invfreqs,toolbox/signal/signal/
+invfreqz,toolbox/signal/signal/
+invsinc,toolbox/signal/signal/private/
+iofc,toolbox/robust/
+iofr,toolbox/robust/
+ipex001,toolbox/images/imdemos/
+ipex002,toolbox/images/imdemos/
+ipex003,toolbox/images/imdemos/
+ipex004,toolbox/images/imdemos/
+ipex005,toolbox/images/imdemos/
+ipex006,toolbox/images/imdemos/
+ipexangle,toolbox/images/imdemos/
+ipexcontrast,toolbox/images/imdemos/
+ipexfabric,toolbox/images/imdemos/
+ipexhistology,toolbox/images/imdemos/
+ipexlanstretch,toolbox/images/imdemos/
+ipexpendulum,toolbox/images/imdemos/
+ipexradius,toolbox/images/imdemos/
+ipexreconstruct,toolbox/images/imdemos/
+ipexregularized,toolbox/images/imdemos/
+ipexrice,toolbox/images/imdemos/
+ipexrotate,toolbox/images/imdemos/
+ipexroundness,toolbox/images/imdemos/
+ipexsnow,toolbox/images/imdemos/
+ipexwatershed,toolbox/images/imdemos/
+ippl,toolbox/images/images/
+iptdemos,toolbox/images/imdemos/
+iptgate,toolbox/images/images/
+iptgetpref,toolbox/images/images/
+iptprefs,toolbox/images/images/private/
+iptregistry,toolbox/images/images/private/
+iptsetpref,toolbox/images/images/
+iqr,toolbox/stats/
+iradon,toolbox/images/images/
+is2rc,toolbox/signal/signal/
+isModelClosed,toolbox/simulink/simulink/private/
+isNCDStruct,toolbox/sloptim/sloptobsolete/
+is_chart_input_data,toolbox/stateflow/coder/private/
+is_chart_output_data,toolbox/stateflow/coder/private/
+is_eml_block,toolbox/simulink/simulink/
+is_eml_chart,toolbox/stateflow/stateflow/private/
+is_eml_fcn,toolbox/stateflow/stateflow/private/
+is_eml_script,toolbox/stateflow/stateflow/private/
+is_enum_property,toolbox/stateflow/stateflow/private/
+is_ert_multi_instance,toolbox/stateflow/coder/private/
+is_object_editable,toolbox/stateflow/stateflow/private/
+is_sf_chart,toolbox/stateflow/stateflow/private/
+is_sf_chart_block,toolbox/stateflow/stateflow/private/
+is_sf_fixpt_autoscale,toolbox/simulink/fixedandfloat/
+is_sf_machine,toolbox/stateflow/stateflow/private/
+is_simulink_handle,toolbox/simulink/simulink/
+is_truth_table_chart,toolbox/stateflow/stateflow/private/
+is_truth_table_fcn,toolbox/stateflow/stateflow/private/
+isbw,toolbox/images/images/
+iscatter,toolbox/stats/
+iscolor,toolbox/signal/sptoolgui/private/
+isconfigurable,toolbox/simulink/components/private/
+iscontinuous,toolbox/simulink/components/private/
+iscpstruct,toolbox/images/images/private/
+iscvar,toolbox/simulink/simulink/
+isdynpropenab,toolbox/signal/sigtools/
+iseuclidean,toolbox/stats/private/
+isfdt,toolbox/signal/sptoolgui/private/
+isfdtbxinstalled,toolbox/signal/sigtools/
+isfixptinstalled,toolbox/signal/sigtools/
+isgray,toolbox/images/images/
+isinaxes,toolbox/stats/private/
+isind,toolbox/images/images/
+ispc,toolbox/stateflow/stateflow/private/
+isresampler,toolbox/images/images/private/
+isreserved,toolbox/signal/sigtools/
+isrgb,toolbox/images/images/
+issame,toolbox/robust/
+issystem,toolbox/robust/
+istform,toolbox/images/images/private/
+isthss,toolbox/ident/idobsolete/
+istito,toolbox/robust/private/
+istree,toolbox/robust/
+isvalidvar,toolbox/signal/sptoolgui/private/
+iv,toolbox/ident/ident/
+iv4,toolbox/ident/ident/
+ivar,toolbox/ident/ident/
+ivstruc,toolbox/ident/ident/
+ivx,toolbox/ident/ident/
+iwishrnd,toolbox/stats/
+jacColumnErr,toolbox/optim/private/
+jacobian2ss,toolbox/slcontrol/slctrlutil/
+javaDAClipboard,toolbox/shared/dastudio/
+javaSimulinkRoot,toolbox/shared/dastudio/
+javaWorkspace,toolbox/shared/dastudio/
+jbtest,toolbox/stats/
+jetdemo,toolbox/control/ctrldemos/
+jigglemesh,toolbox/pde/
+joinCellToStr,toolbox/simulink/simulink/private/
+jordan,toolbox/symbolic/
+josedemo,toolbox/robust/
+junctddg,toolbox/stateflow/stateflow/private/
+junctdlg,toolbox/stateflow/stateflow/private/
+justzoom,toolbox/signal/sptoolgui/private/
+kaiser,toolbox/signal/signal/
+kaiserord,toolbox/signal/signal/
+kalmdemo,toolbox/control/ctrldemos/
+kdtree,toolbox/images/images/private/
+kmeans,toolbox/stats/
+knt2brk,toolbox/splines/
+knt2mlt,toolbox/splines/
+kratio,toolbox/signal/signal/
+kruskalwallis,toolbox/stats/
+ksdensity,toolbox/stats/
+kstest,toolbox/stats/
+kstest2,toolbox/stats/
+kurtosis,toolbox/stats/
+lab2double,toolbox/images/images/
+lab2lch,toolbox/images/images/private/
+lab2str,toolbox/control/ctrlobsolete/
+lab2uint16,toolbox/images/images/
+lab2uint8,toolbox/images/images/
+lab2xyz,toolbox/images/images/private/
+label,toolbox/simulink/simulink/private/
+label2rgb,toolbox/images/images/
+labelacc,toolbox/robust/
+labelstr,toolbox/stateflow/stateflow/private/
+lambertw,toolbox/symbolic/
+landsatdemo,toolbox/images/imdemos/
+lar2rc,toolbox/signal/signal/
+largestuiwidth,toolbox/signal/sigtools/
+latc2tf,toolbox/signal/signal/
+latcfilt,toolbox/signal/signal/
+launchfv,toolbox/signal/sigtools/
+layout_disc_window,toolbox/simulink/components/
+lch2lab,toolbox/images/images/private/
+lclfminbnd,toolbox/signal/signal/private/
+levdown,toolbox/signal/signal/private/
+leverage,toolbox/stats/
+levinson,toolbox/signal/signal/
+levup,toolbox/signal/signal/private/
+lfdata,toolbox/signal/sptoolgui/private/
+lftf,toolbox/robust/
+lhsdesign,toolbox/stats/
+lhsnorm,toolbox/stats/
+libbrowse,toolbox/simulink/simulink/
+libinfo,toolbox/simulink/simulink/
+libintro,toolbox/simulink/simdemos/
+license,toolbox/local/
+lillietest,toolbox/stats/
+limintm,toolbox/simulink/blocks/
+lineSearch,toolbox/optim/private/
+linearize,toolbox/slcontrol/slcontrol/
+linedir,toolbox/simulink/simulink/private/
+lineext,toolbox/simulink/simulink/private/
+linemima,toolbox/simulink/simulink/private/
+linetip,toolbox/shared/controllib/
+linevent,toolbox/slcontrol/slcontrol/
+linf,toolbox/robust/
+linfdemo,toolbox/robust/
+linio,toolbox/slcontrol/slcontrol/
+linkage,toolbox/stats/
+linmod,toolbox/simulink/simulink/
+linmod2,toolbox/simulink/simulink/
+linmodsupported,toolbox/simulink/simulink/private/
+linmodv5,toolbox/simulink/simulink/
+linoptions,toolbox/slcontrol/slcontrol/
+linprog,toolbox/optim/
+linsetup,toolbox/simulink/blocks/
+linsim,toolbox/simulink/simulink/
+linsub,toolbox/control/ctrlutil/
+linterp,toolbox/robust/
+lipsol,toolbox/optim/private/
+listModels,toolbox/shared/dastudio/
+lnkfvtool2mask,toolbox/signal/sigtools/
+load_model,toolbox/simulink/simulink/private/
+load_simulink,toolbox/simulink/simulink/
+load_system,toolbox/simulink/simulink/
+local_max,toolbox/signal/signal/private/
+locateFileInPath,toolbox/simulink/simulink/private/
+log_file_manager,toolbox/stateflow/stateflow/private/
+logcfg,toolbox/simulink/simulink/
+logctrlpanel,toolbox/simulink/simulink/
+logical2string,toolbox/signal/sigtools/
+logncdf,toolbox/stats/
+lognfit,toolbox/stats/
+logninv,toolbox/stats/
+lognlike,toolbox/stats/
+lognpdf,toolbox/stats/
+lognrnd,toolbox/stats/
+lognstat,toolbox/stats/
+logpanel,toolbox/simulink/simulink/
+look1_func_approx,toolbox/simulink/blocks/private/
+look1_func_plot,toolbox/simulink/blocks/private/
+look_for_corrupted_models,toolbox/stateflow/stateflow/private/
+lookundermask,toolbox/simulink/simulink/
+lookup1dddg,toolbox/simulink/blocks/
+lookup2dddg,toolbox/simulink/blocks/
+loopstruct,toolbox/control/ctrlguis/
+lorenzi,toolbox/simulink/dee/
+lowpass,toolbox/signal/signal/private/
+lp2bp,toolbox/signal/signal/
+lp2bs,toolbox/signal/signal/
+lp2hp,toolbox/signal/signal/
+lp2lp,toolbox/signal/signal/
+lpc,toolbox/signal/signal/
+lpc-ardemo,toolbox/signal/sigdemos/
+lproject,toolbox/control/ctrlguis/
+lqe,toolbox/control/ctrlobsolete/
+lqe2,toolbox/control/ctrlobsolete/
+lqed,toolbox/control/ctrlobsolete/
+lqew,toolbox/control/ctrlobsolete/
+lqg,toolbox/robust/
+lqr,toolbox/control/control/
+lqr2,toolbox/control/ctrlobsolete/
+lqrc,toolbox/robust/
+lqrd,toolbox/control/control/
+lqrdes,toolbox/control/ctrldemos/
+lqry,toolbox/control/control/
+lrscale,toolbox/control/ctrlutil/
+lsf2poly,toolbox/signal/signal/
+lshapeb,toolbox/pde/
+lshapec,toolbox/pde/
+lshapeg,toolbox/pde/
+lsim,toolbox/control/control/
+lsline,toolbox/stats/
+lsqcurvefit,toolbox/optim/
+lsqfcnchk,toolbox/optim/private/
+lsqisotonic,toolbox/stats/private/
+lsqlin,toolbox/optim/
+lsqncommon,toolbox/optim/private/
+lsqnonlin,toolbox/optim/
+lticharmenu,toolbox/control/ctrlguis/
+ltidemo,toolbox/control/ctrldemos/
+ltifr,toolbox/control/control/
+ltimask,toolbox/control/control/
+ltimodels,toolbox/control/control/
+ltiplot,toolbox/control/ctrlguis/
+ltiplotmenu,toolbox/control/ctrlguis/
+ltiplottypes,toolbox/control/ctrlguis/
+ltiprops,toolbox/control/control/
+ltitipmenus,toolbox/shared/controllib/
+ltitr,toolbox/control/control/
+ltiview,toolbox/control/control/
+ltk2,toolbox/ident/idutils/private/
+ltrdata1,toolbox/robust/
+ltrdata2,toolbox/robust/
+ltrdemo,toolbox/robust/
+ltrdes1,toolbox/robust/
+ltrdes2,toolbox/robust/
+ltru,toolbox/robust/
+ltry,toolbox/robust/
+lutbridge,toolbox/images/images/private/
+lutclean,toolbox/images/images/private/
+lutdiag,toolbox/images/images/private/
+lutdilate,toolbox/images/images/private/
+luteditorddg_cb,toolbox/simulink/blocks/
+luterode,toolbox/images/images/private/
+lutfatten,toolbox/images/images/private/
+lutfill,toolbox/images/images/private/
+luthbreak,toolbox/images/images/private/
+lutiso,toolbox/images/images/private/
+lutmajority,toolbox/images/images/private/
+lutper4,toolbox/images/images/private/
+lutper8,toolbox/images/images/private/
+lutremove,toolbox/images/images/private/
+lutshrink,toolbox/images/images/private/
+lutsingle,toolbox/images/images/private/
+lutskel1,toolbox/images/images/private/
+lutskel2,toolbox/images/images/private/
+lutskel3,toolbox/images/images/private/
+lutskel4,toolbox/images/images/private/
+lutskel5,toolbox/images/images/private/
+lutskel6,toolbox/images/images/private/
+lutskel7,toolbox/images/images/private/
+lutskel8,toolbox/images/images/private/
+lutspur,toolbox/images/images/private/
+lutthin1,toolbox/images/images/private/
+lutthin2,toolbox/images/images/private/
+lutthin3,toolbox/images/images/private/
+lutthin4,toolbox/images/images/private/
+lyap,toolbox/control/control/
+lyap2,toolbox/control/ctrlobsolete/
+lyapchol,toolbox/control/control/
+lyapkr,toolbox/robust/
+machine2model,toolbox/stateflow/stateflow/private/
+machine_bind_sflinks,toolbox/stateflow/stateflow/private/
+machine_shallow_find,toolbox/stateflow/stateflow/private/
+machineddg,toolbox/stateflow/stateflow/private/
+machinedlg,toolbox/stateflow/stateflow/private/
+mad,toolbox/stats/
+mag2dB,toolbox/control/ctrlutil/
+magballdat,toolbox/slcontrol/slctrldemos/
+magballinit,toolbox/slcontrol/slctrldemos/
+mahal,toolbox/stats/
+make_ansi_tfl,toolbox/simulink/simulink/
+make_ecoder_hook,toolbox/rtw/rtw/
+make_formatters,toolbox/simulink/simcoverage/private/
+make_gnu_tfl,toolbox/simulink/simulink/
+make_iso_tfl,toolbox/simulink/simulink/
+make_rtw,toolbox/rtw/rtw/
+make_targetfcnlib_mat_files,toolbox/simulink/simulink/
+make_tlc_only,toolbox/rtw/rtw/
+makecform,toolbox/images/images/
+makelut,toolbox/images/images/
+makeresampler,toolbox/images/images/
+maketform,toolbox/images/images/
+makeuniqcellstrs,toolbox/signal/sigtools/
+manova1,toolbox/stats/
+manovacluster,toolbox/stats/
+manswitch,toolbox/simulink/blocks/
+maple,toolbox/symbolic/
+mapleinit,toolbox/symbolic/
+maplemex,toolbox/symbolic/
+margin,toolbox/control/control/
+margindemo,toolbox/control/ctrldemos/
+margindemo_sls,toolbox/control/ctrldemos/
+maskedit,toolbox/simulink/simulink/
+maskpopups,toolbox/simulink/simulink/
+masksync,toolbox/simulink/simulink/private/
+masspg,toolbox/simulink/dee/
+masspgi,toolbox/simulink/dee/
+mat2gray,toolbox/images/images/
+matchlsq,toolbox/control/ctrlguis/
+matq2ws,toolbox/pde/private/
+matqdlg,toolbox/pde/private/
+matqparse,toolbox/pde/private/
+matqueue,toolbox/pde/private/
+matrxcatmask,toolbox/simulink/blocks/
+maxflat,toolbox/signal/signal/
+mcodeutils,toolbox/signal/sigtools/
+md2c,toolbox/ident/idutils/
+mdlRefDepsComment,toolbox/simulink/simulink/private/
+mdldisc_demo,toolbox/simulink/simdemos/simfeatures/
+mdlref_basicscript,toolbox/simulink/simdemos/simfeatures/mdlref/
+mdlref_busscript,toolbox/simulink/simdemos/simfeatures/mdlref/
+mdlref_conversionscript,toolbox/simulink/simdemos/simfeatures/mdlref/
+mdlref_depgraph_demo,toolbox/simulink/simdemos/simfeatures/mdlref/
+mdlref_paramargsscript,toolbox/simulink/simdemos/simfeatures/mdlref/
+mdlrefddg_cb,toolbox/simulink/simulink/
+mdscale,toolbox/stats/
+mdscaledemo,toolbox/stats/
+mean2,toolbox/images/images/
+meansgraph,toolbox/stats/
+medfilt1,toolbox/signal/signal/
+medfilt2,toolbox/images/images/
+merge,toolbox/signal/sptoolgui/private/
+mergedemoscript,toolbox/simulink/simdemos/simfeatures/
+mergefcn,toolbox/simulink/simdemos/simfeatures/
+mex_setup,toolbox/stateflow/stateflow/private/
+mex_sfun_user_fxp_examples,toolbox/simulink/fixedandfloat/fxpdemos/
+mf2th,toolbox/ident/idobsolete/
+mfun,toolbox/symbolic/
+mfunlist,toolbox/symbolic/
+mgrp2idx,toolbox/stats/private/
+mhelp,toolbox/symbolic/
+midprefs,toolbox/ident/idguis/
+milldemo,toolbox/control/ctrldemos/
+milldemo_sls,toolbox/control/ctrldemos/
+mimofr,toolbox/control/control/
+min4termwin,toolbox/signal/signal/private/
+miniplot,toolbox/control/ctrlobsolete/
+minlin,toolbox/simulink/simulink/
+minloop,toolbox/ident/idutils/
+minreal,toolbox/control/control/
+misdata,toolbox/ident/ident/
+mixedalg,toolbox/robust/
+mixedm,toolbox/simulink/blocks/
+mkargs,toolbox/robust/
+mkargs1,toolbox/robust/
+mkargs5x,toolbox/robust/
+mkconstarray,toolbox/images/images/private/
+mklti,toolbox/robust/private/
+mksys,toolbox/robust/
+mktito,toolbox/robust/private/
+ml_type,toolbox/stateflow/stateflow/private/
+mle,toolbox/stats/
+mlecov,toolbox/stats/
+mlecustom,toolbox/stats/private/
+mlscript_ui,toolbox/simulink/simulink/
+mltrdemo,toolbox/robust/
+mmole,toolbox/optim/
+moddemo,toolbox/signal/sigdemos/
+model2machine,toolbox/shared/dastudio/
+modeladvisor,toolbox/simulink/simulink/
+modelassistant,toolbox/simulink/simulink/
+modelddg,toolbox/simulink/simulink/
+modelddg_file_cb,toolbox/simulink/simulink/
+modelddg_readOnly_cb,toolbox/simulink/simulink/
+modeldeps,toolbox/simulink/simulink/private/
+modelref_conversion_bus_utils,toolbox/simulink/simulink/private/
+modelref_conversion_utilities,toolbox/simulink/simulink/private/
+modelrefsiglog,toolbox/simulink/simulink/
+modelrefsim_default_tmf,toolbox/rtw/rtw/
+modreal,toolbox/robust/
+modred,toolbox/control/control/
+modstruc,toolbox/ident/idutils/
+modulate,toolbox/signal/signal/
+molecule,toolbox/optim/
+moment,toolbox/stats/
+montage,toolbox/images/images/
+morphop,toolbox/images/images/private/
+motor,toolbox/ident/ident/
+movemask,toolbox/simulink/simulink/
+moveptr,toolbox/control/ctrlguis/
+mpt_get_data_types,toolbox/simulink/simulink/
+mrdemo,toolbox/robust/
+mrgfocus,toolbox/control/ctrlutil/
+mrgios,toolbox/control/ctrlguis/
+mroots,toolbox/control/ctrlutil/
+ms2th,toolbox/ident/idobsolete/
+mscohere,toolbox/signal/signal/
+msearch,toolbox/ident/idutils/
+msfuntmpl,toolbox/simulink/blocks/
+mskeddlg,toolbox/simulink/simulink/
+mskedpg,toolbox/simulink/simulink/private/
+mu2lti,toolbox/robust/private/
+mudemo,toolbox/robust/
+mudemo1,toolbox/robust/
+mueva,toolbox/robust/
+mulerr,toolbox/robust/
+mulresp,toolbox/control/ctrlobsolete/
+multcompare,toolbox/stats/
+multiband,toolbox/signal/signal/private/
+multidat,toolbox/simulink/simdemos/
+muopt,toolbox/robust/
+muoptold,toolbox/robust/
+muplt,toolbox/robust/
+music,toolbox/signal/signal/private/
+musldemo,toolbox/robust/
+musol4,toolbox/robust/
+musyn,toolbox/robust/
+muxwidths,toolbox/stateflow/stateflow/private/
+mvnpdf,toolbox/stats/
+mvnrnd,toolbox/stats/
+mvplotdemo,toolbox/stats/
+mvtrnd,toolbox/stats/
+mx2str,toolbox/stateflow/stateflow/private/
+n4sid,toolbox/ident/ident/
+n4sid_f,toolbox/ident/ident/
+nanmax,toolbox/stats/
+nanmean,toolbox/stats/
+nanmedian,toolbox/stats/
+nanmin,toolbox/stats/
+nanstd,toolbox/stats/
+nanstruc,toolbox/ident/idutils/
+nansum,toolbox/stats/
+nanvar,toolbox/stats/
+nbincdf,toolbox/stats/
+nbinfit,toolbox/stats/
+nbininv,toolbox/stats/
+nbinlike,toolbox/stats/
+nbinpdf,toolbox/stats/
+nbinrnd,toolbox/stats/
+nbinstat,toolbox/stats/
+ncdglob,toolbox/sloptim/sloptobsolete/
+ncdupdate,toolbox/sloptim/sloptobsolete/
+ncfcdf,toolbox/stats/
+ncfinv,toolbox/stats/
+ncfpdf,toolbox/stats/
+ncfrnd,toolbox/stats/
+ncfstat,toolbox/stats/
+nctcdf,toolbox/stats/
+nctinv,toolbox/stats/
+nctpdf,toolbox/stats/
+nctrnd,toolbox/stats/
+nctstat,toolbox/stats/
+ncx2cdf,toolbox/stats/
+ncx2inv,toolbox/stats/
+ncx2pdf,toolbox/stats/
+ncx2rnd,toolbox/stats/
+ncx2stat,toolbox/stats/
+nddirectico,toolbox/simulink/blocks/
+ndlookico,toolbox/simulink/blocks/
+new_data,toolbox/stateflow/stateflow/private/
+new_event,toolbox/stateflow/stateflow/private/
+new_rtw_interface_marker,toolbox/stateflow/coder/private/
+new_state_output_data,toolbox/stateflow/stateflow/private/
+new_system,toolbox/simulink/simulink/
+new_target,toolbox/stateflow/stateflow/private/
+newknt,toolbox/splines/
+newsro,toolbox/sloptim/sloptim/
+nextcolor,toolbox/signal/sptoolgui/private/
+ngrid,toolbox/control/control/
+nicchart,toolbox/control/ctrlguis/
+nice_shot,toolbox/stateflow/stateflow/private/
+nichols,toolbox/control/control/
+niclims,toolbox/control/ctrlguis/
+nlconst,toolbox/optim/private/
+nlconst,toolbox/simulink/simulink/private/
+nlfilter,toolbox/images/images/
+nlinfit,toolbox/stats/
+nlinopt,toolbox/sloptim/sloptobsolete/
+nlintool,toolbox/stats/
+nlparci,toolbox/stats/
+nlpredci,toolbox/stats/
+nls3,toolbox/optim/
+nlsf1,toolbox/optim/
+nlsf1a,toolbox/optim/
+nlsf3a,toolbox/optim/
+nlsmm3,toolbox/optim/
+nlsq,toolbox/optim/private/
+nnsearch,toolbox/images/images/private/
+noiprefi,toolbox/ident/idutils/
+non_empty_subcharts_in,toolbox/stateflow/stateflow/private/
+normcdf,toolbox/stats/
+normfit,toolbox/stats/
+normh2,toolbox/robust/
+normhinf,toolbox/robust/
+norminv,toolbox/stats/
+normlike,toolbox/stats/
+normpdf,toolbox/stats/
+normplot,toolbox/stats/
+normrnd,toolbox/stats/
+normspec,toolbox/stats/
+normstat,toolbox/stats/
+normxcorr2,toolbox/images/images/
+notbool,toolbox/simulink/simulink/private/
+notchdemo,toolbox/control/ctrldemos/
+notchdemo_sls,toolbox/control/ctrldemos/
+nrfiltdemo,toolbox/images/imdemos/
+ntsc2rgb,toolbox/images/images/
+nuderst,toolbox/ident/idutils/
+num2fix,toolbox/simulink/fixedandfloat/
+num2fixpt,toolbox/simulink/fixedandfloat/
+num2ordinal,toolbox/images/images/private/
+numdemo,toolbox/control/ctrldemos/
+numerictypeddg,toolbox/simulink/simulink/
+nuttallwin,toolbox/signal/signal/
+nyqaux,toolbox/ident/idutils/
+nyqchart,toolbox/control/ctrlguis/
+nyqplot,toolbox/ident/idobsolete/
+nyquist,toolbox/control/control/
+obalreal,toolbox/robust/
+object_limits,toolbox/stateflow/stateflow/private/
+objfun,toolbox/optim/
+objfungrad,toolbox/optim/
+obsv,toolbox/control/control/
+obsvf,toolbox/control/control/
+oe,toolbox/ident/ident/
+oestab,toolbox/ident/idutils/
+officeassign,toolbox/optim/
+ohkapp,toolbox/robust/
+ohkdemo,toolbox/robust/
+ohklmr,toolbox/robust/
+on2off,toolbox/stats/private/
+onoff,toolbox/simulink/simulink/private/
+onoffdemocontrol,toolbox/simulink/simdemos/aerospace/
+opamp,toolbox/control/ctrldemos/private/
+opampdemo,toolbox/control/ctrldemos/
+opampdemo_aux,toolbox/control/ctrldemos/
+open_system,toolbox/simulink/simulink/
+open_target_dialog,toolbox/stateflow/sfdemos/
+operpoint,toolbox/shared/slcontrollib/
+operspec,toolbox/shared/slcontrollib/
+optblock,toolbox/sloptim/sloptobsolete/
+optdeblur,toolbox/optim/
+opteval,toolbox/simulink/simulink/private/
+optimfcnchk,toolbox/shared/optimlib/
+optimoptioncheckfield,toolbox/shared/optimlib/
+optimoptiongetfields,toolbox/shared/optimlib/
+optimoptions,toolbox/shared/optimlib/
+optknt,toolbox/splines/
+optsiminit,toolbox/optim/
+ord2,toolbox/control/control/
+ordered_unique_paths,toolbox/stateflow/stateflow/private/
+ordfilt2,toolbox/images/images/
+ortc,toolbox/robust/
+ortr,toolbox/robust/
+osborne,toolbox/robust/
+otf2psf,toolbox/images/images/
+padarray,toolbox/images/images/
+pade,toolbox/control/control/
+padess,toolbox/simulink/simulink/
+padlength,toolbox/images/images/private/
+pandown,toolbox/signal/sptoolgui/private/
+panfcn,toolbox/signal/sptoolgui/
+panner,toolbox/signal/sptoolgui/private/
+para2fan,toolbox/images/images/
+parabolic,toolbox/pde/
+parallel,toolbox/control/control/
+parallelcoords,toolbox/stats/
+parameterdlg,toolbox/signal/sigtools/
+parproc,toolbox/ident/idutils/
+parseLibCodePaneText,toolbox/simulink/simulink/private/
+parse_error_msg,toolbox/stateflow/stateflow/private/
+parse_formatter_strings,toolbox/simulink/simcoverage/private/
+parse_kernel,toolbox/stateflow/stateflow/private/
+parse_pv_pairs,toolbox/signal/signal/private/
+parse_this,toolbox/stateflow/stateflow/private/
+parseit,toolbox/simulink/dee/
+parser_unresolved_symbol,toolbox/stateflow/stateflow/private/
+parzenwin,toolbox/signal/signal/
+pathdef,toolbox/local/
+pathdef,toolbox/local/template/
+pburg,toolbox/signal/signal/
+pcacov,toolbox/stats/
+pcares,toolbox/stats/
+pceye,toolbox/optim/
+pcgr,toolbox/optim/private/
+pckkntdm,toolbox/splines/
+pcov,toolbox/signal/signal/
+pdeadgsc,toolbox/pde/
+pdeadworst,toolbox/pde/
+pdearcl,toolbox/pde/
+pdeasma,toolbox/pde/
+pdeasmc,toolbox/pde/
+pdeasmf,toolbox/pde/
+pdebasnm,toolbox/pde/
+pdebddlg,toolbox/pde/
+pdebddsp,toolbox/pde/
+pdebound,toolbox/pde/
+pdebsplit,toolbox/pde/
+pdecchk,toolbox/pde/
+pdecgrad,toolbox/pde/
+pdecirc,toolbox/pde/
+pdecont,toolbox/pde/
+pdecrcum,toolbox/pde/
+pdedemo1,toolbox/pde/
+pdedemo2,toolbox/pde/
+pdedemo3,toolbox/pde/
+pdedemo4,toolbox/pde/
+pdedemo5,toolbox/pde/
+pdedemo6,toolbox/pde/
+pdedemo7,toolbox/pde/
+pdedemo8,toolbox/pde/
+pdedemos,toolbox/pde/
+pdedistr,toolbox/pde/
+pdedlg,toolbox/pde/
+pdeeexpd,toolbox/pde/
+pdeefxpd,toolbox/pde/
+pdeeig,toolbox/pde/
+pdeeigx,toolbox/pde/
+pdeellip,toolbox/pde/
+pdeent,toolbox/pde/
+pdeexpd,toolbox/pde/
+pdeframe,toolbox/pde/
+pdegeom,toolbox/pde/
+pdegplot,toolbox/pde/
+pdegrad,toolbox/pde/
+pdegrmsc,toolbox/pde/
+pdehelp,toolbox/pde/
+pdehloc,toolbox/pde/
+pdehypdf,toolbox/pde/
+pdehypf,toolbox/pde/
+pdehypm,toolbox/pde/
+pdeicon,toolbox/pde/
+pdeigeom,toolbox/pde/
+pdeinfclk,toolbox/pde/
+pdeinfo,toolbox/pde/
+pdeinit,toolbox/pde/
+pdeintrn,toolbox/pde/
+pdeintrp,toolbox/pde/
+pdeisfunc,toolbox/pde/
+pdeisusd,toolbox/pde/
+pdejmps,toolbox/pde/
+pdel2fau,toolbox/pde/
+pdemdlcv,toolbox/pde/
+pdemesh,toolbox/pde/
+pdemgeom,toolbox/pde/
+pdemhdlg,toolbox/pde/
+pdemtncb,toolbox/pde/
+pdemvdlg,toolbox/pde/
+pdenanmn,toolbox/pde/
+pdenanmx,toolbox/pde/
+pdenonlin,toolbox/pde/
+pdenrmfl,toolbox/pde/
+pdenullorth,toolbox/pde/
+pdeobdlg,toolbox/pde/
+pdeonax,toolbox/pde/
+pdeoutfun,toolbox/pde/
+pdepatch,toolbox/pde/
+pdeplot,toolbox/pde/
+pdepoly,toolbox/pde/
+pdeprbdf,toolbox/pde/
+pdeprbf,toolbox/pde/
+pdeprbm,toolbox/pde/
+pdeprtni,toolbox/pde/
+pdepsdlg,toolbox/pde/
+pdeptdata,toolbox/pde/
+pdeptdlg,toolbox/pde/
+pdequote,toolbox/pde/
+pderect,toolbox/pde/
+pderel,toolbox/pde/
+pderesid,toolbox/pde/
+pderespe,toolbox/pde/
+pdermpnt,toolbox/pde/
+pderot3d,toolbox/pde/
+pdertdlg,toolbox/pde/
+pdesde,toolbox/pde/
+pdesdp,toolbox/pde/
+pdesdt,toolbox/pde/
+pdeselect,toolbox/pde/
+pdesetbd,toolbox/pde/
+pdeseteq,toolbox/pde/
+pdesetlb,toolbox/pde/
+pdesldlg,toolbox/pde/
+pdesmech,toolbox/pde/
+pdesnap,toolbox/pde/
+pdespdlg,toolbox/pde/
+pdesubix,toolbox/pde/
+pdesurf,toolbox/pde/
+pdet2str,toolbox/pde/
+pdetexpd,toolbox/pde/
+pdetfxpd,toolbox/pde/
+pdetool,toolbox/pde/
+pdetrans,toolbox/pde/
+pdetrdlg,toolbox/pde/
+pdetrg,toolbox/pde/
+pdetridi,toolbox/pde/
+pdetriq,toolbox/pde/
+pdetxpd,toolbox/pde/
+pdeuxpd,toolbox/pde/
+pdevoron,toolbox/pde/
+pdezoom,toolbox/pde/
+pdf,toolbox/stats/
+pdist,toolbox/stats/
+pe,toolbox/ident/ident/
+pe_f,toolbox/ident/idutils/
+pe_fp,toolbox/ident/idutils/
+pefilt,toolbox/ident/idutils/private/
+peig,toolbox/signal/signal/
+pem,toolbox/ident/ident/
+pemdecod,toolbox/ident/idutils/
+pemdecod_fp,toolbox/ident/idutils/
+pendan,toolbox/simulink/simdemos/simgeneral/
+periodogram,toolbox/signal/signal/
+perpxy,toolbox/control/ctrlobsolete/
+perron,toolbox/robust/
+perturb,toolbox/optim/private/
+phantom,toolbox/images/images/
+phase,toolbox/ident/idobsolete/
+phasedelay,toolbox/signal/signal/
+phaseticks,toolbox/control/ctrlguis/
+phasez,toolbox/signal/signal/
+phone,toolbox/signal/sigdemos/
+pickfcn,toolbox/signal/sptoolgui/private/
+pinrect,toolbox/signal/sptoolgui/private/
+pixval,toolbox/images/images/
+place,toolbox/control/control/
+placetitlebar,toolbox/stats/private/
+plotbode,toolbox/control/ctrlobsolete/
+plotdatapoints,toolbox/optim/
+plotnic,toolbox/control/ctrlobsolete/
+plotnyq,toolbox/control/ctrlobsolete/
+pltopt,toolbox/robust/
+pmatchm,toolbox/ident/idutils/
+pmcov,toolbox/signal/signal/
+pmem,toolbox/signal/signal/
+pmtm,toolbox/signal/signal/
+pmusic,toolbox/signal/signal/
+pnam2num,toolbox/ident/idutils/
+pndanim1,toolbox/simulink/simdemos/simgeneral/
+pndanim2,toolbox/simulink/simdemos/simgeneral/
+pndanim3,toolbox/simulink/simdemos/simgeneral/
+pnmatch,toolbox/ident/idutils/
+pnmatch,toolbox/control/ctrlutil/
+pnmatchd,toolbox/ident/idutils/
+pnsortd,toolbox/ident/idutils/
+poiasma,toolbox/pde/
+poicalc,toolbox/pde/
+poiindex,toolbox/pde/
+poimesh,toolbox/pde/
+pointtip,toolbox/shared/controllib/
+poisolv,toolbox/pde/
+poisscdf,toolbox/stats/
+poissfit,toolbox/stats/
+poissinv,toolbox/stats/
+poisspdf,toolbox/stats/
+poissrnd,toolbox/stats/
+poisstat,toolbox/stats/
+poly2ac,toolbox/signal/signal/
+poly2edgelist,toolbox/images/images/private/
+poly2lsf,toolbox/signal/signal/
+poly2mask,toolbox/images/images/
+poly2rc,toolbox/signal/signal/
+poly2str,toolbox/control/ctrlobsolete/
+poly2sym,toolbox/symbolic/
+poly2th,toolbox/ident/idobsolete/
+polyconf,toolbox/stats/
+polyform,toolbox/ident/idobsolete/
+polyscale,toolbox/signal/signal/
+polystab,toolbox/signal/signal/
+polytool,toolbox/stats/
+popdemo,toolbox/simulink/simdemos/
+port,toolbox/control/ctrldemos/private/
+powerwindow02script,toolbox/simulink/simdemos/automotive/
+powerwindow03script,toolbox/simulink/simdemos/automotive/
+powerwindow04script,toolbox/simulink/simdemos/automotive/
+powerwindow05script,toolbox/simulink/simdemos/automotive/
+powerwindowscript,toolbox/simulink/simdemos/automotive/
+pp2sp,toolbox/splines/
+ppalldem,toolbox/splines/
+ppbrk,toolbox/splines/
+ppcgr,toolbox/optim/private/
+ppmak,toolbox/splines/
+pprfn,toolbox/splines/
+ppual,toolbox/splines/
+prctile,toolbox/stats/
+preaug,toolbox/optim/private/
+predict,toolbox/ident/ident/
+prefcnchk,toolbox/simulink/simulink/private/
+prefspanel,toolbox/signal/signal/
+preload_diff,toolbox/simulink/fixedandfloat/fxpdemos/
+preload_feedback,toolbox/simulink/fixedandfloat/fxpdemos/
+preload_integrate,toolbox/simulink/fixedandfloat/fxpdemos/
+preload_lead_lag,toolbox/simulink/fixedandfloat/fxpdemos/
+preload_state_space,toolbox/simulink/fixedandfloat/fxpdemos/
+preprocess_truth_table,toolbox/stateflow/stateflow/private/
+present,toolbox/ident/idobsolete/
+princomp,toolbox/stats/
+print_html_str,toolbox/stateflow/stateflow/private/
+printcomp,toolbox/signal/sptoolgui/
+printdamp,toolbox/control/ctrlutil/
+printframe,toolbox/simulink/simulink/
+printmat,toolbox/control/ctrlobsolete/
+printofficeassign,toolbox/optim/
+printopt,toolbox/local/
+printsys,toolbox/control/ctrlobsolete/
+printtext,toolbox/simulink/simulink/private/
+private_sl_decpath,toolbox/simulink/simulink/
+private_sl_enc2normalpath,toolbox/simulink/simulink/
+private_sl_encpath,toolbox/simulink/simulink/
+prm_disp_cntrl,toolbox/rtw/rtw/
+probplot,toolbox/stats/
+procmod,toolbox/ident/idutils/
+procrustes,toolbox/stats/
+project,toolbox/optim/private/
+prony,toolbox/signal/signal/
+psd,toolbox/signal/signal/
+psdchk,toolbox/signal/signal/private/
+psddemo,toolbox/signal/sigdemos/
+psdfreqvec,toolbox/signal/signal/
+psdoptions,toolbox/signal/signal/
+psdplot,toolbox/signal/signal/
+psf2otf,toolbox/images/images/
+psv,toolbox/robust/
+pulstran,toolbox/signal/signal/
+pvformat,toolbox/control/ctrlutil/
+pwelch,toolbox/signal/signal/
+pyulear,toolbox/signal/signal/
+pzmap,toolbox/control/control/
+qfilt2dfilt,toolbox/signal/sigtools/
+qfiltexists,toolbox/signal/sigtools/
+qpsub,toolbox/optim/private/
+qpsub,toolbox/simulink/simulink/private/
+qqplot,toolbox/stats/
+qtdecomp,toolbox/images/images/
+qtdemo,toolbox/images/imdemos/
+qtgetblk,toolbox/images/images/
+qtsetblk,toolbox/images/images/
+quad2,toolbox/optim/
+quadi,toolbox/optim/
+quadprog,toolbox/optim/
+quantile,toolbox/stats/
+quantize,toolbox/simulink/blocks/
+quine_mcclusky,toolbox/stateflow/stateflow/private/
+radon,toolbox/images/images/
+radonc,toolbox/images/images/private/
+randg,toolbox/stats/
+random,toolbox/stats/
+randsample,toolbox/stats/
+randtool,toolbox/stats/
+randunc,toolbox/sloptim/sloptim/
+range,toolbox/stats/
+ranksum,toolbox/stats/
+rarmax,toolbox/ident/ident/
+rarx,toolbox/ident/ident/
+raylcdf,toolbox/stats/
+raylfit,toolbox/stats/
+raylinv,toolbox/stats/
+raylpdf,toolbox/stats/
+raylrnd,toolbox/stats/
+raylstat,toolbox/stats/
+rbj,toolbox/ident/ident/
+rc2ac,toolbox/signal/signal/
+rc2is,toolbox/signal/signal/
+rc2lar,toolbox/signal/signal/
+rc2poly,toolbox/signal/signal/
+rceps,toolbox/signal/signal/
+rcoplot,toolbox/stats/
+rct2lti,toolbox/robust/
+rctdemo,toolbox/robust/
+rctdemo1,toolbox/robust/
+rdsigma,toolbox/robust/
+readstdtcdata,toolbox/simulink/simdemos/simfeatures/
+reconcile_function_io,toolbox/stateflow/stateflow/private/
+rectconv,toolbox/simulink/simulink/private/
+rectpuls,toolbox/signal/signal/
+rectwin,toolbox/signal/signal/
+refcurve,toolbox/stats/
+refinemesh,toolbox/pde/
+reflect,toolbox/optim/private/
+refline,toolbox/stats/
+reg,toolbox/control/control/
+regionprops,toolbox/images/images/
+regress,toolbox/stats/
+regstats,toolbox/stats/
+reig,toolbox/robust/
+rel_path,toolbox/stateflow/stateflow/private/
+release_version,toolbox/rtw/rtw/
+remdemo,toolbox/robust/
+remez,toolbox/signal/signal/
+remezord,toolbox/signal/signal/
+removeampersands,toolbox/signal/sigtools/private/
+removetrailzeros,toolbox/signal/sigtools/
+remstr,toolbox/signal/sptoolgui/private/
+render_cshelpbtn,toolbox/signal/sigtools/
+render_gridonoffbtn,toolbox/signal/sigtools/
+render_hiddenzoombtns,toolbox/signal/sigtools/private/
+render_legendonoffbtn,toolbox/signal/sigtools/
+render_spteditmenu,toolbox/signal/sigtools/
+render_sptfilemenu,toolbox/signal/sigtools/
+render_spthelpmenu,toolbox/signal/sigtools/
+render_sptinsertmenu,toolbox/signal/sigtools/
+render_sptprintbtns,toolbox/signal/sigtools/
+render_sptscribebtns,toolbox/signal/sigtools/
+render_spttoolsmenu,toolbox/signal/sigtools/
+render_sptwindowmenu,toolbox/signal/sigtools/
+render_statusbar,toolbox/signal/sigtools/
+render_zoombtns,toolbox/signal/sigtools/
+render_zoommenus,toolbox/signal/sigtools/
+reorderstructure,toolbox/signal/sigtools/
+replace_block,toolbox/simulink/simulink/
+resample,toolbox/signal/signal/
+resetPropertyFactoryValue,toolbox/shared/dastudio/
+reset_target_code_flags,toolbox/stateflow/stateflow/private/
+resetaxes,toolbox/signal/sigtools/private/
+reshapemask,toolbox/simulink/blocks/
+resid,toolbox/ident/idobsolete/
+residuez,toolbox/signal/signal/
+resistor,toolbox/control/ctrldemos/private/
+resizedispatch,toolbox/signal/sptoolgui/private/
+respdemo,toolbox/control/ctrldemos/
+restorePrm,toolbox/simulink/simulink/private/
+restoredefaultpath,toolbox/local/
+revertit,toolbox/simulink/dee/
+rfinputs,toolbox/control/ctrlguis/
+rg,toolbox/stateflow/stateflow/private/
+rg_dialog,toolbox/stateflow/stateflow/private/
+rg_nice_shot,toolbox/stateflow/stateflow/private/
+rg_printbook_cant_handle_chart,toolbox/stateflow/stateflow/private/
+rgb2gray,toolbox/images/images/
+rgb2ind,toolbox/images/images/
+rgb2ntsc,toolbox/images/images/
+rgb2ycbcr,toolbox/images/images/
+rguipopts,toolbox/control/ctrlguis/
+ric,toolbox/control/ctrlobsolete/
+riccond,toolbox/robust/
+ridge,toolbox/stats/
+rk23,toolbox/simulink/simulink/
+rk45,toolbox/simulink/simulink/
+rlcdemo,toolbox/control/ctrldemos/
+rlevinson,toolbox/signal/signal/
+rlocfind,toolbox/control/control/
+rloclims,toolbox/control/ctrlguis/
+rlocmult,toolbox/control/ctrlutil/
+rlocus,toolbox/control/control/
+rlsests,toolbox/simulink/simdemos/
+rlspps,toolbox/simulink/simdemos/
+rltool,toolbox/control/control/
+rmdynprop,toolbox/signal/sigtools/
+rmnk,toolbox/ident/idutils/
+rmodel,toolbox/robust/
+rmodel,toolbox/control/control/
+rmprops,toolbox/signal/sigtools/
+robustdemo,toolbox/stats/
+robustfit,toolbox/stats/
+roe,toolbox/ident/ident/
+roicolor,toolbox/images/images/
+roidemo,toolbox/images/imdemos/
+roifill,toolbox/images/images/
+roifilt2,toolbox/images/images/
+roipoly,toolbox/images/images/
+roipolyold,toolbox/images/images/
+rootddg,toolbox/simulink/simulink/
+rooteig,toolbox/signal/signal/
+rootmusic,toolbox/signal/signal/
+rootobjectenum,toolbox/simulink/simulink/
+rotatefactors,toolbox/stats/
+roundfocus,toolbox/ident/idutils/private/
+rowexch,toolbox/stats/
+rpbrk,toolbox/splines/
+rpem,toolbox/ident/ident/
+rplr,toolbox/ident/ident/
+rpmak,toolbox/splines/
+rsbrk,toolbox/splines/
+rschur,toolbox/robust/
+rsigma,toolbox/robust/
+rsmak,toolbox/splines/
+rsmdemo,toolbox/stats/
+rss,toolbox/control/control/
+rstool,toolbox/stats/
+rsums,toolbox/symbolic/
+rsval,toolbox/splines/
+rtmdlsortflds,toolbox/rtw/rtw/
+rtslider,toolbox/control/ctrldemos/private/
+rtw_c,toolbox/rtw/rtw/
+rtw_cgt_name_conv,toolbox/rtw/rtw/
+rtw_checkdir,toolbox/rtw/rtw/
+rtw_copy_file,toolbox/rtw/rtw/
+rtw_delete_file,toolbox/rtw/rtw/
+rtw_expand_template,toolbox/rtw/rtw/
+rtw_expand_template_from_tlc,toolbox/rtw/rtw/
+rtw_fileparts,toolbox/rtw/rtw/
+rtw_gen_shared_utils,toolbox/rtw/rtw/
+rtw_host_implementation_props,toolbox/rtw/rtw/
+rtw_implementation_props,toolbox/rtw/rtw/
+rtw_is_hardware_state_unknown,toolbox/rtw/rtw/
+rtw_mlscript_tlcgen,toolbox/rtw/rtw/
+rtw_optimization_info,toolbox/stateflow/stateflow/private/
+rtw_prodhw_get,toolbox/rtw/rtw/
+rtw_prodhw_sizes,toolbox/rtw/rtw/
+rtw_rsim_mdlref_compatibility,toolbox/rtw/rtw/
+rtw_shared_utils_enabled,toolbox/stateflow/stateflow/private/
+rtw_target_fcn_lib_mgr,toolbox/simulink/simulink/
+rtw_target_methods,toolbox/stateflow/stateflow/private/
+rtw_target_props,toolbox/stateflow/coder/private/
+rtwbuild,toolbox/rtw/rtw/
+rtwconfiguremodel,toolbox/rtw/rtw/
+rtwdwork_inspect,toolbox/simulink/simdemos/
+rtwenvironmentmode,toolbox/simulink/simulink/
+rtwgen,toolbox/rtw/rtw/
+rtwgettargetfcnlib,toolbox/simulink/simulink/
+rtwhostwordlengths,toolbox/rtw/rtw/
+rtwmaputil,toolbox/rtw/rtw/
+rtwmath_base_fcn_name_list,toolbox/simulink/simulink/
+rtwmath_data_type_prop_list,toolbox/simulink/simulink/
+rtwprivate,toolbox/rtw/rtw/
+rtwrebuild,toolbox/rtw/rtw/
+rtwsampleconfig,toolbox/rtw/rtw/
+rtwwordlengths,toolbox/rtw/rtw/
+ruldown,toolbox/signal/sptoolgui/private/
+ruler,toolbox/signal/sptoolgui/private/
+rulermo,toolbox/signal/sptoolgui/private/
+rules,toolbox/simulink/components/private/
+runabs,toolbox/simulink/simdemos/automotive/
+runfleq1,toolbox/optim/
+runnls3,toolbox/optim/
+runqpbox4,toolbox/optim/
+runqpbox4prec,toolbox/optim/
+runqpeq5,toolbox/optim/
+runtracklsq,toolbox/optim/
+runtrackmm,toolbox/optim/
+safely_execute_dos_command,toolbox/stateflow/stateflow/private/
+same,toolbox/robust/
+sample,toolbox/ident/idobsolete/
+sample,toolbox/ident/idutils/
+samplesizedemo,toolbox/stats/
+sanim,toolbox/simulink/simdemos/aerospace/
+sanim3dof,toolbox/simulink/simdemos/aerospace/
+sanity_check_chart_simulink_block,toolbox/stateflow/stateflow/private/
+saveAndSetPrm,toolbox/simulink/simulink/private/
+save_system,toolbox/simulink/simulink/
+sawtooth,toolbox/signal/signal/
+sbarray,toolbox/signal/sptoolgui/private/
+sbclose,toolbox/signal/sptoolgui/private/
+sbcmplx,toolbox/signal/sptoolgui/private/
+sbhelpstr,toolbox/signal/sptoolgui/private/
+sbinit,toolbox/signal/sptoolgui/private/
+sbmotion,toolbox/signal/sptoolgui/private/
+sbresize,toolbox/signal/sptoolgui/private/
+sbswitch,toolbox/signal/sptoolgui/
+sbtitle,toolbox/signal/sptoolgui/private/
+sbzoom,toolbox/signal/sptoolgui/private/
+scalevaluefixup,toolbox/signal/sigtools/
+scalewinfo,toolbox/signal/sigdemos/private/
+scalewinzo,toolbox/signal/sigdemos/private/
+scalingfactor,toolbox/signal/sigdemos/private/
+scatterb,toolbox/pde/
+scatterg,toolbox/pde/
+scdtmpini,toolbox/slcontrol/slctrldemos/
+scdtmpinit,toolbox/slcontrol/slctrldemos/
+schart,toolbox/stats/
+schbal,toolbox/robust/
+schmr,toolbox/robust/
+schord,toolbox/control/ctrlobsolete/
+schurrc,toolbox/signal/signal/
+scopebar,toolbox/simulink/simulink/
+scopebarsv,toolbox/simulink/simulink/
+scopezoom,toolbox/simulink/simulink/
+scpprop,toolbox/simulink/simulink/
+scppropsv,toolbox/simulink/simulink/
+searchq,toolbox/optim/
+sec2tss,toolbox/robust/
+sectf,toolbox/robust/
+sectf88,toolbox/robust/
+segment,toolbox/ident/ident/
+selstruc,toolbox/ident/ident/
+semicon,toolbox/optim/
+seqperiod,toolbox/signal/signal/
+series,toolbox/control/control/
+sershbl,toolbox/robust/
+setActiveConfigSet,toolbox/simulink/simulink/
+setHardwareDevice,toolbox/simulink/simulink/private/
+set_eml_script,toolbox/simulink/simulink/
+set_mask_display,toolbox/stateflow/stateflow/private/
+set_param,toolbox/simulink/simulink/
+set_signal_name_for_out_port,toolbox/stateflow/stateflow/private/
+set_target_code_flags,toolbox/stateflow/stateflow/private/
+setcoincidentgrid,toolbox/signal/sigtools/
+setdatamarkers,toolbox/signal/sigtools/
+setenableprop,toolbox/signal/sigtools/
+setjavaxtreenode,toolbox/simulink/blocks/private/
+setjavaxtreenode,toolbox/simulink/simulink/private/
+setlinio,toolbox/slcontrol/slcontrol/
+setpname,toolbox/ident/idutils/
+setrul,toolbox/signal/sptoolgui/private/
+setrulxdata,toolbox/signal/sptoolgui/private/
+setsigpref,toolbox/signal/sptoolgui/
+setslopeline,toolbox/signal/sptoolgui/private/
+setstructfields,toolbox/signal/sigtools/
+setsysloc,toolbox/simulink/simulink/
+sett,toolbox/ident/idobsolete/
+setup_for_borland,toolbox/rtw/rtw/
+setup_for_intel,toolbox/rtw/rtw/
+setup_for_lcc,toolbox/rtw/rtw/
+setup_for_visual,toolbox/rtw/rtw/
+setup_for_watcom,toolbox/rtw/rtw/
+setxu,toolbox/slcontrol/slcontrol/
+setzoomstate,toolbox/signal/sigtools/
+sf_add_custom_menu,toolbox/stateflow/stateflow/private/
+sf_aerodyn,toolbox/control/ctrldemos/
+sf_bridge_state,toolbox/stateflow/sfdemos/
+sf_comment,toolbox/stateflow/coder/private/
+sf_copyobj,toolbox/stateflow/stateflow/private/
+sf_cruise_button_mgr,toolbox/stateflow/sfdemos/
+sf_cruise_control_ui,toolbox/stateflow/sfdemos/
+sf_date_num,toolbox/stateflow/stateflow/private/
+sf_date_str,toolbox/stateflow/stateflow/private/
+sf_deal_cards,toolbox/stateflow/sfdemos/
+sf_debug_exec,toolbox/stateflow/stateflow/private/
+sf_debug_exit_trap,toolbox/stateflow/stateflow/private/
+sf_debugger_trap,toolbox/stateflow/stateflow/private/
+sf_delete_file,toolbox/stateflow/stateflow/private/
+sf_demo_disclaimer,toolbox/stateflow/stateflow/private/
+sf_display,toolbox/stateflow/stateflow/private/
+sf_dos,toolbox/stateflow/stateflow/private/
+sf_echo_generating,toolbox/stateflow/coder/private/
+sf_edit_icon,toolbox/stateflow/sfdemos/
+sf_elevator_gui,toolbox/stateflow/sfdemos/
+sf_evalin_base,toolbox/stateflow/coder/private/
+sf_figure,toolbox/stateflow/stateflow/private/
+sf_force_open_machine,toolbox/stateflow/stateflow/private/
+sf_get_component_root,toolbox/stateflow/stateflow/private/
+sf_get_icon_data,toolbox/stateflow/stateflow/private/
+sf_get_reference_block_name,toolbox/stateflow/stateflow/private/
+sf_get_schema,toolbox/stateflow/stateflow/private/
+sf_hg_get,toolbox/stateflow/stateflow/private/
+sf_hg_set,toolbox/stateflow/stateflow/private/
+sf_hier_print,toolbox/stateflow/stateflow/private/
+sf_inhibit_code,toolbox/stateflow/sfdemos/
+sf_inject_event,toolbox/stateflow/sfdemos/
+sf_keyboard,toolbox/stateflow/stateflow/private/
+sf_load_model,toolbox/stateflow/stateflow/private/
+sf_mandel_gui,toolbox/stateflow/sfdemos/
+sf_mark_block_as_tainted,toolbox/stateflow/stateflow/private/
+sf_menu_mode,toolbox/stateflow/stateflow/private/
+sf_mk_dir,toolbox/stateflow/stateflow/private/
+sf_profile,toolbox/stateflow/stateflow/private/
+sf_root,toolbox/stateflow/stateflow/private/
+sf_rtw,toolbox/stateflow/stateflow/private/
+sf_rtw,toolbox/rtw/rtw/
+sf_scalar2str,toolbox/stateflow/stateflow/private/
+sf_simtime_throttle,toolbox/stateflow/sfdemos/
+sf_snr_inject_event,toolbox/stateflow/stateflow/private/
+sf_srch,toolbox/stateflow/stateflow/private/
+sf_stickslipedit,toolbox/stateflow/sfdemos/
+sf_tetris_gui,toolbox/stateflow/sfdemos/
+sf_tictacflow_mex,toolbox/stateflow/sfdemos/
+sf_tictacflow_simgui,toolbox/stateflow/sfdemos/
+sf_tictacflowgui,toolbox/stateflow/sfdemos/
+sf_tmp_undo_marker,toolbox/stateflow/stateflow/private/
+sf_type_enum_from_name,toolbox/stateflow/coder/private/
+sf_uicontextmenu,toolbox/stateflow/stateflow/private/
+sf_uicontrol,toolbox/stateflow/stateflow/private/
+sf_use_silent_build,toolbox/stateflow/stateflow/private/
+sfabout,toolbox/stateflow/stateflow/private/
+sfbcheckports,toolbox/simulink/simulink/private/
+sfbcheckstates,toolbox/simulink/simulink/private/
+sfbdroot,toolbox/stateflow/stateflow/private/
+sfblk,toolbox/stateflow/stateflow/private/
+sfbuilder_mexbuild,toolbox/simulink/simulink/private/
+sfc,toolbox/stateflow/coder/
+sfcall,toolbox/stateflow/stateflow/private/
+sfclipboard,toolbox/stateflow/stateflow/
+sfclose,toolbox/stateflow/stateflow/
+sfcndemo_hg_gui_m,toolbox/simulink/simdemos/
+sfcndemo_rtwcmd,toolbox/simulink/simdemos/
+sfcustom,toolbox/stateflow/stateflow/private/
+sfd,toolbox/optim/
+sfdbfig,toolbox/stateflow/stateflow/private/
+sfdebug,toolbox/stateflow/stateflow/private/
+sfdebug_get_linenum,toolbox/stateflow/stateflow/private/
+sfdebug_paused,toolbox/stateflow/stateflow/private/
+sfdebug_using_java,toolbox/stateflow/stateflow/private/
+sfdebugger,toolbox/stateflow/stateflow/
+sfdlg,toolbox/stateflow/stateflow/private/
+sfdnls,toolbox/optim/
+sfexit,toolbox/stateflow/stateflow/
+sfexplr,toolbox/stateflow/stateflow/
+sffind,toolbox/stateflow/stateflow/
+sfhelp,toolbox/stateflow/stateflow/
+sfinit,toolbox/stateflow/stateflow/private/
+sfix,toolbox/simulink/fixedandfloat/
+sfl,toolbox/robust/
+sflibrary,toolbox/stateflow/stateflow/private/
+sfminbx,toolbox/optim/
+sfminle,toolbox/optim/
+sfnew,toolbox/stateflow/stateflow/
+sfopen,toolbox/stateflow/stateflow/
+sfpcode,toolbox/stateflow/stateflow/private/
+sfpref,toolbox/stateflow/stateflow/
+sfprint,toolbox/stateflow/stateflow/
+sfprivate,toolbox/stateflow/stateflow/
+sfr,toolbox/robust/
+sfrac,toolbox/simulink/fixedandfloat/
+sfreplace,toolbox/stateflow/stateflow/
+sfroot,toolbox/stateflow/stateflow/
+sfrtw_compliant,toolbox/rtw/rtw/
+sfsave,toolbox/stateflow/stateflow/
+sfsim,toolbox/stateflow/stateflow/private/
+sfslbridge,toolbox/stateflow/stateflow/
+sfslfind,toolbox/stateflow/stateflow/private/
+sfsnr,toolbox/stateflow/stateflow/private/
+sfsrch,toolbox/stateflow/stateflow/private/
+sfstyler,toolbox/stateflow/stateflow/private/
+sftab2chk,toolbox/simulink/blocks/
+sftiffprintall,toolbox/stateflow/stateflow/private/
+sfun_bitopcbk,toolbox/simulink/blocks/
+sfun_target_methods,toolbox/stateflow/stateflow/private/
+sfun_varargm,toolbox/simulink/blocks/
+sfunbuilderports,toolbox/simulink/simulink/private/
+sfuncont,toolbox/simulink/blocks/
+sfuncorr,toolbox/simulink/blocks/
+sfunctionwizard,toolbox/simulink/simulink/
+sfunddg,toolbox/simulink/blocks/
+sfunddg_cb,toolbox/simulink/blocks/
+sfunddg_fs,toolbox/simulink/blocks/private/
+sfundemo_helper,toolbox/simulink/simdemos/
+sfundemo_maskdisp,toolbox/simulink/simdemos/
+sfundemo_open,toolbox/simulink/simdemos/
+sfundemo_openfcn,toolbox/simulink/simdemos/
+sfundsc1,toolbox/simulink/blocks/
+sfundsc2,toolbox/simulink/blocks/
+sfunid,toolbox/ident/iddemos/
+sfunlin,toolbox/simulink/blocks/
+sfunmem,toolbox/simulink/blocks/
+sfunpsd,toolbox/simulink/blocks/
+sfuntf,toolbox/simulink/blocks/
+sfuntmpl,toolbox/simulink/blocks/
+sfunxy,toolbox/simulink/blocks/
+sfunxys,toolbox/simulink/blocks/
+sfuny,toolbox/simulink/blocks/
+sfunyst,toolbox/simulink/blocks/
+sfversion,toolbox/stateflow/stateflow/
+sgolay,toolbox/signal/signal/
+sgolaydemo,toolbox/signal/sigdemos/
+sgolayfilt,toolbox/signal/signal/
+sgrid,toolbox/control/control/
+shiftdata,toolbox/signal/signal/
+shiftsc,toolbox/optim/private/
+showblockdatatypetable,toolbox/simulink/simdemos/
+showrootcs,toolbox/simulink/simulink/
+shuffle,toolbox/stateflow/stateflow/private/
+sido2n,toolbox/ident/idguis/
+sigSpecDataTypeParamCallBackFcn,toolbox/simulink/blocks/
+sigandscopemgr,toolbox/simulink/simulink/
+sigbrowse,toolbox/signal/sptoolgui/
+sigbuilder,toolbox/simulink/simulink/
+sigbuilder_beveled_frame,toolbox/simulink/simulink/private/
+sigbuilder_block,toolbox/simulink/simulink/
+sigbuilder_makemenu,toolbox/simulink/simulink/private/
+sigbuilder_modal_edit_dialog,toolbox/simulink/simulink/private/
+sigbuilder_tabselector,toolbox/simulink/simulink/
+sigcombobox,toolbox/signal/sigtools/
+sigdemo1,toolbox/signal/sigdemos/
+sigdemo2,toolbox/signal/sigdemos/
+siggetappdata,toolbox/signal/sigtools/
+sigisappdata,toolbox/signal/sigtools/
+siglogdialog,toolbox/simulink/simulink/
+sigma,toolbox/control/control/
+sigmpoles,toolbox/signal/sigtools/
+signalbuilder,toolbox/simulink/simulink/
+signalpolyutils,toolbox/signal/signal/
+signalselector,toolbox/simulink/simulink/
+signrank,toolbox/stats/
+signtest,toolbox/stats/
+sigprivate,toolbox/signal/signal/
+sigpropddg,toolbox/simulink/simulink/
+sigrmappdata,toolbox/signal/sigtools/
+sigsetappdata,toolbox/signal/sigtools/
+sigspecmask,toolbox/simulink/blocks/
+silhouette,toolbox/stats/
+sim,toolbox/simulink/simulink/
+sim_open_sys,toolbox/stateflow/stateflow/private/
+simbrowse,toolbox/simulink/simulink/
+simcad,toolbox/simulink/simdemos/
+simclock,toolbox/simulink/simulink/
+simcnstr,toolbox/simulink/simulink/
+simcontdesigner,toolbox/slcontrol/slctrlguis/
+simget,toolbox/simulink/simulink/
+simintro,toolbox/simulink/simdemos/
+simlp,toolbox/simulink/simulink/
+simmenu,toolbox/simulink/simulink/private/
+simom,toolbox/simulink/blocks/
+simom2,toolbox/simulink/blocks/
+simplex,toolbox/optim/private/
+simplexphaseone,toolbox/optim/private/
+simplexphasetwo,toolbox/optim/private/
+simplexpiecewise,toolbox/optim/private/
+simplexpostsolve,toolbox/optim/private/
+simplexpresolve,toolbox/optim/private/
+simplot,toolbox/simulink/simulink/
+simprintdlg,toolbox/simulink/simulink/
+simprintlog,toolbox/simulink/simulink/
+simprm,toolbox/simulink/simulink/
+simprmDlgCloseCallback,toolbox/simulink/simulink/private/
+simprmfield2prmmap,toolbox/simulink/simulink/
+simprmtagmap,toolbox/simulink/simulink/
+simscope,toolbox/simulink/simulink/
+simscopesv,toolbox/simulink/simulink/
+simset,toolbox/simulink/simulink/
+simsizes,toolbox/simulink/simulink/
+simulink,toolbox/simulink/blocks/
+simulinkrc,toolbox/local/
+simver,toolbox/simulink/simulink/
+sinc,toolbox/signal/signal/
+sinint,toolbox/symbolic/
+sint,toolbox/simulink/fixedandfloat/
+sisotool,toolbox/control/control/
+sizedat,toolbox/ident/idutils/
+skewness,toolbox/stats/
+skipdata,toolbox/robust/
+sl,toolbox/simulink/simulink/
+slCfgPrmDlg,toolbox/simulink/simulink/
+slCharacterEncoding,toolbox/simulink/simulink/
+slDDGUtil,toolbox/simulink/simulink/
+slDialogUtil,toolbox/simulink/simulink/
+slResolve,toolbox/simulink/simulink/
+sl_convert_to_model_reference,toolbox/simulink/simulink/
+sl_disp_info,toolbox/simulink/simulink/private/
+sl_file_is_newer,toolbox/simulink/simulink/private/
+sl_get_dialog_schema,toolbox/simulink/simulink/
+sl_get_file_date,toolbox/simulink/simulink/private/
+sl_open,toolbox/stateflow/stateflow/private/
+sl_snr_inject_event,toolbox/shared/dastudio/
+sl_type_enum_from_name,toolbox/stateflow/coder/private/
+sl_unified_lookup2d_dialog,toolbox/simulink/blocks/
+slblkpropdlg,toolbox/simulink/simulink/
+slblks,toolbox/simulink/blocks/
+slblocks,toolbox/slcontrol/slctrlutil/
+slblocks,toolbox/control/control/
+slblocks,toolbox/rtw/rtw/
+slblocks,toolbox/sloptim/sloptim/
+slblocks,toolbox/stateflow/stateflow/
+slblocks,toolbox/ident/ident/
+slblocks,toolbox/simulink/blocks/
+slbuild,toolbox/simulink/simulink/
+slchangelog,toolbox/simulink/simulink/
+slcheckprelookups,toolbox/simulink/simdemos/simfeatures/
+slcm,toolbox/simulink/simulink/
+slctrlexplorer,toolbox/shared/slcontrollib/
+sldatastoredlg,toolbox/simulink/blocks/
+sldebug,toolbox/simulink/simulink/
+sldebugui,toolbox/simulink/simulink/
+sldemo_bpcheck_script,toolbox/simulink/simdemos/simfeatures/
+sldemo_create_tc_blocks_data,toolbox/simulink/simdemos/simfeatures/
+sldemo_create_tc_tabledata,toolbox/simulink/simdemos/simfeatures/
+sldemo_luteditor_script,toolbox/simulink/simdemos/simfeatures/
+sldemo_prelookup_script,toolbox/simulink/simdemos/simfeatures/
+sldemo_sweeptable_thd,toolbox/simulink/simdemos/simfeatures/
+sldemo_tableplot_comet,toolbox/simulink/simdemos/simfeatures/
+sldemo_wavethd_script,toolbox/simulink/simdemos/simfeatures/
+sldiagnostics,toolbox/simulink/simulink/
+sldiscmdl,toolbox/simulink/components/
+sldiscutil,toolbox/simulink/components/
+sldrop,toolbox/simulink/simulink/private/
+sldsmemdlg,toolbox/simulink/blocks/
+slexist,toolbox/simulink/simulink/
+slexplr,toolbox/simulink/simulink/
+slfind,toolbox/simulink/simulink/
+slfromdlg,toolbox/simulink/blocks/
+slgetcompilerinfo,toolbox/simulink/simulink/private/
+slgotodlg,toolbox/simulink/blocks/
+slhelp,toolbox/simulink/simulink/
+slideg,toolbox/simulink/simulink/
+slidentinit,toolbox/ident/ident/
+slidentinit,toolbox/ident/idutils/
+slight,toolbox/simulink/simdemos/simgeneral/
+slinstallprefs,toolbox/simulink/simulink/
+sllastdiagnostic,toolbox/simulink/simulink/
+sllasterror,toolbox/simulink/simulink/
+sllastwarning,toolbox/simulink/simulink/
+slloadpmmenuitems,toolbox/simulink/simulink/
+sllsbox,toolbox/optim/private/
+slmaskprmdispcntrl,toolbox/simulink/simulink/
+slmdldisc,toolbox/simulink/components/
+slmdldiscui,toolbox/simulink/components/
+slmodelprop,toolbox/simulink/simulink/
+slmodelpropj,toolbox/simulink/simulink/
+slowfast,toolbox/robust/
+slpmloadfunction,toolbox/simulink/simulink/private/
+slprivate,toolbox/simulink/simulink/
+slproductinstalled,toolbox/simulink/simulink/
+slprofile_hilite_system,toolbox/simulink/simulink/
+slprofile_unhilite_system,toolbox/simulink/simulink/
+slprofreport,toolbox/simulink/simulink/
+slprophelp,toolbox/simulink/simulink/
+slreplace,toolbox/shared/dastudio/
+slresolveporthandle,toolbox/simulink/simulink/
+slroot,toolbox/simulink/simulink/
+slsaveas,toolbox/simulink/simulink/
+slsaveassup,toolbox/simulink/simulink/
+slsf,toolbox/stateflow/stateflow/private/
+slsfnagctlr,toolbox/simulink/simulink/
+slsigpropdlg,toolbox/simulink/simulink/
+slsnr,toolbox/shared/dastudio/
+sltbldesigner,toolbox/simulink/blocks/
+sltbledit,toolbox/simulink/blocks/
+sltipalert,toolbox/simulink/simulink/
+sltranslate,toolbox/simulink/simulink/
+sltrdemo,toolbox/robust/
+sluigeom,toolbox/simulink/simulink/
+sluiutil,toolbox/simulink/simulink/
+slupdate,toolbox/simulink/simulink/
+slvblk,toolbox/splines/
+slview,toolbox/control/control/
+slwsprmattrib,toolbox/simulink/simulink/
+smreal,toolbox/control/ctrlutil/
+snls,toolbox/optim/private/
+solve,toolbox/symbolic/
+sort_exported_fcns_info,toolbox/stateflow/stateflow/private/
+sorted,toolbox/splines/
+sos2cell,toolbox/signal/signal/
+sos2ss,toolbox/signal/signal/
+sos2tf,toolbox/signal/signal/
+sos2zp,toolbox/signal/signal/
+sosdemo,toolbox/signal/sigdemos/
+sosfilt,toolbox/signal/signal/
+sp2bb,toolbox/splines/
+sp2pp,toolbox/splines/
+spa,toolbox/ident/ident/
+spafdr,toolbox/ident/ident/
+spalldem,toolbox/splines/
+spap2,toolbox/splines/
+spapi,toolbox/splines/
+spapidem,toolbox/splines/
+spaps,toolbox/splines/
+spbrk,toolbox/splines/
+spchart,toolbox/control/ctrlguis/
+spcol,toolbox/splines/
+spcrv,toolbox/splines/
+spcrvdem,toolbox/splines/
+spdialog,toolbox/simulink/simulink/
+specgram,toolbox/signal/signal/
+specgramdemo,toolbox/signal/sigdemos/
+specplot,toolbox/signal/signal/
+spectralanalysisobjsdemo,toolbox/signal/sigdemos/
+spectrum,toolbox/signal/signal/
+spectview,toolbox/signal/sptoolgui/
+speditline,toolbox/signal/sptoolgui/private/
+sphelpstr,toolbox/signal/sptoolgui/private/
+spinit,toolbox/signal/sptoolgui/private/
+spldems,toolbox/splines/
+splexmpl,toolbox/splines/
+splinetool,toolbox/splines/
+splitText,toolbox/simulink/simulink/private/
+splpp,toolbox/splines/
+spmak,toolbox/splines/
+spmethp,toolbox/signal/sptoolgui/private/
+spmotion,toolbox/signal/sptoolgui/private/
+spresize,toolbox/signal/sptoolgui/private/
+sprfn,toolbox/splines/
+spriorityfcn,toolbox/simulink/simdemos/simfeatures/
+sprpp,toolbox/splines/
+sptarn,toolbox/pde/
+sptcompp,toolbox/signal/sptoolgui/private/
+spterms,toolbox/splines/
+sptexport,toolbox/signal/sptoolgui/private/
+sptfileheader,toolbox/signal/sigtools/
+spthelp,toolbox/signal/sptoolgui/private/
+spthelpstr,toolbox/signal/sptoolgui/private/
+sptimport,toolbox/signal/sptoolgui/private/
+sptlegend,toolbox/signal/sptoolgui/private/
+sptlinetip,toolbox/signal/sigtools/
+sptool,toolbox/signal/sptoolgui/
+sptool_helpmenu,toolbox/signal/sptoolgui/private/
+sptprefp,toolbox/signal/sptoolgui/private/
+sptprefs,toolbox/signal/sptoolgui/private/
+sptrmcharsfromcell,toolbox/signal/sigtools/
+sptsizes,toolbox/signal/sptoolgui/private/
+spval,toolbox/splines/
+spzoom,toolbox/signal/sptoolgui/private/
+sqpbox,toolbox/optim/private/
+sqpmin,toolbox/optim/private/
+sqrmtx,toolbox/robust/
+square,toolbox/signal/signal/
+squareb1,toolbox/pde/
+squareb2,toolbox/pde/
+squareb3,toolbox/pde/
+squareb4,toolbox/pde/
+squareb5,toolbox/pde/
+squareform,toolbox/stats/
+squareg,toolbox/pde/
+sroproject,toolbox/sloptim/sloptim/
+srotut1_dat,toolbox/sloptim/sloptdemos/
+ss2sos,toolbox/signal/signal/
+ss2ss,toolbox/control/control/
+ss2th,toolbox/ident/idobsolete/
+ssdelete,toolbox/control/ctrlobsolete/
+ssfreqresp,toolbox/ident/idutils/
+ssfrupd,toolbox/ident/idutils/private/
+ssinthd,toolbox/simulink/simdemos/simfeatures/
+ssinv,toolbox/robust/
+ssmodxx,toolbox/ident/idutils/
+ssops,toolbox/control/ctrlutil/
+ssselect,toolbox/control/ctrlobsolete/
+ssssaux,toolbox/ident/idutils/
+ssv,toolbox/robust/
+stabproj,toolbox/robust/
+start_simulation,toolbox/stateflow/stateflow/private/
+startupdlg,toolbox/control/ctrlguis/
+startupsav,toolbox/local/
+startx,toolbox/shared/optimlib/
+statchol,toolbox/stats/private/
+statctexact,toolbox/stats/private/
+statdisptable,toolbox/stats/
+state2html,toolbox/stateflow/stateflow/private/
+state_print_fig,toolbox/stateflow/stateflow/private/
+stateddg,toolbox/stateflow/stateflow/private/
+statedlg,toolbox/stateflow/stateflow/private/
+stateflow,toolbox/stateflow/stateflow/
+statepropdialog,toolbox/simulink/simulink/
+statget,toolbox/stats/
+statgetargs,toolbox/stats/private/
+statgetargsuser,toolbox/stats/private/
+statgetcolor,toolbox/stats/private/
+statglmeval,toolbox/stats/private/
+staticres,toolbox/signal/sigtools/
+staticrespengine,toolbox/signal/sigtools/
+statinsertnan,toolbox/stats/private/
+statremovenan,toolbox/stats/private/
+statrobustfit,toolbox/stats/private/
+statset,toolbox/stats/
+statsfminbx,toolbox/stats/private/
+statsizechk,toolbox/stats/private/
+statsrexact,toolbox/stats/private/
+stattestlink,toolbox/stats/private/
+stbrk,toolbox/splines/
+stcol,toolbox/splines/
+std2,toolbox/images/images/
+stdrcdf,toolbox/stats/private/
+stdrinv,toolbox/stats/private/
+stealparameter,toolbox/simulink/fixedandfloat/
+step,toolbox/control/control/
+stepfun,toolbox/control/ctrlobsolete/
+stepwise,toolbox/stats/
+stepwisefit,toolbox/stats/
+stepz,toolbox/signal/signal/
+stf2target,toolbox/rtw/rtw/
+stf2tc,toolbox/shared/dastudio/
+stf4target,toolbox/rtw/rtw/
+stfInitTarget,toolbox/rtw/rtw/
+stfTargetDlgCallback,toolbox/simulink/simulink/private/
+stftarget_fillstring,toolbox/rtw/rtw/
+stmak,toolbox/splines/
+stmcb,toolbox/signal/signal/
+stop_simulation,toolbox/stateflow/stateflow/private/
+stowe_away_tlc_logs_for_testing,toolbox/rtw/rtw/
+stradd,toolbox/stateflow/stateflow/private/
+strcat_with_separator,toolbox/simulink/simulink/private/
+strelcheck,toolbox/images/images/private/
+stretchlim,toolbox/images/images/
+strip_path_from_name,toolbox/stateflow/stateflow/private/
+strip_trailing_new_lines,toolbox/stateflow/coder/private/
+strips,toolbox/signal/signal/
+strlen,toolbox/stateflow/stateflow/private/
+strlines,toolbox/stateflow/stateflow/private/
+strlong,toolbox/stateflow/stateflow/private/
+strrows,toolbox/stateflow/stateflow/private/
+struc,toolbox/ident/ident/
+struct2array,toolbox/signal/sigtools/
+structelementddg,toolbox/simulink/simulink/
+structtypeddg,toolbox/simulink/simulink/
+strwrite,toolbox/stateflow/stateflow/private/
+stval,toolbox/splines/
+subaxes,toolbox/control/ctrlobsolete/
+subimage,toolbox/images/images/
+subplus,toolbox/splines/
+subs,toolbox/symbolic/
+subsystem_configuration,toolbox/simulink/simulink/
+subsystem_configuration_blkinit,toolbox/simulink/simulink/
+subsystem_to_model_reference,toolbox/simulink/simulink/private/
+sum4vms,toolbox/ident/idutils/
+sumblock,toolbox/control/ctrldemos/private/
+sumboard,toolbox/ident/idguis/
+super_checker,toolbox/stateflow/stateflow/private/
+surfht,toolbox/stats/
+survivaldemo,toolbox/stats/
+suspdat,toolbox/simulink/simdemos/automotive/
+suspgrph,toolbox/simulink/simdemos/automotive/
+svburg,toolbox/signal/sptoolgui/private/
+svcov,toolbox/signal/sptoolgui/private/
+svextrap,toolbox/signal/sptoolgui/private/
+svfft,toolbox/signal/sptoolgui/private/
+sviewer,toolbox/simulink/simulink/
+svmcov,toolbox/signal/sptoolgui/private/
+svmtm,toolbox/signal/sptoolgui/private/
+svmusic,toolbox/signal/sptoolgui/private/
+svwelch,toolbox/signal/sptoolgui/private/
+svyulear,toolbox/signal/sptoolgui/private/
+symbol_wiz,toolbox/stateflow/stateflow/private/
+symcalcdemo,toolbox/symbolic/
+symdemos,toolbox/symbolic/
+symeqndemo,toolbox/symbolic/
+symintro,toolbox/symbolic/
+symlindemo,toolbox/symbolic/
+symrotdemo,toolbox/symbolic/
+syms,toolbox/symbolic/
+symvpademo,toolbox/symbolic/
+syncDlgStopTimes,toolbox/simulink/simulink/
+sync_target,toolbox/stateflow/stateflow/private/
+sys2ss,toolbox/robust/
+sysardec,toolbox/ident/idutils/
+sysblock,toolbox/control/ctrldemos/private/
+sysdemo,toolbox/robust/
+sysirdec,toolbox/ident/idutils/
+sysmatrix,toolbox/signal/sigtools/
+tabulate,toolbox/stats/
+tagdialog,toolbox/simulink/simulink/
+target_code_flags,toolbox/stateflow/stateflow/private/
+target_methods,toolbox/stateflow/stateflow/private/
+target_name_change,toolbox/stateflow/stateflow/private/
+target_opts_ddg,toolbox/stateflow/stateflow/private/
+targetddg,toolbox/stateflow/stateflow/private/
+targetddg_btn_coder_cb,toolbox/stateflow/stateflow/private/
+targetddg_btn_target_cb,toolbox/stateflow/stateflow/private/
+targetddg_preapply_callback,toolbox/stateflow/stateflow/private/
+targetddg_preclose_callback,toolbox/stateflow/stateflow/private/
+targetdevicetypechanged,toolbox/simulink/simulink/
+targetdlg,toolbox/stateflow/stateflow/private/
+targetman,toolbox/stateflow/stateflow/private/
+taylortool,toolbox/symbolic/
+tbfillblanks,toolbox/signal/sptoolgui/private/
+tblpresrc,toolbox/simulink/simulink/private/
+tblread,toolbox/stats/
+tblwrite,toolbox/stats/
+tbroyfg,toolbox/optim/
+tcdf,toolbox/stats/
+tchop,toolbox/control/ctrlutil/
+tdfread,toolbox/stats/
+tdfthru,toolbox/control/ctrlutil/
+ted_the_editors,toolbox/stateflow/stateflow/private/
+termcross,toolbox/stats/private/
+test_points_in,toolbox/stateflow/stateflow/private/
+testing_stateflow_in_bat,toolbox/stateflow/stateflow/private/
+tf2latc,toolbox/signal/signal/
+tf2sos,toolbox/signal/signal/
+tf2zpk,toolbox/signal/signal/
+tfe,toolbox/signal/signal/
+tfestimate,toolbox/signal/signal/
+tffunc,toolbox/signal/sigdemos/
+tfm2ss,toolbox/robust/
+tform,toolbox/images/images/private/
+tformarray,toolbox/images/images/
+tformfwd,toolbox/images/images/
+tforminv,toolbox/images/images/
+th2arx,toolbox/ident/idobsolete/
+th2ff,toolbox/ident/idobsolete/
+th2ido,toolbox/ident/idobsolete/
+th2par,toolbox/ident/idobsolete/
+th2poly,toolbox/ident/idobsolete/
+th2ss,toolbox/ident/idobsolete/
+th2tf,toolbox/ident/idobsolete/
+th2zp,toolbox/ident/idobsolete/
+thc2thd,toolbox/ident/idobsolete/
+thd2thc,toolbox/ident/idobsolete/
+thermdat,toolbox/simulink/simdemos/simgeneral/
+thinit,toolbox/ident/idobsolete/
+this_is_an_sflink,toolbox/stateflow/stateflow/private/
+thss2th,toolbox/ident/idobsolete/
+tiedrank,toolbox/stats/
+timestwo,toolbox/simulink/blocks/
+timezparse,toolbox/signal/signal/
+timezplot,toolbox/signal/signal/private/
+timscale,toolbox/ident/idutils/private/
+timvec,toolbox/control/ctrlobsolete/
+tinv,toolbox/stats/
+titanium,toolbox/splines/
+title4ax,toolbox/signal/sigtools/
+tlc,toolbox/rtw/rtw/
+tlc2m,toolbox/rtw/rtw/
+tlc_c,toolbox/rtw/rtw/
+tlcsetup,toolbox/rtw/rtw/
+toast,toolbox/simulink/dee/
+toiletgui,toolbox/simulink/simdemos/simgeneral/
+toiletsfun,toolbox/simulink/simdemos/simgeneral/
+tokenize,toolbox/stateflow/stateflow/private/
+tokenize,toolbox/images/images/private/
+too_many_editors,toolbox/stateflow/stateflow/private/
+toolbox_path_cache,toolbox/local/
+topicshow,toolbox/control/ctrldemos/private/
+tornado_callback_handler,toolbox/rtw/rtw/
+tpaps,toolbox/splines/
+tpdf,toolbox/stats/
+transddg,toolbox/stateflow/stateflow/private/
+transdlg,toolbox/stateflow/stateflow/private/
+transf,toolbox/ident/idutils/
+translate_io_size_mismatch_error,toolbox/stateflow/stateflow/private/
+trdg,toolbox/optim/private/
+trdog,toolbox/optim/private/
+tree,toolbox/robust/
+treedisp,toolbox/stats/
+treefit,toolbox/stats/
+treeprune,toolbox/stats/
+treetest,toolbox/stats/
+treeval,toolbox/stats/
+treeview,toolbox/simulink/simulink/
+trf,toolbox/ident/idobsolete/
+tri2grid,toolbox/pde/
+triang,toolbox/signal/signal/
+tridieig,toolbox/signal/signal/private/
+tridisolve,toolbox/signal/signal/private/
+trim,toolbox/simulink/simulink/
+trimfcn,toolbox/simulink/simulink/
+trimmean,toolbox/stats/
+tripuls,toolbox/signal/signal/
+trnd,toolbox/stats/
+truesize,toolbox/images/images/
+trust,toolbox/optim/private/
+trustnleqn,toolbox/optim/private/
+truth_table_handle_man,toolbox/stateflow/stateflow/private/
+truth_table_man,toolbox/stateflow/stateflow/private/
+truth_tables_in,toolbox/stateflow/stateflow/private/
+try_indenting_file,toolbox/stateflow/coder/private/
+tsAlignSizes,toolbox/shared/timeseries/
+tsChkTime,toolbox/shared/timeseries/
+tsIsDateFormat,toolbox/shared/timeseries/
+tsParseInputs,toolbox/shared/timeseries/
+tsarrayFcn,toolbox/shared/timeseries/
+tsdateinterval,toolbox/shared/timeseries/
+tsinterp,toolbox/shared/timeseries/
+tspdem,toolbox/splines/
+tss,toolbox/robust/private/
+tssdata,toolbox/robust/private/
+tssorttime,toolbox/shared/timeseries/
+tstat,toolbox/stats/
+tsunitconv,toolbox/shared/timeseries/
+tt_check_specification,toolbox/stateflow/stateflow/private/
+ttest,toolbox/stats/
+ttest2,toolbox/stats/
+tukeywin,toolbox/signal/signal/
+tunable_param_dlg,toolbox/simulink/simulink/
+tunablevars2parameterobjects,toolbox/simulink/simulink/
+tutdemo,toolbox/optim/
+type2pp,toolbox/ident/idutils/
+tzero2,toolbox/control/ctrlobsolete/
+udd_property_help,toolbox/stateflow/stateflow/private/
+uddpvparse,toolbox/signal/sigtools/
+udecode,toolbox/signal/signal/
+uencode,toolbox/signal/signal/
+ufix,toolbox/simulink/fixedandfloat/
+ufrac,toolbox/simulink/fixedandfloat/
+uget_param,toolbox/simulink/simulink/
+uint,toolbox/simulink/fixedandfloat/
+uintlut,toolbox/images/images/
+unencrypted_charts_in,toolbox/stateflow/stateflow/private/
+unfixpar,toolbox/ident/idobsolete/
+unidcdf,toolbox/stats/
+unidinv,toolbox/stats/
+unidpdf,toolbox/stats/
+unidrnd,toolbox/stats/
+unidstat,toolbox/stats/
+unifcdf,toolbox/stats/
+unifinv,toolbox/stats/
+unifit,toolbox/stats/
+unifpdf,toolbox/stats/
+unifrnd,toolbox/stats/
+unifstat,toolbox/stats/
+uniqlabel,toolbox/signal/sptoolgui/private/
+uniqname,toolbox/control/ctrlguis/
+unique_name_for_list,toolbox/stateflow/stateflow/private/
+unitconv,toolbox/control/ctrlguis/
+unpack_machine_id,toolbox/stateflow/stateflow/private/
+unshiftdata,toolbox/signal/signal/
+unshsca,toolbox/optim/private/
+unstkc,toolbox/robust/
+unstkr,toolbox/robust/
+update_assert_sys,toolbox/simulink/blocks/
+update_eml_data,toolbox/stateflow/stateflow/private/
+update_exported_fcn_info,toolbox/stateflow/stateflow/private/
+update_fvtool,toolbox/signal/sptoolgui/private/
+update_library_link_charts_for_rtw,toolbox/stateflow/stateflow/private/
+update_model_reference_targets,toolbox/simulink/simulink/private/
+update_params_on_instances,toolbox/stateflow/stateflow/private/
+update_rtb,toolbox/simulink/blocks/
+update_statusbar,toolbox/signal/sigtools/
+update_toolbox_cache,toolbox/local/
+update_truth_table_for_fcn,toolbox/stateflow/stateflow/private/
+update_truth_tables,toolbox/stateflow/stateflow/private/
+update_truthtable_data,toolbox/stateflow/stateflow/private/
+updatewarn,toolbox/control/ctrlutil/
+updownsample,toolbox/signal/signal/private/
+upfind,toolbox/stateflow/stateflow/private/
+upfirdn,toolbox/signal/signal/
+upsample,toolbox/signal/signal/
+upvpl2xyz,toolbox/images/images/private/
+userpath,toolbox/local/
+uset_param,toolbox/simulink/simulink/
+utAssignParams,toolbox/sloptim/sloptguis/
+utEvalModelVar,toolbox/sloptim/sloptguis/
+utEvalParams,toolbox/sloptim/sloptguis/
+utFindLog,toolbox/sloptim/sloptim/
+utFindParams,toolbox/sloptim/sloptguis/
+utFindProject,toolbox/sloptim/sloptguis/
+utGetLastError,toolbox/sloptim/sloptguis/
+utGetLogData,toolbox/sloptim/sloptim/
+utGetSimInterval,toolbox/sloptim/sloptguis/
+utLoadProject,toolbox/sloptim/sloptguis/
+utSROCopyFcn,toolbox/sloptim/sloptguis/
+utgetaxes,toolbox/shared/timeseries/
+uvl2xyz,toolbox/images/images/private/
+v2sort,toolbox/shared/optimlib/
+validarg,toolbox/signal/sptoolgui/private/
+valve,toolbox/control/ctrldemos/private/
+vco,toolbox/signal/signal/
+vdlmintm,toolbox/simulink/blocks/
+vdpdemo,toolbox/simulink/simdemos/simgeneral/
+vdpm,toolbox/simulink/blocks/
+version,toolbox/local/
+vhdlplugin,toolbox/signal/sigtools/
+view_mdlrefs,toolbox/simulink/simulink/
+viewimportfcn,toolbox/control/ctrlguis/
+viewlinkdata,toolbox/simulink/simulink/
+vlimintm,toolbox/simulink/blocks/
+vpa,toolbox/symbolic/
+vratio,toolbox/signal/signal/
+vrsys,toolbox/robust/
+vset,toolbox/stateflow/stateflow/private/
+vsfunc,toolbox/simulink/blocks/
+waitbar,toolbox/stateflow/stateflow/private/
+walk,toolbox/stateflow/stateflow/private/
+warp,toolbox/images/images/
+watchsigsdlg,toolbox/simulink/simulink/
+watershed,toolbox/images/images/
+watertankdat,toolbox/slcontrol/slctrldemos/
+waveformdemo,toolbox/signal/sigdemos/
+wblcdf,toolbox/stats/
+wblfit,toolbox/stats/
+wblinv,toolbox/stats/
+wbllike,toolbox/stats/
+wblpdf,toolbox/stats/
+wblplot,toolbox/stats/
+wblrnd,toolbox/stats/
+wblstat,toolbox/stats/
+wbound,toolbox/pde/
+weibcdf,toolbox/stats/
+weibfit,toolbox/stats/
+weibinv,toolbox/stats/
+weiblike,toolbox/stats/
+weibpdf,toolbox/stats/
+weibplot,toolbox/stats/
+weibrnd,toolbox/stats/
+weibstat,toolbox/stats/
+welch,toolbox/signal/signal/private/
+wgeom,toolbox/pde/
+wgtnormfit,toolbox/stats/
+wgtnormfit2,toolbox/stats/
+wheel,toolbox/robust/
+whitepoint,toolbox/images/images/
+wiener2,toolbox/images/images/
+window,toolbox/signal/signal/
+windowstrs2fcnnames,toolbox/signal/sigtools/private/
+windtrandemo,toolbox/signal/sigdemos/
+winintegrate,toolbox/signal/sigdemos/private/
+winorderfirst,toolbox/signal/sigdemos/private/
+wintool,toolbox/signal/sigtools/
+wintool_help,toolbox/signal/sigtools/
+wire,toolbox/control/ctrldemos/private/
+wishrnd,toolbox/stats/
+workspaceddg,toolbox/simulink/simulink/
+workspaceddg_cb,toolbox/simulink/simulink/
+ws2matq,toolbox/pde/private/
+wvtool,toolbox/signal/sigtools/
+x0est,toolbox/ident/idutils/private/
+x0est_f,toolbox/ident/idutils/
+x2fx,toolbox/stats/
+xbarplot,toolbox/stats/
+xcorr,toolbox/signal/signal/
+xcorr2,toolbox/signal/signal/
+xcov,toolbox/signal/signal/
+xlabel4ax,toolbox/signal/sigtools/
+xpbanplt,toolbox/optim/
+xplot,toolbox/optim/private/
+xtrack,toolbox/optim/private/
+xyl2xyz,toolbox/images/images/private/
+xyz2double,toolbox/images/images/
+xyz2lab,toolbox/images/images/private/
+xyz2uint16,toolbox/images/images/
+xyz2upvpl,toolbox/images/images/private/
+xyz2uvl,toolbox/images/images/private/
+xyz2xyl,toolbox/images/images/private/
+ycbcr2rgb,toolbox/images/images/
+ydataspan,toolbox/control/ctrlguis/
+ylabel4ax,toolbox/signal/sigtools/
+ylwk,toolbox/robust/
+youla,toolbox/robust/
+yulewalk,toolbox/signal/signal/
+zerophase,toolbox/signal/signal/
+zeta,toolbox/symbolic/
+zfcheck,toolbox/ident/idutils/
+zgrid,toolbox/control/control/
+zoom_cbs,toolbox/signal/sigtools/private/
+zp,toolbox/ident/idobsolete/
+zp2sos,toolbox/signal/signal/
+zpchart,toolbox/control/ctrlguis/
+zpform,toolbox/ident/idobsolete/
+zplane,toolbox/signal/signal/
+zplaneplot,toolbox/signal/signal/
+zpplot,toolbox/ident/idobsolete/
+zscore,toolbox/stats/
+ztest,toolbox/stats/
index d5f0fa9..5e3da59 100644 (file)
@@ -1,26 +1,26 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-    * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-    * Copyright (C) 2002-2004 - INRIA - Vincent COUVERT
-    *
- * Copyright (C) 2012 - 2016 - Scilab Enterprises
- *
- * This file is hereby licensed under the terms of the GNU GPL v2.0,
- * pursuant to article 5.3.4 of the CeCILL v.2.1.
- * This file was originally licensed under the terms of the CeCILL v2.1,
- * and continues to be available under such terms.
- * For more information, see the COPYING file which you should have received
- * along with this program.
-    *
-    -->
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2002-2004 - INRIA - Vincent COUVERT
+*
+* Copyright (C) 2012 - 2016 - Scilab Enterprises
+*
+* This file is hereby licensed under the terms of the GNU GPL v2.0,
+* pursuant to article 5.3.4 of the CeCILL v.2.1.
+* This file was originally licensed under the terms of the CeCILL v2.1,
+* and continues to be available under such terms.
+* For more information, see the COPYING file which you should have received
+* along with this program.
+*
+-->
 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="Funcall">
     <refnamediv>
         <refname>Funcall</refname>
-        <refpurpose>Create a tree representing a function call</refpurpose>
+        <refpurpose>Create the converted pseudo-code representing a function call</refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>Syntax</title>
-        <synopsis>fc=Funcall(name,lhsnb,rhslist,lhslist)</synopsis>
+        <synopsis>fc = Funcall(name, lhsnb, rhslist, lhslist)</synopsis>
     </refsynopsisdiv>
     <refsection>
         <title>Arguments</title>
@@ -34,7 +34,7 @@
             <varlistentry>
                 <term>lhsnb</term>
                 <listitem>
-                    <para>number of outputs (constant)</para>
+                    <para>number of outputs of the function call.</para>
                 </listitem>
             </varlistentry>
             <varlistentry>
@@ -46,7 +46,7 @@
             <varlistentry>
                 <term>lhslist</term>
                 <listitem>
-                    <para>list of outputs (list of "M2SCI tlists")</para>
+                    <para>list of outputs (list of "M2SCI tlists"). Default value: list().</para>
                 </listitem>
             </varlistentry>
             <varlistentry>
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>History</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.1.1</revnumber>
+                <revdescription>
+                    <varname>lhslist</varname> is now optional: default = list().
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 358b053..d1abe23 100644 (file)
         <title>Arguments</title>
         <variablelist>
             <varlistentry>
+                <term>op</term>
+                <listitem>
+                    Tlist of type "operation", with fields <literal>operator</literal>,
+                                       <literal>operands</literal>, and <literal>out</literal>.
+                    <para/>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
                 <term>operator</term>
                 <listitem>
                     operator symbol (character string). Supported codes are:
                 <listitem>
                     List of TLists representing the operation result(s) (most often
                     unique). Each result is represented as a M2SCI tlist.
-                    <para/>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>op</term>
-                <listitem>
-                    Tlist of type "operation"
+                    Default value: list().
                     <para/>
                 </listitem>
             </varlistentry>
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>History</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.1.1</revnumber>
+                <revdescription>
+                    <varname>out</varname> is now optional: default = list().
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 776042d..c74804f 100644 (file)
@@ -1,26 +1,29 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-    * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-    * Copyright (C) 2002-2004 - INRIA - Vincent COUVERT
-    *
- * Copyright (C) 2012 - 2016 - Scilab Enterprises
- *
- * This file is hereby licensed under the terms of the GNU GPL v2.0,
- * pursuant to article 5.3.4 of the CeCILL v.2.1.
- * This file was originally licensed under the terms of the CeCILL v2.1,
- * and continues to be available under such terms.
- * For more information, see the COPYING file which you should have received
- * along with this program.
-    *
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2002-2004 - INRIA - Vincent COUVERT
+* Copyright (C) 2012 - 2016 - Scilab Enterprises
+* Copyright (C) 2020 - Samuel GOUGEON
+*
+* This file is hereby licensed under the terms of the GNU GPL v2.0,
+* pursuant to article 5.3.4 of the CeCILL v.2.1.
+* This file was originally licensed under the terms of the CeCILL v2.1,
+* and continues to be available under such terms.
+* For more information, see the COPYING file which you should have received
+* along with this program.
+*
     -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="Type">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+          xml:lang="en" xml:id="Type">
     <refnamediv>
         <refname>Type</refname>
         <refpurpose>Create a tree containing type inference data</refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>Syntax</title>
-        <synopsis>tp=Type(vtype,property)</synopsis>
+        <synopsis>tp = Type(vtype, property)</synopsis>
     </refsynopsisdiv>
     <refsection>
         <title>Arguments</title>
             <varlistentry>
                 <term>vtype</term>
                 <listitem>
-                    <para>data type (see m2scideclare)</para>
+                    <para>data type</para>
                 </listitem>
             </varlistentry>
             <varlistentry>
                 <term>property</term>
                 <listitem>
-                    <para>property of data (see m2scideclare)</para>
+                    <para>property of data</para>
                 </listitem>
             </varlistentry>
             <varlistentry>
             This function create a <literal>tlist</literal> representing type inference data when using M2SCI.
             All input parameters values are verified to be compatible with "M2SCI tlists". (Unknown=-1 in M2SCI)
         </para>
+        <para>
+            Available <varname>vtype</varname> and <varname>property</varname> values are listed below:
+        </para>
+        <para>
+            <table>
+                <tr>
+                  <th>vtype values</th> <th>Scilab type</th> <th>property values</th>
+                </tr>
+                <tr><td>Double</td>  <td>1</td>     <td>Real, Complex, Unknown</td> </tr>
+                <tr><td>Boolean</td><td>4</td>      <td>Boolean</td>                </tr>
+                <tr><td> </td>      <td>6</td>      <td>Sparse</td>                 </tr>
+                <tr><td> </td>      <td> </td>      <td>Unknown</td>                </tr>
+                <tr><td>Sparse</td>  <td>5</td>     <td>Real, Complex, Unknown</td> </tr>
+                <tr><td>Int</td>     <td>8</td>     <td>'int8', 'int16', 'int32', 'int64', 'uint8',
+                                                        'uint16', 'uint32', 'uint64', Unknown</td>
+                </tr>
+                <tr><td>Handle</td>  <td>9</td>     <td>'Figure', 'Axes', Unknown</td></tr>
+                <tr><td>String</td>  <td>10</td>    <td>String, Char, Unknown</td> </tr>
+                <tr><td>Polynomial</td><td>2</td>  <td>Real, Complex, Unknown</td>  </tr>
+                <tr><td>Function</td><td>13</td>    <td>Macro</td>      </tr>
+                <tr><td> </td>       <td>130</td>   <td>Builtin</td>    </tr>
+                <tr><td> </td>       <td> </td>     <td>Unknown</td>    </tr>
+                <tr><td>Struct</td>  <td>16</td> <td>(unused)</td>      </tr>
+                <tr><td>Cell</td>    <td>17</td> <td>(unused)</td>      </tr>
+                <tr><td>Unknown</td> <td> </td>   <td>Unknown</td>      </tr>
+            </table>
+        </para>
+        <para>
+            <constant>?</constant> is equivalent to the <constant>Unknown</constant> value.
+            <constant>Boolean</constant>,
+            <constant>Int</constant>, <constant>Double</constant>, <constant>Sparse</constant>,
+            <constant>Real</constant>, <constant>Complex</constant>, <constant>Handle</constant>,
+            <constant>String</constant>, <constant>Char</constant>, <constant>Polynomial</constant>,
+            <constant>Function</constant>, <constant>Macro</constant>, <constant>Builtin</constant>,
+            <constant>Struct</constant>, <constant>Cell</constant>, and <constant>Unknown</constant>
+            are predefined m2sci constants.
+        </para>
+    </refsection>
+    <refsection role="see also">
+        <title>Examples</title>
+        <programlisting role="no-scilab-exec">
+Type(Double, Complex)
+Type(Sparse, Unknown)
+Type(Int, 'uint32')
+Type(Handle, 'Axes')
+Type(Boolean, Sparse)
+Type(String, Char)
+        </programlisting>
     </refsection>
     <refsection role="see also">
         <title>See also</title>
         <simplelist type="inline">
             <member>
+                <link linkend="m2scideclare">m2scideclare</link>
+            </member>
+            <member>
                 <link linkend="Funcall">Funcall</link>
             </member>
             <member>
             <member>
                 <link linkend="Equal">Equal</link>
             </member>
-            <member>
-                <link linkend="m2scideclare">m2scideclare</link>
-            </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>History</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.1.1</revnumber>
+                <revdescription>
+                    <itemizedlist>
+                        <listitem>
+                            The <literal>Function</literal> type is now generic: Its property
+                            can now be <literal>Builtin</literal> or <literal>Macro</literal>,
+                            in addition to <literal>Unknown</literal>.
+                            <literal>Builtin</literal> as a type is removed.
+                        </listitem>
+                        <listitem>
+                            <literal>Polynomial</literal> type added, with property
+                            <literal>Real</literal>, <literal>Complex</literal>, or <literal>Unknown</literal>.
+                        </listitem>
+                        <listitem>
+                            <literal>String</literal> type: New property values:
+                            <literal>String</literal> and <literal>Char</literal>, in addition to
+                            <literal>Unknown</literal>.
+                        </listitem>
+                        <listitem>
+                            <literal>Handle</literal> type: <literal>'Figure'</literal> and
+                            <literal>'Axes'</literal> property values added, in addition to
+                            <literal>Unknown</literal>.
+                        </listitem>
+                        <listitem>
+                            <literal>Int</literal> integer type: <literal>'int8'</literal>,
+                            <literal>'int16'</literal>, <literal>'int32'</literal>,
+                            <literal>'int64'</literal>, <literal>'uint8'</literal>,
+                            <literal>'uint16'</literal>, <literal>'uint32'</literal>,
+                            <literal>'uint64'</literal> property values added.
+                        </listitem>
+                        <listitem>
+                            <literal>Boolean</literal> type: default property is now
+                            <literal>Boolean</literal>, instead of <literal>Real</literal>.
+                            <literal>Sparse</literal> property added.
+                        </listitem>
+                        <listitem>
+                            <literal>Void</literal> type removed (never ever used).
+                        </listitem>
+                    </itemizedlist>
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 95b6f37..a878bd5 100644 (file)
         <refname>m2scideclare</refname>
         <refpurpose>Giving tips to help M2SCI...</refpurpose>
     </refnamediv>
+    <refsynopsisdiv>
+        <title>Syntax</title>
+        <synopsis>
+            %m2scideclare variable_name|sizes|data_type|property
+        </synopsis>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Arguments</title>
+        <variablelist>
+            <varlistentry>
+                <term>variable_name</term>
+                <listitem>
+                    <para>
+                        Name of the declared variable.
+                        It can be a Struct field (e.g. <literal>x(1,2).name</literal>)
+                        or describe the contents of a Cell using syntax
+                        <literal>x(1,2).entries</literal>.
+                        <note>
+                            NOTE that for Cells and Structs,
+                            <literal>*</literal> can be used as an index (see examples below).
+                        </note>
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>sizes</term>
+                <listitem>
+                    <para>
+                        Sizes of the variable declared, separated by blanks. Any unknown size
+                        can be specified with <literal>?</literal>.
+                        <warning>
+                            NOTE that a Matlab character string as defined between single quotes
+                            is considered as a vector of characters. Therefore, for instance the
+                            size of 'string' is  <literal>|1 6|</literal>.
+                        </warning>
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>data_type &amp; property</term>
+                <listitem>
+                    <para>
+                        data type and property (sub-type) of the variable. Possible values are
+                        documented in the <link linkend="Type">Type</link> page.
+                    </para>
+                    <note>
+                        Property values that are not defined as a constant in m2ci
+                        -- like 'int8' or 'Axes' -- must be specified without quotes
+                        in the m2scideclare statement.
+                    </note>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
     <refsection>
         <title>Description</title>
         <para>
             versions and is now obsolete).
         </para>
         <para>
-            The syntax of this command is:
-        </para>
-        <para>
-            <literal>%m2scideclare variable_name|dimensions|data_type|property</literal>
-        </para>
-        <para>
-            with :
-        </para>
-          <itemizedlist>
-            <listitem>
-              <para>
-                <emphasis role="bold">variable_name</emphasis>: name of the variable declared.
-                It can be a Struct field (e.g. <literal>x(1,2).name</literal>)
-                or describe the contents of a Cell using syntax
-                <literal>x(1,2).entries</literal>.
-                <note>
-                    NOTE that for Cells and Structs,
-                    <literal>*</literal> can be used as an index (see examples below).
-                </note>
-              </para>
-            </listitem>
-            <listitem>
-              <para>
-                <emphasis role="bold">dimensions</emphasis>: dimensions of the variable declared
-                separated by blanks, if a dimension is unknown, replace it by <literal>?</literal>.
-                <warning>
-                    NOTE that String dimensions must be similar to Matlab ones
-                    e.g. <literal>1 6</literal> for character string 'string'.
-                </warning>
-              </para>
-            </listitem>
-            <listitem>.
-                <informaltable border="0">
-                <tr>
-                    <td valign="top">
-                      <para>
-                        <emphasis role="bold">data_type</emphasis>:
-                        data type of the variable which can be:
-                      </para>
-                      <informaltable border="1">
-                        <tr>
-                          <th>m2scideclare data type</th>
-                          <th>Scilab "equivalent" type</th>
-                        </tr>
-                        <tr><td>Double</td>  <td>1</td>         </tr>
-                        <tr><td>Boolean</td> <td>4</td>         </tr>
-                        <tr><td>Sparse</td>  <td>5</td>         </tr>
-                        <tr><td>Int</td>     <td>8</td>         </tr>
-                        <tr><td>Handle</td>  <td>9</td>         </tr>
-                        <tr><td>String</td>  <td>10</td>        </tr>
-                        <tr><td>Struct</td>  <td>16</td>        </tr>
-                        <tr><td>Cell</td>    <td>17</td>        </tr>
-                        <tr><td>Function</td><td>13 (macro)</td></tr>
-                        <tr><td>Builtin</td> <td>130</td>       </tr>
-                        <tr><td>Void</td>    <td>0 (undefined)</td></tr>
-                        <tr><td>?</td>       <td>Unknown type</td></tr>
-                      </informaltable>
-                    </td>
-                    <td valign="top">
-                      <para>
-                        <emphasis role="bold">property</emphasis>:
-                        property of the variable, which can be:
-                      </para>
-                      <informaltable border="1">
-                        <tr><th>m2scideclare property</th>  <th>Scilab "equivalent"</th></tr>
-                        <tr><td>Real</td>                   <td>Real data</td>          </tr>
-                        <tr><td>Complex</td>                <td>Complex data</td>       </tr>
-                        <tr><td>?</td>                      <td>Unknown property</td>   </tr>
-                      </informaltable>
-                      <para>
-                        This field is ignored for following datatypes: <literal>Cell</literal>,
-                        <literal>Struct</literal>, <literal>String</literal> and <literal>Boolean</literal>.
-                      </para>
-                    </td>
-                </tr>
-                </informaltable>
-            </listitem>
-          </itemizedlist>
-        <para>
-            All data given by <literal>m2scideclare</literal> are compared with infered data,
-            in case of conflict, infered data are kept and a warning message is displayed.
+            All data given by <literal>m2scideclare</literal> are compared with infered data.
+            In case of conflict, inferred data are kept and a warning message is displayed.
             If you are sure about your data, report a bug.
         </para>
     </refsection>
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>History</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.1.1</revnumber>
+                <revdescription>
+                    <literal>m2scideclare</literal> supports all new defined vtypes and properties
+                    <literal>Polynomial</literal>,
+                    <literal>Function/Macro</literal>, <literal>Function/Builtin</literal>,
+                    <literal>String/Char</literal>,
+                    <literal>Handle/'Figure'</literal>, <literal>Handle/'Axes'</literal>,
+                    <literal>Int/'int8'</literal>,  <literal>Int/'int16'</literal>,
+                    <literal>Int/'int32'</literal>, <literal>Int/'int64'</literal>,
+                    <literal>Int/'uint8'</literal>, <literal>Int/'uint16'</literal>,
+                    <literal>Int/'uint32'</literal>, <literal>Int/'uint64'</literal>,
+                    <literal>Sparse/Boolean</literal>.
+                    <literal>Sparse</literal> type is now actually supported.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 99a20bd..f609ea3 100644 (file)
@@ -190,6 +190,9 @@ mfile2sci()
         <programlisting role="example"><![CDATA[
 // Create a simple M-file
 rot90m = ["function B = rot90(A,k)"
+    ""
+    "%m2scideclare k|1 1|Double|Real"
+    ""
     "if ~isa(A, ''double'')"
     "    error(''rot90: Wrong type for input argument #1: Real or complex matrix expected.'');"
     "    return"
@@ -232,7 +235,7 @@ exec(TMPDIR+'/rot90.sci')
 // Call & use it
 m = rand(4,2);
 rot90(m,1)
- ]]></programlisting>
+    ]]></programlisting>
     </refsection>
     <refsection role="see also">
         <title>See also</title>
index 88aa39f..730a299 100644 (file)
  * along with this program.
     *
     -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="Funcall">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+          xml:lang="fr" xml:id="Funcall">
     <refnamediv>
         <refname>Funcall</refname>
-        <refpurpose>Créé un arbre représentant l'appel à une fonction</refpurpose>
+        <refpurpose>Crée le pseudo-code converti représentant l'appel à une fonction</refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>Séquence d'appel</title>
-        <synopsis>fc=Funcall(name,lhsnb,rhslist,lhslist)</synopsis>
+        <synopsis>fc = Funcall(name, lhsnb, rhslist, lhslist)</synopsis>
     </refsynopsisdiv>
     <refsection>
         <title>Paramètres</title>
             <varlistentry>
                 <term>lhsnb</term>
                 <listitem>
-                    <para>nombre de paramètres de sortie (constante)</para>
+                    <para>nombre d'arguments de sortie de l'appel à la fonction.</para>
                 </listitem>
             </varlistentry>
             <varlistentry>
                 <term>rhslist</term>
                 <listitem>
-                    <para>liste des paramètres d'entrée (liste de "tlists M2SCI")</para>
+                    <para>liste des arguments d'entrée (liste de "tlists M2SCI")</para>
                 </listitem>
             </varlistentry>
             <varlistentry>
                 <term>lhslist</term>
                 <listitem>
-                    <para>liste des paramètres de sortie (liste de "tlists M2SCI")</para>
+                    <para>liste des arguments de sortie (liste de "tlists M2SCI"). Par défaut : list().
+                    </para>
                 </listitem>
             </varlistentry>
             <varlistentry>
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>Historique</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.1.1</revnumber>
+                <revdescription>
+                    <varname>lhslist</varname> devient facultative et vaut list() par défaut.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 00c33bb..4787fee 100644 (file)
         <title>Paramètres</title>
         <variablelist>
             <varlistentry>
+                <term>op</term>
+                <listitem>
+                    <para>
+                        tlist de type "operation", ayant les champs
+                        <literal>operator</literal>, <literal>operands</literal>,
+                        et <literal>out</literal>.
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
                 <term>operator</term>
                 <listitem>
                     <para>
                     <para>
                         liste des paramètres de sortie de l'opération (le plus souvent
                         unique), chacun étant représenté par une tlist M2SCI.
+                        Valeur par défaut : list().
                     </para>
                 </listitem>
             </varlistentry>
-            <varlistentry>
-                <term>op</term>
-                <listitem>
-                    <para>une tlist M2SCI de type "operation"</para>
-                </listitem>
-            </varlistentry>
         </variablelist>
     </refsection>
     <refsection>
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>Historique</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.1.1</revnumber>
+                <revdescription>
+                    <varname>out</varname> devient facultative. Valeur par défaut : list().
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 7f1b4ba..ffe3d5d 100644 (file)
@@ -1,26 +1,29 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-    * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-    * Copyright (C) 2002-2004 - INRIA - Vincent COUVERT
-    *
- * Copyright (C) 2012 - 2016 - Scilab Enterprises
- *
- * This file is hereby licensed under the terms of the GNU GPL v2.0,
- * pursuant to article 5.3.4 of the CeCILL v.2.1.
- * This file was originally licensed under the terms of the CeCILL v2.1,
- * and continues to be available under such terms.
- * For more information, see the COPYING file which you should have received
- * along with this program.
-    *
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2002-2004 - INRIA - Vincent COUVERT
+* Copyright (C) 2012 - 2016 - Scilab Enterprises
+* Copyright (C) 2020 - Samuel GOUGEON
+*
+* This file is hereby licensed under the terms of the GNU GPL v2.0,
+* pursuant to article 5.3.4 of the CeCILL v.2.1.
+* This file was originally licensed under the terms of the CeCILL v2.1,
+* and continues to be available under such terms.
+* For more information, see the COPYING file which you should have received
+* along with this program.
+*
     -->
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="Type">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+          xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+          xml:lang="fr" xml:id="Type">
     <refnamediv>
         <refname>Type</refname>
-        <refpurpose>Créé un arbre contenant les données d'inférence de type</refpurpose>
+        <refpurpose>Crée un arbre contenant les données d'inférence de type</refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>Séquence d'appel</title>
-        <synopsis>tp=Type(vtype,property)</synopsis>
+        <synopsis>tp = Type(vtype, property)</synopsis>
     </refsynopsisdiv>
     <refsection>
         <title>Paramètres</title>
             <varlistentry>
                 <term>vtype</term>
                 <listitem>
-                    <para>type de donnée (voir l'aide de m2scideclare)</para>
+                    <para>type principal de la donnée.</para>
                 </listitem>
             </varlistentry>
             <varlistentry>
                 <term>property</term>
                 <listitem>
-                    <para>propriété de la donnée (voir l'aide de m2scideclare)</para>
+                    <para>propriété (sous-type) de la donnée.</para>
                 </listitem>
             </varlistentry>
             <varlistentry>
             on utilise M2SCI. Tous les paramètres d'entrée sont vérifiés pour être compatible avec
             les "tlists M2SCI". (Unknown=-1 dans M2SCI)
         </para>
+        <para>
+            Les valeurs possibles de <varname>vtype</varname> et de <varname>property</varname>
+            sont listées ci-dessous :
+        </para>
+        <para>
+              <table>
+                <tr>
+                  <th>vtype</th> <th>type Scilab</th> <th>property</th>
+                </tr>
+                <tr><td>Double</td>  <td>1</td>     <td>Real, Complex, Unknown</td> </tr>
+                <tr><td>Boolean</td><td>4</td>      <td>Boolean</td>                </tr>
+                <tr><td> </td>      <td>6</td>      <td>Sparse</td>                 </tr>
+                <tr><td> </td>      <td> </td>      <td>Unknown</td>                </tr>
+                <tr><td>Sparse</td>  <td>5</td>     <td>Real, Complex, Unknown</td> </tr>
+                <tr><td>Int</td>     <td>8</td>     <td>'int8', 'int16', 'int32', 'int64',
+                                           'uint8', 'uint16', 'uint32', 'uint64', Unknown</td>
+                </tr>
+                <tr><td>Handle</td>  <td>9</td>     <td>'Figure', 'Axes', Unknown</td></tr>
+                <tr><td>String</td>  <td>10</td>    <td>String, Char, Unknown</td> </tr>
+                <tr><td>Polynomial</td><td>2</td>  <td>Real, Complex, Unknown</td>  </tr>
+                <tr><td>Function</td><td>13</td>    <td>Macro</td>      </tr>
+                <tr><td> </td>       <td>130</td>   <td>Builtin</td>    </tr>
+                <tr><td> </td>       <td> </td>     <td>Unknown</td>    </tr>
+                <tr><td>Struct</td>  <td>16</td> <td>(unused)</td>      </tr>
+                <tr><td>Cell</td>    <td>17</td> <td>(unused)</td>      </tr>
+                <tr><td>Unknown</td> <td> </td>   <td>Unknown</td>      </tr>
+              </table>
+        </para>
+        <para>
+            <constant>?</constant> est équivalent à la valeur <constant>Unknown</constant>.
+            <constant>Boolean</constant>,
+            <constant>Int</constant>, <constant>Double</constant>, <constant>Sparse</constant>,
+            <constant>Real</constant>, <constant>Complex</constant>, <constant>Handle</constant>,
+            <constant>String</constant>, <constant>Char</constant>, <constant>Polynomial</constant>,
+            <constant>Function</constant>, <constant>Macro</constant>, <constant>Builtin</constant>,
+            <constant>Struct</constant>, <constant>Cell</constant>, et <constant>Unknown</constant>
+            sont des constantes prédéfinies dans m2sci.
+        </para>
+    </refsection>
+    <refsection role="see also">
+        <title>Exemples</title>
+        <programlisting role="no-scilab-exec">
+Type(Double, Complex)
+Type(Sparse, Unknown)
+Type(Int, 'uint32')
+Type(Handle, 'Axes')
+Type(Boolean, Sparse)
+Type(String, Char)
+        </programlisting>
     </refsection>
     <refsection role="see also">
         <title>Voir aussi</title>
         <simplelist type="inline">
             <member>
+                <link linkend="m2scideclare">m2scideclare</link>
+            </member>
+            <member>
                 <link linkend="Funcall">Funcall</link>
             </member>
             <member>
             <member>
                 <link linkend="Equal">Equal</link>
             </member>
-            <member>
-                <link linkend="m2scideclare">m2scideclare</link>
-            </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>Historique</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.1.1</revnumber>
+                <revdescription>
+                    <itemizedlist>
+                        <listitem>
+                            Le vtype <literal>Function</literal> est désormais générique :
+                            la propriété peut désormais avoir la valeur
+                            <literal>Builtin</literal> ou <literal>Macro</literal>,
+                            au lieu de <literal>Unknown</literal>.
+                            <literal>Builtin</literal> est supprimé en tant que vtype.
+                        </listitem>
+                        <listitem>
+                            vtype <literal>Polynomial</literal> ajouté. Les valeurs de la
+                            propriété peuvent être
+                            <literal>Real</literal>, <literal>Complex</literal>, ou <literal>Unknown</literal>.
+                        </listitem>
+                        <listitem>
+                            vtype <literal>String</literal> : valeurs de propriété ajoutées :
+                            <literal>String</literal> et <literal>Char</literal>, au lieu de
+                            <literal>Unknown</literal>.
+                        </listitem>
+                        <listitem>
+                            vtype <literal>Handle</literal> : valeurs de propriété ajoutées :
+                            <literal>'Figure'</literal> et <literal>'Axes'</literal>, au lieu de
+                            <literal>Unknown</literal>.
+                        </listitem>
+                        <listitem>
+                            vtype <literal>Int</literal> : <literal>'int8'</literal>,
+                            <literal>'int16'</literal>, <literal>'int32'</literal>,
+                            <literal>'int64'</literal>, <literal>'uint8'</literal>,
+                            <literal>'uint16'</literal>, <literal>'uint32'</literal>,
+                            <literal>'uint64'</literal> ajoutées comme valeurs de propriété
+                            possibles.
+                        </listitem>
+                        <listitem>
+                            vtype <literal>Boolean</literal> : la valeur par défaut de la propriété
+                            est désormais
+                            <literal>Boolean</literal>, au lieu de <literal>Real</literal>.
+                            Valeur de propriété <literal>Sparse</literal> ajoutée.
+                        </listitem>
+                        <listitem>
+                            vtype <literal>Void</literal> supprimé (jamais utilisé dans m2sci).
+                        </listitem>
+                    </itemizedlist>
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index f9c8d8d..d743afd 100644 (file)
         <refname>m2scideclare</refname>
         <refpurpose>Donner des indices pour aider M2SCI...</refpurpose>
     </refnamediv>
+    <refsynopsisdiv>
+        <title>Syntaxe</title>
+        <synopsis>
+            %m2scideclare variable_name|sizes|data_type|property
+        </synopsis>
+    </refsynopsisdiv>
+    <refsection>
+        <title>Arguments</title>
+        <variablelist>
+            <varlistentry>
+                <term>variable_name</term>
+                <listitem>
+                    <para>
+                        nom de la variable déclarée.
+                        Ce nom peut être un champ de Struct (e.g. <literal>x(1,2).nom</literal>)
+                        ou décrire le contenu d'une Cell en utilisant la syntaxe
+                        <literal>x(1,2).entries</literal>.
+                        <note>
+                            NOTEZ que pour les Cells et les
+                            Structs <literal>*</literal> peut être utilisé comme index.
+                        </note>
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>sizes</term>
+                <listitem>
+                    <para>
+                        Tailles de la variable déclarée, séparées par des espaces.
+                        Si une taille est inconnue, la remplacer par <literal>?</literal>.
+                        <warning>
+                            NOTER qu'une chaînes de caractères Matlab (définies entre apostrophes)
+                            est considérée comme un vecteur de caractères adressables un à un.
+                            En conséquence, la taille de 'string' est <literal>|1 6|</literal>
+                            (non <literal>|1 1|</literal>).
+                        </warning>
+                    </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>data_type &amp; property</term>
+                <listitem>
+                    <para>
+                        Type et sous-type de la variable. Les valeurs possibles sont présentées
+                        dans la page décrivant <link linkend="Type">Type</link>.
+                    </para>
+                    <note>
+                        Les valeurs de propriétés qui ne sont pas prédéfinies comme constantes
+                        dans m2ci -- telles que 'int8' ou 'Axes' -- doivent être  spécifiées
+                        sans apostrophes ni guillements dans la ligne %m2scideclare.
+                    </note>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
     <refsection>
         <title>Description</title>
         <para>
-            La principale difficulté de M2SCI (<literal>mfile2sci</literal>) est de trouver
-            ce que sont les variables : dimensions, type...
+            La conversion des expressions du langage Matlab en équivalent Scilab dépend notamment
+            du type et de la taille des objets impliqués.
+            Plus le convertisseur M2SCI (<literal>mfile2sci</literal>) connait ces informations,
+            plus précise et directe sera la conversion.
         </para>
         <para>
-            Pour aider cet outil, il suffit d'ajouter des commentaires commencant par
-            <literal>%m2scideclare</literal> dans le fichier Matlab à convertir,
-            (<literal>%m2sciassume</literal> était utilisée dans les versions précédentes
-            de Scilab mais est maintenant obsolète).
+            Dés lors que les données originelles sont littéralement définies dans le
+            code Matlab à convertir -- comme dans l'instruction <literal>a = [1 3 5]</literal>
+            indiquant directement le vtype==Double, la property=Real, et la taille
+            <literal>|1 3|</literal>, M2SCI sait alors tout
+            ce qu'il faut savoir à propos de <literal>a</literal> pour convertir les expressions
+            ultérieures dans lesquelles <literal>a</literal> intervient.
         </para>
         <para>
-            La syntaxe de cette commande est :
+            Cependant, l'information manque fréquemment. En particulier, en tête des
+            macros, le type et les dimensions des arguments d'entrée ne sont pas donnés (pouvoir
+            s'en abstenir est d'ailleurs un des avantages/soulagements des langages évolués tels
+            que Matlab ou Scilab).
+            Des lignes d'instructions <literal>%m2scideclare</literal> peuvent être alors ajoutées
+            (en commentaire Matlab, donc) pour donner ces informations au convertisseur, avant de
+            lancer celui-ci.
         </para>
         <para>
-            <literal>%m2scideclare nom_de_variable|dimensions|type_de_données|propriété</literal>
-        </para>
-        <para>
-            avec :
-        </para>
-          <itemizedlist>
-            <listitem>
-              <para>
-                <emphasis role="bold">nom_de_variable</emphasis> : nom de la variable déclarée.
-                Ce nom peut être un champ de Struct (e.g. <literal>x(1,2).nom</literal>)
-                ou décrire le contenu d'une Cell en utilisant la syntaxe
-                <literal>x(1,2).entries</literal>.
-                <note>
-                    NOTEZ que pour les Cells et les
-                    Structs <literal>*</literal> peut être utilisé comme index.
-                </note>
-              </para>
-            </listitem>
-            <listitem>
-              <para>
-                <emphasis role="bold">dimensions</emphasis> : dimensions de la variable déclarée
-                séparées par des espaces,
-                si une dimension est inconnue, remplacez la par <literal>?</literal>.
-                <warning>
-                    NOTEZ que les dimensions des chaînes de caractères doivent être identiques
-                    aux dimensions Matlab e.g. <literal>1 6</literal> pour le mot 'chaine'.
-                </warning>
-              </para>
-            </listitem>
-            <listitem>.
-                <informaltable border="0">
-                <tr>
-                <td valign="top">
+            Lors de la conversion, lorsqu'une ligne <literal>%m2scideclare</literal> est rencontrée,
+            le convertisseur examine la liste des symboles déjà connus. Cette liste est établie
+            au cours de la conversion et est continuellement mise à jour, en fonction des symboles
+            déjà rencontrés et convertis, et des lignes  <literal>%m2scideclare</literal> antérieures
+            déjà prises en compte :
+            <itemizedlist>
+                <listitem>
                     <para>
-                        <emphasis role="bold">type_de_données</emphasis>:
-                        le type de donnée de la variable qui peut être :
+                        Si <literal>%m2scideclare</literal> décrit une nouvelle donnée, celle-ci est
+                        ajoutée à la liste des objets partiellement ou totalement connus.
                     </para>
-                    <informaltable border="1">
-                        <tr>
-                          <th>Type de donnée m2scideclare</th>
-                          <th>Type Scilab "équivalent"</th>
-                        </tr>
-                        <tr><td>Double</td>  <td>1</td>         </tr>
-                        <tr><td>Boolean</td> <td>4</td>         </tr>
-                        <tr><td>Sparse</td>  <td>5</td>         </tr>
-                        <tr><td>Int</td>     <td>8</td>         </tr>
-                        <tr><td>Handle</td>  <td>9</td>         </tr>
-                        <tr><td>String</td>  <td>10</td>        </tr>
-                        <tr><td>Struct</td>  <td>16</td>        </tr>
-                        <tr><td>Cell</td>    <td>17</td>        </tr>
-                        <tr><td>Function</td><td>13 (macro)</td></tr>
-                        <tr><td>Builtin</td> <td>130</td>       </tr>
-                        <tr><td>Void</td>    <td>0 (undefined)</td></tr>
-                        <tr><td>?</td>       <td>Type inconnu</td></tr>
-                    </informaltable>
-                </td>
-                <td valign="top">
+                </listitem>
+                <listitem>
                     <para>
-                        <emphasis role="bold">propriété</emphasis> :
-                        propriété de la variable qui peut être :
+                    Si l'objet décrit par <literal>%m2scideclare</literal> est déjà connu,
+                    le convertisseur compare les informations apportées par <literal>%m2scideclare</literal>
+                    avec celles déjà connues.
                     </para>
-                    <informaltable border="1">
-                        <tr><th>Propriété m2scideclare</th> <th>"Equivalent" Scilab</th></tr>
-                        <tr><td>Real</td>                   <td>Donnée réelle</td>      </tr>
-                        <tr><td>Complex</td>                <td>Donnée complexe</td>    </tr>
-                        <tr><td>?</td>                      <td>Property inconnue</td>  </tr>
-                    </informaltable>
+                    <itemizedlist>
+                        <listitem>
+                            <para>
+                            Si ces informations coincident ou sont compatibles, le convertisseur
+                            éventuellement complète le registre (par exemple si la property était Unknown
+                            et est précisée par <literal>%m2scideclare</literal>), ou ne fait rien.
+                            </para>
+                        </listitem>
+                        <listitem>
+                            <para>
+                            Sinon, une ligne d'alerte est générée par <literal>%m2scideclare</literal>
+                            dans le fichier converti, et les informations données par
+                            <literal>%m2scideclare</literal> sont ignorées.
+                            </para>
+                        </listitem>
+                    </itemizedlist>
+                    <note>
+                        Ce fonctionnement peut être mis à profit par les développeurs souhaitant
+                        corriger ou étendre le convertisseur, en utilisant
+                        <literal>%m2scideclare</literal> dans les tests : si le type, le sous-type
+                        ou les dimensions de l'objet considéré ne sont pas ceux attendus et donnés
+                        par <literal>%m2scideclare</literal>, l'alerte générée sera exploitée pour
+                        corriger le convertisseur.
+                    </note>
                     <para>
-                        Ce champ est ignoré pour les types de données suivants :
-                        <literal>Cell</literal>, <literal>Struct</literal>,
-                        <literal>String</literal> et <literal>Boolean</literal>.
+                        Si en tant qu'utilisateur du convertisseur vous rencontrez une telle alerte
+                        <literal>%m2scideclare</literal> qui vous semble incompatible avec ce que
+                        vous connaissez de votre code,
+                        vous pouvez rapporter le cas sur https://bugzilla.scilab.org
                     </para>
-                </td>
-                </tr>
-                </informaltable>
-            </listitem>
-          </itemizedlist>
-        <para>
-            Toutes les informations données par <literal>m2scideclare</literal> sont comparées avec
-            les données inférées, en cas de conflit, les données inférées sont conservées et
-            un warning est affiché. Si vous êtes sûrs de vos informations, rapportez ce bug.
+                </listitem>
+            </itemizedlist>
         </para>
     </refsection>
     <refsection>
                 <literal>%m2scideclare var2|2 3 10|Double|Complex</literal>
                 <para>
                   var2 est déclarée comme une hypermatrice de Doubles de taille 2x3x10
-                  et contenant des données complexes
+                  et contenant des nombres complexes.
                 </para>
               </listitem>
               <listitem>
               <listitem>
                 <literal>%m2scideclare var4(1,6).entries|? ?|Int|?</literal>
                 <para>
-                  var4 est déclarée comme un tableau de Cells contenant
-                  un vecteur ligne de booléens à l'indice (1,5)
-                  et des données entières à l'indice (1,6)
+                  var4 est déclarée comme un tableau de Cells contenant un vecteur ligne de
+                  booléens à l'indice (1,5) et des données entières à l'indice (1,6).
                 </para>
               </listitem>
               <listitem>
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>Historique</title>
+        <revhistory>
+            <revision>
+                <revnumber>&lt; 5.0</revnumber>
+                <revdescription>
+                    <literal>%m2sciassume</literal> est obsolète et est remplacée par
+                    <literal>m2scideclare</literal>.
+                </revdescription>
+            </revision>
+            <revision>
+                <revnumber>6.1.1</revnumber>
+                <revdescription>
+                    <literal>m2scideclare</literal> accepte tous les nouveaux vtypes et valeurs de
+                    sous-types
+                    <literal>Polynomial</literal>,
+                    <literal>Function/Macro</literal>, <literal>Function/Builtin</literal>,
+                    <literal>String/Char</literal>,
+                    <literal>Handle/'Figure'</literal>, <literal>Handle/'Axes'</literal>,
+                    <literal>Int/'int8'</literal>,  <literal>Int/'int16'</literal>,
+                    <literal>Int/'int32'</literal>, <literal>Int/'int64'</literal>,
+                    <literal>Int/'uint8'</literal>, <literal>Int/'uint16'</literal>,
+                    <literal>Int/'uint32'</literal>, <literal>Int/'uint64'</literal>,
+                    <literal>Sparse/Boolean</literal>.
+                    Le vtype <literal>Sparse</literal> devient effectivement utilisable.
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 0c5f67d..2bde9b2 100644 (file)
@@ -198,6 +198,8 @@ mfile2sci()
         <programlisting role="example"><![CDATA[
 // Création d'un fichier .m simple
 rot90m = ["function B = rot90(A,k)"
+    ""
+    "%m2scideclare k|1 1|Double|Real"
     "if ~isa(A, ''double'')"
     "    error(''rot90: Wrong type for input argument #1: Real or complex matrix expected.'');"
     "    return"
index b51c045..7b43dfb 100644 (file)
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function val=%cste_e(field,m2scitlist)
-    // File generated from %PROTO_e.g: PLEASE DO NOT EDIT !
+function val = %cste_e(field,m2scitlist)
 
-    val=[]
+    val = []
     if field=="infer" then
-        val=m2scitlist.infer
+        f = find(fieldnames(m2scitlist)=="infer")
+        if f==[]
+            val = Infer()
+        else
+            val = getfield(f+1, m2scitlist)
+        end
     elseif field=="dims" then
-        val=m2scitlist.infer.dims
+        val = m2scitlist.infer.dims
     elseif field=="type" then
-        val=m2scitlist.infer.type
+        val = m2scitlist.infer.type
     elseif field=="vtype" then
-        val=m2scitlist.infer.type.vtype
+        val = m2scitlist.infer.type.vtype
     elseif field=="property" then
-        val=m2scitlist.infer.type.property
+        val = m2scitlist.infer.type.property
     else
         error(msprintf(gettext("Extraction of %s from ''%s'' tlist is not yet implemented."),string(field),typeof(m2scitlist)))
     end
index 81fcfdc..34399a7 100644 (file)
@@ -1,7 +1,5 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2002-2004 - INRIA - Vincent COUVERT
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2020 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
@@ -10,23 +8,8 @@
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function val=%funcall_6(field,m2scitlist)
-    // File generated from %PROTO_6.g: PLEASE DO NOT EDIT !
+function val = %funcall_6(field, m2scitlist)
+
+    val = %funcall_e(field, m2scitlist)
 
-    val=[]
-    if field=="infer" then
-        val=m2scitlist.lhs(1).infer
-    elseif field=="dims" then
-        val=m2scitlist.lhs(1).infer.dims
-    elseif field=="type" then
-        val=m2scitlist.lhs(1).infer.type
-    elseif field=="vtype" then
-        val=m2scitlist.lhs(1).infer.type.vtype
-    elseif field=="property" then
-        val=m2scitlist.lhs(1).infer.type.property
-    elseif field=="contents" then
-        val=m2scitlist.lhs(1).infer.contents
-    else
-        error(msprintf(gettext("Extraction of %s from ''%s'' tlist is not yet implemented."),string(field),typeof(m2scitlist)))
-    end
 endfunction
index d946112..5dc5bed 100644 (file)
@@ -1,7 +1,7 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2002-2004 - INRIA - Vincent COUVERT
-//
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2020 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function val=%funcall_e(field,m2scitlist)
+function val = %funcall_e(field, m2scitlist)
 
-    val=[]
-    if field=="infer" then
-        val=m2scitlist.lhs(1).infer
+    if isfield(m2scitlist, "lhs") then
+        LHS = m2scitlist.lhs
+        if LHS==list()
+            LHS = list(Infer())
+        end
+    else
+        LHS = list(Infer())
+    end
+    if field=="lhs" then
+        val = LSH
+    elseif field=="infer" then
+        val = LHS(1)
     elseif field=="dims" then
-        val=m2scitlist.lhs(1).infer.dims
+        val = LHS(1).dims
     elseif field=="type" then
-        val=m2scitlist.lhs(1).infer.type
+        val = LHS(1).type
     elseif field=="vtype" then
-        val=m2scitlist.lhs(1).infer.type.vtype
+        val = LHS(1).type.vtype
     elseif field=="property" then
-        val=m2scitlist.lhs(1).infer.type.property
+        val = LHS(1).type.property
     elseif field=="contents" then
-        val=m2scitlist.lhs(1).infer.contents
+        val = LHS(1).contents
     else
-        error(msprintf(gettext("Extraction of %s from ''%s'' tlist is not yet implemented."),string(field),typeof(m2scitlist)))
+        msg = gettext("Extraction of ''%s'' from ''%s'' tlist is not yet implemented.\n")
+        error(msprintf(msg, string(field), typeof(m2scitlist)))
     end
 endfunction
diff --git a/scilab/modules/m2sci/macros/kernel/%infer_e.sci b/scilab/modules/m2sci/macros/kernel/%infer_e.sci
new file mode 100644 (file)
index 0000000..78bdf54
--- /dev/null
@@ -0,0 +1,22 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2020 - Samuel GOUGEON
+//
+// This file is hereby licensed under the terms of the GNU GPL v2.0,
+// pursuant to article 5.3.4 of the CeCILL v.2.1.
+// This file was originally licensed under the terms of the CeCILL v2.1,
+// and continues to be available under such terms.
+// For more information, see the COPYING file which you should have received
+// along with this program.
+
+function val = %infer_e(field, inferList)
+if isdef("DEBUG") & DEBUG, disp("%infer_e"), end
+
+    k = find(fieldnames(inferList)==field)
+    
+    if k<>[] then
+        val = getfield(k+1,inferList)
+    else
+        msg = _("%s: The field ''%s'' does not exist.\n")
+        error(msprintf(msg, "%m2sci.%infer_e", field))
+    end
+endfunction
diff --git a/scilab/modules/m2sci/macros/kernel/%infer_i_variable.sci b/scilab/modules/m2sci/macros/kernel/%infer_i_variable.sci
new file mode 100644 (file)
index 0000000..58422b9
--- /dev/null
@@ -0,0 +1,27 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2020 - Samuel GOUGEON
+//
+// This file is hereby licensed under the terms of the GNU GPL v2.0,
+// pursuant to article 5.3.4 of the CeCILL v.2.1.
+// This file was originally licensed under the terms of the CeCILL v2.1,
+// and continues to be available under such terms.
+// For more information, see the COPYING file which you should have received
+// along with this program.
+
+function var = %infer_i_variable(varargin)
+if isdef("DEBUG") & DEBUG, disp("%infer_i_variable"), end
+
+    [lhs,rhs]=argn(0)
+    var = varargin(rhs)
+    infer = varargin(rhs-1)
+    //index = varargin(1) // "infer" (forced)
+
+    fields = fieldnames(var)
+    k = find(fields=="infer")
+    if k==[] then
+        var = setfield(1, [fields "infer"], var)
+        var = setfield(size([fields "infer"],2), infer, var)
+    else
+        var = setfield(k(1), infer, var)
+    end
+endfunction
index 5620764..21724b0 100644 (file)
@@ -1,7 +1,7 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2002-2004 - INRIA - Vincent COUVERT
-//
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2020 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
 // along with this program.
 
 function val = %operation_e(field, m2scitlist)
+if isdef("DEBUG") & DEBUG, disp("%operation_e"), end
+
+    if isfield(m2scitlist, "out") & m2scitlist.out <> list()
+        infer = m2scitlist.out(1).infer
+    else
+        infer = Infer()
+    end
+    infer0 = Infer()    // default
 
-    val=[]
     if field=="infer" then
-        val = m2scitlist.out(1).infer
+        val = infer
     elseif field=="dims" then
-        val = m2scitlist.out(1).infer.dims
+        if isfield(infer, "dims"), val = infer.dims, else val = infer0.dims, end
     elseif field=="type" then
-        val = m2scitlist.out(1).infer.type
+        if isfield(infer, "type"), val = infer.type, else val = infer0.type, end
     elseif field=="vtype" then
-        val = m2scitlist.out(1).infer.type.vtype
+        if isfield(infer.type, "vtype")
+            val = infer.type.vtype,
+        else
+            val = infer0.type.vtype
+        end
     elseif field=="property" then
-        val = m2scitlist.out(1).infer.type.property
+        if isfield(infer.type, "property")
+            val = infer.type.property,
+        else
+            val = infer0.type.property
+        end
     elseif field=="contents" then
-        val = m2scitlist.out(1).infer.contents
+        if isfield(infer, "contents")
+            val = infer.contents
+        else
+            val = infer0.contents
+        end
     else
-        error(msprintf(gettext("Extraction of %s from ''%s'' tlist is not yet implemented."),string(field),typeof(m2scitlist)))
+        msg = gettext("Extraction of %s from ''%s'' tlist is not yet implemented.")
+        error(msprintf(msg, string(field), typeof(m2scitlist)))
     end
+
 endfunction
index af08382..9f7a0f6 100644 (file)
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function val=%variable_6(field,m2scitlist)
-    // File generated from %PROTO_6.g: PLEASE DO NOT EDIT !
+function val = %variable_6(field,m2scitlist)
+if isdef("DEBUG") & DEBUG, disp("%variable_6"), end
 
     val=[]
     if field=="infer" then
-        val=m2scitlist.infer
+        val = m2scitlist.infer
     elseif field=="dims" then
-        val=m2scitlist.infer.dims
+        val = m2scitlist.infer.dims
     elseif field=="type" then
-        val=m2scitlist.infer.type
+        val = m2scitlist.infer.type
     elseif field=="vtype" then
-        val=m2scitlist.infer.type.vtype
+        val = m2scitlist.infer.type.vtype
     elseif field=="property" then
-        val=m2scitlist.infer.type.property
+        val = m2scitlist.infer.type.property
     elseif field=="contents" then
-        val=m2scitlist.infer.contents
+        val = m2scitlist.infer.contents
     else
         error(msprintf(gettext("Extraction of %s from ''%s'' tlist is not yet implemented."),string(field),typeof(m2scitlist)))
     end
index 9284493..71bfd20 100644 (file)
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function val=%variable_e(field,m2scitlist)
-    // File generated from %PROTO_e.g: PLEASE DO NOT EDIT !
+function val = %variable_e(field,m2scitlist)
+if isdef("DEBUG") & DEBUG then disp("%variable_e"), end
 
     val=[]
-
+    if isfield(m2scitlist, "infer") then
+        infer = m2scitlist.infer
+    else
+        infer = Infer()
+    end
     if field=="infer" then
-        val=m2scitlist.infer
+        val = infer
     elseif field=="dims" then
-        val=m2scitlist.infer.dims
+        val = infer.dims
     elseif field=="type" then
-        val=m2scitlist.infer.type
+        val = infer.type
     elseif field=="vtype" then
-        val=m2scitlist.infer.type.vtype
+        val = infer.type.vtype
     elseif field=="property" then
-        val=m2scitlist.infer.type.property
+        val = infer.type.property
     elseif field=="contents" then
-        val=m2scitlist.infer.contents
+        val = infer.contents
     else
-        error(msprintf(gettext("Extraction of %s from ''%s'' tlist is not yet implemented."),string(field),typeof(m2scitlist)))
+        error(msprintf(gettext("Extraction of ''%s'' from ''%s'' tlist is not yet implemented."),string(field),typeof(m2scitlist)))
     end
+
 endfunction
index 9f0351f..66a0284 100644 (file)
@@ -1,7 +1,7 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) ???? - INRIA - Scilab
-//
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2020 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function const=Cste(value)
+function const = Cste(value)
     // Create a new constant tlist
 
-    rhs=argn(2)
-
+    rhs = argn(2)
     if rhs~=1 then
         error(gettext("Wrong number of inputs."));
     end
 
-    dims=list()
+    typ = type(value)
+    if ~isdef("octave_mode"), octave_mode = %f, end
 
-    if value=="" then
-        dims=list(0,0)
-    else
-        sz=size(value)
-        for k=1:size(sz,"*")
-            dims($+1)=sz(k)
-            if type(value)==String then
-                if k==2 then
-                    dims($)=sum(length(value))
-                end
-            end
+    // Property
+    // --------
+    prop = Unknown
+    if or(typ==[Double, Sparse, Polynomial]) then
+        if isreal(value) then
+            prop = Real
+        else
+            prop = Complex
+        end
+    elseif typ==String then
+        prop = Char
+        if ~octave_mode
+            // We might test the value in case of string
         end
+    elseif typ==Boolean
+        prop = Boolean
+    elseif typ==6   // boolean sparse
+        [typ, prop] = (Boolean, Sparse)
+    elseif typ==Int
+        prop = typeof(value)
+    elseif typ==Handle
+        prop = value.type
+        if and(prop<>["Figure" "Axes"])
+            prop = Unknown
+        end
+    elseif typ==Macro
+        [typ, prop] = (Function, Macro)
+    elseif typ==Builtin
+        [typ, prop] = (Function, Builtin)
     end
 
-    if type(value)==String then
-        prop=Real
-        value=value
+    // Size
+    // ----
+    dims = list()
+    if value=="" then
+        dims = list(0,0)
+    elseif typ==Function
+        dims = list(1,1)
     else
-        if type(value)==1 then
-            if isreal(value) then
-                prop=Real
-            else
-                prop=Complex
+        sz = size(value)
+        for k = 1:size(sz,"*")
+            dims($+1) = sz(k)
+            if prop==Char then
+                if k==2 then
+                    dims($) = sum(length(value(1,:)))
+                end
             end
-        else
-            prop=Real
         end
     end
 
-    const=tlist(["cste","value","infer"],value,Infer(dims,Type(type(value),prop)))
+    // Finally setting
+    const = tlist(["cste","value","infer"],value,Infer(dims,Type(typ,prop)))
 endfunction
index 01fdedc..888aab7 100644 (file)
@@ -1,7 +1,7 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) ???? - INRIA - Scilab
-//
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2020 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function funcall_tlist=Funcall(name,lhsnb,rhslist,lhslist)
+function funcall_tlist = Funcall(name,lhsnb,rhslist,lhslist)
     // Copyright INRIA
     // Create a new function tlist
 
-    rhs=argn(2)
+    rhs = argn(2)
 
     // Verify input value
-    if rhs~=4 then
+    if rhs<3 | rhs>4 then
         error(gettext("Wrong number of inputs."));
     elseif typeof(name)~="string" then
         error(msprintf(gettext("name must be a string instead of a: %s."),typeof(name)));
@@ -29,5 +29,46 @@ function funcall_tlist=Funcall(name,lhsnb,rhslist,lhslist)
         error(msprintf(gettext("lhslist must be a list instead of a: %s."),typeof(lhslist)));
     end
 
-    funcall_tlist=tlist(["funcall","name","lhsnb","rhs","lhs"],name,lhsnb,rhslist,lhslist)
+    if rhs==3
+        lhslist = list()
+    end
+    // Known predefined frequent LHS lists
+    if lhslist==list() then
+        select name
+        case "abs"
+            lhslist = Variable("ans",Infer(rhslist(1).dims,Type(Handle,Unknown)))
+        case "gcf"
+            lhslist = Variable("ans",Infer(list(1,1),Type(Handle,"Figure")))
+        case "gca"
+            lhslist = Variable("ans",Infer(list(1,1),Type(Handle,"Axes")))
+        case "gce"
+            lhslist = Variable("ans",Infer(list(Unknown,1),Type(Handle,Unknown)))
+        case "scf"
+            lhslist = Variable("ans",Infer(list(1,1),Type(Handle,"Figure")))
+        case "size"
+            lhslist = Variable("ans",Infer(list(1,Unknown),Type(Double,Real)))
+        case "type"
+            lhslist = Variable("ans",Infer(list(1,1),Type(Double,Real)))
+        case "typeof"
+            lhslist = Variable("ans",Infer(list(1,1),Type(String,String)))
+        case "winsid"
+            lhslist = Variable("ans",Infer(list(Unknown,1),Type(Double,Real)))
+//        case "isreal"
+//            lhslist = Variable("ans",Infer(list(1,1),Type(Boolean,Boolean)))
+        case "ones"
+        case "zeros"
+        case "rand"
+        case "bool2s"
+        case "real"
+        case "getos"
+            lhslist = Variable("ans",Infer(list(1,1),Type(String,Char)))
+        end
+        if lhslist <> list()
+            lhslist = list(lhslist)
+        end
+    end
+
+    // Setting the tlist:
+    fields = ["funcall","name","lhsnb","rhs","lhs"]
+    funcall_tlist = tlist(fields, name, lhsnb, rhslist, lhslist)
 endfunction
index 4ad6756..c393e43 100644 (file)
@@ -1,7 +1,7 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) ???? - INRIA - Scilab
-//
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2020 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function operation_tlist=Operation(operator,operands,out)
+function operation_tlist = Operation(operator,operands,out)
     // Create a new operation tlist
-
-    rhs=argn(2)
+    rhs = argn(2)
+    fname = "m2sci.Operation"
 
     // Verify input value
-    if rhs~=3 then
-        error(gettext("Wrong number of inputs."))
+    if rhs < 2 | rhs > 3 then
+        msg = gettext("%s: Wrong number of input arguments: %d or %d expected.\n");
+        error(msprintf(msg, fname, 2, 3))
+    end
+    if rhs==2 then
+        out = list()
     end
 
     if typeof(operator)~="string" then
-        error(msprintf(gettext("operator must be a string instead of a: %s."),typeof(operator)));;
+        msg = gettext("%s: operator as Argument #%d must be a string instead of a ''%s''.\n")
+        error(msprintf(msg, fname, 1, typeof(operator)));
+
     elseif typeof(operands)~="list" then
-        error(msprintf(gettext("operands must be a list instead of a: %s."),typeof(operands)));
+        msg = gettext("%s: operands as Argument #%d must be a list instead of a ''%s''.\n");
+        error(msprintf(msg, fname, 2, typeof(operands)));
+
     elseif typeof(out)~="list" then
-        error(msprintf(gettext("out must be a list instead of a: %s."),typeof(out)));
+        msg = gettext("%s: out as Argument #%d must be a list instead of a ''%s''.\n");
+        error(msprintf(msg, fname, 3, typeof(out)));
+    end
+
+    // Setting the operation's list
+    // ----------------------------
+    operation_tlist = tlist(["operation","operator","operands","out"], operator, operands, out)
+    // Setting some default properties
+    // -------------------------------
+    // Comparisons => vtype = Boolean, property = Boolean|Sparse|Unknown
+    if or(operator==["<" "<=" "==" "~=" ">=" ">"]) // & ..
+            // (or(operands(1).vtype==[Sparse, Boolean]) | ..
+            // or(operands(2).vtype==[Sparse, Boolean])) then
+        [L, R] = (operands(1), operands(2));
+        if is_sparse(L)>0 | is_sparse(R)>0
+            operation_tlist.type = Type(Boolean, Sparse)
+        else
+            [tL, tR] = (L.type, R.type)
+            if tL.vtype==Unknown | tR.vtype==Unknown |..
+               (tL.vtype==Boolean & tL.property==Unknown) | ..
+               (tR.vtype==Boolean & tR.property==Unknown)
+                operation_tlist.type = Type(Boolean,Unknown)
+            else
+                operation_tlist.type = Type(Boolean,Boolean)
+            end
+        end
     end
 
-    operation_tlist=tlist(["operation","operator","operands","out"],operator,operands,out)
 endfunction
index 41c811d..013b7d9 100644 (file)
@@ -1,7 +1,7 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) ???? - INRIA - Scilab
-//
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2020 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function Type_tlist=Type(vtype,property)
+function Type_tlist = Type(vtype,property)
     // Create a new 'type' tlist for inference
+    // See also m2scideclare.sci
 
-    rhs=argn(2)
+    rhs = argn(2)
     if rhs<2 then
-        Type_tlist=tlist(["type","vtype","property"],Unknown,Unknown)
+        Type_tlist = tlist(["type","vtype","property"],Unknown,Unknown)
         return
     end
 
-    if and(vtype~=[Double,Boolean,String,Unknown,Sparse,Cell,Struct,Int,Handle]) then
-        error(msprintf(gettext("%s is not yet implemented."),string(vtype)))
+    if and(vtype~=[Boolean,Int,Double,Sparse,Polynomial,String,Handle,Function,Cell,Struct,Unknown]) then
+        msg = gettext("vtype ''%s'' is not yet implemented.\n")
+        error(msprintf(msg, getTypeName(vtype)))
     end
 
     if typeof(property)=="list" then
-        error(gettext("list of properties is not yet implemented."))
-    elseif and(property~=[Real,Complex,Unknown]) then
-        error(msprintf(gettext("wrong property %s."),string(property)))
+        error(gettext("List of properties is not yet implemented.\n"))
+    else
+        msg = gettext("Wrong property ''%s'' for vtype ''%s''.\n");
+        select vtype
+        case Boolean
+            if and(property~=[Boolean, Sparse, Unknown]) then
+                error(msprintf(msg, getPropName(property), getTypeName(vtype)))
+            end
+        case Int
+            if and(property~=["int8" "int16" "int32" "int64" "uint8" "uint16" "uint32" "uint64"]) & property <> Unknown then
+                error(msprintf(msg, getPropName(property), getTypeName(vtype)))
+            end
+        case Double
+            if and(property~=[Real, Complex, Unknown]) then
+                error(msprintf(msg, getPropName(property), getTypeName(vtype)))
+            end
+        case Sparse
+            if and(property~=[Real, Complex, Unknown]) then
+                error(msprintf(msg, getPropName(property), getTypeName(vtype)))
+            end
+            // Sparse boolean are Boolean vtype with property = Sparse
+        case Polynomial
+            if and(property~=[Real, Complex, Unknown]) then
+                error(msprintf(msg, getPropName(property), getTypeName(vtype)))
+            end
+        case String
+            if and(property~=[Char, String, Unknown]) then
+                error(msprintf(msg, getPropName(property), getTypeName(vtype)))
+            end
+        case Handle
+            if and(property~=["Figure" "Axes" "Unknown"]) & property<>Unknown then
+                error(msprintf(msg, getPropName(property), getTypeName(vtype)))
+            end
+        case Function
+            if and(property~=[Builtin, Macro, Unknown]) then
+                error(msprintf(msg, getPropName(property), getTypeName(vtype)))
+            end
+        end
     end
 
-    Type_tlist=tlist(["type","vtype","property"],vtype,property)
+    Type_tlist = tlist(["type","vtype","property"], vtype, property)
 endfunction
index bf37b33..20ec435 100644 (file)
@@ -24,7 +24,8 @@ function var=Variable(name,infer)
     elseif typeof(infer)~="infer" then
         error(msprintf(gettext("infer must be an ''infer'' tlist instead of a: %s."),typeof(infer)))
     end
-
-    var=tlist(["variable","name","infer"],name,infer)
-
+    if infer==list() then
+        infer = Infer()
+    end
+    var = tlist(["variable","name","infer"],name,infer)
 endfunction
index e0a370b..b352d9b 100644 (file)
@@ -16,27 +16,45 @@ function dble = convert2double(A)
 
     lhs = argn(1)
 
-    if A.vtype==Double then
+    if A.vtype==Double then     // might be ["Double" "Sparse"]
         dble = A
         return
     end
 
     if only_double then
         dble = A
-        dble.type = Type(Double,Unknown)
+        if A.vtype==Sparse
+            dble.type = Type(Double,A.property)
+        else
+            dble.type = Type(Double,Unknown)
+        end
     else
         if A.vtype==String then
             LHS = Variable("ans", Infer(A.dims,Type(Double,Real)))
             dble = Funcall("asciimat", 1, Rhs_tlist(A), list(LHS))
+
         elseif A.vtype==Boolean then
-            LHS = Variable("ans",Infer(A.dims,Type(Double,Real)))
-            dble = Funcall("bool2s", 1, Rhs_tlist(A), list(LHS))
+            // LHS = Variable("ans",Infer(A.dims,Type(Double,Real)))
+            // dble = Funcall("bool2s", 1, Rhs_tlist(A), list(LHS))
+            dble = Operation("*", list(A,Cste(1)))
+            if is_sparse(A)>0
+                dble.type = Type(Sparse,Real)
+            else
+                dble.type = Type(Double,Real)
+            end
+
         elseif A.vtype==Int then
             LHS = Variable("ans",Infer(A.dims,Type(Double,Real)))
             dble = Funcall("double", 1, Rhs_tlist(A), list(LHS))
+
+        elseif A.vtype==Sparse then
+            LHS = Variable("ans",Infer(A.dims,Type(Double,Real)))
+            dble = Funcall("full", 1, Rhs_tlist(A), list(LHS))
+
         elseif A.vtype==Unknown then
             LHS = Variable("ans", Infer(A.dims,Type(Double,Unknown)))
             dble = Funcall("mtlb_double", 1, Rhs_tlist(A), list(LHS))
+
         else
             msg = gettext("m2sci.convert2double(): Type %s not yet implemented.")
             error(msprintf(msg, string(A.vtype)))
index 347c314..b25f532 100644 (file)
@@ -10,7 +10,7 @@
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function [sci_expr]=expression2sci(mtlb_expr,lhslist)
+function sci_expr = expression2sci(mtlb_expr, lhslist)
     // M2SCI function
 
     // Global variable for M2SCI
@@ -18,16 +18,16 @@ function [sci_expr]=expression2sci(mtlb_expr,lhslist)
 
     // When lhslist is given, then expression2sci is called from equal2sci
     // else it is called from another function (clause2sci for example)
-    rhs=argn(2);
+    rhs = argn(2);
     // If not given, lhslist is initialized with no name lhs
     if rhs==1 then
         if typeof(mtlb_expr)=="funcall" then
-            lhsnb=mtlb_expr.lhsnb;
+            lhsnb = mtlb_expr.lhsnb;
         else
-            lhsnb=1;
+            lhsnb = 1;
         end
-        lhslist=list();
-        for k=1:lhsnb
+        lhslist = list();
+        for k = 1:lhsnb
             lhslist($+1)=Variable("ans",Infer());
         end
     end
@@ -36,92 +36,97 @@ function [sci_expr]=expression2sci(mtlb_expr,lhslist)
         // --- Expression is an 'operation' tlist ---
     case "operation"
         // Add inference fields to operation
-        mtlb_expr=Operation(mtlb_expr.operator,mtlb_expr.operands,lhslist)
+        mtlb_expr = Operation(mtlb_expr.operator, mtlb_expr.operands, lhslist)
 
         // Translation
-        [sci_expr]=operation2sci(mtlb_expr)
+        sci_expr = operation2sci(mtlb_expr)
 
         // --- Expression is a 'funcall' tlist ---
-    case "funcall"
 
+    case "funcall"
         // Particular case if expression is a call to 'm2scideclare'
         if mtlb_expr.name=="m2scideclare" then
-            sci_expr=list()
+            sci_expr = list()
             // varslist is updated with user defined data
-            sci_m2scideclare(mtlb_expr)
+            m2scideclare(mtlb_expr)
 
             // Particular case if expression is a call to 'comment'
         elseif mtlb_expr.name=="%comment" then
             // Add inference fields to funcall
-            sci_expr=Funcall(mtlb_expr.name,mtlb_expr.lhsnb,mtlb_expr.rhs,lhslist)
+            sci_expr = Funcall(mtlb_expr.name,mtlb_expr.lhsnb,mtlb_expr.rhs,lhslist)
             // All other 'funcall' expressions
         else
             // Add inference fields to funcall
-            mtlb_expr=Funcall(mtlb_expr.name,mtlb_expr.lhsnb,mtlb_expr.rhs,lhslist)
+            mtlb_expr = Funcall(mtlb_expr.name,mtlb_expr.lhsnb,mtlb_expr.rhs,lhslist)
 
             // Translation
-            [sci_expr]=funcall2sci(mtlb_expr)
+            sci_expr = funcall2sci(mtlb_expr)
         end
 
         // --- Expression is a 'cste' tlist ---
+
     case "cste"
         // Convert expression
-        sci_expr=Cste(mtlb_expr.value)
+        sci_expr = Cste(mtlb_expr.value)
 
         // --- Expression is a 'variable' tlist ---
+
     case "variable"
-        [bval,index]=isdefinedvar(mtlb_expr)
+        [bval,index] = isdefinedvar(mtlb_expr)
 
         // Variable already exists
         if bval then
-            sci_expr=Variable(varslist(index).sciname,varslist(index).infer)
+            sci_expr = Variable(varslist(index).sciname, varslist(index).infer)
             // Variable is unknown
         else
             // Try to find what is this variable
-            [sci_expr]=getvar2sci(mtlb_expr,lhslist)
+            sci_expr = getvar2sci(mtlb_expr,lhslist)
             if typeof(sci_expr)=="funcall" then
                 if typeof(lhslist(1))=="variable" & sci_expr.name==lhslist(1).name then // Used for commands such as keyboard, cputime...
                     // keyboard in an M-file is represented in tree by an equal with lhs=keyboard and expression=keyboard
-                    sci_expr.lhs(1).name="ans"
+                    sci_expr.lhs(1).name = "ans"
                 elseif typeof(lhslist(1))=="variable" & mtlb_expr.name==lhslist(1).name then // When command converted by mtlb(cmd_name)
-                    sci_expr.lhs(1).name="ans"
+                    sci_expr.lhs(1).name = "ans"
                 end
                 if sci_expr.name<>"mtlb" then
-                    [sci_expr]=funcall2sci(sci_expr)
+                    sci_expr = funcall2sci(sci_expr)
                 end
             end
         end
         // --- operand is a list (only for operations) ---
+
     case "list"
         if size(mtlb_expr)==1 & mtlb_expr==list("EOL") then
-            sci_expr=mtlb_expr
+            sci_expr = mtlb_expr
             return
         end
-        for k=1:size(mtlb_expr)
+        for k = 1:size(mtlb_expr)
             if typeof(mtlb_expr(k))=="cste" then
-                mtlb_expr(k)=Cste(mtlb_expr(k).value)
+                mtlb_expr(k) = Cste(mtlb_expr(k).value)
             elseif typeof(mtlb_expr(k))=="variable" then
-                [isvar,index]=isdefinedvar(mtlb_expr(k))
+                [isvar,index] = isdefinedvar(mtlb_expr(k))
                 if isvar then
-                    mtlb_expr(k)=Variable(mtlb_expr(k).name,varslist(index).infer)
+                    mtlb_expr(k) = Variable(mtlb_expr(k).name ,varslist(index).infer)
                 else
-                    mtlb_expr(k)=Variable(mtlb_expr(k).name,Infer())
+                    mtlb_expr(k) = Variable(mtlb_expr(k).name, Infer())
                 end
             elseif typeof(mtlb_expr(k))=="list" then
-                [mtlb_expr(k)]=expression2sci(mtlb_expr(k),lhslist)
+                mtlb_expr(k) = expression2sci(mtlb_expr(k), lhslist)
             elseif typeof(mtlb_expr(k))=="operation" then
-                [mtlb_expr(k)]=expression2sci(mtlb_expr(k),lhslist)
+                mtlb_expr(k) = expression2sci(mtlb_expr(k), lhslist)
             elseif typeof(mtlb_expr(k))=="funcall" then
-                [mtlb_expr(k)]=expression2sci(mtlb_expr(k),lhslist)
+                mtlb_expr(k) = expression2sci(mtlb_expr(k), lhslist)
             else
-                error(msprintf(gettext("recursive extraction with one index of type %s is not yet implemented."),typeof(mtlb_expr(k))))
+                error(msprintf(gettext("recursive extraction with one index of type %s is not yet implemented."), typeof(mtlb_expr(k))))
             end
         end
-        sci_expr=mtlb_expr
+        sci_expr = mtlb_expr
         // --- operand is a comment ---
+
     case "comment"
-        sci_expr=mtlb_expr
+        sci_expr = mtlb_expr
         // --- Expression is a not tolerated tlist ---
+
     else
         error(msprintf(gettext("%s is not yet implemented."),typeof(mtlb_expr)))
     end
@@ -129,7 +134,7 @@ function [sci_expr]=expression2sci(mtlb_expr,lhslist)
     // Verify if flag for translation improvements has to be set
     if typeof(sci_expr)=="funcall" then
         if part(sci_expr.name,1:4)=="mtlb" then
-            m2sci_infos(1)=%t // level 1 = improvements
+            m2sci_infos(1) = %t // level 1 = improvements
         end
     end
 endfunction
index 8403a8d..fcf4fa9 100644 (file)
@@ -19,86 +19,84 @@ function sci_equiv = funcall2sci(mtlb_expr)
     // Output:
     // - sci_instr: Scilab equivalent for mtlb_instr
 
-    rhslist=mtlb_expr.rhs
+    rhslist = mtlb_expr.rhs
     if rhslist==[] then // Function called as a command
-        rhsnb=-1
-        rhslist=list()
-        mtlb_expr.rhs=list()
+        rhsnb = -1
+        rhslist = list()
+        mtlb_expr.rhs = list()
     else
-        rhsnb=size(rhslist)
+        rhsnb = size(rhslist)
     end
     // Init returned value
-    sci_expr=mtlb_expr
-
-    rhsind=1
+    sci_expr = mtlb_expr
+    rhsind = 1
     while rhsind<=rhsnb
-        [sci_equiv]=expression2sci(rhslist(rhsind));
-        mtlb_expr.rhs(rhsind)=sci_equiv;
-        rhsind=rhsind+1;
+        [sci_equiv] = expression2sci(rhslist(rhsind));
+        mtlb_expr.rhs(rhsind) = sci_equiv;
+        rhsind = rhsind+1;
     end
 
     // Performs the conversion of function call
-    lhs=mtlb_expr.lhsnb
+    lhs = mtlb_expr.lhsnb
     if rhsnb==-1 then
-        rhs=-1
+        rhs = -1
     else
-        rhs=size(mtlb_expr.rhs)
+        rhs = size(mtlb_expr.rhs)
     end
-    funname=mtlb_expr.name
+    funname = mtlb_expr.name
 
     // If a translation function exists
     if exists("sci_"+funname)==1 then
-        execstr("[sci_equiv]=sci_"+funname+"(mtlb_expr)");
+        execstr("[sci_equiv] = sci_"+funname+"(mtlb_expr)");
         // If I don't know where I can search other M-files
     elseif res_path==[] then
-        sci_equiv=default_trad(mtlb_expr)
+        sci_equiv = default_trad(mtlb_expr)
     else
-        sci_tmpfile =pathconvert(TMPDIR)+pathconvert(fnam)+"sci_"+funname+".sci"
-        tmpierr=execstr("exec(sci_tmpfile,-1)","errcatch");errclear();
-        sci_file=res_path+"sci_"+funname+".sci"
-        ierr=execstr("exec(sci_file,-1)","errcatch");errclear();
+        sci_tmpfile = pathconvert(TMPDIR)+pathconvert(fnam)+"sci_"+funname+".sci"
+        tmpierr = execstr("exec(sci_tmpfile,-1)","errcatch");errclear();
+        sci_file = res_path+"sci_"+funname+".sci"
+        ierr = execstr("exec(sci_file,-1)","errcatch");errclear();
         if tmpierr==0 then
-            execstr("[sci_equiv]=sci_"+mtlb_expr.name+"(mtlb_expr)");
+            execstr("[sci_equiv] = sci_"+mtlb_expr.name+"(mtlb_expr)");
             // If a translation function exists
         elseif ierr==0 then
-            execstr("[sci_equiv]=sci_"+mtlb_expr.name+"(mtlb_expr)");
+            execstr("[sci_equiv] = sci_"+mtlb_expr.name+"(mtlb_expr)");
             // If no translation indication given
         elseif Recmode then
             // Check if the M-file exists in the given paths
-            path=mfile_path(funname)
+            path = mfile_path(funname)
             if path==[] then
-                sci_equiv=default_trad(mtlb_expr)
+                sci_equiv = default_trad(mtlb_expr)
             elseif or(funname==nametbl)
-                sci_equiv=sci_generic(mtlb_expr)
+                sci_equiv = sci_generic(mtlb_expr)
             else
-                fnam=funname
-                scipath=res_path+fnam+".sci"
-                scepath=res_path+fnam+".sce"
-                catpath=res_path+fnam+".cat"
-                res=0
+                fnam = funname
+                scipath = res_path+fnam+".sci"
+                scepath = res_path+fnam+".sce"
+                catpath = res_path+fnam+".cat"
+                res = 0
                 if newest(path,scipath,scepath)==1 then
-                    res=mfile2sci(path,res_path,%F,%T)
+                    res = mfile2sci(path,res_path,%F,%T)
                 end
                 if res==1 then
                     exec(sci_file, -1)
-                    ierr=execstr("[sci_equiv]=sci_"+mtlb_expr.name+"(mtlb_expr)","errcatch");
+                    ierr = execstr("[sci_equiv] = sci_"+mtlb_expr.name+"(mtlb_expr)","errcatch");
                     if ierr<>0 then
-                        error(msprintf(gettext("Error while executing : [sci_equiv]=sci_%s(mtlb_expr)."),mtlb_expr.name));
+                        error(msprintf(gettext("Error while executing : [sci_equiv] = sci_%s(mtlb_expr)."),mtlb_expr.name));
                     end
                 else
-                    sci_equiv=default_trad(mtlb_expr)
+                    sci_equiv = default_trad(mtlb_expr)
                 end
             end
         else  // Default translation
-            sci_equiv=default_trad(mtlb_expr)
+            sci_equiv = default_trad(mtlb_expr)
         end
     end
 
     // If equivalent is a funcall, number of lhs can have changed
     if typeof(sci_equiv)=="funcall" then
-        sci_equiv.lhsnb=size(sci_equiv.lhs)
+        sci_equiv.lhsnb = size(sci_equiv.lhs)
     end
-
 endfunction
 
 // ---------------------------------------------------------------------------
@@ -121,64 +119,76 @@ function tree = default_trad(tree)
         not_mtlb_fun=[]
     end
 
-    name=tree.name
+    name = tree.name
 
     ispriminame=%f;
     //true if the name function is the name of scilab function primitive
     if funptr(tree.name)<>0 then
-        name1="%"+tree.name
-        tree.name=name1
+        name1 = "%"+tree.name
+        tree.name = name1
         ispriminame=%t;
     end
-    //ismtlbfun is true if the function is in a matlab toolbox, mtlbpath is the path where is the function
-    [mtlbpath,ismtlbtoolfun]=mtlbtoolfun(name)
+
+    // ismtlbtoolfun is true if the function is in a matlab toolbox.
+    // Then, mtlbpath is the path where is the function
+    global m2sci_Mtoolboxes_funs_db
+    if m2sci_Mtoolboxes_funs_db==[] then
+        m2sci_Mtoolboxes_funs_db = csvRead(SCI+"/modules/m2sci/Mtbxfun_db.txt",",",[],"string");
+    end
+    [mtlbpath, ismtlbtoolfun] = (gettext("not matlab path"), %f);
+    k = find(name==m2sci_Mtoolboxes_funs_db(:,1), 1); // ,1 added 2020
+    if k<>[] then
+        mtlbpath = m2sci_Mtoolboxes_funs_db(k,2)
+        ismtlbtoolfun = %t
+    end
+
     //Matlab reference functions
     if or(name==not_yet_converted()) then
         set_infos(msprintf(gettext("Matlab function %s not yet converted, original calling sequence used."),name),2)
         if ~or(name==mtlbref_fun(:,1)) then
-            mtlbref_fun($+1,1)=name
+            mtlbref_fun($+1,1) = name
             if ispriminame then
-                mtlbref_fun($,2)=msprintf(gettext("(Warning name conflict: function name changed from %s to %s)."),name,name1);
+                mtlbref_fun($,2) = msprintf(gettext("(Warning name conflict: function name changed from %s to %s)."),name,name1);
             else
-                mtlbref_fun($,2)=""
+                mtlbref_fun($,2) = ""
             end
         end
         //Matlab toolboxes functions
     elseif ismtlbtoolfun then
         set_infos(msprintf(gettext("Matlab toolbox(es) function %s not converted, original calling sequence used"),name),2)
         if ~or(name==mtlbtool_fun(:,1)) then
-            mtlbtool_fun($+1,1)=name
+            mtlbtool_fun($+1,1) = name
             if ispriminame then
-                mtlbtool_fun($,2)=msprintf(gettext("Matlab toolbox(es) function %s not converted, original calling sequence used."),name,name1,mtlbpath)
+                mtlbtool_fun($,2) = msprintf(gettext("Matlab toolbox(es) function %s not converted, original calling sequence used."),name,name1,mtlbpath)
             else
-                mtlbtool_fun($,2)=msprintf(gettext("(Find this function in matlab/%s)."),mtlbpath)
+                mtlbtool_fun($,2) = msprintf(gettext("(Find this function in matlab/%s)."),mtlbpath)
             end
         end
     elseif isdefinedvar(Variable(tree.name,Infer())) then
-        operands=list()
-        operands(1)=Variable(tree.name,Infer())
+        operands = list()
+        operands(1) = Variable(tree.name,Infer())
         for krhs = 1:size(tree.rhs)
-            operands($+1)=tree.rhs(krhs)
+            operands($+1) = tree.rhs(krhs)
         end
-        tree=Operation("ext",operands,tree.lhs)
-        tree=operation2sci(tree)
+        tree = Operation("ext",operands,tree.lhs)
+        tree = operation2sci(tree)
 
         //Not matlbb function
     else
         set_infos(msprintf(gettext("Unknown function %s not converted, original calling sequence used."),name),2)
         if ~or(name==not_mtlb_fun(:,1)) then
-            not_mtlb_fun($+1,1)=name
+            not_mtlb_fun($+1,1) = name
             if ispriminame then
-                not_mtlb_fun($,2)=msprintf(gettext("(Warning name conflict: function name changed from %s to %s)."),name,name1);
+                not_mtlb_fun($,2) = msprintf(gettext("(Warning name conflict: function name changed from %s to %s)."),name,name1);
             else
-                not_mtlb_fun($,2)=""
+                not_mtlb_fun($,2) = ""
             end
         end
     end
     if ispriminame then
         set_infos(msprintf(gettext("(Warning name conflict: function name changed from %s to %s)."),name,name1),0)
     end
-    [tree]=sci_generic(tree)
+    [tree] = sci_generic(tree)
 endfunction
 
 // ---------------------------------------------------------------------------
@@ -187,14 +197,14 @@ function path = mfile_path(nam)
     fil = nam+".m";
     nf = length(fil)
     path = [];
-    for k=1:size(mfiles,"*")
-        pk=mfiles(k);
-        kk=strindex(pk,["/" "\"]);
+    for k = 1:size(mfiles,"*")
+        pk = mfiles(k);
+        kk = strindex(pk,["/" "\"]);
         if kk==[]
             kk = 0
         end
         if fil==part(pk,kk($)+1:length(pk)) then
-            path=pk;
+            path = pk;
             break
         end
     end
@@ -209,12 +219,12 @@ function tree = sci_generic(tree)
     // Output: tree = Scilab equivalent for tree
 
     if typeof(tree)=="operation"
-        tree.out(1).dims=list(-1,-1)
-        tree.out(1).type=Type(-1,-1)
+        tree.out(1).dims = list(-1,-1)
+        tree.out(1).type = Type(-1,-1)
     else
-        for i=1:size(tree.lhs)
-            tree.lhs(i).dims=list(-1,-1)
-            tree.lhs(i).type=Type(-1,-1)
+        for i = 1:size(tree.lhs)
+            tree.lhs(i).dims = list(-1,-1)
+            tree.lhs(i).type = Type(-1,-1)
         end
     end
 endfunction
diff --git a/scilab/modules/m2sci/macros/kernel/getPropName.sci b/scilab/modules/m2sci/macros/kernel/getPropName.sci
new file mode 100644 (file)
index 0000000..7f2d8a0
--- /dev/null
@@ -0,0 +1,28 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2020 - Samuel GOUGEON
+//
+// This file is hereby licensed under the terms of the GNU GPL v2.0,
+// pursuant to article 5.3.4 of the CeCILL v.2.1.
+// This file was originally licensed under the terms of the CeCILL v2.1,
+// and continues to be available under such terms.
+// For more information, see the COPYING file which you should have received
+// along with this program.
+
+function pname = getPropName(property)
+    // See properties defined in m2sci.sci and Type.sci
+
+    if type(property)==10
+        if isnum(property)
+            pname = PropertyNames(property)
+        else
+            pname = property
+        end
+    elseif type(property)==1
+        pname = msprintf("%d\n", property)
+        if or(property==[-1 0 1 4 5 10 11 13 130])
+            pname = PropertyNames(pname)
+        end
+    else
+        pname = string(property)
+    end
+endfunction
@@ -1,7 +1,5 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) ???? - INRIA - Scilab
-//
-// Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2020 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
@@ -10,11 +8,8 @@
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function cste=%type_i_cste(field,inslist,cste)
+function tname = getTypeName(typ)
+    // See Types defined in m2sci.sci and Type.sci
 
-    if field=="type" then
-        cste.infer.type=inslist
-    else
-        error(gettext("Not yet implemented."))
-    end
+    tname = TypeNames(msprintf("%d\n", typ))
 endfunction
index 3a664e8..70b3c29 100644 (file)
@@ -16,22 +16,26 @@ function sci_equiv = getvar2sci(var,lhslist)
     // Global variable for M2SCI
     global("varslist")
 
-    rhs=argn(2)
-    if rhs<>2 then
+    if argn(2) <> 2 then
         error(gettext("Wrong number of inputs."))
     end
 
+    isFunctionHandle = part(var.name,1)=="£" // set by m2sci_syntax() for @entries
+    if isFunctionHandle then
+        var.name = part(var.name, 2:$)
+        [boolval, index] = isdefinedvar(var)
+    end
     // Search variable name in variable name table
-    [boolval,index]=isdefinedvar(var)
-    varname=var.name
+    [boolval, index] = isdefinedvar(var)
+    varname = var.name
 
     // Variable is not defined yet
     if ~boolval then
-        scinam=varname
+        scinam = varname
 
         // If Matlab variable name is a function name in Scilab
         if funptr(varname)<>0 then
-            scinam="%"+varname
+            scinam = "%" + varname
         end
 
         // Undefined variable may be a M-file or a global variable
@@ -41,27 +45,37 @@ function sci_equiv = getvar2sci(var,lhslist)
             if verbose_mode<0 then
                 m2sci_info(msprintf(gettext("L.%d: Unknown variable %s is a M-file."),nblines,varname),-1);
             end
-            sci_equiv=Funcall(varname,size(lhslist),list(),lhslist)
+            if isFunctionHandle
+                sci_equiv = Variable(varname, Infer(list(1,1),Type(Function, Unknown)))           else
+                sci_equiv = Funcall(varname, size(lhslist), list(), lhslist)
+            end
+
         elseif exists("sci_"+varname)==1 then
             // A translated function without parameter
             if verbose_mode<0 then
                 m2sci_info(msprintf(gettext("L.%d: Unknown variable %s is a M-file (sci_%s exists)."),nblines,varname,varname),-1);
             end
-            sci_equiv=Funcall(varname,size(lhslist),list(),lhslist)
+            sci_equiv = Funcall(varname, size(lhslist), list(), lhslist)
+            if isFunctionHandle
+                sci_equiv = Variable(varname, Infer(list(1,1),Type(Function, Unknown)))           else
+                sci_equiv = Funcall(varname, size(lhslist), list(), lhslist)
+            end
+
         elseif or(varname==["i","j"]) then
             if verbose_mode<0 then
                 m2sci_info(msprintf(gettext("Variable %s supposed to be the Imaginary unit."),varname),-1);
             end
-            sci_equiv=Variable("%i",Infer(list(1,1),Type(Double,Complex)))
+            sci_equiv=Variable("%i", Infer(list(1,1), Type(Double,Complex)))
+
         else
             // Try to find what is 'varname'
-            sci_equiv=get_unknown(varname,lhslist)
+            sci_equiv = get_unknown(varname,lhslist)
             if verbose_mode<0 then
                 m2sci_info(msprintf(gettext("L.%d: Unknown variable %s."),nblines,varname),-1);
             end
         end
     else
-        sci_equiv=Variable(varname,Infer(varslist(index).dims,varslist(index).type))
+        sci_equiv = Variable(varname, Infer(varslist(index).dims,varslist(index).type))
     end
 endfunction
 
@@ -82,12 +96,12 @@ function sci_equiv = get_unknown(varname,lhslist)
     // Check if it is a Matlab function not converted yet
     if or(varname==not_yet_converted()) then
         set_infos(msprintf(gettext("Matlab function %s not yet converted."),varname),2)
-        tmpvar=Variable(varname,Infer())
-        sci_equiv=Funcall("mtlb",1,Rhs_tlist(tmpvar),lhslist)
+        tmpvar = Variable(varname, Infer())
+        sci_equiv = Funcall("mtlb", 1, Rhs_tlist(tmpvar), lhslist)
     else
         // Other cases: I am not able to determine what is nam
-        set_infos(msprintf(gettext("mtlb(%s) can be replaced by %s() or %s whether %s is an M-file or not."),varname,varname,varname,varname),1)
-        tmpvar=Variable(varname,Infer())
-        sci_equiv=Funcall("mtlb",1,Rhs_tlist(tmpvar),lhslist)
+        set_infos(msprintf(gettext("mtlb(%s) can be replaced by %s() or %s whether %s is an M-file or not."), varname, varname, varname, varname), 1)
+        tmpvar = Variable(varname, Infer())
+        sci_equiv = Funcall("mtlb", 1, Rhs_tlist(tmpvar), lhslist)
     end
 endfunction
index ec09763..7cc73a3 100644 (file)
@@ -73,7 +73,7 @@ function sci_instr = equal2sci(mtlb_instr)
             lhslist($+1)=Variable(mtlb_instr.lhs(k).name,INFER)
         elseif typeof(mtlb_instr.lhs(k))=="operation" then
             if mtlb_instr.lhs(k).operator<>"ins" then
-                error(msprintf(gettext("lhs cannot be a %s operation."),mtlb_instr.lhs(k).operator))
+                error(msprintf(gettext("Wrong LHS ''%s'' operation: Insertion expected.\n"),mtlb_instr.lhs(k).operator))
             end
 
             [bval,index]=isdefinedvar(mtlb_instr.lhs(k).operands(1))
@@ -189,6 +189,9 @@ function sci_instr = equal2sci(mtlb_instr)
         // Update varslist
         updatevarslist(sci_instr.lhs);
     end
+
+
+
 endfunction
 
 // ---------------------------------------------------------------------------
@@ -292,7 +295,6 @@ function [sci_clause, nblines] = clause2sci(mtlb_clause, nblines, leveltemp)
 
             // Convert expression
             [sci_exprn]=expression2sci(mtlb_clause.elseifs(k).expression)
-
             // Get instructions to insert if there are
             if m2sci_to_insert_b<>list() then
                 to_insert=m2sci_to_insert_b
@@ -331,8 +333,8 @@ function [sci_clause, nblines] = clause2sci(mtlb_clause, nblines, leveltemp)
                 end
             sci_else($+1)=tlist(["sup_equal","sup_instr","nb_opr"],sci_else_temp,mtlb_clause.else(k).nb_opr)
             else
-            [instr,nblines]=instruction2sci(mtlb_clause.else(k),nblines)
-                sci_else=update_instr_list(sci_else,instr)
+                [instr, nblines] = instruction2sci(mtlb_clause.else(k),nblines)
+                sci_else = update_instr_list(sci_else,instr)
             end
         end
 
index b28e974..e6fe4fc 100644 (file)
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function r=is_a_scalar(A)
+function r = is_a_scalar(A)
     // M2SCI function
     // Checks if all dimensions of A are 1
     // Input: A = a M2SCI tlist
     // Output: r = boolean value (true if A is a scalar)
 
-    n=size(A.dims)
-    r=%T
-    for k=1:n
-        if A.dims(k)<>1 then
-            r=%F
-            //return
+    r = %T
+    for k = 1:size(A.dims)
+        if A.dims(k) <> 1 then
+            r = %F
+            break
         end
     end
 endfunction
-
-
-function a = toto()
-a = %T;
-if 1 then
-a = %F;
-return
-end
-a = %T;
-endfunction
index aadc39f..9cb60cf 100644 (file)
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function r=is_complex(A)
+function r = is_complex(A)
     // M2SCI function
     // Checks if A is complex
     // Input: A = a M2SCI tlist
     // Output: r = boolean value (true if A is complex)
 
-    r=A.property==Complex
+    r = A.property==Complex
 endfunction
 
index 4e6e104..8bee905 100644 (file)
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function r=is_real(A)
+function r = is_real(A)
     // M2SCI function
     // Checks if A real
     // Input: A = a M2SCI tlist
     // Output: r = boolean value (true if A is real)
 
-    r=A.type.property==Real
+    r = A.type.property==Real
 endfunction
 
diff --git a/scilab/modules/m2sci/macros/kernel/is_sparse.sci b/scilab/modules/m2sci/macros/kernel/is_sparse.sci
new file mode 100644 (file)
index 0000000..0b28eca
--- /dev/null
@@ -0,0 +1,22 @@
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2020 - Samuel GOUGEON
+//
+// This file is hereby licensed under the terms of the GNU GPL v2.0,
+// pursuant to article 5.3.4 of the CeCILL v.2.1.
+// This file was originally licensed under the terms of the CeCILL v2.1,
+// and continues to be available under such terms.
+// For more information, see the COPYING file which you should have received
+// along with this program.
+
+function r = is_sparse(A)
+    // M2SCI function
+    // Checks if A is sparse
+    // Input: A = a M2SCI tlist
+    // Output: -1: Unknown    0: not sparse    1: is sparse
+
+    r = bool2s(A.vtype==Sparse | (A.vtype==Boolean & A.property==Sparse))
+    if ~r & (A.vtype==Unknown | (A.vtype==Boolean & A.property==Unknown))
+        r = -1
+    end
+endfunction
+
index 0473dd8..94e48cb 100644 (file)
 
 function r=isinstring(str,pos)
     // Finds if the character pointed by pos is in a string (return %T) or not (return %F)
+    //
+    // called from lst_funcall(), m2sci_syntax(), and mfile2sci()
+    //
+    // a = "a''b"  doit être converti en  a = "a''''b" (Octave)
+    //             ou en a = "¤¤a''''b" (Matlab: étiquette pour string)
+    // a = 'a""b'  doit être converti en  a = "a""""b"
+    // Octave :
+    //   a = "lhlhl\     OK, while a='llmmj\   KO: error
 
     str=part(str,1:pos-1)
     quote="''"
@@ -28,7 +36,6 @@ function r=isinstring(str,pos)
     strcnt=0
     qcount=0 // Quote counter
     bcount=0 // Bracket counter
-    pcount=0 // Paranthesis counter
     sym=" "
 
     while %T ,
@@ -67,7 +74,7 @@ function r=isinstring(str,pos)
             end
         elseif sym==quote then
             // Check if transpose or beginning of a string
-            if ~isalphanum(psym) & psym<>")" & psym<>"]" & psym<>"." & psym<>quote then // Not a transpose
+            if ~isalphanum(psym) & and(psym<>[")" "]" "}" "." quote]) then // Not a transpose
                 strcnt=1
             elseif bcount<>0 then // Inside a matrix definition
                 if part(str,ksym-1)==" " then strcnt=1,end
index c3d8f5c..a0f2619 100644 (file)
@@ -1,7 +1,7 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2002-2004 - INRIA - Vincent COUVERT
-//
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
+// Copyright (C) 2020 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
@@ -10,7 +10,7 @@
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function [scitree,trad,txt,crp]=m2sci(mtlbtree,nam,Recmode,prettyprintoutput)
+function [scitree,trad,txt,crp] = m2sci(mtlbtree, nam, Recmode, prettyprintoutput)
     // This function translates Matlab interpreted code tree of a function to Scilab
     // Input arguments:
     //  - mtlbtree: tree (returned by macr2tree) representing Matlab function compiled code
@@ -23,13 +23,13 @@ function [scitree,trad,txt,crp]=m2sci(mtlbtree,nam,Recmode,prettyprintoutput)
     //  - txt: Scilab equivalent function code (function declaration and variables initialisation)
     //  - crp: Scilab equivalent function code (function body)
 
-    [lhs,rhs]=argn(0)
+    [lhs,rhs] = argn(0)
     if rhs==1 then
         error(gettext("Wrong number of inputs."))
     end
-    if rhs==2 then Recmode=%f,end
+    if rhs==2 then Recmode = %f,end
 
-    lcount=1;
+    lcount = 1;
 
     // Level of clause indentation (used for getting temporary variables and for updating varslist)
     // if there is not a clause then size of level = 1 and the value is 0 (level=0)
@@ -38,164 +38,169 @@ function [scitree,trad,txt,crp]=m2sci(mtlbtree,nam,Recmode,prettyprintoutput)
     // if there are 2 clauses, then size of level = 3, the value of level(3) : the index of clause part for the second clause (1 for if statements, 2 for first elseif statements, 3 for second elseif statements,...)
     // for example : level = [0,4,1] : in this case there are 2 clauses the index for the first clause (i.e level(2)) is 4 (4 for second 'elseif' statements), the index for the second clause (i.e level(3)) is 1 (1 for 'if' statements)
     // the first components of level (i.e level(1)) is always 0 (because in the zero level there is no clause, so there is no 'if' no 'elseif' no 'else')
-    level=0
+    level = 0
 
     // Parameters declaration
     sciparam()
 
     // Scilab variable types
     Double   = 1;
-    Boolean  = 4; // Boolean type can also be 6
-    Sparse   = 5;
+    Polynomial = 2;
+    Boolean  = 4;   // Boolean type can also be 6
+    Sparse   = 5;   // Including Sparse boolean
     Int      = 8;
     Handle   = 9;
     String   = 10;
     Cell     = 17;
     Struct   = 16;
-    Function = 13;
+    Function = 12;  // Pseudo-type, gathering property = Macro | Builtin
+    Macro    = 13;
     Builtin  = 130;
-    Void     = 0;
-    Unknown  =-1; // Unknown type or dimension
-    SupToOne =-2; // Dimension >1
-    NotNull  =-3; // Dimension >0
-    Complex = 1 //"Complex"
-    Real    = 0 //"Real"
+    Unknown  = -1;   // Unknown type or property or dimension
+    SupToOne = -2;   // Dimension >1
+    NotNull  = -3;   // Dimension >0
+    Complex  = 1;     // "Complex"
+    Real     = 0;     // "Real"
+    Char     = 11;  // Property for String type
+    TypeNames = struct("1","Double", "2","Polynomial", "4","Boolean",..
+        "5","Sparse", "8","Int", "9","Handle", "10","String", ..
+        "12","Function", "16","Struct", "17","Cell", "-1","Unknown");
+    PropertyNames = struct("-1","Unknown","4","Boolean","5","Sparse","13","Macro",..
+        "130","Builtin","0","Real","1","Complex","10","String","11","Char");
     Units = ["pixels","centimeters","points","inches","normalized"]
-
     Colon = Variable(":", Infer(list(Unknown,1),Type(Double,Real)))
 
     global %graphics
-    %graphics=struct()
-    %graphics.type=Double
-    %graphics.units="pixels"
+    %graphics = struct()
+    %graphics.type = Double
+    %graphics.units = "pixels"
 
     // Translated function input arguments
-    macrhs=size(mtlbtree.inputs)
+    macrhs = size(mtlbtree.inputs)
     global("varslist")
-    varslist=list()
-    for k=1:macrhs
+    varslist = list()
+    for k = 1:macrhs
         if funptr(mtlbtree.inputs(k).name)<>0 then // Matlab variable name corresponding to a Scilab function name
-            varslist($+1)=M2scivar("%"+mtlbtree.inputs(k).name,mtlbtree.inputs(k).name,Infer())
-            mtlbtree.inputs(k).name="%"+mtlbtree.inputs(k).name,
+            varslist($+1) = M2scivar("%"+mtlbtree.inputs(k).name,mtlbtree.inputs(k).name,Infer())
+            mtlbtree.inputs(k).name = "%"+mtlbtree.inputs(k).name,
         elseif mtlbtree.inputs(k).name=="varargin" then
-            varslist($+1)=M2scivar("varargin","varargin",Infer(list(Unknown,Unknown),Type(Cell,Unknown)))
+            varslist($+1) = M2scivar("varargin","varargin",Infer(list(Unknown,Unknown),Type(Cell,Unknown)))
         else
-            varslist($+1)=M2scivar(mtlbtree.inputs(k).name,mtlbtree.inputs(k).name,Infer())
+            varslist($+1) = M2scivar(mtlbtree.inputs(k).name,mtlbtree.inputs(k).name,Infer())
         end
     end
     // Add predefined variables in the defined variables
-    varslist($+1)=M2scivar("%i","%i",Infer(list(1,1),Type(Double,Complex)))
-    varslist($+1)=M2scivar("%i","%j",Infer(list(1,1),Type(Double,Complex)))
-    varslist($+1)=M2scivar("%nan","NaN",Infer(list(1,1),Type(Double,Real)))
-    varslist($+1)=M2scivar("%nan","nan",Infer(list(1,1),Type(Double,Real)))
-    varslist($+1)=M2scivar("%inf","Inf",Infer(list(1,1),Type(Double,Real)))
-    varslist($+1)=M2scivar("%inf","inf",Infer(list(1,1),Type(Double,Real)))
-    varslist($+1)=M2scivar("%pi","pi",Infer(list(1,1),Type(Double,Real)))
-    varslist($+1)=M2scivar("%eps","eps",Infer(list(1,1),Type(Double,Real)))
-    varslist($+1)=M2scivar(":", ":", Infer(list(1,Unknown),Type(Unknown,Unknown)))
-    varslist($+1)=M2scivar("$", "$", Infer(list(1,1),Type(Double,Real)))
-    varslist($+1)=M2scivar("varargout","%varargout",Infer(list(Unknown,Unknown),Type(Cell,Unknown)))
-    varslist($+1)=M2scivar("%shortcircuit","%shortcircuit",Infer(list(1,1),Type(Double,Real))) // Used for short circuiting operators
+    varslist($+1) = M2scivar("%i","%i",Infer(list(1,1),Type(Double,Complex)))
+    varslist($+1) = M2scivar("%i","%j",Infer(list(1,1),Type(Double,Complex)))
+    varslist($+1) = M2scivar("%nan","NaN",Infer(list(1,1),Type(Double,Real)))
+    varslist($+1) = M2scivar("%nan","nan",Infer(list(1,1),Type(Double,Real)))
+    varslist($+1) = M2scivar("%inf","Inf",Infer(list(1,1),Type(Double,Real)))
+    varslist($+1) = M2scivar("%inf","inf",Infer(list(1,1),Type(Double,Real)))
+    varslist($+1) = M2scivar("%pi","pi",Infer(list(1,1),Type(Double,Real)))
+    varslist($+1) = M2scivar("%eps","eps",Infer(list(1,1),Type(Double,Real)))
+    varslist($+1) = M2scivar(":", ":", Infer(list(1,Unknown),Type(Unknown,Unknown)))
+    varslist($+1) = M2scivar("$", "$", Infer(list(1,1),Type(Double,Real)))
+    varslist($+1) = M2scivar("varargout","%varargout",Infer(list(Unknown,Unknown),Type(Cell,Unknown)))
 
     // Translated function output arguments
-    maclhs=size(mtlbtree.outputs)
-    for k=1:maclhs
+    maclhs = size(mtlbtree.outputs)
+    for k = 1:maclhs
         if funptr(mtlbtree.outputs(k).name)<>0 then
-            varslist($+1)=M2scivar("%"+mtlbtree.outputs(k).name,mtlbtree.outputs(k).name,Infer(list(0,0),Type(Double,Real)))
-            mtlbtree.outputs(k).name="%"+mtlbtree.outputs(k).name
+            varslist($+1) = M2scivar("%"+mtlbtree.outputs(k).name,mtlbtree.outputs(k).name,Infer(list(0,0),Type(Double,Real)))
+            mtlbtree.outputs(k).name = "%"+mtlbtree.outputs(k).name
         else
-            varslist($+1)=M2scivar(mtlbtree.outputs(k).name,mtlbtree.outputs(k).name,Infer(list(0,0),Type(Double,Real)))
+            varslist($+1) = M2scivar(mtlbtree.outputs(k).name,mtlbtree.outputs(k).name,Infer(list(0,0),Type(Double,Real)))
         end
     end
 
     // Translation
-    [scitree,crp]=mtlbtree2sci(mtlbtree,prettyprintoutput)
+    [scitree,crp] = mtlbtree2sci(mtlbtree,prettyprintoutput)
 
-    dcl=[]
+    dcl = []
     // Add special code
     // If nargin or nargout function is used
     if isdefinedvar("%nargin") | isdefinedvar("%nargout") then
-        dcl=["";gettext("// Number of arguments in function call");"[%nargout,%nargin] = argn(0)"]
+        dcl = ["";gettext("// Number of arguments in function call");"[%nargout,%nargin] = argn(0)"]
     end
 
     // Initial value of lhs arguments
     // If they are not initialized by input value, they are initialized with []
-    ini=[]
-    for k=1:size(mtlbtree.outputs)
-        found=%F
-        for l=1:size(mtlbtree.inputs)
+    ini = []
+    for k = 1:size(mtlbtree.outputs)
+        found = %F
+        for l = 1:size(mtlbtree.inputs)
             if mtlbtree.inputs(l).name==mtlbtree.outputs(k).name then
-                found=%T
+                found = %T
             end
         end
         if ~found then
             if mtlbtree.outputs(k).name<>"varargout" then
-                ini=[ini;mtlbtree.outputs(k).name+"=[];"]
+                ini = [ini;mtlbtree.outputs(k).name+" = [];"]
             else
-                ini=[ini;mtlbtree.outputs(k).name+"=list();"]
+                ini = [ini;mtlbtree.outputs(k).name+" = list();"]
             end
         end
     end
 
     // Graphics init
-    //graph_ini=[gettext("// Graphics initialisation");"global %graphics";"%graphics.type=1";"%graphics.units=""pixels"""];
-    graph_ini=[]
+    //graph_ini = [gettext("// Graphics initialisation");"global %graphics";"%graphics.type = 1";"%graphics.units = ""pixels"""];
+    graph_ini = []
     if ini<>[] then
-        ini=["";gettext("// Output variables initialisation (not found in input variables)");ini]
+        ini = ["";gettext("// Output variables initialisation (not found in input variables)");ini]
     end
-    //ini=[ini;" ";graph_ini]
+    //ini = [ini;" ";graph_ini]
 
     // Info on macros variables
     if verbose_mode<0 then
         write(%io(2),gettext("TESTING M2SCI: creating varslist file..."))
-        n=size(varslist)
-        info=[]
+        n = size(varslist)
+        info = []
 
-        for k=1:n
-            info=[info;"//"+varslist(k).sciname+infer2txt(varslist(k).infer)];
+        for k = 1:n
+            info = [info;"//"+varslist(k).sciname+infer2txt(varslist(k).infer)];
         end
-        infofilename=res_path+nam+"_varslist.dia.ref";
+        infofilename = res_path+nam+"_varslist.dia.ref";
         if verbose_mode==-2 then
             write(%io(2),info)
         end
-        infofile=mopen(infofilename,"w");
+        infofile = mopen(infofilename,"w");
         mputl(info,infofile);
         mclose(infofile);
     end
 
     // Add function header
     if ~batch then
-        rhsexpr="("
-        for k=1:macrhs
-            rhsexpr=rhsexpr+varslist(k).sciname
+        rhsexpr = "("
+        for k = 1:macrhs
+            rhsexpr = rhsexpr+varslist(k).sciname
             if k<macrhs then
-                rhsexpr=rhsexpr+","
+                rhsexpr = rhsexpr+","
             end
         end
-        rhsexpr=rhsexpr+")"
-        hdr="function ["
-        for k=1:size(mtlbtree.outputs)
-            hdr=hdr+mtlbtree.outputs(k).name
+        rhsexpr = rhsexpr+")"
+        hdr = "function ["
+        for k = 1:size(mtlbtree.outputs)
+            hdr = hdr+mtlbtree.outputs(k).name
             if k<>size(mtlbtree.outputs) then
-                hdr=hdr+","
+                hdr = hdr+","
             end
         end
-        hdr=hdr+"] = "+nam+rhsexpr;
-        txt=[hdr;ini;dcl]
+        hdr = hdr+"] = "+nam+rhsexpr;
+        txt = [hdr;ini;dcl]
     else
-        txt=[ini;dcl]
+        txt = [ini;dcl]
     end
 
     // Generate associated translation function
     if batch then
-        trad=[
+        trad = [
         "function [tree] = sci_"+fnam+"(tree)"
         msprintf(gettext("// Generated by M2SCI\n// Conversion function for Matlab %s\n// Input: tree = Matlab funcall tree\n// Output: tree = Scilab equivalent for tree"),fnam)
         ""
-        "tree=Funcall(""exec"",1,Rhs_tlist(tree.name),tree.lhs)"
+        "tree = Funcall(""exec"",1,Rhs_tlist(tree.name),tree.lhs)"
         ]
     else
-        trad=[
+        trad = [
         "function [tree] = sci_"+nam+"(tree)"
         msprintf(gettext("// Copyright INRIA (Generated by M2SCI)\n// Conversion function for Matlab %s()\n// Input: tree = Matlab funcall tree\n// Output: tree = Scilab equivalent for tree"),nam)
         ]
@@ -203,68 +208,77 @@ function [scitree,trad,txt,crp]=m2sci(mtlbtree,nam,Recmode,prettyprintoutput)
         if maclhs==0 then // Function with no outputs
             // Do nothing
         elseif maclhs==1 then // Function with one output
-            [boolval,index]=isdefinedvar(M2scivar(mtlbtree.outputs(1).name,strsubst(mtlbtree.outputs(1).name,"%",""),Infer()))
+            [boolval,index] = isdefinedvar(M2scivar(mtlbtree.outputs(1).name,strsubst(mtlbtree.outputs(1).name,"%",""),Infer()))
             if boolval then
-                dims=sci2exp(varslist(index).dims)
-                vtype=varslist(index).vtype
-                prop=varslist(index).property
+                dims = sci2exp(varslist(index).dims)
+                vtype = varslist(index).vtype
+                prop = varslist(index).property
             else
-                dims="list(Unknown,Unknown)"
-                vtype=Unknown
-                prop=Unknown
+                dims = "list(Unknown,Unknown)"
+                vtype = Unknown
+                prop = Unknown
             end
 
             select vtype
-            case Double  then vtype="Double"
-            case Boolean  then vtype="Boolean"
-            case String then vtype="String"
-            case Struct then vtype="Struct"
-            case Cell then vtype="Cell"
-            case Unknown then vtype="Unknown"
-            case Sparse then vtype="Sparse"
+            case Boolean  then vtype = "Boolean"
+            case Int      then vtype = "Int"
+            case Double   then vtype = "Double"
+            case Sparse   then vtype = "Sparse"
+            case Polynomial then vtype = "Polynomial"
+            case String   then vtype = "String"
+            case Handle   then vtype = "Handle"
+            case Function then vtype = "Function"
+            case Struct   then vtype = "Struct"
+            case Cell     then vtype = "Cell"
+            case Unknown  then vtype = "Unknown"
             end
 
             select prop
-            case -1 then prop="Unknown"
-            case  0 then prop="Real"
-            case  1 then prop="Complex"
+            case Unknown    then prop = "Unknown"
+            case Real       then prop = "Real"
+            case Complex    then prop = "Complex"
+            case Sparse     then prop = "Sparse"
+            case Char       then prop = "Char"
+            case Macro      then prop = "Macro"
+            case Builtin    then prop = "Builtin"
+            case Polynomial then prop = "Polynomial"
             end
 
-            typ="Type("+vtype+","+prop+")"
+            typ = "Type("+vtype+","+prop+")"
 
             if mtlbtree.outputs($).name<>"varargout" then
-                trad=[trad;"tree.lhs(1).dims="+dims;"tree.lhs(1).type="+typ]
+                trad = [trad;"tree.lhs(1).dims = "+dims;"tree.lhs(1).type = "+typ]
             else
-                trad=[trad;
-                "for k=1:lhs"
-                "  tree.lhs(k).dims=list(Unknown,Unknown)"
-                "  tree.lhs(k).vtype=Unknown"
-                "  tree.lhs(k).property=Unknown"
+                trad = [trad;
+                "for k = 1:lhs"
+                "  tree.lhs(k).dims = list(Unknown,Unknown)"
+                "  tree.lhs(k).vtype = Unknown"
+                "  tree.lhs(k).property = Unknown"
                 "end"
                 ]
             end
         else  // Function with more than 1 output
-            dims=list();
-            vtype=[];
-            prop=[]
-            for k=1:maclhs
-                [boolval,index]=isdefinedvar(M2scivar(mtlbtree.outputs(k).name,strsubst(mtlbtree.outputs(k).name,"%",""),Infer()))
+            dims = list();
+            vtype = [];
+            prop = []
+            for k = 1:maclhs
+                [boolval,index] = isdefinedvar(M2scivar(mtlbtree.outputs(k).name,strsubst(mtlbtree.outputs(k).name,"%",""),Infer()))
                 if boolval then
-                    dims(k)=varslist(index).dims
-                    vtype=[vtype;varslist(index).vtype]
-                    prop=[prop;varslist(index).property]
+                    dims(k) = varslist(index).dims
+                    vtype = [vtype;varslist(index).vtype]
+                    prop = [prop;varslist(index).property]
                 else
-                    dims(k)=list(Unknown,Unknown)
-                    vtype=[vtype;Unknown]
-                    prop=[prop;Unknown]
+                    dims(k) = list(Unknown,Unknown)
+                    vtype = [vtype;Unknown]
+                    prop = [prop;Unknown]
                 end
             end
 
-            dimstemp=sci2exp(dims)
-            dims=["dims="+dimstemp(1);dimstemp(2:$)]
-            vtype="vtype="+sci2exp(vtype)
-            prop="prop="+sci2exp(prop)
-            trad=[trad;
+            dimstemp = sci2exp(dims)
+            dims = ["dims = "+dimstemp(1);dimstemp(2:$)]
+            vtype = "vtype = "+sci2exp(vtype)
+            prop = "prop = "+sci2exp(prop)
+            trad = [trad;
             gettext("//  dims(i,:) is the ith output argument dimensions vector")
             dims
             gettext("//  dims(i,:) is the ith output argument dimensions vector")
@@ -272,31 +286,31 @@ function [scitree,trad,txt,crp]=m2sci(mtlbtree,nam,Recmode,prettyprintoutput)
             gettext("//  prop(i) is the ith output argument property")
             prop]
             if mtlbtree.outputs($).name<>"varargout" then
-                trad=[trad;
-                "for k=1:lhs"
-                "  tree.lhs(k).dims=dims(k)"
-                "  tree.lhs(k).vtype=vtype(k)"
-                "  tree.lhs(k).property=prop(k)"
+                trad = [trad;
+                "for k = 1:lhs"
+                "  tree.lhs(k).dims = dims(k)"
+                "  tree.lhs(k).vtype = vtype(k)"
+                "  tree.lhs(k).property = prop(k)"
                 "end"
                 ]
             else
-                trad=[trad;
-                "for k=1:min(size(dims),lhs)"
-                "  tree.lhs(k).dims=dims(k)"
-                "  tree.lhs(k).vtype=vtype(k)"
-                "  tree.lhs(k).property=prop(k)"
+                trad = [trad;
+                "for k = 1:min(size(dims),lhs)"
+                "  tree.lhs(k).dims = dims(k)"
+                "  tree.lhs(k).vtype = vtype(k)"
+                "  tree.lhs(k).property = prop(k)"
                 "end"
                 gettext("// Inference for varargout")
-                "for k=min(size(dims),lhs)+1:lhs"
-                "  tree.lhs(k).dims=list(Unknown,Unknown)"
-                "  tree.lhs(k).vtype=Unknown"
-                "  tree.lhs(k).property=Unknown"
+                "for k = min(size(dims),lhs)+1:lhs"
+                "  tree.lhs(k).dims = list(Unknown,Unknown)"
+                "  tree.lhs(k).vtype = Unknown"
+                "  tree.lhs(k).property = Unknown"
                 "end"
                 ]
             end
         end
     end
-    trad=[trad;"endfunction"]
+    trad = [trad;"endfunction"]
     clearglobal varslist
     clearglobal %graphics
 endfunction
@@ -304,53 +318,78 @@ endfunction
 // ---------------------------------------------------------------------------
 
 function txt = infer2txt(infer)
-    txt=[]
-    dims=[]
+    txt = []
+    dims = []
     if typeof(infer)=="infer" then
-        for l=1:size(infer.dims)
-            dims=[dims,string(infer.dims(l))]
+        for l = 1:size(infer.dims)
+            dims = [dims,string(infer.dims(l))]
         end
     else
         error(gettext("Not yet implemented."))
     end
-    dims=strcat(dims," ")
+    dims = strcat(dims," ")
 
-    tp=infer.type.vtype
-    if tp==1 then
-        tp="Double"
-    elseif tp==10 then
-        tp="String"
-    elseif or(tp==[4,6]) then
-        tp="Boolean"
-    elseif tp==16 then
-        tp="Struct"
+    tp = infer.type.vtype
+    if or(tp==[Boolean,6]) then
+        tp = "Boolean"
+    elseif tp==Int then
+        tp = "Int"
+    elseif tp==Double then
+        tp = "Double"
+    elseif tp==Polynomial then
+        tp = "Polynomial"
+    elseif tp==String then
+        tp = "String"
+    elseif tp==Handle then
+        tp = "Handle"
+    elseif tp==Function then
+        tp = "Function"
+    elseif tp==Struct then
+        tp = "Struct"
         for k = 1:size(infer.contents.index)
             if typeof(infer.contents.index(k))<>"list" then
-                txt=[txt;expression2code(list(infer.contents.index(k)))+infer2txt(infer.contents.data(k))]
+                txt = [txt;expression2code(list(infer.contents.index(k)))+infer2txt(infer.contents.data(k))]
             else
-                txt=[txt;expression2code(infer.contents.index(k))+infer2txt(infer.contents.data(k))]
+                txt = [txt;expression2code(infer.contents.index(k))+infer2txt(infer.contents.data(k))]
             end
         end
     elseif tp==17 then
-        tp="Cell"
+        tp = "Cell"
         for k = 1:size(infer.contents.index)
             if typeof(infer.contents.index(k))<>"list" then
-                txt=[txt;expression2code(list(infer.contents.index(k)))+infer2txt(infer.contents.data(k))]
+                txt = [txt;expression2code(list(infer.contents.index(k)))+infer2txt(infer.contents.data(k))]
             else
-                txt=[txt;expression2code(infer.contents.index(k))+infer2txt(infer.contents.data(k))]
+                txt = [txt;expression2code(infer.contents.index(k))+infer2txt(infer.contents.data(k))]
             end
         end
-    elseif tp==9 then
-        tp="Handle"
     else
-        tp="Unknown"
+        tp = "Unknown"
     end
-    if infer.type.property==Real then
-        prop="Real"
-    elseif infer.type.property==Complex then
-        prop="Complex"
+    p = infer.type.property
+    select p
+    case Real
+        prop = "Real"
+    case Complex
+        prop = "Complex"
+    case Sparse
+        prop = "Sparse"
+    case String
+        prop = "String"
+    case Char
+        prop = "Char"
+    case Macro
+        prop = "Macro"
+    case Builtin
+        prop = "Builtin"
     else
-        prop="Unknown"
+        if type(p)==10 & ..
+           or(p==["int8" "int16" "int32" "int64" ..
+                  "uint8" "uint16" "uint32" "uint64" ..
+                  "Figure" "Axes"])
+            prop = p
+        else
+            prop = "Unknown"
+        end
     end
-    txt=["|"+dims+"|"+tp+"|"+prop;txt]
+    txt = ["|"+dims+"|"+tp+"|"+prop;txt]
 endfunction
index fd6970c..071a2c3 100644 (file)
@@ -18,8 +18,6 @@ function m2sci_info(txt,verb_mode)
     // verb_mode=-1: information written in logfile and displayed in Scilab window (should not be used by user) (TEST MODE)
     // verb_mode=-2: information written in logfile and displayed in Scilab window (should not be used by user) and varslist displayed in Scilab command window (DEBUG MODE)
 
-
-
     if verb_mode==0 then
         return
     end
@@ -33,7 +31,7 @@ function m2sci_info(txt,verb_mode)
         for k=1:size(txt,"*")
             m2sci_to_insert_b($+1)=Equal(..
             list(Variable("ans",Infer())),..
-            Funcall("%comment",1,list(Cste(" "+txt(k))),list(Variable("",Infer()))))
+            Funcall("%comment",1,list(Cste(txt(k))),list(Variable("",Infer()))))
             m2sci_to_insert_b($+1)=list("EOL");
         end
     end
index b933417..f6d6e40 100644 (file)
@@ -2,7 +2,7 @@
 // Copyright (C) ???? - INRIA - Scilab
 // Copyright (C) 2002-2004 - INRIA - Vincent COUVERT
 // Copyright (C) 2012 - 2016 - Scilab Enterprises
-// Copyright 2018 - Samuel GOUGEON
+// Copyright 2018 - 2020 - Samuel GOUGEON
 //
 // This file is hereby licensed under the terms of the GNU GPL v2.0,
 // pursuant to article 5.3.4 of the CeCILL v.2.1.
@@ -11,7 +11,7 @@
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function [helppart,txt,batch] = m2sci_syntax(txt)
+function [helppart, txt, batch] = m2sci_syntax(txt)
     // Make minor changes on M-file data syntax to have it readable by Scilab
     // Input arguments:
     //  - txt: the contents of an M-file
@@ -26,6 +26,8 @@ function [helppart,txt,batch] = m2sci_syntax(txt)
     //  - replace_brackets
     //  - replace_end_dollar
 
+    if ~isdef("octave_mode"), octave_mode = %f, end
+
     // Pre-process block-comments:
     // --------------------------
     // Converts block-comments tags
@@ -53,110 +55,110 @@ function [helppart,txt,batch] = m2sci_syntax(txt)
     ctm = "." + "." + "." // Continuation mark
     batch = %t
 
-    k=0
-    first_ncl=[]
+    k = 0
+    first_ncl = []
     while k<size(txt,"r")
-        k=k+1
-        tk=txt(k)
+        k = k+1
+        tk = txt(k)
         if part(stripblanks(tk),1:9) == "function " | part(stripblanks(tk),1:9) == "function[" then
-            eolind=strindex(tk,";")
+            eolind = strindex(tk,";")
             if eolind<>[] then
-                kc=isacomment(tk)
+                kc = isacomment(tk)
                 if kc<>0 then // Current line has or is a comment
                     // If function prototype immediately followed by a comment on same line
                     if stripblanks(part(tk,eolind(1):kc))<>"" then
-                        txt=[txt(1:k-1);part(tk,1:eolind(1)-1);part(tk,eolind(1)+1:length(tk));txt(k+1:size(txt,"*"))]
-                        tk=part(tk,1:eolind(1)-1)
+                        txt = [txt(1:k-1);part(tk,1:eolind(1)-1);part(tk,eolind(1)+1:length(tk));txt(k+1:size(txt,"*"))]
+                        tk = part(tk,1:eolind(1)-1)
                     end
                 elseif stripblanks(part(tk,eolind(1)+1:length(tk)))<>"" then
-                    txt=[txt(1:k-1);part(tk,1:eolind(1)-1);part(tk,eolind(1)+1:length(tk));txt(k+1:size(txt,"*"))]
-                    tk=part(tk,1:eolind(1)-1)
+                    txt = [txt(1:k-1);part(tk,1:eolind(1)-1);part(tk,eolind(1)+1:length(tk));txt(k+1:size(txt,"*"))]
+                    tk = part(tk,1:eolind(1)-1)
                 end
             end
         end
     end
 
     // Number of lines in txt (i.e. in M-file)
-    n=size(txt,"r")
-    eoltoinsert=0
-    firstctm=[]
-    k=0
+    n = size(txt,"r")
+    eoltoinsert = 0
+    firstctm = []
+    k = 0
     while k<size(txt,"r")
-        k=k+1
-        kc=strindex(txt(k),ctm)
-        isacontline=%f
+        k = k+1
+        kc = strindex(txt(k),ctm)
+        isacontline = %f
 
-        for kck=kc,
-            kc1=isacomment(txt(k))
+        for kck = kc,
+            kc1 = isacomment(txt(k))
             if ~isinstring(txt(k),kck) then
                 if kc1<>0 then // Line has a comment
                     if kc1<kck then // Continuation mark in a comment
                     else // Comment follow continuation mark
-                       &nb