* modulo() and pmodulo() support integers & hypermatrices
[scilab.git] / scilab / modules / elementary_functions / help / fr_FR / modulo.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4  * Copyright (C) 2008 - INRIA
5  * Copyright (C) 2013 - Samuel GOUGEON
6  * 
7  * This file must be used under the terms of the CeCILL.
8  * This source file is licensed as described in the file COPYING, which
9  * you should have received as part of this distribution.  The terms
10  * are also available at
11  * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
12  *
13  -->
14 <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="modulo" xml:lang="fr">
15     <refnamediv>
16         <refname>modulo</refname>
17         <refpurpose>reste symétrique modulo m ayant le signe du dividande</refpurpose>
18     </refnamediv>
19     <refnamediv xml:id="pmodulo">
20         <refname>pmodulo</refname>
21         <refpurpose>reste modulo m euclidien positif</refpurpose>
22     </refnamediv>
23     <refsynopsisdiv>
24         <title>Séquence d'appel</title>
25         <synopsis>i = modulo(n,m)</synopsis>
26         <synopsis>i = pmodulo(n,m)</synopsis>
27     </refsynopsisdiv>
28     <refsection>
29         <title>Paramètres</title>
30         <variablelist>
31             <varlistentry>
32                 <term>m, n</term>
33                 <listitem>
34                     <para>Scalaire, vecteur, matrice ou hypermatrice d'entiers encodés, de décimaux réels ou de polynômes (les hypermatrices de polynômes ne sont pas admises). 
35                         <varname>m</varname> et <varname>n</varname> doivent être de même type. S'ils sont de types entiers, il peuvent être d'encodages distincts (par exemple int8 et int16) Si aucune des deux n'est scalaire, elles doivent avoir les mêmes dimensions.
36                     </para>
37                 </listitem>
38             </varlistentry>
39             <varlistentry>
40                 <term>i</term>
41                 <listitem>
42                     <para>
43                         Scalaire, vecteur, matrice ou hypermatrice du type de <varname>n</varname> (voire de même inttype).
44                         <varname>i</varname> a les dimensions de la plus large de <varname>m</varname> ou<varname>n</varname>.
45                     </para>
46                 </listitem>
47             </varlistentry>
48         </variablelist>
49     </refsection>
50     <refsection>
51         <title>Description</title>
52         <para>
53             <literal>modulo</literal> calcule <literal>i= n (modulo m)</literal>
54             c'est à dire le reste de <literal>n</literal> divisé par
55             <literal>m</literal>.
56         </para>
57         <para>i = n - m .* int (n ./ m). Ici la réponse peut être négative si
58             <literal>n</literal> et/ou <literal>m</literal> sont négatifs.
59         </para>
60         <para>
61             <literal>pmodulo</literal> calcule <literal>i = n - |m| .* floor (n ./|m|)</literal>,la réponse est positive ou nulle.
62         </para>
63         <warning>
64             Si <literal>m</literal> contient au moins une valeur nulle, <code>modulo(x,m)</code> et <code>pmodulo(x,m)</code> effectueront une division par zéro. Si <varname>m</varname> est de type réel, l'exception sera traitée selon le mode <literal>ieee()</literal> actif. Si <literal>m</literal> est de type entier, une erreur sera toujours émise.
65         </warning>
66     </refsection>
67     <refsection>
68         <title>Exemples</title>
69         <programlisting role="example"><![CDATA[ 
70 n = [1,2,10,15];
71 m = [2,2,3,5];
72 modulo(n,m)
73
74 modulo(-3, 9)
75 modulo(10, -4)
76
77 pmodulo(-3, 9)
78 pmodulo(10, -6)
79 pmodulo(-10, -6)
80
81 // Entiers encodés
82 modulo( int8(-13), int16(-7))
83 pmodulo(int8(-13), int16(-7))
84 modulo( int8(-13), int16([-7 5]))
85 pmodulo(int8(-13), int16([-7 5]))
86 modulo( int8([-13 8]), int16(-7))
87 pmodulo(int8([-13 8]), int16(-7))
88 modulo( int8([-13 8]), int16([-7 5]))
89 pmodulo(int8([-13 8]), int16([-7 5]))
90
91 // Hypermatrices
92 m = grand(2,2,2,"uin",-100,100)
93 n = grand(2,2,2,"uin",-10 ,10);
94 n(n==0) = 1
95 modulo(m, 5)
96 pmodulo(m,5)
97 modulo(51, n)
98 pmodulo(51,n)
99 modulo(m, n)
100 pmodulo(m,n)
101
102 // Polynômes
103 modulo( %z^2+1, %z)
104 pmodulo(%z^2+1, %z)
105
106  ]]></programlisting>
107     </refsection>
108     <refsection role= "see also">
109         <title>Voir aussi</title>
110         <simplelist type="inline">
111             <member>
112                 <link linkend="ieee">ieee</link>
113             </member>
114         </simplelist>
115     </refsection>
116     <refsection>
117         <title>Historique</title>
118         <revhistory>
119             <revision>
120                 <revnumber>5.5.0</revnumber>
121                 <revremark>Extension aux entiers encodés et aux hypermatrices d'entiers ou de réels.</revremark>
122             </revision>
123         </revhistory>
124     </refsection>
125 </refentry>