<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Scilab ( https://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) 2008 - INRIA
 * Copyright (C) 2017 - 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="toeplitz" xml:lang="fr">
    <refnamediv>
        <refname>toeplitz</refname>
        <refpurpose>matrice de Toeplitz, à bandes diagonales constantes choisies</refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>Séquence d'appel</title>
        <synopsis>
            A = toeplitz(c)
            A = toeplitz(c, r)
        </synopsis>
    </refsynopsisdiv>
    <refsection>
        <title>Paramètres</title>
        <variablelist>
            <varlistentry>
                <term>c, r</term>
                <listitem>
                    <para>
                        vecteurs ou matrices de booléens, nombres, polynômes, fractions rationelles,
                        ou textes, denses ou creux (booléens ou nombres).
                    </para>
                    <para>
                        <varname>c</varname> fournit les valeurs attendues sur la 1ère colonne et
                        le long des diagonales inférieures. <varname>r</varname> fournit les valeurs
                        attendues sur la 1ère ligne et le long des diagonales supérieures.
                    </para>
                    <para>
                        Si les deux <literal>c</literal> et <literal>r</literal> sont fournis,
                        il faut que <literal>c(1)==r(1)</literal>.
                    </para>
                    <para>
                        Les types de <varname>c</varname> et <varname>r</varname> doivent être
                        compatibles par concaténation.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>A</term>
                <listitem>
                    <para>
                     Matrice du type de <varname>c</varname> et <varname>r</varname>
                    (avec les priorités habituelles pour le typage).
                    </para>
                    <para>
                        <varname>A</varname> est de taille <literal>[size(c,"*"), size(c,"*")]</literal>
                        ou <literal>[size(c,"*"), size(r,"*")]</literal>.
                    </para>
                    <para>
                        <varname>A</varname> est encodée creuse si <varname>c</varname> ou
                        <varname>r</varname> ou les deux sont encodées creuses.
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsection>
    <refsection>
        <title>Description</title>
        <para>
            Renvoie la matrice de Toeplitz dont la première ligne est
            <literal>r</literal> et la première colonne est <literal>c</literal>.
            <literal>toeplitz(c)</literal> renvoie la matrice de Toeplitz symétrique.
        </para>
    </refsection>
    <refsection>
        <title>Exemples</title>
        <programlisting role="example"><![CDATA[
toeplitz(0:3)
 ]]></programlisting>
    <screen><![CDATA[
--> toeplitz(0:3)
 ans  =
   0.   1.   2.   3.
   1.   0.   1.   2.
   2.   1.   0.   1.
   3.   2.   1.   0.
]]></screen>
    <para/>
    <programlisting role="example"><![CDATA[
toeplitz([0 1 0 0 ], [0 -1 -2 0 0 0])
 ]]></programlisting>
    <screen><![CDATA[
--> toeplitz([0 1 0 0 ], [0 -1 -2 0 0 0])
 ans  =
   0.  -1.  -2.   0.   0.   0.
   1.   0.  -1.  -2.   0.   0.
   0.   1.   0.  -1.  -2.   0.
   0.   0.   1.   0.  -1.  -2.
]]></screen>
    <para/>
    <para>Avec des tableaux encodés creux : </para>
    <programlisting role="example"><![CDATA[
v = [0 1:2 0 0];
S = toeplitz(v, sparse(-v));
typeof(S)
full(S)
 ]]></programlisting>
    <screen><![CDATA[
--> typeof(S)
 ans  =
 sparse

--> full(S)
 ans  =
   0.  -1.  -2.   0.   0.
   1.   0.  -1.  -2.   0.
   2.   1.   0.  -1.  -2.
   0.   2.   1.   0.  -1.
   0.   0.   2.   1.   0.
]]></screen>
    <para/>
    <para>Avec du texte : </para>
    <programlisting role="example"><![CDATA[
toeplitz(["-" "A" "B" "C"],["-" "a" "b" "c" "d" "e"])
 ]]></programlisting>
    <screen><![CDATA[
--> toeplitz(["-" "A" "B" "C"],["-" "a" "b" "c" "d" "e"])
 ans  =
!-  a  b  c  d  e  !
!A  -  a  b  c  d  !
!B  A  -  a  b  c  !
!C  B  A  -  a  b  !
]]></screen>
    <para/>
    <para>Avec des polynômes : </para>
    <programlisting role="example"><![CDATA[
toeplitz([%s %s^2 %s^3], [%s 1:4])
 ]]></programlisting>
    <screen><![CDATA[
--> toeplitz([%s %s^2 %s^3], [%s 1:4])
 ans  =
   s    1    2   3   4

    2
   s    s    1   2   3

    3    2
   s    s    s   1   2
]]></screen>
    <para/>
    </refsection>
    <refsection role="see also">
        <title>Voir aussi</title>
        <simplelist type="inline">
            <member>
                <link linkend="diag">diag</link>
            </member>
            <member>
                <link linkend="eye">eye</link>
            </member>
            <member>
                <link linkend="testmatrix">testmatrix</link>
            </member>
            <member>
                <link linkend="levin">levin</link>
            </member>
        </simplelist>
    </refsection>
</refentry>
