Bugs #7884, #13923, #14366 - typeof help page completely reviewed and updated 94/17894/12
Nicolas [Thu, 10 Mar 2016 14:21:37 +0000 (15:21 +0100)]
* Bug #7884 fixed - typeof help page was poor, puzzled, and not up-to-date to Scilab 6: new typeof "uint64", "int64", "void", "deletelist", "implicitlist" were missing ; former "hypermat" and "size implicit" typeof weren't removed ; typeof names longer than 8-char were not documented..
* Bug #13923 fixed - changes of typeof(:) and typeof(n:$) were not documented.
* Bug #14366 fixed - typeof(var,"overload") was not documented

 * The list of existing typeof was puzzled and uncomplete.
 * The new "overload" option was not documented
 * New typeof "void", "listdelete", "implicitlist" were not documented
 * Changes of typeof(:) and typeof(n:$) were not documented.
 * There were too few examples and many missing cross-references and infos.
 * There was no history section.

Change-Id: I5e45982a49d70accb75373cdf5d878d9edb878c0

scilab/CHANGES
scilab/modules/data_structures/help/en_US/typeof.xml
scilab/modules/data_structures/help/fr_FR/typeof.xml [new file with mode: 0644]
scilab/modules/data_structures/help/ja_JP/typeof.xml [deleted file]
scilab/modules/data_structures/help/pt_BR/typeof.xml
scilab/modules/data_structures/help/ru_RU/typeof.xml [deleted file]

index 40f7acd..5b70ce9 100644 (file)
@@ -341,6 +341,8 @@ In 6.0.0:
 
 * Bug #8310        - Wrong triangulation of non-convex polygons, now it works for polygons lying in any plane or close enough of a plane.
 
+* Bug #7884 fixed - typeof help page was poor, puzzled, and not up-to-date to Scilab 6: new typeof "uint64", "int64", "void", "deletelist", "implicitlist" were missing ; former "hypermat" and "size implicit" typeof weren't removed ; typeof names longer than 8-char were not documented..
+
 * Bug #9456 fixed  - bench_run did not work on a path or in a toolbox
 
 * Bug #10082 fixed - string(complex) with real(complex)>0 did not remove the leading space replacing "+"
@@ -377,6 +379,8 @@ In 6.0.0:
 
 * Bug #13899 fixed - Syntax coloring was off in scinotes
 
+* Bug #13923 fixed - changes of typeof(:) and typeof(n:$) were not documented.
+
 * Bug #13939 fixed - in HTML help pages, itemizedlist <ul> were rendered as ordered ones
 
 * Bug #13965 fixed - The rendering of histograms with histplot() was poor
@@ -407,6 +411,8 @@ In 6.0.0:
 
 * Bug #14362 fixed - The ode() Lotka demo had typo errors
 
+* Bug #14366 fixed - typeof(var,"overload") was not documented
+
 * Bug #14374 fixed - Parser did not manage comments properly in shellmode
 
 * Bug #14375 fixed - Calling input function with a argument of 64 characters or more crashed Scilab.
index cda43a9..f3a389a 100644 (file)
@@ -2,7 +2,7 @@
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2008 - INRIA
- *
+ * Copyright (C) 2015 - 2016 - Samuel GOUGEON
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
  *
  * This file is hereby licensed under the terms of the GNU GPL v2.0,
  * 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:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="typeof" xml:lang="en">
+ <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="typeof" xml:lang="en">
     <refnamediv>
         <refname>typeof</refname>
-        <refpurpose>object type</refpurpose>
+        <refpurpose>Human-readable type or overloading code of an object</refpurpose>
     </refnamediv>
     <refsynopsisdiv>
         <title>Syntax</title>
-        <synopsis>[t]=typeof(object)</synopsis>
+        <synopsis>
+          t  = typeof(object)
+          oc = typeof(object, "overload")
+      </synopsis>
     </refsynopsisdiv>
-    <refsection>
+    <refsection role="parameters">
         <title>Arguments</title>
         <variablelist>
             <varlistentry>
             <varlistentry>
                 <term>t</term>
                 <listitem>
-                    <para>a string</para>
-                </listitem>
-            </varlistentry>
-        </variablelist>
-    </refsection>
-    <refsection>
-        <title>Description</title>
-        <para>
-            <code>t=typeof(object)</code> returns one of the following
-            strings:
-        </para>
-        <variablelist>
-            <varlistentry>
-                <term>"constant"</term>
-                <listitem>
-                    <para>
-                        if <varname>object</varname> is a real or complex matrix of double.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"polynomial"</term>
-                <listitem>
-                    <para>
-                        if <varname>object</varname> is a <link linkend="poly">polynomial matrix</link>.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"function"</term>
-                <listitem>
-                    <para>
-                        if <varname>object</varname> is a <link linkend="function">function</link> (Scilab code). See also <link linkend="deff">deff</link>.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"handle"</term>
-                <listitem>
-                    <para>
-                        if <varname>object</varname> is an <link linkend="graphics_entities">handle</link>.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"string"</term>
-                <listitem>
-                    <para>
-                        if <varname>object</varname> is a matrix made of <link linkend="strings">character strings</link>.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"boolean"</term>
-                <listitem>
-                    <para>
-                        if <varname>object</varname> is a <link linkend="matrices">boolean matrix</link>.
-                    </para>
+                    <para>a string (may have spaces): the name of the type of <varname>object</varname>
+                  </para>
                 </listitem>
             </varlistentry>
             <varlistentry>
-                <term>"list"</term>
+                <term>oc</term>
                 <listitem>
-                    <para>
-                        if <varname>object</varname> is a <link linkend="list">list</link>.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"rational"</term>
-                <listitem>
-                    <para>
-                        if <varname>object</varname> is a <link linkend="rational">rational matrix</link> (transfer matrix).
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"state-space"</term>
-                <listitem>
-                    <para>
-                        if <varname>object</varname> is a state-space model (see <link linkend="syslin">syslin</link>).
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"sparse"</term>
-                <listitem>
-                    <para>
-                        if <varname>object</varname> is a (real) <link linkend="sparse">sparse matrix</link>.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"boolean sparse"</term>
-                <listitem>
-                    <para>
-                        if <varname>object</varname> is a <link linkend="sparse">boolean sparse matrix</link>.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"st"</term>
-                <listitem>
-                    <para>
-                        if <varname>object</varname> is a <link linkend="struct">structure</link>.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"ce"</term>
-                <listitem>
-                    <para>
-                        if <varname>object</varname> is a <link linkend="cell">cell</link> array.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"fptr"</term>
-                <listitem>
-                    <para>
-                        if <varname>object</varname> is a built-in Scilab function, called also <emphasis role="italic">gateway</emphasis> (C, C++ or Fortran code).
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"pointer"</term>
-                <listitem>
-                    <para>
-                        if <varname>object</varname> is a pointer (See an use case: <link linkend="lufact">lufact</link>).
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"implicitlist"</term>
-                <listitem>
-                    <para>
-                        if <varname>object</varname> is a size implicit polynomial used for indexing. This a purely internal value.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"library"</term>
-                <listitem>
-                    <para>
-                        if <varname>object</varname> is a function <link linkend="library">library</link>.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"int8" or "uint8" or "int16" or "uint16" or "int32" or "uint32" or "int64" or "uint64"</term>
-                <listitem>
-                    <para>
-                        if <varname>object</varname> is a matrix of [unsigned] integers stored on 8, 16, 32 or 64 bits. (See <link linkend="int8">int</link>)
-                    </para>
+                    <para>a string (without spaces): the name of the overloading code for the
+                      <varname>object</varname>.
+                  </para>
                 </listitem>
             </varlistentry>
         </variablelist>
+    </refsection>
+    <refsection role="description">
+        <title>Description</title>
         <para>
-            <note>
-                Note that if the <varname>object</varname> is a <link linkend="tlist">tlist</link> or <link linkend="mlist">mlist</link>, <function>typeof</function> will return the first string in the first list entry.
-            </note>
+            <code>t = typeof(object)</code> returns one of the following strings:
         </para>
+        <table>
+            <tr>
+                <td><emphasis role="bold">string</emphasis></td>
+                <td>
+                    <varname>object</varname> is a matrix or hypermatrix made of
+                        <link linkend="strings">characters</link> and texts.
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">boolean</emphasis></td>
+                <td>
+                    <varname>object</varname> is a
+                    <link linkend="matrices">boolean matrix or hypermatrix</link>.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="2">
+                    <emphasis role="bold">int8</emphasis> or
+                    <emphasis role="bold">int16</emphasis> or
+                    <emphasis role="bold">int32</emphasis> or
+                    <emphasis role="bold">int64</emphasis> or
+                    <emphasis role="bold">uint8</emphasis> or
+                    <emphasis role="bold">uint16</emphasis> or
+                    <emphasis role="bold">uint32</emphasis> or
+                    <emphasis role="bold">uint64</emphasis>
+                </td>
+            </tr>
+            <tr>
+                <td> </td>
+                <td>
+                    <varname>object</varname> is a matrix or hypermatrix of [unsigned]
+                    integers stored
+                    on 8, 16, 32 or 64 bits. (see <link linkend="inttype">inttype</link>)
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">constant</emphasis></td>
+                <td>
+                    <varname>object</varname> is matrix or hypermatrix of
+                    decimal or complex numbers.
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">polynomial</emphasis></td>
+                <td>
+                    <varname>object</varname> is a matrix or hypermatrix of
+                    <link linkend="poly">polynomials</link>
+                      with decimal or complex coefficients.
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">rational</emphasis></td>
+                <td>
+                   <varname>object</varname> is a matrix or hypermatrix of
+                   <link linkend="rational">rational</link>
+                   fractions (e.g. transfer matrix), with decimal or complex coefficients.
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">handle</emphasis></td>
+                <td>
+                    <varname>object</varname> is a graphics
+                    <link linkend="graphics_entities">handle</link>.
+                    The subtype of graphics handles (Figure, Axes, Polyline,
+                    Compound, etc) is available in their <literal>.type</literal>
+                    property. See examples below.
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">list</emphasis></td>
+                <td><varname>object</varname> is a <link linkend="list">list</link>.</td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">st</emphasis></td>
+                <td>
+                    <varname>object</varname> is a
+                    <link linkend="struct">structure</link>
+                      or a nD-array of structures.
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">ce</emphasis></td>
+                <td>
+                    <varname>object</varname> is a
+                    <link linkend="cell">cell</link> or a nD-array of cells.
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">boolean sparse</emphasis></td>
+                <td>
+                    <varname>object</varname> is a
+                    <link linkend="sparse">boolean sparse matrix</link>.
+                    <warning>Sparse boolean hypermatrices are not supported.</warning>
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">sparse</emphasis></td>
+                <td>
+                    <varname>object</varname> is a
+                    <link linkend="sparse">sparse matrix</link>
+                        of decimal or complex numbers.
+                    <warning>Sparse numerical hypermatrices are not supported.</warning>
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">"Matlab sparse"</emphasis></td>
+                <td>
+                    <varname>object</varname> is a Matlab-like-encoded sparse
+                    matrix (see <link linkend="mtlb_sparse">mtlb_sparse()</link>).
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">fptr</emphasis></td>
+                <td>
+                    <varname>object</varname> is a built-in Scilab function,
+                    called also <emphasis role="italic">gateway</emphasis>
+                    (C, C++ or Fortran code), a.k.a. a primitive.
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">function</emphasis></td>
+                <td>
+                    <varname>object</varname> is a <link linkend="function">function</link>
+                    (Scilab code). See also <link linkend="deff">deff</link>.
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">library</emphasis></td>
+                <td>
+                    <varname>object</varname> is a
+                    <link linkend="library">library</link>
+                      of functions in Scilab language.
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">pointer</emphasis></td>
+                <td>
+                    <varname>object</varname> is a pointer. See a use case:
+                    <link linkend="lufact">lufact</link>.
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">implicitlist</emphasis></td>
+                <td>
+                    <varname>object</varname> is an implicit list using a
+                    polynomial as formal index, for indexing.
+                    See  <link linkend="dollar">n:$</link>
+                    <link linkend="colon">: (colon)</link>
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">listdelete</emphasis></td>
+                <td>
+                    is returned by <function>typeof(<literal>null()</literal>)</function>.
+                    See  <link linkend="null">null()</link>.
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">void</emphasis></td>
+                <td>is the typeof undefined elements in lists.</td>
+            </tr>
+            <tr><td colspan="2"></td></tr>
+            <tr>
+                <td colspan="2">
+                <emphasis role="bold italic">Typed T-Lists or M-Lists:</emphasis>
+                </td>
+            </tr>
+            <tr>
+                <td colspan="2">
+                    Note that if the <varname>object</varname> is a
+                    <link linkend="tlist">tlist</link>
+                    or a <link linkend="mlist">mlist</link>, <function>typeof</function>
+                    will return the corresponding customized type stored in as a
+                    string in the first list entry.
+                </td>
+            </tr>
+            <tr><td colspan="2"></td></tr>
+            <tr>
+                <td colspan="2">
+                    <emphasis role="bold italic">Reserved T-List or M-List types
+                    predefined in Scilab:</emphasis>
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">dir</emphasis></td>
+                <td><varname>object</varname> is the result of a
+                    <link linkend="dir">dir()</link>
+                    instruction, with fields <literal>name</literal>, <literal>date</literal>,
+                    <literal>bytes</literal>, and <literal>isdir</literal>.
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">state-space</emphasis></td>
+                <td><varname>object</varname> is a state-space model
+                        (see <link linkend="syslin">syslin</link>).
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">XMLDoc</emphasis></td>
+                <td>
+                    <varname>object</varname> is an XML Document created with
+                     <link linkend="xmlRead">xmlRead</link>,
+                     <link linkend="xmlReadStr">xmlReadStr</link>,
+                     <link linkend="htmlRead">htmlRead</link>, or
+                     <link linkend="htmlReadStr">htmlReadStr</link>.
+                     Additional XML typeof are defined.
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">H5Object</emphasis></td>
+                <td><varname>object</varname> is the id of an HDF5 file opened
+                    with <link linkend="h5open">h5open</link>.
+                    Additional HDF5 typeof are defined:
+                    See <link linkend="h5objects">HDF5 Objects</link>.
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">uitree</emphasis></td>
+                <td>
+                    <varname>object</varname> is a tree, a branch or a leaf as created with  a
+                     uitree feature. See for instance <link linkend="uiCreateNode">uiCreateNode</link>.
+                </td>
+            </tr>
+        </table>
     </refsection>
-    <refsection>
+    <refsection role="examples">
         <title>Examples</title>
-        <programlisting role="example"><![CDATA[
-typeof(1)
-typeof(poly(0,'x'))
+        <programlisting role="no-scilab-exec"><![CDATA[
+// Characters and texts
+t = ["a" "Hello"   "à é è ï ô û ñ"
+     "1" "Bonjour" "указывает тип объекта"
+     ";" "Chao"    "オブジェクトの型"
+    ]
+typeof(t)
 
-typeof(1/poly(0,'x'))
+// Booleans
 typeof(%t)
+typeof("abc"=="def")
+hm = grand(2,2,2,"uin",0,9)<5
+typeof(hm)
+
+// Encoded integers
+[ typeof(uint8(%pi))  typeof(int8(-%pi))
+  typeof(uint16(%pi)) typeof(int16(-%pi))
+  typeof(uint32(%pi)) typeof(int32(-%pi))
+  typeof(uint64(%pi)) typeof(int64(-%pi))
+]
+
+// Decimal numbers
+n = 1:0.3:2
+typeof(n)
+hm = grand(2,2,2,"uin",0,9)
+typeof(hm)
+
+// Decimal integers
+n = 1:7
+typeof(n)
+
+// Complex numbers
+n = [%i 1-%i %pi - 3*%i]
+typeof(n)
+
+// Special "constant"
+typeof([])   // empty matrix
+
+// Polynomials
+n = [ %z (1-%z)^2]
+typeof(n)
+n = [ 3*%i + %z (1-%i*%z)^2]
+typeof(n)
+
+// Rational fractions
+r = [%s/(1-%s) (1+%s)^2/(1-%s)]   // with real coefficients
+typeof(r)
+r = [%s/(%i-%s) (%i+%s)^2/(1-%s)] // with complex coefficients
+typeof(r)
 
-w=sprand(100,100,0.001);
-typeof(w)
-typeof(w==w)
+// Sparse matrices
+// ---------------
+w = sprand(100,100,0.001)
+typeof(w)     // sparse
+typeof(w==w)  // boolean sparse
+//x = mtlb_sparse(sprand(10,10,0.1));
+//typeof(x)
 
-deff('y=f(x)','y=2*x');
+// Functions and libraries
+// -----------------------
+deff('y=f(x)','y=2*x');  // Function in Scilab language
+f(%pi)
 typeof(f)
+typeof(cosd)  // written in Scilab
+
+typeof(corelib) // Library of functions in Scilab language
+
+typeof(sin)     // Built-in function (non-editable)
+mysin = sin;
+mysin(%pi/2)
+
+// Graphical handles
+// -----------------
+clf
+plot2d()
+typeof(gcf())
+// The subtype of the handle is in the "type" property:
+gcf().type
+gca().type
+gce().type
+
+close(gcf())
+
+// Containers
+// ----------
+// Simple list
+L = list(%pi, %t, %z, %s/(1-%s), "Bonjour", sin, cosd, list("list_in_list", 432));
+typeof(L)
+
+// Cells array
+C = {%pi, %t, %z ; %s/(1-%s), "Bonjour", list("list_in_list", 432) }
+typeof(C)
 
-L=tlist(['V','a','b'],18,'Scilab');
+// (Array of) Structure
+S.num = %pi;
+S.b = %t;
+S(2).t = "Bonjour"
+typeof(S)
+
+// Special generic indexing expressions
+// ------------------------------------
+typeof($)
+typeof(:)    // "eye()" equivalent (all elements)
+typeof(3:$)
+
+// Typeof for deletion or undefined elements:
+// -----------------------------------------
+typeof([])      // empty matrix
+typeof(null())
+L = list(%pi, ,"hey!")
+typeof(L(2))   // undefined element
+
+// Customized typeof of T-Lists:
+// ----------------------------
+L = tlist(['myLongTypeOf','a','b'], 18, 'Scilab');
 typeof(L)
 
-typeof(corelib)
+// Reserved T-List typeof
+// ----------------------
+typeof(dir())  // files directory
+
+doc = xmlReadStr("<root><a att=""foo"">Hello</a></root>");
+typeof(doc)
+xmlDelete(doc)
+
+x = 1;
+save(TMPDIR + "/x.sod", "x"); // SOD files are HDF5 ones
+a = h5open(TMPDIR + "/x.sod");
+typeof(a)
+h5close(a)
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
@@ -226,14 +422,75 @@ typeof(corelib)
                 <link linkend="type">type</link>
             </member>
             <member>
+                <link linkend="inttype">inttype</link>
+            </member>
+            <member>
+                <link linkend="overloading">overloading</link>
+            </member>
+            <member>
+                <link linkend="isreal">isreal</link>
+            </member>
+            <member>
                 <link linkend="strings">strings</link>
             </member>
             <member>
+                <link linkend="poly">poly</link>
+            </member>
+            <member>
+                <link linkend="rlist">rlist</link>
+            </member>
+            <member>
+                <link linkend="null">null</link>
+            </member>
+            <member>
+                <link linkend="sparse">sparse</link>
+            </member>
+            <member>
+                <link linkend="issparse">issparse</link>
+            </member>
+            <member>
+                <link linkend="mtlb_sparse">mtlb_sparse</link>
+            </member>
+            <member>
                 <link linkend="syslin">syslin</link>
             </member>
             <member>
-                <link linkend="poly">poly</link>
+                <link linkend="dir">dir</link>
+            </member>
+            <member>
+                <link linkend="xmlobjects">XML Objects</link>
+            </member>
+            <member>
+                <link linkend="h5objects">HDF5 Objects</link>
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>History</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0</revnumber>
+                <revdescription>
+                <itemizedlist>
+                    <listitem>"overload" keyword added. </listitem>
+                    <listitem>typeof "uint64" and "int64" added. </listitem>
+                    <listitem>
+                        typeof "hypermat" removed. Hypermatrices of any homogeneous type are now
+                        natively supported.
+                    </listitem>
+                    <listitem>typeof "listdelete" and "void" added.</listitem>
+                    <listitem>
+                        typeof(:) was "constant" and becomes "implicitlist". typeof(1:$) was
+                        "size implicit" and become "implicitlist".
+                    </listitem>
+                    <listitem>
+                        The typeof of T-lists and M-lists were limited to 8 characters. They may
+                        be longer now.</listitem>
+                    <listitem>typeof "size implicit" renamed "implicitlist" (<literal>1:$</literal>)</listitem>
+                    <listitem>Help page reviewed.</listitem>
+                </itemizedlist>
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
diff --git a/scilab/modules/data_structures/help/fr_FR/typeof.xml b/scilab/modules/data_structures/help/fr_FR/typeof.xml
new file mode 100644 (file)
index 0000000..6a6f284
--- /dev/null
@@ -0,0 +1,466 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2008 - INRIA
+ * Copyright (C) 2015 - 2016 - Samuel GOUGEON
+ * 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:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="typeof" xml:lang="en">
+    <refnamediv>
+        <refname>typeof</refname>
+        <refpurpose>type d'un objet Scilab</refpurpose>
+    </refnamediv>
+    <refsynopsisdiv>
+        <title>Syntaxe</title>
+        <synopsis>
+          t  = typeof(object)
+          oc = typeof(object, "overload")
+      </synopsis>
+    </refsynopsisdiv>
+    <refsection role="parameters">
+        <title>Paramètres</title>
+        <variablelist>
+            <varlistentry>
+                <term>object</term>
+                <listitem>
+                    <para>un objet Scilab quelconque</para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>t</term>
+                <listitem>
+                    <para>texte (un ou plusieurs mots séparés): nom du type de
+                    <varname>object</varname>
+                  </para>
+                </listitem>
+            </varlistentry>
+            <varlistentry>
+                <term>oc</term>
+                <listitem>
+                    <para>mot (sans espace) : nom du code à utiliser pour
+                    surcharger une function devant traiter ce type
+                    d'<varname>object</varname>.
+                  </para>
+                </listitem>
+            </varlistentry>
+        </variablelist>
+    </refsection>
+    <refsection role="description">
+        <title>Description</title>
+        <para>
+            <code>t = typeof(object)</code> retourne une des expressions texte suivantes :
+        </para>
+        <table>
+            <tr><td><emphasis role="bold">string</emphasis></td>
+                <td><varname>object</varname> est une matrice ou hypermatrice de
+                        <link linkend="strings">caractères</link> et/ou de textes.
+                </td>
+            </tr>
+            <tr>
+                <td><emphasis role="bold">boolean</emphasis></td>
+                <td><varname>object</varname> est une
+                <link linkend="matrices">matrice ou hypermatrice booléenne</link>.
+                </td>
+            </tr>
+            <tr><td colspan="2">
+                <emphasis role="bold">int8</emphasis> ou
+                <emphasis role="bold">int16</emphasis> ou
+                <emphasis role="bold">int32</emphasis> ou
+                <emphasis role="bold">int64</emphasis> ou
+                <emphasis role="bold">uint8</emphasis> ou
+                <emphasis role="bold">uint16</emphasis> ou
+                <emphasis role="bold">uint32</emphasis> ou
+                <emphasis role="bold">uint64</emphasis>
+                </td>
+            </tr>
+            <tr><td> </td>
+                <td><varname>object</varname> est une matrice ou hypermatrice d'entiers
+                [positifs ou signés] encodés sur
+                8, 16, 32 or 64 bits (voir <link linkend="inttype">inttype</link>).
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">constant</emphasis></td>
+                <td><varname>object</varname> est une matrice ou hypermatrice
+                de nombres
+                décimaux réels ou complexes.
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">polynomial</emphasis></td>
+                <td><varname>object</varname> est une matrice ou hypermatrice de
+                    <link linkend="poly">polynômes</link> à coefficients
+                        réels ou complexes.
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">rational</emphasis></td>
+                <td><varname>object</varname> est une matrice ou hypermatrice de
+                <link linkend="rational">fractions rationelles</link>
+                (telle qu'une matrice de transfert), à coefficients décimaux
+                réels ou complexes.
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">handle</emphasis></td>
+                <td><varname>object</varname> est un
+                    <link linkend="graphics_entities">handle</link> (identifiant)
+                    graphique. Le (sous)type d'élément graphique
+                    (Figure, Axes, Polyline, Compound, etc) est indiqué
+                    par leur attribut <literal>.type</literal>. Voir les
+                    exemples ci-après.
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">list</emphasis></td>
+                <td><varname>object</varname> est une
+                <link linkend="list">liste</link> simple.
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">st</emphasis></td>
+                <td><varname>object</varname> est une
+                    <link linkend="struct">structure</link>
+                      ou un nD-tableau de structures.
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">ce</emphasis></td>
+                <td><varname>object</varname> est une
+                    <link linkend="cell">cell</link> ou un nD-tableau de cells.
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">boolean sparse</emphasis></td>
+                <td><varname>object</varname> est une matrice booléenne creuse.
+                <warning>Hypermatrices booléennes creuses non supportées.</warning>
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">sparse</emphasis></td>
+                <td><varname>object</varname> est une
+                    <link linkend="sparse">matrice creuse</link>
+                        de nombres décimaux réels ou complexes.
+                <warning>Hypermatrices numériques creuses non supportées.</warning>
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">"Matlab sparse"</emphasis></td>
+                <td><varname>object</varname> est une matrice numérique creuse
+                    au format Matlab
+                    (voir <link linkend="mtlb_sparse">mtlb_sparse()</link>).
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">fptr</emphasis></td>
+                <td><varname>object</varname> est une primitive Scilab,
+                    aussi appelée <emphasis role="italic">gateway</emphasis>
+                    (code C, C++ ou Fortran compilé).
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">function</emphasis></td>
+                <td><varname>object</varname> est une
+                    <link linkend="function">function</link>
+                      écrite en langage Scilab.
+                      Voir aussi <link linkend="deff">deff</link>.
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">library</emphasis></td>
+                <td><varname>object</varname> est une
+                    <link linkend="library">bibliothèque</link>
+                      de functions écrites en langage Scilab et compilées.
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">pointer</emphasis></td>
+                <td><varname>object</varname> est un pointeur, par exemple
+                utilisé par <link linkend="lufact">lufact</link>.
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">implicitlist</emphasis></td>
+                <td><varname>object</varname> est une liste implicite avec
+                    un index formel polynomial, utilisée en indexation.
+                    Voir  <link linkend="dollar">n:$</link> et
+                      <link linkend="colon">: (colon)</link>
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">listdelete</emphasis></td>
+                <td>est retourné par <function>typeof(<literal>null()</literal>)</function>.
+                      Voir  <link linkend="null">null()</link>.
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">void</emphasis></td>
+                <td>est le typeof des éléments de list() indéfinis.
+                </td>
+            </tr>
+            <tr><td colspan="2"></td></tr>
+            <tr><td colspan="2">
+                <emphasis role="bold italic">Listes typées T-Lists ou M-Lists :</emphasis>
+                </td>
+            </tr>
+            <tr><td colspan="2">
+                Si l'<varname>object</varname> est une
+                <link linkend="tlist">tlist</link>
+                ou une <link linkend="mlist">mlist</link>,
+                <function>typeof</function>
+                retourne le nom du type défini pour la liste, lequel est
+                enregistré dans le premier élément de la liste.
+                </td>
+            </tr>
+            <tr><td colspan="2"></td></tr>
+            <tr><td colspan="2">
+                <emphasis role="bold italic">Types de T-List ou M-List
+                    prédéfinis et réservés :
+                </emphasis>
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">dir</emphasis></td>
+                <td><varname>object</varname> est la réponse d'une instruction
+                    <link linkend="dir">dir(..)</link>. Les champs définis
+                    sont <literal>name</literal>, <literal>date</literal>,
+                    <literal>bytes</literal>, et <literal>isdir</literal>.
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">state-space</emphasis></td>
+                <td><varname>object</varname> est une réprésentation d'état
+                    d'un système dynamique (voir <link linkend="syslin">syslin</link>).
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">XMLDoc</emphasis></td>
+                <td><varname>object</varname> est un pointeur de document XML
+                      ouvert créé avec
+                        <link linkend="xmlRead">xmlRead</link>,
+                        <link linkend="xmlReadStr">xmlReadStr</link>,
+                        <link linkend="htmlRead">htmlRead</link>, ou
+                        <link linkend="htmlReadStr">htmlReadStr</link>.
+                        D'autres typeof d'objets XML sont disponibles et réservés.
+                </td>
+            </tr>
+            <tr><td><emphasis role="bold">H5Object</emphasis></td>
+                <td><varname>object</varname> est un identifiant de fichier
+                    HDF5 ouvert avec
+                    <link linkend="h5open">h5open</link>.
+                    D'autres typeof d'objets HDF5 sont disponibles et réservés :
+                        Voir <link linkend="h5objects">HDF5 Objects</link>.
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">uitree</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> est un arbre graphique interactif,
+                    ou un composant (branche, feuille) d'un tel arbre, créé
+                    avec une des fonctions dédiées. Voir par exemple
+                    <link linkend="uiCreateNode">uiCreateNode</link>.
+                </td>
+            </tr>
+        </table>
+    </refsection>
+    <refsection role="examples">
+        <title>Exemples</title>
+        <programlisting role="no-scilab-exec"><![CDATA[
+// Caractères et textes
+t = ["a" "Hello"   "à é è ï ô û ñ"
+     "1" "Bonjour" "указывает тип объекта"
+     ";" "Chao"    "オブジェクトの型"
+    ]
+typeof(t)
+
+// Booléens
+typeof(%t)
+typeof("abc"=="def")
+hm = grand(2,2,2,"uin",0,9)<5
+typeof(hm)
+
+// Entiers encodés
+[ typeof(uint8(%pi))  typeof(int8(-%pi))
+  typeof(uint16(%pi)) typeof(int16(-%pi))
+  typeof(uint32(%pi)) typeof(int32(-%pi))
+  typeof(uint64(%pi)) typeof(int64(-%pi))
+]
+
+// Nombres décimaux
+n = 1:0.3:2
+typeof(n)
+hm = grand(2,2,2,"uin",0,9)
+typeof(hm)
+
+// Décimaux entiers
+n = 1:7
+typeof(n)
+
+// Nombres complexes
+n = [%i 1-%i %pi - 3*%i]
+typeof(n)
+
+// "constant" spéciale
+typeof([])   // empty matrix
+
+// Polynômes
+n = [ %z (1-%z)^2]
+typeof(n)
+n = [ 3*%i + %z (1-%i*%z)^2]
+typeof(n)
+
+// Fractions rationnelles (polynomiales)
+r = [%s/(1-%s) (1+%s)^2/(1-%s)]   // à coefficients réels
+typeof(r)
+r = [%s/(%i-%s) (%i+%s)^2/(1-%s)] // à coefficients complexes
+typeof(r)
+
+// Matrices creuses
+// ----------------
+w = sprand(100,100,0.001)
+typeof(w)     // numérique
+typeof(w==w)  // booléenne
+//x = mtlb_sparse(sprand(10,10,0.1));
+//typeof(x)
+
+// Functions et bibliothèques écrites en Scilab
+// --------------------------------------------
+deff('y=f(x)','y=2*x');  // Function en langage Scilab
+f(%pi)
+typeof(f)
+typeof(cosd)    // écrite en Scilab
+
+typeof(corelib) // Bibliothèque de functions en langage Scilab
+
+typeof(sin)     // Fonctions primitives non éditables
+mysin = sin;
+mysin(%pi/2)
+
+// Identifiants graphiques
+// -----------------------
+clf
+plot2d()
+typeof(gcf())
+// Le type graphique de l'objet graphique est indiqué par l'attribut "type" :
+gcf().type
+gca().type
+gce().type
+
+close(gcf())
+
+// Conteneurs de données hétérogènes
+// ---------------------------------
+// Liste simple
+L = list(%pi, %t, %z, %s/(1-%s), "Bonjour", sin, cosd, list("list_in_list", 432));
+typeof(L)
+
+// Tableau de cells
+C = {%pi, %t, %z ; %s/(1-%s), "Bonjour", list("list_in_list", 432) }
+typeof(C)
+
+// (Tableau de) Structures
+S.num = %pi;
+S.b = %t;
+S(2).t = "Bonjour"
+typeof(S)
+
+// Indices formels génériques
+// --------------------------
+typeof($)
+typeof(:)    // équivalent à "eye()"  (tous les éléments)
+typeof(3:$)
+
+// Typeof de deletion ou d'éléments indéfinis
+// ------------------------------------------
+typeof([])      // matrice vide
+typeof(null())
+L = list(%pi, ,"hey!")
+typeof(L(2))   // élément indéfini
+
+// typeof de T-Listes ou M-listes à façon :
+// --------------------------------------
+L = tlist(['myLongTypeOf','a','b'], 18, 'Scilab');
+typeof(L)
+
+// Typeof de T-List ou M-list prédéfinis réservés
+// ----------------------------------------------
+typeof(dir())  // listage du contenu d'un dossier
+
+doc = xmlReadStr("<root><a att=""foo"">Hello</a></root>");
+typeof(doc)
+xmlDelete(doc)
+
+x = 1;
+save(TMPDIR + "/x.sod", "x"); // Les fichiers SOD d'enregistrement d'objets
+                              //  Scilab sont au format HDF5
+a = h5open(TMPDIR + "/x.sod");
+typeof(a)
+h5close(a)
+ ]]></programlisting>
+    </refsection>
+    <refsection role="see also">
+        <title>Voir aussi</title>
+        <simplelist type="inline">
+            <member>
+                <link linkend="type">type</link>
+            </member>
+            <member>
+                <link linkend="inttype">inttype</link>
+            </member>
+            <member>
+                <link linkend="overloading">overloading</link>
+            </member>
+            <member>
+                <link linkend="isreal">isreal</link>
+            </member>
+            <member>
+                <link linkend="strings">strings</link>
+            </member>
+            <member>
+                <link linkend="poly">poly</link>
+            </member>
+            <member>
+                <link linkend="rlist">rlist</link>
+            </member>
+            <member>
+                <link linkend="null">null</link>
+            </member>
+            <member>
+                <link linkend="sparse">sparse</link>
+            </member>
+            <member>
+                <link linkend="issparse">issparse</link>
+            </member>
+            <member>
+                <link linkend="mtlb_sparse">mtlb_sparse</link>
+            </member>
+            <member>
+                <link linkend="syslin">syslin</link>
+            </member>
+            <member>
+                <link linkend="dir">dir</link>
+            </member>
+            <member>
+                <link linkend="xmlobjects">XML Objects</link>
+            </member>
+            <member>
+                <link linkend="h5objects">HDF5 Objects</link>
+            </member>
+        </simplelist>
+    </refsection>
+    <refsection role="history">
+        <title>Historique</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0</revnumber>
+                <revdescription>
+                <itemizedlist>
+                <listitem>Ajout de l'option "overload". </listitem>
+                <listitem>Ajout des typeof "uint64" et "int64". </listitem>
+                <listitem>Suppression du typeof "hypermat". Toute hypermatrice
+                   de type "simple" homogène est désormais encodée de manière
+                  native.</listitem>
+                <listitem>Ajout des typeof "listdelete" et "void".</listitem>
+                <listitem>typeof(:) était "constant" et devient "implicitlist". typeof(1:$) était
+                  "size implicit" etdevient "implicitlist".</listitem>
+                  <listitem>Le typeof des T-lists et M-lists était limité à 8 caractères.
+                    Les noms de types peuvent maintenant être plus longs.
+                  </listitem>
+                <listitem>Typeof "size implicit" renommé en "implicitlist" (<literal>1:$</literal>)</listitem>
+                <listitem>Page d'aide revue.</listitem>
+                </itemizedlist>
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
+</refentry>
diff --git a/scilab/modules/data_structures/help/ja_JP/typeof.xml b/scilab/modules/data_structures/help/ja_JP/typeof.xml
deleted file mode 100644 (file)
index 2b3b23f..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2008 - INRIA
- *
- * 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:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="typeof" xml:lang="ja">
-    <refnamediv>
-        <refname>typeof</refname>
-        <refpurpose>オブジェクトの型</refpurpose>
-    </refnamediv>
-    <refsynopsisdiv>
-        <title>呼び出し手順</title>
-        <synopsis>[t]=typeof(object)</synopsis>
-    </refsynopsisdiv>
-    <refsection>
-        <title>パラメータ</title>
-        <variablelist>
-            <varlistentry>
-                <term>object</term>
-                <listitem>
-                    <para>Scilabオブジェクト</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>t</term>
-                <listitem>
-                    <para>文字列</para>
-                </listitem>
-            </varlistentry>
-        </variablelist>
-    </refsection>
-    <refsection>
-        <title>説明</title>
-        <para>
-            <literal>t=typeof(object)</literal> は以下の文字列のどれかを返します:
-        </para>
-        <variablelist>
-            <varlistentry>
-                <term>"constant"</term>
-                <listitem>
-                    <para>オブジェクトが実数または複素数の定数行列の場合.</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"polynomial"</term>
-                <listitem>
-                    <para>オブジェクトが多項式行列の場合.</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"function"</term>
-                <listitem>
-                    <para>オブジェクトが関数の場合 (Scilab コード).</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"handle"</term>
-                <listitem>
-                    <para>オブジェクトがハンドルの場合.</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"string"</term>
-                <listitem>
-                    <para>オブジェクトが文字列からなる行列の場合.</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"boolean"</term>
-                <listitem>
-                    <para>オブジェクトが論理値行列の場合.</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"list"</term>
-                <listitem>
-                    <para>オブジェクトがリストの場合.</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"rational"</term>
-                <listitem>
-                    <para>オブジェクトが有理行列(伝達行列)の場合.</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"state-space"</term>
-                <listitem>
-                    <para>
-                        オブジェクトが状態空間モデルの場合(<link linkend="syslin">syslin</link>参照).
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"sparse"</term>
-                <listitem>
-                    <para>オブジェクトが(実数)疎行列の場合.</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"boolean sparse"</term>
-                <listitem>
-                    <para>オブジェクトが論理値の疎行列の場合.</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"st"</term>
-                <listitem>
-                    <para>オブジェクトが構造体配列の場合.</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"ce"</term>
-                <listitem>
-                    <para>オブジェクトがセル配列の場合.</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>the first string in the first list entry</term>
-                <listitem>
-                    <para>オブジェクトtlistまたはmlistの場合.</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"fptr"</term>
-                <listitem>
-                    <para>オブジェクトがScilabイントリンシック(CまたはFortranコード)の場合.</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"pointer"</term>
-                <listitem>
-                    <para>
-                        オブジェクトがポインタの場合 (<link linkend="lufact">lufact</link> 参照).
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"implicitlist"</term>
-                <listitem>
-                    <para>
-                        オブジェクトが
-                        添字に使用される大きさが不明な多項式の場合
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"library"</term>
-                <listitem>
-                    <para>オブジェクトが関数ライブラリの場合.</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"int8" または "uint8" または "int16" または "uint16" または "int32" または "uint32" または "int64" または "uint64"</term>
-                <listitem>
-                    <para>
-                        オブジェクトが 8,16,32または64ビットに保存される[符号なしの]整数の行列の場合.
-                        <link linkend="int8">int8</link>参照)
-                    </para>
-                </listitem>
-            </varlistentry>
-        </variablelist>
-    </refsection>
-    <refsection>
-        <title>例</title>
-        <programlisting role="example"><![CDATA[
-typeof(1)
-typeof(poly(0,'x'))
-typeof(1/poly(0,'x'))
-typeof(%t)
-w=sprand(100,100,0.001);
-typeof(w)
-typeof(w==w)
-deff('y=f(x)','y=2*x');
-typeof(f)
-L=tlist(['V','a','b'],18,'Scilab');
-typeof(L)
-typeof(corelib)
- ]]></programlisting>
-    </refsection>
-    <refsection role="see also">
-        <title>参照</title>
-        <simplelist type="inline">
-            <member>
-                <link linkend="type">type</link>
-            </member>
-            <member>
-                <link linkend="strings">strings</link>
-            </member>
-            <member>
-                <link linkend="syslin">syslin</link>
-            </member>
-            <member>
-                <link linkend="poly">poly</link>
-            </member>
-        </simplelist>
-    </refsection>
-</refentry>
index 310cd9b..ac76f27 100644 (file)
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
  * Copyright (C) 2008 - INRIA
- *
+ * Copyright (C) 2015 - 2016 - Samuel GOUGEON
  * Copyright (C) 2012 - 2016 - Scilab Enterprises
  *
  * This file is hereby licensed under the terms of the GNU GPL v2.0,
  * 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:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="typeof" xml:lang="en">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="typeof" xml:lang="pt">
     <refnamediv>
         <refname>typeof</refname>
         <refpurpose>tipo do objeto</refpurpose>
     </refnamediv>
     <refsynopsisdiv>
-        <title>Seqüência de Chamamento</title>
-        <synopsis>[t]=typeof(object)</synopsis>
+        <title>Seqüência de Chamamento</title>
+        <synopsis>
+            t = typeof(object)
+            oc = typeof(object, "overload")
+        </synopsis>
     </refsynopsisdiv>
-    <refsection>
-        <title>Parâmetros</title>
+    <refsection role="arguments">
+        <title>Parâmetros</title>
         <variablelist>
             <varlistentry>
                 <term>object</term>
             <varlistentry>
                 <term>t</term>
                 <listitem>
-                    <para>string</para>
-                </listitem>
-            </varlistentry>
-        </variablelist>
-    </refsection>
-    <refsection>
-        <title>Descrição</title>
-        <para>
-            <literal>t=typeof(object)</literal> retorna um dos seguintes
-            strings:
-        </para>
-        <variablelist>
-            <varlistentry>
-                <term>"constant"</term>
-                <listitem>
-                    <para>se o objeto é uma matriz constante de reais ou
-                        complexos
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"polynomial"</term>
-                <listitem>
-                    <para>se o objeto é uma matriz de polinômios</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"function"</term>
-                <listitem>
-                    <para>se o objeto é uma função (código Scilab).</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"handle"</term>
-                <listitem>
-                    <para>se o objeto é um manipulador ("alça")</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"string"</term>
-                <listitem>
-                    <para>se o objeto é uma matriz de strings</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"boolean"</term>
-                <listitem>
-                    <para>se o objeto é uma matriz de valores booleanos</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"list"</term>
-                <listitem>
-                    <para>se o objeto é uma lista</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"rational"</term>
-                <listitem>
-                    <para>se o objeto é a é uma martriz de razões de polinômios (matriz
-                        de transferência)
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"state-space"</term>
-                <listitem>
                     <para>
-                        se o objeto é um modelo de espaço de estados (ver <link linkend="syslin">syslin</link>).
+                        a string (may have spaces): the name of the type of <varname>object</varname>
                     </para>
                 </listitem>
             </varlistentry>
             <varlistentry>
-                <term>"sparse"</term>
-                <listitem>
-                    <para>se o objeto é uma matriz (de reais) esparsa.</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"boolean sparse"</term>
-                <listitem>
-                    <para>se o objeto é uma matriz de valores booleanos esparsa.</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"st"</term>
+                <term>oc</term>
                 <listitem>
-                    <para>se o objeto é um array de estrutura</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"ce"</term>
-                <listitem>
-                    <para>se o objeto é um array de células</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>the first string in the first list entry</term>
-                <listitem>
-                    <para>se o objeto é um tlist ou mlist</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"fptr"</term>
-                <listitem>
-                    <para>se o objeto é intrínseco ao Scilab (código C ou
-                        Fortran).
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"pointer"</term>
-                <listitem>
-                    <para>
-                        se o objeto é um ponteiro (ver <link linkend="lufact">lufact</link>).
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"implicitlist"</term>
-                <listitem>
-                    <para>se o objeto é um polinômio de tamanho implícito para
-                        indexação.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"library"</term>
-                <listitem>
-                    <para>
-                        if <varname>object</varname> is a function <link linkend="library">library</link>.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"int8" or "uint8" or "int16" or "uint16" or "int32" or "uint32" or "int64" or "uint64"</term>
-                <listitem>
-                    <para>
-                        if <varname>object</varname> is a matrix of [unsigned] integers stored on 8, 16, 32 or 64 bits. (See <link linkend="int8">int</link>)
+                    <para>a string (without spaces): the name of the overloading code for the
+                        <varname>object</varname>.
                     </para>
                 </listitem>
             </varlistentry>
         </variablelist>
+    </refsection>
+    <refsection role="description">
+        <title>Descrição</title>
         <para>
-            <note>
-                Note that if the <varname>object</varname> is a <link linkend="tlist">tlist</link> or <link linkend="mlist">mlist</link>, <function>typeof</function> will return the first string in the first list entry.
-            </note>
+            <literal>t = typeof(object)</literal> retorna um dos seguintes
+            strings:
         </para>
+        <table>
+            <tr>
+                <td>
+                    <emphasis role="bold">string</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> é uma matriz ou hipermatriz de
+                    <link linkend="strings">caracteres</link> e/o textos.
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">boolean</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> é uma matriz ou hipermatriz de valores
+                    booleanos.
+                </td>
+            </tr>
+            <tr><td colspan="2">
+                    <emphasis role="bold">int8</emphasis> ou
+                    <emphasis role="bold">int16</emphasis> ou
+                    <emphasis role="bold">int32</emphasis> ou
+                    <emphasis role="bold">int64</emphasis> ou
+                    <emphasis role="bold">uint8</emphasis> ou
+                    <emphasis role="bold">uint16</emphasis> ou
+                    <emphasis role="bold">uint32</emphasis> ou
+                    <emphasis role="bold">uint64</emphasis>
+                </td>
+            </tr>
+            <tr>
+                <td> </td>
+                <td>
+                    <varname>object</varname> is a matrix or hypermatrix of [unsigned]
+                    integers stored
+                    on 8, 16, 32 or 64 bits. (see <link linkend="inttype">inttype</link>)
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">constant</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> é uma matriz ou hipermatriz
+                    de números reais ou complexos
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">polynomial</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> é uma matriz ou hipermatriz de
+                    <link linkend="poly">polinômios</link>
+                    com coeficientes reais ou complexos.
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">rational</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> é uma matriz ou hipermatriz de
+                    <link linkend="rational">razões </link>
+                    de polinômios (matriz de transferência), com coeficientes
+                    reais ou complexos.
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">handle</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> is a graphics
+                    <link linkend="graphics_entities">handle</link>.
+                    The subtype of graphics handles (Figure, Axes, Polyline,
+                    Compound, etc) is available in their <literal>.type</literal>
+                    property. See examples below.
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">list</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> é uma
+                    <link linkend="list">lista</link>.
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">st</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> é uma
+                    <link linkend="struct">estrutura</link> ou
+                    um nD-array de estruturas.
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">ce</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> é uma célula
+                    ou um nD-array de <link linkend="cell">células</link>.
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">boolean sparse</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> é uma matriz de valores
+                    <link linkend="sparse">booleanos esparsa</link>.
+                    <warning>Sparse boolean hypermatrices are not supported.
+                    </warning>
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">sparse</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> é uma matriz
+                    <link linkend="sparse">esparsa</link> de números
+                    reais ou complexos.
+                    <warning>Sparse numerical hypermatrices are not supported.</warning>
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">"Matlab sparse"</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> is a Matlab-like-encoded sparse
+                    matrix (see <link linkend="mtlb_sparse">mtlb_sparse()</link>).
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">fptr</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> is a built-in Scilab function,
+                    called also <emphasis role="italic">gateway</emphasis>
+                    (C, C++ or Fortran code), a.k.a. a primitive.
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">function</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> is a <link linkend="function">function</link>
+                    (Scilab code). See also <link linkend="deff">deff</link>.
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">library</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> is a
+                    <link linkend="library">library</link>
+                    of functions in Scilab language.
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">pointer</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> é um ponteiro (ver
+                    <link linkend="lufact">lufact</link>).
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">implicitlist</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> é um polinômio de tamanho
+                    implícito para indexação.
+                    Ver  <link linkend="dollar">n:$</link> e
+                    <link linkend="colon">: (colon)</link>
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">listdelete</emphasis>
+                </td>
+                <td>
+                    is returned by 
+                    <function>
+                        typeof(<literal>null()</literal>)
+                    </function>
+                    .
+                    See  <link linkend="null">null()</link>.
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">void</emphasis>
+                </td>
+                <td>is the typeof undefined elements in lists.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="2"></td>
+            </tr>
+            <tr><td colspan="2">
+                    <emphasis role="bold italic">Typed T-Lists or M-Lists:</emphasis>
+                </td>
+            </tr>
+            <tr><td colspan="2">
+                    Note that if the <varname>object</varname> is a
+                    <link linkend="tlist">tlist</link>
+                    or a <link linkend="mlist">mlist</link>, <function>typeof</function>
+                    will return the corresponding customized type stored in as a
+                    string in the first list entry.
+                </td>
+            </tr>
+            <tr>
+                <td colspan="2"></td>
+            </tr>
+            <tr><td colspan="2">
+                    <emphasis role="bold italic">Reserved T-List or M-List types
+                        predefined in Scilab:
+                    </emphasis>
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">dir</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> is the result of a
+                    <link linkend="dir">dir()</link>
+                    instruction, with fields <literal>name</literal>, <literal>date</literal>,
+                    <literal>bytes</literal>, and <literal>isdir</literal>.
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">state-space</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> is a state-space model
+                    (see <link linkend="syslin">syslin</link>).
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">XMLDoc</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> is an XML Document created with
+                    <link linkend="xmlRead">xmlRead</link>,
+                    <link linkend="xmlReadStr">xmlReadStr</link>,
+                    <link linkend="htmlRead">htmlRead</link>, or
+                    <link linkend="htmlReadStr">htmlReadStr</link>.
+                    Additional XML typeof are defined.
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">H5Object</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> is the id of an HDF5 file opened
+                    with <link linkend="h5open">h5open</link>.
+                    Additional HDF5 typeof are defined:
+                    See <link linkend="h5objects">HDF5 Objects</link>.
+                </td>
+            </tr>
+            <tr>
+                <td>
+                    <emphasis role="bold">uitree</emphasis>
+                </td>
+                <td>
+                    <varname>object</varname> is a tree, a branch or a leaf as created with  a
+                    uitree feature. See for instance <link linkend="uiCreateNode">uiCreateNode</link>.
+                </td>
+            </tr>
+        </table>
     </refsection>
-    <refsection>
+    <refsection role="examples">
         <title>Exemplos</title>
-        <programlisting role="example"><![CDATA[
-typeof(1)
-typeof(poly(0,'x'))
+        <programlisting role="no-scilab-exec"><![CDATA[
+// Characters and texts
+t = ["a" "Hello"   "à é è ï ô û ñ"
+     "1" "Bonjour" "указывает тип объекта"
+     ";" "Chao"    "オブジェクトの型"
+    ]
+typeof(t)
 
-typeof(1/poly(0,'x'))
+// Booleans
 typeof(%t)
+typeof("abc"=="def")
+hm = grand(2,2,2,"uin",0,9)<5
+typeof(hm)
+
+// Encoded integers
+[ typeof(uint8(%pi))  typeof(int8(-%pi))
+  typeof(uint16(%pi)) typeof(int16(-%pi))
+  typeof(uint32(%pi)) typeof(int32(-%pi))
+  typeof(uint64(%pi)) typeof(int64(-%pi))
+]
+
+// Decimal numbers
+n = 1:0.3:2
+typeof(n)
+hm = grand(2,2,2,"uin",0,9)
+typeof(hm)
+
+// Decimal integers
+n = 1:7
+typeof(n)
+
+// Complex numbers
+n = [%i 1-%i %pi - 3*%i]
+typeof(n)
 
-w=sprand(100,100,0.001);
-typeof(w)
-typeof(w==w)
+// Special "constant"
+typeof([])   // empty matrix
 
-deff('y=f(x)','y=2*x');
+// Polynomials
+n = [ %z (1-%z)^2]
+typeof(n)
+n = [ 3*%i + %z (1-%i*%z)^2]
+typeof(n)
+
+// Rational fractions
+r = [%s/(1-%s) (1+%s)^2/(1-%s)]   // with real coefficients
+typeof(r)
+r = [%s/(%i-%s) (%i+%s)^2/(1-%s)] // with complex coefficients
+typeof(r)
+
+// Sparse matrices
+// ---------------
+w = sprand(100,100,0.001)
+typeof(w)     // sparse
+typeof(w==w)  // boolean sparse
+//x = mtlb_sparse(sprand(10,10,0.1));
+//typeof(x)
+
+// Functions and libraries
+// -----------------------
+deff('y=f(x)','y=2*x');  // Function in Scilab language
+f(%pi)
 typeof(f)
+typeof(cosd)  // written in Scilab
+
+typeof(corelib) // Library of functions in Scilab language
 
-L=tlist(['V','a','b'],18,'Scilab');
+typeof(sin)     // Built-in function (non-editable)
+mysin = sin;
+mysin(%pi/2)
+
+// Graphical handles
+// -----------------
+clf
+plot2d()
+typeof(gcf())
+// The subtype of the handle is in the "type" property:
+gcf().type
+gca().type
+gce().type
+
+close(gcf())
+
+// Containers
+// ----------
+// Simple list
+L = list(%pi, %t, %z, %s/(1-%s), "Bonjour", sin, cosd, list("list_in_list", 432));
 typeof(L)
+
+// Cells array
+C = {%pi, %t, %z ; %s/(1-%s), "Bonjour", list("list_in_list", 432) }
+typeof(C)
+
+// (Array of) Structure
+S.num = %pi;
+S.b = %t;
+S(2).t = "Bonjour"
+typeof(S)
+
+// Special generic indexing expressions
+// ------------------------------------
+typeof($)
+typeof(:)    // "eye()" equivalent (all elements)
+typeof(3:$)
+
+// Typeof for deletion or undefined elements:
+// -----------------------------------------
+typeof([])      // empty matrix
+typeof(null())
+L = list(%pi, ,"hey!")
+typeof(L(2))   // undefined element
+
+// Customized typeof of T-Lists:
+// ----------------------------
+L = tlist(['myLongTypeOf','a','b'], 18, 'Scilab');
+typeof(L)
+
+// Reserved T-List typeof
+// ----------------------
+typeof(dir())  // files directory
+
+doc = xmlReadStr("<root><a att=""foo"">Hello</a></root>");
+typeof(doc)
+xmlDelete(doc)
+
+x = 1;
+save(TMPDIR + "/x.sod", "x"); // SOD files are HDF5 ones
+a = h5open(TMPDIR + "/x.sod");
+typeof(a)
+h5close(a)
  ]]></programlisting>
     </refsection>
     <refsection role="see also">
-        <title>Ver Também</title>
+        <title>Ver Também</title>
         <simplelist type="inline">
             <member>
                 <link linkend="type">type</link>
             </member>
             <member>
+                <link linkend="inttype">inttype</link>
+            </member>
+            <member>
+                <link linkend="overloading">overloading</link>
+            </member>
+            <member>
+                <link linkend="isreal">isreal</link>
+            </member>
+            <member>
                 <link linkend="strings">strings</link>
             </member>
             <member>
+                <link linkend="poly">poly</link>
+            </member>
+            <member>
+                <link linkend="rlist">rlist</link>
+            </member>
+            <member>
+                <link linkend="null">null</link>
+            </member>
+            <member>
+                <link linkend="sparse">sparse</link>
+            </member>
+            <member>
+                <link linkend="issparse">issparse</link>
+            </member>
+            <member>
+                <link linkend="mtlb_sparse">mtlb_sparse</link>
+            </member>
+            <member>
                 <link linkend="syslin">syslin</link>
             </member>
             <member>
-                <link linkend="poly">poly</link>
+                <link linkend="dir">dir</link>
+            </member>
+            <member>
+                <link linkend="xmlobjects">XML Objects</link>
+            </member>
+            <member>
+                <link linkend="h5objects">HDF5 Objects</link>
             </member>
         </simplelist>
     </refsection>
+    <refsection role="history">
+        <title>Histórico</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0</revnumber>
+                <revdescription>
+                    <itemizedlist>
+                        <listitem>"overload" keyword added. </listitem>
+                        <listitem>typeof "uint64" and "int64" added. </listitem>
+                        <listitem>typeof "hypermat" removed. Hypermatrices of any homogeneous type are now
+                            natively supported.
+                        </listitem>
+                        <listitem>typeof "listdelete" and "void" added.</listitem>
+                        <listitem>typeof(:) was "constant" and becomes "implicitlist". typeof(1:$) was
+                            "size implicit" and become "implicitlist".
+                        </listitem>
+                        <listitem>The typeof of T-lists and M-lists were limited to 8 characters. They may
+                            be longer now.
+                        </listitem>
+                        <listitem>
+                            typeof "size implicit" renamed "implicitlist" (<literal>1:$</literal>)
+                        </listitem>
+                        <listitem>Help page reviewed.</listitem>
+                    </itemizedlist>
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
diff --git a/scilab/modules/data_structures/help/ru_RU/typeof.xml b/scilab/modules/data_structures/help/ru_RU/typeof.xml
deleted file mode 100644 (file)
index 0bb16d9..0000000
+++ /dev/null
@@ -1,239 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2008 - INRIA
- *
- * 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:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="typeof" xml:lang="ru">
-    <refnamediv>
-        <refname>typeof</refname>
-        <refpurpose>указывает тип объекта</refpurpose>
-    </refnamediv>
-    <refsynopsisdiv>
-        <title>Последовательность вызова</title>
-        <synopsis>[t]=typeof(object)</synopsis>
-    </refsynopsisdiv>
-    <refsection>
-        <title>Аргументы</title>
-        <variablelist>
-            <varlistentry>
-                <term>object</term>
-                <listitem>
-                    <para>объект Scilab'а</para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>t</term>
-                <listitem>
-                    <para>строковое значение</para>
-                </listitem>
-            </varlistentry>
-        </variablelist>
-    </refsection>
-    <refsection>
-        <title>Описание</title>
-        <para>
-            Инструкция <code>t = typeof(object)</code> возвращает одну из следующих строк:
-        </para>
-        <variablelist>
-            <varlistentry>
-                <term>"constant"</term>
-                <listitem>
-                    <para>
-                        если <varname>object</varname> - матрица вещественных или комплексных значений удвоенной точности.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"polynomial"</term>
-                <listitem>
-                    <para>
-                        если <varname>object</varname> матрица <link linkend="poly">полиномов</link>.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"function"</term>
-                <listitem>
-                    <para>
-                        если <varname>object</varname> - <link linkend="function">функция</link> (Scilab-код). См. также <link linkend="deff">deff</link>.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"handle"</term>
-                <listitem>
-                    <para>
-                        если <varname>object</varname> - <link linkend="graphics_entities">дескриптор</link>.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"string"</term>
-                <listitem>
-                    <para>
-                        если <varname>object</varname> - матрица, составленная из <link linkend="strings">символьных строк</link>.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"boolean"</term>
-                <listitem>
-                    <para>
-                        если <varname>object</varname> - <link linkend="matrices">матрица</link> логических значений.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"list"</term>
-                <listitem>
-                    <para>
-                        если <varname>object</varname> - <link linkend="list">список</link>.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"rational"</term>
-                <listitem>
-                    <para>
-                        если <varname>object</varname> - матрица <link linkend="rational">рациональных чисел</link> (передаточная матрица).
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"state-space"</term>
-                <listitem>
-                    <para>
-                        если <varname>object</varname> - модель пространства состояний (см.<link linkend="syslin">syslin</link>).
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"sparse"</term>
-                <listitem>
-                    <para>
-                        если <varname>object</varname> - (вещественная) <link linkend="sparse">разрежённая матрица</link>.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"boolean sparse"</term>
-                <listitem>
-                    <para>
-                        если <varname>object</varname> - <link linkend="sparse">разрежённая матрица</link> логических значений.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"st"</term>
-                <listitem>
-                    <para>
-                        если <varname>object</varname> - <link linkend="struct">структура</link>.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"ce"</term>
-                <listitem>
-                    <para>
-                        если <varname>object</varname> - <link linkend="cell">cell</link>-массив.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"fptr"</term>
-                <listitem>
-                    <para>
-                        если <varname>object</varname> - встроенная Scilab-функция, называемая также <emphasis role="italic">шлюзом</emphasis> (код C, C++ или Fortran).
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"pointer"</term>
-                <listitem>
-                    <para>
-                        если <varname>object</varname> - указатель (см. <link linkend="lufact">lufact</link>).
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"implicitlist"</term>
-                <listitem>
-                    <para>
-                        если <varname>object</varname> - размер неявного полинома, используемый для индексации. Это чисто внутреннее значение.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"library"</term>
-                <listitem>
-                    <para>
-                        если <varname>object</varname> - <link linkend="library">библиотека функций</link>.
-                    </para>
-                </listitem>
-            </varlistentry>
-            <varlistentry>
-                <term>"int8" или "uint8" или "int16" или "uint16" или "int32" или "uint32 "или "int64" или "uint64"</term>
-                <listitem>
-                    <para>
-                        если <varname>object</varname> - матрица [беззнаковых] целых чисел, хранимых в 8, 16, 32 или 64 битах. (См. <link linkend="int8">int</link>)
-                    </para>
-                </listitem>
-            </varlistentry>
-        </variablelist>
-        <para>
-            <note>
-                Заметьте, что, если объект <varname>object</varname> является <link linkend="tlist">tlist</link> или <link linkend="mlist">mlist</link>, то <function>typeof</function> вернёт первое строковое значение в первом элементе списка.
-            </note>
-        </para>
-    </refsection>
-    <refsection>
-        <title>Примеры</title>
-        <programlisting role="example"><![CDATA[
-typeof(1)
-typeof(poly(0,'x'))
-
-typeof(1/poly(0,'x'))
-typeof(%t)
-
-w=sprand(100,100,0.001);
-typeof(w)
-typeof(w==w)
-
-deff('y=f(x)','y=2*x');
-typeof(f)
-
-L=tlist(['V','a','b'],18,'Scilab');
-typeof(L)
-
-typeof(corelib)
- ]]></programlisting>
-    </refsection>
-    <refsection role="see also">
-        <title>Смотрите также</title>
-        <simplelist type="inline">
-            <member>
-                <link linkend="type">type</link>
-            </member>
-            <member>
-                <link linkend="strings">strings</link>
-            </member>
-            <member>
-                <link linkend="syslin">syslin</link>
-            </member>
-            <member>
-                <link linkend="poly">poly</link>
-            </member>
-        </simplelist>
-    </refsection>
-</refentry>
-