~ubuntu-branches/debian/sid/genius/sid

« back to all changes in this revision

Viewing changes to help/fr/genius.xml

  • Committer: Package Import Robot
  • Author(s): Felipe Sateler
  • Date: 2014-04-07 15:43:04 UTC
  • mfrom: (1.2.6)
  • Revision ID: package-import@ubuntu.com-20140407154304-21r03zdnfc571kz0
Tags: 1.0.17-1
* Take over package from pkg-gnome
* New upstream release. Closes: #716731
* Bump standards version.
* Update Vcs fields to Git.
* Move to single-debian-patch

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0" encoding="utf-8"?>
 
2
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
 
3
<!ENTITY app "<application>Genius Mathematics Tool</application>">
 
4
<!ENTITY appname "Genius">
 
5
<!ENTITY appversion "1.0.17">
 
6
<!ENTITY date "June 2013">
 
7
<!ENTITY legal SYSTEM "legal.xml">
 
8
<!ENTITY manrevision "0.2">
 
9
<!ENTITY lt "&#60;">
 
10
<!ENTITY gt "&#62;">
 
11
<!ENTITY le "&#8804;">
 
12
<!ENTITY ge "&#8805;">
 
13
<!ENTITY lsquo "&#8216;">
 
14
<!ENTITY rsquo "&#8217;">
 
15
<!--<!ENTITY gel-function-list SYSTEM "gel-function-list.xml">-->]>
 
16
<!-- 
 
17
      (Do not remove this comment block.)
 
18
  Maintained by the GNOME Documentation Project
 
19
  http://developer.gnome.org/projects/gdp
 
20
  Template version: 2.0 beta
 
21
  Template last modified Apr 11, 2002
 
22
-->
 
23
<!-- =============Document Header ============================= -->
 
24
<book id="index" lang="fr">
 
25
<!-- please do not change the id; for translations, change lang to -->
 
26
<!-- appropriate code -->
 
27
  <bookinfo>
 
28
          <abstract role="description"><para>Manuel de l'Outil de maths Genius.</para></abstract>
 
29
    <title>Manuel de Genius</title>       
 
30
 
 
31
    <copyright>
 
32
      <year>1997-2013</year>
 
33
      <holder>Jiří (George) Lebl</holder>
 
34
    </copyright>
 
35
    <copyright>
 
36
      <year>2004</year>
 
37
      <holder>Kai Willadsen</holder>
 
38
    </copyright><copyright><year>2010-11</year><holder>Bruno Brouard (annoa.b@gmail.com)</holder></copyright><copyright><year>2011</year><holder>Luc Pionchon (pionchon.luc@gmail.com)</holder></copyright>
 
39
<!-- translators: uncomment this:
 
40
  <copyright>
 
41
   <year>2002</year>
 
42
   <holder>ME-THE-TRANSLATOR (Latin translation)</holder>
 
43
  </copyright>
 
44
-->
 
45
 
 
46
    <publisher> 
 
47
      <publishername/> 
 
48
    </publisher> 
 
49
 
 
50
     <legalnotice id="legalnotice">
 
51
        <para>Permission vous est donnée de copier, distribuer et/ou modifier ce document selon les termes de la Licence GNU Free Documentation License, Version 1.1 ou ultérieure publiée par la Free Software Foundation sans section inaltérable, sans texte de première page de couverture ni texte de dernière page de couverture. Vous trouverez un exemplaire de cette licence en suivant ce <ulink type="help" url="ghelp:fdl">lien</ulink> ou dans le fichier COPYING-DOCS fourni avec le présent manuel.</para>
 
52
         <para>Ce manuel fait partie de la collection de manuels GNOME distribués selon les termes de la licence de documentation libre GNU. Si vous souhaitez distribuer ce manuel indépendamment de la collection, vous devez joindre un exemplaire de la licence au document, comme indiqué dans la section 6 de celle-ci.</para>
 
53
 
 
54
        <para>La plupart des noms utilisés par les entreprises pour distinguer leurs produits et services sont des marques déposées. Lorsque ces noms apparaissent dans la documentation GNOME et que les membres du projet de Documentation GNOME sont informés de l'existence de ces marques déposées, soit ces noms entiers, soit leur première lettre est en majuscule.</para>
 
55
 
 
56
        <para>LE PRÉSENT DOCUMENT ET SES VERSIONS MODIFIÉES SONT FOURNIS SELON LES TERMES DE LA LICENCE DE DOCUMENTATION LIBRE GNU SACHANT QUE : <orderedlist>
 
57
                <listitem>
 
58
                  <para>LE PRÉSENT DOCUMENT EST FOURNI « TEL QUEL », SANS AUCUNE GARANTIE, EXPRESSE OU IMPLICITE, Y COMPRIS, ET SANS LIMITATION, LES GARANTIES DE MARCHANDABILITÉ, D'ADÉQUATION À UN OBJECTIF PARTICULIER OU DE NON INFRACTION DU DOCUMENT OU DE SA VERSION MODIFIÉE. L'UTILISATEUR ASSUME TOUT RISQUE RELATIF À LA QUALITÉ, À LA PERTINENCE ET À LA PERFORMANCE DU DOCUMENT OU DE SA VERSION DE MISE À JOUR. SI LE DOCUMENT OU SA VERSION MODIFIÉE S'AVÉRAIT DÉFECTUEUSE, L'UTILISATEUR (ET NON LE RÉDACTEUR INITIAL, L'AUTEUR, NI TOUT AUTRE PARTICIPANT) ENDOSSERA LES COÛTS DE TOUTE INTERVENTION, RÉPARATION OU CORRECTION NÉCESSAIRE. CETTE DÉNÉGATION DE RESPONSABILITÉ CONSTITUE UNE PARTIE ESSENTIELLE DE CETTE LICENCE. AUCUNE UTILISATION DE CE DOCUMENT OU DE SA VERSION MODIFIÉE N'EST AUTORISÉE AUX TERMES DU PRÉSENT ACCORD, EXCEPTÉ SOUS CETTE DÉNÉGATION DE RESPONSABILITÉ ; </para>
 
59
                </listitem>
 
60
                <listitem>
 
61
                  <para>EN AUCUNE CIRCONSTANCE ET SOUS AUCUNE INTERPRÉTATION DE LA LOI, QU'IL S'AGISSE D'UN DÉLIT CIVIL (Y COMPRIS LA NÉGLIGENCE), CONTRACTUEL OU AUTRE, L'AUTEUR, LE RÉDACTEUR INITIAL, TOUT PARTICIPANT OU TOUT DISTRIBUTEUR DE CE DOCUMENT OU DE SA VERSION MODIFIÉE, OU TOUT FOURNISSEUR DE L'UNE DE CES PARTIES NE POURRA ÊTRE TENU RESPONSABLE À L'ÉGARD DE QUICONQUE POUR TOUT DOMMAGE DIRECT, INDIRECT, PARTICULIER, OU ACCIDENTEL DE TOUT TYPE Y COMPRIS, SANS LIMITATION, LES DOMMAGES LIÉS À LA PERTE DE CLIENTÈLE, À UN ARRÊT DE TRAVAIL, À UNE DÉFAILLANCE OU UN MAUVAIS FONCTIONNEMENT INFORMATIQUE, OU À TOUT AUTRE DOMMAGE OU PERTE LIÉE À L'UTILISATION DU DOCUMENT ET DE SES VERSIONS MODIFIÉES, MÊME SI LADITE PARTIE A ÉTÉ INFORMÉE DE L'ÉVENTUALITÉ DE TELS DOMMAGES.</para>
 
62
                </listitem>
 
63
          </orderedlist></para>
 
64
  </legalnotice>
 
65
 
 
66
 
 
67
   <!-- This file  contains link to license for the documentation (GNU FDL), and 
 
68
        other legal stuff such as "NO WARRANTY" statement. Please do not change 
 
69
        any of this. -->
 
70
 
 
71
    <authorgroup> 
 
72
      <author role="maintainer"> 
 
73
                <firstname>Jiří</firstname> 
 
74
                <surname>Lebl</surname> 
 
75
                <affiliation> 
 
76
                        <orgname>Université de Wisconsin-Madison</orgname> 
 
77
                        <address> <email>jirka@5z.com</email> </address> 
 
78
                </affiliation> 
 
79
      </author> 
 
80
      <author> 
 
81
                <firstname>Kai</firstname> 
 
82
                <surname>Willadsen</surname> 
 
83
                <affiliation> 
 
84
                        <orgname>Université de Queensland, Australie</orgname> 
 
85
                        <address> <email>kaiw@itee.uq.edu.au</email> </address> 
 
86
                </affiliation> 
 
87
      </author> 
 
88
      
 
89
<!-- This is appropriate place for other contributors: translators,
 
90
     maintainers,  etc. Commented out by default.
 
91
     
 
92
      <othercredit role="translator">
 
93
                <firstname>Latin</firstname> 
 
94
                <surname>Translator 1</surname> 
 
95
                <affiliation> 
 
96
                        <orgname>Latin Translation Team</orgname> 
 
97
                        <address> <email>translator@gnome.org</email> </address> 
 
98
                </affiliation>
 
99
                <contrib>Latin translation</contrib>
 
100
      </othercredit>
 
101
-->
 
102
    </authorgroup>
 
103
 
 
104
 
 
105
<!-- According to GNU FDL, revision history is mandatory if you are -->
 
106
<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
 
107
<!-- Remember to remove the &manrevision; entity from the revision entries other
 
108
-->
 
109
<!-- than the current revision. -->
 
110
<!-- The revision numbering system for GNOME manuals is as follows: -->
 
111
<!-- * the revision number consists of two components -->
 
112
<!-- * the first component of the revision number reflects the release version of the GNOME desktop. -->
 
113
<!-- * the second component of the revision number is a decimal unit that is incremented with each revision of the manual. -->
 
114
<!-- For example, if the GNOME desktop release is V2.x, the first version of the manual that -->
 
115
<!-- is written in that desktop timeframe is V2.0, the second version of the manual is V2.1, etc. -->
 
116
<!-- When the desktop release version changes to V3.x, the revision number of the manual changes -->
 
117
<!-- to V3.0, and so on. -->  
 
118
<!--  This is unmaintained quite a bit so screw this it just makes things
 
119
      ugly and we don't update the manrevision stuff anyway
 
120
    <revhistory>
 
121
      <revision> 
 
122
                <revnumber>&manrevision;</revnumber> 
 
123
                <date>&date;</date> 
 
124
                <revdescription> 
 
125
                        <para role="author">Jiri (George) Lebl
 
126
                <email>jirka@5z.com</email>
 
127
                        </para>
 
128
                </revdescription> 
 
129
      </revision> 
 
130
      <revision> 
 
131
                <revnumber>0.1</revnumber> 
 
132
                <date>September 2004</date> 
 
133
                <revdescription> 
 
134
                        <para role="author">Kai Willadsen
 
135
                <email>kaiw@itee.uq.edu.au</email>
 
136
                        </para>
 
137
                </revdescription> 
 
138
      </revision> 
 
139
      <revision> 
 
140
                <revnumber>Genius Calculator Manual</revnumber> 
 
141
                <date>August 2004</date> 
 
142
                <revdescription> 
 
143
                        <para role="author">Jiri (George) Lebl
 
144
                <email>jirka@5z.com</email>
 
145
                        </para>
 
146
                </revdescription> 
 
147
      </revision> 
 
148
    </revhistory> 
 
149
-->
 
150
 
 
151
    <revhistory>
 
152
      <revision> 
 
153
                <revnumber>0.2</revnumber> 
 
154
                <date>June 2013</date> 
 
155
                <revdescription> 
 
156
                        <para role="author">Jiri (George) Lebl <email>jirka@5z.com</email></para>
 
157
                </revdescription> 
 
158
      </revision> 
 
159
    </revhistory>
 
160
    <releaseinfo>This manual describes version 1.0.17 of Genius.
 
161
    </releaseinfo> 
 
162
    <legalnotice> 
 
163
      <title>Votre avis</title> 
 
164
      <para>Pour signaler un problème ou faire une suggestion concernant l'application <application>Outil de maths Genius</application> ou le présent manuel, procédez comme indiqué à la <ulink url="ghelp:gnome-feedback" type="help">page de réactions sur GNOME</ulink>.</para>
 
165
<!-- Translators may also add here feedback address for translations -->
 
166
    </legalnotice> 
 
167
  </bookinfo> 
 
168
 
 
169
<!-- ============= Introduction =============================== -->
 
170
  <chapter id="genius-introduction"> 
 
171
    <title>Introduction</title> 
 
172
    <para>L'application <application>Outil de maths Genius</application> est un calculateur générique qui peut être utilisé comme calculatrice de bureau, outil éducatif en mathématiques et peut même être utile pour la recherche. Le langage utilisé dans l'<application>Outil de maths Genius</application> a été conçu pour être « mathématique » dans le sens où il devrait être « what you mean is what you get » (« ce que vous pensez est ce que vous obtenez »). C'est bien sûr un objectif pas complètement atteignable. L'<application>Outil de maths Genius</application> peut utiliser des rationnels, des entiers de précision arbitraire et des nombres à virgule flottante avec différentes précisions en utilisant la bibliothèque GMP. Il prend en charge les nombres complexes en utilisant la notation cartésienne. Il sait comment manipuler correctement les vecteurs et les matrices et prend en charge l'algèbre linéaire élémentaire. Le langage de programmation autorise la définition de fonctions et de variables utilisateurs et la modification de certains paramètres.</para> 
 
173
 
 
174
    <para>Il existe deux versions de l'<application>Outil de maths Genius</application>. L'une est la version graphique de GNOME qui inclut une interface de style IDE et la possibilité de tracer des fonctions à une ou deux variables. L'autre, la version en ligne de commande, n'a pas besoin de GNOME mais bien sûr, elle n'implémente aucune fonctionnalité qui requiert l'interface graphique.</para> 
 
175
 
 
176
    <para>Ce manuel décrit principalement la version graphique du calculateur mais bien sûr le langage de programmation est le même. Il ne manque à la version en ligne de commande que les possibilités graphiques et toutes les autres fonctionnalités qui requièrent l'interface graphique.</para>
 
177
 
 
178
  </chapter>
 
179
 
 
180
<!-- =========== Getting Started ============================== -->
 
181
  <chapter id="genius-getting-started"> 
 
182
    <title>Premiers pas</title> 
 
183
 
 
184
    <sect1 id="genius-to-start">
 
185
      <title>Lancement de l'<application>Outil de maths Genius</application></title>
 
186
      <para>Vous pouvez démarrer l'<application>Outil de maths Genius</application> d'une des manières suivantes :</para> 
 
187
      <variablelist>
 
188
        <varlistentry>
 
189
          <term>Menu <guimenu>Applications</guimenu></term>
 
190
          <listitem>
 
191
            <para>En fonction de votre système d'exploitation et de sa version, l'élément de menu pour l'<application>Outil de maths Genius</application> peut apparaître à différents endroits. Cela peut être dans les sous-menus <guisubmenu>Éducation</guisubmenu>, <guisubmenu>Accessoires</guisubmenu>, <guisubmenu>Bureautique</guisubmenu>, <guisubmenu>Science</guisubmenu> ou d'autres similaires en fonction de vos réglages personnels. Le nom de l'entrée de menu que vous recherchez est <application>Outil de maths Genius</application>. Une fois localisé, cliquez dessus pour démarrer l'<application>Outil de maths Genius</application>.</para>
 
192
              </listitem>
 
193
        </varlistentry>
 
194
        <varlistentry>
 
195
          <term>Boîte de dialogue <guilabel>Lancer une application</guilabel></term>
 
196
          <listitem>
 
197
            <para>Il se peut que l'entrée de menu ne soit pas accessible pour votre système d'exploitation. Dans ce cas, vous pouvez ouvrir la boîte de dialogue <guilabel>Lancer une application</guilabel> et saisir <command>gnome-genius</command>.</para>
 
198
              </listitem>
 
199
        </varlistentry>
 
200
        <varlistentry>
 
201
          <term>Ligne de commande</term>
 
202
          <listitem>
 
203
            <para>Pour démarrer la version GNOME de l'<application>Outil de maths Genius</application>, saisissez <command>gnome-genius</command>.</para>
 
204
            <para>Pour démarrer seulement la version en ligne de commande, exécutez la commande <command>genius</command>. Cette version ne comprend pas d'environnement graphique et certaines fonctionnalités comme le tracé de graphiques ne sont pas disponibles.</para> 
 
205
          </listitem>
 
206
        </varlistentry>
 
207
      </variablelist>
 
208
    </sect1>
 
209
 
 
210
    <sect1 id="genius-when-start">
 
211
    <title>Démarrage de Genius</title>
 
212
      <para>Lorsque vous démarrez la version GNOME de l'<application>Outil de maths Genius</application>, la fenêtre <xref linkend="mainwindow-fig"/> apparaît.</para>
 
213
 
 
214
      <figure id="mainwindow-fig"> 
 
215
        <title>Fenêtre de l'<application>Outil de maths Genius</application></title> 
 
216
        <screenshot> 
 
217
          <mediaobject> 
 
218
            <imageobject>
 
219
              <imagedata fileref="figures/genius_window.png" format="PNG" scalefit="1"/> 
 
220
            </imageobject>
 
221
            <textobject> 
 
222
              <phrase>Affiche <application>Outil de maths Genius</application> la fenêtre principale. Contient la barre de titre, la barre de menus, la barre d'outils et la zone de travail. La barre de menu contient <guilabel>Fichier</guilabel>, <guilabel>Édition</guilabel>, <guilabel>Calculatrice</guilabel>, <guilabel>Paramètres</guilabel> et <guilabel>Aide</guilabel>.</phrase> 
 
223
            </textobject> 
 
224
          </mediaobject>
 
225
        </screenshot> 
 
226
      </figure>
 
227
 
 
228
      <para>La fenêtre de l'<application>Outil de maths Genius</application> contient les éléments suivants :</para>
 
229
      <variablelist>
 
230
        <varlistentry>
 
231
          <term>Barre de menus</term>
 
232
          <listitem>
 
233
            <para>Les menus de la barre de menus contiennent toutes les commandes dont vous aurez besoin pour travailler avec les fichiers dans l'<application>Outil de maths Genius</application>. Le menu <guilabel>Fichier</guilabel> contient les éléments pour charger et enregistrer des éléments et créer de nouveaux programmes. La commande <guilabel>Charger et exécuter...</guilabel> n'ouvre pas de nouvelle fenêtre pour le programme mais exécute seulement le programme directement. Elle est équivalente à la commande <command>load</command>.</para>
 
234
            <para>Le menu <guilabel>Calculateur</guilabel> contrôle le moteur de calcul. Il vous permet de lancer le programme actuellement sélectionné ou d'interrompre le calcul en cours. Vous pouvez également afficher l'expression complète de la dernière réponse (c'est utile si la dernière expression est trop grande pour tenir sur la console) ou afficher une liste des valeurs de toutes les variables définies par l'utilisateur. Enfin, il permet de tracer des fonctions en utilisant une boîte de dialogue conviviale.</para>
 
235
           <para>Les autres menus contiennent les mêmes fonctions classiques qui apparaissent dans d'autres applications.</para>
 
236
          </listitem>
 
237
        </varlistentry>
 
238
        <varlistentry>
 
239
          <term>Barre d'outils</term>
 
240
          <listitem>
 
241
            <para>La barre d'outils contient un sous-ensemble des commandes accessibles à partir de la barre de menus.</para>
 
242
          </listitem>
 
243
        </varlistentry>
 
244
        <varlistentry>
 
245
          <term>Zone de travail</term>
 
246
          <listitem>
 
247
            <para>La zone de travail est la principale méthode d'interaction avec l'application.</para>
 
248
            <para>La zone de travail ne contient initialement que l'onglet <guilabel>Console</guilabel> qui est la principale façon d'interagir avec le calculateur. Vous pouvez saisir ici des expressions et les résultats sont immédiatement affichés après avoir appuyé sur la touche Entrée.</para>
 
249
            <para>Vous pouvez également écrire des programmes plus longs qui peuvent apparaître dans des onglets séparés et peuvent être enregistrés dans des fichiers pour pouvoir les reprendre plus tard.</para>
 
250
          </listitem>
 
251
        </varlistentry>
 
252
      </variablelist>
 
253
    </sect1>
 
254
 
 
255
  </chapter>
 
256
 
 
257
<!-- ================ Usage =================================== -->
 
258
  <chapter id="genius-usage"> 
 
259
    <title>Utilisation de base</title> 
 
260
 
 
261
    <sect1 id="genius-usage-workarea"> 
 
262
      <title>Utilisation de la zone de travail</title> 
 
263
 
 
264
      <para>Normalement, vous interagissez avec le calculateur dans l'onglet <guilabel>Console</guilabel> de la zone de travail. Si vous n'utilisez que la version texte de l'application alors la console est la seule chose disponible. Si vous voulez utiliser l'<application>Outil de maths Genius</application> en tant que calculatrice seulement, saisissez vos expressions ici et elles seront évaluées.</para>
 
265
 
 
266
      <para>Saisissez vos expressions dans la zone de travail <guilabel>Console</guilabel>, appuyez sur la touche Entrée et l'expression est évaluée. Les expressions sont écrites dans un langage appelé GEL. L'expression GEL la plus simple ressemble à des mathématiques. Par exemple <screen><prompt>genius&gt; </prompt><userinput>30*70 + 67^3.0 + ln(7) * (88.8/100)</userinput>
 
267
</screen> ou <screen><prompt>genius&gt; </prompt><userinput>62734 + 812634 + 77^4 mod 5</userinput>
 
268
</screen> ou <screen><prompt>genius&gt; </prompt><userinput>| sin(37) - e^7 |</userinput>
 
269
</screen> ou <screen><prompt>genius&gt; </prompt><userinput>sum n=1 to 70 do 1/n</userinput>
 
270
</screen> (cette dernière est une série harmonique de 1 à 70).</para>
 
271
<para>Pour obtenir une liste des fonctions et commandes, saisissez : <screen><prompt>genius&gt; </prompt><userinput>help</userinput>
 
272
</screen> Si vous souhaitez obtenir plus d'aide sur une fonction précise, saisissez : <screen><prompt>genius&gt; </prompt><userinput>help NomDeLaFonction</userinput>
 
273
</screen> Pour afficher ce manuel, saisissez : <screen><prompt>genius&gt; </prompt><userinput>manual</userinput>
 
274
</screen></para>
 
275
<para>Supposons que vous ayez auparavant enregistré un programme contenant des commandes GEL dans un fichier et que vous vouliez maintenant les exécuter. Pour charger ce programme à partir du fichier <filename>chemin/vers/programme.gel</filename>, saisissez <screen><prompt>genius&gt; </prompt><userinput>load chemin/vers/programme.gel</userinput></screen>
 
276
L'<application>Outil de maths Genius</application> garde la trace du répertoire actuel. Pour afficher la liste des fichiers dans le répertoire actuel, saisissez <command>ls</command>, pour changer de répertoire, saisissez <userinput>cd répertoire</userinput> comme dans un shell de commande unix.</para>
 
277
    </sect1>
 
278
 
 
279
    <sect1 id="genius-usage-create-program"> 
 
280
      <title>Création d'un programme</title> 
 
281
      <para>Pour commencer à écrire un nouveau programme, choisissez <menuchoice><guimenu>Fichier</guimenu><guimenuitem>Nouveau programme</guimenuitem></menuchoice>. Un nouvel onglet apparaît dans la zone de travail. Vous pouvez écrire un programme <link linkend="genius-gel">GEL</link> dans cet espace de travail. Après avoir écrit votre programme, vous pouvez l'exécuter à l'aide de la commande <menuchoice><guimenu>Calculateur</guimenu><guimenuitem>Exécuter</guimenuitem></menuchoice>. Cela lance votre programme et affiche toutes les sorties dans l'onglet <guilabel>Console</guilabel>. Exécuter un programme est équivalent à prendre le texte du programme et à le saisir dans la console. La seule différence est que cette entrée est faite indépendamment de la console et que seule la sortie apparaît dans la console. <menuchoice><guimenu>Calculateur</guimenu><guimenuitem>Exécuter</guimenuitem></menuchoice> exécute toujours le programme actuellement sélectionné, même si vous êtes dans l'onglet <guilabel>Console</guilabel>. Le programme actuellement sélectionné est celui dont l'onglet est en gras. Pour sélectionner un autre programme, il suffit de cliquer sur son onglet.</para>
 
282
      <para>Pour enregistrer le programme que vous venez d'écrire, choisissez <menuchoice><guimenu>Fichier</guimenu><guimenuitem>Enregistrer sous...</guimenuitem></menuchoice></para>
 
283
    </sect1>
 
284
 
 
285
    <sect1 id="genius-usage-open-program"> 
 
286
      <title>Ouverture et lancement d'un programme</title> 
 
287
      <para>Pour ouvrir un fichier, choisissez <menuchoice><guimenu>Fichier</guimenu><guimenuitem>Ouvrir</guimenuitem></menuchoice>. Un nouvel onglet contenant le fichier apparaît dans la zone de travail. Vous pouvez l'utiliser pour modifier le fichier.</para>
 
288
      <para>Pour lancer un programme à partir d'un fichier, choisissez <menuchoice><guimenu>Fichier</guimenu><guimenuitem>Charger et exécuter...</guimenuitem></menuchoice>. Le programme est lancé sans être ouvert dans un onglet séparé. C'est équivalent à la commande <command>load</command>.</para>
 
289
    </sect1>
 
290
 
 
291
  </chapter>
 
292
 
 
293
  <!-- ============= Plotting ============================== -->
 
294
  <chapter id="genius-gel-plotting">
 
295
    <title>Tracé de graphiques</title>
 
296
 
 
297
    <para>Le tracé de graphiques n'est disponible que dans la version graphique GNOME. Tous les tracés accessibles à partir de l'interface graphique sont disponibles à partir de la fenêtre <guilabel>Création de graphiques</guilabel>. Vous pouvez accéder à cette fenêtre, soit en cliquant sur le bouton <guilabel>Tracer</guilabel> de la barre d'outils ou en sélectionnant <guilabel>Tracer</guilabel> dans le menu <guilabel>Calculateur</guilabel>. Vous pouvez également accéder aux fonctionnalités de tracer en utilisant les <link linkend="genius-gel-function-list-plotting">fonctions de tracé</link> du langage GEL. Consultez <xref linkend="genius-gel"/> pour apprendre comment saisir des expressions compréhensibles par Genius.</para>
 
298
 
 
299
    <sect1 id="genius-line-plots">
 
300
      <title>Tracé de lignes</title>
 
301
      <para>Pour tracer des fonctions réelles d'une variable, ouvrez la fenêtre <guilabel>Création de graphiques</guilabel>. Vous pouvez aussi utiliser la fonction <link linkend="gel-function-LinePlot"><function>LinePlot</function></link> en ligne de commande (consultez sa documentation).</para>
 
302
      <para>Une fois que vous avez cliqué sur le bouton <guilabel>Tracer</guilabel>, une fenêtre contenant des onglets apparaît. Vous devez être dans l'onglet <guilabel>Tracé de lignes</guilabel> et dans celui-ci, vous devez être dans l'onglet <guilabel>Fonctions / Expressions</guilabel> (consultez <xref linkend="lineplot-fig"/>).</para>
 
303
 
 
304
      <figure id="lineplot-fig"> 
 
305
        <title>Fenêtre Création de graphiques</title> 
 
306
        <screenshot> 
 
307
          <mediaobject> 
 
308
            <imageobject>
 
309
              <imagedata fileref="figures/line_plot.png" format="PNG" scalefit="1"/> 
 
310
            </imageobject>
 
311
            <textobject> 
 
312
              <phrase>Affiche la fenêtre pour tracer des graphiques.</phrase> 
 
313
            </textobject> 
 
314
          </mediaobject> 
 
315
        </screenshot> 
 
316
      </figure>
 
317
 
 
318
      <para>
 
319
        Type expressions with <userinput>x</userinput> as
 
320
        the independent variable into the textboxes.  Alternatively you can give names of functions such as
 
321
        <userinput>cos</userinput> rather then having to type <userinput>cos(x)</userinput>.
 
322
        You can graph up to ten functions.  If you make a mistake and Genius cannot
 
323
        parse the input it will signify this with a warning icon on the right of the text
 
324
        input box where the error occurred, as well as giving you an error dialog.
 
325
        You can change the ranges of the dependent and independent variables in the bottom
 
326
        part of the dialog.
 
327
        The <varname>y</varname> (dependent) range can be set automatically by turning on the <guilabel>Fit dependent axis</guilabel>
 
328
        checkbox.
 
329
        The names of the variables can also be changed.
 
330
        Pressing the <guilabel>Plot</guilabel> button produces the graph shown in <xref linkend="lineplot2-fig"/>.
 
331
      </para>
 
332
 
 
333
      <figure id="lineplot2-fig"> 
 
334
        <title>Fenêtre contenant une courbe</title> 
 
335
        <screenshot> 
 
336
          <mediaobject> 
 
337
            <imageobject>
 
338
              <imagedata fileref="figures/line_plot_graph.png" format="PNG" scalefit="1"/> 
 
339
            </imageobject>
 
340
            <textobject> 
 
341
              <phrase>Le graphe produit.</phrase> 
 
342
            </textobject> 
 
343
          </mediaobject> 
 
344
        </screenshot> 
 
345
      </figure>
 
346
 
 
347
      <para>À partir de là, vous pouvez imprimer le graphe, créer une version postscript encapsulé ou PNG du graphe ou modifier le zoom. Si l'axe dépendant n'a pas été configuré correctement, Genius peut l'avoir ajusté en cherchant les extrema des fonctions tracées.</para>
 
348
 
 
349
      <para>Pour tracer à partir de la ligne de commande, consultez la documentation de la fonction <link linkend="gel-function-LinePlot"><function>LinePlot</function></link>.</para>
 
350
    </sect1>
 
351
 
 
352
    <sect1 id="genius-parametric-plots">
 
353
      <title>Courbes paramétriques</title>
 
354
      <para>
 
355
        In the create plot window, you can also choose the <guilabel>Parametric</guilabel> notebook
 
356
        tab to create two dimensional parametric plots.  This way you can
 
357
        plot a single parametric function.  You can either specify the
 
358
        points as <varname>x</varname> and <varname>y</varname>, or giving a single complex number
 
359
        as a function of the variable <varname>t</varname>.
 
360
        The range of the variable <varname>t</varname> is given explicitly, and the function is sampled
 
361
        according to the given increment.
 
362
        The <varname>x</varname> and <varname>y</varname> range can be set
 
363
        automatically by turning on the <guilabel>Fit dependent axis</guilabel>
 
364
        checkbox, or it can be specified explicitly.
 
365
        See <xref linkend="paramplot-fig"/>.
 
366
      </para>
 
367
 
 
368
      <figure id="paramplot-fig"> 
 
369
        <title>Onglet pour les courbes paramétriques</title> 
 
370
        <screenshot> 
 
371
          <mediaobject> 
 
372
            <imageobject>
 
373
              <imagedata fileref="figures/parametric.png" format="PNG" scalefit="1"/> 
 
374
            </imageobject>
 
375
            <textobject> 
 
376
              <phrase>Onglet pour tracer paramétrique dans la fenêtre <guilabel>Création de graphiques</guilabel>.</phrase> 
 
377
            </textobject> 
 
378
          </mediaobject> 
 
379
        </screenshot> 
 
380
      </figure>
 
381
 
 
382
      <para>
 
383
        An example of a parametric plot is given in
 
384
        <xref linkend="paramplot2-fig"/>.
 
385
        Similar operations can be
 
386
        done on such graphs as can be done on the other line plots.
 
387
        For plotting using the command line see the documentation of the
 
388
        <link linkend="gel-function-LinePlotParametric"><function>LinePlotParametric</function></link> or
 
389
        <link linkend="gel-function-LinePlotCParametric"><function>LinePlotCParametric</function></link> function.
 
390
      </para>
 
391
 
 
392
      <figure id="paramplot2-fig"> 
 
393
        <title>Courbe paramétrique</title> 
 
394
        <screenshot> 
 
395
          <mediaobject> 
 
396
            <imageobject>
 
397
              <imagedata fileref="figures/parametric_graph.png" format="PNG" scalefit="1"/> 
 
398
            </imageobject>
 
399
            <textobject> 
 
400
              <phrase>Courbe paramétrique produite</phrase> 
 
401
            </textobject> 
 
402
          </mediaobject> 
 
403
        </screenshot> 
 
404
      </figure>
 
405
 
 
406
    </sect1>
 
407
 
 
408
    <sect1 id="genius-slopefield-plots">
 
409
      <title>Champ de directions</title>
 
410
      <para>Dans la fenêtre de création de graphiques, vous pouvez également sélectionner l'onglet <guilabel>Champ de directions</guilabel> pour créer un graphique de champ de directions à deux dimensions. Des opérations, similaires à celles qui peuvent être réalisées sur les tracés de lignes, peuvent être réalisées sur des graphiques de ce type. Pour réaliser des graphiques en ligne de commande, consultez la documentation de la fonction <link linkend="gel-function-SlopefieldPlot"><function>SlopefieldPlot</function></link>.</para>
 
411
 
 
412
      <para>Quand un champ de directions est actif, un menu supplémentaire <guilabel>Solveur</guilabel> est disponible, il vous permet d'afficher la boîte de dialogue du solveur. Dans celle-ci, vous pouvez faire tracer à Genius des solutions spécifiques pour les conditions initiales fournies. Vous pouvez soit indiquer des conditions initiales spécifiques dans la boîte de dialogue ou cliquer sur le graphique directement pour indiquer le point de départ. Tant que la boîte de dialogue du solveur est active, la fonction de zoom par clic et déplacement ne fonctionne pas. Vous devez d'abord fermer la boîte de dialogue si vous voulez zoomer avec votre souris.</para>
 
413
 
 
414
      <para>Le solveur utilise la méthode standard de Runge-Kutta. Les graphiques restent sur l'écran jusqu'à ce qu'ils soient effacés. Le solveur s'arrête à chaque fois qu'il atteint les limites de la fenêtre du graphique. Le fait de zoomer ne modifie pas les limites ou paramètres des solutions, vous devez les effacer et les redessiner avec les paramètres appropriés. Vous pouvez utiliser la fonction <link linkend="gel-function-SlopefieldDrawSolution"><function>SlopefieldDrawSolution</function></link> pour tracer les solutions à partir de la ligne de commande ou dans des programmes.</para>
 
415
 
 
416
    </sect1>
 
417
 
 
418
    <sect1 id="genius-vectorfield-plots">
 
419
      <title>Champ de vecteurs</title>
 
420
      <para>Dans la fenêtre de création de graphiques, vous pouvez également sélectionner l'onglet <guilabel>Champ de vecteurs</guilabel> pour créer un graphique de champ de vecteurs à deux dimensions. Des opérations, similaires à celles qui peuvent être réalisées sur les tracés de lignes, peuvent être réalisées sur des graphiques de ce type. Pour réaliser des graphiques en ligne de commande, consultez la documentation de la fonction <link linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>.</para>
 
421
 
 
422
      <para>Par défaut, la direction et l'amplitude du champ de vecteurs sont affichées. Pour n'afficher que la direction, cochez la case appropriée pour normaliser la longueur des flèches.</para>
 
423
 
 
424
      <para>Quand un champ de vecteurs est actif, un menu supplémentaire <guilabel>Solveur</guilabel> est disponible, vous permettant d'afficher la boîte de dialogue du solveur. Dans celle-ci, vous pouvez faire tracer à Genius des solutions spécifiques pour les conditions initiales fournies. Vous pouvez soit indiquer des conditions initiales spécifiques dans la boîte de dialogue ou cliquer sur le graphique directement pour indiquer le point de départ. Tant que la boîte de dialogue du solveur est active, la fonction de zoom par clic et déplacement ne fonctionne pas. Vous devez d'abord fermer la boîte de dialogue si vous voulez zoomer avec votre souris.</para>
 
425
 
 
426
      <para>Le solveur utilise la méthode standard de Runge-Kutta. Les graphiques restent sur l'écran jusqu'à ce qu'ils soient effacés. Le fait de zoomer ne modifie pas les limites ou paramètres des solutions, vous devez effacer et les redessiner avec les paramètres appropriés. Vous pouvez utiliser la fonction <link linkend="gel-function-VectorfieldDrawSolution"><function>VectorfieldDrawSolution</function></link> pour tracer les solutions à partir de la ligne de commande ou dans des programmes.</para>
 
427
 
 
428
    </sect1>
 
429
 
 
430
    <sect1 id="genius-surface-plots">
 
431
      <title>Tracé de surfaces</title>
 
432
      <para>Genius peut aussi tracer des surfaces. Sélectionnez l'onglet <guilabel>Tracé de surface</guilabel> dans l'onglet principal de la fenêtre de <guilabel>Création de graphiques</guilabel>. Dans celui-ci, vous pouvez indiquer une expression simple qui doit utiliser soit les variables indépendantes <varname>x</varname> et <varname>y</varname> ou la variable complexe <varname>z</varname> (où <varname>x</varname> est la partie réelle de <varname>z</varname> et <varname>y</varname> sa partie imaginaire). Par exemple, pour tracer le module de la fonction cosinus pour des arguments complexes, vous pouvez saisir <userinput>|cos(z)|</userinput> ce qui est équivalent à <userinput>|cos(x+1i*y)|</userinput> (consultez <xref linkend="surfaceplot-fig"/>). Pour réaliser des graphiques en ligne de commande, consultez la documentation de la fonction <link linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>.</para>
 
433
      <para>
 
434
              The <varname>z</varname> range can be set automatically by turning on the <guilabel>Fit dependent axis</guilabel>
 
435
              checkbox.
 
436
      </para>
 
437
 
 
438
      <figure id="surfaceplot-fig"> 
 
439
        <title>Graphique de surface</title> 
 
440
        <screenshot> 
 
441
          <mediaobject> 
 
442
            <imageobject>
 
443
              <imagedata fileref="figures/surface_graph.png" format="PNG" scalefit="1"/> 
 
444
            </imageobject>
 
445
            <textobject> 
 
446
              <phrase>Module de la fonction cosinus complex.</phrase> 
 
447
            </textobject> 
 
448
          </mediaobject> 
 
449
        </screenshot> 
 
450
      </figure>
 
451
 
 
452
    </sect1>
 
453
 
 
454
  </chapter>
 
455
 
 
456
  <!-- ============= GEL ====================================== -->
 
457
  <chapter id="genius-gel"> 
 
458
    <title>Fondamentaux GEL</title> 
 
459
 
 
460
        <para>
 
461
          GEL stands for Genius Extension Language.    It is the language you use
 
462
          to write programs in Genius. A program in GEL is simply an
 
463
          expression that evaluates to a number.
 
464
          <application>Genius Mathematics Tool</application> can be used as a simple calculator, or as a
 
465
          powerful theoretical research tool.  The syntax is meant to
 
466
          have as shallow of a learning curve as possible, especially for use
 
467
          as a calculator.
 
468
        </para>
 
469
 
 
470
    <sect1 id="genius-gel-values">
 
471
      <title>Types de données</title>
 
472
 
 
473
      <para>Les données GEL peuvent être des <link linkend="genius-gel-values-numbers">nombres</link>, des <link linkend="genius-gel-values-booleans">booléens</link> ou des <link linkend="genius-gel-values-strings">chaînes de caractères</link>. Les données peuvent, entre autre, être utilisées dans des calculs, attribuées à des variables et renvoyées par des fonctions.</para>
 
474
 
 
475
      <sect2 id="genius-gel-values-numbers">
 
476
        <title>Nombres</title>
 
477
        <para>Les entiers sont les premiers types de nombres GEL. Les entiers s'écrivent de façon habituelle. <programlisting>1234
 
478
</programlisting> Les nombres hexadécimaux et octaux peuvent être écrit à la manière du langage C. Par exemple : <programlisting>0x123ABC
 
479
01234
 
480
</programlisting> Vous pouvez aussi saisir des nombres dans n'importe quelle base en utilisant la notation <literal>&lt;base&gt;\&lt;nombre&gt;</literal>. Les chiffres plus grands que 10 utilisent des lettres tout comme pour l'hexadécimal. Par exemple, un nombre en base 23 pourrait s'écrire : <programlisting>23\1234ABCD
 
481
</programlisting></para>
 
482
 
 
483
        <para>Le deuxième type de nombres en GEL est celui des rationnels. Les rationnels sont simplement obtenus en divisant deux entiers. Il serait donc possible d'écrire : <programlisting>3/4
 
484
</programlisting> pour obtenir trois quarts. Les rationnels acceptent également la notation fractionnelle mixte, donc afin d'obtenir un et trois dixièmes, vous pouvez écrire : <programlisting>1 3/10
 
485
</programlisting></para>
 
486
 
 
487
        <para>Le type suivant est celui des nombres à virgule flottante. Ils sont saisis de la même manière qu'en C. Vous pouvez utiliser <literal>E</literal>, <literal>e</literal> ou <literal>@</literal> pour délimiter l'exposant. Notez que l'utilisation d'un délimiteur d'exposant implique un flottant même s'il n'y a pas de point séparateur des décimales dans le nombre. Exemples : <programlisting>1.315
 
488
7.887e77
 
489
7.887e-77
 
490
.3
 
491
0.3
 
492
77e5
 
493
</programlisting> Lorsque Genius affiche un flottant, il ajoute toujours <computeroutput>.0</computeroutput> même si le nombre est entier. C'est pour rappeler que les nombres à virgule flottante sont considérés comme des quantités imprécises. Lorsqu'un nombre est écrit en utilisant la notation scientifique, c'est toujours un flottant et, par conséquent, Genius n'affiche pas le <computeroutput>.0</computeroutput>.</para>
 
494
 
 
495
        <para>
 
496
The final type of number in gel is the complex numbers. You can enter a complex number as a sum of real and imaginary parts. To add an imaginary part, append an <literal>i</literal>.  Here are examples of entering complex numbers:
 
497
<programlisting>1+2i
 
498
8.01i
 
499
77*e^(1.3i)
 
500
</programlisting>
 
501
        </para>
 
502
 
 
503
        <important>
 
504
          <para>Lorsque vous saisissez des nombres imaginaires, il doit y avoir un nombre devant le <literal>i</literal>. Si vous utilisez <literal>i</literal> tout seul, Genius l'interprète comme une référence à la variable <varname>i</varname>. Si vous avez besoin de faire référence à <literal>i</literal> tout seul, utilisez <literal>1i</literal> à la place.</para>
 
505
 
 
506
          <para>Afin de pouvoir utiliser la notation en fraction mixte avec des nombres imaginaires, vous devez mettre la fraction mixte entre parenthèses (par exemple, <userinput>(1 2/5)i</userinput>).</para>
 
507
        </important>
 
508
 
 
509
      </sect2>
 
510
 
 
511
 
 
512
      <sect2 id="genius-gel-values-booleans">
 
513
        <title>Booléens</title>
 
514
        <para>Genius prend également en charge nativement les données booléennes. Les deux constantes booléennes sont <constant>true</constant> (vrai) et <constant>false</constant> (faux) ; ces identifiants peuvent être utilisés comme n'importe quelle autre variable. Vous pouvez aussi utiliser les identifiants <constant>True</constant>, <constant>TRUE</constant>, <constant>False</constant> et <constant>FALSE</constant> comme alias de ces précédents.</para>
 
515
        <para>Là où une expression booléenne est attendue, vous pouvez utiliser une grandeur booléenne ou toute expression qui produit soit un nombre soit un booléen. Si Genius a besoin d'évaluer un nombre en tant que booléen, il interprète 0 comme <constant>false</constant> et tout autre nombre comme <constant>true</constant>.</para>
 
516
        <para>Vous pouvez également faire des calculs avec des données booléennes. Par exemple : <programlisting>( (1 + true) - false ) * true
 
517
</programlisting> est identique à : <programlisting>( (true or true) or not false ) and true
 
518
</programlisting> Seules l'addition, la soustraction et la multiplication sont prises en charge. Si vous mélangez des nombres avec des booléens dans une expression alors les nombres sont convertis en booléens comme indiqué ci-dessus. Cela signifie que, par exemple : <programlisting>1 == true
 
519
</programlisting> vaut toujours <constant>true</constant> puisque 1 est converti en <constant>true</constant> avant d'être comparé à <constant>true</constant>.</para>
 
520
      </sect2>
 
521
 
 
522
 
 
523
      <sect2 id="genius-gel-values-strings">
 
524
        <title>Chaînes de caractères</title>
 
525
        <para>Tout comme les nombres et les booléens, les chaînes en GEL peuvent être enregistrées dans des variables et transmises à des fonctions. Vous pouvez également concaténer une chaîne avec une autre en utilisant l'opérateur plus. Par exemple, <programlisting>a=2+3;"Le résultat est : "+a
 
526
</programlisting> crée la chaîne : <programlisting>Le résultat est : 5
 
527
</programlisting> Vous pouvez également utiliser des séquences d'échappement comme <literal>\n</literal>,<literal>\t</literal>,<literal>\b</literal>,<literal>\a</literal> et <literal>\r</literal>. Pour obtenir un <literal>\</literal> ou un <literal>"</literal> dans une chaîne, vous devez les faire précéder d'un <literal>\</literal>. Par exemple : <programlisting>"Barre oblique : \\ Guillemets : \" Tabulations : \t1\t2\t3"
 
528
</programlisting> produit la chaîne : <programlisting>Barre oblique : \ Guillemets : " Tabulations :    1       2       3
 
529
</programlisting></para>
 
530
        <para>Vous pouvez en plus utiliser la fonction <function>string</function> de la bibliothèque pour convertir n'importe quoi en chaîne. Par exemple : <programlisting>string(22)
 
531
</programlisting> renvoie <programlisting>"22"
 
532
</programlisting> Les chaînes peuvent être également comparées avec les opérateurs <literal>==</literal> (égal à), <literal>!=</literal> (différent de) et <literal>&lt;=&gt;</literal> (comparaison).</para>
 
533
      </sect2>
 
534
 
 
535
 
 
536
      <sect2 id="genius-gel-values-null">
 
537
        <title>Null</title>
 
538
        <para>Il existe une grandeur spéciale appelée <constant>null</constant>. Il n'est pas possible de faire des calculs avec elle et rien n'est affichée lorsqu'elle est renvoyée. Par conséquent, <constant>null</constant> est utile lorsque vous voulez qu'une expression n'affiche rien. La valeur <constant>null</constant> peut être obtenue lorsque vous saisissez un point « <literal>.</literal> », la constante <constant>null</constant> ou rien. Par rien, nous voulons dire que si vous terminez une expression par un séparateur <literal>;</literal>, c'est équivalent de la terminer par un séparateur suivi d'un <constant>null</constant>.</para>
 
539
        <para>Exemple : <programlisting>x=5;.
 
540
x=5;
 
541
</programlisting></para>
 
542
<para>Certaines fonctions renvoient <constant>null</constant> quand aucune valeur ne peut être renvoyée ou quand une erreur survient. La grandeur <constant>null</constant> est aussi utilisée comme vecteur ou matrice vide ou comme une référence vide.</para>
 
543
      </sect2>
 
544
 
 
545
    </sect1>
 
546
 
 
547
    <sect1 id="genius-gel-variables">
 
548
      <title>Utilisation des variables</title>
 
549
 
 
550
      <para>Syntaxe : <programlisting>NomDeVariable
 
551
</programlisting> Exemple : <screen><prompt>genius&gt; </prompt><userinput>e</userinput>
 
552
= 2.71828182846
 
553
</screen></para>
 
554
 
 
555
      <para>Pour évaluer une variable elle-même, il suffit de saisir le nom de la variable. Cela renvoie la valeur de la variable. Vous pouvez utiliser une variable n'importe où, où vous utiliseriez normalement un nombre ou une chaîne. De plus, les variables sont indispensables pour définir des fonctions qui possèdent des arguments (consultez <xref linkend="genius-gel-functions-defining"/>).</para>
 
556
 
 
557
      <tip>
 
558
        <title>Utilisation de la complétion à l'aide de la touche Tab</title>
 
559
        <para>Vous pouvez utiliser la complétion à l'aide de la touche Tab pour que Genius complète les noms de variable pour vous. Essayez de saisir les premières lettres du nom et appuyez sur la touche <userinput>Tab</userinput>.</para>
 
560
      </tip>
 
561
 
 
562
      <important>
 
563
        <title>Noms de variable sensibles à la casse</title>
 
564
        <para>Les noms de variable sont sensibles à la casse. Cela signifie que les variables appelées <varname>bonjour</varname>, <varname>BONJOUR</varname> et <varname>Bonjour</varname> sont toutes différentes.</para>
 
565
      </important>
 
566
 
 
567
 
 
568
      <sect2 id="genius-gel-variables-setting">
 
569
        <title>Attribution de variables</title>
 
570
        <para>Syntaxe : <programlisting><![CDATA[<identifier> = <value>
 
571
<identifier> := <value>]]>
 
572
</programlisting> Exemple: <programlisting>x = 3
 
573
x := 3
 
574
</programlisting></para>
 
575
 
 
576
        <para>Pour attribuer une variable, utilisez les opérateurs <literal>=</literal> ou <literal>:=</literal>. Ces opérateurs fixent la valeur de la variable et renvoient le nombre que vous y avez placé donc vous pouvez écrire des choses comme cela : <programlisting>a = b = 5
 
577
</programlisting></para>
 
578
 
 
579
        <para>Les opérateurs <literal>=</literal> et <literal>:=</literal> peuvent tous les deux être utilisés pour définir des variables. La différence entre les deux est que l'opérateur <literal>:=</literal> agit toujours comme un opérateur d'attribution alors que l'opérateur <literal>=</literal> peut être interprété comme une opération de test d'égalité lorsqu'il est utilisé dans un contexte où une expression booléenne est attendue.</para>
 
580
 
 
581
        <para>Pour les problèmes concernant le champ d'application des variables, consultez <xref linkend="genius-gel-variables-global"/>.</para>
 
582
      </sect2>
 
583
 
 
584
      <sect2 id="genius-gel-variables-built-in">
 
585
        <title>Variables internes</title>
 
586
        <para>GEL possède un certain nombre de « variables », telles que <varname>e</varname>, <varname>pi</varname> ou <varname>GoldenRatio</varname>. Ce sont des constantes largement utilisées qui possèdent une valeur prédéfinie et il n'est pas possible de leur attribuer de nouvelles valeurs. Il y a un certain nombre d'autres variables intégrées. Consultez <xref linkend="genius-gel-function-list-constants"/> pour une liste complète.</para>
 
587
      </sect2>
 
588
 
 
589
 
 
590
      <sect2 id="genius-gel-previous-result">
 
591
        <title>Variable « Résultat précédent »</title>
 
592
        <para>Les variables <varname>Ans</varname> et <varname>ans</varname> (answer : réponse) peuvent être utilisées pour obtenir le résultat de la dernière expression. Par exemple, si vous avez fait un calcul, pour ajouter 389 au résultat précédent vous pouvez saisir : <programlisting>Ans+389
 
593
</programlisting></para>
 
594
      </sect2>
 
595
    </sect1>
 
596
 
 
597
    <sect1 id="genius-gel-functions">
 
598
      <title>Utilisation des fonctions</title>
 
599
 
 
600
      <para>Syntaxe : <programlisting>NomDeLaFonction(argument1, argument2, ...)
 
601
</programlisting> Exemple : <programlisting>Factorial(5)
 
602
cos(2*pi)
 
603
gcd(921,317)
 
604
</programlisting> Pour évaluer une fonction, saisissez le nom de la fonction, suivi par les arguments de la fonction (s'il y en a) entre parenthèses. Cela renvoie le résultat de l'application de la fonction avec ses arguments. Le nombre d'arguments de la fonction peut, bien sûr, être différent pour chaque fonction.</para>
 
605
 
 
606
      <para>Il y a beaucoup de fonctions intégrées, telles que <function>sin</function>, <function>cos</function> et <function>tan</function>. Vous pouvez utiliser la fonction intégrée <function>help</function> pour obtenir une liste des fonctions disponibles ou consultez <xref linkend="genius-gel-function-list"/> pour un listing complet.</para>
 
607
 
 
608
      <tip>
 
609
        <title>Utilisation de la complétion à l'aide de la touche Tab</title>
 
610
        <para>Vous pouvez utiliser la fonction de complétion à l'aide de la touche Tab pour que Genius complète les noms de fonction pour vous. Essayez de saisir les quelques premières lettres du nom et appuyez sur <userinput>Tab</userinput>.</para>
 
611
      </tip>
 
612
 
 
613
      <important>
 
614
        <title>Noms de fonction sensibles à la casse</title>
 
615
        <para>Les noms des fonctions sont sensibles à la casse. Cela signifie que les fonctions appelées <function>fairecela</function>, <function>FAIRECELA</function> et <function>Fairecela</function> sont toutes différentes.</para>
 
616
      </important>
 
617
 
 
618
 
 
619
      <sect2 id="genius-gel-functions-defining">
 
620
        <title>Définition de fonctions</title>
 
621
        <para>Syntaxe : <programlisting><![CDATA[function <identifier>(<comma separated arguments>) = <function body>
 
622
<identifier> = (`() = <function body>)
 
623
]]></programlisting> Le caractère accent grave <literal>`</literal> indique une fonction anonyme. En l'apposant à un nom de variable, en réalité vous définissez une fonction.</para>
 
624
 
 
625
        <para>Une fonction prend zéro argument ou plus, séparés par des virgules et renvoie le résultat du corps de la fonction. Le fait de définir ses propres fonctions est une question de commodité ; un usage possible est d'avoir un ensemble de fonctions définies dans des fichiers GEL que Genius peut charger afin de les rendre accessibles. Exemple : <programlisting>function addup(a,b,c) = a+b+c
 
626
</programlisting> alors <userinput>addup(1,4,9)</userinput> donne 14.</para>
 
627
      </sect2>
 
628
 
 
629
      <sect2 id="genius-gel-functions-variable-argument-lists">
 
630
        <title>Liste d'arguments variable</title>
 
631
        <para>Si vous ajoutez <literal>...</literal> après le dernier nom d'argument dans la déclaration de fonction alors Genius permet la transmission d'un nombre quelconque d'arguments à la place de cet argument. Si aucun argument n'est transmis alors cet argument est défini à <constant>null</constant>. Sinon, c'est un vecteur ligne contenant tous les arguments. Par exemple, <programlisting>function f(a,b...) = b
 
632
</programlisting> alors <userinput>f(1,2,3)</userinput> donne <computeroutput>[2,3]</computeroutput> tandis que <userinput>f(1)</userinput> donne <constant>null</constant>.</para>
 
633
      </sect2>
 
634
 
 
635
 
 
636
      <sect2 id="genius-gel-functions-passing-functions">
 
637
        <title>Une fonction comme argument d'une autre fonction</title>
 
638
 
 
639
        <para>Dans Genius, il est possible de transmettre une fonction comme argument d'une autre fonction. Cela peut être fait en utilisant soit des « nœuds de fonction », soit des fonctions anonymes.</para>
 
640
 
 
641
        <para>Si vous ne saisissez pas les parenthèses après un nom de fonction, la fonction est renvoyée sous la forme d'un « nœud de fonction », au lieu d'être évaluée. Le nœud de fonction peut ensuite être transmis à une autre fonction. Par exemple : <programlisting>function f(a,b) = a(b)+1;
 
642
function b(x) = x*x;
 
643
f(b,2)
 
644
</programlisting></para>
 
645
        <para>Pour transmettre des fonctions qui ne sont pas encore définies, vous pouvez utiliser une fonction anonyme (consultez <xref linkend="genius-gel-functions-defining"/>) donc si vous voulez transmettre une fonction sans lui donner de nom, la syntaxe est la suivante : <programlisting><![CDATA[function(<comma separated arguments>) = <function body>
 
646
`(<comma separated arguments>) = <function body>
 
647
]]></programlisting> Exemple : <programlisting>function f(a,b) = a(b)+1;
 
648
f(`(x) = x*x,2)
 
649
</programlisting> renvoie la valeur 5.</para>
 
650
      </sect2>
 
651
 
 
652
 
 
653
    <sect2 id="genius-gel-functions-operations">
 
654
      <title>Opérations sur les fonctions</title>
 
655
      <para>Certaines fonctions permettent à des opérations arithmétiques et à certaines fonctions à un seul argument telles que <function>exp</function> ou <function>ln</function> d'agir sur la fonction. Par exemple, <programlisting>exp(sin*cos+4)
 
656
</programlisting> renvoie une fonction qui prend <varname>x</varname> et renvoie <userinput>exp(sin(x)*cos(x)+4)</userinput>. C'est fonctionnellement équivalent de saisir <programlisting>`(x) = exp(sin(x)*cos(x)+4)
 
657
</programlisting> Cette opération peut être utile pour définir rapidement des fonctions. Par exemple, pour créer une fonction appelée <varname>f</varname> pour réaliser l'opération ci-dessus, vous pouvez simplement saisir : <programlisting>f = exp(sin*cos+4)
 
658
</programlisting> Cela peut également être utilisé pour tracer des graphiques. Par exemple, pour tracer sinus au carré, vous pouvez saisir : <programlisting>LinePlot(sin^2)
 
659
</programlisting></para>
 
660
 
 
661
      <warning>
 
662
        <para>Toutes les fonctions ne peuvent pas être utilisées de cette façon. Par exemple, lorsque vous utilisez une opération binaire, les fonctions doivent prendre le même nombre d'arguments.</para>
 
663
      </warning>
 
664
    </sect2>
 
665
 
 
666
 
 
667
    </sect1>
 
668
 
 
669
    <sect1 id="genius-gel-absolute-value-modulus">
 
670
      <title>Valeur absolue / module</title>
 
671
      <para>Vous pouvez prendre la valeur absolue de quelque chose en l'entourant de <literal>|</literal>. Par exemple : <programlisting>|a-b|</programlisting></para>
 
672
<para>Si l'expression est un nombre complexe, le résultat est le module (distance à partir de l'origine). Par exemple : <userinput>|3 * e^(1i*pi)|</userinput> renvoie 3.</para>
 
673
    </sect1>
 
674
 
 
675
    <sect1 id="genius-gel-separator">
 
676
      <title>Séparateur</title>
 
677
      <para>En GEL, si vous voulez saisir plus d'une commande, vous devez utiliser l'opérateur <literal>;</literal> qui est une façon de séparer des expressions. Une telle expression combinée renvoie le résultat de la dernière expression, donc si vous saisissez ceci : <programlisting>3 ; 5
 
678
</programlisting> la valeur 5 est renvoyée.</para>
 
679
      <para>La présence de parenthèses peut parfois être nécessaire pour rendre l'expression non ambiguë, plus particulièrement si le <literal>;</literal> n'est pas la primitive la plus haute. Cela diffère légèrement des autres languages de programmation pour lesquels le <literal>;</literal> indique la fin des instructions alors qu'en GEL, c'est en fait un opérateur binaire. Si vous êtes familier avec le pascal, cela doit être une seconde nature. Genius peut cependant vous faire croire que c'est en quelque sorte un terminateur si un <literal>;</literal> est trouvé à la fin d'une parenthèse ou d'un bloc, genius lui ajoute alors un nœud <constant>null</constant> comme si vous aviez saisi <userinput>;null</userinput>. C'est utile au cas où vous ne vouliez pas renvoyer une valeur dans une boucle par exemple, ou si vous voulez gérer le renvoi d'information de manière différente. Notez que cela ralentit légèrement le programme si c'est exécuté trop souvent car un opérateur supplémentaire est impliqué.</para>
 
680
    </sect1>
 
681
 
 
682
    <sect1 id="genius-gel-comments">
 
683
      <title>Commentaires</title>
 
684
      <para>
 
685
              GEL is similar to other scripting languages in that <literal>#</literal> denotes
 
686
              a comments, that is text that is not meant to be evaluated.  Everything beyond the
 
687
              pound sign till the end of line will just be ignored.  So
 
688
<programlisting># This is just a comment
 
689
# every line in a comment must have its own pond sign
 
690
# in the next line we set x to the value 123
 
691
x=123;
 
692
</programlisting>
 
693
      </para>
 
694
    </sect1>
 
695
 
 
696
    <sect1 id="genius-gel-modular-evaluation">
 
697
      <title>Évaluation modulaire</title>
 
698
      <para>
 
699
              Genius implements modular arithmetic.
 
700
To use it you just add "mod &lt;integer&gt;" after
 
701
the expression.  Example:
 
702
<programlisting>2^(5!) * 3^(6!) mod 5</programlisting>
 
703
It could be possible to do modular arithmetic by computing with integers and then modding in the end with
 
704
the <literal>%</literal> operator, which simply gives the remainder, but
 
705
that may be time consuming if not impossible when working with larger numbers.
 
706
For example, <userinput>10^(10^10) % 6</userinput> will simply not work (the exponent
 
707
will be too large), while
 
708
<userinput>10^(10^10) mod 6</userinput> is instanteneous.  The first expression first tries to compute the integer
 
709
<userinput>10^(10^10)</userinput> and then find remainder after division by 6, while the second expression evaluates
 
710
everything modulo 6 to begin with.
 
711
      </para>
 
712
      <para>Vous pouvez calculer l'inverse de nombres modulo des entiers juste en utilisant des nombres rationnels (bien sûr, l'inverse doit exister). Exemples : <programlisting>10^-1 mod 101
 
713
1/10 mod 101</programlisting> Vous pouvez aussi faire de l'évaluation modulaire avec des matrices y compris prendre l'inverse, mettre à la puissance ou multiplier. Exemple : <programlisting>A = [1,2;3,4]
 
714
B = A^-1 mod 5
 
715
A*B mod 5</programlisting> Cela doit donner la matrice identité car B est l'inverse de A modulo 5.</para>
 
716
      <para>Certaines fonctions telles que <link linkend="gel-function-sqrt"><function>sqrt</function></link> ou <link linkend="gel-function-log"><function>log</function></link> fonctionnent différemment en mode modulaire. Elles vont alors fonctionner comme leur version discrète travaillant avec l'ensemble des entiers que vous avez sélectionnés, par exemple, <programlisting>genius&gt; sqrt(4) mod 7
 
717
=
 
718
[2, 5]
 
719
genius&gt; 2*2 mod 7
 
720
= 4</programlisting>La fonction <function>sqrt</function> renvoie en fait toutes les racines carrées possibles.</para>
 
721
      <para>
 
722
              Do not chain mod operators, simply place it at the end of the computation, all computations in the expression on the left
 
723
              will be carried out in mod arithmetic.  If you place a mod inside
 
724
              a mod, you will get unexpected results.  If you simply want to
 
725
              mod a single number and control exactly when remainders are
 
726
              taken, best to use the <literal>%</literal> operator.  When you
 
727
              need to chain several expressions in modular arithmetic with
 
728
              different divisors, it may be best to just split up the expression into several and use
 
729
              temporary variables to avoid a mod inside a mod.
 
730
      </para>
 
731
    </sect1>
 
732
 
 
733
    <sect1 id="genius-gel-operator-list">
 
734
      <title>Liste des opérateurs GEL</title>
 
735
 
 
736
      <para>Dans le langage GEL, chaque chose est vraiment une expression. Les expressions sont reliées ensemble par différents opérateurs. Comme nous l'avons vu, même le séparateur est juste un opérateur binaire GEL. Voici une liste des opérateurs GEL.</para>
 
737
 
 
738
      <variablelist>
 
739
        <varlistentry>
 
740
         <term><synopsis>a;b</synopsis></term>
 
741
         <listitem>
 
742
           <para>C'est le séparateur, il évalue simplement à la fois <varname>a</varname> et <varname>b</varname> mais ne renvoie que le résultat de <varname>b</varname>.</para>
 
743
         </listitem>
 
744
        </varlistentry>
 
745
 
 
746
 
 
747
        <varlistentry>
 
748
         <term><synopsis>a=b</synopsis></term>
 
749
         <listitem>
 
750
           <para>L'opérateur d'attribution. Il attribue <varname>b</varname> à <varname>a</varname> (<varname>a</varname> doit être une <link linkend="genius-gel-lvalues">valeur à gauche</link> valide). Remarquez que cet opérateur peut être transformé en <literal>==</literal> s'il est utilisé là où une expression booléenne est attendue.</para>
 
751
         </listitem>
 
752
        </varlistentry>
 
753
 
 
754
 
 
755
        <varlistentry>
 
756
         <term><synopsis>a:=b</synopsis></term>
 
757
         <listitem>
 
758
           <para>L'opérateur d'attribution. Il attribue <varname>b</varname> à <varname>a</varname> (<varname>a</varname> doit être une <link linkend="genius-gel-lvalues">valeur à gauche</link> valide). Il est différent de <literal>=</literal> car il n'est jamais transformée en <literal>==</literal>.</para>
 
759
         </listitem>
 
760
        </varlistentry>
 
761
 
 
762
 
 
763
        <varlistentry>
 
764
         <term><synopsis>|a|</synopsis></term>
 
765
         <listitem>
 
766
           <para>Valeur absolue ou module (si <varname>a</varname> est un nombre complexe).</para>
 
767
          <para>Consultez <ulink url="http://mathworld.wolfram.com/AbsoluteValue.html">Mathworld</ulink> pour plus d'informations.</para>
 
768
         </listitem>
 
769
        </varlistentry>
 
770
 
 
771
 
 
772
        <varlistentry>
 
773
         <term><synopsis>a^b</synopsis></term>
 
774
         <listitem>
 
775
           <para>Exposant, met <varname>a</varname> à la puissance <varname>b</varname>.</para>
 
776
         </listitem>
 
777
        </varlistentry>
 
778
 
 
779
 
 
780
        <varlistentry>
 
781
         <term><synopsis>a.^b</synopsis></term>
 
782
         <listitem>
 
783
           <para>Exposant élément par élément. Met chaque élément d'une matrice <varname>a</varname> à la puissance <varname>b</varname>. Si <varname>b</varname> est une matrice de la même taille que <varname>a</varname> alors l'opération se réalise élément par élément. Si <varname>a</varname> est un nombre et <varname>b</varname> est une matrice alors cela crée une matrice de la même taille que <varname>b</varname> contenant <varname>a</varname> mis à la puissance de chaque élément de <varname>b</varname>.</para>
 
784
         </listitem>
 
785
        </varlistentry>
 
786
 
 
787
 
 
788
        <varlistentry>
 
789
         <term><synopsis>a+b</synopsis></term>
 
790
         <listitem>
 
791
           <para>
 
792
             Addition.  Adds two numbers, matrices, functions or strings.  If
 
793
             you add a string to anything the result will just be a string.  If one is
 
794
             a square matrix and the other a number, then the number is multiplied by
 
795
             the identity matrix.
 
796
           </para>
 
797
         </listitem>
 
798
        </varlistentry>
 
799
 
 
800
 
 
801
        <varlistentry>
 
802
         <term><synopsis>a-b</synopsis></term>
 
803
         <listitem>
 
804
           <para>Soustraction. Soustrait deux nombres, matrices ou fonctions.</para>
 
805
         </listitem>
 
806
        </varlistentry>
 
807
 
 
808
 
 
809
        <varlistentry>
 
810
         <term><synopsis>a*b</synopsis></term>
 
811
         <listitem>
 
812
           <para>Multiplication. C'est la multiplication matricielle normale.</para>
 
813
         </listitem>
 
814
        </varlistentry>
 
815
 
 
816
 
 
817
        <varlistentry>
 
818
         <term><synopsis>a.*b</synopsis></term>
 
819
         <listitem>
 
820
           <para>Multiplication élément par élément si <varname>a</varname> et <varname>b</varname> sont des matrices.</para>
 
821
         </listitem>
 
822
        </varlistentry>
 
823
 
 
824
 
 
825
        <varlistentry>
 
826
         <term><synopsis>a/b</synopsis></term>
 
827
         <listitem>
 
828
           <para>
 
829
                   Division.  When <varname>a</varname> and <varname>b</varname> are just numbers
 
830
                   this is the normal division.  When they are matrices, then this is
 
831
                   equivalent to <userinput>a*b^-1</userinput>.
 
832
           </para>
 
833
         </listitem>
 
834
        </varlistentry>
 
835
 
 
836
 
 
837
        <varlistentry>
 
838
         <term><synopsis>a./b</synopsis></term>
 
839
         <listitem>
 
840
           <para>
 
841
                   Element by element division.  Same as <userinput>a/b</userinput> for
 
842
                   numbers, but operarates element by element on matrices.
 
843
           </para>
 
844
         </listitem>
 
845
        </varlistentry>
 
846
 
 
847
 
 
848
        <varlistentry>
 
849
         <term><synopsis>a\b</synopsis></term>
 
850
         <listitem>
 
851
           <para>Division arrière. C'est donc la même chose que <userinput>b/a</userinput>.</para>
 
852
         </listitem>
 
853
        </varlistentry>
 
854
 
 
855
 
 
856
        <varlistentry>
 
857
         <term><synopsis>a.\b</synopsis></term>
 
858
         <listitem>
 
859
           <para>Division arrière élément par élément.</para>
 
860
         </listitem>
 
861
        </varlistentry>
 
862
 
 
863
 
 
864
        <varlistentry>
 
865
         <term><synopsis>a%b</synopsis></term>
 
866
         <listitem>
 
867
           <para>L'opérateur modulo. Cela n'active pas le mode d'<link linkend="genius-gel-modular-evaluation">évaluation modulaire</link>, mais renvoie juste le reste de <userinput>a/b</userinput>.</para>
 
868
         </listitem>
 
869
        </varlistentry>
 
870
 
 
871
 
 
872
        <varlistentry>
 
873
         <term><synopsis>a.%b</synopsis></term>
 
874
         <listitem>
 
875
           <para>L'opérateur modulo élément par élément. Renvoie le reste après la division entière élément par élément de <userinput>a./b</userinput>.</para>
 
876
         </listitem>
 
877
        </varlistentry>
 
878
 
 
879
 
 
880
        <varlistentry>
 
881
         <term><synopsis>a mod b</synopsis></term>
 
882
         <listitem>
 
883
           <para>Opérateur d'évaluation modulaire. L'expression <varname>a</varname> est évaluée modulo <varname>b</varname>. Consultez <xref linkend="genius-gel-modular-evaluation"/>. Certaines fonctions et opérateurs se comportent différemment modulo un entier.</para>
 
884
         </listitem>
 
885
        </varlistentry>
 
886
 
 
887
 
 
888
        <varlistentry>
 
889
         <term><synopsis>a!</synopsis></term>
 
890
         <listitem>
 
891
           <para>Opérateur factoriel. Il s'agit de <userinput>1*...*(n-2)*(n-1)*n</userinput>.</para>
 
892
         </listitem>
 
893
        </varlistentry>
 
894
 
 
895
 
 
896
        <varlistentry>
 
897
         <term><synopsis>a!!</synopsis></term>
 
898
         <listitem>
 
899
           <para>Opérateur double factoriel. Il s'agit de <userinput>1*...*(n-4)*(n-2)*n</userinput>.</para>
 
900
         </listitem>
 
901
        </varlistentry>
 
902
 
 
903
 
 
904
        <varlistentry>
 
905
         <term><synopsis>a==b</synopsis></term>
 
906
         <listitem>
 
907
           <para>
 
908
             Equality operator.
 
909
             Returns <constant>true</constant> or <constant>false</constant>
 
910
             depending on <varname>a</varname> and <varname>b</varname> being equal or not.
 
911
           </para>
 
912
         </listitem>
 
913
        </varlistentry>
 
914
 
 
915
 
 
916
        <varlistentry>
 
917
         <term><synopsis>a!=b</synopsis></term>
 
918
         <listitem>
 
919
           <para>Opérateur inégalité, renvoie <constant>true</constant> si <varname>a</varname> n'est pas égal à <varname>b</varname> sinon renvoie <constant>false</constant>.</para>
 
920
         </listitem>
 
921
        </varlistentry>
 
922
 
 
923
 
 
924
        <varlistentry>
 
925
         <term><synopsis>a&lt;&gt;b</synopsis></term>
 
926
         <listitem>
 
927
           <para>Autre opérateur inégalité, renvoie <constant>true</constant> si <varname>a</varname> n'est pas égal à <varname>b</varname> sinon renvoie <constant>false</constant>.</para>
 
928
         </listitem>
 
929
        </varlistentry>
 
930
 
 
931
 
 
932
        <varlistentry>
 
933
         <term><synopsis>a&lt;=b</synopsis></term>
 
934
         <listitem>
 
935
           <para>
 
936
             Less than or equal operator,
 
937
             returns <constant>true</constant> if <varname>a</varname> is
 
938
             less than or equal to 
 
939
             <varname>b</varname> else returns <constant>false</constant>.
 
940
             These can be chained as in <userinput>a &lt;= b &lt;= c</userinput> (can
 
941
             also be combined with the less than operator).
 
942
           </para>
 
943
         </listitem>
 
944
        </varlistentry>
 
945
 
 
946
 
 
947
        <varlistentry>
 
948
         <term><synopsis>a&gt;=b</synopsis></term>
 
949
         <listitem>
 
950
           <para>
 
951
             Greater than or equal operator,
 
952
             returns <constant>true</constant> if <varname>a</varname> is
 
953
             greater than or equal to 
 
954
             <varname>b</varname> else returns <constant>false</constant>.
 
955
             These can be chained as in <userinput>a &gt;= b &gt;= c</userinput>
 
956
             (can also be combine with the greater than operator).
 
957
           </para>
 
958
         </listitem>
 
959
        </varlistentry>
 
960
 
 
961
        <varlistentry>
 
962
         <term><synopsis>a&lt;b</synopsis></term>
 
963
         <listitem>
 
964
           <para>
 
965
             Less than operator,
 
966
             returns <constant>true</constant> if <varname>a</varname> is
 
967
             less than 
 
968
             <varname>b</varname> else returns <constant>false</constant>.
 
969
             These can be chained as in <userinput>a &lt; b &lt; c</userinput>
 
970
             (can also be combine with the less than or equal to operator).
 
971
           </para>
 
972
         </listitem>
 
973
        </varlistentry>
 
974
 
 
975
 
 
976
        <varlistentry>
 
977
         <term><synopsis>a&gt;b</synopsis></term>
 
978
         <listitem>
 
979
           <para>
 
980
             Greater than operator,
 
981
             returns <constant>true</constant> if <varname>a</varname> is
 
982
             greater than 
 
983
             <varname>b</varname> else returns <constant>false</constant>.
 
984
             These can be chained as in <userinput>a &gt; b &gt; c</userinput>
 
985
             (can also be combine with the greater than or equal to operator).
 
986
           </para>
 
987
         </listitem>
 
988
        </varlistentry>
 
989
 
 
990
 
 
991
        <varlistentry>
 
992
         <term><synopsis>a&lt;=&gt;b</synopsis></term>
 
993
         <listitem>
 
994
           <para>Opérateur comparaison. Si <varname>a</varname> est égal à <varname>b</varname>, cela renvoie 0, si <varname>a</varname> est inférieur à <varname>b</varname>, cela renvoie -1 et si <varname>a </varname> est supérieur à <varname>b</varname>, cela renvoie 1.</para>
 
995
         </listitem>
 
996
        </varlistentry>
 
997
 
 
998
 
 
999
        <varlistentry>
 
1000
         <term><synopsis>a and b</synopsis></term>
 
1001
         <listitem>
 
1002
           <para>
 
1003
                   Logical and.  Returns true if both
 
1004
                   <varname>a</varname> and <varname>b</varname> are true,
 
1005
                   else returns false.  If given numbers, nonzero numbers
 
1006
                   are treated as true.
 
1007
           </para>
 
1008
         </listitem>
 
1009
        </varlistentry>
 
1010
 
 
1011
 
 
1012
        <varlistentry>
 
1013
         <term><synopsis>a or b</synopsis></term>
 
1014
         <listitem>
 
1015
           <para>
 
1016
             Logical or.
 
1017
             Returns true if both
 
1018
             <varname>a</varname> or <varname>b</varname> are true,
 
1019
             else returns false.  If given numbers, nonzero numbers
 
1020
             are treated as true.
 
1021
           </para>
 
1022
         </listitem>
 
1023
        </varlistentry>
 
1024
 
 
1025
 
 
1026
        <varlistentry>
 
1027
         <term><synopsis>a xor b</synopsis></term>
 
1028
         <listitem>
 
1029
           <para>
 
1030
             Logical xor.
 
1031
             Returns true exactly one of
 
1032
             <varname>a</varname> or <varname>b</varname> is true,
 
1033
             else returns false.  If given numbers, nonzero numbers
 
1034
             are treated as true.
 
1035
           </para>
 
1036
         </listitem>
 
1037
        </varlistentry>
 
1038
 
 
1039
 
 
1040
        <varlistentry>
 
1041
         <term><synopsis>not a</synopsis></term>
 
1042
         <listitem>
 
1043
           <para>
 
1044
                   Logical not.  Returns the logical negation of <varname>a</varname>
 
1045
           </para>
 
1046
         </listitem>
 
1047
        </varlistentry>
 
1048
 
 
1049
 
 
1050
        <varlistentry>
 
1051
         <term><synopsis>-a</synopsis></term>
 
1052
         <listitem>
 
1053
           <para>
 
1054
             Negation operator.  Returns the negative of a number or a matrix (works elementwise on a matrix).
 
1055
           </para>
 
1056
         </listitem>
 
1057
        </varlistentry>
 
1058
 
 
1059
 
 
1060
        <varlistentry>
 
1061
         <term><synopsis>&amp;a</synopsis></term>
 
1062
         <listitem>
 
1063
           <para>
 
1064
             Variable referencing (to pass a reference to a variable).
 
1065
             See <xref linkend="genius-gel-references"/>.
 
1066
           </para>
 
1067
         </listitem>
 
1068
        </varlistentry>
 
1069
 
 
1070
 
 
1071
        <varlistentry>
 
1072
         <term><synopsis>*a</synopsis></term>
 
1073
         <listitem>
 
1074
           <para>
 
1075
             Variable dereferencing (to access a referenced variable).
 
1076
             See <xref linkend="genius-gel-references"/>.
 
1077
           </para>
 
1078
         </listitem>
 
1079
        </varlistentry>
 
1080
 
 
1081
 
 
1082
        <varlistentry>
 
1083
         <term><synopsis>a'</synopsis></term>
 
1084
         <listitem>
 
1085
           <para>
 
1086
                   Matrix conjugate transpose.  That is, rows and columns get swapped and we take complex conjugate of all entries.  That is
 
1087
                   if the i,j element of <varname>a</varname> is x+iy, then the j,i element of <userinput>a'</userinput> is x-iy.
 
1088
           </para>
 
1089
         </listitem>
 
1090
        </varlistentry>
 
1091
 
 
1092
 
 
1093
        <varlistentry>
 
1094
         <term><synopsis>a.'</synopsis></term>
 
1095
         <listitem>
 
1096
           <para>
 
1097
             Matrix transpose, does not conjugate the entries.  That is, 
 
1098
             the i,j element of <varname>a</varname>  becomes the j,i element of <userinput>a.'</userinput>.
 
1099
           </para>
 
1100
         </listitem>
 
1101
        </varlistentry>
 
1102
 
 
1103
 
 
1104
        <varlistentry>
 
1105
         <term><synopsis>a@(b,c)</synopsis></term>
 
1106
         <listitem>
 
1107
           <para>Renvoie l'élément ligne <varname>b</varname> et colonne <varname>c</varname> d'une matrice. Si <varname>b</varname> et <varname>c</varname> sont des vecteurs alors cela renvoie les lignes et les colonnes correspondantes, soit une sous-matrice.</para>
 
1108
         </listitem>
 
1109
        </varlistentry>
 
1110
 
 
1111
 
 
1112
        <varlistentry>
 
1113
         <term><synopsis>a@(b,)</synopsis></term>
 
1114
         <listitem>
 
1115
           <para>Renvoie une ligne de matrice (ou plusieurs lignes si <varname>b</varname> est un vecteur).</para>
 
1116
         </listitem>
 
1117
        </varlistentry>
 
1118
 
 
1119
 
 
1120
        <varlistentry>
 
1121
         <term><synopsis>a@(b,:)</synopsis></term>
 
1122
         <listitem>
 
1123
           <para>Comme ci-dessus.</para>
 
1124
         </listitem>
 
1125
        </varlistentry>
 
1126
 
 
1127
 
 
1128
        <varlistentry>
 
1129
         <term><synopsis>a@(,c)</synopsis></term>
 
1130
         <listitem>
 
1131
           <para>Renvoie une colonne de matrice (ou des colonnes si <varname>c</varname> est un vecteur).</para>
 
1132
         </listitem>
 
1133
        </varlistentry>
 
1134
 
 
1135
 
 
1136
        <varlistentry>
 
1137
         <term><synopsis>a@(:,c)</synopsis></term>
 
1138
         <listitem>
 
1139
           <para>Comme ci-dessus.</para>
 
1140
         </listitem>
 
1141
        </varlistentry>
 
1142
 
 
1143
 
 
1144
        <varlistentry>
 
1145
         <term><synopsis>a@(b)</synopsis></term>
 
1146
         <listitem>
 
1147
           <para>Renvoie un élément d'une matrice en le traitant comme un vecteur. Cela parcourt la matrice dans le sens des lignes.</para>
 
1148
         </listitem>
 
1149
        </varlistentry>
 
1150
 
 
1151
 
 
1152
        <varlistentry>
 
1153
         <term><synopsis>a:b</synopsis></term>
 
1154
         <listitem>
 
1155
           <para>Construit un vecteur allant de <varname>a</varname> à <varname>b</varname> (ou indique une région ligne, colonne pour l'opérateur <literal>@</literal>). Par exemple pour obtenir les lignes 2 à 4 de la matrice <varname>A</varname>, nous pourrions faire <programlisting>A@(2:4,)
 
1156
             </programlisting> puisque <userinput>2:4</userinput> renvoie un vecteur <userinput>[2,3,4]</userinput>.</para>
 
1157
         </listitem>
 
1158
        </varlistentry>
 
1159
 
 
1160
 
 
1161
        <varlistentry>
 
1162
         <term><synopsis>a:b:c</synopsis></term>
 
1163
         <listitem>
 
1164
           <para>Construit un vecteur allant de <varname>a</varname> à <varname>c</varname> avec un pas de <varname>b</varname>. Ce qui donne par exemple <programlisting>genius&gt; 1:2:9
 
1165
=
 
1166
`[1, 3, 5, 7, 9]
 
1167
</programlisting></para>
 
1168
         </listitem>
 
1169
        </varlistentry>
 
1170
 
 
1171
 
 
1172
        <varlistentry>
 
1173
         <term><synopsis>(a)i</synopsis></term>
 
1174
         <listitem>
 
1175
           <para>Crée un nombre imaginaire (multiplie <varname>a</varname> par le nombre imaginaire pur). Remarquez que normalement le nombre <varname>i</varname> s'écrit <userinput>1i</userinput>. Donc le nombre ci-dessus est égal à <programlisting>(a)*1i
 
1176
             </programlisting></para>
 
1177
         </listitem>
 
1178
        </varlistentry>
 
1179
 
 
1180
 
 
1181
        <varlistentry>
 
1182
         <term><synopsis>`a</synopsis></term>
 
1183
         <listitem>
 
1184
           <para>Apostropher un identifiant afin qu'il ne soit pas évalué. Ou apostropher une matrice afin qu'elle ne soit pas étendue.</para>
 
1185
         </listitem>
 
1186
        </varlistentry>
 
1187
 
 
1188
        <varlistentry>
 
1189
         <term><synopsis>a swapwith b</synopsis></term>
 
1190
         <listitem>
 
1191
           <para>Échange la valeur de <varname>a</varname> par la valeur de <varname>b</varname>. Pour le moment, ne fonctionne pas sur des ensembles d'éléments de matrice. Renvoie <constant>null</constant>. Disponible à partir de la version 1.0.13.</para>
 
1192
         </listitem>
 
1193
        </varlistentry>
 
1194
 
 
1195
        <varlistentry>
 
1196
         <term><synopsis>increment a</synopsis></term>
 
1197
         <listitem>
 
1198
           <para>Incrémente la variable <varname>a</varname> de 1. Si <varname>a</varname> est une matrice alors incrémente chaque élément. C'est équivalent à <userinput>a=a+1</userinput> mais est plus rapide. Renvoie <constant>null</constant>. Disponible à partir de la version 1.0.13.</para>
 
1199
         </listitem>
 
1200
        </varlistentry>
 
1201
 
 
1202
        <varlistentry>
 
1203
         <term><synopsis>increment a by b</synopsis></term>
 
1204
         <listitem>
 
1205
           <para>Incrémente la variable <varname>a</varname> de <varname>b</varname>. Si <varname>a</varname> est une matrice alors incrémente chaque élément. C'est équivalent à <userinput>a=a+b</userinput> mais est plus rapide. Renvoie <constant>null</constant>. Disponible à partir de la version 1.0.13.</para>
 
1206
         </listitem>
 
1207
        </varlistentry>
 
1208
 
 
1209
 
 
1210
      </variablelist>
 
1211
 
 
1212
<note>
 
1213
<para>L'opérateur @() rend l'opérateur : très utile. Grâce à lui, vous pouvez indiquer des régions d'une matrice. Ainsi a@(2:4,6) sont les lignes 2,3,4 de la colonne 6 ou a@(,1:2) vous renvoie les deux premières colonnes d'une matrice. Vous pouvez également attribuer un opérateur @() tant que la valeur de droite est une matrice qui correspond en taille à la région ou si c'est n'importe quel autre type de valeur.</para>
 
1214
</note>
 
1215
 
 
1216
<note>
 
1217
<para>Les opérateurs de comparaison (excepté l'opérateur &lt;=&gt; qui se comporte normalement) ne sont pas des opérateurs strictement binaires, ils peuvent en fait être regroupés comme dans une expression mathématique normale, par ex. : (1&lt;x&lt;=y&lt;5) est une expression booléenne correcte qui signifie bien ce qu'elle doit, c'est-à-dire (1&lt;x et x≤y et y&lt;5)</para>
 
1218
</note>
 
1219
 
 
1220
<note>
 
1221
<para>L'opérateur unitaire « moins » agit de manière différente en fonction de l'endroit où il apparaît. S'il apparaît devant un nombre, il est très prioritaire, s'il apparaît devant une expression, il est moins prioritaire que les opérateurs puissance et factoriel. Par exemple, <userinput>-1^k</userinput> est bien <userinput>(-1)^k</userinput>, mais <userinput>-foo(1)^k</userinput> est bien <userinput>-(foo(1)^k)</userinput>. En conséquence, faites attention à son utilisation et, en cas de doute, ajoutez des parenthèses.</para>
 
1222
</note>
 
1223
    </sect1>
 
1224
 
 
1225
  </chapter>
 
1226
 
 
1227
  <!-- ============= GEL Programming ========================== -->
 
1228
  <chapter id="genius-gel-programming">
 
1229
    <title>Programmation avec GEL</title>
 
1230
 
 
1231
    <sect1 id="genius-gel-conditionals">
 
1232
      <title>Tests</title>
 
1233
      <para>Syntaxe : <programlisting><![CDATA[if <expression1> then <expression2> [else <expression3>]
 
1234
]]></programlisting> Si <literal>else</literal> est omis alors si l'<literal>expression1</literal> donne <constant>false</constant> ou 0, <literal>NULL</literal> est renvoyé.</para>
 
1235
      <para>Exemples : <programlisting><![CDATA[if(a==5)then(a=a-1)
 
1236
if b<a then b=a
 
1237
if c>0 then c=c-1 else c=0
 
1238
a = ( if b>0 then b else 1 )
 
1239
]]></programlisting> Notez que <literal>=</literal> est traduit en <literal>==</literal> s'il est utilisé à l'intérieur de l'expression du <literal>if</literal>, donc <programlisting>if a=5 then a=a-1
 
1240
</programlisting> est interprété comme : <programlisting>if a==5 then a:=a-1
 
1241
</programlisting></para>
 
1242
    </sect1>
 
1243
 
 
1244
    <sect1 id="genius-gel-loops">
 
1245
      <title>Boucles</title>
 
1246
 
 
1247
      <sect2 id="genius-gel-loops-while">
 
1248
        <title>Boucles tant que (while) et jusqu'à (until)</title>
 
1249
        <para>Syntaxe : <programlisting><![CDATA[while <expression1> do <expression2>
 
1250
until <expression1> do <expression2>
 
1251
do <expression2> while <expression1>
 
1252
do <expression2> until <expression1>]]></programlisting> Elles sont similaires à celles rencontrées dans les autres langages. Cependant puisqu'en GEL, cela doit être une expression qui doit renvoyer des valeurs, ces constructions renvoient simplement le résultat de la dernière itération ou <literal>NULL</literal> si aucune itération n'a eu lieu. Dans l'expression booléenne, <literal>=</literal> est traduit en <literal>==</literal> de la même manière que cela se produit pour l'instruction <literal>if</literal>.</para>
 
1253
      </sect2>
 
1254
 
 
1255
      <sect2 id="genius-gel-loops-for">
 
1256
        <title>Boucles pour (for)</title>
 
1257
        <para>Syntaxe : <programlisting><![CDATA[for <identifier> = <from> to <to> do <body>
 
1258
for <identifier> = <from> to <to> by <increment> do <body>]]></programlisting> Boucle où l'identifiant (identifier) prend toutes les valeurs comprises entre <literal>&lt;from&gt;</literal> et <literal>&lt;to&gt;</literal>, avec en option un incrément autre que 1. Elles sont plus rapides, plus simples à utiliser et plus compactes que les boucles classiques ci-dessus mais moins flexibles. L'identifiant doit être un identifiant et ne peut pas être un déréférencement. La valeur de l'identifiant est la dernière valeur prise par l'identifiant ou <literal>&lt;from&gt;</literal> si le contenu (body) de la boucle n'a jamais été évalué. Vous êtes sûr que la variable est initialisée après une boucle donc vous pouvez l'utiliser sans risque. <literal>&lt;from&gt;</literal>, <literal>&lt;to&gt;</literal> et <literal>&lt;increment&gt;</literal> ne doivent pas être complexes. Il n'est pas sûr que la valeur <literal>&lt;to&gt;</literal> soit atteinte, mais elle n'est jamais dépassée. Par exemple, ce qui suit affiche les nombres impairs de 1 à 19 : <programlisting>for i = 1 to 20 by 2 do print(i)
 
1259
</programlisting></para>
 
1260
        <para>
 
1261
                When one of the values is a floating point number, then the
 
1262
                final check is done to within 2^-20 of the step size.  That is,
 
1263
                even if we overshoot by 2^-20 times the "by" above, we still execute the last
 
1264
                iteration.  This way 
 
1265
<programlisting>for x = 0 to 1 by 0.1 do print(x)
 
1266
</programlisting>
 
1267
does the expected even though adding 0.1 ten times becomes just slightly more 1.0 due to the way that floating point numbers
 
1268
are stored in base 2 (there is no 0.1, the actual number stored is just ever so slightly bigger).  This is not perfect but it handles
 
1269
the majority of the cases.  If you want to avoid dealing with this issue, use actual rational numbers for example:
 
1270
<programlisting>for x = 0 to 1 by 1/10 do print(x)
 
1271
</programlisting>
 
1272
                This check is done only from version 1.0.16 onwards, so execution of your code may differ on older versions.
 
1273
        </para>
 
1274
      </sect2>
 
1275
 
 
1276
      <sect2 id="genius-gel-loops-foreach">
 
1277
        <title>Boucles pour chaque (foreach)</title>
 
1278
        <para>Syntaxe : <programlisting><![CDATA[for <identifier> in <matrix> do <body>]]></programlisting> Pour chaque élément de la matrice, en allant de ligne en ligne et de gauche à droite, le contenu (body) est exécuté en utilisant la valeur actuelle de l'élément pour l'identifiant (identifier). Pour afficher les nombres 1, 2, 3 et 4 dans cet ordre, vous pouvez faire : <programlisting>for n in [1,2:3,4] do print(n)
 
1279
</programlisting> Si vous souhaitez parcourir les lignes et les colonnes d'une matrice, vous pouvez utiliser les fonctions « RowsOf » et « ColumnsOf » qui renvoient un vecteur des lignes ou des colonnes de la matrice. Par conséquent, <programlisting>for n in RowsOf ([1,2:3,4]) do print(n)
 
1280
</programlisting> affiche [1,2] puis [3,4].</para>
 
1281
      </sect2>
 
1282
 
 
1283
      <sect2 id="genius-gel-loops-break-continue">
 
1284
        <title>Instructions « break » et « continue »</title>
 
1285
        <para>Vous pouvez aussi utiliser les instructions <literal>break</literal> et <literal>continue</literal> dans les boucles. L'instruction <literal>continue</literal> reprend la boucle à sa prochaine itération alors que l'instruction <literal>break</literal> sort de la boucle actuelle. <programlisting><![CDATA[while(<expression1>) do (
 
1286
  if(<expression2>) break
 
1287
  else if(<expression3>) continue;
 
1288
  <expression4>
 
1289
)
 
1290
]]></programlisting></para>
 
1291
      </sect2>
 
1292
    </sect1>
 
1293
 
 
1294
    <sect1 id="genius-gel-sums-products">
 
1295
      <title>Sommes et produits</title>
 
1296
      <para>Syntaxe : <programlisting><![CDATA[sum <identifier> = <from> to <to> do <body>
 
1297
sum <identifier> = <from> to <to> by <increment> do <body>
 
1298
sum <identifier> in <matrix> do <body>
 
1299
prod <identifier> = <from> to <to> do <body>
 
1300
prod <identifier> = <from> to <to> by <increment> do <body>
 
1301
prod <identifier> in <matrix> do <body>]]></programlisting> Si vous remplacez <literal>for</literal> par <literal>sum</literal> ou <literal>prod</literal> alors vous obtenez une somme ou un produit à la place d'une boucle <literal>for</literal>. Au lieu de renvoyer la dernière valeur, cela renvoie la somme ou le produit des valeurs respectivement.</para>
 
1302
      <para>Si aucun contenu (body) est exécuté (par exemple, <userinput>sum i=1 to 0 do ...</userinput>) alors la convention standard est que <literal>sum</literal> renvoie 0 et <literal>prod</literal> renvoie 1.</para>
 
1303
      <para>
 
1304
              For floating point numbers the same roundoff error protection is done as in the for loop.
 
1305
             See <xref linkend="genius-gel-loops-for"/>.
 
1306
      </para>
 
1307
    </sect1>
 
1308
 
 
1309
    <sect1 id="genius-gel-comparison-operators">
 
1310
      <title>Opérateurs de comparaison</title>
 
1311
      <para>Les opérateurs de comparaison standard suivants sont pris en charge dans GEL et ont des significations évidentes : <literal>==</literal>, <literal>&gt;=</literal>, <literal>&lt;=</literal>, <literal>!=</literal>, <literal>&lt;&gt;</literal>, <literal>&lt;</literal>, <literal>&gt;</literal>. Ils renvoient <constant>true</constant> ou <constant>false</constant>. Les opérateurs <literal>!=</literal> et <literal>&lt;&gt;</literal> sont les mêmes et signifient « n'est pas égal à ». GEL comprend également l'opérateur <literal>&lt;=&gt;</literal> qui renvoie -1 si la partie de gauche est plus petite, 0 si les deux parties sont égales, 1 si la partie de gauche est plus grande.</para>
 
1312
 
 
1313
      <para>Normalement <literal>=</literal> est traduit en <literal>==</literal> partout où GEL s'attend à une condition comme celle de la condition si (if). Par exemple, <programlisting>if a=b then c
 
1314
if a==b then c
 
1315
</programlisting> sont identiques en GEL. Cependant vous devriez vraiment utiliser <literal>==</literal> ou <literal>:=</literal> lorsque vous voulez respectivement comparer ou attribuer si vous voulez éviter des erreurs et que votre code soit facile à lire.</para>
 
1316
 
 
1317
      <para>Tous les opérateurs de comparaison (sauf l'opérateur <literal>&lt;=&gt;</literal> qui se comporte différemment) ne sont pas strictement des opérateurs binaires, ils peuvent en réalité être regroupés comme cela se produit en mathématique, par ex. : (<literal>1&lt;x&lt;=y&lt;5</literal>) est une expression booléenne légale et signifie ce qu'elle doit, c'est-à-dire (1&lt;x et x≤y et y&lt;5)</para>
 
1318
      <para>Pour construire des expressions logiques, utilisez les mots <literal>not</literal>, <literal>and</literal>, <literal>or</literal>, <literal>xor</literal>. Les opérateurs <literal>or</literal> et <literal>and</literal> sont des entités spéciales car ils évaluent leurs arguments les uns après les autres, donc les astuces classiques des évaluations conditionnelles fonctionnent. Par exemple : <literal>1 or a=1</literal> n'effectue pas l'attribution <literal>a=1</literal> puisque le premier argument est vrai (true).</para>
 
1319
    </sect1>
 
1320
 
 
1321
      <sect1 id="genius-gel-variables-global">
 
1322
        <title>Variables globales et portée des variables</title>
 
1323
        <para>GEL est un <ulink url="http://fr.wikipedia.org/wiki/Port%C3%A9e_%28informatique%29">langage à portée dynamique</ulink>. Nous allons expliquer ce que cela signifie ci-dessous. Les variables et les fonctions normales sont à portée dynamique. Les exceptions sont les <link linkend="genius-gel-parameters">variables paramètres</link> qui sont toujours globales.</para>
 
1324
        <para>Comme la plupart des langages de programmation, GEL possède différents types de variables. Normalement lorsqu'une variable est définie dans une fonction, elle est visible dans cette fonction et à partir de toutes les fonctions qui sont appelées (tous les contextes supérieurs). Par exemple, supposons qu'une fonction <function>f</function> définit une variable <varname>a</varname> puis appelle la fonction <function>g</function>. Alors la fonction <function>g</function> peut faire référence à <varname>a</varname>. Mais dès que la fonction <function>f</function> est quittée, la variable <varname>a</varname> disparaît de la portée. Par exemple, le code suivant affiche 5. La fonction <function>g</function> ne peut pas être appelée à partir du niveau supérieur (en dehors de <function>f</function> puisque <varname>a</varname> n'est pas défini). <programlisting>function f() = (a:=5; g());
 
1325
function g() = print(a);
 
1326
f();
 
1327
</programlisting></para>
 
1328
        <para>Si vous définissez une variable à l'intérieur d'une fonction, elle va supplanter toutes variables définies dans les fonctions appelantes. Par exemple, si nous modifions le code ci-dessus et écrivons : <programlisting>function f() = (a:=5; g());
 
1329
function g() = print(a);
 
1330
a:=10;
 
1331
f();
 
1332
</programlisting> Ce code affiche toujours 5. Mais si vous appelez <function>g</function> à l'extérieur de <function>f</function> alors la valeur 10 s'affiche. Remarquez que le fait d'initialiser <varname>a</varname> à 5 à l'intérieur de <function>f</function> ne modifie pas la valeur de <varname>a</varname> au niveau (global) supérieur donc si vous contrôlez maintenant la valeur de <varname>a</varname>, elle sera toujours de 10.</para>
 
1333
        <para>Les arguments de fonction sont exactement comme les variables définies à l'intérieur de la fonction sauf qu'ils sont initialisés à la valeur qui a été transmise à la fonction. En dehors de ce point, ils sont traités exactement comme toutes les autres variables définies dans la fonction.</para>
 
1334
        <para>Les fonctions sont traitées exactement comme les variables. Par conséquent, vous pouvez redéfinir localement les fonctions. Normalement (au niveau supérieur) vous ne pouvez pas redéfinir des variables et fonctions protégées mais, vous pouvez le faire localement. Considérons la session suivante : <screen><prompt>genius&gt; </prompt><userinput>function f(x) = sin(x)^2</userinput>
 
1335
= (`(x)=(sin(x)^2))
 
1336
<prompt>genius&gt; </prompt><userinput>function g(x) = ((function sin(x)=x^10);f(x))</userinput>
 
1337
= (`(x)=((sin:=(`(x)=(x^10)));f(x)))
 
1338
<prompt>genius&gt; </prompt><userinput>g(10)</userinput>
 
1339
= 1e20
 
1340
</screen></para>
 
1341
        <para>Les fonctions et variables définies au niveau supérieur sont considérées globales. Elles sont visibles de n'importe où. Comme nous l'avons déjà dit, la fonction <function>f</function> suivante ne modifie pas la valeur de <varname>a</varname> à 5. <programlisting>a=6;
 
1342
function f() = (a:=5);
 
1343
f();
 
1344
</programlisting> De temps en temps, cependant, il est nécessaire de définir une variable globale à l'intérieur d'une fonction. Lorsque cela est nécessaire, utilisez la fonction <function>set</function>. La transmission d'une chaîne de caractères ou d'un identifiant précédé d'une apostrophe à cette fonction définit la variable comme globale (au niveau supérieur). Par exemple, pour initialiser <varname>a</varname> à la valeur 3, vous pouvez utiliser : <programlisting>set(`a,3)
 
1345
</programlisting> ou : <programlisting>set("a",3)
 
1346
</programlisting></para>
 
1347
        <para>La fonction <function>set</function> définit toujours au niveau global supérieur. Il n'est pas possible de définir une variable locale dans des fonctions à partir d'un sous-programme. Si c'est nécessaire, vous devez utiliser la transmission par référence.</para>
 
1348
        <para>Donc pour récapituler dans un langage plus technique : genius opère avec différents contextes numérotés. Le niveau supérieur est le contexte 0 (zéro). À chaque fois qu'une fonction est entrée, le contexte est augmenté et lorsqu'une fonction est quittée, le contexte est diminué. Une fonction ou une variable est toujours visible à partir de tous les contextes de numéro plus élevé. Si une variable a été définie dans un contexte de numéro plus bas alors attribuer une valeur à cette variable a pour effet de créer une nouvelle variable locale dans le numéro de contexte actuel et cette variable est maintenant visible de tous les contextes de numéro plus élevé.</para>
 
1349
        <para>Il existe également des variables vraiment locales, qui ne sont visibles de nulle part sauf du contexte actuel. Ainsi lorsque vous renvoyez des fonctions par valeur, il se peut que cela fasse référence à des variables non visibles à partir des contextes supérieurs et cela peut être un problème. Consultez <link linkend="genius-gel-true-local-variables">Variables vraiment locales</link> et <link linkend="genius-gel-returning-functions">Renvoi de fonctions</link>.</para>
 
1350
      </sect1>
 
1351
 
 
1352
      <sect1 id="genius-gel-parameters">
 
1353
        <title>Variables paramètres</title>
 
1354
        <para>Comme dit précédemment, il existe des variables spéciales appelées paramètres qui existent dans toutes les portées. Pour déclarer un paramètre appelé <varname>foo</varname> et initialisé à 1, écrivez <programlisting><![CDATA[parameter foo = 1
 
1355
]]></programlisting> À partir de cet instant, <varname>foo</varname> est une variable complètement globale. Attribuer une valeur à <varname>foo</varname> à l'intérieur d'une fonction, modifie la variable dans tous les contextes, ce qui signifie que les fonctions ne possèdent pas de copie privée des paramètres.</para>
 
1356
        <para>Si vous annulez la définition comme paramètre en utilisant la fonction <link linkend="gel-function-undefine"><function>undefine</function></link>, la variable cesse d'être un paramètre.</para>
 
1357
        <para>Certains paramètres sont internes à Genius et modifient son comportement.</para>
 
1358
      </sect1>
 
1359
 
 
1360
    <sect1 id="genius-gel-returning">
 
1361
      <title>Sortie de fonction</title>
 
1362
        <para>Normalement une fonction est une ou plusieurs expressions séparées par un point virgule et la valeur de la dernière expression est renvoyée. C'est suffisant pour les fonctions simples mais parfois vous ne voulez pas qu'une fonction renvoie la dernière chose calculée. Il se peut que vous vouliez, par exemple, quitter la fonction à partir du milieu de la fonction. Dans ce cas, vous pouvez utiliser le mot-clé <literal>return</literal>. <literal>Return</literal> prend un seul argument qui est la valeur renvoyée.</para>
 
1363
      <para>Exemple : <programlisting><![CDATA[function f(x) = (
 
1364
  y=1;
 
1365
  while true do (
 
1366
    if x>50 then return y;
 
1367
    y=y+1;
 
1368
    x=x+1
 
1369
  )
 
1370
)
 
1371
]]></programlisting></para>
 
1372
    </sect1>
 
1373
 
 
1374
 
 
1375
    <sect1 id="genius-gel-references">
 
1376
      <title>Références</title>
 
1377
      <para>Il peut être nécessaire pour certaines fonctions de renvoyer plus d'une seule valeur. C'est possible en renvoyant un vecteur de valeurs mais souvent il est pratique d'utiliser le passage d'une référence à une variable. Vous transmettez une référence vers une variable à une fonction et la fonction attribue des valeurs à la variable pour vous en utilisant un déréférencement. Ce n'est pas le seul usage que vous pouvez faire du passage par référence mais c'est son utilisation principale.</para>
 
1378
      <para>Lorsque vous utilisez des fonctions qui renvoient des valeurs à travers des références dans sa liste d'argument, il suffit de transmettre le nom de la variable précédée d'une esperluette. Par exemple, le code suivant calcule une valeur propre d'une matrice <varname>A</varname> avec un vecteur propre initial pressenti <varname>x</varname> et enregistre le vecteur propre calculé dans la variable appelée <varname>v</varname> : <programlisting><![CDATA[RayleighQuotientIteration (A,x,0.001,100,&v)
 
1379
]]></programlisting></para>
 
1380
      <para>Les détails concernant le fonctionnement des références et leur syntaxe sont similaires à ceux du langage C. L'opérateur <literal>&amp;</literal> référence une variable et <literal>*</literal> la déréférence. Les deux ne peuvent s'appliquer que sur un identifiant, par conséquent <literal>**a</literal> n'est pas une expression légale en GEL.</para>
 
1381
      <para>Les références s'expliquent mieux par un exemple : <programlisting><![CDATA[a=1;
 
1382
b=&a;
 
1383
*b=2;
 
1384
]]></programlisting> Maintenant <varname>a</varname> contient 2. Vous pouvez également référencer des fonctions : <programlisting><![CDATA[function f(x) = x+1;
 
1385
t=&f;
 
1386
*t(3)
 
1387
]]></programlisting> donne 4.</para>
 
1388
    </sect1>
 
1389
 
 
1390
    <sect1 id="genius-gel-lvalues">
 
1391
      <title>Valeurs à gauche (lvalues)</title>
 
1392
      <para>Une valeur à gauche est la partie à gauche d'une attribution. En d'autres mots, une valeur à gauche est la chose dans laquelle vous attribuez quelque chose. Des valeurs à gauche valides sont : <variablelist>
 
1393
  <varlistentry>
 
1394
    <term><userinput>a</userinput></term>
 
1395
    <listitem>
 
1396
      <para>Identifiant. Ici nous attribuons une valeur à la variable de nom <varname>a</varname>.</para>
 
1397
    </listitem>
 
1398
  </varlistentry>
 
1399
  <varlistentry>
 
1400
    <term><userinput>*a</userinput></term>
 
1401
    <listitem>
 
1402
      <para>Déréférence un identifiant. Cela attribue une valeur à ce que vers quoi la variable <varname>a</varname> pointe.</para>
 
1403
    </listitem>
 
1404
  </varlistentry>
 
1405
  <varlistentry>
 
1406
    <term><userinput>a@(&lt;région&gt;)</userinput></term>
 
1407
    <listitem>
 
1408
      <para>Une région d'une matrice. Ici la région est indiquée normalement comme avec l'opérateur habituel @() et peut être une entrée unique ou une région entière de la matrice.</para>
 
1409
    </listitem>
 
1410
  </varlistentry>
 
1411
</variablelist></para>
 
1412
      <para>Exemples : <programlisting>a:=4
 
1413
*tmp := 89
 
1414
a@(1,1) := 5
 
1415
a@(4:8,3) := [1,2,3,4,5]'
 
1416
</programlisting> Notez que <literal>:=</literal> et <literal>=</literal> peuvent être utilisés indifféremment l'un à la place de l'autre. Sauf si l'attribution apparaît dans une condition. Il est donc plus sûr d'utiliser uniquement <literal>:=</literal> lorsque vous voulez faire une attribution et <literal>==</literal> lorsque vous voulez faire une comparaison.</para>
 
1417
    </sect1>
 
1418
 
 
1419
  </chapter>
 
1420
 
 
1421
  <chapter id="genius-gel-programming-advanced">
 
1422
    <title>Programmation avancée avec GEL</title>
 
1423
 
 
1424
    <sect1 id="genius-gel-error-handling">
 
1425
      <title>Gestion des erreurs</title>
 
1426
      <para>Si vous détectez une erreur dans votre fonction, vous pouvez la quitter rapidement (« to bail out of »). Pour les erreurs normales, telles que les mauvais types d'arguments, vous pouvez éviter de calculer la fonction en ajoutant l'instruction <literal>bailout</literal>. Si quelque chose se passe vraiment mal et que vous voulez interrompre complètement le calcul actuel, vous pouvez utiliser l'instruction <literal>exception</literal>.</para>
 
1427
      <para>Par exemple, si vous voulez vérifier les arguments de votre fonction. Vous pouvez utiliser le code suivant. <programlisting>function f(M) = (
 
1428
  if not IsMatrix (M) then (
 
1429
    error ("M n'est pas une matrice !");
 
1430
    bailout
 
1431
  );
 
1432
  ...
 
1433
)
 
1434
</programlisting></para>
 
1435
    </sect1>
 
1436
 
 
1437
    <sect1 id="genius-gel-toplevel-syntax">
 
1438
      <title>Syntaxe de haut-niveau</title>
 
1439
      <para>La syntaxe est légèrement différente si vous saisissez des instructions au niveau supérieur plutôt que lorsque vous êtes entre parenthèses ou à l'intérieur de fonctions. Au niveau supérieur, un retour à la ligne a le même effet qu'un appui sur la touche Entrée en ligne de commande. Par conséquent, considérez vos programmes comme une suite de lignes saisie en ligne de commande. En particulier, vous n'avez pas besoin de saisir le séparateur à la fin d'une ligne (à moins que cela ne soit une partie de plusieurs instructions à l'intérieur de parenthèses).</para>
 
1440
      <para>Le code suivant provoque une erreur lorsqu'il est saisi au niveau supérieur d'un programme alors qu'il fonctionne très bien dans une fonction. <programlisting>if QuelqueChose() then
 
1441
  FaireQuelqueChose()
 
1442
else
 
1443
  FaireAutreChose()
 
1444
</programlisting></para>
 
1445
      <para>Le problème est que lorsque l'<application>Outil de maths Genius</application> rencontre la fin de la ligne après la seconde ligne, il décide que l'instruction est complète et il l'exécute. Après l'exécution l'<application>Outil de maths Genius</application> se rend à la ligne suivante, voit l'instruction <literal>else</literal> et affiche une erreur de syntaxe. Pour régler ce problème, utilisez des parenthèses. L'<application>Outil de maths Genius</application> ne sera pas satisfait tant qu'il n'aura pas trouvé que toutes les parenthèses sont fermées. <programlisting>if QuelqueChose() then(
 
1446
  FaireQuelqueChose()
 
1447
) else (
 
1448
  FaireAutreChose()
 
1449
)
 
1450
</programlisting></para>
 
1451
    </sect1>
 
1452
 
 
1453
     <sect1 id="genius-gel-returning-functions">
 
1454
       <title>Renvoi de fonction</title>
 
1455
        <para>Il est possible de renvoyer des fonctions en tant que donnée. De cette manière, vous pouvez écrire une fonction qui construit des fonctions dans un but précis en fonction de certains paramètres. Le point délicat est de savoir quelles variables sont visibles par la fonction construite. La façon dont cela fonctionne dans GEL est que, lorsqu'une fonction renvoie une autre fonction, tous les identifiants qui étaient référencés dans le corps de la fonction mère, et qui deviendraient hors de portée, sont en fait ajoutés dans un dictionnaire privé de la fonction renvoyée. Ainsi la fonction voit toutes les variables qui étaient à sa portée au moment où elle a été définie. Par exemple, nous pouvons définir ainsi une fonction qui renvoie une fonction qui ajoute 5 à son argument : <programlisting>function f() = (
 
1456
  k = 5;
 
1457
  `(x) = (x+k)
 
1458
)
 
1459
</programlisting> Notez que la fonction ajoute <varname>k</varname> à <varname>x</varname>. Vous pouvez l'utiliser ainsi. <programlisting>g = f();
 
1460
g(5)
 
1461
</programlisting> et <userinput>g(5)</userinput> doit renvoyer 10.</para>
 
1462
        <para>Une chose à noter est que la valeur de <varname>k</varname> utilisée est celle qui est en cours lorsque la fonction <function>f</function> a terminé son exécution. Par exemple : <programlisting>function f() = (
 
1463
  k := 5;
 
1464
  function r(x) = (x+k);
 
1465
  k := 10;
 
1466
  r
 
1467
)
 
1468
</programlisting> renvoie une fonction qui ajoute 10 à son argument plutôt que 5. La raison est que le dictionnaire supplémentaire est créé uniquement lorsque le contexte dans lequel la fonction a été définie, se termine, c'est-à-dire lorsque la fonction <function>f</function> renvoie. C'est cohérent avec la manière dont on s'attend à ce que la fonction <function>r</function> fonctionne à l'intérieur de la fonction <function>f</function> d'après les règles sur la portée des variables dans GEL. Les seules variables ajoutées au dictionnaire supplémentaire sont celles qui sont présentes dans le contexte qui se termine et n'existe plus. Les variables utilisées dans la fonction, qui sont toujours dans des contextes valides, fonctionnent comme d'habitude, en utilisant la valeur actuelle de la variable. La seule différence, c'est pour les variables et les fonctions globales. Tous les identifiants qui référencent des variables globales au moment de la définition de la fonction ne sont pas ajoutés au dictionnaire privé. C'est pour éviter beaucoup de travail non nécessaire lors du renvoi de fonctions et cela ne pose que rarement problème. Par exemple, supposons que vous supprimiez le « k= 5 » de la fonction <function>f</function> et qu'au niveau supérieur vous définissiez <varname>k</varname> à 5 par exemple. Alors lorsque vous exécutez <function>f</function>, la fonction <function>r</function> ne met pas <varname>k</varname> dans le dictionnaire privé parce qu'il était global (au niveau supérieur) au moment de la définition de <function>r</function>.</para>
 
1469
        <para>Parfois il est préférable d'avoir un meilleur contrôle sur la façon dont les variables sont copiées dans le dictionnaire privé. Depuis la version 1.0.7, vous pouvez spécifier quelles variables sont copiées dans le dictionnaire privée en mettant des crochets carrés supplémentaires après les arguments contenant la liste des variables qui seront copiées, séparées par des virgules. Si vous faites cela alors les variables sont copiées dans le dictionnaire privé au moment de la définition de la fonction et le dictionnaire privé n'est pas modifié ensuite. Par exemple, <programlisting>function f() = (
 
1470
  k := 5;
 
1471
  function r(x) [k] = (x+k);
 
1472
  k := 10;
 
1473
  r
 
1474
)
 
1475
</programlisting> renvoie une fonction qui, lorsqu'elle est appelée, ajoute 5 à ses arguments. La copie locale de <varname>k</varname> a été créée lorsque la fonction a été définie.</para>
 
1476
        <para>
 
1477
          When you want the function to not have any private dictionary
 
1478
          then put empty square brackets after the argument list.  Then
 
1479
          no private dictionary will be created at all.  Doing this is
 
1480
          good to increase efficiency when a private dictionary is not
 
1481
          needed or when you want the function to lookup all variables
 
1482
          as it sees them when called.  For example suppose you want
 
1483
          the function returned from <function>f</function> to see
 
1484
          the value of <varname>k</varname> from the toplevel despite
 
1485
          there being a local variable of the same name during definition.
 
1486
          So the code
 
1487
<programlisting>function f() = (
 
1488
  k := 5;
 
1489
  function r(x) [] = (x+k);
 
1490
  r
 
1491
);
 
1492
k := 10;
 
1493
g = f();
 
1494
g(10)
 
1495
</programlisting>
 
1496
          will return 20 and not 15, which would happen if
 
1497
          <varname>k</varname> with a value of 5 was added to the private
 
1498
          dictionary.
 
1499
        </para>
 
1500
    </sect1>
 
1501
 
 
1502
    <sect1 id="genius-gel-true-local-variables">
 
1503
      <title>Variables locales vraies</title>
 
1504
      <para>Lors de la transmission de fonctions dans d'autres fonctions, la portée normale des variables peut être indésirable. Par exemple : <programlisting>k := 10;
 
1505
function r(x) = (x+k);
 
1506
function f(g,x) = (
 
1507
  k := 5;
 
1508
  g(x)
 
1509
);
 
1510
f(r,1)
 
1511
</programlisting> vous souhaitez probablement que la fonction <function>r</function> lorsqu'elle est transmise à <function>g</function> dans <function>f</function>, puisse voir <varname>k</varname> comme 10 plutôt que 5 afin que le code renvoie 11 et pas 6. Cependant, tel que c'est écrit, la fonction lorsqu'elle est exécutée voit la variable <varname>k</varname> qui est égale à 5. Il y a deux façons de résoudre cela. L'une est que la fonction <function>r</function> obtienne <varname>k</varname> dans un dictionnaire privé en utilisant la notation crochet carré de la section <link linkend="genius-gel-returning-functions">Renvoi de fonctions</link>.</para>
 
1512
      <para>Mais il y a une autre solution. Depuis la version 1.0.7 de Genius, il existe des variables vraiment locales. Ce sont des variables qui ne sont visibles qu'à partir du contexte actuel, et pas par les fonctions appelées. Nous pouvons définir <varname>k</varname> comme une variable locale dans la fonction <function>f</function>. Pour faire cela, ajoutez une instruction <command>local</command> comme première instruction dans la fonction (cela doit toujours être la première instruction de la fonction). Vous pouvez également transformer tous les arguments en variables locales, c'est-à-dire <programlisting>function f(g,x) = (
 
1513
  local g,x,k;
 
1514
  k := 5;
 
1515
  g(x)
 
1516
);
 
1517
</programlisting> Dans ce cas, le code fonctionne comme attendu et affiche 11. Notez que l'instruction <command>local</command> initialise toutes les variables référencées (sauf les arguments de la fonction) à <constant>null</constant>.</para>
 
1518
      <para>Si toutes les variables doivent être créées localement, vous pouvez utiliser un astérisque à la place d'une liste de variables. Dans ce cas, les variables ne sont pas initialisées tant qu'elles ne sont pas définies bien sûr. La définition suivante de <function>f</function> fonctionne également : <programlisting>function f(g,x) = (
 
1519
  local *;
 
1520
  k := 5;
 
1521
  g(x)
 
1522
);
 
1523
</programlisting></para>
 
1524
      <para>C'est une bonne pratique que toutes les fonctions qui prennent d'autres fonctions comme argument, utilisent des variables locales. De cette manière, la fonction transmise ne voit pas les détails de l'implémentation et n'est pas perturbée.</para>
 
1525
    </sect1>
 
1526
 
 
1527
    <sect1 id="genius-gel-startup-procedure">
 
1528
      <title>Procédure de démarrage de GEL</title>
 
1529
      <para>Dans un premier temps, le programme recherche dans le répertoire d'installation les fichiers de la bibliothèque installés (la version compilée <filename>lib.cgel</filename>), puis il recherche dans le répertoire actuel, puis il essaye de charger un fichier non compilé appelé <filename>~/.geniusinit</filename>.</para>
 
1530
      <para>
 
1531
If you ever change the library in its installed place, you’ll have to
 
1532
first compile it with <command>genius --compile loader.gel &gt; lib.cgel</command>
 
1533
      </para>
 
1534
    </sect1>
 
1535
 
 
1536
    <sect1 id="genius-gel-loading-programs">
 
1537
      <title>Chargement de programmes</title>
 
1538
      <para>Imaginons que vous ayiez un programme d'une certaine taille que vous avez écrit dans un fichier et que vous vouliez lire ce fichier. Dans ce cas, il y a deux options. Vous pouvez conserver les fonctions que vous utilisez le plus souvent dans le fichier <filename>~/.geniusinit</filename> ou, si vous voulez charger un fichier au milieu d'une session, (ou à partir d'un autre fichier), vous pouvez saisir <command>load &lt;liste de noms de fichier&gt;</command> au prompt. Cela doit être réalisé au niveau supérieur et pas à l'intérieur d'une fonction ou d'autres choses et cela ne peut pas faire partie d'une expression. La syntaxe est également légèrement différente du reste de genius, plus proche de celle d'un shell. Vous pouvez saisir le nom du fichier entre guillemets. Si vous utilisez les guillemets simples '', vous obtenez exactement la chaîne saisie mais si vous utilisez les guillemets doubles "", les caractères spéciaux ne seront pas échappés comme ils le sont pour les chaînes de caractères. Exemple : <programlisting>load programme1.gel programme2.gel
 
1539
load "Etrange nom de fichier avec des ESPACES.gel"
 
1540
</programlisting> Il existe également des commandes intégrées <command>cd</command>, <command>pwd</command> et <command>ls</command>. <command>cd</command> qui ne prenne qu'un seul argument, la commande <command>ls</command> ne prend qu'un seul argument qui est comme le « glob » dans le shell unix (c'est-à-dire vous pouvez utiliser des caractères génériques). La commande <command>pwd</command> ne prend pas d'argument. Par exemple : <programlisting>cd repertoire_contenant_des_programmes_gel
 
1541
ls *.gel
 
1542
</programlisting></para>
 
1543
    </sect1>
 
1544
 
 
1545
  </chapter>
 
1546
 
 
1547
  <!-- ============= Matrices ================================= -->
 
1548
  <chapter id="genius-gel-matrices">
 
1549
    <title>Matrices en GEL</title>
 
1550
 
 
1551
    <para>Genius prend en charge les vecteurs et les matrices et possède une importante bibliothèque de fonctions pour la manipulation des matrices et l'algèbre linéaire.</para>
 
1552
 
 
1553
    <sect1 id="genius-gel-matrix-support">
 
1554
      <title>Saisie de matrices</title>
 
1555
      <para>Pour saisir des matrices, vous pouvez utiliser l'une des deux syntaxes suivantes. Soit vous saisissez la matrice sur une seule ligne, en séparant les valeurs par des virgules et les lignes par des point-virgules soit vous saisissez chaque rangée sur une ligne en séparant les valeurs par des virgules. Vous pouvez également combiner les deux méthodes. Ainsi pour saisir une matrice 3x3 contenant les nombres 1 à 9, vous pouvez saisir <programlisting>[1,2,3;4,5,6;7,8,9]
 
1556
</programlisting> ou <programlisting>[1, 2, 3
 
1557
 4, 5, 6
 
1558
 7, 8, 9]
 
1559
</programlisting> Toutefois, n'utilisez pas à la fois « ; » et un retour chariot sur la même ligne.</para>
 
1560
 
 
1561
      <para>Vous pouvez aussi utiliser les fonctionnalités de complétion pour saisir des matrices. Par exemple, vous pouvez saisir : <programlisting>a = [ 1, 2, 3
 
1562
      4, 5, 6
 
1563
      7, 8, 9]
 
1564
b = [ a,  10
 
1565
      11, 12]
 
1566
</programlisting> pour obtenir <programlisting>[1,   2,  3, 10
 
1567
 4,   5,  6, 10
 
1568
 7,   8,  9, 10
 
1569
 11, 11, 11, 12]
 
1570
</programlisting> De même, vous pouvez construire des matrices à partir de vecteurs ou d'autres choses du même type.</para>
 
1571
 
 
1572
      <para>Notez que les éléments non spécifiés sont initialisés à 0, donc <programlisting>[1, 2, 3
 
1573
 4, 5
 
1574
 6]
 
1575
</programlisting> donne au final <programlisting>
 
1576
[1, 2, 3
 
1577
 4, 5, 0
 
1578
 6, 0, 0]
 
1579
</programlisting></para>
 
1580
 
 
1581
      <para>Lorsque les matrices sont évaluées, elles sont parcourues dans le sens des lignes, exactement de la même façon que l'opérateur <literal>M@(j)</literal>.</para>
 
1582
 
 
1583
      <note>
 
1584
        <para>Faites attention lorsque vous utilisez des retours à la ligne à l'intérieur des crochets <literal>[ ]</literal> car ils ont une signification légèrement différente dans ce cas. Vous commencez une nouvelle ligne.</para>
 
1585
      </note>
 
1586
 
 
1587
    </sect1>
 
1588
 
 
1589
    <sect1 id="genius-gel-matrix-transpose">
 
1590
      <title>Opérateur de transposition conjuguée et de transposition</title>
 
1591
      <para>Vous pouvez obtenir la matrice transposée conjuguée grâce à l'opérateur <literal>'</literal>. Cela signifie que la valeur dans la <varname>i</varname>ième colonne et la <varname>j</varname>ième ligne est le complexe conjugué de la valeur dans la <varname>j</varname>ième colonne et la <varname>i</varname>ième ligne de la matrice d'origine. Dans l'exemple : <programlisting>[1,2,3]*[4,5,6]'
 
1592
</programlisting> il faut transposer la deuxième matrice pour permettre la multiplication des matrices. Si vous voulez juste transposer une matrice sans la conjuguer, vous devez utiliser l'opérateur <literal>.'</literal>. Par exemple : <programlisting>[1,2,3]*[4,5,6i].'
 
1593
</programlisting></para>
 
1594
        <para>Remarquez que la transposée normale, c'est-à-dire l'opérateur <literal>.'</literal>, est beaucoup plus rapide et ne crée pas une nouvelle copie de la matrice en mémoire. La transposition conjuguée crée hélas une nouvelle copie. Il est recommandé de toujours utiliser l'opérateur <literal>.'</literal> lorsque vous travaillez avec des matrices et des vecteurs non complexes.</para>
 
1595
    </sect1>
 
1596
 
 
1597
    <sect1 id="genius-gel-matrix-linalg">
 
1598
      <title>Algèbre linéaire</title>
 
1599
      <para>Genius implémente beaucoup de routines utiles d'algèbre linéraire et de manipulation de matrice. Consultez les sections <link linkend="genius-gel-function-list-linear-algebra">Algèbre linéaire</link> et <link linkend="genius-gel-function-list-matrix">Manipulation de matrice</link> dans la liste des fonctions GEL.</para>
 
1600
      <para>Les routines d'algèbre linéaire implémentées en GEL ne proviennent pas actuellement d'un paquet numérique bien testé et ne doivent donc pas être utilisées pour des calculs numériques critiques. D'un autre côté, Genius implémente très bien les nombreuses opérations d'algèbre linéaire avec des coefficients rationnels et entiers. Elles sont par nature exactes et en fait vous donnent de bien meilleurs résultats que les routines en double précision usuelles pour l'algèbre linéaire.</para>
 
1601
      <para>Par exemple, il est vain de calculer le rang et le noyau d'une matrice réelle puisque dans tous les cas pratiques, il faut considérer que la matrice contienne de légères erreurs. Il est possible que vous obteniez un résultat différent de ce que vous attendiez. Le problème est qu'en faisant une légère perturbation toute matrice est de rang complet et inversible. Cependant si la matrice est composée de nombres rationnels alors le rang et le noyau sont toujours exactes.</para>
 
1602
      <para>En général, lorsque Genius calcule la base d'un espace vectoriel (par exemple avec la fonction <function>NullSpace</function>) il renvoie la base sous la forme d'une matrice dans laquelle les colonnes sont les vecteurs de la base. Cela signifie que lorsque Genius parle d'un sous-espace linéaire, cela désigne une matrice dont l'espace des colonnes est le sous-espace linéaire concerné.</para>
 
1603
      <para>Notez que Genius peut se souvenir d'un certaine nombre de propriétés d'une matrice. Par exemple, il se souvient qu'une matrice est sous une forme réduite. Si beaucoup d'appels à des fonctions qui utilisent en interne une forme réduite, sont effectués, vous pouvez réduire la matrice une fois pour toute auparavant. Les appels successifs à la fonction <function>rref</function> seront très rapides.</para>
 
1604
    </sect1>
 
1605
 
 
1606
  </chapter>
 
1607
 
 
1608
  <!-- ============= Polynomials ============================== -->
 
1609
  <chapter id="genius-gel-polynomials">
 
1610
    <title>Polynômes en GEL</title>
 
1611
 
 
1612
    <para>Actuellement Genius peut prendre en charge des polynômes à une variable écrits sous la forme de vecteurs et réaliser des opérations élémentaires avec eux. Il est prévu d'étendre cette prise en charge.</para>
 
1613
 
 
1614
    <sect1 id="genius-gel-polynomials-using">
 
1615
      <title>Utilisation des polynômes</title>
 
1616
      <para>Actuellement les polynômes à une variable sont juste des vecteurs lignes dont les valeurs sont les coefficients. La puissance du terme est la position dans le vecteur, la première étant 0. Ainsi, <programlisting>[1,2,3]
 
1617
</programlisting> représente le polynôme <programlisting>1 + 2*x + 3*x^2
 
1618
</programlisting></para>
 
1619
      <para>Vous pouvez ajouter, soustraire et multiplier des polynômes en utilisant respectivement les fonctions <link linkend="gel-function-AddPoly"><function>AddPoly</function></link>, <link linkend="gel-function-SubtractPoly"><function>SubtractPoly</function></link> et <link linkend="gel-function-MultiplyPoly"><function>MultiplyPoly</function></link>. Vous pouvez afficher un polynôme en utilisant la fonction <link linkend="gel-function-PolyToString"><function>PolyToString</function></link>. Par exemple, <programlisting>PolyToString([1,2,3],"y")
 
1620
</programlisting> donne <programlisting>3*y^2 + 2*y + 1
 
1621
</programlisting> Vous pouvez également obtenir une représentation fonctionnelle du polynôme afin de pouvoir l'évaluer. Pour cela, utilisez <link linkend="gel-function-PolyToFunction"><function>PolyToFunction</function></link> qui renvoie une fonction anonyme. <programlisting>f = PolyToFunction([0,1,1])
 
1622
f(2)
 
1623
</programlisting></para>
 
1624
      <para>Il est aussi possible de trouver les racines des polynômes de degré 1 à 4 en utilisant la fonction <link linkend="gel-function-PolynomialRoots"><function>PolynomialRoots</function></link> qui appelle la formule appropriée. Les polynômes de degré supérieur doit être convertis en fonctions et résolus numériquement en utilisant une fonction telle que <link linkend="gel-function-FindRootBisection"><function>FindRootBisection</function></link>, <link linkend="gel-function-FindRootFalsePosition"><function>FindRootFalsePosition</function></link>, <link linkend="gel-function-FindRootMullersMethod"><function>FindRootMullersMethod</function></link> ou <link linkend="gel-function-FindRootSecant"><function>FindRootSecant</function></link>.</para>
 
1625
      <para>Consultez <xref linkend="genius-gel-function-list-polynomials"/> dans la liste des fonctions pour le reste des fonctions agissant sur les polynômes.</para>
 
1626
    </sect1>
 
1627
 
 
1628
  </chapter>
 
1629
 
 
1630
  <!-- ============= Set Theory ============================== -->
 
1631
  <chapter id="genius-gel-settheory">
 
1632
    <title>Théorie des ensembles en GEL</title>
 
1633
 
 
1634
    <para>Genius possède des fonctionnalités intégrées basiques concernant la théorie des ensembles. Actuellement un ensemble est juste un vecteur (ou une matrice). Chaque objet distinct est traité comme un élément différent.</para>
 
1635
 
 
1636
    <sect1 id="genius-gel-sets-using">
 
1637
      <title>Utilisation des ensembles</title>
 
1638
      <para>Tout comme les vecteurs, les objets dans les ensembles peuvent comprendre des nombres, des chaînes de caractères, <constant>null</constant>, des matrices et des vecteurs. Il est prévu dans le futur d'avoir un type dédié pour les ensembles plutôt que d'utiliser des vecteurs. Notez que les nombres flottants sont différents des entiers, même s'ils semblent être les mêmes. Cela signifie que Genius traite <constant>0</constant> et <constant>0.0</constant> comme deux éléments différents. La constante <constant>null</constant> est traitée comme un ensemble vide.</para>
 
1639
      <para>Pour construire un ensemble à partir d'un vecteur, utilisez la fonction <link linkend="gel-function-MakeSet"><function>MakeSet</function></link>. Actuellement, cela renvoie juste un nouveau vecteur où chaque élément est unique. <screen><prompt>genius&gt; </prompt><userinput>MakeSet([1,2,2,3])</userinput>
 
1640
= [1, 2, 3]
 
1641
</screen></para>
 
1642
 
 
1643
        <para>De manière similaire, il existe des fonctions <link linkend="gel-function-Union"><function>Union</function></link>, <link linkend="gel-function-Intersection"><function>Intersection</function></link>, <link linkend="gel-function-SetMinus"><function>SetMinus</function></link> dont le but est assez intuitif. Par exemple : <screen><prompt>genius&gt; </prompt><userinput>Union([1,2,3], [1,2,4])</userinput>
 
1644
= [1, 2, 4, 3]
 
1645
</screen> Notez qu'aucun ordre n'est garanti pour les valeurs renvoyées. Si vous souhaitez trier le vecteur, vous devez utiliser la fonction <link linkend="gel-function-SortVector"><function>SortVector</function></link>.</para>
 
1646
 
 
1647
        <para>Pour tester l'appartenance, il existe les fonctions <link linkend="gel-function-IsIn"><function>IsIn</function></link> et <link linkend="gel-function-IsSubset"><function>IsSubset</function></link> qui renvoient une valeur booléenne. Par exemple, <screen><prompt>genius&gt; </prompt><userinput>IsIn (1, [0,1,2])</userinput>
 
1648
= true
 
1649
</screen> La syntaxe <userinput>IsIn(x,X)</userinput> est bien sûr équivalente à <userinput>IsSubset([x],X)</userinput>. Notez que puisque l'ensemble vide est un sous-ensemble de tous les ensembles, <userinput>IsSubset(null,X)</userinput> est toujours vrai.</para>
 
1650
 
 
1651
    </sect1>
 
1652
 
 
1653
  </chapter>
 
1654
 
 
1655
  <!-- ============= GEL function list ======================== -->
 
1656
  <chapter id="genius-gel-function-list">
 
1657
    <title>Liste des fonctions GEL</title>
 
1658
 
 
1659
    <!--&gel-function-list;-->
 
1660
 
 
1661
    <para>Pour obtenir de l'aide sur une fonction spécifique à partir de la console, saisissez : <programlisting>help NomDeLaFonction
 
1662
</programlisting></para>
 
1663
 
 
1664
    <sect1 id="genius-gel-function-list-commands">
 
1665
      <title>Commandes</title>
 
1666
      <variablelist>
 
1667
        <varlistentry>
 
1668
         <term><anchor id="gel-command-help"/>help</term>
 
1669
         <listitem>
 
1670
          <synopsis>help</synopsis>
 
1671
          <synopsis>help NomDeLaFonction</synopsis>
 
1672
          <para>Affiche l'aide (ou l'aide d'une fonction/commande).</para>
 
1673
         </listitem>
 
1674
        </varlistentry>
 
1675
 
 
1676
        <varlistentry>
 
1677
         <term><anchor id="gel-command-load"/>load</term>
 
1678
         <listitem>
 
1679
          <synopsis>load "fichier.gel"</synopsis>
 
1680
          <para>Charge un fichier dans l'interpréteur. Le contenu du fichier s'exécute comme s'il était saisi en ligne de commande.</para>
 
1681
         </listitem>
 
1682
        </varlistentry>
 
1683
 
 
1684
        <varlistentry>
 
1685
         <term><anchor id="gel-command-cd"/>cd</term>
 
1686
         <listitem>
 
1687
          <synopsis>cd /nom/de/repertoire</synopsis>
 
1688
          <para>Change le répertoire de travail en <filename>/nom/de/repertoire</filename>.</para>
 
1689
         </listitem>
 
1690
        </varlistentry>
 
1691
 
 
1692
        <varlistentry>
 
1693
         <term><anchor id="gel-command-pwd"/>pwd</term>
 
1694
         <listitem>
 
1695
          <synopsis>pwd</synopsis>
 
1696
          <para>Affiche le répertoire de travail.</para>
 
1697
         </listitem>
 
1698
        </varlistentry>
 
1699
 
 
1700
        <varlistentry>
 
1701
         <term><anchor id="gel-command-ls"/>ls</term>
 
1702
         <listitem>
 
1703
          <synopsis>ls</synopsis>
 
1704
          <para>Affiche les fichiers dans le répertoire.</para>
 
1705
         </listitem>
 
1706
        </varlistentry>
 
1707
 
 
1708
        <varlistentry>
 
1709
         <term><anchor id="gel-command-plugin"/>plugin</term>
 
1710
         <listitem>
 
1711
          <synopsis>plugin nom_du_greffon</synopsis>
 
1712
          <para>Charge un greffon. Le greffon portant ce nom doit être installé sur votre système dans le répertoire correct.</para>
 
1713
         </listitem>
 
1714
        </varlistentry>
 
1715
      </variablelist>
 
1716
    </sect1>
 
1717
 
 
1718
    <sect1 id="genius-gel-function-list-basic">
 
1719
      <title>Basique</title>
 
1720
      <variablelist>
 
1721
        <varlistentry>
 
1722
         <term><anchor id="gel-function-AskButtons"/>AskButtons</term>
 
1723
         <listitem>
 
1724
          <synopsis>AskButtons (requête)</synopsis>
 
1725
          <synopsis>AskButtons (requête, bouton1, ...)</synopsis>
 
1726
          <para>Pose une question et présente une liste de boutons à l'utilisateur (ou un menu d'options en mode texte). Renvoie l'indice du bouton enfoncé, commençant à 1, c'est-à-dire renvoie 1 si le premier bouton est enfoncé, 2 si le second bouton est enfoncé, etc. Si l'utilisateur ferme la fenêtre (ou appui sur Entrée en mode texte) alors <constant>null</constant> est renvoyé. L'exécution du programme est bloqué jusqu'à ce que l'utilisateur réponde.</para>
 
1727
         </listitem>
 
1728
        </varlistentry>
 
1729
 
 
1730
        <varlistentry>
 
1731
         <term><anchor id="gel-function-AskString"/>AskString</term>
 
1732
         <listitem>
 
1733
          <synopsis>AskString (requête)</synopsis>
 
1734
          <synopsis>AskString (requête, défaut)</synopsis>
 
1735
          <para>Pose une question et permet à l'utilisateur de saisir une chaîne de caractères qui est ensuite renvoyée. Si l'utilisateur annule ou ferme la fenêtre alors <constant>null</constant> est renvoyé. L'exécution du programme est bloquée jusqu'à ce que l'utilisateur réponde. Si <varname>défaut</varname> est fourni alors il est pré-saisi pour que l'utilisateur n'ait qu'à appuyer sur Entrée.</para>
 
1736
         </listitem>
 
1737
        </varlistentry>
 
1738
 
 
1739
        <varlistentry>
 
1740
         <term><anchor id="gel-function-Compose"/>Compose</term>
 
1741
         <listitem>
 
1742
          <synopsis>Compose (f,g)</synopsis>
 
1743
          <para>Compose deux fonctions et renvoie une fonction qui est la composition de <function>f</function> par <function>g</function>.</para>
 
1744
         </listitem>
 
1745
        </varlistentry>
 
1746
 
 
1747
        <varlistentry>
 
1748
         <term><anchor id="gel-function-ComposePower"/>ComposePower</term>
 
1749
         <listitem>
 
1750
          <synopsis>ComposePower (f,n,x)</synopsis>
 
1751
          <para>Compose et exécute une fonction avec elle-même <varname>n</varname> fois en transmettant l'argument <varname>x</varname>. Cela renvoie <varname>x</varname> si <varname>n</varname> vaut 0. Exemple : <screen><prompt>genius&gt;</prompt> <userinput>function f(x) = x^2 ;</userinput>
 
1752
<prompt>genius&gt;</prompt> <userinput>ComposePower (f,3,7)</userinput>
 
1753
= 5764801
 
1754
<prompt>genius&gt;</prompt> <userinput>f(f(f(7)))</userinput>
 
1755
= 5764801
 
1756
</screen></para>
 
1757
         </listitem>
 
1758
        </varlistentry>
 
1759
 
 
1760
        <varlistentry>
 
1761
         <term><anchor id="gel-function-Evaluate"/>Evaluate</term>
 
1762
         <listitem>
 
1763
          <synopsis>Evaluate (chaîne)</synopsis>
 
1764
          <para>Analyse et évalue une chaîne.</para>
 
1765
         </listitem>
 
1766
        </varlistentry>
 
1767
 
 
1768
 
 
1769
        <varlistentry>
 
1770
         <term><anchor id="gel-function-GetCurrentModulo"/>GetCurrentModulo</term>
 
1771
         <listitem>
 
1772
          <synopsis>GetCurrentModulo</synopsis>
 
1773
          <para>Obtient le modulo actuel à partir du contexte extérieur à la fonction. C'est-à-dire, si l'extérieur de la fonction a été exécuté en mode modulo (en utilisant <literal>mod</literal>) alors cela renvoie cette valeur de modulo. Normalement le corps d'une fonction appelée n'est pas exécutée en arithmétique modulaire et cette fonction intégrée donne la possibilité aux fonctions GEL de prendre connaissance de l'arithmétique modulaire en cours.</para>
 
1774
         </listitem>
 
1775
        </varlistentry>
 
1776
 
 
1777
        <varlistentry>
 
1778
         <term><anchor id="gel-function-Identity"/>Identity</term>
 
1779
         <listitem>
 
1780
          <synopsis>Identity (x)</synopsis>
 
1781
          <para>Fonction identité, renvoie son argument.</para>
 
1782
         </listitem>
 
1783
        </varlistentry>
 
1784
 
 
1785
        <varlistentry>
 
1786
         <term><anchor id="gel-function-IntegerFromBoolean"/>IntegerFromBoolean</term>
 
1787
         <listitem>
 
1788
          <synopsis>IntegerFromBoolean (val_bool)</synopsis>
 
1789
          <para>Crée un entier (0 pour <constant>false</constant> ou 1 pour <constant>true</constant>) à partir d'une valeur booléenne. <varname>val_bool</varname> peut également être un nombre et dans ce cas une valeur non nulle est interprétée comme <constant>true</constant> et zéro est interprété comme <constant>false</constant>.</para>
 
1790
         </listitem>
 
1791
        </varlistentry>
 
1792
 
 
1793
        <varlistentry>
 
1794
         <term><anchor id="gel-function-IsBoolean"/>IsBoolean</term>
 
1795
         <listitem>
 
1796
          <synopsis>IsBoolean (param)</synopsis>
 
1797
          <para>Vérifie que l'argument est un booléen (et pas un nombre).</para>
 
1798
         </listitem>
 
1799
        </varlistentry>
 
1800
 
 
1801
        <varlistentry>
 
1802
         <term><anchor id="gel-function-IsDefined"/>IsDefined</term>
 
1803
         <listitem>
 
1804
          <synopsis>IsDefined (id)</synopsis>
 
1805
          <para>Vérifie qu'un identifiant est défini. Vous devez transmettre une chaîne de caractères ou un identifiant. Si vous transmettez une matrice, chaque entrée est évaluée séparément et la matrice doit contenir des chaînes ou des identifiants.</para>
 
1806
         </listitem>
 
1807
        </varlistentry>
 
1808
 
 
1809
        <varlistentry>
 
1810
         <term><anchor id="gel-function-IsFunction"/>IsFunction</term>
 
1811
         <listitem>
 
1812
          <synopsis>IsFunction (param)</synopsis>
 
1813
          <para>Vérifie que l'argument est une fonction.</para>
 
1814
         </listitem>
 
1815
        </varlistentry>
 
1816
 
 
1817
        <varlistentry>
 
1818
         <term><anchor id="gel-function-IsFunctionOrIdentifier"/>IsFunctionOrIdentifier</term>
 
1819
         <listitem>
 
1820
          <synopsis>IsFunctionOrIdentifier (param)</synopsis>
 
1821
          <para>Vérifie que l'argument est une fonction ou un identificateur.</para>
 
1822
         </listitem>
 
1823
        </varlistentry>
 
1824
 
 
1825
        <varlistentry>
 
1826
         <term><anchor id="gel-function-IsFunctionRef"/>IsFunctionRef</term>
 
1827
         <listitem>
 
1828
          <synopsis>IsFunctionRef (param)</synopsis>
 
1829
          <para>Vérifie que l'argument est une référence de fonction. Cela inclut les références de variable.</para>
 
1830
         </listitem>
 
1831
        </varlistentry>
 
1832
 
 
1833
        <varlistentry>
 
1834
         <term><anchor id="gel-function-IsMatrix"/>IsMatrix</term>
 
1835
         <listitem>
 
1836
          <synopsis>IsMatrix (param)</synopsis>
 
1837
          <para>Vérifie que l'argument est une matrice. Même si <constant>null</constant> est parfois considéré comme une matrice vide, la fonction <function>IsMatrix</function> ne considère pas <constant>null</constant> comme une matrice.</para>
 
1838
         </listitem>
 
1839
        </varlistentry>
 
1840
 
 
1841
        <varlistentry>
 
1842
         <term><anchor id="gel-function-IsNull"/>IsNull</term>
 
1843
         <listitem>
 
1844
          <synopsis>IsNull (param)</synopsis>
 
1845
          <para>Vérifie que l'argument est <constant>null</constant>.</para>
 
1846
         </listitem>
 
1847
        </varlistentry>
 
1848
 
 
1849
        <varlistentry>
 
1850
         <term><anchor id="gel-function-IsString"/>IsString</term>
 
1851
         <listitem>
 
1852
          <synopsis>IsString (param)</synopsis>
 
1853
          <para>Vérifie que l'argument est une chaîne de caractères.</para>
 
1854
         </listitem>
 
1855
        </varlistentry>
 
1856
 
 
1857
        <varlistentry>
 
1858
         <term><anchor id="gel-function-IsValue"/>IsValue</term>
 
1859
         <listitem>
 
1860
          <synopsis>IsValue (param)</synopsis>
 
1861
          <para>Vérifie que l'argument est un nombre.</para>
 
1862
         </listitem>
 
1863
        </varlistentry>
 
1864
 
 
1865
        <varlistentry>
 
1866
         <term><anchor id="gel-function-Parse"/>Parse</term>
 
1867
         <listitem>
 
1868
          <synopsis>Parse (chaîne)</synopsis>
 
1869
          <para>Analyse mais n'évalue pas une chaîne de caractères. Notez que certains pré-calculs sont effectués pendant l'étape d'évaluation.</para>
 
1870
         </listitem>
 
1871
        </varlistentry>
 
1872
 
 
1873
        <varlistentry>
 
1874
         <term><anchor id="gel-function-SetFunctionFlags"/>SetFunctionFlags</term>
 
1875
         <listitem>
 
1876
          <synopsis>SetFunctionFlags (id,drapeau...)</synopsis>
 
1877
          <para>Définit des drapeaux pour une fonction, actuellement <literal>« PropagateMod »</literal> et <literal>« NoModuloArguments »</literal>. Si <literal>« PropagateMod »</literal> est défini alors le corps de la fonction est évalué en arithmétique modulaire lorsque la fonction est appelée à l'intérieur d'un bloc qui est évalué en utilisant l'arithmétique modulaire (en utilisant <literal>mod</literal>). Si <literal>« NoModuloArguments »</literal> est défini alors les arguments de la fonction ne sont jamais évalués en arithmétique modulaire.</para>
 
1878
         </listitem>
 
1879
        </varlistentry>
 
1880
 
 
1881
        <varlistentry>
 
1882
         <term><anchor id="gel-function-SetHelp"/>SetHelp</term>
 
1883
         <listitem>
 
1884
          <synopsis>SetHelp (id,categorie,desc)</synopsis>
 
1885
          <para>Définit une catégorie et une ligne de description d'aide pour une fonction.</para>
 
1886
         </listitem>
 
1887
        </varlistentry>
 
1888
 
 
1889
        <varlistentry>
 
1890
         <term><anchor id="gel-function-SetHelpAlias"/>SetHelpAlias</term>
 
1891
         <listitem>
 
1892
          <synopsis>SetHelpAlias (id,alias)</synopsis>
 
1893
          <para>Met en place un pseudonyme pour l'aide.</para>
 
1894
         </listitem>
 
1895
        </varlistentry>
 
1896
 
 
1897
        <varlistentry>
 
1898
         <term><anchor id="gel-function-chdir"/>chdir</term>
 
1899
         <listitem>
 
1900
          <synopsis>chdir (rep)</synopsis>
 
1901
          <para>Change le répertoire actuel, tout comme la commande <command>cd</command>.</para>
 
1902
         </listitem>
 
1903
        </varlistentry>
 
1904
 
 
1905
        <varlistentry>
 
1906
         <term><anchor id="gel-function-CurrentTime"/>CurrentTime</term>
 
1907
         <listitem>
 
1908
          <synopsis>CurrentTime</synopsis>
 
1909
          <para>Renvoie l'heure UNIX courante avec une précision de l'ordre de la microseconde sous forme d'un nombre à virgule flottante, c'est-à-dire le nombre de secondes écoulées depuis le 1er janvier 1970.</para>
 
1910
         </listitem>
 
1911
        </varlistentry>
 
1912
 
 
1913
        <varlistentry>
 
1914
         <term><anchor id="gel-function-display"/>display</term>
 
1915
         <listitem>
 
1916
          <synopsis>display (chaîne,expr)</synopsis>
 
1917
          <para>Affiche une chaîne de caractères et une expression séparées par deux points.</para>
 
1918
         </listitem>
 
1919
        </varlistentry>
 
1920
 
 
1921
        <varlistentry>
 
1922
         <term><anchor id="gel-function-error"/>error</term>
 
1923
         <listitem>
 
1924
          <synopsis>error (chaîne)</synopsis>
 
1925
          <para>Affiche une chaîne vers la sortie erreur (dans la console).</para>
 
1926
         </listitem>
 
1927
        </varlistentry>
 
1928
 
 
1929
        <varlistentry>
 
1930
         <term><anchor id="gel-function-exit"/>exit</term>
 
1931
         <listitem>
 
1932
          <synopsis>exit</synopsis>
 
1933
          <para>Alias : <function>quit</function></para>
 
1934
          <para>Quitte le programme.</para>
 
1935
         </listitem>
 
1936
        </varlistentry>
 
1937
 
 
1938
        <varlistentry>
 
1939
         <term><anchor id="gel-function-false"/>false</term>
 
1940
         <listitem>
 
1941
          <synopsis>false</synopsis>
 
1942
          <para>Alias : <function>False</function>, <function>FALSE</function></para>
 
1943
          <para>La valeur booléenne <constant>false</constant> (faux).</para>
 
1944
         </listitem>
 
1945
        </varlistentry>
 
1946
 
 
1947
        <varlistentry>
 
1948
         <term><anchor id="gel-function-manual"/>manual</term>
 
1949
         <listitem>
 
1950
          <synopsis>manual</synopsis>
 
1951
          <para>Affiche le manuel utilisateur.</para>
 
1952
         </listitem>
 
1953
        </varlistentry>
 
1954
 
 
1955
        <varlistentry>
 
1956
         <term><anchor id="gel-function-print"/>print</term>
 
1957
         <listitem>
 
1958
          <synopsis>print (chaîne)</synopsis>
 
1959
          <para>Affiche une expression suivie d'un retour à la ligne. L'argument <varname>chaine</varname> peut être n'importe quelle expression. Elle est transformée en chaîne avant d'être affichée.</para>
 
1960
         </listitem>
 
1961
        </varlistentry>
 
1962
 
 
1963
        <varlistentry>
 
1964
         <term><anchor id="gel-function-printn"/>printn</term>
 
1965
         <listitem>
 
1966
          <synopsis>printn (chaîne)</synopsis>
 
1967
          <para>Affiche une expression non suivie d'un retour à la ligne. L'argument <varname>chaine</varname> peut être n'importe quelle expression. Elle est transformée en chaîne avant d'être affichée.</para>
 
1968
         </listitem>
 
1969
        </varlistentry>
 
1970
 
 
1971
        <varlistentry>
 
1972
         <term><anchor id="gel-function-protect"/>protect</term>
 
1973
         <listitem>
 
1974
          <synopsis>protect (id)</synopsis>
 
1975
          <para>Protège une variable de la modification. C'est utilisé dans les fonctions internes de GEL pour leur éviter d'être accidentellement écrasées.</para>
 
1976
         </listitem>
 
1977
        </varlistentry>
 
1978
 
 
1979
        <varlistentry>
 
1980
         <term><anchor id="gel-function-ProtectAll"/>ProtectAll</term>
 
1981
         <listitem>
 
1982
          <synopsis>ProtectAll ()</synopsis>
 
1983
          <para>Protège toutes les variables, paramètres et fonctions actuellement définis de la modification. C'est utilisé dans les fonctions internes de GEL pour leur éviter d'être accidentellement écrasées. Normalement l'<application>Outil de maths Genius</application> considère que les variables non protégées sont définies par l'utilisateur.</para>
 
1984
         </listitem>
 
1985
        </varlistentry>
 
1986
 
 
1987
        <varlistentry>
 
1988
         <term><anchor id="gel-function-set"/>set</term>
 
1989
         <listitem>
 
1990
          <synopsis>set (id,val)</synopsis>
 
1991
          <para>Définit une variable globale. L'<varname>identifiant</varname> (id) peut être soit une chaîne de caractères, soit un identifiant précédé d'une apostrophe comme ci-dessous. Par exemple : <programlisting>set(`x,1)
 
1992
            </programlisting> définit la variable globale <varname>x</varname> à 1.</para>
 
1993
         </listitem>
 
1994
        </varlistentry>
 
1995
 
 
1996
        <varlistentry>
 
1997
         <term><anchor id="gel-function-string"/>string</term>
 
1998
         <listitem>
 
1999
          <synopsis>string (s)</synopsis>
 
2000
          <para>Crée une chaîne de caractères à partir de n'importe quel argument.</para>
 
2001
         </listitem>
 
2002
        </varlistentry>
 
2003
 
 
2004
        <varlistentry>
 
2005
         <term><anchor id="gel-function-true"/>true</term>
 
2006
         <listitem>
 
2007
          <synopsis>true</synopsis>
 
2008
          <para>Alias : <function>True</function>, <function>TRUE</function></para>
 
2009
          <para>La valeur booléenne <constant>true</constant> (vrai).</para>
 
2010
         </listitem>
 
2011
        </varlistentry>
 
2012
 
 
2013
        <varlistentry>
 
2014
         <term><anchor id="gel-function-undefine"/>undefine</term>
 
2015
         <listitem>
 
2016
          <synopsis>undefine (id)</synopsis>
 
2017
          <para>Alias : <function>Undefine</function></para>
 
2018
          <para>Annule la définition d'une variable, y compris les variables locales et globales, toutes les valeurs dans tous les contextes sont effacées. Vous ne devriez vraiment pas utiliser cette fonction pour des variables locales. Un vecteur d'identifiants peut également être transmis pour annuler la définition de plusieurs variables.</para>
 
2019
         </listitem>
 
2020
        </varlistentry>
 
2021
 
 
2022
        <varlistentry>
 
2023
         <term><anchor id="gel-function-UndefineAll"/>UndefineAll</term>
 
2024
         <listitem>
 
2025
          <synopsis>UndefineAll ()</synopsis>
 
2026
          <para>Annule la définition de toutes les variables globales non protégées (y compris les fonctions et les paramètres). Normalement l'<application>Outil de maths Genius</application> considère que les variables protégées sont des variables et des fonctions définies par le système. Notez que <function>UndefineAll</function> efface seulement la définition globale des symboles et pas les définitions locales donc cela peut être utilisé à l'intérieur d'autres fonctions sans danger.</para>
 
2027
         </listitem>
 
2028
        </varlistentry>
 
2029
 
 
2030
        <varlistentry>
 
2031
         <term><anchor id="gel-function-unprotect"/>unprotect</term>
 
2032
         <listitem>
 
2033
          <synopsis>unprotect (id)</synopsis>
 
2034
          <para>Annule la protection d'une variable contre sa modification.</para>
 
2035
         </listitem>
 
2036
        </varlistentry>
 
2037
 
 
2038
        <varlistentry>
 
2039
         <term><anchor id="gel-function-UserVariables"/>UserVariables</term>
 
2040
         <listitem>
 
2041
          <synopsis>UserVariables ()</synopsis>
 
2042
          <para>Renvoie un vecteur d'identifiants des variables globales définies par l'utilisateur (non protégées).</para>
 
2043
         </listitem>
 
2044
        </varlistentry>
 
2045
 
 
2046
        <varlistentry>
 
2047
         <term><anchor id="gel-function-wait"/>wait</term>
 
2048
         <listitem>
 
2049
          <synopsis>wait (secs)</synopsis>
 
2050
          <para>Attend un nombre spécifié de secondes. <varname>secs</varname> ne doit pas être négatif. Zéro est accepté et rien ne se passe dans ce cas mis à part, peut-être, le traitement d'évènements de l'interface utilisateur.</para>
 
2051
         </listitem>
 
2052
        </varlistentry>
 
2053
 
 
2054
        <varlistentry>
 
2055
         <term><anchor id="gel-function-version"/>version</term>
 
2056
         <listitem>
 
2057
          <synopsis>version</synopsis>
 
2058
          <para>Renvoie la version de Genius sous la forme d'un vecteur horizontal à 3 valeurs : en premier la version majeure, puis la version mineure et enfin le niveau de correction.</para>
 
2059
         </listitem>
 
2060
        </varlistentry>
 
2061
 
 
2062
        <varlistentry>
 
2063
         <term><anchor id="gel-function-warranty"/>warranty</term>
 
2064
         <listitem>
 
2065
          <synopsis>warranty</synopsis>
 
2066
          <para>Renvoie les informations sur la garantie.</para>
 
2067
         </listitem>
 
2068
        </varlistentry>
 
2069
      </variablelist>
 
2070
 
 
2071
    </sect1>
 
2072
 
 
2073
    <sect1 id="genius-gel-function-parameters">
 
2074
      <title>Paramètres</title>
 
2075
      <variablelist>
 
2076
        <varlistentry>
 
2077
         <term><anchor id="gel-function-ChopTolerance"/>ChopTolerance</term>
 
2078
         <listitem>
 
2079
          <synopsis>ChopTolerance = nombre</synopsis>
 
2080
          <para>Tolérance pour la fonction <function>Chop</function>.</para>
 
2081
         </listitem>
 
2082
        </varlistentry>
 
2083
 
 
2084
        <varlistentry>
 
2085
         <term><anchor id="gel-function-ContinuousNumberOfTries"/>ContinuousNumberOfTries</term>
 
2086
         <listitem>
 
2087
          <synopsis>ContinuousNumberOfTries = nombre</synopsis>
 
2088
          <para>Nombre d'itérations à essayer pour rechercher la continuité et les limites d'une fonction.</para>
 
2089
         </listitem>
 
2090
        </varlistentry>
 
2091
 
 
2092
        <varlistentry>
 
2093
         <term><anchor id="gel-function-ContinuousSFS"/>ContinuousSFS</term>
 
2094
         <listitem>
 
2095
          <synopsis>ContinuousSFS = nombre</synopsis>
 
2096
          <para>Nombre d'étapes successives pour atteindre la tolérance pour le calcul de la continuité.</para>
 
2097
         </listitem>
 
2098
        </varlistentry>
 
2099
 
 
2100
        <varlistentry>
 
2101
         <term><anchor id="gel-function-ContinuousTolerance"/>ContinuousTolerance</term>
 
2102
         <listitem>
 
2103
          <synopsis>ContinuousTolerance = nombre</synopsis>
 
2104
          <para>Tolérance pour la continuité d'une fonction et pour le calcul de la limite.</para>
 
2105
         </listitem>
 
2106
        </varlistentry>
 
2107
 
 
2108
        <varlistentry>
 
2109
         <term><anchor id="gel-function-DerivativeNumberOfTries"/>DerivativeNumberOfTries</term>
 
2110
         <listitem>
 
2111
          <synopsis>DerivativeNumberOfTries = nombre</synopsis>
 
2112
          <para>Nombre d'itérations à essayer pour trouver la limite pour la dérivée.</para>
 
2113
         </listitem>
 
2114
        </varlistentry>
 
2115
 
 
2116
        <varlistentry>
 
2117
         <term><anchor id="gel-function-DerivativeSFS"/>DerivativeSFS</term>
 
2118
         <listitem>
 
2119
          <synopsis>DerivativeSFS = nombre</synopsis>
 
2120
          <para>Nombre d'étapes successives pour atteindre la tolérance pour le calcul de la dérivée.</para>
 
2121
         </listitem>
 
2122
        </varlistentry>
 
2123
 
 
2124
        <varlistentry>
 
2125
         <term><anchor id="gel-function-DerivativeTolerance"/>DerivativeTolerance</term>
 
2126
         <listitem>
 
2127
          <synopsis>DerivativeTolerance = nombre</synopsis>
 
2128
          <para>Tolérance pour le calcul de la dérivée des fonctions.</para>
 
2129
         </listitem>
 
2130
        </varlistentry>
 
2131
 
 
2132
        <varlistentry>
 
2133
         <term><anchor id="gel-function-ErrorFunctionTolerance"/>ErrorFunctionTolerance</term>
 
2134
         <listitem>
 
2135
          <synopsis>ErrorFunctionTolerance = nombre</synopsis>
 
2136
          <para>Tolérance pour la fonction <function>ErrorFunction</function>.</para>
 
2137
         </listitem>
 
2138
        </varlistentry>
 
2139
 
 
2140
        <varlistentry>
 
2141
         <term><anchor id="gel-function-FloatPrecision"/>FloatPrecision</term>
 
2142
         <listitem>
 
2143
          <synopsis>FloatPrecision = nombre</synopsis>
 
2144
          <para>Précision en virgule flottante.</para>
 
2145
         </listitem>
 
2146
        </varlistentry>
 
2147
 
 
2148
        <varlistentry>
 
2149
         <term><anchor id="gel-function-FullExpressions"/>FullExpressions</term>
 
2150
         <listitem>
 
2151
          <synopsis>FullExpressions = booléen</synopsis>
 
2152
          <para>Affiche les expressions complètes, même celles de plus d'une ligne.</para>
 
2153
         </listitem>
 
2154
        </varlistentry>
 
2155
 
 
2156
        <varlistentry>
 
2157
         <term><anchor id="gel-function-GaussDistributionTolerance"/>GaussDistributionTolerance</term>
 
2158
         <listitem>
 
2159
          <synopsis>GaussDistributionTolerance = nombre</synopsis>
 
2160
          <para>Tolérance pour la fonction <function>GaussDistribution</function>.</para>
 
2161
         </listitem>
 
2162
        </varlistentry>
 
2163
 
 
2164
        <varlistentry>
 
2165
         <term><anchor id="gel-function-IntegerOutputBase"/>IntegerOutputBase</term>
 
2166
         <listitem>
 
2167
          <synopsis>IntegerOutputBase = nombre</synopsis>
 
2168
          <para>Base de sortie pour les entiers.</para>
 
2169
         </listitem>
 
2170
        </varlistentry>
 
2171
 
 
2172
        <varlistentry>
 
2173
         <term><anchor id="gel-function-IsPrimeMillerRabinReps"/>IsPrimeMillerRabinReps</term>
 
2174
         <listitem>
 
2175
          <synopsis>IsPrimeMillerRabinReps = nombre</synopsis>
 
2176
          <para>Nombre de tests supplémentaires de Miller-Rabin à lancer sur un nombre avant de le déclarer comme premier dans <function>IsPrime</function>.</para>
 
2177
         </listitem>
 
2178
        </varlistentry>
 
2179
 
 
2180
        <varlistentry>
 
2181
         <term><anchor id="gel-function-LinePlotDrawLegends"/>LinePlotDrawLegends</term>
 
2182
         <listitem>
 
2183
          <synopsis>LinePlotDrawLegends = true</synopsis>
 
2184
          <para>Indique à genius de tracer les légendes pour les <link linkend="genius-gel-function-list-plotting">fonctions de tracé de graphiques</link> telles que <link linkend="gel-function-LinePlot"><function>LinePlot</function></link>.</para>
 
2185
         </listitem>
 
2186
        </varlistentry>
 
2187
 
 
2188
        <varlistentry>
 
2189
         <term><anchor id="gel-function-LinePlotDrawAxisLabels"/>LinePlotDrawAxisLabels</term>
 
2190
         <listitem>
 
2191
          <synopsis>LinePlotDrawAxisLabels = true</synopsis>
 
2192
          <para>Tells genius to draw the axis labels for <link linkend="genius-gel-function-list-plotting">line plotting
 
2193
          functions</link> such as <link linkend="gel-function-LinePlot"><function>LinePlot</function></link>.
 
2194
          </para>
 
2195
         </listitem>
 
2196
        </varlistentry>
 
2197
 
 
2198
        <varlistentry>
 
2199
         <term><anchor id="gel-function-LinePlotVariableNames"/>LinePlotVariableNames</term>
 
2200
         <listitem>
 
2201
          <synopsis>LinePlotVariableNames = ["x","y","z","t"]</synopsis>
 
2202
          <para>Indique à Genius les noms des variables utilisés pour les <link linkend="genius-gel-function-list-plotting">fonctions de tracé de graphiques</link> telles que <link linkend="gel-function-LinePlot"><function>LinePlot</function></link> et autres.</para>
 
2203
         </listitem>
 
2204
        </varlistentry>
 
2205
 
 
2206
        <varlistentry>
 
2207
         <term><anchor id="gel-function-LinePlotWindow"/>LinePlotWindow</term>
 
2208
         <listitem>
 
2209
          <synopsis>LinePlotWindow = [x1,x2,y1,y2]</synopsis>
 
2210
          <para>Définit les limites pour les <link linkend="genius-gel-function-list-plotting">fonctions de tracé de graphiques</link> telles que <link linkend="gel-function-LinePlot"><function>LinePlot</function></link>.</para>
 
2211
         </listitem>
 
2212
        </varlistentry>
 
2213
 
 
2214
 
 
2215
        <varlistentry>
 
2216
         <term><anchor id="gel-function-MaxDigits"/>MaxDigits</term>
 
2217
         <listitem>
 
2218
          <synopsis>MaxDigits = nombre</synopsis>
 
2219
          <para>Nombre maximum de chiffres à afficher.</para>
 
2220
         </listitem>
 
2221
        </varlistentry>
 
2222
 
 
2223
        <varlistentry>
 
2224
         <term><anchor id="gel-function-MaxErrors"/>MaxErrors</term>
 
2225
         <listitem>
 
2226
          <synopsis>MaxErrors = nombre</synopsis>
 
2227
          <para>Nombre maximum d'erreurs à afficher.</para>
 
2228
         </listitem>
 
2229
        </varlistentry>
 
2230
 
 
2231
        <varlistentry>
 
2232
         <term><anchor id="gel-function-MixedFractions"/>MixedFractions</term>
 
2233
         <listitem>
 
2234
          <synopsis>MixedFractions = booléen</synopsis>
 
2235
          <para>Si vrai, les fractions mixtes sont affichées.</para>
 
2236
         </listitem>
 
2237
        </varlistentry>
 
2238
 
 
2239
        <varlistentry>
 
2240
         <term><anchor id="gel-function-NumericalIntegralFunction"/>NumericalIntegralFunction</term>
 
2241
         <listitem>
 
2242
          <synopsis>NumericalIntegralFunction = fonction</synopsis>
 
2243
          <para>Fonction utilisée pour l'intégration numérique dans la fonction <function>NumericalIntegral</function>.</para>
 
2244
         </listitem>
 
2245
        </varlistentry>
 
2246
 
 
2247
        <varlistentry>
 
2248
         <term><anchor id="gel-function-NumericalIntegralSteps"/>NumericalIntegralSteps</term>
 
2249
         <listitem>
 
2250
          <synopsis>NumericalIntegralSteps = nombre</synopsis>
 
2251
          <para>Nombre d'étapes à réaliser pour la fonction <function>NumericalIntegral</function>.</para>
 
2252
         </listitem>
 
2253
        </varlistentry>
 
2254
 
 
2255
        <varlistentry>
 
2256
         <term><anchor id="gel-function-OutputChopExponent"/>OutputChopExponent</term>
 
2257
         <listitem>
 
2258
          <synopsis>OutputChopExponent = nombre</synopsis>
 
2259
          <para>Lorsqu'un autre nombre dans l'objet qui est affiché (une matrice ou une valeur) est plus grand que 10<superscript>-OutputChopWhenExponent</superscript> et que le nombre actuellement affiché est inférieur à 10<superscript>-OutputChopExponent</superscript> alors afficher <computeroutput>0.0</computeroutput> au lieu du nombre.</para>
 
2260
<para>La sortie n'est jamais tronquée si <function>OutputChopExponent</function> vaut zéro. Cela doit être un nombre entier positif.</para>
 
2261
<para>Si vous voulez toujours que la sortie soit tronquée selon <function>OutputChopExponent</function> alors définissez <function>OutputChopWhenExponent</function> à quelque chose de supérieur ou égal à <function>OutputChopExponent</function>.</para>
 
2262
         </listitem>
 
2263
        </varlistentry>
 
2264
 
 
2265
        <varlistentry>
 
2266
         <term><anchor id="gel-function-OutputChopWhenExponent"/>OutputChopWhenExponent</term>
 
2267
         <listitem>
 
2268
          <synopsis>OutputChopWhenExponent = nombre</synopsis>
 
2269
          <para>Définit quand la sortie est tronquée. Consultez <link linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>.</para>
 
2270
         </listitem>
 
2271
        </varlistentry>
 
2272
 
 
2273
        <varlistentry>
 
2274
         <term><anchor id="gel-function-OutputStyle"/>OutputStyle</term>
 
2275
         <listitem>
 
2276
          <synopsis>OutputStyle = chaîne</synopsis>
 
2277
          <para>Style des affichages, cela peut être <literal>normal</literal>, <literal>latex</literal>, <literal>mathml</literal> ou <literal>troff</literal>.</para>
 
2278
          <para>Cela affecte principalement la façon dont les matrices et les fractions sont affichées et est utile pour le copier/coller vers des documents. Par exemple, vous pouvez définir ce paramètre à « latex » par : <programlisting>OutputStyle = "latex"
 
2279
</programlisting></para>
 
2280
         </listitem>
 
2281
        </varlistentry>
 
2282
 
 
2283
        <varlistentry>
 
2284
         <term><anchor id="gel-function-ResultsAsFloats"/>ResultsAsFloats</term>
 
2285
         <listitem>
 
2286
          <synopsis>ResultsAsFloats = booléen</synopsis>
 
2287
          <para>Convertit tous les résultats en nombres flottants avant de les afficher.</para>
 
2288
         </listitem>
 
2289
        </varlistentry>
 
2290
 
 
2291
        <varlistentry>
 
2292
         <term><anchor id="gel-function-ScientificNotation"/>ScientificNotation</term>
 
2293
         <listitem>
 
2294
          <synopsis>ScientificNotation = booléen</synopsis>
 
2295
          <para>Utilise la notation scientifique.</para>
 
2296
         </listitem>
 
2297
        </varlistentry>
 
2298
 
 
2299
        <varlistentry>
 
2300
         <term><anchor id="gel-function-SlopefieldTicks"/>SlopefieldTicks</term>
 
2301
         <listitem>
 
2302
          <synopsis>SlopefieldTicks = [verticale,horizontale]</synopsis>
 
2303
          <para>Définit le nombre de petits traits verticaux et horizontaux dans un graphique de champ de tangente (consultez <link linkend="gel-function-SlopefieldPlot"><function>SlopefieldPlot</function></link>).</para>
 
2304
         </listitem>
 
2305
        </varlistentry>
 
2306
 
 
2307
        <varlistentry>
 
2308
         <term><anchor id="gel-function-SumProductNumberOfTries"/>SumProductNumberOfTries</term>
 
2309
         <listitem>
 
2310
          <synopsis>SumProductNumberOfTries = nombre</synopsis>
 
2311
          <para>Nombre d'itérations à essayer pour les fonctions <function>InfiniteSum</function> et <function>InfiniteProduct</function>.</para>
 
2312
         </listitem>
 
2313
        </varlistentry>
 
2314
 
 
2315
        <varlistentry>
 
2316
         <term><anchor id="gel-function-SumProductSFS"/>SumProductSFS</term>
 
2317
         <listitem>
 
2318
          <synopsis>SumProductSFS = nombre</synopsis>
 
2319
          <para>Nombre d'étapes successives pour atteindre la tolérance pour les fonctions <function>InfiniteSum</function> et <function>InfiniteProduct</function>.</para>
 
2320
         </listitem>
 
2321
        </varlistentry>
 
2322
 
 
2323
        <varlistentry>
 
2324
         <term><anchor id="gel-function-SumProductTolerance"/>SumProductTolerance</term>
 
2325
         <listitem>
 
2326
          <synopsis>SumProductTolerance = nombre</synopsis>
 
2327
          <para>Tolérance pour les fonctions <function>InfiniteSum</function> et <function>InfiniteProduct</function>.</para>
 
2328
         </listitem>
 
2329
        </varlistentry>
 
2330
 
 
2331
        <varlistentry>
 
2332
         <term><anchor id="gel-function-SurfacePlotDrawLegends"/>SurfacePlotDrawLegends</term>
 
2333
         <listitem>
 
2334
          <synopsis>SurfacePlotDrawLegends = true</synopsis>
 
2335
          <para>Tells genius to draw the legends for <link linkend="genius-gel-function-list-plotting">surface plotting
 
2336
          functions</link> such as <link linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>.
 
2337
          </para>
 
2338
         </listitem>
 
2339
        </varlistentry>
 
2340
 
 
2341
        <varlistentry>
 
2342
         <term><anchor id="gel-function-SurfacePlotVariableNames"/>SurfacePlotVariableNames</term>
 
2343
         <listitem>
 
2344
          <synopsis>SurfacePlotVariableNames = ["x","y","z"]</synopsis>
 
2345
          <para>Indique à Genius les noms de variables à utiliser comme noms par défaut pour les <link linkend="genius-gel-function-list-plotting">fonctions de tracé de surface</link> utilisant <link linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>. Notez que le <varname>z</varname> ne fait pas référence à l'axe dépendant (vertical) mais à la variable complexe z indépendante <userinput>z=x+iy</userinput>.</para>
 
2346
         </listitem>
 
2347
        </varlistentry>
 
2348
 
 
2349
        <varlistentry>
 
2350
         <term><anchor id="gel-function-SurfacePlotWindow"/>SurfacePlotWindow</term>
 
2351
         <listitem>
 
2352
          <synopsis>SurfacePlotWindow = [x1,x2,y1,y2,z1,z2]</synopsis>
 
2353
          <para>Définit les limites pour les tracés de surface (consultez <link linkend="gel-function-SurfacePlot"><function>SurfacePlot</function></link>).</para>
 
2354
         </listitem>
 
2355
        </varlistentry>
 
2356
 
 
2357
        <varlistentry>
 
2358
         <term><anchor id="gel-function-VectorfieldNormalized"/>VectorfieldNormalized</term>
 
2359
         <listitem>
 
2360
          <synopsis>VectorfieldNormalized = true</synopsis>
 
2361
          <para>Indique si les longueurs de flèches du tracé de champ de vecteurs doivent être normalisées. Si true (vrai), les tracés de champ de vecteurs n'affichent que la direction et pas l'amplitude (consultez <link linkend="gel-function-VectorfieldPlot"><function>VectorfieldPlot</function></link>).</para>
 
2362
         </listitem>
 
2363
        </varlistentry>
 
2364
 
 
2365
        <varlistentry>
 
2366
         <term><anchor id="gel-function-VectorfieldTicks"/>VectorfieldTicks</term>
 
2367
         <listitem>
 
2368
          <synopsis>VectorfieldTicks = [verticale,horizontale]</synopsis>
 
2369
          <para>Définit le nombre de petits traits verticaux et horizontaux dans un graphique de champ de vecteurs (consultez <link linkend="gel-function-SlopefieldPlot"><function>VectorfieldPlot</function></link>).</para>
 
2370
         </listitem>
 
2371
        </varlistentry>
 
2372
 
 
2373
      </variablelist>
 
2374
    </sect1>
 
2375
 
 
2376
    <sect1 id="genius-gel-function-list-constants">
 
2377
      <title>Constantes</title>
 
2378
      <variablelist>
 
2379
        <varlistentry>
 
2380
         <term><anchor id="gel-function-CatalanConstant"/>CatalanConstant</term>
 
2381
         <listitem>
 
2382
          <synopsis>CatalanConstant</synopsis>
 
2383
          <para>Constante de Catalan, approximativement 0,915..., elle est définie comme la série des termes <userinput>(-1^k)/((2*k+1)^2)</userinput> où <varname>k</varname> va de 0 à l'infini.</para>
 
2384
          <para>Consultez <ulink url="http://mathworld.wolfram.com/CatalansConstant.html">Mathworld</ulink> pour plus d'informations.</para>
 
2385
         </listitem>
 
2386
        </varlistentry>
 
2387
 
 
2388
        <varlistentry>
 
2389
         <term><anchor id="gel-function-EulerConstant"/>EulerConstant</term>
 
2390
         <listitem>
 
2391
          <synopsis>EulerConstant</synopsis>
 
2392
          <para>Alias : <function>gamma</function></para>
 
2393
          <para>Constante d'Euler gamma, parfois appelée la constante d'Euler-Mascheroni.</para>
 
2394
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Constante_d%27Euler-Mascheroni">Wikipedia</ulink> ou <ulink url="http://planetmath.org/encyclopedia/MascheroniConstant.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/Euler-MascheroniConstant.html">Mathworld</ulink> pour plus d'informations.</para>
 
2395
         </listitem>
 
2396
        </varlistentry>
 
2397
 
 
2398
        <varlistentry>
 
2399
         <term><anchor id="gel-function-GoldenRatio"/>GoldenRatio</term>
 
2400
         <listitem>
 
2401
          <synopsis>GoldenRatio</synopsis>
 
2402
          <para>Le nombre d'or.</para>
 
2403
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Nombre_d%27or">Wikipedia</ulink> ou <ulink url="http://planetmath.org/encyclopedia/GoldenRatio.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/GoldenRatio.html">Mathworld</ulink> pour plus d'informations.</para>
 
2404
         </listitem>
 
2405
        </varlistentry>
 
2406
 
 
2407
        <varlistentry>
 
2408
         <term><anchor id="gel-function-Gravity"/>Gravity</term>
 
2409
         <listitem>
 
2410
          <synopsis>Gravity</synopsis>
 
2411
          <para>Accélération de la chute libre au niveau de la mer.</para>
 
2412
          <para>Consultez <ulink url="http://en.wikipedia.org/wiki/Standard_gravity">Wikipedia</ulink> pour plus d'informations.</para>
 
2413
         </listitem>
 
2414
        </varlistentry>
 
2415
 
 
2416
        <varlistentry>
 
2417
         <term><anchor id="gel-function-e"/>e</term>
 
2418
         <listitem>
 
2419
          <synopsis>e</synopsis>
 
2420
          <para>La base du logarithme naturel. <userinput>e^x</userinput> est la fonction exponentielle <link linkend="gel-function-exp"><function>exp</function></link>. C'est approximativement le nombre 2.71828182846...</para>
 
2421
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/E_%28nombre%29">Wikipedia</ulink> ou <ulink url="http://planetmath.org/encyclopedia/E.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/e.html">Mathworld</ulink> pour plus d'informations.</para>
 
2422
         </listitem>
 
2423
        </varlistentry>
 
2424
 
 
2425
        <varlistentry>
 
2426
         <term><anchor id="gel-function-pi"/>pi</term>
 
2427
         <listitem>
 
2428
          <synopsis>pi</synopsis>
 
2429
          <para>Le nombre pi, c'est-à-dire le rapport de la circonférence d'un cercle sur son diamètre. Il vaut approximativement 3.14159265359...</para>
 
2430
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Pi">Wikipedia</ulink> ou <ulink url="http://planetmath.org/encyclopedia/Pi.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/Pi.html">Mathworld</ulink> pour plus d'informations.</para>
 
2431
         </listitem>
 
2432
        </varlistentry>
 
2433
 
 
2434
      </variablelist>
 
2435
    </sect1>
 
2436
 
 
2437
    <sect1 id="genius-gel-function-list-numeric">
 
2438
      <title>Nombres</title>
 
2439
      <variablelist>
 
2440
        <varlistentry>
 
2441
         <term><anchor id="gel-function-AbsoluteValue"/>AbsoluteValue</term>
 
2442
         <listitem>
 
2443
          <synopsis>AbsoluteValue (x)</synopsis>
 
2444
          <para>Alias : <function>abs</function></para>
 
2445
          <para>Valeur absolue d'un nombre et, si <varname>x</varname> est une grandeur complexe, le module de <varname>x</varname>, c'est-à-dire la distance de <varname>x</varname> à l'origine.</para>
 
2446
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Valeur_absolue">Wikipedia</ulink>, <ulink url="http://planetmath.org/encyclopedia/AbsoluteValue.html">Planetmath (valeur absolue)</ulink>, <ulink url="http://planetmath.org/encyclopedia/ModulusOfComplexNumber.html">Planetmath (module)</ulink>, <ulink url="http://mathworld.wolfram.com/AbsoluteValue.html">Mathworld (valeur absolue)</ulink> ou <ulink url="http://mathworld.wolfram.com/ComplexModulus.html">Mathworld (module complexe)</ulink> pour plus d'informations.</para>
 
2447
         </listitem>
 
2448
        </varlistentry>
 
2449
 
 
2450
        <varlistentry>
 
2451
         <term><anchor id="gel-function-Chop"/>Chop</term>
 
2452
         <listitem>
 
2453
          <synopsis>Chop (x)</synopsis>
 
2454
          <para>Remplace les très petits nombres par zéro.</para>
 
2455
         </listitem>
 
2456
        </varlistentry>
 
2457
 
 
2458
        <varlistentry>
 
2459
         <term><anchor id="gel-function-ComplexConjugate"/>ComplexConjugate</term>
 
2460
         <listitem>
 
2461
          <synopsis>ComplexConjugate (z)</synopsis>
 
2462
          <para>Alias : <function>conj</function> <function>Conj</function></para>
 
2463
          <para>Calcule le conjugué du nombre complexe <varname>z</varname>. Si <varname>z</varname> est un vecteur ou une matrice, tous les éléments sont conjugués.</para>
 
2464
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Conjugu%C3%A9">Wikipedia</ulink> pour plus d'informations.</para>
 
2465
         </listitem>
 
2466
        </varlistentry>
 
2467
 
 
2468
        <varlistentry>
 
2469
         <term><anchor id="gel-function-Denominator"/>Denominator</term>
 
2470
         <listitem>
 
2471
          <synopsis>Denominator (x)</synopsis>
 
2472
          <para>Renvoie le dénominateur d'un nombre rationnel.</para>
 
2473
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/D%C3%A9nominateurr">Wikipedia</ulink> pour plus d'informations.</para>
 
2474
         </listitem>
 
2475
        </varlistentry>
 
2476
 
 
2477
        <varlistentry>
 
2478
         <term><anchor id="gel-function-FractionalPart"/>FractionalPart</term>
 
2479
         <listitem>
 
2480
          <synopsis>FractionalPart (x)</synopsis>
 
2481
          <para>Renvoie la partie fractionnelle d'un nombre.</para>
 
2482
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Partie_fractionnaire">Wikipedia</ulink> pour plus d'informations.</para>
 
2483
         </listitem>
 
2484
        </varlistentry>
 
2485
 
 
2486
        <varlistentry>
 
2487
         <term><anchor id="gel-function-Im"/>Im</term>
 
2488
         <listitem>
 
2489
          <synopsis>Im (z)</synopsis>
 
2490
          <para>Alias : <function>ImaginaryPart</function></para>
 
2491
          <para>Renvoie la partie imaginaire d'un nombre complexe.</para>
 
2492
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Partie_imaginaire">Wikipedia</ulink> pour plus d'informations.</para>
 
2493
         </listitem>
 
2494
        </varlistentry>
 
2495
 
 
2496
        <varlistentry>
 
2497
         <term><anchor id="gel-function-IntegerQuotient"/>IntegerQuotient</term>
 
2498
         <listitem>
 
2499
          <synopsis>IntegerQuotient (m,n)</synopsis>
 
2500
          <para>Division sans reste.</para>
 
2501
         </listitem>
 
2502
        </varlistentry>
 
2503
 
 
2504
        <varlistentry>
 
2505
         <term><anchor id="gel-function-IsComplex"/>IsComplex</term>
 
2506
         <listitem>
 
2507
          <synopsis>IsComplex (nbre)</synopsis>
 
2508
          <para>Vérifie si l'argument est un nombre complexe (non réel).</para>
 
2509
         </listitem>
 
2510
        </varlistentry>
 
2511
 
 
2512
        <varlistentry>
 
2513
         <term><anchor id="gel-function-IsComplexRational"/>IsComplexRational</term>
 
2514
         <listitem>
 
2515
          <synopsis>IsComplexRational (nbre)</synopsis>
 
2516
          <para>Vérifie si l'argument est potentiellement un nombre rationnel complexe. C'est-à-dire si la partie réelle et la partie imaginaire sont fournies sous la forme de nombres rationnels. Bien sûr, rationnel signifie simplement « non enregistré comme un nombre à virgule flottante ».</para>
 
2517
         </listitem>
 
2518
        </varlistentry>
 
2519
 
 
2520
        <varlistentry>
 
2521
         <term><anchor id="gel-function-IsFloat"/>IsFloat</term>
 
2522
         <listitem>
 
2523
          <synopsis>IsFloat (nbre)</synopsis>
 
2524
          <para>Vérifie si l'argument est un nombre flottant (non complexe).</para>
 
2525
         </listitem>
 
2526
        </varlistentry>
 
2527
 
 
2528
        <varlistentry>
 
2529
         <term><anchor id="gel-function-IsGaussInteger"/>IsGaussInteger</term>
 
2530
         <listitem>
 
2531
          <synopsis>IsGaussInteger (nbre)</synopsis>
 
2532
          <para>Alias : <function>IsComplexInteger</function></para>
 
2533
          <para>Vérifie si l'argument peut être un entier complexe.</para>
 
2534
         </listitem>
 
2535
        </varlistentry>
 
2536
 
 
2537
        <varlistentry>
 
2538
         <term><anchor id="gel-function-IsInteger"/>IsInteger</term>
 
2539
         <listitem>
 
2540
          <synopsis>IsInteger (nbre)</synopsis>
 
2541
          <para>Vérifie si l'argument est un entier (non complexe).</para>
 
2542
         </listitem>
 
2543
        </varlistentry>
 
2544
 
 
2545
        <varlistentry>
 
2546
         <term><anchor id="gel-function-IsNonNegativeInteger"/>IsNonNegativeInteger</term>
 
2547
         <listitem>
 
2548
          <synopsis>IsNonNegativeInteger (nbre)</synopsis>
 
2549
          <para>Vérifie si l'argument est un entier réel non négatif.</para>
 
2550
         </listitem>
 
2551
        </varlistentry>
 
2552
 
 
2553
        <varlistentry>
 
2554
         <term><anchor id="gel-function-IsPositiveInteger"/>IsPositiveInteger</term>
 
2555
         <listitem>
 
2556
          <synopsis>IsPositiveInteger (nbre)</synopsis>
 
2557
          <para>Alias : <function>IsNaturalNumber</function></para>
 
2558
          <para>Vérifie si l'argument est un entier réel positif. Notez que par convention 0 n'est pas un nombre naturel.</para>
 
2559
         </listitem>
 
2560
        </varlistentry>
 
2561
 
 
2562
        <varlistentry>
 
2563
         <term><anchor id="gel-function-IsRational"/>IsRational</term>
 
2564
         <listitem>
 
2565
          <synopsis>IsRational (nbre)</synopsis>
 
2566
          <para>Vérifie si l'argument est un nombre rationnel (non complexe). Bien sûr, rationnel signifie simplement « non enregistré comme un nombre à virgule flottante ».</para>
 
2567
         </listitem>
 
2568
        </varlistentry>
 
2569
 
 
2570
        <varlistentry>
 
2571
         <term><anchor id="gel-function-IsReal"/>IsReal</term>
 
2572
         <listitem>
 
2573
          <synopsis>IsReal (nbre)</synopsis>
 
2574
          <para>Vérifie si l'argument est un nombre réel.</para>
 
2575
         </listitem>
 
2576
        </varlistentry>
 
2577
 
 
2578
        <varlistentry>
 
2579
         <term><anchor id="gel-function-Numerator"/>Numerator</term>
 
2580
         <listitem>
 
2581
          <synopsis>Numerator (x)</synopsis>
 
2582
          <para>Renvoie le numérateur d'un nombre rationnel.</para>
 
2583
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Num%C3%A9rateur">Wikipedia</ulink> pour plus d'informations.</para>
 
2584
         </listitem>
 
2585
        </varlistentry>
 
2586
 
 
2587
        <varlistentry>
 
2588
         <term><anchor id="gel-function-Re"/>Re</term>
 
2589
         <listitem>
 
2590
          <synopsis>Re (z)</synopsis>
 
2591
          <para>Alias : <function>RealPart</function></para>
 
2592
          <para>Renvoie la partie réelle d'un nombre complexe.</para>
 
2593
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Partie_r%C3%A9elle">Wikipedia</ulink> pour plus d'informations.</para>
 
2594
         </listitem>
 
2595
        </varlistentry>
 
2596
 
 
2597
        <varlistentry>
 
2598
         <term><anchor id="gel-function-Sign"/>Sign</term>
 
2599
         <listitem>
 
2600
          <synopsis>Sign (x)</synopsis>
 
2601
          <para>Alias : <function>sign</function></para>
 
2602
          <para>Renvoie le signe d'un nombre. C'est-à-dire renvoie <literal>-1</literal> si la valeur est négative, <literal>0</literal> si la valeur est nulle et <literal>1</literal> si la valeur est positive. Si <varname>x</varname> est une grandeur complexe alors <function>Sign</function> renvoie la direction ou 0.</para>
 
2603
         </listitem>
 
2604
        </varlistentry>
 
2605
 
 
2606
        <varlistentry>
 
2607
         <term><anchor id="gel-function-ceil"/>ceil</term>
 
2608
         <listitem>
 
2609
          <synopsis>ceil (x)</synopsis>
 
2610
          <para>Alias : <function>Ceiling</function></para>
 
2611
          <para>Get the lowest integer more than or equal to <varname>n</varname>. Examples:
 
2612
          <screen><prompt>genius&gt;</prompt> <userinput>ceil(1.1)</userinput>
 
2613
= 2
 
2614
<prompt>genius&gt;</prompt> <userinput>ceil(-1.1)</userinput>
 
2615
= -1
 
2616
</screen>
 
2617
           </para>
 
2618
           <para>Note that you should be careful and notice that floating point
 
2619
                   numbers are stored an binary and so may not be what you
 
2620
                   expect.  For example <userinput>ceil(420/4.2)</userinput>
 
2621
                   returns 101 instead of the expected 100.  This is because
 
2622
                   4.2 is actually very slightly less than 4.2.  Use rational
 
2623
                   representation <userinput>42/10</userinput> if you want
 
2624
                   exact arithmetic.
 
2625
           </para>
 
2626
         </listitem>
 
2627
        </varlistentry>
 
2628
 
 
2629
        <varlistentry>
 
2630
         <term><anchor id="gel-function-exp"/>exp</term>
 
2631
         <listitem>
 
2632
          <synopsis>exp (x)</synopsis>
 
2633
          <para>La fonction exponentielle. C'est la fonction <userinput>e^x</userinput> où <varname>e</varname> est la <link linkend="gel-function-e">base du logarithme naturel</link>.</para>
 
2634
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Fonction_exponentielle">Wikipedia</ulink> ou <ulink url="http://planetmath.org/encyclopedia/LogarithmFunction.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/ExponentialFunction.html">Mathworld</ulink> pour plus d'informations.</para>
 
2635
         </listitem>
 
2636
        </varlistentry>
 
2637
 
 
2638
        <varlistentry>
 
2639
         <term><anchor id="gel-function-float"/>float</term>
 
2640
         <listitem>
 
2641
          <synopsis>float (x)</synopsis>
 
2642
          <para>Transforme le nombre en nombre à virgule flottante. C'est-à-dire la représentation à virgule flottante du nombre <varname>x</varname>.</para>
 
2643
         </listitem>
 
2644
        </varlistentry>
 
2645
 
 
2646
        <varlistentry>
 
2647
         <term><anchor id="gel-function-floor"/>floor</term>
 
2648
         <listitem>
 
2649
          <synopsis>floor (x)</synopsis>
 
2650
          <para>Alias : <function>Floor</function></para>
 
2651
          <para>Renvoie le plus grand entier inférieur ou égal à <varname>n</varname>.</para>
 
2652
         </listitem>
 
2653
        </varlistentry>
 
2654
 
 
2655
        <varlistentry>
 
2656
         <term><anchor id="gel-function-ln"/>ln</term>
 
2657
         <listitem>
 
2658
          <synopsis>ln (x)</synopsis>
 
2659
          <para>Le logarithme naturel, le logarithme de base <varname>e</varname>.</para>
 
2660
         </listitem>
 
2661
        </varlistentry>
 
2662
 
 
2663
        <varlistentry>
 
2664
         <term><anchor id="gel-function-log"/>log</term>
 
2665
         <listitem>
 
2666
          <synopsis>log (x)</synopsis>
 
2667
          <synopsis>log (x,b)</synopsis>
 
2668
          <para>Logarithme de <varname>x</varname> dans la base <varname>b</varname> (appelle la fonction <function>DiscreteLog</function> dans le mode modulo). Si la base n'est pas donnée, <varname>e</varname> est utilisée.</para>
 
2669
         </listitem>
 
2670
        </varlistentry>
 
2671
 
 
2672
        <varlistentry>
 
2673
         <term><anchor id="gel-function-log10"/>log10</term>
 
2674
         <listitem>
 
2675
          <synopsis>log10 (x)</synopsis>
 
2676
          <para>Logarithme base 10 de <varname>x</varname>.</para>
 
2677
         </listitem>
 
2678
        </varlistentry>
 
2679
 
 
2680
        <varlistentry>
 
2681
         <term><anchor id="gel-function-log2"/>log2</term>
 
2682
         <listitem>
 
2683
          <synopsis>log2 (x)</synopsis>
 
2684
          <para>Alias : <function>lg</function></para>
 
2685
          <para>Logarithme base 2 de <varname>x</varname>.</para>
 
2686
         </listitem>
 
2687
        </varlistentry>
 
2688
 
 
2689
        <varlistentry>
 
2690
         <term><anchor id="gel-function-max"/>max</term>
 
2691
         <listitem>
 
2692
          <synopsis>max (a,params...)</synopsis>
 
2693
          <para>Alias : <function>Max</function> <function>Maximum</function></para>
 
2694
          <para>Renvoie le maximum des arguments ou de la matrice.</para>
 
2695
         </listitem>
 
2696
        </varlistentry>
 
2697
 
 
2698
        <varlistentry>
 
2699
         <term><anchor id="gel-function-min"/>min</term>
 
2700
         <listitem>
 
2701
          <synopsis>min (a,params...)</synopsis>
 
2702
          <para>Alias : <function>Min</function> <function>Minimum</function></para>
 
2703
          <para>Renvoie le minimum des arguments ou de la matrice.</para>
 
2704
         </listitem>
 
2705
        </varlistentry>
 
2706
 
 
2707
        <varlistentry>
 
2708
         <term><anchor id="gel-function-rand"/>rand</term>
 
2709
         <listitem>
 
2710
          <synopsis>rand (taille...)</synopsis>
 
2711
          <para>Génère aléatoirement des nombres flottants dans l'intervalle <literal>[0,1)</literal>. Si taille est donnée alors une matrice (si deux nombres sont fournis) ou un vecteur (si un seul est fourni) de la taille indiquée est renvoyé.</para>
 
2712
         </listitem>
 
2713
        </varlistentry>
 
2714
 
 
2715
        <varlistentry>
 
2716
         <term><anchor id="gel-function-randint"/>randint</term>
 
2717
         <listitem>
 
2718
          <synopsis>randint (max,taille...)</synopsis>
 
2719
          <para>Génère aléatoirement des entiers dans l'intervalle <literal>[0,max)</literal>. Si taille est donné alors une matrice (si deux nombres sont fournis) ou un vecteur (si un seul est fourni) de la taille indiquée est renvoyé. Par exemple, <screen><prompt>genius&gt;</prompt> <userinput>randint(4)</userinput>
 
2720
= 3
 
2721
<prompt>genius&gt;</prompt> <userinput>randint(4,2)</userinput>
 
2722
=
 
2723
[0      1]
 
2724
<prompt>genius&gt;</prompt> <userinput>randint(4,2,3)</userinput>
 
2725
=
 
2726
[2      2       1
 
2727
 0      0       3]
 
2728
</screen></para>
 
2729
         </listitem>
 
2730
        </varlistentry>
 
2731
 
 
2732
        <varlistentry>
 
2733
         <term><anchor id="gel-function-round"/>round</term>
 
2734
         <listitem>
 
2735
          <synopsis>round (x)</synopsis>
 
2736
          <para>Alias : <function>Round</function></para>
 
2737
          <para>Arrondit un nombre.</para>
 
2738
         </listitem>
 
2739
        </varlistentry>
 
2740
 
 
2741
        <varlistentry>
 
2742
         <term><anchor id="gel-function-sqrt"/>sqrt</term>
 
2743
         <listitem>
 
2744
          <synopsis>sqrt (x)</synopsis>
 
2745
          <para>Alias : <function>SquareRoot</function></para>
 
2746
          <para>La racine carrée. Au cours de calculs en mode modulaire, certains entiers renvoient soit <constant>null</constant> ou un vecteur contenant les racines carrées. Exemples : <screen><prompt>genius&gt;</prompt> <userinput>sqrt(2)</userinput>
 
2747
= 1.41421356237
 
2748
<prompt>genius&gt;</prompt> <userinput>sqrt(-1)</userinput>
 
2749
= 1i
 
2750
<prompt>genius&gt;</prompt> <userinput>sqrt(4) mod 7</userinput>
 
2751
=
 
2752
[2      5]
 
2753
<prompt>genius&gt;</prompt> <userinput>2*2 mod 7</userinput>
 
2754
= 4
 
2755
</screen></para>
 
2756
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/SquareRoot.html">Planetmath</ulink> pour plus d'informations.</para>
 
2757
         </listitem>
 
2758
        </varlistentry>
 
2759
 
 
2760
        <varlistentry>
 
2761
         <term><anchor id="gel-function-trunc"/>trunc</term>
 
2762
         <listitem>
 
2763
          <synopsis>trunc (x)</synopsis>
 
2764
          <para>Alias : <function>Truncate</function><function>IntegerPart</function></para>
 
2765
          <para>Tronque le nombre à un entier (renvoie la partie entière).</para>
 
2766
         </listitem>
 
2767
        </varlistentry>
 
2768
 
 
2769
      </variablelist>
 
2770
    </sect1>
 
2771
 
 
2772
    <sect1 id="genius-gel-function-list-trigonometry">
 
2773
      <title>Trigonométrie</title>
 
2774
      <variablelist>
 
2775
        <varlistentry>
 
2776
         <term><anchor id="gel-function-acos"/>acos</term>
 
2777
         <listitem>
 
2778
          <synopsis>acos (x)</synopsis>
 
2779
          <para>Alias : <function>arccos</function></para>
 
2780
          <para>Fonction arccos (arc cosinus).</para>
 
2781
         </listitem>
 
2782
        </varlistentry>
 
2783
 
 
2784
        <varlistentry>
 
2785
         <term><anchor id="gel-function-acosh"/>acosh</term>
 
2786
         <listitem>
 
2787
          <synopsis>acosh (x)</synopsis>
 
2788
          <para>Alias : <function>arccosh</function></para>
 
2789
          <para>Fonction arccosh (cosinus hyperbolique inverse).</para>
 
2790
         </listitem>
 
2791
        </varlistentry>
 
2792
 
 
2793
        <varlistentry>
 
2794
         <term><anchor id="gel-function-acot"/>acot</term>
 
2795
         <listitem>
 
2796
          <synopsis>acot (x)</synopsis>
 
2797
          <para>Alias : <function>arccot</function></para>
 
2798
          <para>Fonction arccot (cotangente inverse).</para>
 
2799
         </listitem>
 
2800
        </varlistentry>
 
2801
 
 
2802
        <varlistentry>
 
2803
         <term><anchor id="gel-function-acoth"/>acoth</term>
 
2804
         <listitem>
 
2805
          <synopsis>acoth (x)</synopsis>
 
2806
          <para>Alias : <function>arccoth</function></para>
 
2807
          <para>Fonction arccoth (cotangente hyperbolique inverse).</para>
 
2808
         </listitem>
 
2809
        </varlistentry>
 
2810
 
 
2811
        <varlistentry>
 
2812
         <term><anchor id="gel-function-acsc"/>acsc</term>
 
2813
         <listitem>
 
2814
          <synopsis>acsc (x)</synopsis>
 
2815
          <para>Alias : <function>arccsc</function></para>
 
2816
          <para>Inverse de la fonction cosécante.</para>
 
2817
         </listitem>
 
2818
        </varlistentry>
 
2819
 
 
2820
        <varlistentry>
 
2821
         <term><anchor id="gel-function-acsch"/>acsch</term>
 
2822
         <listitem>
 
2823
          <synopsis>acsch (x)</synopsis>
 
2824
          <para>Alias : <function>arccsch</function></para>
 
2825
          <para>Inverse de la fonction cosécante hyperbolique.</para>
 
2826
         </listitem>
 
2827
        </varlistentry>
 
2828
 
 
2829
        <varlistentry>
 
2830
         <term><anchor id="gel-function-asec"/>asec</term>
 
2831
         <listitem>
 
2832
          <synopsis>asec (x)</synopsis>
 
2833
          <para>Alias : <function>arcsec</function></para>
 
2834
          <para>Inverse de la fonction sécante.</para>
 
2835
         </listitem>
 
2836
        </varlistentry>
 
2837
 
 
2838
        <varlistentry>
 
2839
         <term><anchor id="gel-function-asech"/>asech</term>
 
2840
         <listitem>
 
2841
          <synopsis>asech (x)</synopsis>
 
2842
          <para>Alias : <function>arcsech</function></para>
 
2843
          <para>Inverse de la fontion sécante hyperbolique.</para>
 
2844
         </listitem>
 
2845
        </varlistentry>
 
2846
 
 
2847
        <varlistentry>
 
2848
         <term><anchor id="gel-function-asin"/>asin</term>
 
2849
         <listitem>
 
2850
          <synopsis>asin (x)</synopsis>
 
2851
          <para>Alias : <function>arcsin</function></para>
 
2852
          <para>La fonction arcsin (sinus inverse).</para>
 
2853
         </listitem>
 
2854
        </varlistentry>
 
2855
 
 
2856
        <varlistentry>
 
2857
         <term><anchor id="gel-function-asinh"/>asinh</term>
 
2858
         <listitem>
 
2859
          <synopsis>asinh (x)</synopsis>
 
2860
          <para>Alias : <function>arcsinh</function></para>
 
2861
          <para>Fonction arcsinh (sinus hyperbolique inverse).</para>
 
2862
         </listitem>
 
2863
        </varlistentry>
 
2864
 
 
2865
        <varlistentry>
 
2866
         <term><anchor id="gel-function-atan"/>atan</term>
 
2867
         <listitem>
 
2868
          <synopsis>atan (x)</synopsis>
 
2869
          <para>Alias : <function>arctan</function></para>
 
2870
          <para>Calcule la fonction arctangente (tangente inverse).</para>
 
2871
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Arctangente">Wikipedia</ulink> or <ulink url="http://mathworld.wolfram.com/InverseTangent.html">Mathworld</ulink> pour plus d'informations.</para>
 
2872
         </listitem>
 
2873
        </varlistentry>
 
2874
 
 
2875
        <varlistentry>
 
2876
         <term><anchor id="gel-function-atanh"/>atanh</term>
 
2877
         <listitem>
 
2878
          <synopsis>atanh (x)</synopsis>
 
2879
          <para>Alias : <function>arctanh</function></para>
 
2880
          <para>Fonction arctanh (tangente hyperbolique inverse).</para>
 
2881
         </listitem>
 
2882
        </varlistentry>
 
2883
 
 
2884
        <varlistentry>
 
2885
         <term><anchor id="gel-function-atan2"/>atan2</term>
 
2886
         <listitem>
 
2887
          <synopsis>atan2 (y, x)</synopsis>
 
2888
          <para>Alias : <function>arctan2</function></para>
 
2889
          <para>Calcule la fonction arctan2. Si <userinput>x&gt;0</userinput> alors renvoie <userinput>atan(y/x)</userinput>. Si <userinput>x&lt;0</userinput> alors cela renvoie <userinput>sign(y) * (pi - atan(|y/x|)</userinput>. Si <userinput>x=0</userinput> cela renvoie <userinput>sign(y) *
 
2890
          pi/2</userinput>. <userinput>atan2(0,0)</userinput> renvoie 0 plutôt que d'échouer.</para>
 
2891
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Atan2">Wikipedia</ulink> ou <ulink url="http://mathworld.wolfram.com/InverseTangent.html">Mathworld</ulink> pour plus d'informations.</para>
 
2892
         </listitem>
 
2893
        </varlistentry>
 
2894
 
 
2895
        <varlistentry>
 
2896
         <term><anchor id="gel-function-cos"/>cos</term>
 
2897
         <listitem>
 
2898
          <synopsis>cos (x)</synopsis>
 
2899
          <para>Calcule la fonction cosinus.</para>
 
2900
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/DefinitionsInTrigonometry.html">Planetmath</ulink> pour plus d'informations.</para>
 
2901
         </listitem>
 
2902
        </varlistentry>
 
2903
 
 
2904
        <varlistentry>
 
2905
         <term><anchor id="gel-function-cosh"/>cosh</term>
 
2906
         <listitem>
 
2907
          <synopsis>cosh (x)</synopsis>
 
2908
          <para>Calcule la fonction cosinus hyperbolique.</para>
 
2909
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/HyperbolicFunctions.html">Planetmath</ulink> pour plus d'informations.</para>
 
2910
         </listitem>
 
2911
        </varlistentry>
 
2912
 
 
2913
        <varlistentry>
 
2914
         <term><anchor id="gel-function-cot"/>cot</term>
 
2915
         <listitem>
 
2916
          <synopsis>cot (x)</synopsis>
 
2917
          <para>Fonction cotangente.</para>
 
2918
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/DefinitionsInTrigonometry.html">Planetmath</ulink> pour plus d'informations.</para>
 
2919
         </listitem>
 
2920
        </varlistentry>
 
2921
 
 
2922
        <varlistentry>
 
2923
         <term><anchor id="gel-function-coth"/>coth</term>
 
2924
         <listitem>
 
2925
          <synopsis>coth (x)</synopsis>
 
2926
          <para>Fonction cotangente hyperbolique.</para>
 
2927
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/HyperbolicFunctions.html">Planetmath</ulink> pour plus d'informations.</para>
 
2928
         </listitem>
 
2929
        </varlistentry>
 
2930
 
 
2931
        <varlistentry>
 
2932
         <term><anchor id="gel-function-csc"/>csc</term>
 
2933
         <listitem>
 
2934
          <synopsis>csc (x)</synopsis>
 
2935
          <para>Fonction cosécante.</para>
 
2936
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/DefinitionsInTrigonometry.html">Planetmath</ulink> pour plus d'informations.</para>
 
2937
         </listitem>
 
2938
        </varlistentry>
 
2939
 
 
2940
        <varlistentry>
 
2941
         <term><anchor id="gel-function-csch"/>csch</term>
 
2942
         <listitem>
 
2943
          <synopsis>csch (x)</synopsis>
 
2944
          <para>Fonction cosécante hyperbolique.</para>
 
2945
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/HyperbolicFunctions.html">Planetmath</ulink> pour plus d'informations.</para>
 
2946
         </listitem>
 
2947
        </varlistentry>
 
2948
 
 
2949
        <varlistentry>
 
2950
         <term><anchor id="gel-function-sec"/>sec</term>
 
2951
         <listitem>
 
2952
          <synopsis>sec (x)</synopsis>
 
2953
          <para>Fonction sécante.</para>
 
2954
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/DefinitionsInTrigonometry.html">Planetmath</ulink> pour plus d'informations.</para>
 
2955
         </listitem>
 
2956
        </varlistentry>
 
2957
 
 
2958
        <varlistentry>
 
2959
         <term><anchor id="gel-function-sech"/>sech</term>
 
2960
         <listitem>
 
2961
          <synopsis>sech (x)</synopsis>
 
2962
          <para>Fonction sécante hyperbolique.</para>
 
2963
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/HyperbolicFunctions.html">Planetmath</ulink> pour plus d'informations.</para>
 
2964
         </listitem>
 
2965
        </varlistentry>
 
2966
 
 
2967
        <varlistentry>
 
2968
         <term><anchor id="gel-function-sin"/>sin</term>
 
2969
         <listitem>
 
2970
          <synopsis>sin (x)</synopsis>
 
2971
          <para>Calcule la fonction sinus.</para>
 
2972
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/DefinitionsInTrigonometry.html">Planetmath</ulink> pour plus d'informations.</para>
 
2973
         </listitem>
 
2974
        </varlistentry>
 
2975
 
 
2976
        <varlistentry>
 
2977
         <term><anchor id="gel-function-sinh"/>sinh</term>
 
2978
         <listitem>
 
2979
          <synopsis>sinh (x)</synopsis>
 
2980
          <para>Calcule la fonction sinus hyperbolique.</para>
 
2981
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/HyperbolicFunctions.html">Planetmath</ulink> pour plus d'informations.</para>
 
2982
         </listitem>
 
2983
        </varlistentry>
 
2984
 
 
2985
        <varlistentry>
 
2986
         <term><anchor id="gel-function-tan"/>tan</term>
 
2987
         <listitem>
 
2988
          <synopsis>tan (x)</synopsis>
 
2989
          <para>Calcule la fonction tangente.</para>
 
2990
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/DefinitionsInTrigonometry.html">Planetmath</ulink> pour plus d'informations.</para>
 
2991
         </listitem>
 
2992
        </varlistentry>
 
2993
 
 
2994
        <varlistentry>
 
2995
         <term><anchor id="gel-function-tanh"/>tanh</term>
 
2996
         <listitem>
 
2997
          <synopsis>tanh (x)</synopsis>
 
2998
          <para>Fonction tangente hyperbolique.</para>
 
2999
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/HyperbolicFunctions.html">Planetmath</ulink> pour plus d'informations.</para>
 
3000
         </listitem>
 
3001
        </varlistentry>
 
3002
 
 
3003
      </variablelist>
 
3004
    </sect1>
 
3005
 
 
3006
    <sect1 id="genius-gel-function-list-number-theory">
 
3007
      <title>Théorie des nombres</title>
 
3008
      <variablelist>
 
3009
        <varlistentry>
 
3010
         <term><anchor id="gel-function-AreRelativelyPrime"/>AreRelativelyPrime</term>
 
3011
         <listitem>
 
3012
          <synopsis>AreRelativelyPrime (a,b)</synopsis>
 
3013
          <para>Si les entiers <varname>a</varname> et <varname>b</varname> sont premiers entre eux ? Renvoie <constant>true</constant> (vrai) ou <constant>false</constant> (faux).</para>
 
3014
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/RelativelyPrime.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/RelativelyPrime.html">Mathworld</ulink> pour plus d'informations.</para>
 
3015
         </listitem>
 
3016
        </varlistentry>
 
3017
 
 
3018
        <varlistentry>
 
3019
         <term><anchor id="gel-function-BernoulliNumber"/>BernoulliNumber</term>
 
3020
         <listitem>
 
3021
          <synopsis>BernoulliNumber (n)</synopsis>
 
3022
          <para>Renvoie le <varname>n</varname>-ième nombre de Bernoulli.</para>
 
3023
          <para>Consultez <ulink url="http://en.wikipedia.org/wiki/Bernoulli_number">Wikipedia</ulink> ou <ulink url="http://mathworld.wolfram.com/BernoulliNumber.html">Mathworld</ulink> pour plus d'informations.</para>
 
3024
         </listitem>
 
3025
        </varlistentry>
 
3026
 
 
3027
        <varlistentry>
 
3028
         <term><anchor id="gel-function-ChineseRemainder"/>ChineseRemainder</term>
 
3029
         <listitem>
 
3030
          <synopsis>ChineseRemainder (a,m)</synopsis>
 
3031
          <para>Alias : <function>CRT</function></para>
 
3032
          <para>Recherche <varname>x</varname> qui résout le système défini par le vecteur <varname>a</varname> et modulo les éléments de <varname>m</varname>, en utilisant le théorème des restes chinois.</para>
 
3033
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Th%C3%A9or%C3%A8me_des_restes_chinois">Wikipedia</ulink> ou <ulink url="http://planetmath.org/encyclopedia/ChineseRemainderTheorem.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/ChineseRemainderTheorem.html">Mathworld</ulink> pour plus d'informations.</para>
 
3034
         </listitem>
 
3035
        </varlistentry>
 
3036
 
 
3037
        <varlistentry>
 
3038
         <term><anchor id="gel-function-CombineFactorizations"/>CombineFactorizations</term>
 
3039
         <listitem>
 
3040
          <synopsis>CombineFactorizations (a,b)</synopsis>
 
3041
          <para>Étant donné deux factorisations, donne la factorisation du produit.</para>
 
3042
          <para>Consultez <link linkend="gel-function-Factorize">Factorize</link>.</para>
 
3043
         </listitem>
 
3044
        </varlistentry>
 
3045
 
 
3046
        <varlistentry>
 
3047
         <term><anchor id="gel-function-ConvertFromBase"/>ConvertFromBase</term>
 
3048
         <listitem>
 
3049
          <synopsis>ConvertFromBase (v,b)</synopsis>
 
3050
          <para>Convertit un vecteur de valeurs indiquant les puissances de b en un nombre.</para>
 
3051
         </listitem>
 
3052
        </varlistentry>
 
3053
 
 
3054
        <varlistentry>
 
3055
         <term><anchor id="gel-function-ConvertToBase"/>ConvertToBase</term>
 
3056
         <listitem>
 
3057
          <synopsis>ConvertToBase (n,b)</synopsis>
 
3058
          <para>Convertit un nombre en un vecteur contenant les puissances des éléments dans la base <varname>b</varname>.</para>
 
3059
         </listitem>
 
3060
        </varlistentry>
 
3061
 
 
3062
        <varlistentry>
 
3063
         <term><anchor id="gel-function-DiscreteLog"/>DiscreteLog</term>
 
3064
         <listitem>
 
3065
          <synopsis>DiscreteLog (n,b,q)</synopsis>
 
3066
          <para>Calcule le logarithme discret de <varname>n</varname> base <varname>b</varname> dans F<subscript>q</subscript>, le corps fini d'ordre <varname>q</varname> où <varname>q</varname> est un nombre premier, en utilisant l'algorithme de Silver-Pohlig-Hellman.</para>
 
3067
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Logarithme_discret">Wikipedia</ulink> ou <ulink url="http://planetmath.org/encyclopedia/DiscreteLogarithm.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/DiscreteLogarithm.html">Mathworld</ulink> pour plus d'informations.</para>
 
3068
         </listitem>
 
3069
        </varlistentry>
 
3070
 
 
3071
        <varlistentry>
 
3072
         <term><anchor id="gel-function-Divides"/>Divides</term>
 
3073
         <listitem>
 
3074
          <synopsis>Divides (m,n)</synopsis>
 
3075
          <para>Vérifie la divisibilité (si <varname>m</varname> divise <varname>n</varname>).</para>
 
3076
         </listitem>
 
3077
        </varlistentry>
 
3078
 
 
3079
        <varlistentry>
 
3080
         <term><anchor id="gel-function-EulerPhi"/>EulerPhi</term>
 
3081
         <listitem>
 
3082
          <synopsis>EulerPhi (n)</synopsis>
 
3083
          <para>Calcule la fonction d'Euler phi, c'est-à-dire le nombre d'entiers compris entre 1 et <varname>n</varname> qui sont premiers avec <varname>n</varname>.</para>
 
3084
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Indicatrice_d%27Euler">Wikipedia</ulink> or <ulink url="http://planetmath.org/encyclopedia/EulerPhifunction.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/TotientFunction.html">Mathworld</ulink> pour plus d'informations.</para>
 
3085
         </listitem>
 
3086
        </varlistentry>
 
3087
 
 
3088
        <varlistentry>
 
3089
         <term><anchor id="gel-function-ExactDivision"/>ExactDivision</term>
 
3090
         <listitem>
 
3091
          <synopsis>ExactDivision (n,d)</synopsis>
 
3092
          <para>Renvoie <userinput>n/d</userinput> mais seulement si <varname>d</varname> divise <varname>n</varname>. Si <varname>d</varname> ne divise pas <varname>n</varname> alors cette fonction ne renvoie rien d'utile. Cette fonction est beaucoup plus rapide pour les très grands nombres que l'opération <userinput>n/d</userinput>, mais bien sûr utile seulement si vous savez que la division est exacte.</para>
 
3093
         </listitem>
 
3094
        </varlistentry>
 
3095
 
 
3096
        <varlistentry>
 
3097
         <term><anchor id="gel-function-Factorize"/>Factorize</term>
 
3098
         <listitem>
 
3099
          <synopsis>Factorize (n)</synopsis>
 
3100
          <para>Renvoie la factorisation d'un nombre sous la forme d'une matrice. La première ligne contient les nombres premiers dans la factorisation (y compris 1) et la seconde ligne sont les puissances. Par exemple : <screen><prompt>genius&gt;</prompt> <userinput>Factorize(11*11*13)</userinput>
 
3101
=
 
3102
[1      11      13
 
3103
 1      2       1]</screen></para>
 
3104
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Factorisation">Wikipedia</ulink> pour plus d'informations.</para>
 
3105
         </listitem>
 
3106
        </varlistentry>
 
3107
 
 
3108
        <varlistentry>
 
3109
         <term><anchor id="gel-function-Factors"/>Factors</term>
 
3110
         <listitem>
 
3111
          <synopsis>Factors (n)</synopsis>
 
3112
          <para>Renvoie tous les facteurs de <varname>n</varname> dans un vecteur. Cela inclut tous les facteurs non premiers également mais aussi 1 et le nombre lui-même. Ainsi par exemple pour afficher tous les nombres parfaits (ceux qui sont la somme de leurs facteurs) jusqu'au nombre 1000, vous pouvez écrire (ce n'est bien sûr pas efficace) : <programlisting>for n=1 to 1000 do (
 
3113
    if MatrixSum (Factors(n)) == 2*n then
 
3114
        print(n)
 
3115
)
 
3116
</programlisting></para>
 
3117
         </listitem>
 
3118
        </varlistentry>
 
3119
 
 
3120
        <varlistentry>
 
3121
         <term><anchor id="gel-function-FermatFactorization"/>FermatFactorization</term>
 
3122
         <listitem>
 
3123
          <synopsis>FermatFactorization (n,tentatives)</synopsis>
 
3124
          <para>
 
3125
            Attempt Fermat factorization of <varname>n</varname> into
 
3126
            <userinput>(t-s)*(t+s)</userinput>, returns <varname>t</varname>
 
3127
            and <varname>s</varname> as a vector if possible, <constant>null</constant> otherwise.
 
3128
            <varname>tries</varname> specifies the number of tries before
 
3129
            giving up.
 
3130
          </para>
 
3131
          <para>C'est une assez bonne factorisation si votre nombre est le produit de deux facteurs très proches l'un de l'autre.</para>
 
3132
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/M%C3%A9thode_de_factorisation_de_Fermat">Wikipedia</ulink> pour plus d'informations.</para>
 
3133
         </listitem>
 
3134
        </varlistentry>
 
3135
 
 
3136
        <varlistentry>
 
3137
         <term><anchor id="gel-function-FindPrimitiveElementMod"/>FindPrimitiveElementMod</term>
 
3138
         <listitem>
 
3139
          <synopsis>FindPrimitiveElementMod (q)</synopsis>
 
3140
          <para>Cherche le premier élément primitif dans F<subscript>q</subscript>, le groupe fini d'ordre <varname>q</varname>. Bien sûr, <varname>q</varname> doit être premier.</para>
 
3141
         </listitem>
 
3142
        </varlistentry>
 
3143
 
 
3144
        <varlistentry>
 
3145
         <term><anchor id="gel-function-FindRandomPrimitiveElementMod"/>FindRandomPrimitiveElementMod</term>
 
3146
         <listitem>
 
3147
          <synopsis>FindRandomPrimitiveElementMod (q)</synopsis>
 
3148
          <para>Cherche un élément primitif au hasard dans F<subscript>q</subscript>, le groupe fini d'ordre <varname>q</varname> (q doit être premier).</para>
 
3149
         </listitem>
 
3150
        </varlistentry>
 
3151
 
 
3152
        <varlistentry>
 
3153
         <term><anchor id="gel-function-IndexCalculus"/>IndexCalculus</term>
 
3154
         <listitem>
 
3155
          <synopsis>IndexCalculus (n,b,q,S)</synopsis>
 
3156
          <para>Calcule le logarithme discret de n base <varname>b</varname> dans F<subscript>q</subscript>, le corps fini d'ordre <varname>q</varname> (<varname>q </varname> est un nombre premier), en utilisant la base de facteur <varname>S</varname>. <varname>S</varname> doit être une colonne de nombres premiers avec éventuellement la deuxième colonne pré-calculée par <function>IndexCalculusPrecalculation</function>.</para>
 
3157
         </listitem>
 
3158
        </varlistentry>
 
3159
 
 
3160
        <varlistentry>
 
3161
         <term><anchor id="gel-function-IndexCalculusPrecalculation"/>IndexCalculusPrecalculation</term>
 
3162
         <listitem>
 
3163
          <synopsis>IndexCalculusPrecalculation (b,q,S)</synopsis>
 
3164
          <para>Lance l'étape de calcul préliminaire de <function>IndexCalculus</function> pour le logarithme base <varname>b</varname> dans F<subscript>q</subscript>, le corps fini d'ordre <varname>q</varname> (<varname>q </varname> est un nombre premier), pour la base de facteur <varname>S</varname> (où <varname>S</varname> doit être une colonne de nombres premiers). Les logarithmes sont pré-calculés et renvoyés dans la deuxième colonne.</para>
 
3165
         </listitem>
 
3166
        </varlistentry>
 
3167
 
 
3168
        <varlistentry>
 
3169
         <term><anchor id="gel-function-IsEven"/>IsEven</term>
 
3170
         <listitem>
 
3171
          <synopsis>IsEven (n)</synopsis>
 
3172
          <para>Teste si un entier est pair.</para>
 
3173
         </listitem>
 
3174
        </varlistentry>
 
3175
 
 
3176
        <varlistentry>
 
3177
         <term><anchor id="gel-function-IsMersennePrimeExponent"/>IsMersennePrimeExponent</term>
 
3178
         <listitem>
 
3179
          <synopsis>IsMersennePrimeExponent (p)</synopsis>
 
3180
          <para>Teste si un nombre entier positif <varname>p</varname> est un nombre premier de Mersenne, c'est-à-dire si 2<superscript>p</superscript>-1 est premier. Il s'agit d'une recherche dans une table de valeurs connues qui est assez petite. Consultez également <link linkend="gel-function-MersennePrimeExponents">MersennePrimeExponents</link> et <link linkend="gel-function-LucasLehmer">LucasLehmer</link>.</para>
 
3181
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Nombre_premier_de_Mersenne">Wikipedia</ulink>, <ulink url="http://planetmath.org/encyclopedia/MersenneNumbers.html">Planetmath</ulink>, <ulink url="http://mathworld.wolfram.com/MersennePrime.html">Mathworld</ulink> ou <ulink url="http://www.mersenne.org/">GIMPS</ulink> pour plus d'informations.</para>
 
3182
         </listitem>
 
3183
        </varlistentry>
 
3184
 
 
3185
        <varlistentry>
 
3186
         <term><anchor id="gel-function-IsNthPower"/>IsNthPower</term>
 
3187
         <listitem>
 
3188
          <synopsis>IsNthPower (m,n)</synopsis>
 
3189
          <para>Vérifie si un nombre rationnel <varname>m</varname> est une puissance <varname>n</varname>-ième parfaite. Consultez aussi <link linkend="gel-function-IsPerfectPower">IsPerfectPower</link> et <link linkend="gel-function-IsPerfectSquare">IsPerfectSquare</link>.</para>
 
3190
         </listitem>
 
3191
        </varlistentry>
 
3192
 
 
3193
        <varlistentry>
 
3194
         <term><anchor id="gel-function-IsOdd"/>IsOdd</term>
 
3195
         <listitem>
 
3196
          <synopsis>IsOdd (n)</synopsis>
 
3197
          <para>Teste si un entier est impair.</para>
 
3198
         </listitem>
 
3199
        </varlistentry>
 
3200
 
 
3201
        <varlistentry>
 
3202
         <term><anchor id="gel-function-IsPerfectPower"/>IsPerfectPower</term>
 
3203
         <listitem>
 
3204
          <synopsis>IsPerfectPower (n)</synopsis>
 
3205
          <para>Vérifie qu'un entier est une puissance parfaite, a<superscript>b</superscript>.</para>
 
3206
         </listitem>
 
3207
        </varlistentry>
 
3208
 
 
3209
        <varlistentry>
 
3210
         <term><anchor id="gel-function-IsPerfectSquare"/>IsPerfectSquare</term>
 
3211
         <listitem>
 
3212
          <synopsis>IsPerfectSquare (n)</synopsis>
 
3213
          <para>Vérifie qu'un entier est un carré parfait d'un entier. Le nombre doit être un vrai entier. Les entiers négatifs ne peuvent bien sûr jamais être des carrés de vrais entiers.</para>
 
3214
         </listitem>
 
3215
        </varlistentry>
 
3216
 
 
3217
        <varlistentry>
 
3218
         <term><anchor id="gel-function-IsPrime"/>IsPrime</term>
 
3219
         <listitem>
 
3220
          <synopsis>IsPrime (n)</synopsis>
 
3221
          <para>Teste la primalité des entiers ; pour les nombres inférieurs à 2,5e10 la réponse est déterministe (si l'hypothèse de Riemann est vérifiée). Pour des nombres plus grands, la probabilité d'une erreur de détermination dépend du paramètre <link linkend="gel-function-IsPrimeMillerRabinReps"><function>IsPrimeMillerRabinReps</function></link>. C'est-à-dire la probabilité d'une erreur de détermination vaut 1/4 à la puissance <function>IsPrimeMillerRabinReps</function>. La valeur par défaut de 22 mène à une probabilité d'environ 5.7e-14.</para>
 
3222
          <para>Si <constant>false</constant> (faux) est renvoyé, vous êtes sûr que le nombre est composé. Si vous voulez être absolument certain d'avoir un nombre premier vous pouvez utiliser la fonction <link linkend="gel-function-MillerRabinTestSure"><function>MillerRabinTestSure</function></link> mais cela peut prendre beaucoup plus de temps.</para>
 
3223
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/PrimeNumber.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/PrimeNumber.html">Mathworld</ulink> pour plus d'informations.</para>
 
3224
         </listitem>
 
3225
        </varlistentry>
 
3226
 
 
3227
        <varlistentry>
 
3228
         <term><anchor id="gel-function-IsPrimitiveMod"/>IsPrimitiveMod</term>
 
3229
         <listitem>
 
3230
          <synopsis>IsPrimitiveMod (g,q)</synopsis>
 
3231
          <para>Vérifie que <varname>g</varname> est primitif dans F<subscript>q</subscript>, le groupe fini d'ordre <varname>q</varname>, où <varname>q</varname> est premier. Si <varname>q</varname> n'est pas premier, les résultats sont erronés.</para>
 
3232
         </listitem>
 
3233
        </varlistentry>
 
3234
 
 
3235
        <varlistentry>
 
3236
         <term><anchor id="gel-function-IsPrimitiveModWithPrimeFactors"/>IsPrimitiveModWithPrimeFactors</term>
 
3237
         <listitem>
 
3238
          <synopsis>IsPrimitiveModWithPrimeFactors (g,q,f)</synopsis>
 
3239
          <para>Vérifie que <varname>g</varname> est primitif dans F<subscript>q</subscript>, le groupe fini d'ordre <varname>q</varname>, où <varname>q</varname> est premier et <varname>f</varname> est un vecteur de facteurs premiers de <varname>q</varname>-1. Si <varname>q</varname> n'est pas premier, les résultats sont erronés.</para>
 
3240
         </listitem>
 
3241
        </varlistentry>
 
3242
 
 
3243
        <varlistentry>
 
3244
         <term><anchor id="gel-function-IsPseudoprime"/>IsPseudoprime</term>
 
3245
         <listitem>
 
3246
          <synopsis>IsPseudoprime (n,b)</synopsis>
 
3247
          <para>If <varname>n</varname> is a pseudoprime base <varname>b</varname> but not a prime,
 
3248
that is if <userinput>b^(n-1) == 1 mod n</userinput>.  This calls the <function>PseudoprimeTest</function></para>
 
3249
         </listitem>
 
3250
        </varlistentry>
 
3251
 
 
3252
        <varlistentry>
 
3253
         <term><anchor id="gel-function-IsStrongPseudoprime"/>IsStrongPseudoprime</term>
 
3254
         <listitem>
 
3255
          <synopsis>IsStrongPseudoprime (n,b)</synopsis>
 
3256
          <para>Teste si <varname>n</varname> est un nombre pseudopremier fort en base <varname>b</varname> mais pas un nombre premier.</para>
 
3257
         </listitem>
 
3258
        </varlistentry>
 
3259
 
 
3260
        <varlistentry>
 
3261
         <term><anchor id="gel-function-Jacobi"/>Jacobi</term>
 
3262
         <listitem>
 
3263
          <synopsis>Jacobi (a,b)</synopsis>
 
3264
          <para>Alias : <function>JacobiSymbol</function></para>
 
3265
          <para>Calcule le symbole de Jacobi (a/b) (b doit être impair).</para>
 
3266
         </listitem>
 
3267
        </varlistentry>
 
3268
 
 
3269
        <varlistentry>
 
3270
         <term><anchor id="gel-function-JacobiKronecker"/>JacobiKronecker</term>
 
3271
         <listitem>
 
3272
          <synopsis>JacobiKronecker (a,b)</synopsis>
 
3273
          <para>Alias : <function>JacobiKroneckerSymbol</function></para>
 
3274
          <para>Calcule le symbole de Jacobi (a/b) avec l'extension de Kronecker (a/2)=(2/a) si impair, ou (a/2)=0 si pair.</para>
 
3275
         </listitem>
 
3276
        </varlistentry>
 
3277
 
 
3278
        <varlistentry>
 
3279
         <term><anchor id="gel-function-LeastAbsoluteResidue"/>LeastAbsoluteResidue</term>
 
3280
         <listitem>
 
3281
          <synopsis>LeastAbsoluteResidue (a,n)</synopsis>
 
3282
          <para>Renvoie le résidu de <varname>a</varname> modulo <varname>n</varname> avec la plus petite valeur absolue (entre -n/2 et n/2).</para>
 
3283
         </listitem>
 
3284
        </varlistentry>
 
3285
 
 
3286
        <varlistentry>
 
3287
         <term><anchor id="gel-function-Legendre"/>Legendre</term>
 
3288
         <listitem>
 
3289
          <synopsis>Legendre (a,p)</synopsis>
 
3290
          <para>Alias : <function>LegendreSymbol</function></para>
 
3291
          <para>Calcule le symbole de Legendre (a/p).</para>
 
3292
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/LegendreSymbol.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/LegendreSymbol.html">Mathworld</ulink> pour plus d'informations.</para>
 
3293
         </listitem>
 
3294
        </varlistentry>
 
3295
 
 
3296
        <varlistentry>
 
3297
         <term><anchor id="gel-function-LucasLehmer"/>LucasLehmer</term>
 
3298
         <listitem>
 
3299
          <synopsis>LucasLehmer (p)</synopsis>
 
3300
          <para>Teste si 2<superscript>p</superscript>-1 est un nombre premier de Mersenne en utilisant le test de Lucas-Lehmer. Consultez aussi <link linkend="gel-function-MersennePrimeExponents">MersennePrimeExponents</link> et <link linkend="gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</link>.</para>
 
3301
          <para>Consultez <ulink url="http://http://fr.wikipedia.org/wiki/Test_de_primalit%C3%A9_de_Lucas-Lehmer_pour_les_nombres_de_Mersenne">Wikipedia</ulink> ou <ulink url="http://planetmath.org/encyclopedia/LucasLhemer.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/Lucas-LehmerTest.html">Mathworld</ulink> pour plus d'informations.</para>
 
3302
         </listitem>
 
3303
        </varlistentry>
 
3304
 
 
3305
        <varlistentry>
 
3306
         <term><anchor id="gel-function-LucasNumber"/>LucasNumber</term>
 
3307
         <listitem>
 
3308
          <synopsis>LucasNumber (n)</synopsis>
 
3309
          <para>Renvoie le <varname>n</varname>-ième nombre de Lucas.</para>
 
3310
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Nombre_de_Lucas">Wikipedia</ulink> ou <ulink url="http://planetmath.org/encyclopedia/LucasNumbers.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/LucasNumber.html">Mathworld</ulink> pour plus d'informations.</para>
 
3311
         </listitem>
 
3312
        </varlistentry>
 
3313
 
 
3314
        <varlistentry>
 
3315
         <term><anchor id="gel-function-MaximalPrimePowerFactors"/>MaximalPrimePowerFactors</term>
 
3316
         <listitem>
 
3317
          <synopsis>MaximalPrimePowerFactors (n)</synopsis>
 
3318
          <para>Renvoie les puissances premières d'un nombre.</para>
 
3319
         </listitem>
 
3320
        </varlistentry>
 
3321
 
 
3322
        <varlistentry>
 
3323
         <term><anchor id="gel-function-MersennePrimeExponents"/>MersennePrimeExponents</term>
 
3324
         <listitem>
 
3325
          <synopsis>MersennePrimeExponents</synopsis>
 
3326
          <para>Renvoie un vecteur de nombres premiers de Mersenne qui est une liste d'entiers positifs <varname>p</varname> tels que 2<superscript>p</superscript>-1 est entier. Consultez aussi <link linkend="gel-function-IsMersennePrimeExponent">IsMersennePrimeExponent</link> et <link linkend="gel-function-LucasLehmer">LucasLehmer</link>.</para>
 
3327
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Nombre_premier_de_Mersenne">Wikipedia</ulink>, <ulink url="http://planetmath.org/encyclopedia/MersenneNumbers.html">Planetmath</ulink>, <ulink url="http://mathworld.wolfram.com/MersennePrime.html">Mathworld</ulink> ou <ulink url="http://www.mersenne.org/">GIMPS</ulink> pour plus d'informations.</para>
 
3328
         </listitem>
 
3329
        </varlistentry>
 
3330
 
 
3331
        <varlistentry>
 
3332
         <term><anchor id="gel-function-MillerRabinTest"/>MillerRabinTest</term>
 
3333
         <listitem>
 
3334
          <synopsis>MillerRabinTest (n,reps)</synopsis>
 
3335
          <para>Utilise le test de primalité de Miller-Rabin sur <varname>n</varname>, en faisant <varname>reps</varname> essais. La probabilité d'une erreur de détermination est <userinput>(1/4)^reps</userinput>. Il est probablement préférable d'utiliser la fonction <link linkend="gel-function-IsPrime"><function>IsPrime</function></link> puisqu'elle est plus rapide et meilleure pour les entiers les plus petits.</para>
 
3336
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Test_de_primalit%C3%A9_de_Miller-Rabin">Wikipedia</ulink> ou <ulink url="http://planetmath.org/encyclopedia/MillerRabinPrimeTest.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html">Mathworld</ulink> pour plus d'informations.</para>
 
3337
         </listitem>
 
3338
        </varlistentry>
 
3339
 
 
3340
        <varlistentry>
 
3341
         <term><anchor id="gel-function-MillerRabinTestSure"/>MillerRabinTestSure</term>
 
3342
         <listitem>
 
3343
          <synopsis>MillerRabinTestSure (n)</synopsis>
 
3344
          <para>Utilise le test de primalité de Miller-Rabin sur <varname>n</varname> avec suffisamment d'essais pour qu'en supposant la véracité de l'hypothèse de Riemann généralisée, le résultat soit déterministe.</para>
 
3345
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Test_de_primalit%C3%A9_de_Miller-Rabin">Wikipedia</ulink> ou <ulink url="http://planetmath.org/encyclopedia/MillerRabinPrimeTest.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/Rabin-MillerStrongPseudoprimeTest.html">Mathworld</ulink> pour plus d'informations.</para>
 
3346
         </listitem>
 
3347
        </varlistentry>
 
3348
 
 
3349
        <varlistentry>
 
3350
         <term><anchor id="gel-function-ModInvert"/>ModInvert</term>
 
3351
         <listitem>
 
3352
          <synopsis>ModInvert (n,m)</synopsis>
 
3353
          <para>Renvoie l'inverse de n mod m.</para>
 
3354
          <para>Consultez <ulink url="http://mathworld.wolfram.com/ModularInverse.html">Mathworld</ulink> pour plus d'informations.</para>
 
3355
         </listitem>
 
3356
        </varlistentry>
 
3357
 
 
3358
        <varlistentry>
 
3359
         <term><anchor id="gel-function-MoebiusMu"/>MoebiusMu</term>
 
3360
         <listitem>
 
3361
          <synopsis>MoebiusMu (n)</synopsis>
 
3362
          <para>Renvoie la fonction mu de Moebius évaluée dans <varname>n</varname>. C'est-à-dire renvoie 0 si <varname>n</varname> n'est pas un produit de nombres premiers différents et <userinput>(-1)^k</userinput> si c'est un produit de <varname>k</varname> nombres premiers différents.</para>
 
3363
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/MoebiusFunction.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/MoebiusFunction.html">Mathworld</ulink> pour plus d'informations.</para>
 
3364
         </listitem>
 
3365
        </varlistentry>
 
3366
 
 
3367
        <varlistentry>
 
3368
         <term><anchor id="gel-function-NextPrime"/>NextPrime</term>
 
3369
         <listitem>
 
3370
          <synopsis>NextPrime (n)</synopsis>
 
3371
          <para>Renvoie le plus petit nombre premier supérieur à <varname>n</varname>. L'opposé d'un nombre premier est considéré comme un nombre premier donc pour obtenir le nombre premier précédent, vous pouvez utiliser <userinput>-NextPrime(-n)</userinput>.</para>
 
3372
          <para>La fonction utilise la fonction <function>mpz_nextprime</function> de GMP qui utilise elle-même le test de probabilité de Miller-Rabin (consultez aussi <link linkend="gel-function-MillerRabinTest">MillerRabinTest</link>). La probabilité d'une erreur de détermination n'est pas ajustable mais suffisamment faible dans tous les cas pratiques.</para>
 
3373
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/PrimeNumber.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/PrimeNumber.html">Mathworld</ulink> pour plus d'informations.</para>
 
3374
         </listitem>
 
3375
        </varlistentry>
 
3376
 
 
3377
        <varlistentry>
 
3378
         <term><anchor id="gel-function-PadicValuation"/>PadicValuation</term>
 
3379
         <listitem>
 
3380
          <synopsis>PadicValuation (n,p)</synopsis>
 
3381
          <para>Renvoie la valuation p-adic (nombre de zéros après la virgule en base <varname>p</varname>).</para>
 
3382
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/PAdicValuation.html">Planetmath</ulink> pour plus d'informations.</para>
 
3383
         </listitem>
 
3384
        </varlistentry>
 
3385
 
 
3386
        <varlistentry>
 
3387
         <term><anchor id="gel-function-PowerMod"/>PowerMod</term>
 
3388
         <listitem>
 
3389
          <synopsis>PowerMod (a,b,m)</synopsis>
 
3390
          <para>Calcule <userinput>a^b mod m</userinput>. La puissance <varname>b</varname> de <varname>a</varname> modulo <varname>m</varname>. Il n'est pas nécesssaire d'utiliser cette fonction car elle est utilisée automatiquement en mode modulaire. Par conséquent, <userinput>a^b mod m</userinput> est aussi rapide.</para>
 
3391
         </listitem>
 
3392
        </varlistentry>
 
3393
 
 
3394
        <varlistentry>
 
3395
         <term><anchor id="gel-function-Prime"/>Prime</term>
 
3396
         <listitem>
 
3397
          <synopsis>Prime (n)</synopsis>
 
3398
          <para>Alias : <function>prime</function></para>
 
3399
          <para>Renvoie le <varname>n</varname>-ième nombre premier (jusqu'à une limite) .</para>
 
3400
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/PrimeNumber.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/PrimeNumber.html">Mathworld</ulink> pour plus d'informations.</para>
 
3401
         </listitem>
 
3402
        </varlistentry>
 
3403
 
 
3404
        <varlistentry>
 
3405
         <term><anchor id="gel-function-PrimeFactors"/>PrimeFactors</term>
 
3406
         <listitem>
 
3407
          <synopsis>PrimeFactors (n)</synopsis>
 
3408
          <para>Renvoie tous les facteurs premiers d'un nombre sous la forme d'un vecteur.</para>
 
3409
          <para>Consultez <ulink url="http://mathworld.wolfram.com/PrimeFactor.html">Mathworld</ulink> pour plus d'informations.</para>
 
3410
         </listitem>
 
3411
        </varlistentry>
 
3412
 
 
3413
        <varlistentry>
 
3414
         <term><anchor id="gel-function-PseudoprimeTest"/>PseudoprimeTest</term>
 
3415
         <listitem>
 
3416
          <synopsis>PseudoprimeTest (n,b)</synopsis>
 
3417
          <para>Test de pseudoprimalité, renvoie <constant>true</constant> (vrai) si et seulement si <userinput>b^(n-1) == 1  mod n</userinput></para>
 
3418
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/Pseudoprime.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/Pseudoprime.html">Mathworld</ulink> pour plus d'informations.</para>
 
3419
         </listitem>
 
3420
        </varlistentry>
 
3421
 
 
3422
        <varlistentry>
 
3423
         <term><anchor id="gel-function-RemoveFactor"/>RemoveFactor</term>
 
3424
         <listitem>
 
3425
          <synopsis>RemoveFactor (n,m)</synopsis>
 
3426
          <para>Supprime toutes les instances du facteur <varname>m</varname> dans le nombre <varname>n</varname>. C'est-à-dire divise par la plus grande puissance de <varname>m</varname> qui divise <varname>n</varname>.</para>
 
3427
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/Divisibility.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/Factor.html">Mathworld</ulink> pour plus d'informations.</para>
 
3428
         </listitem>
 
3429
        </varlistentry>
 
3430
 
 
3431
        <varlistentry>
 
3432
         <term><anchor id="gel-function-SilverPohligHellmanWithFactorization"/>SilverPohligHellmanWithFactorization</term>
 
3433
         <listitem>
 
3434
          <synopsis>SilverPohligHellmanWithFactorization (n,b,q,f)</synopsis>
 
3435
          <para>Calcule le logarithme discret de <varname>n</varname> base <varname>b</varname> dans F<subscript>q</subscript>, le corps fini d'ordre <varname>q</varname> où <varname>q</varname> est un nombre premier, en utilisant l'algorithme de Silver-Pohlig-Hellman, sachant que <varname>f</varname> est la factorisation de <varname>q</varname>-1.</para>
 
3436
         </listitem>
 
3437
        </varlistentry>
 
3438
 
 
3439
        <varlistentry>
 
3440
         <term><anchor id="gel-function-SqrtModPrime"/>SqrtModPrime</term>
 
3441
         <listitem>
 
3442
          <synopsis>SqrtModPrime (n,p)</synopsis>
 
3443
          <para>Cherche la racine carrée de <varname>n</varname> modulo <varname>p</varname> (où <varname>p</varname> est premier). <constant>null</constant> est renvoyé si ce n'est pas un résidu quadratique.</para>
 
3444
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/QuadraticResidue.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/QuadraticResidue.html">Mathworld</ulink> pour plus d'informations.</para>
 
3445
         </listitem>
 
3446
        </varlistentry>
 
3447
 
 
3448
        <varlistentry>
 
3449
         <term><anchor id="gel-function-StrongPseudoprimeTest"/>StrongPseudoprimeTest</term>
 
3450
         <listitem>
 
3451
          <synopsis>StrongPseudoprimeTest (n,b)</synopsis>
 
3452
          <para>Lance le test de pseudo-primarité forte en base <varname>b</varname> sur <varname>n</varname>.</para>
 
3453
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/StrongPseudoprime.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/StrongPseudoprime.html">Mathworld</ulink> pour plus d'informations.</para>
 
3454
         </listitem>
 
3455
        </varlistentry>
 
3456
 
 
3457
        <varlistentry>
 
3458
         <term><anchor id="gel-function-gcd"/>gcd</term>
 
3459
         <listitem>
 
3460
          <synopsis>gcd (a,params...)</synopsis>
 
3461
          <para>Alias : <function>GCD</function></para>
 
3462
          <para>Plus grand commun diviseur d'entiers (PGCD, en anglais « Greatest Common Divisor »). Vous pouvez fournir autant d'entiers que vous voulez dans la liste d'arguments ou vous pouvez fournir un vecteur ou une matrice d'entiers. Si vous fournissez plus d'une matrice de la même taille alors le PGCD est recherché élément par élément.</para>
 
3463
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/GreatestCommonDivisor.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/GreatestCommonDivisor.html">Mathworld</ulink> pour plus d'informations.</para>
 
3464
         </listitem>
 
3465
        </varlistentry>
 
3466
 
 
3467
        <varlistentry>
 
3468
         <term><anchor id="gel-function-lcm"/>lcm</term>
 
3469
         <listitem>
 
3470
          <synopsis>lcm (a,params...)</synopsis>
 
3471
          <para>Alias : <function>LCM</function></para>
 
3472
          <para>Plus petit commun multiple d'entiers (PPCM, en anglais « Least Common Multiplier »). Vous pouvez fournir autant d'entiers que vous voulez dans la liste d'arguments ou vous pouvez fournir un vecteur ou une matrice d'entiers. Si vous fournissez plus d'une matrice de la même taille alors le PPCM est recherché élément par élément.</para>
 
3473
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/LeastCommonMultiple.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/LeastCommonMultiple.html">Mathworld</ulink> pour plus d'informations.</para>
 
3474
         </listitem>
 
3475
        </varlistentry>
 
3476
 
 
3477
      </variablelist>
 
3478
    </sect1>
 
3479
 
 
3480
    <sect1 id="genius-gel-function-list-matrix">
 
3481
      <title>Manipulation de matrices</title>
 
3482
      <variablelist>
 
3483
        <varlistentry>
 
3484
         <term><anchor id="gel-function-ApplyOverMatrix"/>ApplyOverMatrix</term>
 
3485
         <listitem>
 
3486
          <synopsis>ApplyOverMatrix (a,fonc)</synopsis>
 
3487
          <para>Applique une fonction sur tous les éléments d'une matrice et renvoie une matrice de résultats.</para>
 
3488
         </listitem>
 
3489
        </varlistentry>
 
3490
 
 
3491
        <varlistentry>
 
3492
         <term><anchor id="gel-function-ApplyOverMatrix2"/>ApplyOverMatrix2</term>
 
3493
         <listitem>
 
3494
          <synopsis>ApplyOverMatrix2 (a,b,fonc)</synopsis>
 
3495
          <para>Applique une fonction sur tous les éléments de 2 matrices (ou 1 valeur et 1 matrice) et renvoie une matrice de résultats.</para>
 
3496
         </listitem>
 
3497
        </varlistentry>
 
3498
 
 
3499
        <varlistentry>
 
3500
         <term><anchor id="gel-function-ColumnsOf"/>ColumnsOf</term>
 
3501
         <listitem>
 
3502
          <synopsis>ColumnsOf (M)</synopsis>
 
3503
          <para>Extrait les colonnes de la matrice comme un vecteur horizontal.</para>
 
3504
         </listitem>
 
3505
        </varlistentry>
 
3506
 
 
3507
        <varlistentry>
 
3508
         <term><anchor id="gel-function-ComplementSubmatrix"/>ComplementSubmatrix</term>
 
3509
         <listitem>
 
3510
          <synopsis>ComplementSubmatrix (m,r,c)</synopsis>
 
3511
          <para>Supprime certaines lignes et colonnes d'une matrice.</para>
 
3512
         </listitem>
 
3513
        </varlistentry>
 
3514
 
 
3515
        <varlistentry>
 
3516
         <term><anchor id="gel-function-CompoundMatrix"/>CompoundMatrix</term>
 
3517
         <listitem>
 
3518
          <synopsis>CompoundMatrix (k,A)</synopsis>
 
3519
          <para>Calcule la k-ième matrice composée de A.</para>
 
3520
         </listitem>
 
3521
        </varlistentry>
 
3522
 
 
3523
        <varlistentry>
 
3524
         <term><anchor id="gel-function-CountZeroColumns"/>CountZeroColumns</term>
 
3525
         <listitem>
 
3526
          <synopsis>CountZeroColumns (M)</synopsis>
 
3527
          <para>
 
3528
           Count the number of zero columns in a matrix.  For example
 
3529
           once your column reduce a matrix you can use this to find
 
3530
           the nullity.  See <link linkend="gel-function-cref"><function>cref</function></link>
 
3531
           and <link linkend="gel-function-Nullity"><function>Nullity</function></link>.
 
3532
          </para>
 
3533
         </listitem>
 
3534
        </varlistentry>
 
3535
 
 
3536
        <varlistentry>
 
3537
         <term><anchor id="gel-function-DeleteColumn"/>DeleteColumn</term>
 
3538
         <listitem>
 
3539
          <synopsis>DeleteColumn (M,col)</synopsis>
 
3540
          <para>Supprime une colonne d'une matrice.</para>
 
3541
         </listitem>
 
3542
        </varlistentry>
 
3543
 
 
3544
        <varlistentry>
 
3545
         <term><anchor id="gel-function-DeleteRow"/>DeleteRow</term>
 
3546
         <listitem>
 
3547
          <synopsis>DeleteRow (M,row)</synopsis>
 
3548
          <para>Supprime une ligne d'une matrice.</para>
 
3549
         </listitem>
 
3550
        </varlistentry>
 
3551
 
 
3552
        <varlistentry>
 
3553
         <term><anchor id="gel-function-DiagonalOf"/>DiagonalOf</term>
 
3554
         <listitem>
 
3555
          <synopsis>DiagonalOf (M)</synopsis>
 
3556
          <para>Extrait la diagonale de la matrice comme un vecteur colonne.</para>
 
3557
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Diagonale">Wikipedia</ulink> pour plus d'informations.</para>
 
3558
         </listitem>
 
3559
        </varlistentry>
 
3560
 
 
3561
        <varlistentry>
 
3562
         <term><anchor id="gel-function-DotProduct"/>DotProduct</term>
 
3563
         <listitem>
 
3564
          <synopsis>DotProduct (u,v)</synopsis>
 
3565
          <para>Renvoie le produit scalaire de deux vecteurs. Les vecteurs doivent être de même taille. Aucune conjugaison n'est faite donc c'est une forme bilinéaire même dans le cas de nombres complexes.</para>
 
3566
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/DotProduct.html">Planetmath</ulink> pour plus d'informations.</para>
 
3567
         </listitem>
 
3568
        </varlistentry>
 
3569
 
 
3570
        <varlistentry>
 
3571
         <term><anchor id="gel-function-ExpandMatrix"/>ExpandMatrix</term>
 
3572
         <listitem>
 
3573
          <synopsis>ExpandMatrix (M)</synopsis>
 
3574
          <para>Développe une matrice exactement comme cela est fait lors de la saisie d'une matrice non précédée d'une apostrophe. Cela signifie que toute matrice interne est développée sous la forme de blocs. C'est une façon de construire des matrices à partir de matrices plus petites et c'est ce qui est effectué normalement de manière automatique lors d'une saisie à moins que la matrice ne soit précédée d'une apostrophe.</para>
 
3575
         </listitem>
 
3576
        </varlistentry>
 
3577
 
 
3578
        <varlistentry>
 
3579
         <term><anchor id="gel-function-HermitianProduct"/>HermitianProduct</term>
 
3580
         <listitem>
 
3581
          <synopsis>HermitianProduct (u,v)</synopsis>
 
3582
          <para>Alias : <function>InnerProduct</function></para>
 
3583
          <para>Renvoie le produit hermitienne de deux vecteurs. Les vecteurs doivent avoir la même taille. C'est une forme sesquilinéaire utilisant la matrice identité.</para>
 
3584
          <para>Consultez <ulink url="http://mathworld.wolfram.com/HermitianInnerProduct.html">Mathworld</ulink> pour plus d'informations.</para>
 
3585
         </listitem>
 
3586
        </varlistentry>
 
3587
 
 
3588
        <varlistentry>
 
3589
         <term><anchor id="gel-function-I"/>I</term>
 
3590
         <listitem>
 
3591
          <synopsis>I (n)</synopsis>
 
3592
          <para>Alias : <function>eye</function></para>
 
3593
          <para>Renvoie une matrice identité de la taille indiquée, soit une matrice de <varname>n</varname> par <varname>n</varname>. Si <varname>n</varname> vaut zéro, renvoie <constant>null</constant>.</para>
 
3594
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/IdentityMatrix.html">Planetmath</ulink> pour plus d'informations.</para>
 
3595
         </listitem>
 
3596
        </varlistentry>
 
3597
 
 
3598
        <varlistentry>
 
3599
         <term><anchor id="gel-function-IndexComplement"/>IndexComplement</term>
 
3600
         <listitem>
 
3601
          <synopsis>IndexComplement (vec,mtaille)</synopsis>
 
3602
          <para>Renvoie le complémentaire d'un vecteur d'indices. Le premier indice est toujours 1. Par exemple pour le vecteur <userinput>[2,3]</userinput> et la taille <userinput>5</userinput>, cela renvoie <userinput>[1,4,5]</userinput>. Si <varname>mtaille</varname> vaut 0, cela renvoie toujours <constant>null</constant>.</para>
 
3603
         </listitem>
 
3604
        </varlistentry>
 
3605
 
 
3606
        <varlistentry>
 
3607
         <term><anchor id="gel-function-IsDiagonal"/>IsDiagonal</term>
 
3608
         <listitem>
 
3609
          <synopsis>IsDiagonal (M)</synopsis>
 
3610
          <para>Indique si la matrice est diagonale.</para>
 
3611
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Matrice_diagonale">Wikipedia</ulink> ou <ulink url="http://planetmath.org/encyclopedia/DiagonalMatrix.html">Planetmath</ulink> pour plus d'informations.</para>
 
3612
         </listitem>
 
3613
        </varlistentry>
 
3614
 
 
3615
        <varlistentry>
 
3616
         <term><anchor id="gel-function-IsIdentity"/>IsIdentity</term>
 
3617
         <listitem>
 
3618
          <synopsis>IsIdentity (x)</synopsis>
 
3619
          <para>Vérifie qu'une matrice est la matrice identité. Renvoie automatiquement <constant>false</constant> (faux) si la matrice n'est pas carrée. Fonctionne également avec les nombres et dans ce cas, c'est équivalent à <userinput>x==1</userinput>. Lorsque <varname>x</varname> est <constant>null</constant>, il est considéré comme une matrice 0 par 0, aucune erreur n'est générée et <constant>false</constant> (faux) est renvoyé.</para>
 
3620
         </listitem>
 
3621
        </varlistentry>
 
3622
 
 
3623
        <varlistentry>
 
3624
         <term><anchor id="gel-function-IsLowerTriangular"/>IsLowerTriangular</term>
 
3625
         <listitem>
 
3626
          <synopsis>IsLowerTriangular (M)</synopsis>
 
3627
          <para>Indique si une matrice est triangulaire inférieure, c'est-à-dire que toutes les valeurs au dessus de la diagonale sont nulles.</para>
 
3628
         </listitem>
 
3629
        </varlistentry>
 
3630
 
 
3631
        <varlistentry>
 
3632
         <term><anchor id="gel-function-IsMatrixInteger"/>IsMatrixInteger</term>
 
3633
         <listitem>
 
3634
          <synopsis>IsMatrixInteger (M)</synopsis>
 
3635
          <para>Vérifie si une matrice est constituée de nombres entiers (non complexe).</para>
 
3636
         </listitem>
 
3637
        </varlistentry>
 
3638
 
 
3639
        <varlistentry>
 
3640
         <term><anchor id="gel-function-IsMatrixNonnegative"/>IsMatrixNonnegative</term>
 
3641
         <listitem>
 
3642
          <synopsis>IsMatrixNonnegative (M)</synopsis>
 
3643
          <para>Vérifie si une matrice est non négative, c'est-à-dire que chaque élément n'est pas négatif. Ne pas confondre les matrices positives avec les matrices définies positives.</para>
 
3644
          <para>Consultez <ulink url="http://en.wikipedia.org/wiki/Positive_matrix">Wikipedia</ulink> pour plus d'informations.</para>
 
3645
         </listitem>
 
3646
        </varlistentry>
 
3647
 
 
3648
        <varlistentry>
 
3649
         <term><anchor id="gel-function-IsMatrixPositive"/>IsMatrixPositive</term>
 
3650
         <listitem>
 
3651
          <synopsis>IsMatrixPositive (M)</synopsis>
 
3652
          <para>Vérifie si une matrice est positive, c'est-à-dire que chaque élément est positif (et par conséquent réel), et en particulier qu'aucun élément n'est nul. Ne pas confondre les matrices positives avec les matrices définies positives</para>
 
3653
          <para>Consultez <ulink url="http://en.wikipedia.org/wiki/Positive_matrix">Wikipedia</ulink> pour plus d'informations.</para>
 
3654
         </listitem>
 
3655
        </varlistentry>
 
3656
 
 
3657
        <varlistentry>
 
3658
         <term><anchor id="gel-function-IsMatrixRational"/>IsMatrixRational</term>
 
3659
         <listitem>
 
3660
          <synopsis>IsMatrixRational (M)</synopsis>
 
3661
          <para>Vérifie si une matrice est constituée de nombres rationnels (non complexes).</para>
 
3662
         </listitem>
 
3663
        </varlistentry>
 
3664
 
 
3665
        <varlistentry>
 
3666
         <term><anchor id="gel-function-IsMatrixReal"/>IsMatrixReal</term>
 
3667
         <listitem>
 
3668
          <synopsis>IsMatrixReal (M)</synopsis>
 
3669
          <para>Vérifie si une matrice est constituée de nombres réels (non complexes).</para>
 
3670
         </listitem>
 
3671
        </varlistentry>
 
3672
 
 
3673
        <varlistentry>
 
3674
         <term><anchor id="gel-function-IsMatrixSquare"/>IsMatrixSquare</term>
 
3675
         <listitem>
 
3676
          <synopsis>IsMatrixSquare (M)</synopsis>
 
3677
          <para>Vérifie si une matrice est carrée, c'est-à-dire que sa largeur est égale à sa hauteur.</para>
 
3678
         </listitem>
 
3679
        </varlistentry>
 
3680
 
 
3681
        <varlistentry>
 
3682
         <term><anchor id="gel-function-IsUpperTriangular"/>IsUpperTriangular</term>
 
3683
         <listitem>
 
3684
          <synopsis>IsUpperTriangular (M)</synopsis>
 
3685
          <para>Is a matrix upper triangular?  That is, a matrix is upper triangular if all the entries below the diagonal are zero.</para>
 
3686
         </listitem>
 
3687
        </varlistentry>
 
3688
 
 
3689
        <varlistentry>
 
3690
         <term><anchor id="gel-function-IsValueOnly"/>IsValueOnly</term>
 
3691
         <listitem>
 
3692
          <synopsis>IsValueOnly (M)</synopsis>
 
3693
          <para>Vérifie si une matrice est une matrice de nombres seulement. Beaucoup de fonctions internes contrôlent cela. Les valeurs peuvent être n'importe quels nombres y compris des complexes.</para>
 
3694
         </listitem>
 
3695
        </varlistentry>
 
3696
 
 
3697
        <varlistentry>
 
3698
         <term><anchor id="gel-function-IsVector"/>IsVector</term>
 
3699
         <listitem>
 
3700
          <synopsis>IsVector (v)</synopsis>
 
3701
          <para>Si l'argument est un vecteur horizontal ou vertical. Genius ne fait pas de distinction entre une matrice et un vecteur, un vecteur est juste une matrice 1 par <varname>n</varname> ou <varname>n</varname> par 1.</para>
 
3702
         </listitem>
 
3703
        </varlistentry>
 
3704
 
 
3705
        <varlistentry>
 
3706
         <term><anchor id="gel-function-IsZero"/>IsZero</term>
 
3707
         <listitem>
 
3708
          <synopsis>IsZero (x)</synopsis>
 
3709
          <para>Vérifie si une matrice est composée uniquement de zéros. Fonctionne également avec les nombres et dans ce cas, c'est équivalent à <userinput>x==0</userinput>. Lorsque <varname>x</varname> est <constant>null</constant>, il est considéré comme une matrice 0 par 0, aucune erreur n'est générée et <constant>true</constant> (vrai) est renvoyé car la condition est vide.</para>
 
3710
         </listitem>
 
3711
        </varlistentry>
 
3712
 
 
3713
        <varlistentry>
 
3714
         <term><anchor id="gel-function-LowerTriangular"/>LowerTriangular</term>
 
3715
         <listitem>
 
3716
          <synopsis>LowerTriangular (M)</synopsis>
 
3717
          <para>Renvoie une copie de la matrice <varname>M</varname> avec tous les éléments au dessus de la diagonale mis à zéro.</para>
 
3718
         </listitem>
 
3719
        </varlistentry>
 
3720
 
 
3721
        <varlistentry>
 
3722
         <term><anchor id="gel-function-MakeDiagonal"/>MakeDiagonal</term>
 
3723
         <listitem>
 
3724
          <synopsis>MakeDiagonal (v,param...)</synopsis>
 
3725
          <para>Alias : <function>diag</function></para>
 
3726
          <para>Make diagonal matrix from a vector.  Alternatively you can pass
 
3727
                  in the values to put on the diagonal as arguments.  So
 
3728
                  <userinput>MakeDiagonal([1,2,3])</userinput> is the same as
 
3729
                  <userinput>MakeDiagonal(1,2,3)</userinput>.</para>
 
3730
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Matrice_diagonale">Wikipedia</ulink> ou <ulink url="http://planetmath.org/encyclopedia/DiagonalMatrix.html">Planetmath</ulink> pour plus d'informations.</para>
 
3731
         </listitem>
 
3732
        </varlistentry>
 
3733
 
 
3734
        <varlistentry>
 
3735
         <term><anchor id="gel-function-MakeVector"/>MakeVector</term>
 
3736
         <listitem>
 
3737
          <synopsis>MakeVector (A)</synopsis>
 
3738
          <para>Construit un vecteur colonne à partir d'une matrice en mettant les colonnes les unes au dessus des autres. Renvoie <constant>null</constant> si <constant>null</constant> est fourni.</para>
 
3739
         </listitem>
 
3740
        </varlistentry>
 
3741
 
 
3742
        <varlistentry>
 
3743
         <term><anchor id="gel-function-MatrixProduct"/>MatrixProduct</term>
 
3744
         <listitem>
 
3745
          <synopsis>MatrixProduct (A)</synopsis>
 
3746
          <para>Calcule et renvoie le produit de tous les éléments d'une matrice ou d'un vecteur.</para>
 
3747
         </listitem>
 
3748
        </varlistentry>
 
3749
 
 
3750
        <varlistentry>
 
3751
         <term><anchor id="gel-function-MatrixSum"/>MatrixSum</term>
 
3752
         <listitem>
 
3753
          <synopsis>MatrixSum (A)</synopsis>
 
3754
          <para>Calcule et renvoie la somme de tous les éléments d'une matrice ou d'un vecteur.</para>
 
3755
         </listitem>
 
3756
        </varlistentry>
 
3757
 
 
3758
        <varlistentry>
 
3759
         <term><anchor id="gel-function-MatrixSumSquares"/>MatrixSumSquares</term>
 
3760
         <listitem>
 
3761
          <synopsis>MatrixSumSquares (A)</synopsis>
 
3762
          <para>Calcule la somme du carré de tous les éléments d'une matrice ou d'un vecteur.</para>
 
3763
         </listitem>
 
3764
        </varlistentry>
 
3765
 
 
3766
        <varlistentry>
 
3767
         <term><anchor id="gel-function-OuterProduct"/>OuterProduct</term>
 
3768
         <listitem>
 
3769
          <synopsis>OuterProduct (u,v)</synopsis>
 
3770
          <para>Retourne le produit tensoriel de deux vecteurs, c'est-à-dire que si on suppose que <varname>u</varname> et <varname>v</varname> sont des vecteurs colonnes, alors le produit tensoriel est <userinput>v * u.'</userinput>.</para>
 
3771
         </listitem>
 
3772
        </varlistentry>
 
3773
 
 
3774
        <varlistentry>
 
3775
         <term><anchor id="gel-function-ReverseVector"/>ReverseVector</term>
 
3776
         <listitem>
 
3777
          <synopsis>ReverseVector (v)</synopsis>
 
3778
          <para>Inverse l'ordre des éléments d'un vecteur. Renvoie <constant>null</constant> si <constant>null</constant> est fourni</para>
 
3779
         </listitem>
 
3780
        </varlistentry>
 
3781
 
 
3782
        <varlistentry>
 
3783
         <term><anchor id="gel-function-RowSum"/>RowSum</term>
 
3784
         <listitem>
 
3785
          <synopsis>RowSum (m)</synopsis>
 
3786
          <para>Calcule la somme pour chaque ligne d'une matrice et renvoie un vecteur colonne contenant le résultat.</para>
 
3787
         </listitem>
 
3788
        </varlistentry>
 
3789
 
 
3790
        <varlistentry>
 
3791
         <term><anchor id="gel-function-RowSumSquares"/>RowSumSquares</term>
 
3792
         <listitem>
 
3793
          <synopsis>RowSumSquares (m)</synopsis>
 
3794
          <para>Calculate sum of squares of each row in a matrix and return a vertical vector with the results.</para>
 
3795
         </listitem>
 
3796
        </varlistentry>
 
3797
 
 
3798
        <varlistentry>
 
3799
         <term><anchor id="gel-function-RowsOf"/>RowsOf</term>
 
3800
         <listitem>
 
3801
          <synopsis>RowsOf (M)</synopsis>
 
3802
          <para>Renvoie les lignes d'une matrice dans un vecteur vertical. Chaque élément du vecteur est un vecteur horizontal qui correspond à chaque ligne de <varname>M</varname>. Cette fonction est utile si vous désirez faire une boucle sur les lignes d'une matrice comme par exemple, <userinput>for r in RowsOf(M) do
 
3803
quelquechose(r)</userinput>.</para>
 
3804
         </listitem>
 
3805
        </varlistentry>
 
3806
 
 
3807
        <varlistentry>
 
3808
         <term><anchor id="gel-function-SetMatrixSize"/>SetMatrixSize</term>
 
3809
         <listitem>
 
3810
          <synopsis>SetMatrixSize (M,lignes,colonnes)</synopsis>
 
3811
          <para>Make new matrix of given size from old one.  That is, a new
 
3812
          matrix will be returned to which the old one is copied.  Entries that
 
3813
          don't fit are clipped and extra space is filled with zeros.
 
3814
          If <varname>rows</varname> or <varname>columns</varname> are zero
 
3815
          then <constant>null</constant> is returned.
 
3816
          </para>
 
3817
         </listitem>
 
3818
        </varlistentry>
 
3819
 
 
3820
        <varlistentry>
 
3821
         <term><anchor id="gel-function-ShuffleVector"/>ShuffleVector</term>
 
3822
         <listitem>
 
3823
          <synopsis>ShuffleVector (v)</synopsis>
 
3824
          <para>Mélange les éléments d'un vecteur. Renvoie <constant>null</constant> si <constant>null</constant> est fourni</para>
 
3825
         </listitem>
 
3826
        </varlistentry>
 
3827
 
 
3828
        <varlistentry>
 
3829
         <term><anchor id="gel-function-SortVector"/>SortVector</term>
 
3830
         <listitem>
 
3831
          <synopsis>SortVector (v)</synopsis>
 
3832
          <para>Trie les éléments d'un vecteur en ordre croissant.</para>
 
3833
         </listitem>
 
3834
        </varlistentry>
 
3835
 
 
3836
        <varlistentry>
 
3837
         <term><anchor id="gel-function-StripZeroColumns"/>StripZeroColumns</term>
 
3838
         <listitem>
 
3839
          <synopsis>StripZeroColumns (M)</synopsis>
 
3840
          <para>Élimine toutes les colonnes entièrement nulles de <varname>M</varname>.</para>
 
3841
         </listitem>
 
3842
        </varlistentry>
 
3843
 
 
3844
        <varlistentry>
 
3845
         <term><anchor id="gel-function-StripZeroRows"/>StripZeroRows</term>
 
3846
         <listitem>
 
3847
          <synopsis>StripZeroRows (M)</synopsis>
 
3848
          <para>Élimine toutes les lignes entièrement nulles de <varname>M</varname>.</para>
 
3849
         </listitem>
 
3850
        </varlistentry>
 
3851
 
 
3852
        <varlistentry>
 
3853
         <term><anchor id="gel-function-Submatrix"/>Submatrix</term>
 
3854
         <listitem>
 
3855
          <synopsis>Submatrix (m,r,c)</synopsis>
 
3856
          <para>Renvoie certaines colonnes et lignes d'une matrice. C'est équivalent à <userinput>m@(r,c)</userinput>. <varname>r</varname> et <varname>c</varname> doivent être des vecteurs de lignes et de colonnes (ou de simples nombres si vous avez besoin d'une seule ligne ou colonne).</para>
 
3857
         </listitem>
 
3858
        </varlistentry>
 
3859
 
 
3860
        <varlistentry>
 
3861
         <term><anchor id="gel-function-SwapRows"/>SwapRows</term>
 
3862
         <listitem>
 
3863
          <synopsis>SwapRows (m,ligne1,ligne2)</synopsis>
 
3864
          <para>Échange deux lignes dans une matrice.</para>
 
3865
         </listitem>
 
3866
        </varlistentry>
 
3867
 
 
3868
        <varlistentry>
 
3869
         <term><anchor id="gel-function-UpperTriangular"/>UpperTriangular</term>
 
3870
         <listitem>
 
3871
          <synopsis>UpperTriangular (M)</synopsis>
 
3872
          <para>Renvoie une copie de la matrice <varname>M</varname> avec tous les éléments sous la diagonale mis à zéro.</para>
 
3873
         </listitem>
 
3874
        </varlistentry>
 
3875
 
 
3876
        <varlistentry>
 
3877
         <term><anchor id="gel-function-columns"/>columns</term>
 
3878
         <listitem>
 
3879
          <synopsis>columns (M)</synopsis>
 
3880
          <para>Renvoie le nombre de colonnes d'une matrice.</para>
 
3881
         </listitem>
 
3882
        </varlistentry>
 
3883
 
 
3884
        <varlistentry>
 
3885
         <term><anchor id="gel-function-elements"/>elements</term>
 
3886
         <listitem>
 
3887
          <synopsis>elements (M)</synopsis>
 
3888
          <para>Renvoie le nombre total d'éléments d'une matrice. C'est le nombre de colonnes multiplié par le nombre de lignes.</para>
 
3889
         </listitem>
 
3890
        </varlistentry>
 
3891
 
 
3892
        <varlistentry>
 
3893
         <term><anchor id="gel-function-ones"/>ones</term>
 
3894
         <listitem>
 
3895
          <synopsis>ones (lignes,colonnes...)</synopsis>
 
3896
          <para>Crée une matrice de 1 (ou un vecteur colonne si un seul argument est donné). Renvoie <constant>null</constant> si ligne ou colonne est nul.</para>
 
3897
         </listitem>
 
3898
        </varlistentry>
 
3899
 
 
3900
        <varlistentry>
 
3901
         <term><anchor id="gel-function-rows"/>rows</term>
 
3902
         <listitem>
 
3903
          <synopsis>rows (M)</synopsis>
 
3904
          <para>Renvoie le nombre de lignes d'une matrice.</para>
 
3905
         </listitem>
 
3906
        </varlistentry>
 
3907
 
 
3908
        <varlistentry>
 
3909
         <term><anchor id="gel-function-zeros"/>zeros</term>
 
3910
         <listitem>
 
3911
          <synopsis>zeros (lignes,colonnes...)</synopsis>
 
3912
          <para>Crée une matrice de 0 (ou un vecteur colonne si un seul argument est donné). Renvoie <constant>null</constant> si ligne ou colonne est nul.</para>
 
3913
         </listitem>
 
3914
        </varlistentry>
 
3915
 
 
3916
      </variablelist>
 
3917
    </sect1>
 
3918
 
 
3919
    <sect1 id="genius-gel-function-list-linear-algebra">
 
3920
      <title>Algèbre linéaire</title>
 
3921
      <variablelist>
 
3922
        <varlistentry>
 
3923
         <term><anchor id="gel-function-AuxiliaryUnitMatrix"/>AuxiliaryUnitMatrix</term>
 
3924
         <listitem>
 
3925
          <synopsis>AuxiliaryUnitMatrix (n)</synopsis>
 
3926
          <para>Get the auxiliary unit matrix of size <varname>n</varname>.  This is a square matrix with that is all zero except the
 
3927
superdiagonal being all ones.  It is the Jordan block matrix of one zero eigenvalue.</para>
 
3928
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/JordanCanonicalFormTheorem.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/JordanBlock.html">Mathworld</ulink> pour plus d'informations sur la forme canonique de Jordan.</para>
 
3929
         </listitem>
 
3930
        </varlistentry>
 
3931
 
 
3932
        <varlistentry>
 
3933
         <term><anchor id="gel-function-BilinearForm"/>BilinearForm</term>
 
3934
         <listitem>
 
3935
          <synopsis>BilinearForm (v,A,w)</synopsis>
 
3936
          <para>Évalue (v,w) par rapport à la forme bilinéaire donnée par la matrice A.</para>
 
3937
         </listitem>
 
3938
        </varlistentry>
 
3939
 
 
3940
        <varlistentry>
 
3941
         <term><anchor id="gel-function-BilinearFormFunction"/>BilinearFormFunction</term>
 
3942
         <listitem>
 
3943
          <synopsis>BilinearFormFunction (A)</synopsis>
 
3944
          <para>Renvoie une fonction qui évalue deux vecteurs par rapport à la forme bilinéaire donnée par A.</para>
 
3945
         </listitem>
 
3946
        </varlistentry>
 
3947
 
 
3948
        <varlistentry>
 
3949
         <term><anchor id="gel-function-CharacteristicPolynomial"/>CharacteristicPolynomial</term>
 
3950
         <listitem>
 
3951
          <synopsis>CharacteristicPolynomial (M)</synopsis>
 
3952
          <para>Alias : <function>CharPoly</function></para>
 
3953
          <para>Renvoie le polynôme caractéristique d'un vecteur. C'est-à-dire renvoie les coefficients du polynôme en commençant par le terme constant. Ce polynôme est défini par <userinput>det(M-xI)</userinput>. Les racines de ce polynôme sont les valeurs propres de <varname>M</varname>. Consultez également <link linkend="gel-function-CharacteristicPolynomialFunction">CharacteristicPolynomialFunction</link>.</para>
 
3954
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/CharacteristicEquation.html">Planetmath</ulink> pour plus d'informations.</para>
 
3955
         </listitem>
 
3956
        </varlistentry>
 
3957
 
 
3958
        <varlistentry>
 
3959
         <term><anchor id="gel-function-CharacteristicPolynomialFunction"/>CharacteristicPolynomialFunction</term>
 
3960
         <listitem>
 
3961
          <synopsis>CharacteristicPolynomialFunction (M)</synopsis>
 
3962
          <para>Renvoie le polynôme caractéristique d'un vecteur sous la forme d'une fonction. Ce polynôme est défini par <userinput>det(M-xI)</userinput>. Les racines de ce polynôme sont les valeurs propres de <varname>M</varname>. Consultez également <link linkend="gel-function-CharacteristicPolynomial">CharacteristicPolynomial</link>.</para>
 
3963
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/CharacteristicEquation.html">Planetmath</ulink> pour plus d'informations.</para>
 
3964
         </listitem>
 
3965
        </varlistentry>
 
3966
 
 
3967
        <varlistentry>
 
3968
         <term><anchor id="gel-function-ColumnSpace"/>ColumnSpace</term>
 
3969
         <listitem>
 
3970
          <synopsis>ColumnSpace (M)</synopsis>
 
3971
          <para>Renvoie une matrice de base pour le sous-espace vectoriel d'une matrice. C'est-à-dire renvoie une matrice dont les colonnes forment une base pour le sous-espace vectoriel de <varname>M</varname>, donc l'espace engendré par les colonnes de <varname>M</varname>.</para>
 
3972
         </listitem>
 
3973
        </varlistentry>
 
3974
 
 
3975
        <varlistentry>
 
3976
         <term><anchor id="gel-function-CommutationMatrix"/>CommutationMatrix</term>
 
3977
         <listitem>
 
3978
          <synopsis>CommutationMatrix (m, n)</synopsis>
 
3979
          <para>Renvoie la matrice de permutation K(m,n) qui est l'unique matrice m*n par m*n telle que K(m,n) * MakeVector(A) = MakeVector(A.') pour toutes matrices A de taille m par n.</para>
 
3980
         </listitem>
 
3981
        </varlistentry>
 
3982
 
 
3983
        <varlistentry>
 
3984
         <term><anchor id="gel-function-CompanionMatrix"/>CompanionMatrix</term>
 
3985
         <listitem>
 
3986
          <synopsis>CompanionMatrix (p)</synopsis>
 
3987
          <para>Matrice compagnon d'un polynôme (comme vecteur).</para>
 
3988
         </listitem>
 
3989
        </varlistentry>
 
3990
 
 
3991
        <varlistentry>
 
3992
         <term><anchor id="gel-function-ConjugateTranspose"/>ConjugateTranspose</term>
 
3993
         <listitem>
 
3994
          <synopsis>ConjugateTranspose (M)</synopsis>
 
3995
          <para>Transposée conjuguée d'une matrice (matrice adjointe). Identique à l'opérateur <userinput>'</userinput>.</para>
 
3996
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/ConjugateTranspose.html">Planetmath</ulink> pour plus d'informations.</para>
 
3997
         </listitem>
 
3998
        </varlistentry>
 
3999
 
 
4000
        <varlistentry>
 
4001
         <term><anchor id="gel-function-Convolution"/>Convolution</term>
 
4002
         <listitem>
 
4003
          <synopsis>Convolution (a,b)</synopsis>
 
4004
          <para>Alias : <function>convol</function></para>
 
4005
          <para>Calcule la convolution de deux vecteurs horizontaux.</para>
 
4006
         </listitem>
 
4007
        </varlistentry>
 
4008
 
 
4009
        <varlistentry>
 
4010
         <term><anchor id="gel-function-ConvolutionVector"/>ConvolutionVector</term>
 
4011
         <listitem>
 
4012
          <synopsis>ConvolutionVector (a,b)</synopsis>
 
4013
          <para>Calcule la convolution de deux vecteurs horizontaux. Renvoie le résultat sous la forme d'un vecteur dont les composants ne sont pas additionnées ensemble.</para>
 
4014
         </listitem>
 
4015
        </varlistentry>
 
4016
 
 
4017
        <varlistentry>
 
4018
         <term><anchor id="gel-function-CrossProduct"/>CrossProduct</term>
 
4019
         <listitem>
 
4020
          <synopsis>CrossProduct (v,w)</synopsis>
 
4021
          <para>Produit vectoriel de deux vecteurs dans R<superscript>3</superscript> sous la forme d'un vecteur colonne.</para>
 
4022
         </listitem>
 
4023
        </varlistentry>
 
4024
 
 
4025
        <varlistentry>
 
4026
         <term><anchor id="gel-function-DeterminantalDivisorsInteger"/>DeterminantalDivisorsInteger</term>
 
4027
         <listitem>
 
4028
          <synopsis>DeterminantalDivisorsInteger (M)</synopsis>
 
4029
          <para>Renvoie les « determinantal divisors » d'une matrice d'entiers (et non pas son polynôme caractéristique).</para>
 
4030
         </listitem>
 
4031
        </varlistentry>
 
4032
 
 
4033
        <varlistentry>
 
4034
         <term><anchor id="gel-function-DirectSum"/>DirectSum</term>
 
4035
         <listitem>
 
4036
          <synopsis>DirectSum (M,N...)</synopsis>
 
4037
          <para>Somme directe de matrices.</para>
 
4038
         </listitem>
 
4039
        </varlistentry>
 
4040
 
 
4041
        <varlistentry>
 
4042
         <term><anchor id="gel-function-DirectSumMatrixVector"/>DirectSumMatrixVector</term>
 
4043
         <listitem>
 
4044
          <synopsis>DirectSumMatrixVector (v)</synopsis>
 
4045
          <para>Somme directe d'un vecteur de matrices.</para>
 
4046
         </listitem>
 
4047
        </varlistentry>
 
4048
 
 
4049
        <varlistentry>
 
4050
         <term><anchor id="gel-function-Eigenvalues"/>Eigenvalues</term>
 
4051
         <listitem>
 
4052
          <synopsis>Eigenvalues (M)</synopsis>
 
4053
          <para>Alias : <function>eig</function></para>
 
4054
          <para>Renvoie les valeurs propres d'une matrice carrée. Ne fonctionne actuellement que pour les matrices de taille inférieure ou égale à 4 par 4 ou pour les matrices triangulaires (pour lesquelles les valeurs propres sont sur la diagonale).</para>
 
4055
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Valeur_propre,_vecteur_propre_et_espace_propre">Wikipedia</ulink> ou <ulink url="http://planetmath.org/encyclopedia/Eigenvalue.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/Eigenvalue.html">Mathworld</ulink> pour plus d'informations.</para>
 
4056
         </listitem>
 
4057
        </varlistentry>
 
4058
 
 
4059
        <varlistentry>
 
4060
         <term><anchor id="gel-function-Eigenvectors"/>Eigenvectors</term>
 
4061
         <listitem>
 
4062
          <synopsis>Eigenvectors (M)</synopsis>
 
4063
          <synopsis>Eigenvectors (M, &amp;valeurspropres)</synopsis>
 
4064
          <synopsis>Eigenvectors (M, &amp;valeurpropres, &amp;multiplicités)</synopsis>
 
4065
          <para>Renvoie les vecteurs propres d'une matrice carrée. Il est possible en option d'obtenir les valeurs propres ainsi que leur multiplicité algébrique. Ne fonctionne actuellement que pour les matrices 2x2.</para>
 
4066
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Valeur_propre,_vecteur_propre_et_espace_propre">Wikipedia</ulink> ou <ulink url="http://planetmath.org/encyclopedia/Eigenvector.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/Eigenvector.html">Mathworld</ulink> pour plus d'informations.</para>
 
4067
         </listitem>
 
4068
        </varlistentry>
 
4069
 
 
4070
        <varlistentry>
 
4071
         <term><anchor id="gel-function-GramSchmidt"/>GramSchmidt</term>
 
4072
         <listitem>
 
4073
          <synopsis>GramSchmidt (v,B...)</synopsis>
 
4074
          <para>Applique le procédé de Gram-Schmidt (aux colonnes) par rapport au produit scalaire donné par <varname>B</varname>. Si <varname>B</varname> n'est pas fourni alors le produit hermitien standard est utilisé. <varname>B</varname> peut être soit une forme sesquilinéaire à deux arguments soit une matrice fournissant une forme sesquilinéaire. Les vecteurs seront orthogonaux par rapport à <varname>B</varname>.</para>
 
4075
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/GramSchmidtOrthogonalization.html">Planetmath</ulink> pour plus d'informations.</para>
 
4076
         </listitem>
 
4077
        </varlistentry>
 
4078
 
 
4079
        <varlistentry>
 
4080
         <term><anchor id="gel-function-HankelMatrix"/>HankelMatrix</term>
 
4081
         <listitem>
 
4082
          <synopsis>HankelMatrix (c,r)</synopsis>
 
4083
          <para>Matrice de Hankel.</para>
 
4084
         </listitem>
 
4085
        </varlistentry>
 
4086
 
 
4087
        <varlistentry>
 
4088
         <term><anchor id="gel-function-HilbertMatrix"/>HilbertMatrix</term>
 
4089
         <listitem>
 
4090
          <synopsis>HilbertMatrix (n)</synopsis>
 
4091
          <para>Matrice de Hilbert d'ordre <varname>n</varname>.</para>
 
4092
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/HilbertMatrix.html">Planetmath</ulink> pour plus d'informations.</para>
 
4093
         </listitem>
 
4094
        </varlistentry>
 
4095
 
 
4096
        <varlistentry>
 
4097
         <term><anchor id="gel-function-Image"/>Image</term>
 
4098
         <listitem>
 
4099
          <synopsis>Image (T)</synopsis>
 
4100
          <para>Renvoie l'image (espace vectoriel engendré par les colonnes) d'une transformation linéaire.</para>
 
4101
         </listitem>
 
4102
        </varlistentry>
 
4103
 
 
4104
        <varlistentry>
 
4105
         <term><anchor id="gel-function-InfNorm"/>InfNorm</term>
 
4106
         <listitem>
 
4107
          <synopsis>InfNorm (v)</synopsis>
 
4108
          <para>Renvoie la norme « infini », appelée aussi norme sup, ou encore norme de la convergence uniforme.</para>
 
4109
         </listitem>
 
4110
        </varlistentry>
 
4111
 
 
4112
        <varlistentry>
 
4113
         <term><anchor id="gel-function-InvariantFactorsInteger"/>InvariantFactorsInteger</term>
 
4114
         <listitem>
 
4115
          <synopsis>InvariantFactorsInteger (M)</synopsis>
 
4116
          <para>Renvoie les facteurs invariants d'une matrice carrée (pas sa caractéristique).</para>
 
4117
         </listitem>
 
4118
        </varlistentry>
 
4119
 
 
4120
        <varlistentry>
 
4121
         <term><anchor id="gel-function-InverseHilbertMatrix"/>InverseHilbertMatrix</term>
 
4122
         <listitem>
 
4123
          <synopsis>InverseHilbertMatrix (n)</synopsis>
 
4124
          <para>Matrice inverse de Hilbert d'ordre <varname>n</varname>.</para>
 
4125
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/HilbertMatrix.html">Planetmath</ulink> pour plus d'informations.</para>
 
4126
         </listitem>
 
4127
        </varlistentry>
 
4128
 
 
4129
        <varlistentry>
 
4130
         <term><anchor id="gel-function-IsHermitian"/>IsHermitian</term>
 
4131
         <listitem>
 
4132
          <synopsis>IsHermitian (M)</synopsis>
 
4133
          <para>Indique si une matrice est hermitienne. C'est-à-dire si elle est égale à sa transposée conjuguée.</para>
 
4134
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/HermitianMatrix.html">Planetmath</ulink> pour plus d'informations.</para>
 
4135
         </listitem>
 
4136
        </varlistentry>
 
4137
 
 
4138
        <varlistentry>
 
4139
         <term><anchor id="gel-function-IsInSubspace"/>IsInSubspace</term>
 
4140
         <listitem>
 
4141
          <synopsis>IsInSubspace (v,W)</synopsis>
 
4142
          <para>Teste si un vecteur appartient à un sous-espace.</para>
 
4143
         </listitem>
 
4144
        </varlistentry>
 
4145
 
 
4146
        <varlistentry>
 
4147
         <term><anchor id="gel-function-IsInvertible"/>IsInvertible</term>
 
4148
         <listitem>
 
4149
          <synopsis>IsInvertible (n)</synopsis>
 
4150
          <para>Is a matrix (or number) invertible (Integer matrix is invertible if and only if it is invertible over the integers).</para>
 
4151
         </listitem>
 
4152
        </varlistentry>
 
4153
 
 
4154
        <varlistentry>
 
4155
         <term><anchor id="gel-function-IsInvertibleField"/>IsInvertibleField</term>
 
4156
         <listitem>
 
4157
          <synopsis>IsInvertibleField (n)</synopsis>
 
4158
          <para>Indique si une matrice (ou un nombre) est inversible sur un corps.</para>
 
4159
         </listitem>
 
4160
        </varlistentry>
 
4161
 
 
4162
        <varlistentry>
 
4163
         <term><anchor id="gel-function-IsNormal"/>IsNormal</term>
 
4164
         <listitem>
 
4165
          <synopsis>IsNormal (M)</synopsis>
 
4166
          <para>Indique si <varname>M</varname> est une matrice normale, c'est-à-dire <userinput>M*M' == M'*M</userinput>.</para>
 
4167
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/NormalMatrix.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/NormalMatrix.html">Mathworld</ulink> pour plus d'informations.</para>
 
4168
         </listitem>
 
4169
        </varlistentry>
 
4170
 
 
4171
        <varlistentry>
 
4172
         <term><anchor id="gel-function-IsPositiveDefinite"/>IsPositiveDefinite</term>
 
4173
         <listitem>
 
4174
          <synopsis>IsPositiveDefinite (M)</synopsis>
 
4175
          <para>Indique si <varname>M</varname> est une matrice hermitienne définie positive. C'est-à-dire si <userinput>HermitianProduct(M*v,v)</userinput> est toujours strictement positif pour tout vecteur <varname>v</varname>. <varname>M</varname> doit être carré et hermitienne pour être définie positive. Le contrôle effectué est que le déterminant de chaque sous-matrice principale n'est pas négatif (consultez <link linkend="gel-function-HermitianProduct">HermitianProduct</link>).</para>
 
4176
          <para>Notez que certains auteurs (par exemple Mathworld) n'exigent pas que <varname>M</varname> soit hermitienne, ainsi la condition porte sur la partie réelle du produit scalaire mais ce n'est pas le cas de Genius. Si vous souhaitez réaliser ce type de contrôle, vérifiez seulement la partie hermitienne de la matrice <varname>M</varname> comme ceci : <userinput>IsPositiveDefinite(M+M')</userinput>.</para>
 
4177
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/PositiveDefinite.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/PositiveDefiniteMatrix.html">Mathworld</ulink> pour plus d'informations.</para>
 
4178
         </listitem>
 
4179
        </varlistentry>
 
4180
 
 
4181
        <varlistentry>
 
4182
         <term><anchor id="gel-function-IsPositiveSemidefinite"/>IsPositiveSemidefinite</term>
 
4183
         <listitem>
 
4184
          <synopsis>IsPositiveSemidefinite (M)</synopsis>
 
4185
          <para>Indique si <varname>M</varname> est une matrice hermitienne semi-définie positive. C'est-à-dire si <userinput>HermitianProduct(M*v,v)</userinput> est toujours non négatif pour tout vecteur <varname>v</varname>. <varname>M</varname> doit être carré et hermitienne pour être semi-définie positive. Le contrôle effectué est que le déterminant de chaque sous-matrice principale n'est pas négatif (consultez <link linkend="gel-function-HermitianProduct">HermitianProduct</link>).</para>
 
4186
          <para>Notez que certains auteurs n'exigent pas que <varname>M</varname> soit hermitienne, ainsi la condition porte sur la partie réelle du produit scalaire mais ce n'est pas le cas de Genius. Si vous souhaitez réaliser ce type de contrôle, vérifiez seulement la partie hermitienne de la matrice <varname>M</varname> comme ceci : <userinput>IsPositiveSemiDefinite(M+M')</userinput>.</para>
 
4187
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/PositiveSemidefinite.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/PositiveSemidefiniteMatrix.html">Mathworld</ulink> pour plus d'informations.</para>
 
4188
         </listitem>
 
4189
        </varlistentry>
 
4190
 
 
4191
        <varlistentry>
 
4192
         <term><anchor id="gel-function-IsSkewHermitian"/>IsSkewHermitian</term>
 
4193
         <listitem>
 
4194
          <synopsis>IsSkewHermitian (M)</synopsis>
 
4195
          <para>Indique si une matrice est anti-hermitienne. C'est-à-dire si sa transposée conjuguée est égale à l'opposée de la matrice.</para>
 
4196
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/SkewHermitianMatrix.html">Planetmath</ulink> pour plus d'informations.</para>
 
4197
         </listitem>
 
4198
        </varlistentry>
 
4199
 
 
4200
        <varlistentry>
 
4201
         <term><anchor id="gel-function-IsUnitary"/>IsUnitary</term>
 
4202
         <listitem>
 
4203
          <synopsis>IsUnitary (M)</synopsis>
 
4204
          <para>Indique si une matrice est unitaire. C'est-à-dire si <userinput>M'*M</userinput> et <userinput>M*M'</userinput> sont égaux à l'identité.</para>
 
4205
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/UnitaryTransformation.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/UnitaryMatrix.html">Mathworld</ulink> pour plus d'informations.</para>
 
4206
         </listitem>
 
4207
        </varlistentry>
 
4208
 
 
4209
        <varlistentry>
 
4210
         <term><anchor id="gel-function-JordanBlock"/>JordanBlock</term>
 
4211
         <listitem>
 
4212
          <synopsis>JordanBlock (n,lambda)</synopsis>
 
4213
          <para>Alias : <function>J</function></para>
 
4214
          <para>Renvoie le bloc de Jordan correspondant à la valeur propre <varname>lambda</varname> de multiplicité <varname>n</varname>.</para>
 
4215
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/JordanCanonicalFormTheorem.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/JordanBlock.html">Mathworld</ulink> pour plus d'informations.</para>
 
4216
         </listitem>
 
4217
        </varlistentry>
 
4218
 
 
4219
        <varlistentry>
 
4220
         <term><anchor id="gel-function-Kernel"/>Kernel</term>
 
4221
         <listitem>
 
4222
          <synopsis>Kernel (T)</synopsis>
 
4223
          <para>Renvoie le noyau d'une transformation linéaire.</para>
 
4224
          <para>(consultez <link linkend="gel-function-NullSpace">NullSpace</link>)</para>
 
4225
         </listitem>
 
4226
        </varlistentry>
 
4227
 
 
4228
        <varlistentry>
 
4229
         <term><anchor id="gel-function-LUDecomposition"/>LUDecomposition</term>
 
4230
         <listitem>
 
4231
          <synopsis>LUDecomposition (A, L, U)</synopsis>
 
4232
          <para>Calcule la décomposition LU de <varname>A</varname> et enregistre le résultat dans <varname>L</varname> et <varname>U</varname> qui doivent être des références. Renvoie <constant>true</constant> (vrai) en cas de réussite. Par exemple, supposons que A est une matrice carrée, alors après avoir exécuté : <screen><prompt>genius&gt;</prompt> <userinput>LUDecomposition(A,&amp;L,&amp;U)</userinput>
 
4233
</screen> Vous obtenez la matrice inférieure dans une variable appelée <varname>L</varname> et la matrice supérieure dans une variable appelée <varname>U</varname>.</para>
 
4234
          <para>C'est la décomposition LU d'une matrice appelée aussi réduction de Crout ou de Cholesky (ISBN 0-201-11577-8 pp.99-103). La matrice triangulaire supérieure est composée d'une diagonale de 1. Ce n'est pas la méthode de Doolittle pour laquelle la diagonale de 1 est dans la matrice inférieure.</para>
 
4235
          <para>Toutes les matrices ne possèdent pas de décomposition LU, par exemple <userinput>[0,1;1,0]</userinput> n'en a pas. Dans ce cas, cette fonction renvoie <constant>false</constant> (faux) et initialise <varname>L</varname> et <varname>U</varname> à <constant>null</constant>.</para>
 
4236
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/LUDecomposition.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/LUDecomposition.html">Mathworld</ulink> pour plus d'informations.</para>
 
4237
         </listitem>
 
4238
        </varlistentry>
 
4239
 
 
4240
        <varlistentry>
 
4241
         <term><anchor id="gel-function-Minor"/>Minor</term>
 
4242
         <listitem>
 
4243
          <synopsis>Minor (M,i,j)</synopsis>
 
4244
          <para>Renvoie le mineur <varname>i</varname>-<varname>j</varname> d'une matrice.</para>
 
4245
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/Minor.html">Planetmath</ulink> pour plus d'informations.</para>
 
4246
         </listitem>
 
4247
        </varlistentry>
 
4248
 
 
4249
        <varlistentry>
 
4250
         <term><anchor id="gel-function-NonPivotColumns"/>NonPivotColumns</term>
 
4251
         <listitem>
 
4252
          <synopsis>NonPivotColumns (M)</synopsis>
 
4253
          <para>Renvoie les colonnes qui ne sont pas les colonnes pivot d'une matrice.</para>
 
4254
         </listitem>
 
4255
        </varlistentry>
 
4256
 
 
4257
        <varlistentry>
 
4258
         <term><anchor id="gel-function-Norm"/>Norm</term>
 
4259
         <listitem>
 
4260
          <synopsis>Norm (v,p...)</synopsis>
 
4261
          <para>Alias : <function>norm</function></para>
 
4262
          <para>Renvoie la norme-p d'un vecteur (ou norme-2 si p n'est pas fourni).</para>
 
4263
         </listitem>
 
4264
        </varlistentry>
 
4265
 
 
4266
        <varlistentry>
 
4267
         <term><anchor id="gel-function-NullSpace"/>NullSpace</term>
 
4268
         <listitem>
 
4269
          <synopsis>NullSpace (T)</synopsis>
 
4270
          <para>Renvoie le noyau d'une matrice. C'est-à-dire le noyau de l'application linéaire que la matrice représente sous la forme d'une matrice dont l'espace des colonnes est le noyau de <varname>T</varname>.</para>
 
4271
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/Nullspace.html">Planetmath</ulink> pour plus d'informations.</para>
 
4272
         </listitem>
 
4273
        </varlistentry>
 
4274
 
 
4275
        <varlistentry>
 
4276
         <term><anchor id="gel-function-Nullity"/>Nullity</term>
 
4277
         <listitem>
 
4278
          <synopsis>Nullity (M)</synopsis>
 
4279
          <para>Alias : <function>nullity</function></para>
 
4280
          <para>Renvoie la dimension du noyau de la matrice <varname>M</varname>.</para>
 
4281
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/Nullity.html">Planetmath</ulink> pour plus d'informations.</para>
 
4282
         </listitem>
 
4283
        </varlistentry>
 
4284
 
 
4285
        <varlistentry>
 
4286
         <term><anchor id="gel-function-OrthogonalComplement"/>OrthogonalComplement</term>
 
4287
         <listitem>
 
4288
          <synopsis>OrthogonalComplement (M)</synopsis>
 
4289
          <para>Renvoie le complément orthogonal de l'espace des colonnes.</para>
 
4290
         </listitem>
 
4291
        </varlistentry>
 
4292
 
 
4293
        <varlistentry>
 
4294
         <term><anchor id="gel-function-PivotColumns"/>PivotColumns</term>
 
4295
         <listitem>
 
4296
          <synopsis>PivotColumns (M)</synopsis>
 
4297
          <para>Renvoie les numéros des colonnes pivot d'une matrice, c'est-à-dire quelles sont les colonnes d'une matrice réduite qui contiennent 1 en première position. Renvoie également dans quelles lignes se trouvent ces pivots.</para>
 
4298
         </listitem>
 
4299
        </varlistentry>
 
4300
 
 
4301
        <varlistentry>
 
4302
         <term><anchor id="gel-function-Projection"/>Projection</term>
 
4303
         <listitem>
 
4304
          <synopsis>Projection (v,W,B...)</synopsis>
 
4305
          <para>Projection du vecteur <varname>v</varname> sur le sous-espace <varname>W</varname> par rapport au produit scalaire donné par <varname>B</varname>. Si <varname>B</varname> n'est pas fourni alors le produit hermitien standard est utilisé. <varname>B</varname> peut être soit une forme sesquilinéaire à deux arguments soit une matrice fournissant une forme sesquilinéaire.</para>
 
4306
         </listitem>
 
4307
        </varlistentry>
 
4308
 
 
4309
        <varlistentry>
 
4310
         <term><anchor id="gel-function-QRDecomposition"/>QRDecomposition</term>
 
4311
         <listitem>
 
4312
          <synopsis>QRDecomposition (A, Q)</synopsis>
 
4313
          <para>Calcule la décomposition QR d'une matrice carrée <varname>A</varname>, renvoie la matrice triangulaire supérieure <varname>R</varname> et définit <varname>Q</varname> comme la matrice orthogonale (unitaire). <varname>Q</varname> doit être une référence. Si vous ne voulez pas qu'elle soit renvoyée, utilisez <constant>null</constant>. Par exemple : <screen><prompt>genius&gt;</prompt> <userinput>R = QRDecomposition(A,&amp;Q)</userinput>
 
4314
</screen> Vous obtenez la matrice supérieure dans une variable appelée <varname>R</varname> et la matrice orthogonale (unitaire) dans <varname>Q</varname>.</para>
 
4315
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/QRDecomposition.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/QRDecomposition.html">Mathworld</ulink> pour plus d'informations.</para>
 
4316
         </listitem>
 
4317
        </varlistentry>
 
4318
 
 
4319
        <varlistentry>
 
4320
         <term><anchor id="gel-function-RayleighQuotient"/>RayleighQuotient</term>
 
4321
         <listitem>
 
4322
          <synopsis>RayleighQuotient (A,x)</synopsis>
 
4323
          <para>Renvoie le quotient de Rayleigh (aussi appelé le quotient ou rapport de Rayleigh-Ritz) d'une matrice et d'un vecteur.</para>
 
4324
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/RayleighQuotient.html">Planetmath</ulink> pour plus d'informations.</para>
 
4325
         </listitem>
 
4326
        </varlistentry>
 
4327
 
 
4328
        <varlistentry>
 
4329
         <term><anchor id="gel-function-RayleighQuotientIteration"/>RayleighQuotientIteration</term>
 
4330
         <listitem>
 
4331
          <synopsis>RayleighQuotientIteration (A,x,epsilon,maxiter,vecref)</synopsis>
 
4332
          <para>Cherche les valeurs propres de <varname>A</varname> en utilisant la méthode itérative du quotient de Rayleigh. <varname>x</varname> est une valeur initiale estimée pour un vecteur propre et peut être tirée au hasard. Si vous voulez avoir une chance de trouver des valeurs propres complexes, la partie imaginaire ne doit pas être nulle. Le programme effectue au maximum <varname>maxiter</varname> itérations et renvoie <constant>null</constant> s'il ne peut trouver une solution avec une précision inférieure à <varname>epsilon</varname>. <varname>vecref</varname> doit être soit <constant>null</constant> ou une référence à une variable dans laquelle le vecteur propre est enregistré.</para>
 
4333
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/RayleighQuotient.html">Planetmath</ulink> pour plus d'informations sur le quotient de Rayleigh.</para>
 
4334
         </listitem>
 
4335
        </varlistentry>
 
4336
 
 
4337
        <varlistentry>
 
4338
         <term><anchor id="gel-function-Rank"/>Rank</term>
 
4339
         <listitem>
 
4340
          <synopsis>Rank (M)</synopsis>
 
4341
          <para>Alias : <function>rank</function></para>
 
4342
          <para>Renvoie le rang d'une matrice.</para>
 
4343
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/SylvestersLaw.html">Planetmath</ulink> pour plus d'informations.</para>
 
4344
         </listitem>
 
4345
        </varlistentry>
 
4346
 
 
4347
        <varlistentry>
 
4348
         <term><anchor id="gel-function-RosserMatrix"/>RosserMatrix</term>
 
4349
         <listitem>
 
4350
          <synopsis>RosserMatrix ()</synopsis>
 
4351
          <para>Returns the Rosser matrix, which is a classic symmetric eigenvalue test problem.</para>
 
4352
         </listitem>
 
4353
        </varlistentry>
 
4354
 
 
4355
        <varlistentry>
 
4356
         <term><anchor id="gel-function-Rotation2D"/>Rotation2D</term>
 
4357
         <listitem>
 
4358
          <synopsis>Rotation2D (angle)</synopsis>
 
4359
          <para>Alias : <function>RotationMatrix</function></para>
 
4360
          <para>Renvoie la matrice correspondant à la rotation centrée sur l'origine dans R<superscript>2</superscript>.</para>
 
4361
         </listitem>
 
4362
        </varlistentry>
 
4363
 
 
4364
        <varlistentry>
 
4365
         <term><anchor id="gel-function-Rotation3DX"/>Rotation3DX</term>
 
4366
         <listitem>
 
4367
          <synopsis>Rotation3DX (angle)</synopsis>
 
4368
          <para>Renvoie la matrice correspondant à la rotation centrée sur l'origine dans R<superscript>3</superscript> autour de l'axe des x.</para>
 
4369
         </listitem>
 
4370
        </varlistentry>
 
4371
 
 
4372
        <varlistentry>
 
4373
         <term><anchor id="gel-function-Rotation3DY"/>Rotation3DY</term>
 
4374
         <listitem>
 
4375
          <synopsis>Rotation3DY (angle)</synopsis>
 
4376
          <para>Renvoie la matrice correspondant à la rotation centrée sur l'origine dans R<superscript>3</superscript> autour de l'axe des y.</para>
 
4377
         </listitem>
 
4378
        </varlistentry>
 
4379
 
 
4380
        <varlistentry>
 
4381
         <term><anchor id="gel-function-Rotation3DZ"/>Rotation3DZ</term>
 
4382
         <listitem>
 
4383
          <synopsis>Rotation3DZ (angle)</synopsis>
 
4384
          <para>Renvoie la matrice correspondant à la rotation centrée sur l'origine dans R<superscript>3</superscript> autour de l'axe des z.</para>
 
4385
         </listitem>
 
4386
        </varlistentry>
 
4387
 
 
4388
        <varlistentry>
 
4389
         <term><anchor id="gel-function-RowSpace"/>RowSpace</term>
 
4390
         <listitem>
 
4391
          <synopsis>RowSpace (M)</synopsis>
 
4392
          <para>Renvoie une matrice de base pour l'espace vectoriel engendré par les lignes d'une matrice.</para>
 
4393
         </listitem>
 
4394
        </varlistentry>
 
4395
 
 
4396
        <varlistentry>
 
4397
         <term><anchor id="gel-function-SesquilinearForm"/>SesquilinearForm</term>
 
4398
         <listitem>
 
4399
          <synopsis>SesquilinearForm (v,A,w)</synopsis>
 
4400
          <para>Évalue (v, w) par rapport à la forme sesquilinéaire donnée par la matrice A.</para>
 
4401
         </listitem>
 
4402
        </varlistentry>
 
4403
 
 
4404
        <varlistentry>
 
4405
         <term><anchor id="gel-function-SesquilinearFormFunction"/>SesquilinearFormFunction</term>
 
4406
         <listitem>
 
4407
          <synopsis>SesquilinearFormFunction (A)</synopsis>
 
4408
          <para>Renvoie une fonction qui évalue deux vecteurs par rapport à la forme sesquilinéaire donnée par A.</para>
 
4409
         </listitem>
 
4410
        </varlistentry>
 
4411
 
 
4412
        <varlistentry>
 
4413
         <term><anchor id="gel-function-SmithNormalFormField"/>SmithNormalFormField</term>
 
4414
         <listitem>
 
4415
          <synopsis>SmithNormalFormField (A)</synopsis>
 
4416
          <para>Forme normale de Smith pour les corps (se terminera par des 1 sur la diagonale).</para>
 
4417
         </listitem>
 
4418
        </varlistentry>
 
4419
 
 
4420
        <varlistentry>
 
4421
         <term><anchor id="gel-function-SmithNormalFormInteger"/>SmithNormalFormInteger</term>
 
4422
         <listitem>
 
4423
          <synopsis>SmithNormalFormInteger (M)</synopsis>
 
4424
          <para>Forme normale de Smith pour les matrices entières carrées (pas sa caractéristique).</para>
 
4425
         </listitem>
 
4426
        </varlistentry>
 
4427
 
 
4428
        <varlistentry>
 
4429
         <term><anchor id="gel-function-SolveLinearSystem"/>SolveLinearSystem</term>
 
4430
         <listitem>
 
4431
          <synopsis>SolveLinearSystem (M,V,params...)</synopsis>
 
4432
          <para>Résout le système linéaire Mx=V, renvoie V s'il y a une solution unique ou <constant>null</constant> sinon. Deux références d'arguments supplémentaires peuvent être utilisés pour recevoir les réductions de M et V.</para>
 
4433
         </listitem>
 
4434
        </varlistentry>
 
4435
 
 
4436
        <varlistentry>
 
4437
         <term><anchor id="gel-function-ToeplitzMatrix"/>ToeplitzMatrix</term>
 
4438
         <listitem>
 
4439
          <synopsis>ToeplitzMatrix (c, r...)</synopsis>
 
4440
          <para>Renvoie la matrice de Toeplitz construite à partir de la première colonne c et (éventuellement) de la première ligne r. Si seule la colonne c est fournie alors elle est conjuguée et la version non conjuguée est utilisée pour la première ligne pour fournir une matrice hermitienne (si le premier élément est réel bien sûr).</para>
 
4441
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/ToeplitzMatrix.html">Planetmath</ulink> pour plus d'informations.</para>
 
4442
         </listitem>
 
4443
        </varlistentry>
 
4444
 
 
4445
        <varlistentry>
 
4446
         <term><anchor id="gel-function-Trace"/>Trace</term>
 
4447
         <listitem>
 
4448
          <synopsis>Trace (M)</synopsis>
 
4449
          <para>Alias : <function>trace</function></para>
 
4450
          <para>Calcule la trace d'une matrice, c'est-à-dire la somme des éléments diagonaux.</para>
 
4451
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/Trace.html">Planetmath</ulink> pour plus d'informations.</para>
 
4452
         </listitem>
 
4453
        </varlistentry>
 
4454
 
 
4455
        <varlistentry>
 
4456
         <term><anchor id="gel-function-Transpose"/>Transpose</term>
 
4457
         <listitem>
 
4458
          <synopsis>Transpose (M)</synopsis>
 
4459
          <para>Matrice transposée. C'est identique à l'opérateur <userinput>.'</userinput></para>
 
4460
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/Transpose.html">Planetmath</ulink> pour plus d'informations.</para>
 
4461
         </listitem>
 
4462
        </varlistentry>
 
4463
 
 
4464
        <varlistentry>
 
4465
         <term><anchor id="gel-function-VandermondeMatrix"/>VandermondeMatrix</term>
 
4466
         <listitem>
 
4467
          <synopsis>VandermondeMatrix (v)</synopsis>
 
4468
          <para>Alias : <function>vander</function></para>
 
4469
          <para>Renvoie la matrice de Vandermonde.</para>
 
4470
         </listitem>
 
4471
        </varlistentry>
 
4472
 
 
4473
        <varlistentry>
 
4474
         <term><anchor id="gel-function-VectorAngle"/>VectorAngle</term>
 
4475
         <listitem>
 
4476
          <synopsis>VectorAngle (v,w,B...)</synopsis>
 
4477
          <para>L'angle entre deux vecteurs par rapport au produit scalaire donné par <varname>B</varname>. Si <varname>B</varname> n'est pas fourni alors le produit hermitien standard est utilisé. <varname>B</varname> peut être soit une forme sesquilinéaire à deux arguments soit une matrice fournissant une forme sesquilinéaire.</para>
 
4478
         </listitem>
 
4479
        </varlistentry>
 
4480
 
 
4481
        <varlistentry>
 
4482
         <term><anchor id="gel-function-VectorSpaceDirectSum"/>VectorSpaceDirectSum</term>
 
4483
         <listitem>
 
4484
          <synopsis>VectorSpaceDirectSum (M,N)</synopsis>
 
4485
          <para>Somme directe des espaces vectoriels M et N.</para>
 
4486
         </listitem>
 
4487
        </varlistentry>
 
4488
 
 
4489
        <varlistentry>
 
4490
         <term><anchor id="gel-function-VectorSubspaceIntersection"/>VectorSubspaceIntersection</term>
 
4491
         <listitem>
 
4492
          <synopsis>VectorSubspaceIntersection (M,N)</synopsis>
 
4493
          <para>Intersection des sous-espaces donnés par M et N.</para>
 
4494
         </listitem>
 
4495
        </varlistentry>
 
4496
 
 
4497
        <varlistentry>
 
4498
         <term><anchor id="gel-function-VectorSubspaceSum"/>VectorSubspaceSum</term>
 
4499
         <listitem>
 
4500
          <synopsis>VectorSubspaceSum (M,N)</synopsis>
 
4501
          <para>Somme des espaces vectoriels M et N, c'est-à-dire {w | w=m+n, m dans M, n dans N}.</para>
 
4502
         </listitem>
 
4503
        </varlistentry>
 
4504
 
 
4505
        <varlistentry>
 
4506
         <term><anchor id="gel-function-adj"/>adj</term>
 
4507
         <listitem>
 
4508
          <synopsis>adj (m)</synopsis>
 
4509
          <para>Alias : <function>Adjugate</function></para>
 
4510
          <para>Renvoie la matrice adjointe d'une matrice.</para>
 
4511
         </listitem>
 
4512
        </varlistentry>
 
4513
 
 
4514
        <varlistentry>
 
4515
         <term><anchor id="gel-function-cref"/>cref</term>
 
4516
         <listitem>
 
4517
          <synopsis>cref (M)</synopsis>
 
4518
          <para>Alias : <function>CREF</function><function>ColumnReducedEchelonForm</function></para>
 
4519
          <para>Calcule la forme échelonnée réduite en colonnes.</para>
 
4520
         </listitem>
 
4521
        </varlistentry>
 
4522
 
 
4523
        <varlistentry>
 
4524
         <term><anchor id="gel-function-det"/>det</term>
 
4525
         <listitem>
 
4526
          <synopsis>det (M)</synopsis>
 
4527
          <para>Alias : <function>Determinant</function></para>
 
4528
          <para>Renvoie le déterminant d'une matrice.</para>
 
4529
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/D%C3%A9terminant_%28math%C3%A9matiques%29">Wikipedia</ulink> ou <ulink url="http://planetmath.org/encyclopedia/Determinant2.html">Planetmath</ulink> pour plus d'informations.</para>
 
4530
         </listitem>
 
4531
        </varlistentry>
 
4532
 
 
4533
        <varlistentry>
 
4534
         <term><anchor id="gel-function-ref"/>ref</term>
 
4535
         <listitem>
 
4536
          <synopsis>ref (M)</synopsis>
 
4537
          <para>Alias : <function>REF</function><function>RowEchelonForm</function></para>
 
4538
          <para>Renvoie la matrice échelonnée en lignes (row echelon) d'une matrice. C'est-à-dire effectue une élimination de Gauss de <varname>M</varname>. Les lignes de pivot sont divisées pour que tous les pivots soient égaux à 1.</para>
 
4539
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Matrice_%C3%A9chelonn%C3%A9e">Wikipedia</ulink> ou <ulink url="http://planetmath.org/encyclopedia/RowEchelonForm.html">Planetmath</ulink> pour plus d'informations.</para>
 
4540
         </listitem>
 
4541
        </varlistentry>
 
4542
 
 
4543
        <varlistentry>
 
4544
         <term><anchor id="gel-function-rref"/>rref</term>
 
4545
         <listitem>
 
4546
          <synopsis>rref (M)</synopsis>
 
4547
          <para>Alias : <function>RREF</function><function>ReducedRowEchelonForm</function></para>
 
4548
          <para>Renvoie la matrice échelonnée réduite en lignes (reduced row echelon) d'une matrice. C'est-à-dire effectue une élimination de Gauss-Jordan de <varname>M</varname>.</para>
 
4549
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Matrice_%C3%A9chelonn%C3%A9e">Wikipedia</ulink> ou <ulink url="http://planetmath.org/encyclopedia/ReducedRowEchelonForm.html">Planetmath</ulink> pour plus d'informations.</para>
 
4550
         </listitem>
 
4551
        </varlistentry>
 
4552
 
 
4553
      </variablelist>
 
4554
    </sect1>
 
4555
 
 
4556
    <sect1 id="genius-gel-function-list-combinatorics">
 
4557
      <title>Combinatoire</title>
 
4558
      <variablelist>
 
4559
        <varlistentry>
 
4560
         <term><anchor id="gel-function-Catalan"/>Catalan</term>
 
4561
         <listitem>
 
4562
          <synopsis>Catalan (n)</synopsis>
 
4563
          <para>Renvoie le <varname>n</varname>-ième nombre catalan.</para>
 
4564
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/CatalanNumbers.html">Planetmath</ulink> pour plus d'informations.</para>
 
4565
         </listitem>
 
4566
        </varlistentry>
 
4567
 
 
4568
        <varlistentry>
 
4569
         <term><anchor id="gel-function-Combinations"/>Combinations</term>
 
4570
         <listitem>
 
4571
          <synopsis>Combinations (k,n)</synopsis>
 
4572
          <para>Renvoie toutes les combinaisons de k nombres de 1 à n comme un vecteur de vecteurs (consultez aussi <link linkend="gel-function-NextCombination">NextCombination</link>).</para>
 
4573
         </listitem>
 
4574
        </varlistentry>
 
4575
 
 
4576
        <varlistentry>
 
4577
         <term><anchor id="gel-function-DoubleFactorial"/>DoubleFactorial</term>
 
4578
         <listitem>
 
4579
          <synopsis>DoubleFactorial (n)</synopsis>
 
4580
          <para>Double factorielle : <userinput>n(n-2)(n-4)...</userinput></para>
 
4581
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/DoubleFactorial.html">Planetmath</ulink> pour plus d'informations.</para>
 
4582
         </listitem>
 
4583
        </varlistentry>
 
4584
 
 
4585
        <varlistentry>
 
4586
         <term><anchor id="gel-function-Factorial"/>Factorial</term>
 
4587
         <listitem>
 
4588
          <synopsis>Factorial (n)</synopsis>
 
4589
          <para>Factorielle : <userinput>n(n-1)(n-2)...</userinput></para>
 
4590
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/Factorial.html">Planetmath</ulink> pour plus d'informations.</para>
 
4591
         </listitem>
 
4592
        </varlistentry>
 
4593
 
 
4594
        <varlistentry>
 
4595
         <term><anchor id="gel-function-FallingFactorial"/>FallingFactorial</term>
 
4596
         <listitem>
 
4597
          <synopsis>FallingFactorial (n,k)</synopsis>
 
4598
          <para>Factorielle décroissante : <userinput>(n)_k·=·n(n-1)...(n-(k-1))</userinput></para>
 
4599
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/FallingFactorial.html">Planetmath</ulink> pour plus d'informations.</para>
 
4600
         </listitem>
 
4601
        </varlistentry>
 
4602
 
 
4603
        <varlistentry>
 
4604
         <term><anchor id="gel-function-Fibonacci"/>Fibonacci</term>
 
4605
         <listitem>
 
4606
          <synopsis>Fibonacci (x)</synopsis>
 
4607
          <para>Alias : <function>fib</function></para>
 
4608
          <para>Calcule le <varname>n</varname>-ième nombre de Fibonacci. C'est-à-dire le nombre défini de manière récursive par <userinput>Fibonacci(n) = Fibonacci(n-1) + Fibonacci(n-2)</userinput> et <userinput>Fibonacci(1) = Fibonacci(2) = 1</userinput>.</para>
 
4609
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Suite_de_Fibonacci">Wikipedia</ulink> ou <ulink url="http://planetmath.org/encyclopedia/FibonacciSequence.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/FibonacciNumber.html">Mathworld</ulink> pour plus d'informations.</para>
 
4610
         </listitem>
 
4611
        </varlistentry>
 
4612
 
 
4613
        <varlistentry>
 
4614
         <term><anchor id="gel-function-FrobeniusNumber"/>FrobeniusNumber</term>
 
4615
         <listitem>
 
4616
          <synopsis>FrobeniusNumber (v,param...)</synopsis>
 
4617
          <para>Calcule le nombre de Frobenius. C'est-à-dire calcule le plus petit nombre qui ne peut pas être obtenu comme une combinaison linéaire d'entiers non négatifs d'un vecteur donné d'entiers non négatifs. Le vecteur peut être fourni sous la forme de nombre séparés ou d'un seul vecteur. Tous les nombres fournis doivent avoir un PGCD de 1.</para>
 
4618
          <para>Consultez <ulink url="http://mathworld.wolfram.com/FrobeniusNumber.html">Mathworld</ulink> pour plus d'informations.</para>
 
4619
         </listitem>
 
4620
        </varlistentry>
 
4621
 
 
4622
        <varlistentry>
 
4623
         <term><anchor id="gel-function-GaloisMatrix"/>GaloisMatrix</term>
 
4624
         <listitem>
 
4625
          <synopsis>GaloisMatrix (règle_de_combinaison)</synopsis>
 
4626
          <para>Matrice de Galois étant donnée la règle de combinaison linéaire (a_1*x_+...+a_n*x_n=x_(n+1)).</para>
 
4627
         </listitem>
 
4628
        </varlistentry>
 
4629
 
 
4630
        <varlistentry>
 
4631
         <term><anchor id="gel-function-GreedyAlgorithm"/>GreedyAlgorithm</term>
 
4632
         <listitem>
 
4633
          <synopsis>FrobeniusNumber (n,v)</synopsis>
 
4634
          <para>Trouve le vecteur <varname>c</varname> d'entiers non négatifs tel que le produit scalaire par <varname>v</varname> est égal à n. Si ce n'est pas possible, renvoie <constant>null</constant>. <varname>v</varname> doit être fourni trié dans l'ordre croissant et doit être composé d'entier non négatif.</para>
 
4635
          <para>Consultez <ulink url="http://mathworld.wolfram.com/GreedyAlgorithm.html">Mathworld</ulink> pour plus d'informations.</para>
 
4636
         </listitem>
 
4637
        </varlistentry>
 
4638
 
 
4639
        <varlistentry>
 
4640
         <term><anchor id="gel-function-HarmonicNumber"/>HarmonicNumber</term>
 
4641
         <listitem>
 
4642
          <synopsis>HarmonicNumber (n,r)</synopsis>
 
4643
          <para>Alias : <function>HarmonicH</function></para>
 
4644
          <para>Nombre harmonique, le <varname>n</varname>-ième nombre harmonique d'ordre <varname>r</varname>.</para>
 
4645
         </listitem>
 
4646
        </varlistentry>
 
4647
 
 
4648
        <varlistentry>
 
4649
         <term><anchor id="gel-function-Hofstadter"/>Hofstadter</term>
 
4650
         <listitem>
 
4651
          <synopsis>Hofstadter (n)</synopsis>
 
4652
          <para>Fonction de Hofstadter q(n) définie par q(1)=1, q(2)=1, q(n)=q(n-q(n-1))+q(n-q(n-2)).</para>
 
4653
         </listitem>
 
4654
        </varlistentry>
 
4655
 
 
4656
        <varlistentry>
 
4657
         <term><anchor id="gel-function-LinearRecursiveSequence"/>LinearRecursiveSequence</term>
 
4658
         <listitem>
 
4659
          <synopsis>LinearRecursiveSequence (valeurs_ensemencement,règle_de_combinaison,n)</synopsis>
 
4660
          <para>Calcule la relation de récurrence linéaire en utilisant l'algorithme de Galois.</para>
 
4661
         </listitem>
 
4662
        </varlistentry>
 
4663
 
 
4664
        <varlistentry>
 
4665
         <term><anchor id="gel-function-Multinomial"/>Multinomial</term>
 
4666
         <listitem>
 
4667
          <synopsis>Multinomial (v,param...)</synopsis>
 
4668
          <para>Calcule les coefficients multinomiaux. Prend un vecteur de <varname>k</varname> entiers non négatifs et calcule les coefficients multinomiaux. Cela correspond aux coefficients dans le polynôme homogène à <varname>k</varname> variables avec les puissances correspondantes.</para>
 
4669
          <para>La formule pour <userinput>Multinomial(a,b,c)</userinput> peut s'écrire sous la forme :<programlisting>(a+b+c)! / (a!b!c!)
 
4670
</programlisting> En d'autres termes, si vous n'avez que deux éléments alors <userinput>Multinomial(a,b)</userinput> est la même chose que <userinput>Binomial(a+b,a)</userinput> ou <userinput>Binomial(a+b,b)</userinput>.</para>
 
4671
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/MultinomialTheorem.html">Planetmath</ulink>, <ulink url="http://mathworld.wolfram.com/MultinomialCoefficient.html">Mathworld</ulink> ou <ulink url="http://fr.wikipedia.org/wiki/Formule_du_multin%C3%B4me">Wikipedia</ulink> pour plus d'informations.</para>
 
4672
         </listitem>
 
4673
        </varlistentry>
 
4674
 
 
4675
        <varlistentry>
 
4676
         <term><anchor id="gel-function-NextCombination"/>NextCombination</term>
 
4677
         <listitem>
 
4678
          <synopsis>NextCombination (v,n)</synopsis>
 
4679
          <para>Calcule la combinaison qui apparaîtrait après v dans un appel à la fonction combinations, la première combinaison devrait être <userinput>[1:k]</userinput>. Cette fonction est utile si vous devez parcourir beaucoup de combinaisons et que vous ne voulez pas gaspiller de la mémoire pour les enregistrer.</para>
 
4680
          <para>Par exemple, avec la fonction Combinations, vous devriez normalement écrire une boucle du style : <screen><userinput>for n in Combinations (4,6) do (
 
4681
  SomeFunction (n)
 
4682
);</userinput>
 
4683
</screen> Mais avec NextCombination, vous écrivez quelque chose comme cela : <screen><userinput>n:=[1:4];
 
4684
do (
 
4685
  SomeFunction (n)
 
4686
) while not IsNull(n:=NextCombination(n,6));</userinput>
 
4687
</screen> Consultez également <link linkend="gel-function-Combinations">Combinations</link>.</para>
 
4688
         </listitem>
 
4689
        </varlistentry>
 
4690
 
 
4691
        <varlistentry>
 
4692
         <term><anchor id="gel-function-Pascal"/>Pascal</term>
 
4693
         <listitem>
 
4694
          <synopsis>Pascal (i)</synopsis>
 
4695
          <para>Calcule le triangle de Pascal sous la forme d'une matrice. Cela renvoie une matrice <varname>i</varname>+1 par <varname>i</varname>+1 diagonale inférieure qui est le triangle de Pascal après <varname>i</varname> itérations.</para>
 
4696
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/PascalsTriangle.html">Planetmath</ulink> pour plus d'informations.</para>
 
4697
         </listitem>
 
4698
        </varlistentry>
 
4699
 
 
4700
        <varlistentry>
 
4701
         <term><anchor id="gel-function-Permutations"/>Permutations</term>
 
4702
         <listitem>
 
4703
          <synopsis>Permutations (k,n)</synopsis>
 
4704
          <para>Renvoie toutes les permutations de <varname>k</varname> nombres de 1 à <varname>n</varname> comme un vecteur de vecteurs.</para>
 
4705
          <para>Consultez <ulink url="http://mathworld.wolfram.com/Permutation.html">Mathworld</ulink> ou <ulink url="http://fr.wikipedia.org/wiki/Permutation">Wikipedia</ulink> pour plus d'informations.</para>
 
4706
         </listitem>
 
4707
        </varlistentry>
 
4708
 
 
4709
        <varlistentry>
 
4710
         <term><anchor id="gel-function-RisingFactorial"/>RisingFactorial</term>
 
4711
         <listitem>
 
4712
          <synopsis>RisingFactorial (n,k)</synopsis>
 
4713
          <para>Alias : <function>Pochhammer</function></para>
 
4714
          <para>Factorielle croissante (Pochhammer) : (n)_k = n(n+1)...(n+(k-1)).</para>
 
4715
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/RisingFactorial.html">Planetmath</ulink> pour plus d'informations.</para>
 
4716
         </listitem>
 
4717
        </varlistentry>
 
4718
 
 
4719
        <varlistentry>
 
4720
         <term><anchor id="gel-function-StirlingNumberFirst"/>StirlingNumberFirst</term>
 
4721
         <listitem>
 
4722
          <synopsis>StirlingNumberFirst (n,m)</synopsis>
 
4723
          <para>Alias : <function>StirlingS1</function></para>
 
4724
          <para>Nombre de Stirling du premier type.</para>
 
4725
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/StirlingNumbersOfTheFirstKind.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/StirlingNumberoftheFirstKind.html">Mathworld</ulink> pour plus d'informations.</para>
 
4726
         </listitem>
 
4727
        </varlistentry>
 
4728
 
 
4729
        <varlistentry>
 
4730
         <term><anchor id="gel-function-StirlingNumberSecond"/>StirlingNumberSecond</term>
 
4731
         <listitem>
 
4732
          <synopsis>StirlingNumberSecond (n,m)</synopsis>
 
4733
          <para>Alias : <function>StirlingS2</function></para>
 
4734
          <para>Nombre de Stirling du second type.</para>
 
4735
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/StirlingNumbersSecondKind.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/StirlingNumberoftheSecondKind.html">Mathworld</ulink> pour plus d'informations.</para>
 
4736
         </listitem>
 
4737
        </varlistentry>
 
4738
 
 
4739
        <varlistentry>
 
4740
         <term><anchor id="gel-function-Subfactorial"/>Subfactorial</term>
 
4741
         <listitem>
 
4742
          <synopsis>Subfactorial (n)</synopsis>
 
4743
          <para>Sous-factorielle : n! multiplié par sum_{k=1}^n (-1)^k/k!.</para>
 
4744
         </listitem>
 
4745
        </varlistentry>
 
4746
 
 
4747
        <varlistentry>
 
4748
         <term><anchor id="gel-function-Triangular"/>Triangular</term>
 
4749
         <listitem>
 
4750
          <synopsis>Triangular (nième)</synopsis>
 
4751
          <para>Calcule le <varname>n</varname>-ième nombre triangulaire.</para>
 
4752
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/TriangularNumbers.html">Planetmath</ulink> pour plus d'informations.</para>
 
4753
         </listitem>
 
4754
        </varlistentry>
 
4755
 
 
4756
        <varlistentry>
 
4757
         <term><anchor id="gel-function-nCr"/>nCr</term>
 
4758
         <listitem>
 
4759
          <synopsis>nCr (n,r)</synopsis>
 
4760
          <para>Alias : <function>Binomial</function></para>
 
4761
          <para>Calcule le nombre de combinaisons, c'est-à-dire le coefficient binomial. <varname>n</varname> peut être n'importe quel nombre réel.</para>
 
4762
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/Choose.html">Planetmath</ulink> pour plus d'informations.</para>
 
4763
         </listitem>
 
4764
        </varlistentry>
 
4765
 
 
4766
        <varlistentry>
 
4767
         <term><anchor id="gel-function-nPr"/>nPr</term>
 
4768
         <listitem>
 
4769
          <synopsis>nPr (n,r)</synopsis>
 
4770
          <para>Calcule le nombre de permutations de taille <varname>r</varname> de nombres compris entre 1 et <varname>n</varname>.</para>
 
4771
          <para>Consultez <ulink url="http://mathworld.wolfram.com/Permutation.html">Mathworld</ulink> ou <ulink url="http://fr.wikipedia.org/wiki/Permutation">Wikipedia</ulink> pour plus d'informations.</para>
 
4772
         </listitem>
 
4773
        </varlistentry>
 
4774
 
 
4775
      </variablelist>
 
4776
    </sect1>
 
4777
 
 
4778
    <sect1 id="genius-gel-function-list-calculus">
 
4779
      <title>Analyse</title>
 
4780
      <variablelist>
 
4781
        <varlistentry>
 
4782
         <term><anchor id="gel-function-CompositeSimpsonsRule"/>CompositeSimpsonsRule</term>
 
4783
         <listitem>
 
4784
          <synopsis>CompositeSimpsonsRule (f,a,b,n)</synopsis>
 
4785
          <para>Intégration de f par la méthode de Simpson composée sur l'intervalle [a,b] avec n sous-intervalles avec une erreur de l'ordre max(f'''')*h^4*(b-a)/180, notez que n doit être pair.</para>
 
4786
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/SimpsonsRule.html">Planetmath</ulink> pour plus d'informations.</para>
 
4787
         </listitem>
 
4788
        </varlistentry>
 
4789
 
 
4790
        <varlistentry>
 
4791
         <term><anchor id="gel-function-CompositeSimpsonsRuleTolerance"/>CompositeSimpsonsRuleTolerance</term>
 
4792
         <listitem>
 
4793
          <synopsis>CompositeSimpsonsRuleTolerance (f,a,b,FourthDerivativeBound,Tolerance)</synopsis>
 
4794
          <para>Intégration de f par la méthode de Simpson composée sur l'intervalle [a,b] avec un nombre d'étapes calculé à l'aide de la borne de la dérivée quatrième et la tolérance souhaitée.</para>
 
4795
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/SimpsonsRule.html">Planetmath</ulink> pour plus d'informations.</para>
 
4796
         </listitem>
 
4797
        </varlistentry>
 
4798
 
 
4799
        <varlistentry>
 
4800
         <term><anchor id="gel-function-Derivative"/>Derivative</term>
 
4801
         <listitem>
 
4802
          <synopsis>Derivative (f,x0)</synopsis>
 
4803
          <para>Tente de calculer la dérivée en essayant d'abord une approche symbolique puis numérique.</para>
 
4804
         </listitem>
 
4805
        </varlistentry>
 
4806
 
 
4807
        <varlistentry>
 
4808
         <term><anchor id="gel-function-EvenPeriodicExtension"/>EvenPeriodicExtension</term>
 
4809
         <listitem>
 
4810
          <synopsis>EvenPeriodicExtension (f,L)</synopsis>
 
4811
          <para>Renvoie une fonction qui est l'extension périodique paire de <function>f</function> de demi-période <varname>L</varname>. C'est-à-dire une fonction définie sur l'intervalle <userinput>[0,L]</userinput> étendue de manière à être paire sur <userinput>[-L,L]</userinput> puis rendue périodique de période <userinput>2*L</userinput>.</para>
 
4812
          <para>Consultez aussi <link linkend="gel-function-OddPeriodicExtension">OddPeriodicExtension</link> et <link linkend="gel-function-PeriodicExtension">PeriodicExtension</link>.</para>
 
4813
         </listitem>
 
4814
        </varlistentry>
 
4815
 
 
4816
        <varlistentry>
 
4817
         <term><anchor id="gel-function-FourierSeriesFunction"/>FourierSeriesFunction</term>
 
4818
         <listitem>
 
4819
          <synopsis>FourierSeriesFunction (a,b,L)</synopsis>
 
4820
          <para>Renvoie une fonction qui est la série de Fourier de coefficients donnés par les vecteurs <varname>a</varname> (cosinus) et <varname>b</varname> (sinus). Notez que <userinput>a@(1)</userinput> est le coefficient constant donc <userinput>a@(n)</userinput> se rapporte au terme en <userinput>cos(x*(n-1)*pi/L)</userinput> alors que <userinput>b@(n)</userinput> se rapporte au terme en <userinput>sin(x*n*pi/L)</userinput>. Il est possible que <varname>a</varname> ou <varname>b</varname> soit <constant>null</constant>.</para>
 
4821
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/S%C3%A9rie_de_Fourier">Wikipedia</ulink> ou <ulink url="http://mathworld.wolfram.com/FourierSeries.html">Mathworld</ulink> pour plus d'informations.</para>
 
4822
         </listitem>
 
4823
        </varlistentry>
 
4824
 
 
4825
        <varlistentry>
 
4826
         <term><anchor id="gel-function-InfiniteProduct"/>InfiniteProduct</term>
 
4827
         <listitem>
 
4828
          <synopsis>InfiniteProduct (fonc,début,inc)</synopsis>
 
4829
          <para>Essaie de calculer un produit infini pour une fonction à un seul argument.</para>
 
4830
         </listitem>
 
4831
        </varlistentry>
 
4832
 
 
4833
        <varlistentry>
 
4834
         <term><anchor id="gel-function-InfiniteProduct2"/>InfiniteProduct2</term>
 
4835
         <listitem>
 
4836
          <synopsis>InfiniteProduct2 (fonc,param,début,inc)</synopsis>
 
4837
          <para>Essaie de calculer un produit infini pour une fonction à double arguments avec func(arg,n).</para>
 
4838
         </listitem>
 
4839
        </varlistentry>
 
4840
 
 
4841
        <varlistentry>
 
4842
         <term><anchor id="gel-function-InfiniteSum"/>InfiniteSum</term>
 
4843
         <listitem>
 
4844
          <synopsis>InfiniteSum (fonc,début,inc)</synopsis>
 
4845
          <para>Essaie de calculer une somme infinie pour une fonction à un seul argument.</para>
 
4846
         </listitem>
 
4847
        </varlistentry>
 
4848
 
 
4849
        <varlistentry>
 
4850
         <term><anchor id="gel-function-InfiniteSum2"/>InfiniteSum2</term>
 
4851
         <listitem>
 
4852
          <synopsis>InfiniteSum2 (fonc,param,début,inc)</synopsis>
 
4853
          <para>Essaie de calculer une somme infinie pour une fonction à double arguments avec func(arg,n).</para>
 
4854
         </listitem>
 
4855
        </varlistentry>
 
4856
 
 
4857
        <varlistentry>
 
4858
         <term><anchor id="gel-function-IsContinuous"/>IsContinuous</term>
 
4859
         <listitem>
 
4860
          <synopsis>IsContinuous (f,x0)</synopsis>
 
4861
          <para>Essaie de voir si une fonction à valeur réelle est continue en x0 en calculant la limite en ce point.</para>
 
4862
         </listitem>
 
4863
        </varlistentry>
 
4864
 
 
4865
        <varlistentry>
 
4866
         <term><anchor id="gel-function-IsDifferentiable"/>IsDifferentiable</term>
 
4867
         <listitem>
 
4868
          <synopsis>IsDifferentiable (f,x0)</synopsis>
 
4869
          <para>Teste de différentiabilité en approchant les limites gauche et droite et en les comparant.</para>
 
4870
         </listitem>
 
4871
        </varlistentry>
 
4872
 
 
4873
        <varlistentry>
 
4874
         <term><anchor id="gel-function-LeftLimit"/>LeftLimit</term>
 
4875
         <listitem>
 
4876
          <synopsis>LeftLimit (f,x0)</synopsis>
 
4877
          <para>Calcule la limite gauche d'une fonction à valeurs réelles en x0.</para>
 
4878
         </listitem>
 
4879
        </varlistentry>
 
4880
 
 
4881
        <varlistentry>
 
4882
         <term><anchor id="gel-function-Limit"/>Limit</term>
 
4883
         <listitem>
 
4884
          <synopsis>Limit (f,x0)</synopsis>
 
4885
          <para>Calcule la limite d'une fonction à valeur réelle en x0. Essaie de calculer les deux limites à gauche et à droite.</para>
 
4886
         </listitem>
 
4887
        </varlistentry>
 
4888
 
 
4889
        <varlistentry>
 
4890
         <term><anchor id="gel-function-MidpointRule"/>MidpointRule</term>
 
4891
         <listitem>
 
4892
          <synopsis>MidpointRule (f,a,b,n)</synopsis>
 
4893
          <para>Intégration par la méthode des rectangles.</para>
 
4894
         </listitem>
 
4895
        </varlistentry>
 
4896
 
 
4897
        <varlistentry>
 
4898
         <term><anchor id="gel-function-NumericalDerivative"/>NumericalDerivative</term>
 
4899
         <listitem>
 
4900
          <synopsis>NumericalDerivative (f,x0)</synopsis>
 
4901
          <para>Alias : <function>NDerivative</function></para>
 
4902
          <para>Essaie de calculer la dérivée par méthode numérique.</para>
 
4903
         </listitem>
 
4904
        </varlistentry>
 
4905
 
 
4906
        <varlistentry>
 
4907
         <term><anchor id="gel-function-NumericalFourierSeriesCoefficients"/>NumericalFourierSeriesCoefficients</term>
 
4908
         <listitem>
 
4909
          <synopsis>NumericalFourierSeriesCoefficients (f,L,N)</synopsis>
 
4910
          <para>Renvoie un vecteur de vecteurs <userinput>[a,b]</userinput> où <varname>a</varname> sont les coefficients des cosinus et <varname>b</varname> ceux des sinus de la série de Fourier de la fonction <function>f</function> de demi-période <varname>L</varname> (définie sur l'intervalle <userinput>[-L,L]</userinput> et étendue de manière périodique), calculée numériquement jusqu'au <varname>N</varname>-ième harmonique. Les coefficients sont calculés par intégration numérique en utilisant la fonction <function>NumericalIntegral</function>.</para>
 
4911
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/S%C3%A9rie_de_Fourier">Wikipedia</ulink> ou <ulink url="http://mathworld.wolfram.com/FourierSeries.html">Mathworld</ulink> pour plus d'informations.</para>
 
4912
         </listitem>
 
4913
        </varlistentry>
 
4914
 
 
4915
        <varlistentry>
 
4916
         <term><anchor id="gel-function-NumericalFourierSeriesFunction"/>NumericalFourierSeriesFunction</term>
 
4917
         <listitem>
 
4918
          <synopsis>NumericalFourierSeriesFunction (f,L,N)</synopsis>
 
4919
          <para>Renvoie une fonction, qui est la série de Fourier de la fonction <function>f</function> de demi-période <varname>L</varname> (définie sur l'intervalle <userinput>[-L,L]</userinput> et étendue de manière périodique), calculée numériquement jusqu'au <varname>N</varname>-ième harmonique. C'est la série trigonométrique réelle composée de sinus et de cosinus. Les coefficients sont calculés par intégration numérique en utilisant la fonction <function>NumericalIntegral</function>.</para>
 
4920
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/S%C3%A9rie_de_Fourier">Wikipedia</ulink> ou <ulink url="http://mathworld.wolfram.com/FourierSeries.html">Mathworld</ulink> pour plus d'informations.</para>
 
4921
         </listitem>
 
4922
        </varlistentry>
 
4923
 
 
4924
        <varlistentry>
 
4925
         <term><anchor id="gel-function-NumericalFourierCosineSeriesCoefficients"/>NumericalFourierCosineSeriesCoefficients</term>
 
4926
         <listitem>
 
4927
          <synopsis>NumericalFourierCosineSeriesCoefficients (f,L,N)</synopsis>
 
4928
          <para>Return a vector of coefficients of 
 
4929
the cosine Fourier series of
 
4930
<function>f</function> with half-period <varname>L</varname>.  That is,
 
4931
we take <function>f</function> defined on <userinput>[0,L]</userinput>
 
4932
take the even periodic extension and compute the Fourier series, which
 
4933
only has cosine terms.  The series is computed up to the 
 
4934
<varname>N</varname>th harmonic.  The coefficients are
 
4935
computed by numerical integration using
 
4936
<function>NumericalIntegral</function>.
 
4937
Note that <userinput>a@(1)</userinput> is
 
4938
the constant coefficient!  That is, <userinput>a@(n)</userinput> refers to
 
4939
the term <userinput>cos(x*(n-1)*pi/L)</userinput>.</para>
 
4940
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/S%C3%A9rie_de_Fourier">Wikipedia</ulink> ou <ulink url="http://mathworld.wolfram.com/FourierCosineSeries.html">Mathworld</ulink> pour plus d'informations.</para>
 
4941
          </listitem>
 
4942
        </varlistentry>
 
4943
 
 
4944
        <varlistentry>
 
4945
         <term><anchor id="gel-function-NumericalFourierCosineSeriesFunction"/>NumericalFourierCosineSeriesFunction</term>
 
4946
         <listitem>
 
4947
          <synopsis>NumericalFourierCosineSeriesFunction (f,L,N)</synopsis>
 
4948
          <para>Renvoie une fonction qui est la série de Fourier en cosinus de <function>f</function> de demi-période <varname>L</varname>. C'est-à-dire la fonction <function>f</function> définie sur l'intervalle <userinput>[0,L]</userinput> est étendue en la rendant périodique paire, puis la série de Fourier qui ne contient que des termes en cosinus, est calculée. La série est calculée jusqu'au <varname>N</varname>-ième harmonique. Les coefficients sont calculés par intégration numérique en utilisant la fonction <function>NumericalIntegral</function>.</para>
 
4949
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/S%C3%A9rie_de_Fourier">Wikipedia</ulink> ou <ulink url="http://mathworld.wolfram.com/FourierCosineSeries.html">Mathworld</ulink> pour plus d'informations.</para>
 
4950
         </listitem>
 
4951
        </varlistentry>
 
4952
 
 
4953
        <varlistentry>
 
4954
         <term><anchor id="gel-function-NumericalFourierSineSeriesCoefficients"/>NumericalFourierSineSeriesCoefficients</term>
 
4955
         <listitem>
 
4956
          <synopsis>NumericalFourierSineSeriesCoefficients (f,L,N)</synopsis>
 
4957
          <para>Return a vector of coefficients of 
 
4958
the sine Fourier series of
 
4959
<function>f</function> with half-period <varname>L</varname>.  That is,
 
4960
we take <function>f</function> defined on <userinput>[0,L]</userinput>
 
4961
take the odd periodic extension and compute the Fourier series, which
 
4962
only has sine terms.  The series is computed up to the 
 
4963
<varname>N</varname>th harmonic.  The coefficients are
 
4964
computed by numerical integration using
 
4965
<function>NumericalIntegral</function>.</para>
 
4966
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/S%C3%A9rie_de_Fourier">Wikipedia</ulink> ou <ulink url="http://mathworld.wolfram.com/FourierSineSeries.html">Mathworld</ulink> pour plus d'informations.</para>
 
4967
         </listitem>
 
4968
        </varlistentry>
 
4969
 
 
4970
        <varlistentry>
 
4971
         <term><anchor id="gel-function-NumericalFourierSineSeriesFunction"/>NumericalFourierSineSeriesFunction</term>
 
4972
         <listitem>
 
4973
          <synopsis>NumericalFourierSineSeriesFunction (f,L,N)</synopsis>
 
4974
          <para>Renvoie une fonction qui est la série de Fourier en sinus de <function>f</function> de demi-période <varname>L</varname>. C'est-à-dire la fonction <function>f</function> définie sur l'intervalle <userinput>[0,L]</userinput> est étendue en la rendant périodique impaire, puis la série de Fourier qui ne contient que des termes en sinus, est calculée. La série est calculée jusqu'au <varname>N</varname>-ième harmonique. Les coefficients sont calculés par intégration numérique en utilisant la fonction <function>NumericalIntegral</function>.</para>
 
4975
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/S%C3%A9rie_de_Fourier">Wikipedia</ulink> ou <ulink url="http://mathworld.wolfram.com/FourierSineSeries.html">Mathworld</ulink> pour plus d'informations.</para>
 
4976
         </listitem>
 
4977
        </varlistentry>
 
4978
 
 
4979
        <varlistentry>
 
4980
         <term><anchor id="gel-function-NumericalIntegral"/>NumericalIntegral</term>
 
4981
         <listitem>
 
4982
          <synopsis>NumericalIntegral (f,a,b)</synopsis>
 
4983
          <para>Intégration de f entre a et b, en suivant la règle définie par <varname>NumericalIntegralFunction</varname> et en utilisant les <varname>NumericalIntegralSteps</varname> pas.</para>
 
4984
         </listitem>
 
4985
        </varlistentry>
 
4986
 
 
4987
        <varlistentry>
 
4988
         <term><anchor id="gel-function-NumericalLeftDerivative"/>NumericalLeftDerivative</term>
 
4989
         <listitem>
 
4990
          <synopsis>NumericalLeftDerivative (f,x0)</synopsis>
 
4991
          <para>Essaie de calculer la dérivée à gauche par méthode numérique.</para>
 
4992
         </listitem>
 
4993
        </varlistentry>
 
4994
 
 
4995
        <varlistentry>
 
4996
         <term><anchor id="gel-function-NumericalLimitAtInfinity"/>NumericalLimitAtInfinity</term>
 
4997
         <listitem>
 
4998
          <synopsis>NumericalLimitAtInfinity (_f,step_fun,tolerance,successive_for_success,N)</synopsis>
 
4999
          <para>Essaie de calculer la limite de f (step_fun(i)) lorsque i va de 1 à N.</para>
 
5000
         </listitem>
 
5001
        </varlistentry>
 
5002
 
 
5003
        <varlistentry>
 
5004
         <term><anchor id="gel-function-NumericalRightDerivative"/>NumericalRightDerivative</term>
 
5005
         <listitem>
 
5006
          <synopsis>NumericalRightDerivative (f,x0)</synopsis>
 
5007
          <para>Essaie de calculer la dérivée à droite par méthode numérique.</para>
 
5008
         </listitem>
 
5009
        </varlistentry>
 
5010
 
 
5011
        <varlistentry>
 
5012
         <term><anchor id="gel-function-OddPeriodicExtension"/>OddPeriodicExtension</term>
 
5013
         <listitem>
 
5014
          <synopsis>OddPeriodicExtension (f,L)</synopsis>
 
5015
          <para>Renvoie une fonction qui est l'extension périodique impaire de <function>f</function> de demi-période <varname>L</varname>. C'est-à-dire une fonction définie sur l'intervalle <userinput>[0,L]</userinput> étendue de manière à être impaire sur <userinput>[-L,L]</userinput> puis rendue périodique de période <userinput>2*L</userinput>.</para>
 
5016
          <para>Consultez aussi <link linkend="gel-function-EvenPeriodicExtension">EvenPeriodicExtension</link> et <link linkend="gel-function-PeriodicExtension">PeriodicExtension</link>.</para>
 
5017
         </listitem>
 
5018
        </varlistentry>
 
5019
 
 
5020
        <varlistentry>
 
5021
         <term><anchor id="gel-function-OneSidedFivePointFormula"/>OneSidedFivePointFormula</term>
 
5022
         <listitem>
 
5023
          <synopsis>OneSidedFivePointFormula (f,x0,h)</synopsis>
 
5024
          <para>Calcule la dérivée d'un côté en utilisant une formule à cinq points.</para>
 
5025
         </listitem>
 
5026
        </varlistentry>
 
5027
 
 
5028
        <varlistentry>
 
5029
         <term><anchor id="gel-function-OneSidedThreePointFormula"/>OneSidedThreePointFormula</term>
 
5030
         <listitem>
 
5031
          <synopsis>OneSidedThreePointFormula (f,x0,h)</synopsis>
 
5032
          <para>Calcule la dérivée d'un côté en utilisant une formule à trois points.</para>
 
5033
         </listitem>
 
5034
        </varlistentry>
 
5035
 
 
5036
        <varlistentry>
 
5037
         <term><anchor id="gel-function-PeriodicExtension"/>PeriodicExtension</term>
 
5038
         <listitem>
 
5039
          <synopsis>PeriodicExtension (f,a,b)</synopsis>
 
5040
          <para>Renvoie une fonction qui est l'extension périodique de <function>f</function> définie sur l'intervalle <userinput>[a,b]</userinput> et de période <userinput>b-a</userinput>.</para>
 
5041
          <para>Consultez également <link linkend="gel-function-OddPeriodicExtension">OddPeriodicExtension</link> et <link linkend="gel-function-EvenPeriodicExtension">EvenPeriodicExtension</link>.</para>
 
5042
         </listitem>
 
5043
        </varlistentry>
 
5044
 
 
5045
        <varlistentry>
 
5046
         <term><anchor id="gel-function-RightLimit"/>RightLimit</term>
 
5047
         <listitem>
 
5048
          <synopsis>RightLimit (f,x0)</synopsis>
 
5049
          <para>Calcule la limite à droite d'une fonction à valeurs réelles en x0.</para>
 
5050
         </listitem>
 
5051
        </varlistentry>
 
5052
 
 
5053
        <varlistentry>
 
5054
         <term><anchor id="gel-function-TwoSidedFivePointFormula"/>TwoSidedFivePointFormula</term>
 
5055
         <listitem>
 
5056
          <synopsis>TwoSidedFivePointFormula (f,x0,h)</synopsis>
 
5057
          <para>Calcule la dérivée des deux côtés en utilisant une formule à cinq points.</para>
 
5058
         </listitem>
 
5059
        </varlistentry>
 
5060
 
 
5061
        <varlistentry>
 
5062
         <term><anchor id="gel-function-TwoSidedThreePointFormula"/>TwoSidedThreePointFormula</term>
 
5063
         <listitem>
 
5064
          <synopsis>TwoSidedThreePointFormula (f,x0,h)</synopsis>
 
5065
          <para>Calcule la dérivée des deux côtés en utilisant une formule à trois points.</para>
 
5066
         </listitem>
 
5067
        </varlistentry>
 
5068
 
 
5069
      </variablelist>
 
5070
    </sect1>
 
5071
 
 
5072
    <sect1 id="genius-gel-function-list-functions">
 
5073
      <title>Fonctions</title>
 
5074
      <variablelist>
 
5075
        <varlistentry>
 
5076
         <term><anchor id="gel-function-Argument"/>Argument</term>
 
5077
         <listitem>
 
5078
          <synopsis>Argument (z)</synopsis>
 
5079
          <para>Alias : <function>Arg</function> <function>arg</function></para>
 
5080
          <para>Renvoie l'argument (angle) d'un nombre complexe.</para>
 
5081
         </listitem>
 
5082
        </varlistentry>
 
5083
 
 
5084
        <varlistentry>
 
5085
         <term><anchor id="gel-function-BesselJ0"/>BesselJ0</term>
 
5086
         <listitem>
 
5087
          <synopsis>BesselJ0 (x)</synopsis>
 
5088
          <para>Bessel function of the first kind of order 0.  Only implemented for real numbers.</para>
 
5089
          <para>
 
5090
            See
 
5091
            <ulink url="http://en.wikipedia.org/wiki/Bessel_functions">Wikipedia</ulink> for more information.
 
5092
          </para>
 
5093
         </listitem>
 
5094
        </varlistentry>
 
5095
 
 
5096
        <varlistentry>
 
5097
         <term><anchor id="gel-function-BesselJ1"/>BesselJ1</term>
 
5098
         <listitem>
 
5099
          <synopsis>BesselJ1 (x)</synopsis>
 
5100
          <para>Bessel function of the first kind of order 1.  Only implemented for real numbers.</para>
 
5101
          <para>
 
5102
            See
 
5103
            <ulink url="http://en.wikipedia.org/wiki/Bessel_functions">Wikipedia</ulink> for more information.
 
5104
          </para>
 
5105
         </listitem>
 
5106
        </varlistentry>
 
5107
 
 
5108
        <varlistentry>
 
5109
         <term><anchor id="gel-function-BesselJn"/>BesselJn</term>
 
5110
         <listitem>
 
5111
          <synopsis>BesselJn (n,x)</synopsis>
 
5112
          <para>Bessel function of the first kind of order <varname>n</varname>.  Only implemented for real numbers.</para>
 
5113
          <para>
 
5114
            See
 
5115
            <ulink url="http://en.wikipedia.org/wiki/Bessel_functions">Wikipedia</ulink> for more information.
 
5116
          </para>
 
5117
         </listitem>
 
5118
        </varlistentry>
 
5119
 
 
5120
        <varlistentry>
 
5121
         <term><anchor id="gel-function-BesselY0"/>BesselY0</term>
 
5122
         <listitem>
 
5123
          <synopsis>BesselY0 (x)</synopsis>
 
5124
          <para>Bessel function of the second kind of order 0.  Only implemented for real numbers.</para>
 
5125
          <para>
 
5126
            See
 
5127
            <ulink url="http://en.wikipedia.org/wiki/Bessel_functions">Wikipedia</ulink> for more information.
 
5128
          </para>
 
5129
         </listitem>
 
5130
        </varlistentry>
 
5131
 
 
5132
        <varlistentry>
 
5133
         <term><anchor id="gel-function-BesselY1"/>BesselY1</term>
 
5134
         <listitem>
 
5135
          <synopsis>BesselY1 (x)</synopsis>
 
5136
          <para>Bessel function of the second kind of order 1.  Only implemented for real numbers.</para>
 
5137
          <para>
 
5138
            See
 
5139
            <ulink url="http://en.wikipedia.org/wiki/Bessel_functions">Wikipedia</ulink> for more information.
 
5140
          </para>
 
5141
         </listitem>
 
5142
        </varlistentry>
 
5143
 
 
5144
        <varlistentry>
 
5145
         <term><anchor id="gel-function-BesselYn"/>BesselYn</term>
 
5146
         <listitem>
 
5147
          <synopsis>BesselYn (n,x)</synopsis>
 
5148
          <para>Bessel function of the second kind of order <varname>n</varname>.  Only implemented for real numbers.</para>
 
5149
          <para>
 
5150
            See
 
5151
            <ulink url="http://en.wikipedia.org/wiki/Bessel_functions">Wikipedia</ulink> for more information.
 
5152
          </para>
 
5153
         </listitem>
 
5154
        </varlistentry>
 
5155
 
 
5156
        <varlistentry>
 
5157
         <term><anchor id="gel-function-DirichletKernel"/>DirichletKernel</term>
 
5158
         <listitem>
 
5159
          <synopsis>DirichletKernel (n,t)</synopsis>
 
5160
          <para>Calcul le noyau de Dirichlet d'ordre n.</para>
 
5161
         </listitem>
 
5162
        </varlistentry>
 
5163
 
 
5164
        <varlistentry>
 
5165
         <term><anchor id="gel-function-DiscreteDelta"/>DiscreteDelta</term>
 
5166
         <listitem>
 
5167
          <synopsis>DiscreteDelta (v)</synopsis>
 
5168
          <para>Renvoie 1 si et seulement si tous les éléments sont nuls.</para>
 
5169
         </listitem>
 
5170
        </varlistentry>
 
5171
 
 
5172
        <varlistentry>
 
5173
         <term><anchor id="gel-function-ErrorFunction"/>ErrorFunction</term>
 
5174
         <listitem>
 
5175
          <synopsis>ErrorFunction (x)</synopsis>
 
5176
          <para>Alias : <function>erf</function></para>
 
5177
          <para>Fonction erreur, 2/sqrt(pi) * int_0^x e^(-t^2) dt.</para>
 
5178
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/ErrorFunction.html">Planetmath</ulink> pour plus d'informations.</para>
 
5179
         </listitem>
 
5180
        </varlistentry>
 
5181
 
 
5182
        <varlistentry>
 
5183
         <term><anchor id="gel-function-FejerKernel"/>FejerKernel</term>
 
5184
         <listitem>
 
5185
          <synopsis>FejerKernel (n,t)</synopsis>
 
5186
          <para>Noyau Fejer d'ordre <varname>n</varname> évalué en <varname>t</varname>.</para>
 
5187
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/FejerKernel.html">Planetmath</ulink> pour plus d'informations.</para>
 
5188
         </listitem>
 
5189
        </varlistentry>
 
5190
 
 
5191
        <varlistentry>
 
5192
         <term><anchor id="gel-function-GammaFunction"/>GammaFunction</term>
 
5193
         <listitem>
 
5194
          <synopsis>GammaFunction (x)</synopsis>
 
5195
          <para>Alias : <function>Gamma</function></para>
 
5196
          <para>La fonction Gamma. Seules les valeurs réelles sont actuellement implémentées.</para>
 
5197
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/GammaFunction.html">Planetmath</ulink> pour plus d'informations.</para>
 
5198
         </listitem>
 
5199
        </varlistentry>
 
5200
 
 
5201
        <varlistentry>
 
5202
         <term><anchor id="gel-function-KroneckerDelta"/>KroneckerDelta</term>
 
5203
         <listitem>
 
5204
          <synopsis>KroneckerDelta (v)</synopsis>
 
5205
          <para>Renvoie 1 si et seulement si tous les éléments sont égaux.</para>
 
5206
         </listitem>
 
5207
        </varlistentry>
 
5208
 
 
5209
        <varlistentry>
 
5210
         <term><anchor id="gel-function-MinimizeFunction"/>MinimizeFunction</term>
 
5211
         <listitem>
 
5212
          <synopsis>MinimizeFunction (fonc,x,incr)</synopsis>
 
5213
          <para>Cherche la première valeur pour laquelle f(x)=0.</para>
 
5214
         </listitem>
 
5215
        </varlistentry>
 
5216
 
 
5217
        <varlistentry>
 
5218
         <term><anchor id="gel-function-MoebiusDiskMapping"/>MoebiusDiskMapping</term>
 
5219
         <listitem>
 
5220
          <synopsis>MoebiusDiskMapping (a,z)</synopsis>
 
5221
          <para>Transformation de Möbius du disque vers lui-même en faisant correspondre a à 0.</para>
 
5222
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/MobiusTransformation.html">Planetmath</ulink> pour plus d'informations.</para>
 
5223
         </listitem>
 
5224
        </varlistentry>
 
5225
 
 
5226
        <varlistentry>
 
5227
         <term><anchor id="gel-function-MoebiusMapping"/>MoebiusMapping</term>
 
5228
         <listitem>
 
5229
          <synopsis>MoebiusMapping (z,z2,z3,z4)</synopsis>
 
5230
          <para>Transformation de Möbius utilisant le rapport croisé en prenant z2, z3, z4 à 1, 0 et l'infini respectivement.</para>
 
5231
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/MobiusTransformation.html">Planetmath</ulink> pour plus d'informations.</para>
 
5232
         </listitem>
 
5233
        </varlistentry>
 
5234
 
 
5235
        <varlistentry>
 
5236
         <term><anchor id="gel-function-MoebiusMappingInftyToInfty"/>MoebiusMappingInftyToInfty</term>
 
5237
         <listitem>
 
5238
          <synopsis>MoebiusMappingInftyToInfty (z,z2,z3)</synopsis>
 
5239
          <para>Transformation de Möbius utilisant le rapport croisé en prenant l'infini à l'infini et z2, z3 à 1 et 0 respectivement.</para>
 
5240
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/MobiusTransformation.html">Planetmath</ulink> pour plus d'informations.</para>
 
5241
         </listitem>
 
5242
        </varlistentry>
 
5243
 
 
5244
        <varlistentry>
 
5245
         <term><anchor id="gel-function-MoebiusMappingInftyToOne"/>MoebiusMappingInftyToOne</term>
 
5246
         <listitem>
 
5247
          <synopsis>MoebiusMappingInftyToOne (z,z3,z4)</synopsis>
 
5248
          <para>Transformation de Möbius utilisant le rapport croisé en prenant l'infini à 1 et z3, z4 à 0 et l'infini respectivement.</para>
 
5249
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/MobiusTransformation.html">Planetmath</ulink> pour plus d'informations.</para>
 
5250
         </listitem>
 
5251
        </varlistentry>
 
5252
 
 
5253
        <varlistentry>
 
5254
         <term><anchor id="gel-function-MoebiusMappingInftyToZero"/>MoebiusMappingInftyToZero</term>
 
5255
         <listitem>
 
5256
          <synopsis>MoebiusMappingInftyToZero (z,z2,z4)</synopsis>
 
5257
          <para>Transformation de Möbius utilisant le rapport croisé en prenant l'infini à 0 et z2, z4 à 1 et l'infini respectivement.</para>
 
5258
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/MobiusTransformation.html">Planetmath</ulink> pour plus d'informations.</para>
 
5259
         </listitem>
 
5260
        </varlistentry>
 
5261
 
 
5262
        <varlistentry>
 
5263
         <term><anchor id="gel-function-PoissonKernel"/>PoissonKernel</term>
 
5264
         <listitem>
 
5265
          <synopsis>PoissonKernel (r,sigma)</synopsis>
 
5266
          <para>Le noyau de Poisson sur D(0,1) (non normalisé à 1, donc son intégrale vaut 2 pi).</para>
 
5267
         </listitem>
 
5268
        </varlistentry>
 
5269
 
 
5270
        <varlistentry>
 
5271
         <term><anchor id="gel-function-PoissonKernelRadius"/>PoissonKernelRadius</term>
 
5272
         <listitem>
 
5273
          <synopsis>PoissonKernelRadius (r,sigma)</synopsis>
 
5274
          <para>Le noyau de Poisson sur D(0,R) (non normalisé à 1).</para>
 
5275
         </listitem>
 
5276
        </varlistentry>
 
5277
 
 
5278
        <varlistentry>
 
5279
         <term><anchor id="gel-function-RiemannZeta"/>RiemannZeta</term>
 
5280
         <listitem>
 
5281
          <synopsis>RiemannZeta (x)</synopsis>
 
5282
          <para>Alias : <function>zeta</function></para>
 
5283
          <para>Fonction zeta de Riemann (seules les valeurs réelles sont actuellement implémentées).</para>
 
5284
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/RiemannZetaFunction.html">Planetmath</ulink> pour plus d'informations.</para>
 
5285
         </listitem>
 
5286
        </varlistentry>
 
5287
 
 
5288
        <varlistentry>
 
5289
         <term><anchor id="gel-function-UnitStep"/>UnitStep</term>
 
5290
         <listitem>
 
5291
          <synopsis>UnitStep (x)</synopsis>
 
5292
          <para>La fonction échelon vaut 0 pour x&lt;0, 1 sinon. C'est l'intégrale de la fonction delta de Dirac. Elle est aussi appelée fonction d'Heaviside.</para>
 
5293
          <para>Consultez <ulink url="http://fr.wikipedia.org/wiki/Fonction_de_Heaviside">Wikipedia</ulink> pour plus d'informations.</para>
 
5294
         </listitem>
 
5295
        </varlistentry>
 
5296
 
 
5297
        <varlistentry>
 
5298
         <term><anchor id="gel-function-cis"/>cis</term>
 
5299
         <listitem>
 
5300
          <synopsis>cis (x)</synopsis>
 
5301
          <para>La fonction <function>cis</function> est la même que <userinput>cos(x)+1i*sin(x)</userinput>.</para>
 
5302
         </listitem>
 
5303
        </varlistentry>
 
5304
 
 
5305
        <varlistentry>
 
5306
         <term><anchor id="gel-function-deg2rad"/>deg2rad</term>
 
5307
         <listitem>
 
5308
          <synopsis>deg2rad (x)</synopsis>
 
5309
          <para>Convertit les degrés en radians.</para>
 
5310
         </listitem>
 
5311
        </varlistentry>
 
5312
 
 
5313
        <varlistentry>
 
5314
         <term><anchor id="gel-function-rad2deg"/>rad2deg</term>
 
5315
         <listitem>
 
5316
          <synopsis>rad2deg (x)</synopsis>
 
5317
          <para>Convertit les radians en degrés.</para>
 
5318
         </listitem>
 
5319
        </varlistentry>
 
5320
 
 
5321
        <varlistentry>
 
5322
         <term><anchor id="gel-function-sinc"/>sinc</term>
 
5323
         <listitem>
 
5324
          <synopsis>sinc (x)</synopsis>
 
5325
          <para>Calculates the unnormalized sinc function, that is
 
5326
                  <userinput>sin(x)/x</userinput>.
 
5327
                  If you want the normalized function call <userinput>sinc(pi*x)</userinput>.</para>
 
5328
          <para>
 
5329
            See
 
5330
            <ulink url="http://en.wikipedia.org/wiki/Sinc">Wikipedia</ulink> for more information.
 
5331
          </para>
 
5332
         </listitem>
 
5333
        </varlistentry>
 
5334
 
 
5335
      </variablelist>
 
5336
    </sect1>
 
5337
 
 
5338
    <sect1 id="genius-gel-function-list-equation-solving">
 
5339
      <title>Résolution d'équations</title>
 
5340
      <variablelist>
 
5341
 
 
5342
        <varlistentry>
 
5343
         <term><anchor id="gel-function-CubicFormula"/>CubicFormula</term>
 
5344
         <listitem>
 
5345
          <synopsis>CubicFormula (p)</synopsis>
 
5346
          <para>Calcule les racines d'un polynôme cubique (de degré 3) en utilisant la formule cubique. Le polynôme doit être fourni sous la forme d'un vecteur de coefficients. Par exemple <userinput>4*x^3 + 2*x + 1</userinput> correspond au vecteur <userinput>[1,2,0,4]</userinput>. Renvoie un vecteur colonne contenant les trois solutions. La première solution est toujours celle qui est réelle puisqu'un polynôme cubique possède toujours une solution réelle.</para>
 
5347
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/CubicFormula.html">Planetmath</ulink>, <ulink url="http://mathworld.wolfram.com/CubicFormula.html">Mathworld</ulink> ou <ulink url="http://fr.wikipedia.org/wiki/%C3%89quation_cubique">Wikipedia</ulink> pour plus d'informations.</para>
 
5348
         </listitem>
 
5349
        </varlistentry>
 
5350
 
 
5351
        <varlistentry>
 
5352
         <term><anchor id="gel-function-EulersMethod"/>EulersMethod</term>
 
5353
         <listitem>
 
5354
          <synopsis>EulersMethod (f,x0,y0,x1,n)</synopsis>
 
5355
          <para>Utilise la méthode classique d'Euler pour résoudre numériquement y'=f(x,y) avec les valeurs initiales <varname>x0</varname>, <varname>y0</varname> allant vers <varname>x1</varname> avec <varname>n</varname> incréments, renvoie <varname>y</varname> en <varname>x1</varname>.</para>
 
5356
          <para>Les systèmes peuvent être résolus en ayant uniquement <varname>y</varname> sous la forme d'un vecteur (colonne) partout. C'est-à-dire <varname>y0</varname> peut être un vecteur et dans ce cas <varname>f</varname> doit prendre un nombre <varname>x</varname> et un vecteur de la même taille comme deuxième argument et doit renvoyer un vecteur de la même taille.</para>
 
5357
          <para>Consultez <ulink url="http://mathworld.wolfram.com/EulerForwardMethod.html">Mathworld</ulink> ou <ulink url="http://fr.wikipedia.org/wiki/M%C3%A9thode_d%27Euler">Wikipedia</ulink> pour plus d'informations.</para>
 
5358
         </listitem>
 
5359
        </varlistentry>
 
5360
 
 
5361
        <varlistentry>
 
5362
         <term><anchor id="gel-function-EulersMethodFull"/>EulersMethodFull</term>
 
5363
         <listitem>
 
5364
          <synopsis>EulersMethodFull (f,x0,y0,x1,n)</synopsis>
 
5365
          <para>Utilise la méthode classique d'Euler pour résoudre numériquement y'=f(x,y) avec les valeurs initiales <varname>x0</varname>, <varname>y0</varname> allant vers <varname>x1</varname> avec <varname>n</varname> incréments, renvoie une matrice 2 par <userinput>n+1</userinput> contenant les valeurs de <varname>x</varname> et <varname>y</varname> (approprié pour un usage avec <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link>).</para>
 
5366
          <para>Les systèmes peuvent être résolus en ayant uniquement <varname>y</varname> sous la forme d'un vecteur (colonne) partout. C'est-à-dire <varname>y0</varname> peut être un vecteur et dans ce cas <varname>f</varname> doit prendre un nombre <varname>x</varname> et un vecteur de la même taille comme deuxième argument et doit renvoyer un vecteur de la même taille.</para>
 
5367
          <para>Consultez <ulink url="http://mathworld.wolfram.com/EulerForwardMethod.html">Mathworld</ulink> ou <ulink url="http://fr.wikipedia.org/wiki/M%C3%A9thode_d%27Euler">Wikipedia</ulink> pour plus d'informations.</para>
 
5368
         </listitem>
 
5369
        </varlistentry>
 
5370
 
 
5371
        <varlistentry>
 
5372
         <term><anchor id="gel-function-FindRootBisection"/>FindRootBisection</term>
 
5373
         <listitem>
 
5374
          <synopsis>FindRootBisection (f,a,b,TOL,N)</synopsis>
 
5375
          <para>Find root of a function using the bisection method.
 
5376
                  <varname>a</varname> and <varname>b</varname> are the initial guess interval,
 
5377
                  <userinput>f(a)</userinput> and <userinput>f(b)</userinput> should have opposite signs.
 
5378
            <varname>TOL</varname> is the desired tolerance and
 
5379
<varname>N</varname> is the limit on the number of iterations to run, 0 means no limit.  The function returns a vector <userinput>[success,value,iteration]</userinput>, where <varname>success</varname> is a boolean indicating success, <varname>value</varname> is the last value computed, and <varname>iteration</varname> is the number of iterations done.</para>
 
5380
         </listitem>
 
5381
        </varlistentry>
 
5382
 
 
5383
        <varlistentry>
 
5384
         <term><anchor id="gel-function-FindRootFalsePosition"/>FindRootFalsePosition</term>
 
5385
         <listitem>
 
5386
          <synopsis>FindRootFalsePosition (f,a,b,TOL,N)</synopsis>
 
5387
          <para>Find root of a function using the method of false position.
 
5388
                  <varname>a</varname> and <varname>b</varname> are the initial guess interval,
 
5389
                  <userinput>f(a)</userinput> and <userinput>f(b)</userinput> should have opposite signs.
 
5390
            <varname>TOL</varname> is the desired tolerance and
 
5391
<varname>N</varname> is the limit on the number of iterations to run, 0 means no limit.  The function returns a vector <userinput>[success,value,iteration]</userinput>, where <varname>success</varname> is a boolean indicating success, <varname>value</varname> is the last value computed, and <varname>iteration</varname> is the number of iterations done.</para>
 
5392
         </listitem>
 
5393
        </varlistentry>
 
5394
 
 
5395
        <varlistentry>
 
5396
         <term><anchor id="gel-function-FindRootMullersMethod"/>FindRootMullersMethod</term>
 
5397
         <listitem>
 
5398
          <synopsis>FindRootMullersMethod (f,x0,x1,x2,TOL,N)</synopsis>
 
5399
          <para>Cherche la racine d'une fonction en utilisant la méthode de Muller. <varname>TOL</varname> est la tolérance permise et <varname>N</varname> est la limite du nombre d'itérations réalisées, 0 signifiant pas de limite. La fonction renvoie un vecteur <userinput>[succes,valeur,itération]</userinput> dans lequel <varname>succes</varname> est un booléen indiquant la réussite, <varname>valeur</varname> est la dernière valeur calculée et <varname>itération</varname> est le nombre d'itérations réalisées.</para>
 
5400
         </listitem>
 
5401
        </varlistentry>
 
5402
 
 
5403
        <varlistentry>
 
5404
         <term><anchor id="gel-function-FindRootSecant"/>FindRootSecant</term>
 
5405
         <listitem>
 
5406
          <synopsis>FindRootSecant (f,a,b,TOL,N)</synopsis>
 
5407
          <para>Find root of a function using the secant method.
 
5408
                  <varname>a</varname> and <varname>b</varname> are the initial guess interval,
 
5409
                  <userinput>f(a)</userinput> and <userinput>f(b)</userinput> should have opposite signs.
 
5410
            <varname>TOL</varname> is the desired tolerance and
 
5411
<varname>N</varname> is the limit on the number of iterations to run, 0 means no limit.  The function returns a vector <userinput>[success,value,iteration]</userinput>, where <varname>success</varname> is a boolean indicating success, <varname>value</varname> is the last value computed, and <varname>iteration</varname> is the number of iterations done.</para>
 
5412
         </listitem>
 
5413
        </varlistentry>
 
5414
 
 
5415
        <varlistentry>
 
5416
         <term><anchor id="gel-function-PolynomialRoots"/>PolynomialRoots</term>
 
5417
         <listitem>
 
5418
          <synopsis>PolynomialRoots (p)</synopsis>
 
5419
          <para>Calcule les racines d'un polynôme (de degré 1 à 4) en utilisant une des formules adaptée à ce type de polynôme. Le polynôme doit être fourni sous la forme d'un vecteur de coefficients. Par exemple <userinput>4*x^3 + 2*x + 1</userinput> correspond au vecteur <userinput>[1,2,0,4]</userinput>. Renvoie un vecteur colonne contenant les solutions.</para>
 
5420
          <para>La fonction appelle <link linkend="gel-function-QuadraticFormula">QuadraticFormula</link>, <link linkend="gel-function-CubicFormula">CubicFormula</link> et <link linkend="gel-function-QuarticFormula">QuarticFormula</link>.</para>
 
5421
         </listitem>
 
5422
        </varlistentry>
 
5423
 
 
5424
        <varlistentry>
 
5425
         <term><anchor id="gel-function-QuadraticFormula"/>QuadraticFormula</term>
 
5426
         <listitem>
 
5427
          <synopsis>QuadraticFormula (p)</synopsis>
 
5428
          <para>Calcule les racines d'un polynôme quadratique (de degré 2) en utilisant la formule quadratique. Le polynôme doit être fourni sous la forme d'un vecteur de coefficients. <userinput>3*x^2 + 2*x + 1</userinput> correspond au vecteur <userinput>[1,2,3]</userinput>. Renvoie un vecteur colonne contenant les deux solutions.</para>
 
5429
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/QuadraticFormula.html">Planetmath</ulink> ou <ulink url="http://mathworld.wolfram.com/QuadraticFormula.html">Mathworld</ulink> pour plus d'informations.</para>
 
5430
         </listitem>
 
5431
        </varlistentry>
 
5432
 
 
5433
        <varlistentry>
 
5434
         <term><anchor id="gel-function-QuarticFormula"/>QuarticFormula</term>
 
5435
         <listitem>
 
5436
          <synopsis>QuarticFormula (p)</synopsis>
 
5437
          <para>Calcule les racines d'un polynôme quartique (de degré 4) en utilisant la formule quartique. Le polynôme doit être fourni sous la forme d'un vecteur de coefficients. <userinput>5*x^4 + 2*x + 1</userinput> correspond au vecteur <userinput>[1,2,0,0,5]</userinput>. Renvoie un vecteur colonne contenant les quatre solutions.</para>
 
5438
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/QuarticFormula.html">Planetmath</ulink>, <ulink url="http://mathworld.wolfram.com/QuarticEquation.html">Mathworld</ulink> ou <ulink url="http://fr.wikipedia.org/wiki/%C3%89quation_quartique">Wikipedia</ulink> pour plus d'informations.</para>
 
5439
         </listitem>
 
5440
        </varlistentry>
 
5441
 
 
5442
        <varlistentry>
 
5443
         <term><anchor id="gel-function-RungeKutta"/>RungeKutta</term>
 
5444
         <listitem>
 
5445
          <synopsis>RungeKutta (f,x0,y0,x1,n)</synopsis>
 
5446
          <para>Utilise la méthode classique non adaptative de Runge-Kutta du quatrième ordre pour résoudre numériquement y'=f(x,y) avec les valeurs initiales <varname>x0</varname>, <varname>y0</varname> allant vers <varname>x1</varname> avec <varname>n</varname> incréments, renvoie <varname>y</varname> en <varname>x1</varname>.</para>
 
5447
          <para>Les systèmes peuvent être résolus en ayant uniquement <varname>y</varname> sous la forme d'un vecteur (colonne) partout. C'est-à-dire <varname>y0</varname> peut être un vecteur et dans ce cas <varname>f</varname> doit prendre un nombre <varname>x</varname> et un vecteur de la même taille comme deuxième argument et doit renvoyer un vecteur de la même taille.</para>
 
5448
          <para>Consultez <ulink url="http://mathworld.wolfram.com/Runge-KuttaMethod.html">Mathworld</ulink> ou <ulink url="http://fr.wikipedia.org/wiki/M%C3%A9thodes_de_Runge-Kutta">Wikipedia</ulink> pour plus d'informations.</para>
 
5449
         </listitem>
 
5450
        </varlistentry>
 
5451
 
 
5452
        <varlistentry>
 
5453
         <term><anchor id="gel-function-RungeKuttaFull"/>RungeKuttaFull</term>
 
5454
         <listitem>
 
5455
          <synopsis>RungeKuttaFull (f,x0,y0,x1,n)</synopsis>
 
5456
          <para>Utilise la méthode classique non adaptative de Runge-Kutta du quatrième ordre pour résoudre numériquement y'=f(x,y) avec les valeurs initiales <varname>x0</varname>, <varname>y0</varname> allant vers <varname>x1</varname> avec <varname>n</varname> incréments, renvoie une matrice 2 par <userinput>n+1</userinput> contenant les valeurs de <varname>x</varname> et <varname>y</varname> (approprié pour un usage avec <link linkend="gel-function-LinePlotDrawLine">LinePlotDrawLine</link>).</para>
 
5457
          <para>Les systèmes peuvent être résolus en ayant uniquement <varname>y</varname> sous la forme d'un vecteur (colonne) partout. C'est-à-dire <varname>y0</varname> peut être un vecteur et dans ce cas <varname>f</varname> doit prendre un nombre <varname>x</varname> et un vecteur de la même taille comme deuxième argument et doit renvoyer un vecteur de la même taille.</para>
 
5458
          <para>Consultez <ulink url="http://mathworld.wolfram.com/Runge-KuttaMethod.html">Mathworld</ulink> ou <ulink url="http://fr.wikipedia.org/wiki/M%C3%A9thodes_de_Runge-Kutta">Wikipedia</ulink> pour plus d'informations.</para>
 
5459
         </listitem>
 
5460
        </varlistentry>
 
5461
 
 
5462
 
 
5463
      </variablelist>
 
5464
    </sect1>
 
5465
 
 
5466
    <sect1 id="genius-gel-function-list-statistics">
 
5467
      <title>Statistiques</title>
 
5468
      <variablelist>
 
5469
        <varlistentry>
 
5470
         <term><anchor id="gel-function-Average"/>Average</term>
 
5471
         <listitem>
 
5472
          <synopsis>Average (m)</synopsis>
 
5473
          <para>Alias : <function>average</function><function>Mean</function><function>mean</function></para>
 
5474
          <para>Calcule la moyenne de toute une matrice.</para>
 
5475
          <para>Consultez <ulink url="http://mathworld.wolfram.com/ArithmeticMean.html">Mathworld</ulink> pour plus d'informations.</para>
 
5476
         </listitem>
 
5477
        </varlistentry>
 
5478
 
 
5479
        <varlistentry>
 
5480
         <term><anchor id="gel-function-GaussDistribution"/>GaussDistribution</term>
 
5481
         <listitem>
 
5482
          <synopsis>GaussDistribution (x,sigma)</synopsis>
 
5483
          <para>Intégrale de la fonction de Gauss de 0 à <varname>x</varname> (aire sous la courbe normale).</para>
 
5484
          <para>Consultez <ulink url="http://mathworld.wolfram.com/NormalDistribution.html">Mathworld</ulink> pour plus d'informations.</para>
 
5485
         </listitem>
 
5486
        </varlistentry>
 
5487
 
 
5488
        <varlistentry>
 
5489
         <term><anchor id="gel-function-GaussFunction"/>GaussFunction</term>
 
5490
         <listitem>
 
5491
          <synopsis>GaussFunction (x,sigma)</synopsis>
 
5492
          <para>Fonction distribution de Gauss normalisée (courbe normale).</para>
 
5493
          <para>Consultez <ulink url="http://mathworld.wolfram.com/NormalDistribution.html">Mathworld</ulink> pour plus d'informations.</para>
 
5494
 
 
5495
         </listitem>
 
5496
        </varlistentry>
 
5497
 
 
5498
        <varlistentry>
 
5499
         <term><anchor id="gel-function-Median"/>Median</term>
 
5500
         <listitem>
 
5501
          <synopsis>Median (m)</synopsis>
 
5502
          <para>Alias : <function>median</function></para>
 
5503
          <para>Calcule la médiane de toute une matrice.</para>
 
5504
          <para>Consultez <ulink url="http://mathworld.wolfram.com/StatisticalMedian.html">Mathworld</ulink> pour plus d'informations.</para>
 
5505
         </listitem>
 
5506
        </varlistentry>
 
5507
 
 
5508
        <varlistentry>
 
5509
         <term><anchor id="gel-function-PopulationStandardDeviation"/>PopulationStandardDeviation</term>
 
5510
         <listitem>
 
5511
          <synopsis>PopulationStandardDeviation (m)</synopsis>
 
5512
          <para>Alias : <function>stdevp</function></para>
 
5513
          <para>Calcule l'écart type de la population de toute une matrice.</para>
 
5514
         </listitem>
 
5515
        </varlistentry>
 
5516
 
 
5517
        <varlistentry>
 
5518
         <term><anchor id="gel-function-RowAverage"/>RowAverage</term>
 
5519
         <listitem>
 
5520
          <synopsis>RowAverage (m)</synopsis>
 
5521
          <para>Alias : <function>RowMean</function></para>
 
5522
          <para>Calcule la moyenne de chaque ligne d'une matrice.</para>
 
5523
          <para>Consultez <ulink url="http://mathworld.wolfram.com/ArithmeticMean.html">Mathworld</ulink> pour plus d'informations.</para>
 
5524
         </listitem>
 
5525
        </varlistentry>
 
5526
 
 
5527
        <varlistentry>
 
5528
         <term><anchor id="gel-function-RowMedian"/>RowMedian</term>
 
5529
         <listitem>
 
5530
          <synopsis>RowMedian (m)</synopsis>
 
5531
          <para>Calcule la médiane de chaque ligne d'une matrice et renvoie un vecteur colonne.</para>
 
5532
          <para>Consultez <ulink url="http://mathworld.wolfram.com/StatisticalMedian.html">Mathworld</ulink> pour plus d'informations.</para>
 
5533
         </listitem>
 
5534
        </varlistentry>
 
5535
 
 
5536
        <varlistentry>
 
5537
         <term><anchor id="gel-function-RowPopulationStandardDeviation"/>RowPopulationStandardDeviation</term>
 
5538
         <listitem>
 
5539
          <synopsis>RowPopulationStandardDeviation (m)</synopsis>
 
5540
          <para>Alias : <function>rowstdevp</function></para>
 
5541
          <para>Calcule l'écart type de la population des lignes d'une matrice et renvoie un vecteur colonne.</para>
 
5542
         </listitem>
 
5543
        </varlistentry>
 
5544
 
 
5545
        <varlistentry>
 
5546
         <term><anchor id="gel-function-RowStandardDeviation"/>RowStandardDeviation</term>
 
5547
         <listitem>
 
5548
          <synopsis>RowStandardDeviation (m)</synopsis>
 
5549
          <para>Alias : <function>rowstdev</function></para>
 
5550
          <para>Calcule l'écart type des lignes d'une matrice et renvoie un vecteur colonne.</para>
 
5551
         </listitem>
 
5552
        </varlistentry>
 
5553
 
 
5554
        <varlistentry>
 
5555
         <term><anchor id="gel-function-StandardDeviation"/>StandardDeviation</term>
 
5556
         <listitem>
 
5557
          <synopsis>StandardDeviation (m)</synopsis>
 
5558
          <para>Alias : <function>stdev</function></para>
 
5559
          <para>Calcule l'écart type de toute une matrice.</para>
 
5560
         </listitem>
 
5561
        </varlistentry>
 
5562
 
 
5563
      </variablelist>
 
5564
    </sect1>
 
5565
 
 
5566
    <sect1 id="genius-gel-function-list-polynomials">
 
5567
      <title>Polynômes</title>
 
5568
      <variablelist>
 
5569
        <varlistentry>
 
5570
         <term><anchor id="gel-function-AddPoly"/>AddPoly</term>
 
5571
         <listitem>
 
5572
          <synopsis>AddPoly (p1,p2)</synopsis>
 
5573
          <para>Ajoute deux polynômes (vecteurs).</para>
 
5574
         </listitem>
 
5575
        </varlistentry>
 
5576
 
 
5577
        <varlistentry>
 
5578
         <term><anchor id="gel-function-DividePoly"/>DividePoly</term>
 
5579
         <listitem>
 
5580
          <synopsis>DividePoly (p,q,&amp;r)</synopsis>
 
5581
          <para>Divise deux polynômes (en tant que vecteurs) en utilisant la division longue. Renvoie le quotient des deux polynômes. L'argument optionnel <varname>r</varname> est utilisé pour renvoyer le reste. Le reste a un degré plus bas que <varname>q</varname>.</para>
 
5582
          <para>Consultez <ulink url="http://planetmath.org/encyclopedia/PolynomialLongDivision.html">Planetmath</ulink> pour plus d'informations.</para>
 
5583
         </listitem>
 
5584
        </varlistentry>
 
5585
 
 
5586
        <varlistentry>
 
5587
         <term><anchor id="gel-function-IsPoly"/>IsPoly</term>
 
5588
         <listitem>
 
5589
          <synopsis>IsPoly (p)</synopsis>
 
5590
          <para>Vérifie qu'un vecteur est utilisable en tant que polynôme.</para>
 
5591
         </listitem>
 
5592
        </varlistentry>
 
5593
 
 
5594
        <varlistentry>
 
5595
         <term><anchor id="gel-function-MultiplyPoly"/>MultiplyPoly</term>
 
5596
         <listitem>
 
5597
          <synopsis>MultiplyPoly (p1,p2)</synopsis>
 
5598
          <para>Multiplie deux polynômes (comme vecteurs).</para>
 
5599
         </listitem>
 
5600
        </varlistentry>
 
5601
 
 
5602
        <varlistentry>
 
5603
         <term><anchor id="gel-function-NewtonsMethodPoly"/>NewtonsMethodPoly</term>
 
5604
         <listitem>
 
5605
          <synopsis>NewtonsMethodPoly (poly,valeurinitiale,epsilon,maxn)</synopsis>
 
5606
          <para>Utilise la méthode de Newton sur un polynôme pour essayer de trouver une racine, s'arrête après deux valeurs successives égales, à epsilon près, ou après maxn essais (renvoie alors <constant>null</constant>).</para>
 
5607
         </listitem>
 
5608
        </varlistentry>
 
5609
 
 
5610
        <varlistentry>
 
5611
         <term><anchor id="gel-function-Poly2ndDerivative"/>Poly2ndDerivative</term>
 
5612
         <listitem>
 
5613
          <synopsis>Poly2ndDerivative (p)</synopsis>
 
5614
          <para>Renvoie la dérivée seconde du polynôme (comme vecteur).</para>
 
5615
         </listitem>
 
5616
        </varlistentry>
 
5617
 
 
5618
        <varlistentry>
 
5619
         <term><anchor id="gel-function-PolyDerivative"/>PolyDerivative</term>
 
5620
         <listitem>
 
5621
          <synopsis>PolyDerivative (p)</synopsis>
 
5622
          <para>Prend la dérivée du polynôme (comme vecteur).</para>
 
5623
         </listitem>
 
5624
        </varlistentry>
 
5625
 
 
5626
        <varlistentry>
 
5627
         <term><anchor id="gel-function-PolyToFunction"/>PolyToFunction</term>
 
5628
         <listitem>
 
5629
          <synopsis>PolyToFunction (p)</synopsis>
 
5630
          <para>Fabrique une fonction à partir d'un polynôme (comme vecteur).</para>
 
5631
         </listitem>
 
5632
        </varlistentry>
 
5633
 
 
5634
        <varlistentry>
 
5635
         <term><anchor id="gel-function-PolyToString"/>PolyToString</term>
 
5636
         <listitem>
 
5637
          <synopsis>PolyToString (p,var...)</synopsis>
 
5638
          <para>Fabrique une chaîne à partir d'un polynôme (comme vecteur).</para>
 
5639
         </listitem>
 
5640
        </varlistentry>
 
5641
 
 
5642
        <varlistentry>
 
5643
         <term><anchor id="gel-function-SubtractPoly"/>SubtractPoly</term>
 
5644
         <listitem>
 
5645
          <synopsis>SubtractPoly (p1,p2)</synopsis>
 
5646
          <para>Soustrait deux polynômes (comme vecteur).</para>
 
5647
         </listitem>
 
5648
        </varlistentry>
 
5649
 
 
5650
        <varlistentry>
 
5651
         <term><anchor id="gel-function-TrimPoly"/>TrimPoly</term>
 
5652
         <listitem>
 
5653
          <synopsis>TrimPoly (p)</synopsis>
 
5654
          <para>Tronque les zéros d'un polynôme (défini comme vecteur).</para>
 
5655
         </listitem>
 
5656
        </varlistentry>
 
5657
 
 
5658
      </variablelist>
 
5659
    </sect1>
 
5660
 
 
5661
    <sect1 id="genius-gel-function-list-set-theory">
 
5662
      <title>Théorie des ensembles</title>
 
5663
      <variablelist>
 
5664
        <varlistentry>
 
5665
         <term><anchor id="gel-function-Intersection"/>Intersection</term>
 
5666
         <listitem>
 
5667
          <synopsis>Intersection (X,Y)</synopsis>
 
5668
          <para>Renvoie l'intersection, selon la théorie des ensembles, de X et Y (X et Y sont des vecteurs supposés être des ensembles).</para>
 
5669
         </listitem>
 
5670
        </varlistentry>
 
5671
 
 
5672
        <varlistentry>
 
5673
         <term><anchor id="gel-function-IsIn"/>IsIn</term>
 
5674
         <listitem>
 
5675
          <synopsis>IsIn (x,X)</synopsis>
 
5676
          <para>Renvoie <constant>true</constant> (vrai) si l'élément x fait partie de l'ensemble X (où X est un vecteur supposé être un ensemble).</para>
 
5677
         </listitem>
 
5678
        </varlistentry>
 
5679
 
 
5680
        <varlistentry>
 
5681
         <term><anchor id="gel-function-IsSubset"/>IsSubset</term>
 
5682
         <listitem>
 
5683
          <synopsis>IsSubset (X, Y)</synopsis>
 
5684
          <para>Renvoie <constant>true</constant> (vrai) si X est un sous-ensemble de Y (X et Y sont des vecteurs supposés être des ensembles).</para>
 
5685
         </listitem>
 
5686
        </varlistentry>
 
5687
 
 
5688
        <varlistentry>
 
5689
         <term><anchor id="gel-function-MakeSet"/>MakeSet</term>
 
5690
         <listitem>
 
5691
          <synopsis>MakeSet (X)</synopsis>
 
5692
          <para>Renvoie un vecteur où chaque élément de X n'apparaît qu'une seule fois.</para>
 
5693
         </listitem>
 
5694
        </varlistentry>
 
5695
 
 
5696
        <varlistentry>
 
5697
         <term><anchor id="gel-function-SetMinus"/>SetMinus</term>
 
5698
         <listitem>
 
5699
          <synopsis>SetMinus (X,Y)</synopsis>
 
5700
          <para>Renvoie la différence X-Y selon la théorie des ensembles (X et Y sont des vecteurs supposés être des ensembles).</para>
 
5701
         </listitem>
 
5702
        </varlistentry>
 
5703
 
 
5704
        <varlistentry>
 
5705
         <term><anchor id="gel-function-Union"/>Union</term>
 
5706
         <listitem>
 
5707
          <synopsis>Union (X,Y)</synopsis>
 
5708
          <para>Renvoie l'union, selon la théorie des ensembles, de X et Y (X et Y sont des vecteurs supposés être des ensembles).</para>
 
5709
         </listitem>
 
5710
        </varlistentry>
 
5711
 
 
5712
      </variablelist>
 
5713
    </sect1>
 
5714
 
 
5715
    <sect1 id="genius-gel-function-list-commutative-algebra">
 
5716
      <title>Commutative Algebra</title>
 
5717
      <variablelist>
 
5718
        <varlistentry>
 
5719
         <term><anchor id="gel-function-MacaulayBound"/>MacaulayBound</term>
 
5720
         <listitem>
 
5721
          <synopsis>MacaulayBound (c,d)</synopsis>
 
5722
          <para>For a Hilbert function that is c for degree d, given the Macaulay bound for the Hilbert function of degree d+1 (The c^&lt;d&gt; operator from Green's proof).</para>
 
5723
         </listitem>
 
5724
        </varlistentry>
 
5725
        
 
5726
        <varlistentry>
 
5727
         <term><anchor id="gel-function-MacaulayLowerOperator"/>MacaulayLowerOperator</term>
 
5728
         <listitem>
 
5729
          <synopsis>MacaulayLowerOperator (c,d)</synopsis>
 
5730
          <para>The c_&lt;d&gt; operator from Green's proof of Macaulay's Theorem.</para>
 
5731
         </listitem>
 
5732
        </varlistentry>
 
5733
 
 
5734
        <varlistentry>
 
5735
         <term><anchor id="gel-function-MacaulayRep"/>MacaulayRep</term>
 
5736
         <listitem>
 
5737
          <synopsis>MacaulayRep (c,d)</synopsis>
 
5738
          <para>Return the dth Macaulay representation of a positive integer c.</para>
 
5739
         </listitem>
 
5740
        </varlistentry>
 
5741
      </variablelist>
 
5742
    </sect1>
 
5743
 
 
5744
    <sect1 id="genius-gel-function-list-miscellaneous">
 
5745
      <title>Divers</title>
 
5746
      <variablelist>
 
5747
        <varlistentry>
 
5748
         <term><anchor id="gel-function-ASCIIToString"/>ASCIIToString</term>
 
5749
         <listitem>
 
5750
          <synopsis>ASCIIToString (vec)</synopsis>
 
5751
          <para>Convertit un vecteur de valeurs ASCII en chaîne.</para>
 
5752
         </listitem>
 
5753
        </varlistentry>
 
5754
 
 
5755
        <varlistentry>
 
5756
         <term><anchor id="gel-function-AlphabetToString"/>AlphabetToString</term>
 
5757
         <listitem>
 
5758
          <synopsis>AlphabetToString (vec,alphabet)</synopsis>
 
5759
          <para>Convertit un vecteur d'indices en chaîne de caractères. Les indices correspondent à la position dans la chaîne <literal>alphabet</literal>, en commençant à zéro.</para>
 
5760
         </listitem>
 
5761
        </varlistentry>
 
5762
 
 
5763
        <varlistentry>
 
5764
         <term><anchor id="gel-function-StringToASCII"/>StringToASCII</term>
 
5765
         <listitem>
 
5766
          <synopsis>StringToASCII (chaîne)</synopsis>
 
5767
          <para>Convertit une chaîne en vecteur de valeurs ASCII.</para>
 
5768
         </listitem>
 
5769
        </varlistentry>
 
5770
 
 
5771
        <varlistentry>
 
5772
         <term><anchor id="gel-function-StringToAlphabet"/>StringToAlphabet</term>
 
5773
         <listitem>
 
5774
          <synopsis>StringToAlphabet (chaîne,alphabet)</synopsis>
 
5775
          <para>Convertit une <literal>chaîne</literal> de caractères en un vecteur d'indices correspondant à la position dans la chaîne <literal>alphabet</literal> (en commençant à zéro). Lorsque le caractère n'est pas dans l'<literal>alphabet</literal>, l'indice est -1.</para>
 
5776
         </listitem>
 
5777
        </varlistentry>
 
5778
 
 
5779
      </variablelist>
 
5780
    </sect1>
 
5781
 
 
5782
    <sect1 id="genius-gel-function-list-symbolic">
 
5783
      <title>Calcul symbolique</title>
 
5784
      <variablelist>
 
5785
        <varlistentry>
 
5786
         <term><anchor id="gel-function-SymbolicDerivative"/>SymbolicDerivative</term>
 
5787
         <listitem>
 
5788
          <synopsis>SymbolicDerivative (f)</synopsis>
 
5789
          <para>Essaie de dériver symboliquement la fonction f, où f est une fonction à une variable.</para>
 
5790
          <para>Exemples : <screen><prompt>genius&gt;</prompt> <userinput>SymbolicDerivative(sin)</userinput>
 
5791
= (`(x)=cos(x))
 
5792
<prompt>genius&gt;</prompt> <userinput>SymbolicDerivative(`(x)=7*x^2)</userinput>
 
5793
= (`(x)=(7*(2*x)))
 
5794
</screen></para>
 
5795
         </listitem>
 
5796
        </varlistentry>
 
5797
 
 
5798
        <varlistentry>
 
5799
         <term><anchor id="gel-function-SymbolicDerivativeTry"/>SymbolicDerivativeTry</term>
 
5800
         <listitem>
 
5801
          <synopsis>SymbolicDerivativeTry (f)</synopsis>
 
5802
          <para>Essaie de dériver symboliquement la fonction f, où f est une fonction à une variable, renvoie <constant>null</constant> en cas d'échec mais reste silencieux (consultez <link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>).</para>
 
5803
         </listitem>
 
5804
        </varlistentry>
 
5805
 
 
5806
        <varlistentry>
 
5807
         <term><anchor id="gel-function-SymbolicNthDerivative"/>SymbolicNthDerivative</term>
 
5808
         <listitem>
 
5809
          <synopsis>SymbolicNthDerivative (f,n)</synopsis>
 
5810
          <para>Essaie de dériver symboliquement une fonction n fois (consultez <link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>).</para>
 
5811
         </listitem>
 
5812
        </varlistentry>
 
5813
 
 
5814
        <varlistentry>
 
5815
         <term><anchor id="gel-function-SymbolicNthDerivativeTry"/>SymbolicNthDerivativeTry</term>
 
5816
         <listitem>
 
5817
          <synopsis>SymbolicNthDerivativeTry (f,n)</synopsis>
 
5818
          <para>Essaie de dériver symboliquement une fonction n fois silencieusement et renvoie <constant>null</constant> en cas d'échec (consultez <link linkend="gel-function-SymbolicNthDerivative"><function>SymbolicNthDerivative</function></link>).</para>
 
5819
         </listitem>
 
5820
        </varlistentry>
 
5821
 
 
5822
        <varlistentry>
 
5823
         <term><anchor id="gel-function-SymbolicTaylorApproximationFunction"/>SymbolicTaylorApproximationFunction</term>
 
5824
         <listitem>
 
5825
          <synopsis>SymbolicTaylorApproximationFunction (f,x0,n)</synopsis>
 
5826
          <para>Attempt to construct the Taylor approximation function around x0 to the nth degree.
 
5827
          (See <link linkend="gel-function-SymbolicDerivative"><function>SymbolicDerivative</function></link>)
 
5828
          </para>
 
5829
         </listitem>
 
5830
        </varlistentry>
 
5831
      </variablelist>
 
5832
    </sect1>
 
5833
 
 
5834
    <sect1 id="genius-gel-function-list-plotting">
 
5835
      <title>Tracé de graphiques</title>
 
5836
      <variablelist>
 
5837
        <varlistentry>
 
5838
         <term><anchor id="gel-function-ExportPlot"/>ExportPlot</term>
 
5839
         <listitem>
 
5840
          <synopsis>ExportPlot (file,type)</synopsis>
 
5841
          <synopsis>ExportPlot (file)</synopsis>
 
5842
          <para>
 
5843
                  Export the contents of the plotting window to a file.
 
5844
                  The type is a string that specifies the file type to
 
5845
                  use, "png", "eps", or "ps".  If the type is not
 
5846
                  specified, then it is taken to be the extension, in
 
5847
                  which case the extension must be ".png", ".eps", or ".ps".
 
5848
          </para>
 
5849
          <para>
 
5850
                  Note that files are overwritten without asking.
 
5851
          </para>
 
5852
          <para>
 
5853
                  On successful export, true is returned.  Otherwise
 
5854
                  error is printed and exception is raised.
 
5855
          </para>
 
5856
          <para>
 
5857
            Examples:
 
5858
          <screen><prompt>genius&gt;</prompt> <userinput>ExportPlot("file.png")</userinput>
 
5859
<prompt>genius&gt;</prompt> <userinput>ExportPlot("/directory/file","eps")</userinput>
 
5860
</screen>
 
5861
          </para>
 
5862
         </listitem>
 
5863
        </varlistentry>
 
5864
 
 
5865
        <varlistentry>
 
5866
         <term><anchor id="gel-function-LinePlot"/>LinePlot</term>
 
5867
         <listitem>
 
5868
          <synopsis>LinePlot (fonc1,fonc2,fonc3,...)</synopsis>
 
5869
          <synopsis>LinePlot (func1,func2,func3,x1,x2)</synopsis>
 
5870
          <synopsis>LinePlot (fonc1,fonc2,fonc3,x1,x2,y1,y2)</synopsis>
 
5871
          <synopsis>LinePlot (func1,func2,func3,[x1,x2])</synopsis>
 
5872
          <synopsis>LinePlot (func1,func2,func3,[x1,x2,y1,y2])</synopsis>
 
5873
          <para>
 
5874
            Plot a function (or several functions) with a line.
 
5875
            First (up to 10) arguments are functions, then optionally
 
5876
            you can specify the limits of the plotting window as
 
5877
            <varname>x1</varname>, <varname>x2</varname>,
 
5878
            <varname>y1</varname>, <varname>y2</varname>.  If limits are not
 
5879
            specified, then the currently set limits apply
 
5880
            (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>)
 
5881
            If the y limits are not specified, then the functions are computed and then the maxima and minima
 
5882
            are used.
 
5883
          </para>
 
5884
          <para>Le paramètre <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> conditionne l'affichage de la légende.</para>
 
5885
          <para>Exemples : <screen><prompt>genius&gt;</prompt> <userinput>LinePlot(sin,cos)</userinput>
 
5886
<prompt>genius&gt;</prompt> <userinput>LinePlot(`(x)=x^2,-1,1,0,1)</userinput>
 
5887
</screen></para>
 
5888
         </listitem>
 
5889
        </varlistentry>
 
5890
 
 
5891
        <varlistentry>
 
5892
         <term><anchor id="gel-function-LinePlotClear"/>LinePlotClear</term>
 
5893
         <listitem>
 
5894
          <synopsis>LinePlotClear ()</synopsis>
 
5895
          <para>Affiche la fenêtre d'affichage du tracé et efface les courbes déjà tracées.</para>
 
5896
         </listitem>
 
5897
        </varlistentry>
 
5898
 
 
5899
        <varlistentry>
 
5900
         <term><anchor id="gel-function-LinePlotDrawLine"/>LinePlotDrawLine</term>
 
5901
         <listitem>
 
5902
          <synopsis>LinePlotDrawLine (x1,y1,x2,y2,...)</synopsis>
 
5903
          <synopsis>LinePlotDrawLine (v,...)</synopsis>
 
5904
          <para>
 
5905
            Draw a line from <varname>x1</varname>,<varname>y1</varname> to
 
5906
            <varname>x2</varname>,<varname>y2</varname>.
 
5907
            <varname>x1</varname>,<varname>y1</varname>,
 
5908
            <varname>x2</varname>,<varname>y2</varname> can be replaced by an
 
5909
            <varname>n</varname> by 2 matrix for a longer polyline.
 
5910
          </para>
 
5911
          <para>Des paramètres supplémentaires peuvent être ajoutés pour spécifier la couleur de la ligne, des flèches et la zone de tracé. Vous pouvez faire cela en ajoutant une chaîne <userinput>"color"</userinput>, <userinput>"thickness"</userinput>, <userinput>"window"</userinput> ou <userinput>"arrow"</userinput> et ensuite, respectivement, la chaîne de couleur (en anglais), l'épaisseur sous la forme d'un entier, la fenêtre sous la forme d'un vecteur à 4 éléments et pour la flèche soit <userinput>"origin"</userinput>, <userinput>"end"</userinput>, <userinput>"both"</userinput> ou <userinput>"none"</userinput>. Pour <userinput>"window"</userinput>, vous pouvez indiquer <userinput>"fit"</userinput> plutôt qu'un vecteur et dans ce cas, l'intervalle x est défini de manière précise et l'intervalle y est défini avec une bordure de cinq pour cent autour de la ligne. Finalement, la légende peut être spécifiée en ajoutant <userinput>"legend"</userinput> et la chaîne contenant la légende.</para>
 
5912
          <para>Exemples : <screen><prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine(0,0,1,1,"color","blue","thickness",3)</userinput>
 
5913
<prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine([0,0;1,-1;-1,-1])</userinput>
 
5914
<prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine([0,0;1,1],"arrow","end")</userinput>
 
5915
<prompt>genius&gt;</prompt> <userinput>LinePlotDrawLine(EulersMethodFull(`(x,y)=y,0,3,100),"color","blue","legend","La solution")</userinput>
 
5916
</screen></para>
 
5917
         </listitem>
 
5918
        </varlistentry>
 
5919
 
 
5920
        <varlistentry>
 
5921
         <term><anchor id="gel-function-LinePlotParametric"/>LinePlotParametric</term>
 
5922
         <listitem>
 
5923
          <synopsis>LinePlotParametric (xfonc,yfonc,...)</synopsis>
 
5924
          <synopsis>LinePlotParametric (xfonc,yfonc,t1,t2,tinc)</synopsis>
 
5925
          <synopsis>LinePlotParametric (xfonc,yfonc,t1,t2,tinc,x1,x2,y1,y2)</synopsis>
 
5926
          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc,[x1,x2,y1,y2])</synopsis>
 
5927
          <synopsis>LinePlotParametric (xfunc,yfunc,t1,t2,tinc,"fit")</synopsis>
 
5928
          <para>Trace la courbe d'une fonction paramétrique. En premier viennent les fonctions de <varname>x</varname> et <varname>y</varname> puis, en option, les limites de <varname>t</varname> sous la forme <userinput>t1,t2,tinc</userinput> puis, en option, les limites de la fenêtre de tracé sous la forme <userinput>x1,x2,y1,y2</userinput>.</para>
 
5929
          <para>
 
5930
            If x and y limits are not
 
5931
            specified, then the currently set limits apply
 
5932
            (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).
 
5933
            If instead the string "fit" is given for the x and y limits, then the limits are the maximum extent of
 
5934
            the graph
 
5935
          </para>
 
5936
          <para>Le paramètre <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> conditionne l'affichage de la légende.</para>
 
5937
         </listitem>
 
5938
        </varlistentry>
 
5939
 
 
5940
        <varlistentry>
 
5941
         <term><anchor id="gel-function-LinePlotCParametric"/>LinePlotCParametric</term>
 
5942
         <listitem>
 
5943
          <synopsis>LinePlotCParametric (fonc,...)</synopsis>
 
5944
          <synopsis>LinePlotCParametric (fonc,t1,t2,tinc)</synopsis>
 
5945
          <synopsis>LinePlotCParametric (fonc,t1,t2,tinc,x1,x2,y1,y2)</synopsis>
 
5946
          <para>Trace la courbe d'une fonction paramétrique à valeurs complexes. En premier vient la fonction qui renvoie <computeroutput>x+iy</computeroutput> puis, en option, les limites de <varname>t</varname> sous la forme <userinput>t1,t2,tinc</userinput> puis, en option, les limites de la fenêtre de tracé sous la forme <userinput>x1,x2,y1,y2</userinput>.</para>
 
5947
          <para>
 
5948
            If limits are not
 
5949
            specified, then the currently set limits apply
 
5950
            (See <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).
 
5951
            If instead the string "fit" is given for the x and y limits, then the limits are the maximum extent of
 
5952
            the graph
 
5953
          </para>
 
5954
          <para>Le paramètre <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> conditionne l'affichage de la légende.</para>
 
5955
         </listitem>
 
5956
        </varlistentry>
 
5957
 
 
5958
        <varlistentry>
 
5959
         <term><anchor id="gel-function-SlopefieldClearSolutions"/>SlopefieldClearSolutions</term>
 
5960
         <listitem>
 
5961
          <synopsis>SlopefieldClearSolutions ()</synopsis>
 
5962
          <para>Efface les solutions tracées par la fonction <link linkend="gel-function-SlopefieldDrawSolution"><function>SlopefieldDrawSolution</function></link>.</para>
 
5963
         </listitem>
 
5964
        </varlistentry>
 
5965
 
 
5966
        <varlistentry>
 
5967
         <term><anchor id="gel-function-SlopefieldDrawSolution"/>SlopefieldDrawSolution</term>
 
5968
         <listitem>
 
5969
          <synopsis>SlopefieldDrawSolution (x, y, dx)</synopsis>
 
5970
          <para>Lorsqu'un tracé de champ de directions est actif, dessine une solution avec les conditions initiales spécifiées. La méthode standard de Runge-Kutta est utilisée avec l'incrément <varname>dx</varname>. Les solutions restent affichées sur le graphe jusqu'à ce qu'un tracé différent soit affiché ou jusqu'à ce que vous appeliez la fonction <link linkend="gel-function-SlopefieldClearSolutions"><function>SlopefieldClearSolutions</function></link>. Vous pouvez aussi utiliser l'interface graphique pour tracer des solutions et indiquer des conditions initiales spécifiques avec la souris.</para>
 
5971
         </listitem>
 
5972
        </varlistentry>
 
5973
 
 
5974
        <varlistentry>
 
5975
         <term><anchor id="gel-function-SlopefieldPlot"/>SlopefieldPlot</term>
 
5976
         <listitem>
 
5977
          <synopsis>SlopefieldPlot (fonc)</synopsis>
 
5978
          <synopsis>SlopefieldPlot (fonc,x1,x2,y1,y2)</synopsis>
 
5979
          <para>Trace un champ de directions. La fonction <varname>fonc</varname> doit accepter deux nombres réels <varname>x</varname> et <varname>y</varname> ou seulement un nombre complexe. En option, vous pouvez indiquer les limites de la fenêtre de tracé comme <varname>x1</varname>, <varname>x2</varname>, <varname>y1</varname>, <varname>y2</varname>. Si les limites ne sont pas indiquées alors les limites actuellement utilisées s'appliquent (consultez <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).</para>
 
5980
          <para>Le paramètre <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> conditionne l'affichage de la légende.</para>
 
5981
          <para>Exemples : <screen><prompt>genius&gt;</prompt> <userinput>Slopefield(`(x,y)=sin(x-y),-5,5,-5,5)</userinput>
 
5982
</screen></para>
 
5983
         </listitem>
 
5984
        </varlistentry>
 
5985
 
 
5986
        <varlistentry>
 
5987
         <term><anchor id="gel-function-SurfacePlot"/>SurfacePlot</term>
 
5988
         <listitem>
 
5989
          <synopsis>SurfacePlot (fonc)</synopsis>
 
5990
          <synopsis>SurfacePlot (fonc,x1,x2,y1,y2,z1,z2)</synopsis>
 
5991
          <synopsis>SurfacePlot (func,x1,x2,y1,y2)</synopsis>
 
5992
          <synopsis>SurfacePlot (func,[x1,x2,y1,y2,z1,z2])</synopsis>
 
5993
          <synopsis>SurfacePlot (func,[x1,x2,y1,y2])</synopsis>
 
5994
          <para>Trace une surface, dont la fonction prend comme arguments deux nombres ou bien un nombre complexe. En premier vient la fonction puis en option les limites sous la forme <varname>x1</varname>, <varname>x2</varname>, <varname>y1</varname>, <varname>y2</varname>, <varname>z1</varname>, <varname>z2</varname>. Si les limites ne sont pas indiquées alors les limites actuellement utilisées s'appliquent (consultez <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>). Genius ne peut tracer qu'une seule surface à la fois.</para>
 
5995
          <para>
 
5996
            If the z limits are not specified then the maxima and minima of the function are used.
 
5997
          </para>
 
5998
          <para>Exemples : <screen><prompt>genius&gt;</prompt> <userinput>SurfacePlot(|sin|,-1,1,-1,1,0,1.5)</userinput>
 
5999
<prompt>genius&gt;</prompt> <userinput>SurfacePlot(`(x,y)=x^2+y,-1,1,-1,1,-2,2)</userinput>
 
6000
<prompt>genius&gt;</prompt> <userinput>SurfacePlot(`(z)=|z|^2,-1,1,-1,1,0,2)</userinput>
 
6001
</screen></para>
 
6002
         </listitem>
 
6003
        </varlistentry>
 
6004
 
 
6005
        <varlistentry>
 
6006
         <term><anchor id="gel-function-SurfacePlotData"/>SurfacePlotData</term>
 
6007
         <listitem>
 
6008
          <synopsis>SurfacePlotData (data)</synopsis>
 
6009
          <synopsis>SurfacePlotData (data,label)</synopsis>
 
6010
          <synopsis>SurfacePlotData (data,x1,x2,y1,y2,z1,z2)</synopsis>
 
6011
          <synopsis>SurfacePlotData (data,label,x1,x2,y1,y2,z1,z2)</synopsis>
 
6012
          <synopsis>SurfacePlotData (data,[x1,x2,y1,y2,z1,z2])</synopsis>
 
6013
          <synopsis>SurfacePlotData (data,label,[x1,x2,y1,y2,z1,z2])</synopsis>
 
6014
          <para>
 
6015
                  Plot a surface from data.  The data is an n by 3 matrix whose
 
6016
                  rows are the x, y and z coordinates.  The data can also be
 
6017
                  simply a vector whose length is a multiple of 3 and so
 
6018
                  contains the tripples of x, y, z.  The data should contain at
 
6019
                  least 3 points.
 
6020
          </para>
 
6021
          <para>
 
6022
                  Optionally we can give the label and also optionally the
 
6023
                  limits.  If limits are not given, they are computed from
 
6024
                  the data, <link linkend="gel-function-SurfacePlotWindow"><function>SurfacePlotWindow</function></link>
 
6025
                  is not used, if you want to use it, pass it in explicitly.
 
6026
                  If label is not given then empty label is used.
 
6027
          </para>
 
6028
          <para>
 
6029
            Examples:
 
6030
          <screen><prompt>genius&gt;</prompt> <userinput>SurfacePlotData([0,0,0;1,0,1;0,1,1;1,1,3])</userinput>
 
6031
<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,"My data")</userinput>
 
6032
<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,-1,1,-1,1,0,10)</userinput>
 
6033
<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(data,SurfacePlotWindow)</userinput>
 
6034
</screen>
 
6035
          </para>
 
6036
          <para>
 
6037
                  Here's an example of how to plot in polar coordinates,
 
6038
                  in particular how to plot the function
 
6039
                  <userinput>-r^2 * theta</userinput>:
 
6040
          <screen><prompt>genius&gt;</prompt> <userinput>d:=null; for r=0 to 1 by 0.1 do for theta=0 to 2*pi by pi/5 do d=[d;[r*cos(theta),r*sin(theta),-r^2*theta]];</userinput>
 
6041
<prompt>genius&gt;</prompt> <userinput>SurfacePlotData(d)</userinput>
 
6042
</screen>
 
6043
          </para>
 
6044
         </listitem>
 
6045
        </varlistentry>
 
6046
 
 
6047
        <varlistentry>
 
6048
         <term><anchor id="gel-function-SurfacePlotDataGrid"/>SurfacePlotDataGrid</term>
 
6049
         <listitem>
 
6050
          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2])</synopsis>
 
6051
          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2])</synopsis>
 
6052
          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2],label)</synopsis>
 
6053
          <synopsis>SurfacePlotDataGrid (data,[x1,x2,y1,y2,z1,z2],label)</synopsis>
 
6054
          <para>
 
6055
                  Plot a surface from regular rectangular data.
 
6056
                  The data is given in a n by m matrix where the rows are the
 
6057
                  x coordinate and the columns are the y coordinate.
 
6058
                  The x coordinate is divided into equal n-1 subintervals
 
6059
                  and y coordinate is divided into equal m-1 subintervals.
 
6060
                  The limits <varname>x1</varname> and <varname>x2</varname>
 
6061
                  give the interval on the x-axis that we use, and 
 
6062
                  the limits <varname>y1</varname> and <varname>y2</varname>
 
6063
                  give the interval on the y-axis that we use.
 
6064
                  If the limits <varname>z1</varname> and <varname>z2</varname>
 
6065
                  are not given they are computed from the data (to be
 
6066
                  the extreme values from the data).
 
6067
          </para>
 
6068
          <para>
 
6069
                  Optionally we can give the label, if label is not given then
 
6070
                  empty label is used.
 
6071
          </para>
 
6072
          <para>
 
6073
            Examples:
 
6074
          <screen><prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid([1,2;3,4],[0,1,0,1])</userinput>
 
6075
<prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid(data,[-1,1,-1,1],"My data")</userinput>
 
6076
<prompt>genius&gt;</prompt> <userinput>d:=null; for i=1 to 20 do for j=1 to 10 d@(i,j) = (0.1*i-1)^2-(0.1*j)^2;</userinput>
 
6077
<prompt>genius&gt;</prompt> <userinput>SurfacePlotDataGrid(d,[-1,1,0,1],"half a saddle")</userinput>
 
6078
</screen>
 
6079
          </para>
 
6080
         </listitem>
 
6081
        </varlistentry>
 
6082
 
 
6083
        <varlistentry>
 
6084
         <term><anchor id="gel-function-VectorfieldClearSolutions"/>VectorfieldClearSolutions</term>
 
6085
         <listitem>
 
6086
          <synopsis>VectorfieldClearSolutions ()</synopsis>
 
6087
          <para>Efface les solutions dessinées par la fonction <link linkend="gel-function-VectorfieldDrawSolution"><function>VectorfieldDrawSolution</function></link>.</para>
 
6088
         </listitem>
 
6089
        </varlistentry>
 
6090
 
 
6091
        <varlistentry>
 
6092
         <term><anchor id="gel-function-VectorfieldDrawSolution"/>VectorfieldDrawSolution</term>
 
6093
         <listitem>
 
6094
          <synopsis>VectorfieldDrawSolution (x, y, dt, tlong)</synopsis>
 
6095
          <para>Lorsqu'un tracé de champ de vecteurs est actif, dessine une solution avec les conditions initiales spécifiées. La méthode standard de Runge-Kutta est utilisée avec l'incrément <varname>dt</varname> sur un intervalle de temps <varname>tlong</varname>. Les solutions restent affichées sur le graphe jusqu'à ce qu'un tracé différent soit affiché ou jusqu'à ce que vous appeliez la fonction <link linkend="gel-function-SlopefieldClearSolutions"><function>VectorfieldClearSolutions</function></link>. Vous pouvez aussi utiliser l'interface graphique pour tracer des solutions et indiquer des conditions initiales spécifiques avec la souris.</para>
 
6096
         </listitem>
 
6097
        </varlistentry>
 
6098
 
 
6099
        <varlistentry>
 
6100
         <term><anchor id="gel-function-VectorfieldPlot"/>VectorfieldPlot</term>
 
6101
         <listitem>
 
6102
          <synopsis>VectorfieldPlot (foncx, foncy)</synopsis>
 
6103
          <synopsis>VectorfieldPlot (foncx, foncy, x1, x2, y1, y2)</synopsis>
 
6104
          <para>Trace un champ de vecteurs à deux dimensions. La fonction <varname>funcx</varname> doit être la dérivée dx/dt du champ de vecteurs et la fonction <varname>funcy</varname> la dérivée dy/dt du champ de vecteurs. Les fonctions doivent accepter deux nombres réels <varname>x</varname> et <varname>y</varname> ou seulement un nombre complexe. Lorsque le paramètre <link linkend="gel-function-VectorfieldNormalized"><function>VectorfieldNormalized</function></link> est <constant>true</constant> (vrai) alors l'amplitude des vecteurs est normalisée. Seule la direction et non pas l'amplitude est tracée.</para>
 
6105
          <para>Vous pouvez spécifier, en option, les limites de la fenêtre de tracé sous la forme <varname>x1</varname>, <varname>x2</varname>, <varname>y1</varname>, <varname>y2</varname>, <varname>z1</varname>, <varname>z2</varname>. Si les limites ne sont pas indiquées alors les limites actuellement utilisées s'appliquent (consultez <link linkend="gel-function-LinePlotWindow"><function>LinePlotWindow</function></link>).</para>
 
6106
          <para>Le paramètre <link linkend="gel-function-LinePlotDrawLegends"><function>LinePlotDrawLegends</function></link> conditionne l'affichage de la légende.</para>
 
6107
          <para>Exemples : <screen><prompt>genius&gt;</prompt> <userinput>VectorfieldPlot(`(x,y)=x^2-y, `(x,y)=y^2-x, -1, 1, -1, 1)</userinput>
 
6108
</screen></para>
 
6109
         </listitem>
 
6110
        </varlistentry>
 
6111
 
 
6112
      </variablelist>
 
6113
    </sect1>
 
6114
 
 
6115
  </chapter>
 
6116
 
 
6117
  <!-- ============= GEL examples ============================= -->
 
6118
  <chapter id="genius-gel-example-programs">
 
6119
    <title>Exemple de programmes en GEL</title>
 
6120
 
 
6121
    <para>Voici une fonction qui calcule des factorielles : <programlisting><![CDATA[function f(x) = if x <= 1 then 1 else (f(x-1)*x)
 
6122
]]></programlisting></para>
 
6123
    <para>Avec des indentations, cela devient : <programlisting><![CDATA[function f(x) = (
 
6124
  if x <= 1 then
 
6125
    1
 
6126
  else
 
6127
    (f(x-1)*x)
 
6128
)
 
6129
]]></programlisting></para>
 
6130
    <para>C'est un portage direct de la fonction factorielle de la page de manuel de <application>bc</application>. La syntaxe semble similaire à celle de <application>bc</application> mais différente par le fait que dans GEL, la dernière expression est celle qui est renvoyée. En utilisant la fonction <literal>return</literal> à la place, cela donnerait : <programlisting><![CDATA[function f(x) = (
 
6131
  if (x <= 1) then return (1);
 
6132
  return (f(x-1) * x)
 
6133
)
 
6134
]]></programlisting></para>
 
6135
 
 
6136
    <para>La façon, de loin la plus facile, de définir une fonction factorielle serait d'utiliser la boucle de produit de la manière suivante. Ce n'est pas seulement la plus courte et la plus rapide mais aussi probablement la version la plus lisible. <programlisting>function f(x) = prod k=1 to x do k
 
6137
</programlisting></para>
 
6138
 
 
6139
    <para>Voici un exemple plus conséquent qui redéfinit essentiellement la fonction interne <function>ref</function> pour calculer la matrice échelonnée en lignes d'une matrice. La fonction <function>ref</function> est intégrée et beaucoup plus rapide mais cet exemple démontre certaines des fonctionnalités plus complexes de GEL. <programlisting><![CDATA[# Calculate the row-echelon form of a matrix
 
6140
function MyOwnREF(m) = (
 
6141
  if not IsMatrix(m) or not IsValueOnly(m) then
 
6142
    (error("MyOwnREF: argument not a value only matrix");bailout);
 
6143
  s := min(rows(m), columns(m));
 
6144
  i := 1;
 
6145
  d := 1;
 
6146
  while d <= s and i <= columns(m) do (
 
6147
 
 
6148
    # This just makes the anchor element non-zero if at
 
6149
    # all possible
 
6150
    if m@(d,i) == 0 then (
 
6151
      j := d+1;
 
6152
      while j <= rows(m) do (
 
6153
        if m@(j,i) == 0 then
 
6154
          (j=j+1;continue);
 
6155
        a := m@(j,);
 
6156
        m@(j,) := m@(d,);
 
6157
        m@(d,) := a;
 
6158
        j := j+1;
 
6159
        break
 
6160
      )
 
6161
    );
 
6162
    if m@(d,i) == 0 then
 
6163
      (i:=i+1;continue);
 
6164
    
 
6165
    # Here comes the actual zeroing of all but the anchor
 
6166
    # element rows
 
6167
    j := d+1;
 
6168
    while j <= rows(m)) do (
 
6169
      if m@(j,i) != 0 then (
 
6170
        m@(j,) := m@(j,)-(m@(j,i)/m@(d,i))*m@(d,)
 
6171
      );
 
6172
      j := j+1
 
6173
    );
 
6174
    m@(d,) := m@(d,) * (1/m@(d,i));
 
6175
    d := d+1;
 
6176
    i := i+1
 
6177
  );
 
6178
  m
 
6179
)
 
6180
]]></programlisting></para>
 
6181
 
 
6182
  </chapter>
 
6183
 
 
6184
  <!-- ============= Customization ============================ -->
 
6185
  <chapter id="genius-prefs"> 
 
6186
    <title>Paramètres</title> 
 
6187
 
 
6188
    <para>Pour configurer l'<application>Outil de maths Genius</application>, choisissez <menuchoice><guimenu>Paramètres</guimenu><guimenuitem>Préférences</guimenuitem></menuchoice>. Il y a plusieurs paramètres de base fournis par le calculateur en plus de ceux fournis par la bibliothèque standard. Ils contrôlent le comportement du calculateur.</para>
 
6189
 
 
6190
    <note>
 
6191
      <title>Modifications des paramètres avec GEL</title>
 
6192
      <para>Beaucoup de paramètres dans Genius ne sont simplement que des variables globales qui peuvent être évaluées et auxquelles on peut attribuer des valeurs de la même manière que pour des variables normales. Consultez <xref linkend="genius-gel-variables"/> à propos de l'évaluation et <xref linkend="genius-gel-function-parameters"/> pour une liste des réglages qui peuvent être modifiés de cette façon.</para>
 
6193
      <para>Par exemple, vous pouvez paramétrer le nombre maximum de chiffres pour l'affichage d'un résultat à 12 en saisissant : <programlisting>MaxDigits = 12
 
6194
</programlisting></para>
 
6195
    </note>
 
6196
 
 
6197
    <sect1 id="genius-prefs-output"> 
 
6198
      <title>Sortie</title> 
 
6199
      <variablelist> 
 
6200
        <varlistentry>
 
6201
          <term> 
 
6202
            <guilabel>Nombre maximum de chiffres à afficher</guilabel>
 
6203
      </term> 
 
6204
          <listitem>
 
6205
        <para>Le nombre maximum de chiffres dans un résultat (<function>MaxDigits</function>)</para>
 
6206
          </listitem>
 
6207
        </varlistentry>
 
6208
        <varlistentry>
 
6209
          <term> 
 
6210
            <guilabel>Résultats en nombres flottants</guilabel>
 
6211
      </term> 
 
6212
          <listitem>
 
6213
        <para>Si les résultats doivent être toujours affichés sous la forme de nombres flottants (<function>ResultsAsFloats</function>)</para>
 
6214
          </listitem>
 
6215
        </varlistentry>
 
6216
        <varlistentry>
 
6217
          <term> 
 
6218
            <guilabel>Nombres flottants en notation scientifique</guilabel>
 
6219
      </term> 
 
6220
          <listitem>
 
6221
        <para>Si les nombres flottants doivent être affichés en notation scientifique (<function>ScientificNotation</function>)</para>
 
6222
          </listitem>
 
6223
        </varlistentry>
 
6224
        <varlistentry>
 
6225
          <term> 
 
6226
            <guilabel>Toujours afficher les expressions complètes</guilabel>
 
6227
      </term> 
 
6228
          <listitem>
 
6229
        <para>Si l'expression complète doit être affichée pour les valeurs renvoyées non numériques (plus longues qu'une ligne) (<function>FullExpressions</function>)</para>
 
6230
          </listitem>
 
6231
        </varlistentry>
 
6232
 
 
6233
        <varlistentry>
 
6234
          <term> 
 
6235
            <guilabel>Utiliser les fractions mixtes</guilabel>
 
6236
      </term> 
 
6237
          <listitem>
 
6238
        <para>Si les fractions doivent être affichées comme des fractions mixtes telles que « 1 1/3 » plutôt que « 4/3 ». (<function>MixedFractions</function>)</para>
 
6239
          </listitem>
 
6240
        </varlistentry>
 
6241
 
 
6242
        <varlistentry>
 
6243
          <term> 
 
6244
            <guilabel>Afficher 0.0 lorsqu'un nombre flottant est inférieur à 10^-x (0=ne jamais arrondir)</guilabel>
 
6245
      </term> 
 
6246
          <listitem>
 
6247
          <para>Comment arrondir la sortie. Mais seulement lorsque d'autres nombres autour sont grands. Consultez la documentation du paramètre <link linkend="gel-function-OutputChopExponent"><function>OutputChopExponent</function></link>.</para>
 
6248
          </listitem>
 
6249
        </varlistentry>
 
6250
 
 
6251
        <varlistentry>
 
6252
          <term> 
 
6253
            <guilabel>Arrondir les nombres uniquement si un autre nombre est plus grand que 10^-x</guilabel>
 
6254
      </term> 
 
6255
          <listitem>
 
6256
          <para>Quand arrondir la sortie. C'est configuré par le paramètre <function>OutputchopWhenexponent</function>. Consultez la documentation du paramètre <link linkend="gel-function-OutputChopExponent"><function>OutputChopExponenthopwhenexponent</function></link>.</para>
 
6257
          </listitem>
 
6258
        </varlistentry>
 
6259
 
 
6260
        <varlistentry>
 
6261
          <term> 
 
6262
            <guilabel>Se souvenir des paramètres de sortie d'une session à l'autre</guilabel>
 
6263
      </term> 
 
6264
          <listitem>
 
6265
        <para>Si les réglages concernant la sortie dans le cadre <guilabel>Options pour la sortie des nombres/expressions</guilabel> doivent être conservés pour la session suivante. Ne s'applique pas au cadre <guilabel>Options pour la sortie erreurs/information</guilabel>.</para>
 
6266
              <para>Si ce n'est pas coché, les réglages précédemment enregistrés ou ceux par défaut sont utilisés à chaque lancement de Genius. Notez que les paramètres sont enregistrés à la fin de la session donc si vous souhaitez modifier la valeur par défaut, cochez cette case, redémarrez Genius puis décochez-la à nouveau.</para>
 
6267
          </listitem>
 
6268
        </varlistentry>
 
6269
 
 
6270
        <varlistentry>
 
6271
          <term> 
 
6272
            <guilabel>Afficher les erreurs dans une boîte de dialogue</guilabel>
 
6273
      </term> 
 
6274
          <listitem>
 
6275
        <para>If set the errors will be displayed in a separate dialog, if
 
6276
        unset the errors will be printed on the console.</para>
 
6277
          </listitem>
 
6278
        </varlistentry>
 
6279
 
 
6280
        <varlistentry>
 
6281
          <term> 
 
6282
            <guilabel>Afficher les messages d'informations dans une boîte de dialogue</guilabel>
 
6283
      </term> 
 
6284
          <listitem>
 
6285
        <para>If set the information messages will be displayed in a separate
 
6286
        dialog, if unset the information messages will be printed on the
 
6287
        console.</para>
 
6288
          </listitem>
 
6289
        </varlistentry>
 
6290
 
 
6291
        <varlistentry>
 
6292
          <term> 
 
6293
            <guilabel>Nombre maximum d'erreurs à afficher</guilabel>
 
6294
      </term> 
 
6295
          <listitem>
 
6296
        <para>Le nombre maximum d'erreurs à afficher pour une évaluation (<function>MaxErrors</function>). Si vous paramétrez à 0 alors toutes les erreurs sont toujours renvoyées. Habituellement si certaines boucles provoquent beaucoup d'erreurs alors il est probable que vous ne serez pas capable de donner un sens à plus de quelques unes d'entre elles. Ainsi voir une longue liste d'erreurs n'apporte pas généralement grand chose.</para>
 
6297
          </listitem>
 
6298
        </varlistentry>
 
6299
      </variablelist> 
 
6300
 
 
6301
      <para>En plus de ces préférences, il existe d'autres préférences qui ne peuvent être modifiées qu'en les paramétrant dans l'espace de la console. Pour celles qui peuvent affecter la sortie, consultez <xref linkend="genius-gel-function-parameters"/>.</para>
 
6302
 
 
6303
      <variablelist> 
 
6304
        <varlistentry>
 
6305
          <term> 
 
6306
            <function>IntegerOutputBase</function>
 
6307
      </term> 
 
6308
          <listitem>
 
6309
        <para>La base utilisée pour afficher les entiers.</para>
 
6310
          </listitem>
 
6311
        </varlistentry>
 
6312
 
 
6313
        <varlistentry>
 
6314
          <term> 
 
6315
            <function>OutputStyle</function>
 
6316
      </term> 
 
6317
          <listitem>
 
6318
        <para>A string, can be <literal>"normal"</literal>,
 
6319
<literal>"latex"</literal>, <literal>"mathml"</literal> or
 
6320
<literal>"troff"</literal> and it will affect how matrices (and perhaps other
 
6321
stuff) is printed, useful for pasting into documents.  Normal style is the
 
6322
default human readable printing style of <application>Genius Mathematics Tool</application>.  The other styles are for
 
6323
typsetting in LaTeX, MathML (XML), or in Troff.</para>
 
6324
          </listitem>
 
6325
        </varlistentry>
 
6326
      </variablelist> 
 
6327
   </sect1> 
 
6328
 
 
6329
    <sect1 id="genius-prefs-precision"> 
 
6330
      <title>Précision</title> 
 
6331
      <variablelist> 
 
6332
        <varlistentry>
 
6333
          <term> 
 
6334
            <guilabel>Précision des nombres en virgule flottante</guilabel>
 
6335
      </term> 
 
6336
          <listitem>
 
6337
        <para>La précision des nombres en virgule flottante en bits (<function>FloatPrecision</function>). Notez que lorsque vous modifiez ce paramètre, seules les nouvelles quantités calculées sont affectées. Les anciennes valeurs enregistrées dans des variables restent toujours avec la même précision et si vous voulez qu'elles soient plus précises, vous devez les recalculer. Les exceptions sont les constantes du système telles que <function>pi</function> ou <function>e</function>.</para>
 
6338
          </listitem>
 
6339
        </varlistentry>
 
6340
 
 
6341
        <varlistentry>
 
6342
          <term> 
 
6343
            <guilabel>Se souvenir de la précision choisie d'une session à l'autre</guilabel>
 
6344
      </term> 
 
6345
          <listitem>
 
6346
        <para>Si le réglage de la précision doit être conservé pour la prochaine session. Si ce n'est pas coché, le paramétrage précédemment enregistré ou celui par défaut est utilisé à chaque lancement de Genius. Notez que les paramètres sont enregistrés à la fin de la session donc si vous souhaitez modifier la valeur par défaut, cochez cette case, redémarrez genius puis décochez-la à nouveau.</para>
 
6347
          </listitem>
 
6348
        </varlistentry>
 
6349
      </variablelist> 
 
6350
    </sect1> 
 
6351
 
 
6352
    <sect1 id="genius-prefs-terminal"> 
 
6353
      <title>Terminal</title> 
 
6354
 
 
6355
      <para>Le terminal se réfère à la console dans la zone de travail.</para>
 
6356
 
 
6357
      <variablelist> 
 
6358
        <varlistentry>
 
6359
          <term> 
 
6360
            <guilabel>Lignes d'historique</guilabel>
 
6361
      </term> 
 
6362
          <listitem>
 
6363
        <para>Nombre de lignes d'historique dans le terminal.</para>
 
6364
          </listitem>
 
6365
        </varlistentry>
 
6366
        <varlistentry>
 
6367
          <term> 
 
6368
            <guilabel>Police</guilabel>
 
6369
      </term> 
 
6370
          <listitem>
 
6371
        <para>La police à utiliser dans le terminal.</para>
 
6372
          </listitem>
 
6373
        </varlistentry>
 
6374
        <varlistentry>
 
6375
          <term> 
 
6376
            <guilabel>Noir sur blanc</guilabel>
 
6377
      </term> 
 
6378
          <listitem>
 
6379
        <para>Si vous utilisez du noir sur blanc dans le terminal.</para>
 
6380
          </listitem>
 
6381
        </varlistentry>
 
6382
        <varlistentry>
 
6383
          <term> 
 
6384
            <guilabel>Curseur clignotant</guilabel>
 
6385
      </term> 
 
6386
          <listitem>
 
6387
        <para>Si le curseur dans le terminal doit clignoter lorsque le terminal possède le focus. Cela peut être parfois ennuyant et génère du trafic inutile si vous utilisez Genius à distance.</para>
 
6388
          </listitem>
 
6389
        </varlistentry>
 
6390
      </variablelist> 
 
6391
    </sect1> 
 
6392
 
 
6393
    <sect1 id="genius-prefs-memory"> 
 
6394
      <title>Mémoire</title> 
 
6395
      <variablelist> 
 
6396
        <varlistentry>
 
6397
          <term> 
 
6398
            <guilabel>Nombre maximum de nœuds à allouer</guilabel>
 
6399
      </term> 
 
6400
          <listitem>
 
6401
        <para>De manière interne, toutes les données sont placées dans des nœuds en mémoire. Ce paramètre fournit une limite sur le nombre maximum de nœuds à allouer pour les calculs. Cela évite le problème d'une saturation de mémoire si vous faites quelque chose par erreur qui utilise trop de mémoire, telle qu'un calcul récursif sans fin. Cela pourrait ralentir votre ordinateur et rendre difficile même l'interruption du programme.</para>
 
6402
        <para>Une fois que la limite est atteinte, l'<application>Outil de maths Genius</application> vous demande si vous voulez interrompre le calcul ou si vous souhaitez continuer. Si vous continuez, aucune limite n'est appliquée et il est possible de saturer la mémoire de l'ordinateur. La limite s'applique à nouveau la prochaine fois que vous exécuterez un programme ou une expression dans la console indépendamment de votre réponse précédente.</para>
 
6403
        <para>Régler la limite à zéro signifie qu'il n'y a aucune limite sur la quantité de mémoire utilisable par Genius.</para>
 
6404
          </listitem>
 
6405
        </varlistentry>
 
6406
 
 
6407
      </variablelist> 
 
6408
    </sect1> 
 
6409
 
 
6410
  </chapter>
 
6411
 
 
6412
<!-- ============= About ====================================== -->
 
6413
  <chapter id="genius-about"> 
 
6414
    <title>À propos de l'<application>Outil de maths Genius</application></title> 
 
6415
 
 
6416
    <para>L'<application>Outil de maths Genius</application> a été écrit par Jiří (George) Lebl (<email>jirka@5z.com</email>). L'historique de l'<application>Outil de maths Genius</application> commence à la fin de l'année 1997. C'était la première calculatrice pour GNOME, mais il a grossi au point de devenir bien plus qu'une simple calculatrice de bureau. Pour trouver plus d'informations à propos de l'<application>Outil de maths Genius</application>, visitez la <ulink url="http://www.jirka.org/genius.html" type="http">page Web de Genius</ulink>.</para>
 
6417
    <para>Pour rapporter une anomalie ou émettre une suggestion concernant cette application ou ce manuel, envoyez un courriel à l'auteur ou à la liste de discussion (voir site Web).</para>
 
6418
 
 
6419
    <para> This program is distributed under the terms of the GNU
 
6420
      General Public license as published by the Free Software
 
6421
      Foundation; either version 3 of the License, or (at your option)
 
6422
      any later version. A copy of this license can be found at this
 
6423
      <ulink url="ghelp:gpl" type="help">link</ulink>, or in the file
 
6424
      COPYING included with the source code of this program. </para>
 
6425
 
 
6426
    <para>Jiří Lebl was during various parts of the development
 
6427
      partially supported for the work by NSF grant DMS 0900885, 
 
6428
      the University of Illinois at Urbana-Champaign,
 
6429
      the University of California at San Diego, and
 
6430
      the University of Wisconsin-Madison.  The software has
 
6431
      been used for both teaching and research.</para>
 
6432
 
 
6433
  </chapter>
 
6434
 
 
6435
</book>